Bug terms
This commit is contained in:
@@ -910,3 +910,8 @@ Pour cette regle, couvrir au minimum:
|
|||||||
- Le widget SAO `tolerance_gauge` est autorise dans les schemas de vues
|
- Le widget SAO `tolerance_gauge` est autorise dans les schemas de vues
|
||||||
`form` et `tree` avec `min`, `max`, `min_field`, `max_field`, `center` et
|
`form` et `tree` avec `min`, `max`, `min_field`, `max_field`, `center` et
|
||||||
`digits`.
|
`digits`.
|
||||||
|
- En formulaire de ligne (`purchase.line` / `sale.line`), ne pas encapsuler
|
||||||
|
`tolerance_gauge` et `targeted_qt` dans un sous-groupe `colspan="4"`: cela
|
||||||
|
decale visuellement le bloc vers la droite dans SAO. Les placer directement
|
||||||
|
dans la grille principale et forcer `xalign="0"` sur la jauge et sur
|
||||||
|
`targeted_qt` pour garder un alignement a gauche stable.
|
||||||
|
|||||||
@@ -339,6 +339,10 @@ them with Python guards and SQL diagnostics.
|
|||||||
<td style="vertical-align:top; padding:0.5rem 0.7rem;">Matching gauge</td>
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">Matching gauge</td>
|
||||||
<td style="vertical-align:top; padding:0.5rem 0.7rem;">In <code>Go to matching</code>, the gauge projects <code>already matched + Qt to match</code> against <code>quantity_theorical</code>, with <code>-tol_min</code> / <code>tol_max</code> bounds.</td>
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">In <code>Go to matching</code>, the gauge projects <code>already matched + Qt to match</code> against <code>quantity_theorical</code>, with <code>-tol_min</code> / <code>tol_max</code> bounds.</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr style="border-bottom:1px solid #e0e0e0;">
|
||||||
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">Line gauge layout</td>
|
||||||
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">On <code>purchase.line</code> / <code>sale.line</code> forms, place the gauge and <code>targeted_qt</code> directly in the main grid, without a <code>colspan="4"</code> subgroup, and use <code>xalign="0"</code> to avoid a double right shift.</td>
|
||||||
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
|
|||||||
@@ -338,6 +338,10 @@ puis les sécuriser par des checks Python et des diagnostics SQL.
|
|||||||
<td style="vertical-align:top; padding:0.5rem 0.7rem;">Jauge matching</td>
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">Jauge matching</td>
|
||||||
<td style="vertical-align:top; padding:0.5rem 0.7rem;">Dans <code>Go to matching</code>, la jauge projette <code>déjà matché + Qt to match</code> contre <code>quantity_theorical</code>, avec bornes <code>-tol_min</code> / <code>tol_max</code>.</td>
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">Dans <code>Go to matching</code>, la jauge projette <code>déjà matché + Qt to match</code> contre <code>quantity_theorical</code>, avec bornes <code>-tol_min</code> / <code>tol_max</code>.</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr style="border-bottom:1px solid #e0e0e0;">
|
||||||
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">Layout jauge ligne</td>
|
||||||
|
<td style="vertical-align:top; padding:0.5rem 0.7rem;">En formulaire <code>purchase.line</code> / <code>sale.line</code>, placer la jauge et <code>targeted_qt</code> directement dans la grille principale, sans sous-groupe <code>colspan="4"</code>, et utiliser <code>xalign="0"</code> pour éviter un double décalage vers la droite.</td>
|
||||||
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
|
|||||||
@@ -127,6 +127,7 @@ quantity_theorical
|
|||||||
| Line gauge | On a line with physical lots, the gauge uses the sum of physical lots; without physical lots, it uses the sum of linked `lot.qt`. |
|
| Line gauge | On a line with physical lots, the gauge uses the sum of physical lots; without physical lots, it uses the sum of linked `lot.qt`. |
|
||||||
| Header gauge | The purchase/sale gauge is the weighted average of line gauges, weighted by `quantity_theorical`. |
|
| Header gauge | The purchase/sale gauge is the weighted average of line gauges, weighted by `quantity_theorical`. |
|
||||||
| Matching gauge | In `Go to matching`, the gauge projects `already matched + Qt to match` against `quantity_theorical`, with `-tol_min` / `tol_max` bounds. |
|
| Matching gauge | In `Go to matching`, the gauge projects `already matched + Qt to match` against `quantity_theorical`, with `-tol_min` / `tol_max` bounds. |
|
||||||
|
| Line gauge layout | On `purchase.line` / `sale.line` forms, place the gauge and `targeted_qt` directly in the main grid, without a `colspan="4"` subgroup, and use `xalign="0"` to avoid a double right shift. |
|
||||||
|
|
||||||
## Developer Section
|
## Developer Section
|
||||||
|
|
||||||
|
|||||||
@@ -126,6 +126,7 @@ quantity_theorical
|
|||||||
| Jauge ligne | Sur une ligne avec lots physiques, la jauge utilise la somme des physiques ; sans physique, elle utilise la somme des `lot.qt` liés. |
|
| Jauge ligne | Sur une ligne avec lots physiques, la jauge utilise la somme des physiques ; sans physique, elle utilise la somme des `lot.qt` liés. |
|
||||||
| Jauge header | La jauge purchase/sale est la moyenne pondérée des jauges de lignes au prorata de `quantity_theorical`. |
|
| Jauge header | La jauge purchase/sale est la moyenne pondérée des jauges de lignes au prorata de `quantity_theorical`. |
|
||||||
| Jauge matching | Dans `Go to matching`, la jauge projette `déjà matché + Qt to match` contre `quantity_theorical`, avec bornes `-tol_min` / `tol_max`. |
|
| Jauge matching | Dans `Go to matching`, la jauge projette `déjà matché + Qt to match` contre `quantity_theorical`, avec bornes `-tol_min` / `tol_max`. |
|
||||||
|
| Layout jauge ligne | En formulaire `purchase.line` / `sale.line`, placer la jauge et `targeted_qt` directement dans la grille principale, sans sous-groupe `colspan="4"`, et utiliser `xalign="0"` pour éviter un double décalage vers la droite. |
|
||||||
|
|
||||||
## Section développeur
|
## Section développeur
|
||||||
|
|
||||||
|
|||||||
@@ -1691,8 +1691,9 @@ class Line(metaclass=PoolMeta):
|
|||||||
|
|
||||||
def _get_basis_component_price(self):
|
def _get_basis_component_price(self):
|
||||||
price = Decimal(0)
|
price = Decimal(0)
|
||||||
if self.terms:
|
terms = getattr(self, 'terms', None)
|
||||||
for t in self.terms:
|
if terms:
|
||||||
|
for t in terms:
|
||||||
price += (t.manual_price if t.manual_price else Decimal(0))
|
price += (t.manual_price if t.manual_price else Decimal(0))
|
||||||
else:
|
else:
|
||||||
if not self.price_components:
|
if not self.price_components:
|
||||||
|
|||||||
@@ -1588,7 +1588,6 @@ class PurchaseTradeTestCase(ModuleTestCase):
|
|||||||
line.id = 1
|
line.id = 1
|
||||||
line.price_type = 'basis'
|
line.price_type = 'basis'
|
||||||
line.price_components = []
|
line.price_components = []
|
||||||
line.terms = []
|
|
||||||
line.enable_linked_currency = False
|
line.enable_linked_currency = False
|
||||||
line.linked_currency = None
|
line.linked_currency = None
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user