feature/errores-legibles-tabla
This commit is contained in:
@@ -239,27 +239,42 @@ def calculate_values(
|
||||
if not result:
|
||||
return
|
||||
|
||||
if not line.financial or not line.quantity:
|
||||
return
|
||||
|
||||
currency, currency_type, exchange_rate = result
|
||||
if currency_type in ("USD", "ME"):
|
||||
currency = "foreign"
|
||||
elif currency_type in ("MXN", "MN"):
|
||||
currency = "local"
|
||||
|
||||
# Evitar None * None / NoneType * Decimal al guardar sin cantidad o sin costo capturado
|
||||
qty = (
|
||||
line.quantity.quantity
|
||||
if line.quantity.quantity is not None
|
||||
else Decimal("0")
|
||||
)
|
||||
capture = (
|
||||
line.financial.unit_cost_capture
|
||||
if line.financial.unit_cost_capture is not None
|
||||
else Decimal("0")
|
||||
)
|
||||
|
||||
if currency == "foreign": # ME
|
||||
line.financial.unit_cost_usd = line.financial.unit_cost_capture
|
||||
line.financial.value_usd = line.financial.unit_cost_usd * line.quantity.quantity
|
||||
line.financial.unit_cost_mxn = line.financial.unit_cost_capture * (exchange_rate or 1)
|
||||
line.financial.value_mxn = line.financial.unit_cost_mxn * line.quantity.quantity
|
||||
line.financial.value_mc = line.financial.unit_cost_usd * line.quantity.quantity
|
||||
line.financial.unit_cost_usd = capture
|
||||
line.financial.value_usd = capture * qty
|
||||
line.financial.unit_cost_mxn = capture * (exchange_rate or 1)
|
||||
line.financial.value_mxn = line.financial.unit_cost_mxn * qty
|
||||
line.financial.value_mc = capture * qty
|
||||
elif currency == "local": # MN
|
||||
line.financial.unit_cost_mxn = line.financial.unit_cost_capture
|
||||
line.financial.value_mxn = line.financial.unit_cost_mxn * line.quantity.quantity
|
||||
line.financial.unit_cost_usd = line.financial.unit_cost_capture / (exchange_rate or 1)
|
||||
line.financial.value_usd = line.financial.unit_cost_usd * line.quantity.quantity
|
||||
line.financial.value_mc = line.financial.unit_cost_usd * line.quantity.quantity
|
||||
line.financial.unit_cost_mxn = capture
|
||||
line.financial.value_mxn = line.financial.unit_cost_mxn * qty
|
||||
line.financial.unit_cost_usd = capture / (exchange_rate or 1)
|
||||
line.financial.value_usd = line.financial.unit_cost_usd * qty
|
||||
line.financial.value_mc = line.financial.unit_cost_usd * qty
|
||||
elif currency == "manual": # MC
|
||||
line.financial.unit_cost_usd = line.financial.unit_cost_capture / (exchange_rate or 1)
|
||||
line.financial.value_usd = line.financial.unit_cost_usd * line.quantity.quantity
|
||||
line.financial.unit_cost_usd = capture / (exchange_rate or 1)
|
||||
line.financial.value_usd = line.financial.unit_cost_usd * qty
|
||||
line.financial.unit_cost_mxn = line.financial.unit_cost_usd * (exchange_rate or 1)
|
||||
line.financial.value_mxn = line.financial.unit_cost_mxn * line.quantity.quantity
|
||||
line.financial.value_mc = line.financial.unit_cost_capture * line.quantity.quantity
|
||||
line.financial.value_mxn = line.financial.unit_cost_mxn * qty
|
||||
line.financial.value_mc = capture * qty
|
||||
|
||||
@@ -98,6 +98,7 @@ def validate_update(
|
||||
line.financial.unit_cost_mxn = unit_cost_capture
|
||||
|
||||
quantity = line.quantity.quantity if line.quantity.quantity is not None else existing_line.quantity.quantity
|
||||
quantity = quantity if quantity is not None else Decimal("0")
|
||||
|
||||
if line.financial.unit_cost_usd is not None:
|
||||
line.financial.value_usd = line.financial.unit_cost_usd * quantity
|
||||
|
||||
@@ -138,21 +138,32 @@ def calculate_values(
|
||||
currency = "local"
|
||||
# si currency_type es otro o None, se usa currency tal cual
|
||||
|
||||
qty = (
|
||||
line.quantity.quantity
|
||||
if line.quantity.quantity is not None
|
||||
else Decimal("0")
|
||||
)
|
||||
capture = (
|
||||
line.financial.unit_cost_capture
|
||||
if line.financial.unit_cost_capture is not None
|
||||
else Decimal("0")
|
||||
)
|
||||
|
||||
if currency == "foreign":
|
||||
line.financial.unit_cost_usd = line.financial.unit_cost_capture
|
||||
line.financial.value_usd = line.financial.unit_cost_usd * line.quantity.quantity
|
||||
line.financial.unit_cost_mxn = line.financial.unit_cost_capture * (exchange_rate or 1)
|
||||
line.financial.value_mxn = line.financial.unit_cost_mxn * line.quantity.quantity
|
||||
line.financial.value_mc = line.financial.unit_cost_usd * line.quantity.quantity
|
||||
line.financial.unit_cost_usd = capture
|
||||
line.financial.value_usd = capture * qty
|
||||
line.financial.unit_cost_mxn = capture * (exchange_rate or 1)
|
||||
line.financial.value_mxn = line.financial.unit_cost_mxn * qty
|
||||
line.financial.value_mc = capture * qty
|
||||
elif currency == "local":
|
||||
line.financial.unit_cost_mxn = line.financial.unit_cost_capture
|
||||
line.financial.value_mxn = line.financial.unit_cost_mxn * line.quantity.quantity
|
||||
line.financial.unit_cost_usd = line.financial.unit_cost_capture / (exchange_rate or 1)
|
||||
line.financial.value_usd = line.financial.unit_cost_usd * line.quantity.quantity
|
||||
line.financial.value_mc = line.financial.unit_cost_usd * line.quantity.quantity
|
||||
line.financial.unit_cost_mxn = capture
|
||||
line.financial.value_mxn = line.financial.unit_cost_mxn * qty
|
||||
line.financial.unit_cost_usd = capture / (exchange_rate or 1)
|
||||
line.financial.value_usd = line.financial.unit_cost_usd * qty
|
||||
line.financial.value_mc = line.financial.unit_cost_usd * qty
|
||||
elif currency == "manual":
|
||||
line.financial.unit_cost_usd = line.financial.unit_cost_capture / (exchange_rate or 1)
|
||||
line.financial.value_usd = line.financial.unit_cost_usd * line.quantity.quantity
|
||||
line.financial.unit_cost_usd = capture / (exchange_rate or 1)
|
||||
line.financial.value_usd = line.financial.unit_cost_usd * qty
|
||||
line.financial.unit_cost_mxn = line.financial.unit_cost_usd * (exchange_rate or 1)
|
||||
line.financial.value_mxn = line.financial.unit_cost_mxn * line.quantity.quantity
|
||||
line.financial.value_mc = line.financial.unit_cost_capture * line.quantity.quantity
|
||||
line.financial.value_mxn = line.financial.unit_cost_mxn * qty
|
||||
line.financial.value_mc = capture * qty
|
||||
@@ -95,6 +95,7 @@ def validate_update(
|
||||
line.financial.unit_cost_mxn = unit_cost_capture
|
||||
|
||||
quantity = line.quantity.quantity if line.quantity.quantity is not None else existing_line.quantity.quantity
|
||||
quantity = quantity if quantity is not None else Decimal("0")
|
||||
|
||||
if line.financial.unit_cost_usd is not None:
|
||||
line.financial.value_usd = line.financial.unit_cost_usd * quantity
|
||||
|
||||
Reference in New Issue
Block a user