@@ -354,9 +354,12 @@ def get_out_refund_invoice(self):
354
354
journal = Journal (
355
355
name = u'Factura de Energía Rectificativa Emitida'
356
356
)
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 )
357
360
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 :
360
363
invoice_tax .tax_amount = - 1 * abs (invoice_tax .tax_amount )
361
364
362
365
rect_invoice = Invoice (
@@ -381,8 +384,8 @@ def get_out_refund_invoice(self):
381
384
sii_out_clave_regimen_especial = self .sii_out_clave_regimen_especial ,
382
385
)
383
386
384
- invoice = Invoice (
385
- invoice_type = 'out_refund ' ,
387
+ r_invoice = Invoice (
388
+ invoice_type = 'out_invoice ' ,
386
389
journal_id = journal ,
387
390
rectificative_type = 'R' ,
388
391
rectifying_id = rect_invoice ,
@@ -395,14 +398,155 @@ def get_out_refund_invoice(self):
395
398
amount_tax = self .amount_tax ,
396
399
period_id = self .period ,
397
400
date_invoice = self .date_invoice ,
398
- tax_line = tax_line ,
401
+ tax_line = rect_tax_line ,
399
402
invoice_line = self .invoice_line ,
400
403
sii_registered = self .sii_registered ,
401
404
fiscal_position = self .fiscal_position ,
402
405
sii_description = self .sii_description ,
403
406
sii_out_clave_regimen_especial = self .sii_out_clave_regimen_especial ,
404
407
)
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
406
550
407
551
def get_out_invoice_RA (self ):
408
552
journal = Journal (
@@ -550,7 +694,7 @@ def get_out_invoice_rescision(self):
550
694
invoice_type = 'out_refund' ,
551
695
journal_id = journal ,
552
696
rectificative_type = 'A' ,
553
- rectifying_id = False ,
697
+ rectifying_id = rect_invoice ,
554
698
number = 'FRectEmit{}' .format (self .invoice_number ),
555
699
partner_id = self .partner_invoice ,
556
700
address_contact_id = self .address_contact_id ,
0 commit comments