~slobodni-programi/addons-sp/61

« back to all changes in this revision

Viewing changes to account_tax_nondeductable/account.py

  • Committer: Goran Kliska
  • Date: 2011-11-10 09:30:26 UTC
  • Revision ID: goran.kliska@slobodni-programi.hr-20111110093026-q4dqc6lmfoo60ngh
croatian VAT rules and postings on payment

Show diffs side-by-side

added added

removed removed

Lines of Context:
52
52
 
53
53
    def _unit_compute(self, cr, uid, taxes, price_unit, address_id=None, product=None, partner=None, quantity=0):
54
54
        res = super(account_tax, self)._unit_compute(cr, uid, taxes, price_unit, address_id, product, partner, quantity)
55
 
        prod_obj = self.pool.get('product.template')    
56
 
        for onetax in res:
 
55
        product_obj = self.pool.get('product.template')    
 
56
        tax_obj = self.pool.get('account.tax')    
 
57
        for tax in res:
57
58
            #product account mapping
58
59
            if product:   
59
 
                onetax['account_collected_id'] = prod_obj.map_account(cr, uid, product, onetax['account_collected_id'])
60
 
                onetax['account_paid_id']      = prod_obj.map_account(cr, uid, product, onetax['account_collected_id'])
 
60
                tax['account_collected_id'] = product_obj.map_account(cr, uid, product, tax['account_collected_id'])
 
61
                tax['account_paid_id']      = product_obj.map_account(cr, uid, product, tax['account_collected_id'])
 
62
            if tax['id']:
 
63
                tax_data = tax_obj.browse(cr, uid, tax['id'])                                            
 
64
                tax['base_account'] = tax_data.base_account 
 
65
                tax['base_account_collected_id'] = tax_data.base_account_collected_id and tax_data.base_account_collected_id.id or False
 
66
                tax['base_account_paid_id']      = tax_data.base_account_paid_id      and tax_data.base_account_collected_id.id or False
 
67
                
61
68
            #TODO - move in some l10n_hr... module    
62
 
            if onetax['id']:
63
 
                tax1 = self.pool.get('account.tax').read(cr, uid, onetax['id'], ['name','description'], context={'lang':'hr_HR'});
64
 
                onetax['name'] = tax1['name'] or tax1['description']
 
69
            if tax['id']:
 
70
                tax1 = self.pool.get('account.tax').read(cr, uid, tax['id']
 
71
                                                         ,['name','description']
 
72
                                                         ,context={'lang':'hr_HR'});
 
73
                tax['name'] = tax1['name'] or tax1['description']
 
74
 
65
75
        return res 
66
76
 
67
77
    def _unit_compute_inv(self, cr, uid, taxes, price_unit, address_id=None, product=None, partner=None):
68
 
        reza = super(account_tax, self)._unit_compute_inv(cr, uid, taxes, price_unit, address_id, product, partner)
69
 
        for onetax in reza:
70
 
            #product account mapping
71
 
            if product:   
72
 
                onetax['account_collected_id'] = prod_obj.map_account(cr, uid, product, onetax['account_collected_id'])
73
 
                onetax['account_paid_id']      = prod_obj.map_account(cr, uid, product, onetax['account_collected_id'])
74
 
        return reza 
 
78
        res = super(account_tax, self)._unit_compute_inv(cr, uid, taxes, price_unit, address_id, product, partner)
 
79
        product_obj = self.pool.get('product.template')    
 
80
        tax_obj = self.pool.get('account.tax')    
 
81
        for tax in res:
 
82
            if product: #product account mapping   
 
83
                tax['account_collected_id'] = product_obj.map_account(cr, uid, product, tax['account_collected_id'])
 
84
                tax['account_paid_id']      = product_obj.map_account(cr, uid, product, tax['account_collected_id'])
 
85
            if tax['id']:
 
86
                tax_data = tax_obj.browse(cr, uid, tax['id'])                                            
 
87
                tax['base_account'] = tax_data.base_account 
 
88
                tax['base_account_collected_id'] = tax_data.base_account_collected_id and tax_data.base_account_collected_id.id or False
 
89
                tax['base_account_paid_id']      = tax_data.base_account_paid_id      and tax_data.base_account_collected_id.id or False
 
90
        return res 
75
91
 
76
92
 
77
93
    def _compute(self, cr, uid, taxes, price_unit, quantity, address_id=None, product=None, partner=None):
78
94
        """
79
95
        Compute tax values for given PRICE_UNIT, QUANTITY and a buyer/seller ADDRESS_ID.
80
 
 
81
96
        RETURN:
82
97
            [ tax ]
83
98
            tax = {'name':'', 'amount':0.0, 'account_collected_id':1, 'account_paid_id':2}
103
118
            if r.get('balance',False):
104
119
                r['amount'] = round(r.get('balance', 0.0) * quantity, account_prec) - total
105
120
            else:
106
 
                #don't round tax on each line
107
 
                #r['amount'] = round(r.get('amount', 0.0) * quantity, account_prec)
 
121
                #don't round tax on each line  #r['amount'] = round(r.get('amount', 0.0) * quantity, account_prec)
108
122
                r['amount'] = r.get('amount', 0.0) * quantity
109
123
                total += r['amount']
110
124