Skip to content

Commit c8e3d91

Browse files
committed
TEST: modificar per nova funcionalitat
1 parent 7aed3ea commit c8e3d91

File tree

2 files changed

+192
-10
lines changed

2 files changed

+192
-10
lines changed

spec/serialization_spec.py

+41-3
Original file line numberDiff line numberDiff line change
@@ -917,19 +917,33 @@ def group_by_tax_rate(iva_values, in_invoice):
917917

918918
with description('en los datos de una factura rectificativa emitida'):
919919
with before.all:
920-
self.out_refund = self.data_gen.get_out_refund_invoice()
920+
self.out_refund, self.out_b_inovice = self.data_gen.get_out_refund_invoice()
921921
self.out_refund_obj = SII(self.out_refund).generate_object()
922+
self.out_b_inovice_obj = SII(self.out_b_inovice).generate_object()
922923
self.fact_rect_emit = (
923924
self.out_refund_obj['SuministroLRFacturasEmitidas']
924925
['RegistroLRFacturasEmitidas']
925926
)
926-
927+
self.fact_refund_emit = (
928+
self.out_b_inovice_obj['SuministroLRFacturasEmitidas']
929+
['RegistroLRFacturasEmitidas']
930+
)
931+
with context('en los datos de abonadora'):
932+
with it('la FechaOperacion debe ser por factura original'):
933+
expect(
934+
self.fact_refund_emit['FacturaExpedida']['FechaOperacion']
935+
).to(equal('31-12-2016'))
927936
with context('en los datos de rectificación'):
928937
with it('el TipoRectificativa debe ser por sustitución (S)'):
929938
expect(
930939
self.fact_rect_emit['FacturaExpedida']['TipoRectificativa']
931940
).to(equal('S'))
932941

942+
with it('la FechaOperacion debe ser por factura original'):
943+
expect(
944+
self.fact_rect_emit['FacturaExpedida']['FechaOperacion']
945+
).to(equal('31-12-2016'))
946+
933947
with before.all:
934948
self.importe_rectificacion = (
935949
self.fact_rect_emit['FacturaExpedida']
@@ -961,7 +975,7 @@ def group_by_tax_rate(iva_values, in_invoice):
961975
expect(
962976
self.grouped_detalle_iva[21.0]['BaseImponible']
963977
).to(equal(
964-
-1 * abs(self.out_refund.tax_line[0].base)
978+
self.out_refund.tax_line[0].base
965979
))
966980
with it('la CuotaRepercutida debe ser la original'):
967981
expect(
@@ -976,6 +990,30 @@ def group_by_tax_rate(iva_values, in_invoice):
976990
self.out_refund.tax_line[0].tax_id.amount * 100
977991
))
978992

993+
with description('en los datos de una factura rectificativa de una rectificativa emitida'):
994+
with before.all:
995+
self.out_refund, self.out_b_inovice = self.data_gen.get_out_refund_mulitple_invoice()
996+
self.out_refund_obj = SII(self.out_refund).generate_object()
997+
self.out_b_inovice_obj = SII(self.out_b_inovice).generate_object()
998+
self.fact_rect_emit = (
999+
self.out_refund_obj['SuministroLRFacturasEmitidas']
1000+
['RegistroLRFacturasEmitidas']
1001+
)
1002+
self.fact_refund_emit = (
1003+
self.out_b_inovice_obj['SuministroLRFacturasEmitidas']
1004+
['RegistroLRFacturasEmitidas']
1005+
)
1006+
with context('en los datos de abonadora'):
1007+
with it('la FechaOperacion debe ser por factura original'):
1008+
expect(
1009+
self.fact_refund_emit['FacturaExpedida']['FechaOperacion']
1010+
).to(equal('07-12-2023'))
1011+
with context('en los datos de rectificación'):
1012+
with it('la FechaOperacion debe ser por factura original'):
1013+
expect(
1014+
self.fact_rect_emit['FacturaExpedida']['FechaOperacion']
1015+
).to(equal('07-12-2023'))
1016+
9791017
with description('en los datos de una factura rectificativa recibida'):
9801018
with before.all:
9811019
self.in_refund = self.data_gen.get_in_refund_invoice()

spec/testing_data.py

