1
0
forked from Mapan/odoo17e
odoo17e-kedaikipas58/addons/account_avatax/models/account_move.py
2024-12-10 09:04:09 +07:00

45 lines
1.7 KiB
Python

from odoo import models, fields
class AccountMove(models.Model):
_name = 'account.move'
_inherit = ['account.avatax.unique.code', 'account.move']
avatax_tax_date = fields.Date(
string="Avatax Date",
help="Avatax will use this date to calculate the tax on this invoice. "
"If not specified it will use the Invoice Date.",
)
def _post(self, soft=True):
res = super()._post(soft=soft)
self.filtered(
lambda move: move.is_avatax and move.move_type in ('out_invoice', 'out_refund') and not move._is_downpayment()
)._commit_avatax_taxes()
return res
def _get_avatax_dates(self):
external_tax_date = self._get_date_for_external_taxes()
if self.reversed_entry_id:
reversed_override_date = self.reversed_entry_id.avatax_tax_date or self.reversed_entry_id._get_date_for_external_taxes()
return external_tax_date, reversed_override_date
return external_tax_date, self.avatax_tax_date
def _get_avatax_document_type(self):
return {
'out_invoice': 'SalesInvoice',
'out_refund': 'ReturnInvoice',
'in_invoice': 'PurchaseInvoice',
'in_refund': 'ReturnInvoice',
'entry': 'Any',
}[self.move_type]
def _get_avatax_description(self):
return 'Journal Entry'
def _perform_address_validation(self):
# Payments inherit account.move and will end up with a fiscal position.
# Even if an auto-applied Avatax fiscal position is set don't validate the address.
moves = self.filtered(lambda m: m.move_type in ('out_invoice', 'out_refund'))
return super(AccountMove, moves)._perform_address_validation() and not moves.payment_id