@@ -53,16 +53,43 @@ def _get_sale_checkbook(self):
53
53
)
54
54
55
55
@api .model_create_multi
56
- def create (self , vals ):
57
- for val in vals :
58
- if self .env .user .has_group ('l10n_ar_sale.use_sale_checkbook' ) and \
59
- val .get ('name' , _ ('New' )) == _ ('New' ) and \
60
- val .get ('sale_checkbook_id' ):
56
+ def create (self , vals_list ):
57
+ for value in vals_list :
58
+ if self .env .user .has_group ('l10n_ar_sale.use_sale_checkbook' ) and value .get ("sale_checkbook_id" ):
59
+ sale_checkbook = self .env ["sale.checkbook" ].browse (value ["sale_checkbook_id" ])
60
+ if sale_checkbook .sequence_id :
61
+ value ["name" ] = sale_checkbook .sequence_id ._next () or _ ('New' )
62
+ return super (SaleOrder , self ).create (vals_list )
63
+
64
+ @api .onchange ('partner_id' , 'sale_checkbook_id' )
65
+ def set_order_sequence (self ):
66
+ """
67
+ Este metodo muestra en el momento de crear la OV la sequencia del talonario
68
+ """
69
+ if self .env .user .has_group ('l10n_ar_sale.use_sale_checkbook' ) and \
70
+ self .sale_checkbook_id :
61
71
sale_checkbook = self .env ['sale.checkbook' ].browse (
62
- val .get ('sale_checkbook_id' ))
63
- val ['name' ] = sale_checkbook .sequence_id and \
64
- sale_checkbook .sequence_id ._next () or _ ('New' )
65
- return super (SaleOrder , self ).create (vals )
72
+ self .sale_checkbook_id .id )
73
+ number_next = sale_checkbook .sequence_id .number_next_actual
74
+ self .name = sale_checkbook .sequence_id .get_next_char (number_next ) and \
75
+ sale_checkbook .sequence_id .get_next_char (number_next ) or _ ('New' )
76
+
77
+ def write (self , vals ):
78
+ """A sale checkbook could have a different order sequence, so we could
79
+ need to change it accordingly"""
80
+ if self .env .user .has_group ('l10n_ar_sale.use_sale_checkbook' ) and self .sale_checkbook_id :
81
+ sale_checkbook = self .sale_checkbook_id
82
+ if sale_checkbook .sequence_id :
83
+ for record in self :
84
+ if record .state in {"draft" , "sent" } and record .type_id .sequence_id != sale_checkbook .sequence_id :
85
+ number_next = sale_checkbook .sequence_id .number_next_actual
86
+ new_vals = vals .copy ()
87
+ new_vals ["name" ] = sale_checkbook .sequence_id .get_next_char (number_next ) or _ ('New' )
88
+ super (SaleOrder , record ).write (new_vals )
89
+ else :
90
+ super (SaleOrder , record ).write (vals )
91
+ return True
92
+ return super ().write (vals )
66
93
67
94
def _compute_tax_totals (self ):
68
95
""" Mandamos en contexto el invoice_date para calculo de impuesto con partner aliquot
0 commit comments