@@ -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