Skip to content

Commit c12c042

Browse files
committed
[IMP] l10n_es_aeat_sii_invoice_summary: Refactor to avoid overwrite when it is not necessary
TT60749
1 parent 30916ea commit c12c042

1 file changed

Lines changed: 25 additions & 22 deletions

File tree

l10n_es_aeat_sii_invoice_summary/models/account_move.py

Lines changed: 25 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -12,31 +12,34 @@ class AccountMove(models.Model):
1212
sii_invoice_summary_start = fields.Char("SII Invoice Summary: First Invoice")
1313
sii_invoice_summary_end = fields.Char("SII Invoice Summary: Last Invoice")
1414

15+
def _get_sii_invoice_type(self):
16+
if self.is_invoice_summary and self.is_sale_document():
17+
if self.move_type == "out_refund":
18+
# TODO: It may not be necessary since a summary invoice implies
19+
# simplified invoice
20+
invoice_type = "R5"
21+
elif self.sii_invoice_summary_start == self.sii_invoice_summary_end:
22+
invoice_type = "F2"
23+
else:
24+
invoice_type = "F4"
25+
else:
26+
invoice_type = super()._get_sii_invoice_type()
27+
return invoice_type
28+
1529
def _get_aeat_invoice_dict_out(self, cancel=False):
1630
inv_dict = super()._get_aeat_invoice_dict_out(cancel=cancel)
1731
if self.is_invoice_summary and self.is_sale_document():
18-
tipo_factura = "F4"
19-
if self.sii_invoice_summary_start:
20-
if self.sii_invoice_summary_start == self.sii_invoice_summary_end:
21-
tipo_factura = "F2" if self.move_type == "out_invoice" else "R5"
22-
else:
23-
inv_dict["IDFactura"][
24-
"NumSerieFacturaEmisor"
25-
] = self.sii_invoice_summary_start
26-
inv_dict["IDFactura"][
27-
"NumSerieFacturaEmisorResumenFin"
28-
] = self.sii_invoice_summary_end
29-
if "FacturaExpedida" in inv_dict:
30-
if "TipoFactura" in inv_dict["FacturaExpedida"]:
31-
inv_dict["FacturaExpedida"]["TipoFactura"] = tipo_factura
32-
if "Contraparte" in inv_dict["FacturaExpedida"]:
33-
del inv_dict["FacturaExpedida"]["Contraparte"]
34-
if (
35-
"TipoRectificativa" in inv_dict["FacturaExpedida"]
36-
and tipo_factura == "F4"
37-
):
38-
del inv_dict["FacturaExpedida"]["TipoRectificativa"]
39-
32+
if self.sii_invoice_summary_start != self.sii_invoice_summary_end:
33+
inv_dict["IDFactura"][
34+
"NumSerieFacturaEmisor"
35+
] = self.sii_invoice_summary_start
36+
inv_dict["IDFactura"][
37+
"NumSerieFacturaEmisorResumenFin"
38+
] = self.sii_invoice_summary_end
39+
# TODO: It may not be necessary since a summary invoice implies
40+
# simplified invoice
41+
if inv_dict.get("FacturaExpedida", {}).get("Contraparte"):
42+
del inv_dict["FacturaExpedida"]["Contraparte"]
4043
return inv_dict
4144

4245
def _aeat_check_exceptions(self):

0 commit comments

Comments
 (0)