+151-7
Original file line numberDiff line numberDiff line change
@@ -354,9 +354,12 @@ def get_out_refund_invoice(self):
354354
journal = Journal(
355355
name=u'Factura de Energía Rectificativa Emitida'
356356
)
357+
rect_tax_line = self.tax_line[:]
358+
for invoice_tax in rect_tax_line:
359+
invoice_tax.tax_amount = -1 * abs(invoice_tax.tax_amount)
357360

358-
tax_line = self.tax_line
359-
for invoice_tax in tax_line:
361+
refund_tax_line = self.tax_line[:]
362+
for invoice_tax in refund_tax_line:
360363
invoice_tax.tax_amount = -1 * abs(invoice_tax.tax_amount)
361364

362365
rect_invoice = Invoice(
@@ -381,8 +384,8 @@ def get_out_refund_invoice(self):
381384
sii_out_clave_regimen_especial=self.sii_out_clave_regimen_especial,
382385
)
383386

384-
invoice = Invoice(
385-
invoice_type='out_refund',
387+
r_invoice = Invoice(
388+
invoice_type='out_invoice',
386389
journal_id=journal,
387390
rectificative_type='R',
388391
rectifying_id=rect_invoice,
@@ -395,14 +398,155 @@ def get_out_refund_invoice(self):
395398
amount_tax=self.amount_tax,
396399
period_id=self.period,
397400
date_invoice=self.date_invoice,
398-
tax_line=tax_line,
401+
tax_line=rect_tax_line,
399402
invoice_line=self.invoice_line,
400403
sii_registered=self.sii_registered,
401404
fiscal_position=self.fiscal_position,
402405
sii_description=self.sii_description,
403406
sii_out_clave_regimen_especial=self.sii_out_clave_regimen_especial,
404407
)
405-
return invoice
408+
b_invoice = Invoice(
409+
invoice_type='out_refund',
410+
journal_id=journal,
411+
rectificative_type='B',
412+
rectifying_id=rect_invoice,
413+
number='FAboEmit{}'.format(self.invoice_number),
414+
partner_id=self.partner_invoice,
415+
address_contact_id=self.address_contact_id,
416+
company_id=self.company,
417+
amount_total=-1.0 * self.amount_total,
418+
amount_untaxed=-1.0 * self.amount_untaxed,
419+
amount_tax=-1.0 * self.amount_tax,
420+
period_id=self.period,
421+
date_invoice=self.date_invoice,
422+
tax_line=refund_tax_line,
423+
invoice_line=self.invoice_line,
424+
sii_registered=self.sii_registered,
425+
fiscal_position=self.fiscal_position,
426+
sii_description=self.sii_description,
427+
sii_out_clave_regimen_especial=self.sii_out_clave_regimen_especial,
428+
)
429+
return r_invoice, b_invoice
430+
431+
def get_out_refund_mulitple_invoice(self):
432+
journal = Journal(
433+
name=u'Factura de Energía Rectificativa Emitida'
434+
)
435+
rect_tax_line = self.tax_line[:]
436+
for invoice_tax in rect_tax_line:
437+
invoice_tax.tax_amount = -1 * abs(invoice_tax.tax_amount)
438+
439+
refund_tax_line = self.tax_line[:]
440+
for invoice_tax in refund_tax_line:
441+
invoice_tax.tax_amount = -1 * abs(invoice_tax.tax_amount)
442+
443+
orig_invoice = Invoice(
444+
invoice_type='out_invoice',
445+
journal_id=journal,
446+
rectificative_type='N',
447+
rectifying_id=False,
448+
number='FEmitRectificada{}'.format(self.invoice_number),
449+
partner_id=self.partner_invoice,
450+
address_contact_id=self.address_contact_id,
451+
company_id=self.company,
452+
amount_total=self.amount_total,
453+
amount_untaxed=self.amount_untaxed,
454+
amount_tax=self.amount_tax,
455+
period_id=self.period,
456+
date_invoice='2023-12-07',
457+
tax_line=self.tax_line,
458+
invoice_line=self.invoice_line,
459+
sii_registered=self.sii_registered,
460+
fiscal_position=self.fiscal_position,
461+
sii_description=self.sii_description,
462+
sii_out_clave_regimen_especial=self.sii_out_clave_regimen_especial,
463+
)
464+
465+
r1_invoice = Invoice(
466+
invoice_type='out_invoice',
467+
journal_id=journal,
468+
rectificative_type='R',
469+
rectifying_id=orig_invoice,
470+
number='FRectEmit{}'.format(self.invoice_number),
471+
partner_id=self.partner_invoice,
472+
address_contact_id=self.address_contact_id,
473+
company_id=self.company,
474+
amount_total=self.amount_total,
475+
amount_untaxed=self.amount_untaxed,
476+
amount_tax=self.amount_tax,
477+
period_id=self.period,
478+
date_invoice='2024-01-07',
479+
tax_line=rect_tax_line,
480+
invoice_line=self.invoice_line,
481+
sii_registered=self.sii_registered,
482+
fiscal_position=self.fiscal_position,
483+
sii_description=self.sii_description,
484+
sii_out_clave_regimen_especial=self.sii_out_clave_regimen_especial,
485+
)
486+
b1_invoice = Invoice(
487+
invoice_type='out_refund',
488+
journal_id=journal,
489+
rectificative_type='B',
490+
rectifying_id=orig_invoice,
491+
number='FAboEmit{}'.format(self.invoice_number),
492+
partner_id=self.partner_invoice,
493+
address_contact_id=self.address_contact_id,
494+
company_id=self.company,
495+
amount_total=-1.0 * self.amount_total,
496+
amount_untaxed=-1.0 * self.amount_untaxed,
497+
amount_tax=-1.0 * self.amount_tax,
498+
period_id=self.period,
499+
date_invoice='2024-01-07',
500+
tax_line=refund_tax_line,
501+
invoice_line=self.invoice_line,
502+
sii_registered=self.sii_registered,
503+
fiscal_position=self.fiscal_position,
504+
sii_description=self.sii_description,
505+
sii_out_clave_regimen_especial=self.sii_out_clave_regimen_especial,
506+
)
507+
r2_invoice = Invoice(
508+
invoice_type='out_invoice',
509+
journal_id=journal,
510+
rectificative_type='R',
511+
rectifying_id=r1_invoice,
512+
number='FRect2Emit{}'.format(self.invoice_number),
513+
partner_id=self.partner_invoice,
514+
address_contact_id=self.address_contact_id,
515+
company_id=self.company,
516+
amount_total=self.amount_total,
517+
amount_untaxed=self.amount_untaxed,
518+
amount_tax=self.amount_tax,
519+
period_id=self.period,
520+
date_invoice='2024-02-07',
521+
tax_line=rect_tax_line,
522+
invoice_line=self.invoice_line,
523+
sii_registered=self.sii_registered,
524+
fiscal_position=self.fiscal_position,
525+
sii_description=self.sii_description,
526+
sii_out_clave_regimen_especial=self.sii_out_clave_regimen_especial,
527+
)
528+
b2_invoice = Invoice(
529+
invoice_type='out_refund',
530+
journal_id=journal,
531+
rectificative_type='B',
532+
rectifying_id=r1_invoice,
533+
number='FAbo2Emit{}'.format(self.invoice_number),
534+
partner_id=self.partner_invoice,
535+
address_contact_id=self.address_contact_id,
536+
company_id=self.company,
537+
amount_total=-1.0 * self.amount_total,
538+
amount_untaxed=-1.0 * self.amount_untaxed,
539+
amount_tax=-1.0 * self.amount_tax,
540+
period_id=self.period,
541+
date_invoice='2024-02-07',
542+
tax_line=refund_tax_line,
543+
invoice_line=self.invoice_line,
544+
sii_registered=self.sii_registered,
545+
fiscal_position=self.fiscal_position,
546+
sii_description=self.sii_description,
547+
sii_out_clave_regimen_especial=self.sii_out_clave_regimen_especial,
548+
)
549+
return r2_invoice, b2_invoice
406550

407551
def get_out_invoice_RA(self):
408552
journal = Journal(
@@ -550,7 +694,7 @@ def get_out_invoice_rescision(self):
550694
invoice_type='out_refund',
551695
journal_id=journal,
552696
rectificative_type='A',
553-
rectifying_id=False,
697+
rectifying_id=rect_invoice,
554698
number='FRectEmit{}'.format(self.invoice_number),
555699
partner_id=self.partner_invoice,
556700
address_contact_id=self.address_contact_id,

0 commit comments

Comments
 (0)