Merge lp:~openbig/bigconsulting/changes_in_mileston into lp:bigconsulting

Proposed by gpa(OpenERP)
Status: Superseded
Proposed branch: lp:~openbig/bigconsulting/changes_in_mileston
Merge into: lp:bigconsulting
Diff against target: 475 lines (+144/-102)
4 files modified
account_invoice_cash_discount/account_invoice_cash_discount.py (+42/-29)
account_invoice_cash_discount/wizard/account_pay_invoice.py (+63/-45)
account_invoice_cash_discount/wizard/account_pay_invoice_view.xml (+1/-1)
account_invoice_cash_discount/wizard/invoice_statement_payment.py (+38/-27)
To merge this branch: bzr merge lp:~openbig/bigconsulting/changes_in_mileston
Reviewer Review Type Date Requested Status
openbig Pending
Review via email: mp+31279@code.launchpad.net

This proposal supersedes a proposal from 2010-07-29.

This proposal has been superseded by a proposal from 2010-07-29.

Description of the change

changes in milestone1 and milestone2 functionality to calculate tax and discount

To post a comment you must log in.
63. By gpa(OpenERP)

changes in calculation of ratio

Unmerged revisions

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'account_invoice_cash_discount/account_invoice_cash_discount.py'
2--- account_invoice_cash_discount/account_invoice_cash_discount.py 2010-07-27 14:33:57 +0000
3+++ account_invoice_cash_discount/account_invoice_cash_discount.py 2010-07-29 13:49:39 +0000
4@@ -317,24 +317,30 @@
5 if amount_discount>0.0:
6 for line in invoice.invoice_line:
7 if line.invoice_line_tax_id:
8- for tax in tax_obj.compute(cr, uid, line.invoice_line_tax_id, amount_discount, line.quantity, invoice.address_invoice_id.id, line.product_id, invoice.partner_id):
9- tax_amount = tax['amount']
10- tax_total_amount += tax['amount']
11- tax_invoice_id = invoice_tax_obj.search(cr,uid,[('invoice_id','=',invoice.id),('name','=',tax['name'])])
12+ total_tax_amount = 0.0
13+ for tax_id in line.invoice_line_tax_id:
14+ tax_data = tax_obj.browse(cr, uid, tax_id.id, context=context)
15+ tax_amt = amount_discount * tax_data.amount
16+ tax_real_amt = tax_amt / (1 + tax_data.amount)
17+ total_tax_amount += tax_real_amt
18+ tax_invoice_id = invoice_tax_obj.search(cr,uid,[('invoice_id','=',invoice.id),('name','=',tax_data.name)])
19+
20 for tax_id in tax_invoice_id:
21 tax_value = invoice_tax_obj.browse(cr, uid, tax_id)
22 tax_account_id = tax_value.account_id.id
23+ tax_code_id = tax_value.tax_code_id.id
24+
25 l3 = {
26- 'debit': direction * tax_amount<0 and - direction * tax_amount,
27- 'credit': direction * tax_amount>0 and direction * tax_amount,
28+ 'debit': direction * tax_real_amt<0 and - direction * tax_real_amt,
29+ 'credit': direction * tax_real_amt>0 and direction * tax_real_amt,
30 'account_id': tax_account_id,
31 'partner_id': invoice.partner_id.id,
32 'ref':ref,
33 'date': date,
34 'currency_id':currency_id,
35 'amount_currency':amount_currency and direction * amount_currency or 0.0,
36- 'tax_code_id':tax_value.tax_code_id.id,
37- 'tax_amount':tax_amount,
38+ 'tax_code_id':tax_code_id,
39+ 'tax_amount':tax_real_amt,
40 }
41 l3['name'] = name
42 lines.append((0, 0, l3))
43@@ -358,41 +364,49 @@
44 'tax_amount':move_line_data.tax_amount,
45 }
46 lines.append((0, 0, l4))
47-
48 else:
49 if amount_discount>0:
50 account_id = False
51 if 'account_id' in context and context['account_id']:
52 account_id = context['account_id']
53-# if tax_total_amount>0:
54-# amount_discount = (amount_discount - tax_total_amount)
55-# else:
56-# amount_discount = amount_discount
57+
58 for line in invoice.invoice_line:
59 line_tax_amount = 0.0
60 tax_amount = 0.0
61 discount = 0.0
62- for tax in tax_obj.compute(cr, uid, line.invoice_line_tax_id, line.price_subtotal, line.quantity, invoice.address_invoice_id.id, line.product_id, invoice.partner_id):
63+ for tax in tax_obj.compute(cr, uid, line.invoice_line_tax_id, line.price_subtotal/line.quantity, line.quantity, invoice.address_invoice_id.id, line.product_id, invoice.partner_id):
64 line_tax_amount = tax['amount']
65
66 line_total = line.price_subtotal + line_tax_amount
67 invoice_res_amount = invoice.amount_total
68 line_ratio = line_total / invoice_res_amount
69
70- discount = amount_discount * line_ratio
71-
72- for tax in tax_obj.compute(cr, uid, line.invoice_line_tax_id, amount_discount, line.quantity, invoice.address_invoice_id.id, line.product_id, invoice.partner_id):
73- tax_amount = tax['amount']
74-
75+ discount_ratio = amount_discount * line_ratio
76+ total_tax_amount = 0.0
77+
78+ for tax_id in line.invoice_line_tax_id:
79+ tax_data = tax_obj.browse(cr, uid, tax_id.id, context=context)
80+ tax_amt = discount_ratio * tax_data.amount
81+ tax_real_amt = tax_amt / (1 + tax_data.amount)
82+ total_tax_amount += tax_real_amt
83+
84+ tax_invoice_id = invoice_tax_obj.search(cr,uid,[('invoice_id','=',invoice.id),('name','=',tax_data.name)])
85+ for tax_id in tax_invoice_id:
86+ tax_value = invoice_tax_obj.browse(cr, uid, tax_id)
87+ tax_account_id = tax_value.account_id.id
88+ base_code_id = tax_value.base_code_id.id
89+
90 l4 = {
91- 'debit': direction * (discount - tax_amount)<0 and - direction * (discount - tax_amount),
92- 'credit': direction * (discount - tax_amount)>0 and direction * (discount - tax_amount),
93+ 'debit': direction * (discount - total_tax_amount)<0 and - direction * (discount - total_tax_amount),
94+ 'credit': direction * (discount - total_tax_amount)>0 and direction * (discount - total_tax_amount),
95 'account_id': account_id,
96 'partner_id': invoice.partner_id.id,
97 'ref':ref,
98 'date': date,
99 'currency_id':currency_id,
100 'amount_currency':amount_currency and direction * amount_currency or 0.0,
101+ 'tax_code_id':base_code_id,
102+ 'tax_amount':line.price_unit,
103 }
104 l4['name'] = name
105 lines.append((0, 0, l4))
106@@ -530,9 +544,9 @@
107 amount = res_currency_obj.compute(cr, uid, st.currency.id,
108 company_currency_id, move.amount, context=context,
109 account=acc_cur)
110- if move.reconcile_id and move.reconcile_id.line_new_ids:
111- for newline in move.reconcile_id.line_new_ids:
112- amount += newline.amount
113+# if move.reconcile_id and move.reconcile_id.line_new_ids:
114+# for newline in move.reconcile_id.line_new_ids:
115+# amount += newline.amount
116
117 val = {
118 'name': move.name,
119@@ -569,9 +583,10 @@
120 val['amount_currency'] = amount_cur
121
122 torec.append(account_move_line_obj.create(cr, uid, val , context=context))
123-
124+ newline_sum = 0.0
125 if move.reconcile_id and move.reconcile_id.line_new_ids:
126 for newline in move.reconcile_id.line_new_ids:
127+ newline_sum += newline.amount
128 account_move_line_obj.create(cr, uid, {
129 'name': newline.name or move.name,
130 'date': move.date,
131@@ -673,8 +688,6 @@
132 'amount_currency': amount_currency,
133 'currency_id': currency_id,
134 }, context=context)
135- else:
136- continue
137
138 account_move_line_obj.create(cr, uid, {
139 'name': move.name,
140@@ -683,8 +696,8 @@
141 'move_id': move_id,
142 'partner_id': ((move.partner_id) and move.partner_id.id) or False,
143 'account_id': account_id,
144- 'credit': ((amount < 0) and -amount) or 0.0,
145- 'debit': ((amount > 0) and amount) or 0.0,
146+ 'credit': (((amount-newline_sum) < 0) and -(amount-newline_sum)) or 0.0,
147+ 'debit': (((amount-newline_sum) > 0) and (amount-newline_sum)) or 0.0,
148 'statement_id': st.id,
149 'journal_id': st.journal_id.id,
150 'period_id': st.period_id.id,
151
152=== modified file 'account_invoice_cash_discount/wizard/account_pay_invoice.py'
153--- account_invoice_cash_discount/wizard/account_pay_invoice.py 2010-07-27 14:33:57 +0000
154+++ account_invoice_cash_discount/wizard/account_pay_invoice.py 2010-07-29 13:49:39 +0000
155@@ -140,43 +140,42 @@
156 discount_account_id = self._get_account(cr, uid, context=context)
157 if discount>0.0:
158 for line in invoice.invoice_line:
159- tax_amount = 0.0
160+ total_tax_amount = 0.0
161+ ########
162 line_tax_amount = 0.0
163-
164- for tax in tax_obj.compute(cr, uid, line.invoice_line_tax_id, line.price_subtotal, line.quantity, invoice.address_invoice_id.id, line.product_id, invoice.partner_id):
165- line_tax_amount = tax['amount']
166-
167+ for tax in tax_obj.compute(cr, uid, line.invoice_line_tax_id, line.price_subtotal/line.quantity, line.quantity, invoice.address_invoice_id.id, line.product_id, invoice.partner_id):
168+ line_tax_amount += tax['amount']
169 line_total = line.price_subtotal + line_tax_amount
170 invoice_res_amount = invoice.amount_total
171 line_ratio = line_total / invoice_res_amount
172+ #####################################################
173+ discount_pay = discount * line_ratio
174
175 if line.invoice_line_tax_id:
176- for tax in tax_obj.compute(cr, uid, line.invoice_line_tax_id, discount, line.quantity, invoice.address_invoice_id.id, line.product_id, invoice.partner_id):
177- tax_amount = tax['amount']
178- tax_invoice_id = invoice_tax_obj.search(cr,uid,[('invoice_id','=',invoice.id),('name','=',tax['name'])])
179+ for tax_id in line.invoice_line_tax_id:
180+ tax_data = tax_obj.browse(cr, uid, tax_id.id, context=context)
181+ tax_amt = discount_pay * tax_data.amount
182+ tax_real_amt = tax_amt / (1 + tax_data.amount)
183+ total_tax_amount += tax_real_amt
184+ tax_invoice_id = invoice_tax_obj.search(cr,uid,[('invoice_id','=',invoice.id),('name','=',tax_data.name)])
185 for tax_id in tax_invoice_id:
186 tax_value = invoice_tax_obj.browse(cr, uid, tax_id)
187- tax_account_id = tax_value.account_id.id
188 base_code_id = tax_value.base_code_id.id
189-
190- if invoice.company_id.currency_id.id<>invoice.currency_id.id:
191- amount = cur_obj.compute(cr, uid, invoice.currency_id.id, invoice.company_id.currency_id.id, tax_amount, context=context)
192-
193- discount_pay = discount * line_ratio
194+
195 if invoice.company_id.currency_id.id<>invoice.currency_id.id:
196- discount_amount = discount - tax_amount
197+ discount_amount = discount - tax_real_amt
198 amount = cur_obj.compute(cr, uid, invoice.currency_id.id, invoice.company_id.currency_id.id, discount_amount, context=context)
199-
200+
201 l4 = {
202- 'debit': direction * (discount_pay - tax_amount)<0 and - direction * (discount_pay - tax_amount),
203- 'credit': direction * (discount_pay - tax_amount)>0 and direction * (discount_pay - tax_amount),
204+ 'debit': direction * (discount_pay - total_tax_amount)<0 and - direction * (discount_pay - total_tax_amount),
205+ 'credit': direction * (discount_pay - total_tax_amount)>0 and direction * (discount_pay - total_tax_amount),
206 'account_id': discount_account_id,
207 'date': date,
208 'name':name,
209 'currency_id':invoice.currency_id.id or False,
210 'journal_id':invoice.journal_id.id,
211 'tax_code_id':base_code_id,
212- 'tax_amount':tax_amount,
213+ 'tax_amount':line.price_unit,
214 'amount_currency':amount and direction * amount or 0.0,
215 'analytic_account_id':line.account_analytic_id.id or False,
216 }
217@@ -206,33 +205,47 @@
218 line_ids = []
219
220 tax_code_id = False
221+ tax_account_id = False
222 discount = self._get_discount(cr, uid, context=context)
223 if discount>0.0:
224 for line in invoice.invoice_line:
225- tax_amount = 0.0
226 line_tax_amount = 0.0
227+ total_tax_amount = 0.0
228+ ############# Ratio#####
229+ for tax in tax_obj.compute(cr, uid, line.invoice_line_tax_id, line.price_subtotal/line.quantity, line.quantity, invoice.address_invoice_id.id, line.product_id, invoice.partner_id):
230+ line_tax_amount += tax['amount']
231+ line_total = line.price_subtotal + line_tax_amount
232+ invoice_res_amount = invoice.amount_total
233+ line_ratio = line_total / invoice_res_amount
234+ #############
235+ ### discount for the invoice line
236+ discount_pay = discount * line_ratio
237+
238 if line.invoice_line_tax_id:
239- for tax in tax_obj.compute(cr, uid, line.invoice_line_tax_id, discount, line.quantity, invoice.address_invoice_id.id, line.product_id, invoice.partner_id):
240- tax_amount = tax['amount']
241- tax_invoice_id = invoice_tax_obj.search(cr,uid,[('invoice_id','=',invoice.id),('name','=',tax['name'])])
242+ for tax_id in line.invoice_line_tax_id:
243+ tax_data = tax_obj.browse(cr, uid, tax_id.id, context=context)
244+ tax_amt = discount_pay * tax_data.amount
245+ tax_real_amt = tax_amt / (1 + tax_data.amount)
246+ total_tax_amount += tax_real_amt
247+ tax_invoice_id = invoice_tax_obj.search(cr,uid,[('invoice_id','=',invoice.id),('name','=',tax_data.name)])
248 for tax_id in tax_invoice_id:
249 tax_value = invoice_tax_obj.browse(cr, uid, tax_id)
250 tax_account_id = tax_value.account_id.id
251 tax_code_id = tax_value.tax_code_id.id
252-
253+
254 if invoice.company_id.currency_id.id<>invoice.currency_id.id:
255 amount = cur_obj.compute(cr, uid, invoice.currency_id.id, invoice.company_id.currency_id.id, tax_amount, context=context)
256-
257+
258 l3 = {
259- 'debit': direction * tax_amount<0 and - direction * tax_amount,
260- 'credit': direction * tax_amount>0 and direction * tax_amount,
261+ 'debit': direction * tax_real_amt<0 and - direction * tax_real_amt,
262+ 'credit': direction * tax_real_amt>0 and direction * tax_real_amt,
263 'account_id': tax_account_id,
264 'date': date,
265 'journal_id':invoice.journal_id.id or False,
266 'name':name,
267 'currency_id':invoice.currency_id.id or False,
268- 'tax_code_id':tax_value.tax_code_id.id,
269- 'tax_amount':-tax_amount,
270+ 'tax_code_id':tax_code_id,
271+ 'tax_amount':(discount_pay-tax_real_amt),
272 'amount_currency':amount and direction * amount or 0.0,
273 'analytic_account_id':line.account_analytic_id.id or False,
274 }
275@@ -311,22 +324,28 @@
276 discount_account_id = False
277 tax_code_id = False
278 base_code_id = False
279+ tax_account_id = False
280
281 for line in invoice.invoice_line:
282 tax_amount = 0.0
283 line_tax_amount = 0.0
284-
285+ total_tax_amount = 0.0
286 #####get the ratio of the line in the total invoice amount
287- for tax in tax_obj.compute(cr, uid, line.invoice_line_tax_id, line.price_subtotal, line.quantity, invoice.address_invoice_id.id, line.product_id, invoice.partner_id):
288+ for tax in tax_obj.compute(cr, uid, line.invoice_line_tax_id, line.price_subtotal/line.quantity, line.quantity, invoice.address_invoice_id.id, line.product_id, invoice.partner_id):
289 line_tax_amount = tax['amount']
290 line_total = line.price_subtotal + line_tax_amount
291 invoice_res_amount = invoice.amount_total
292 line_ratio = line_total / invoice_res_amount
293 ###########################
294+ discount_pay = data['cash_amount'] * line_ratio
295 if line.invoice_line_tax_id:
296- for tax in tax_obj.compute(cr, uid, line.invoice_line_tax_id, data['cash_amount'], line.quantity, invoice.address_invoice_id.id, line.product_id, invoice.partner_id):
297- tax_amount = tax['amount']
298- tax_invoice_id = invoice_tax_obj.search(cr,uid,[('invoice_id','=',invoice.id),('name','=',tax['name'])])
299+ for tax_id in line.invoice_line_tax_id:
300+ tax_data = tax_obj.browse(cr, uid, tax_id.id, context=context)
301+ tax_amt = discount_pay * tax_data.amount
302+ tax_real_amt = tax_amt / (1 + tax_data.amount)
303+ total_tax_amount += tax_real_amt
304+
305+ tax_invoice_id = invoice_tax_obj.search(cr,uid,[('invoice_id','=',invoice.id),('name','=',tax_data.name)])
306 for tax_id in tax_invoice_id:
307 tax_value = invoice_tax_obj.browse(cr, uid, tax_id)
308 tax_account_id = tax_value.account_id.id
309@@ -337,15 +356,15 @@
310 amount = cur_obj.compute(cr, uid, invoice.currency_id.id, invoice.company_id.currency_id.id, tax_amount, context=context)
311
312 l3 = {
313- 'debit': direction * tax_amount<0 and - direction * tax_amount,
314- 'credit': direction * tax_amount>0 and direction * tax_amount,
315+ 'debit': direction * tax_real_amt<0 and - direction * tax_real_amt,
316+ 'credit': direction * tax_real_amt>0 and direction * tax_real_amt,
317 'account_id': tax_account_id,
318 'date': date,
319 'journal_id':data.get('journal_id',False) ,
320 'name':name,
321 'currency_id':invoice.currency_id.id or False,
322- 'tax_code_id':tax_value.tax_code_id.id,
323- 'tax_amount':-tax_amount,
324+ 'tax_code_id':tax_code_id,
325+ 'tax_amount':(discount_pay-tax_real_amt),
326 'amount_currency':amount and direction * amount or 0.0,
327 'analytic_account_id':line.account_analytic_id.id or False,
328 }
329@@ -368,21 +387,20 @@
330 else:
331 discount_account_id = data['account_id']
332
333- discount = data['cash_amount'] * line_ratio
334 if invoice.company_id.currency_id.id<>invoice.currency_id.id:
335- discount_amount = discount - tax_amount
336+ discount_amount = discount_pay - tax_amount
337 amount = cur_obj.compute(cr, uid, invoice.currency_id.id, invoice.company_id.currency_id.id, discount_amount, context=context)
338-
339+
340 l4 = {
341- 'debit': direction * (discount - tax_amount)<0 and - direction * (discount - tax_amount),
342- 'credit': direction * (discount - tax_amount)>0 and direction * (discount - tax_amount),
343+ 'debit': direction * (discount_pay - total_tax_amount)<0 and - direction * (discount_pay - total_tax_amount),
344+ 'credit': direction * (discount_pay - total_tax_amount)>0 and direction * (discount_pay - total_tax_amount),
345 'account_id': discount_account_id,
346 'date': date,
347 'name':name,
348 'currency_id':invoice.currency_id.id or False,
349 'journal_id':data.get('journal_id',False),
350 'tax_code_id':base_code_id,
351- 'tax_amount':tax_amount,
352+ 'tax_amount':line.price_unit,
353 'amount_currency':amount and direction * amount or 0.0,
354 'analytic_account_id':line.account_analytic_id.id or False,
355 }
356@@ -516,7 +534,7 @@
357 debit+=payment.debit
358 credit+=payment.credit
359 amount_paid+=abs(debit-credit)
360-
361+
362 if data['cash_residual_amount'] == 0.0 or self.pool.get('res.currency').is_zero(cr, uid, invoice.company_id.currency_id,
363 (amount_paid - inv_amount_company_currency)):
364 return self.pay_and_reconcile(cr, uid, ids, context=context)
365
366=== modified file 'account_invoice_cash_discount/wizard/account_pay_invoice_view.xml'
367--- account_invoice_cash_discount/wizard/account_pay_invoice_view.xml 2010-07-26 12:24:39 +0000
368+++ account_invoice_cash_discount/wizard/account_pay_invoice_view.xml 2010-07-29 13:49:39 +0000
369@@ -76,7 +76,7 @@
370 <field name="model">account.move.line.memory</field>
371 <field name="type">tree</field>
372 <field name="arch" type="xml">
373- <tree string="Account Move Line">
374+ <tree string="Account Move Line" editable="bottom">
375 <field name="date"/>
376 <field name="name"/>
377 <field name="account_id"/>
378
379=== modified file 'account_invoice_cash_discount/wizard/invoice_statement_payment.py'
380--- account_invoice_cash_discount/wizard/invoice_statement_payment.py 2010-07-23 11:30:07 +0000
381+++ account_invoice_cash_discount/wizard/invoice_statement_payment.py 2010-07-29 13:49:39 +0000
382@@ -138,47 +138,58 @@
383 'line_ids': [(6, 0, [line.id])]
384 }, context=context)
385
386- ######################################### Calculation for discount and taxes######
387+ ######################################### Calculation for discount and taxes######
388 if line.invoice.id:
389
390 discount = 0.0
391 account = False
392- tax_total_amount = 0.0
393- total_discount = 0.0
394 invoice = obj_inv.browse(cursor, user, line.invoice.id, context=context)
395-
396 for invoice_line in invoice.invoice_line:
397+ line_tax_amount = 0.0
398+ total_tax_amount = 0.0
399+ #####get the ratio of the line in the total invoice amount
400+ for tax in tax_obj.compute(cursor, user, invoice_line.invoice_line_tax_id, invoice_line.price_subtotal/line.quantity, invoice_line.quantity, invoice.address_invoice_id.id, invoice_line.product_id, invoice.partner_id):
401+ line_tax_amount += tax['amount']
402+ line_total = invoice_line.price_subtotal + line_tax_amount
403+ invoice_res_amount = invoice.amount_total
404+ line_ratio = line_total / invoice_res_amount
405+ ###########################
406+ amount = obj_inv._get_amount(cursor, user, [invoice.id] ,invoice.residual, invoice.payment_term.id, context=context)
407+ invoice_amount = amount['amount']
408+ discount = obj_inv._get_payment(cursor, user, [invoice.id] , invoice_amount, invoice.payment_term.id, context=context)
409+ account = obj_inv._get_account(cursor, user, [invoice.id] , invoice.residual, invoice.payment_term.id, context=context)
410+
411+ ### discount for the invoice line
412+ discount_pay = discount * line_ratio
413 if invoice_line.invoice_line_tax_id:
414- amount_invoice_line = obj_inv._get_amount(cursor, user, [invoice.id] , invoice_line.price_subtotal, invoice.payment_term.id, context=context)
415- line_amount = amount_invoice_line['amount']
416- discount = obj_inv._get_payment(cursor, user, [invoice.id] , line_amount, invoice.payment_term.id, context=context)
417- account = obj_inv._get_account(cursor, user, [invoice.id] , invoice.residual, invoice.payment_term.id, context=context)
418-
419- tax_amount = 0.0
420- for tax in tax_obj.compute(cursor, user, invoice_line.invoice_line_tax_id, discount, invoice_line.quantity, invoice.address_invoice_id.id, invoice_line.product_id, invoice.partner_id):
421- tax_amount = tax['amount']
422- tax_total_amount += tax['amount']
423- tax_invoice_id = invoice_tax_obj.search(cursor,user,[('invoice_id','=',invoice.id),('name','=',tax['name'])])
424+ tax_real_amt = 0.0
425+ tax_account_id = False
426+ for tax_id in invoice_line.invoice_line_tax_id:
427+ tax_data = tax_obj.browse(cursor, user, tax_id.id, context=context)
428+ tax_amt = discount_pay * tax_data.amount
429+ tax_real_amt = tax_amt / (1 + tax_data.amount)
430+ total_tax_amount += tax_real_amt
431+
432+ tax_invoice_id = invoice_tax_obj.search(cursor, user,[('invoice_id','=',invoice.id),('name','=',tax_data.name)])
433 for tax_id in tax_invoice_id:
434 tax_value = invoice_tax_obj.browse(cursor, user, tax_id)
435 tax_account_id = tax_value.account_id.id
436-
437- if tax_amount>0:
438+ tax_code_id = tax_value.tax_code_id.id
439+ if tax_real_amt>0:
440 statement_reconcile_line_obj.create(cursor, user, {
441 'name': line.name,
442- 'amount': tax_amount,
443+ 'amount': tax_real_amt,
444 'account_id': tax_account_id,
445 'line_id': reconcile_id,
446 }, context=context)
447-
448- if discount>0:
449- total_discount += discount
450- statement_reconcile_line_obj.create(cursor, user, {
451- 'name': line.name,
452- 'amount': discount - tax_amount,
453- 'account_id': account,
454- 'line_id': reconcile_id,
455- }, context=context)
456+ if discount>0:
457+ discount = discount * line_ratio
458+ statement_reconcile_line_obj.create(cursor, user, {
459+ 'name': line.name,
460+ 'amount': discount - total_tax_amount,
461+ 'account_id': account,
462+ 'line_id': reconcile_id,
463+ }, context=context)
464 ##########################################################################
465
466 if line.journal_id.type == 'sale':
467@@ -190,7 +201,7 @@
468
469 statement_line_obj.create(cursor, user, {
470 'name': line.name or '?',
471- 'amount': amount,
472+ 'amount': invoice_amount,
473 'type': type,
474 'partner_id': line.partner_id.id,
475 'account_id': line.account_id.id,

Subscribers

People subscribed via source and target branches