@@ -655,7 +655,6 @@ def hr_to_invoice_timesheets(self, cr, uid, ids, context=None):
655
655
def _prepare_invoice (self , cr , uid , contract , context = None ):
656
656
context = context or {}
657
657
658
- inv_obj = self .pool .get ('account.invoice' )
659
658
journal_obj = self .pool .get ('account.journal' )
660
659
fpos_obj = self .pool .get ('account.fiscal.position' )
661
660
@@ -679,20 +678,19 @@ def _prepare_invoice(self, cr, uid, contract, context=None):
679
678
currency_id = contract .company_id .currency_id .id
680
679
681
680
inv_data = {
682
- 'reference' : contract .code or False ,
683
681
'account_id' : contract .partner_id .property_account_receivable .id ,
684
682
'type' : 'out_invoice' ,
685
683
'partner_id' : contract .partner_id .id ,
686
684
'currency_id' : currency_id ,
687
685
'journal_id' : len (journal_ids ) and journal_ids [0 ] or False ,
688
686
'date_invoice' : contract .recurring_next_date ,
689
- 'origin' : contract .name ,
687
+ 'origin' : contract .code ,
690
688
'fiscal_position' : fpos and fpos .id ,
691
689
'payment_term' : partner_payment_term ,
692
690
'company_id' : contract .company_id .id or False ,
693
691
}
694
- invoice_id = inv_obj .create (cr , uid , inv_data , context = context )
695
692
693
+ invoice_line_vals = []
696
694
for line in contract .recurring_invoice_line_ids :
697
695
698
696
res = line .product_id
@@ -704,21 +702,21 @@ def _prepare_invoice(self, cr, uid, contract, context=None):
704
702
taxes = res .taxes_id or False
705
703
tax_id = fpos_obj .map_tax (cr , uid , fpos , taxes )
706
704
707
- invoice_line_vals = {
705
+ invoice_line_vals . append ( {
708
706
'name' : line .name ,
709
707
'account_id' : account_id ,
710
708
'account_analytic_id' : contract .id ,
711
709
'price_unit' : line .price_unit or 0.0 ,
712
710
'quantity' : line .quantity ,
713
711
'uos_id' : line .uom_id .id or False ,
714
712
'product_id' : line .product_id .id or False ,
715
- 'invoice_id' : invoice_id ,
713
+ # 'invoice_id' : invoice_id,
716
714
'invoice_line_tax_id' : [(6 , 0 , tax_id )],
717
- }
718
- self .pool .get ('account.invoice.line' ).create (cr , uid , invoice_line_vals , context = context )
715
+ })
719
716
720
- inv_obj .button_compute (cr , uid , [invoice_id ], context = context )
721
- return invoice_id
717
+ inv_data ['invoice_line' ] = [(0 , 0 , line_vals ) for line_vals in invoice_line_vals ]
718
+
719
+ return inv_data
722
720
723
721
def recurring_create_invoice (self , cr , uid , ids , context = None ):
724
722
return self ._recurring_create_invoice (cr , uid , ids , context = context )
@@ -728,15 +726,16 @@ def _cron_recurring_create_invoice(self, cr, uid, context=None):
728
726
729
727
def _recurring_create_invoice (self , cr , uid , ids , automatic = False , context = None ):
730
728
context = context or {}
729
+ invoice_ids = []
731
730
current_date = time .strftime ('%Y-%m-%d' )
732
731
if ids :
733
732
contract_ids = ids
734
733
else :
735
734
contract_ids = self .search (cr , uid , [('recurring_next_date' ,'<=' , current_date ), ('state' ,'=' , 'open' ), ('recurring_invoices' ,'=' , True ), ('type' , '=' , 'contract' )])
736
735
for contract in self .browse (cr , uid , contract_ids , context = context ):
737
736
try :
738
- invoice_id = self ._prepare_invoice (cr , uid , contract , context = context )
739
-
737
+ invoice_values = self ._prepare_invoice (cr , uid , contract , context = context )
738
+ invoice_ids . append ( self . pool [ 'account.invoice' ]. create ( cr , uid , invoice_values , context = context ))
740
739
next_date = datetime .datetime .strptime (contract .recurring_next_date or current_date , "%Y-%m-%d" )
741
740
interval = contract .recurring_interval
742
741
if contract .recurring_rule_type == 'daily' :
@@ -754,7 +753,7 @@ def _recurring_create_invoice(self, cr, uid, ids, automatic=False, context=None)
754
753
_logger .error (traceback .format_exc ())
755
754
else :
756
755
raise
757
- return True
756
+ return invoice_ids
758
757
759
758
class account_analytic_account_summary_user (osv .osv ):
760
759
_name = "account_analytic_analysis.summary.user"
0 commit comments