43
43
for prod_variation in production.variation_ids:
44
44
context['type'] = 'consumed'
45
45
if prod_variation.product_id and prod_variation.product_id.valuation == 'real_time' and prod_variation.quantity <> 0:
46
j_id, src_acc, dest_acc, reference_amount = self._get_journal_accounts(cr,uid,prod_variation,context=context)
46
j_id, src_acc, dest_acc, reference_amount = self._get_journal_accounts(cr,uid,prod_variation,production,context=context)
47
47
account_moves += [(j_id, self._create_account_variation_move_line(cr,uid,prod_variation,src_acc,dest_acc,reference_amount))]
49
49
for prod_variation in production.variation_finished_product_ids:
50
50
context['type'] = 'produced'
51
51
if prod_variation.product_id and prod_variation.product_id.valuation == 'real_time' and prod_variation.quantity <> 0:
52
j_id, src_acc, dest_acc, reference_amount = self._get_journal_accounts(cr,uid,prod_variation,context=context)
52
j_id, src_acc, dest_acc, reference_amount = self._get_journal_accounts(cr,uid,prod_variation,production,context=context)
53
53
account_moves += [(j_id, self._create_account_variation_move_line(cr,uid,prod_variation,src_acc,dest_acc,reference_amount))]
74
74
if context.get('type',False) == 'consumed':
75
75
if product.quantity > 0:
76
if product.product_id.property_stock_production.valuation_in_account_id:
77
src_acc = product.product_id.property_stock_production.valuation_in_account_id.id
78
if product.product_id.property_stock_production.variation_in_account_id:
79
dest_acc = product.product_id.property_stock_production.variation_in_account_id.id
76
if production.product_id.property_stock_production.valuation_in_account_id:
77
src_acc = production.product_id.property_stock_production.valuation_in_account_id.id
78
if product.product_id.type == 'service':
79
dest_acc = product.product_id.categ_id.property_stock_valuation_account_id and product.product_id.categ_id.property_stock_valuation_account_id.id or False
80
elif production.product_id.property_stock_production.variation_in_account_id:
81
dest_acc = production.product_id.property_stock_production.variation_in_account_id.id
80
82
reference_amount = product.cost_variation
82
84
if product.quantity < 0:
83
if product.product_id.property_stock_production.variation_in_account_id:
84
src_acc = product.product_id.property_stock_production.variation_in_account_id.id
85
if product.product_id.property_stock_production.valuation_in_account_id:
86
dest_acc = product.product_id.property_stock_production.valuation_in_account_id.id
85
if product.product_id.type == 'service':
86
src_acc = product.product_id.categ_id.property_stock_valuation_account_id and product.product_id.categ_id.property_stock_valuation_account_id.id or False
87
elif production.product_id.property_stock_production.variation_in_account_id:
88
src_acc = production.product_id.property_stock_production.variation_in_account_id.id
89
if production.product_id.property_stock_production.valuation_in_account_id:
90
dest_acc = production.product_id.property_stock_production.valuation_in_account_id.id
87
91
reference_amount = product.cost_variation*-1
89
93
if context.get('type',False) == 'produced':
90
94
if product.quantity > 0:
91
if product.product_id.property_stock_production.valuation_out_account_id:
92
src_acc = product.product_id.property_stock_production.variation_out_account_id.id
93
if product.product_id.property_stock_production.variation_out_account_id:
94
dest_acc = product.product_id.property_stock_production.valuation_out_account_id.id
95
if production.product_id.property_stock_production.valuation_out_account_id:
96
src_acc = production.product_id.property_stock_production.variation_out_account_id.id
97
if production.product_id.property_stock_production.variation_out_account_id:
98
dest_acc = production.product_id.property_stock_production.valuation_out_account_id.id
95
99
reference_amount = product.cost_variation
96
100
if product.quantity < 0:
97
if product.product_id.property_stock_production.variation_out_account_id:
98
src_acc = product.product_id.property_stock_production.valuation_out_account_id.id
99
if product.product_id.property_stock_production.valuation_out_account_id:
100
dest_acc = product.product_id.property_stock_production.variation_out_account_id.id
101
if production.product_id.property_stock_production.variation_out_account_id:
102
src_acc = production.product_id.property_stock_production.valuation_out_account_id.id
103
if production.product_id.property_stock_production.valuation_out_account_id:
104
dest_acc = production.product_id.property_stock_production.variation_out_account_id.id
101
105
reference_amount = product.cost_variation*-1
103
107
journal_id = product.product_id.categ_id.property_stock_journal.id
104
108
if not src_acc or not dest_acc:
105
109
raise osv.except_osv(_('Error!'), _('There is no account defined for this location: "%s" ') % \
106
(product.product_id.property_stock_production.name,))
110
(production.product_id.property_stock_production.name,))
108
112
if not journal_id:
109
113
raise osv.except_osv(_('Error!'), _('There is no journal defined on the product category: "%s" (id: %d)') % \