~vauxoo/addons-vauxoo/8.0-import_tax_tariff-dev-yani-rev-2

« back to all changes in this revision

Viewing changes to mrp_account_variation/mrp_account_variation.py

  • Committer: jose at vauxoo
  • Date: 2012-10-30 22:29:46 UTC
  • mfrom: (501.1.58 6.1)
  • Revision ID: jose@vauxoo.com-20121030222946-gjtl9xw24t27xrrw
  
[MERGE] Merge to 6.1 branch to added new features 

Show diffs side-by-side

added added

removed removed

Lines of Context:
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))]
48
48
 
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))]
54
54
                    
55
55
            if account_moves:
63
63
                    
64
64
        return True
65
65
    
66
 
    def _get_journal_accounts(self,cr,uid,product,context={}):
 
66
    def _get_journal_accounts(self,cr,uid,product,production,context={}):
67
67
 
68
68
        if not context:
69
69
            context = {}
73
73
        
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
81
83
                
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
88
92
                
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
102
106
            
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,))
107
111
                                    
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)') % \