Compare commits

...

2 Commits

Author SHA1 Message Date
Sergio Morillo d843fa0d35 Added property to unify recargo equivalencia among core and spain 2023-04-17 09:59:53 +02:00
Sergio Morillo 1bbf0cffb4 Recover issued by party.
This commit refs #26601
2023-04-17 09:27:17 +02:00
2 changed files with 26 additions and 5 deletions

View File

@ -163,6 +163,23 @@ class Tax(metaclass=PoolMeta):
if exist_sii_intracomunity_key:
table.drop_column('sii_intracomunity_key')
@classmethod
def __setup__(cls):
super().__setup__()
if hasattr(cls, 'recargo_equivalencia'):
cls._sii_account_es_mapping = {
'es_sii_recargo_equivalencia': 'recargo_equivalencia',
}
elif hasattr(cls, 'es_reported_with'):
cls._sii_account_es_mapping = {
'es_sii_recargo_equivalencia': 'es_reported_with',
}
@property
def es_sii_recargo_equivalencia(self):
return getattr(self,
self._sii_account_es_mapping['es_sii_recargo_equivalencia'])
@staticmethod
def default_deducible():
return True

View File

@ -138,18 +138,18 @@ class BaseInvoiceMapper(Model):
def taxes(self, invoice):
return [invoice_tax for invoice_tax in invoice.taxes if (
invoice_tax.tax.tax_used and
not invoice_tax.tax.recargo_equivalencia)]
not invoice_tax.tax.es_sii_recargo_equivalencia)]
def total_invoice_taxes(self, invoice):
return [invoice_tax for invoice_tax in invoice.taxes if (
invoice_tax.tax.invoice_used and
not invoice_tax.tax.recargo_equivalencia)]
not invoice_tax.tax.es_sii_recargo_equivalencia)]
def _tax_equivalence_surcharge(self, invoice_tax):
surcharge_tax = None
for invoicetax in invoice_tax.invoice.taxes:
if (invoicetax.tax.recargo_equivalencia and
invoice_tax.tax.recargo_equivalencia_related_tax ==
if (invoicetax.tax.es_sii_recargo_equivalencia and
invoice_tax.tax.es_sii_recargo_equivalencia ==
invoicetax.tax and invoicetax.base ==
invoicetax.base.copy_sign(invoice_tax.base)):
surcharge_tax = invoicetax
@ -305,7 +305,8 @@ class IssuedInvoiceMapper(BaseInvoiceMapper):
# TODO: Macrodato
# TODO: DatosInmueble
# TODO: ImporteTransmisionInmueblesSujetoAIVA
# TODO: EmitidaPorTercerosODestinatario
'EmitidaPorTercerosODestinatario':
'S' if self.issued_by_party(invoice) else 'N',
# TODO: FacturacionDispAdicinalTerceraYsextayDelMercadoOrganizadoDelGas
# TODO: VariosDestinatarios
# TODO: Cupon
@ -448,6 +449,9 @@ class IssuedInvoiceMapper(BaseInvoiceMapper):
# TODO: CuotaRecargoRectificado
}
def issued_by_party(self, invoice):
return False
class RecievedInvoiceMapper(BaseInvoiceMapper):
"""