Merge lp:~julie-w/unifield-server/US-4846 into lp:unifield-server

Proposed by jftempo
Status: Merged
Merged at revision: 5089
Proposed branch: lp:~julie-w/unifield-server/US-4846
Merge into: lp:unifield-server
Diff against target: 49 lines (+15/-8)
1 file modified
bin/addons/register_accounting/wizard/down_payment.py (+15/-8)
To merge this branch: bzr merge lp:~julie-w/unifield-server/US-4846
Reviewer Review Type Date Requested Status
UniField Reviewer Team Pending
Review via email: mp+354241@code.launchpad.net
To post a comment you must log in.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'bin/addons/register_accounting/wizard/down_payment.py'
2--- bin/addons/register_accounting/wizard/down_payment.py 2018-07-10 16:17:22 +0000
3+++ bin/addons/register_accounting/wizard/down_payment.py 2018-09-04 12:12:00 +0000
4@@ -59,17 +59,24 @@
5 po_id = po_id[0]
6 # Prepare some values
7 po_obj = self.pool.get('purchase.order')
8- pol_obj = self.pool.get('purchase.order.line')
9- po = po_obj.read(cr, uid, po_id, ['partner_id', 'down_payment_ids', 'order_line'])
10+ tax_obj = self.pool.get('account.tax')
11+ po_fields = ['partner_id', 'order_line', 'partner_address_id']
12+ po = po_obj.browse(cr, uid, po_id, fields_to_fetch=po_fields, context=context)
13 absl = self.pool.get('account.bank.statement.line').browse(cr, uid, absl_id)
14 # Verify that PO partner is the same as down payment partner
15 if not absl.partner_id:
16 raise osv.except_osv(_('Warning'), _('Third Party is mandatory for down payments!'))
17- if po.get('partner_id', [False])[0] != absl.partner_id.id:
18+ if po.partner_id.id != absl.partner_id.id:
19 raise osv.except_osv(_('Error'), _('Third party from Down payment and Purchase Order are different!'))
20- total = 0.0
21- for pol in pol_obj.read(cr, uid, po['order_line'], ['state', 'price_unit', 'product_qty'], context=context):
22- total += pol['state'] in ('confirmed', 'done') and (pol['price_unit'] * pol['product_qty']) or 0.0
23+ amount_untaxed = amount_tax = 0.0
24+ for pol in po.order_line:
25+ if pol.state in ('confirmed', 'done'):
26+ amount_untaxed += pol.price_subtotal or 0.0
27+ for c in tax_obj.compute_all(cr, uid, pol.taxes_id or [], pol.price_unit, pol.product_qty,
28+ po.partner_address_id.id, pol.product_id and pol.product_id.id or False,
29+ po.partner_id)['taxes']:
30+ amount_tax += c.get('amount', 0.0)
31+ total_po = amount_untaxed + amount_tax
32
33 absl_obj = self.pool.get('account.bank.statement.line')
34 args = [('down_payment_id', '=', po_id)]
35@@ -96,12 +103,12 @@
36 included_dp_amls.append(dp.get('id'))
37
38 total_amount = lines_amount + absl.amount
39- if (total + total_amount) < -0.001:
40+ if (total_po + total_amount) < -0.001:
41 raise osv.except_osv(_('Warning'),
42 _('Maximum amount should be: %s. Register' +
43 ' line amount is higher than (PO confirmed amount - ' +
44 'unexpended DPs - open/paid INV).')
45- % (total + lines_amount))
46+ % (total_po + lines_amount))
47 return True
48
49 def button_validate(self, cr, uid, ids, context=None):

Subscribers

People subscribed via source and target branches