Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 20 additions & 3 deletions l10n_ve_accountant/models/account_move_line.py
Original file line number Diff line number Diff line change
Expand Up @@ -150,11 +150,28 @@ def _compute_name(self):
line.name = line.move_id.name
return res

@api.depends("price_unit", "foreign_inverse_rate")
@api.depends("price_unit", "foreign_inverse_rate", "currency_id")
def _compute_foreign_price(self):
for line in self:
line.foreign_price = line.price_unit * line.foreign_inverse_rate

company_currency = line.company_id.currency_id
foreign_currency = line.company_id.foreign_currency_id
# Si la línea está en moneda principal de la compañía
if line.currency_id.id == company_currency.id:
line.foreign_price = line.price_unit * line.foreign_inverse_rate
# Si la línea está en moneda foránea
elif line.currency_id.id == foreign_currency.id:
line.foreign_price = line.price_unit
# Si la línea está en otra moneda (ni principal ni foránea)
else:
# Convertir de la moneda de la línea a la moneda principal
price_in_company = line.currency_id._convert(
line.price_unit,
company_currency,
line.company_id,
line.move_id.invoice_date or fields.Date.today(),
)
# Luego convertir de la moneda principal a la foránea usando la tasa de la factura
line.foreign_price = price_in_company * line.foreign_inverse_rate
@api.depends("foreign_price", "quantity", "discount", "tax_ids", "price_unit")
def _compute_foreign_subtotal(self):
for line in self:
Expand Down