Skip to content

Commit d415e1f

Browse files
committed
[FIX] account_edi_ubl_cii: add start and end date in Factur-X's XML
Steps to reproduce: - install "l10n_de" and switch to a German company - Go to a contact, in the page Accounting > Electronic Invoicing change the format to "Factur-X (CII)" - Create an invoice for this contact - Add a start and end date on the line of this invoice - Confirm and send to Factur-X - In the generated XML there is no trace of the start or end dates Solution: Set the variables to add the `BillingSpecifiedPeriod` in the XML. Put `invoice_date` as start date and `invoice_date_due` as end date. opw-4680890 closes odoo#209060 X-original-commit: 6118fc6 Signed-off-by: Claire Bretton (clbr) <clbr@odoo.com> Signed-off-by: Mathieu Coutant (mcou) <mcou@odoo.com>
1 parent 0c7841e commit d415e1f

File tree

9 files changed

+89
-1
lines changed

9 files changed

+89
-1
lines changed

addons/account_edi_ubl_cii/models/account_edi_xml_cii_facturx.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -189,6 +189,9 @@ def grouping_key_generator(base_line, tax_data):
189189
'document_context_id': "urn:cen.eu:en16931:2017#conformant#urn:factur-x.eu:1p0:extended",
190190
}
191191

192+
template_values['billing_start'] = invoice.invoice_date
193+
template_values['billing_end'] = invoice.invoice_date_due
194+
192195
# data used for IncludedSupplyChainTradeLineItem / SpecifiedLineTradeSettlement
193196
for line_vals in template_values['invoice_line_vals_list']:
194197
line = line_vals['line']

addons/account_edi_ubl_cii/tests/test_ubl_cii.py

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
# Part of Odoo. See LICENSE file for full copyright and licensing details.
33

44
from lxml import etree
5-
from odoo import Command
5+
from odoo import fields, Command
66
from odoo.addons.account.tests.common import AccountTestInvoicingCommon
77
from odoo.tests import tagged
88
from odoo.tools import file_open
@@ -238,6 +238,35 @@ def test_actual_delivery_date_in_cii_xml(self):
238238
})
239239
self.assertEqual(actual_delivery_date.text, '20241231')
240240

241+
def test_billing_date_in_cii_xml(self):
242+
invoice = self.env['account.move'].create({
243+
'partner_id': self.partner_a.id,
244+
'move_type': 'out_invoice',
245+
'invoice_date': "2024-12-01",
246+
'invoice_date_due': "2024-12-31",
247+
'invoice_line_ids': [Command.create({'product_id': self.product_a.id})],
248+
})
249+
invoice.action_post()
250+
invoice.invoice_date_due = fields.Date.from_string('2024-12-31')
251+
252+
xml_attachment = self.env['ir.attachment'].create({
253+
'raw': self.env['account.edi.xml.cii']._export_invoice(invoice)[0],
254+
'name': 'test_invoice.xml',
255+
})
256+
xml_tree = etree.fromstring(xml_attachment.raw)
257+
start_date = xml_tree.find('.//ram:BillingSpecifiedPeriod/ram:StartDateTime/udt:DateTimeString', {
258+
'rsm': "urn:un:unece:uncefact:data:standard:CrossIndustryInvoice:100",
259+
'ram': "urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100",
260+
'udt': "urn:un:unece:uncefact:data:standard:UnqualifiedDataType:100"
261+
})
262+
end_date = xml_tree.find('.//ram:BillingSpecifiedPeriod/ram:EndDateTime/udt:DateTimeString', {
263+
'rsm': "urn:un:unece:uncefact:data:standard:CrossIndustryInvoice:100",
264+
'ram': "urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100",
265+
'udt': "urn:un:unece:uncefact:data:standard:UnqualifiedDataType:100"
266+
})
267+
self.assertEqual(start_date.text, '20241201')
268+
self.assertEqual(end_date.text, '20241231')
269+
241270
def test_import_partner_fields(self):
242271
""" We are going to import the e-invoice and check partner is correctly imported."""
243272
self.env.ref('base.EUR').active = True # EUR might not be active and is used in the xml testing file

addons/l10n_account_edi_ubl_cii_tests/tests/test_files/from_odoo/facturx_ecotaxes_case1.xml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,14 @@
133133
<ram:DueDateTypeCode>5</ram:DueDateTypeCode>
134134
<ram:RateApplicablePercent>21.0</ram:RateApplicablePercent>
135135
</ram:ApplicableTradeTax>
136+
<ram:BillingSpecifiedPeriod>
137+
<ram:StartDateTime>
138+
<udt:DateTimeString format="102">20170101</udt:DateTimeString>
139+
</ram:StartDateTime>
140+
<ram:EndDateTime>
141+
<udt:DateTimeString format="102">20170228</udt:DateTimeString>
142+
</ram:EndDateTime>
143+
</ram:BillingSpecifiedPeriod>
136144
<ram:SpecifiedTradePaymentTerms>
137145
<ram:Description>30% Advance End of Following Month</ram:Description>
138146
<ram:DueDateDateTime>

