From 2021a3c7674b8217cf6a8627bb132741eab7907b Mon Sep 17 00:00:00 2001 From: Eric Antones Date: Tue, 22 Oct 2019 18:18:44 +0200 Subject: [PATCH] [FIX] l10n-spain: campo BaseImponibleACoste obligatorio con ^ClaveRegimenEspecialOTrascendencia.*$ = 06 --- l10n_es_aeat_sii/models/account_invoice.py | 24 ++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/l10n_es_aeat_sii/models/account_invoice.py b/l10n_es_aeat_sii/models/account_invoice.py index ea9c748177e..9bee0469a0b 100644 --- a/l10n_es_aeat_sii/models/account_invoice.py +++ b/l10n_es_aeat_sii/models/account_invoice.py @@ -651,6 +651,13 @@ def _get_sii_in_taxes(self): ) return taxes_dict, tax_amount + @api.multi + def _get_sii_base_cost(self): + self.ensure_one() + return sum( + self.invoice_line_ids.mapped('price_subtotal') + ) + @api.multi def _sii_check_exceptions(self): """Inheritable method for exceptions control when sending SII invoices. @@ -760,6 +767,14 @@ def _get_sii_invoice_dict_out(self, cancel=False): inv_dict["FacturaExpedida"].\ update({'ClaveRegimenEspecialOTrascendenciaAdicional2': ( self.sii_registration_key_additional2.code)}) + if '06' in [self.sii_registration_key.code, + self.sii_registration_key_additional1.code, + self.sii_registration_key_additional2.code]: + inv_dict["FacturaExpedida"].update({ + 'BaseImponibleACoste': abs( + self._get_sii_base_cost() + ) * sign + }) if self.sii_registration_key.code in ['12', '13']: inv_dict["FacturaExpedida"]['DatosInmueble'] = { 'DetalleInmueble': { @@ -860,6 +875,14 @@ def _get_sii_invoice_dict_in(self, cancel=False): inv_dict["FacturaRecibida"].\ update({'ClaveRegimenEspecialOTrascendenciaAdicional2': ( self.sii_registration_key_additional2.code)}) + if '06' in [self.sii_registration_key.code, + self.sii_registration_key_additional1.code, + self.sii_registration_key_additional2.code]: + inv_dict["FacturaRecibida"].update({ + 'BaseImponibleACoste': abs( + self._get_sii_base_cost() + ) * sign + }) # Uso condicional de IDOtro/NIF inv_dict['FacturaRecibida']['Contraparte'].update(ident) if self.type == 'in_refund': @@ -899,6 +922,7 @@ def _get_sii_invoice_dict(self): 'BaseRectificada', 'CuotaRectificada', 'CuotaDeducible', + 'BaseImponibleACoste', ], ) return inv_dict