addons/l10n_account_edi_ubl_cii_tests/tests/test_files/from_odoo/facturx_ecotaxes_case2.xml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,14 @@
141141
<ram:DueDateTypeCode>5</ram:DueDateTypeCode>
142142
<ram:RateApplicablePercent>21.0</ram:RateApplicablePercent>
143143
</ram:ApplicableTradeTax>
144+
<ram:BillingSpecifiedPeriod>
145+
<ram:StartDateTime>
146+
<udt:DateTimeString format="102">20170101</udt:DateTimeString>
147+
</ram:StartDateTime>
148+
<ram:EndDateTime>
149+
<udt:DateTimeString format="102">20170228</udt:DateTimeString>
150+
</ram:EndDateTime>
151+
</ram:BillingSpecifiedPeriod>
144152
<ram:SpecifiedTradePaymentTerms>
145153
<ram:Description>30% Advance End of Following Month</ram:Description>
146154
<ram:DueDateDateTime>

addons/l10n_account_edi_ubl_cii_tests/tests/test_files/from_odoo/facturx_ecotaxes_case3.xml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,14 @@
133133
<ram:DueDateTypeCode>5</ram:DueDateTypeCode>
134134
<ram:RateApplicablePercent>21.0</ram:RateApplicablePercent>
135135
</ram:ApplicableTradeTax>
136+
<ram:BillingSpecifiedPeriod>
137+
<ram:StartDateTime>
138+
<udt:DateTimeString format="102">20170101</udt:DateTimeString>
139+
</ram:StartDateTime>
140+
<ram:EndDateTime>
141+
<udt:DateTimeString format="102">20170228</udt:DateTimeString>
142+
</ram:EndDateTime>
143+
</ram:BillingSpecifiedPeriod>
136144
<ram:SpecifiedTradePaymentTerms>
137145
<ram:Description>30% Advance End of Following Month</ram:Description>
138146
<ram:DueDateDateTime>

addons/l10n_account_edi_ubl_cii_tests/tests/test_files/from_odoo/facturx_out_invoice.xml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -195,6 +195,14 @@
195195
<ram:DueDateTypeCode>5</ram:DueDateTypeCode>
196196
<ram:RateApplicablePercent>12.0</ram:RateApplicablePercent>
197197
</ram:ApplicableTradeTax>
198+
<ram:BillingSpecifiedPeriod>
199+
<ram:StartDateTime>
200+
<udt:DateTimeString format="102">20170101</udt:DateTimeString>
201+
</ram:StartDateTime>
202+
<ram:EndDateTime>
203+
<udt:DateTimeString format="102">20170228</udt:DateTimeString>
204+
</ram:EndDateTime>
205+
</ram:BillingSpecifiedPeriod>
198206
<ram:SpecifiedTradePaymentTerms>
199207
<ram:Description>30% Advance End of Following Month</ram:Description>
200208
<ram:DueDateDateTime>

addons/l10n_account_edi_ubl_cii_tests/tests/test_files/from_odoo/facturx_out_invoice_tax_incl.xml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -222,6 +222,14 @@
222222
<ram:DueDateTypeCode>5</ram:DueDateTypeCode>
223223
<ram:RateApplicablePercent>5.0</ram:RateApplicablePercent>
224224
</ram:ApplicableTradeTax>
225+
<ram:BillingSpecifiedPeriod>
226+
<ram:StartDateTime>
227+
<udt:DateTimeString format="102">20170101</udt:DateTimeString>
228+
</ram:StartDateTime>
229+
<ram:EndDateTime>
230+
<udt:DateTimeString format="102">20170228</udt:DateTimeString>
231+
</ram:EndDateTime>
232+
</ram:BillingSpecifiedPeriod>
225233
<ram:SpecifiedTradePaymentTerms>
226234
<ram:Description>30% Advance End of Following Month</ram:Description>
227235
<ram:DueDateDateTime>

addons/l10n_account_edi_ubl_cii_tests/tests/test_files/from_odoo/facturx_out_refund.xml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -194,6 +194,14 @@
194194
<ram:DueDateTypeCode>5</ram:DueDateTypeCode>
195195
<ram:RateApplicablePercent>12.0</ram:RateApplicablePercent>
196196
</ram:ApplicableTradeTax>
197+
<ram:BillingSpecifiedPeriod>
198+
<ram:StartDateTime>
199+
<udt:DateTimeString format="102">20170101</udt:DateTimeString>
200+
</ram:StartDateTime>
201+
<ram:EndDateTime>
202+
<udt:DateTimeString format="102">20170228</udt:DateTimeString>
203+
</ram:EndDateTime>
204+
</ram:BillingSpecifiedPeriod>
197205
<ram:SpecifiedTradePaymentTerms>
198206
<ram:Description>30% Advance End of Following Month</ram:Description>
199207
<ram:DueDateDateTime>

addons/l10n_account_edi_ubl_cii_tests/tests/test_files/from_odoo/facturx_positive_discount_price_unit.xml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,14 @@
152152
<ram:DueDateTypeCode>5</ram:DueDateTypeCode>
153153
<ram:RateApplicablePercent>20.0</ram:RateApplicablePercent>
154154
</ram:ApplicableTradeTax>
155+
<ram:BillingSpecifiedPeriod>
156+
<ram:StartDateTime>
157+
<udt:DateTimeString format="102">20170101</udt:DateTimeString>
158+
</ram:StartDateTime>
159+
<ram:EndDateTime>
160+
<udt:DateTimeString format="102">20170228</udt:DateTimeString>
161+
</ram:EndDateTime>
162+
</ram:BillingSpecifiedPeriod>
155163
<ram:SpecifiedTradePaymentTerms>
156164
<ram:Description>30% Advance End of Following Month</ram:Description>
157165
<ram:DueDateDateTime>

0 commit comments

Comments
 (0)