Merge lp:~magentoerpconnect-community/magentoerpconnect/legacy61-fix-1011491 into lp:magentoerpconnect/oerp6.1-oldstable

Proposed by Guewen Baconnier @ Camptocamp
Status: Merged
Merged at revision: 664
Proposed branch: lp:~magentoerpconnect-community/magentoerpconnect/legacy61-fix-1011491
Merge into: lp:magentoerpconnect/oerp6.1-oldstable
Diff against target: 64 lines (+35/-12)
1 file modified
magentoerpconnect/sale.py (+35/-12)
To merge this branch: bzr merge lp:~magentoerpconnect-community/magentoerpconnect/legacy61-fix-1011491
Reviewer Review Type Date Requested Status
Alexandre Fayolle - camptocamp code review, no test Approve
Review via email: mp+109634@code.launchpad.net

Description of the change

Generate automatic payments according to the sale order's payment terms.

More info at :
https://bugs.launchpad.net/magentoerpconnect/+bug/1011491

To post a comment you must log in.
Revision history for this message
Guewen Baconnier @ Camptocamp (gbaconnier-c2c) wrote :

I would be glad to have a review on this branch.

Thanks

Revision history for this message
Alexandre Fayolle - camptocamp (alexandre-fayolle-c2c) wrote :

LGTM

review: Approve (code review, no test)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'magentoerpconnect/sale.py'
--- magentoerpconnect/sale.py 2012-05-25 09:01:25 +0000
+++ magentoerpconnect/sale.py 2012-06-11 13:33:19 +0000
@@ -621,6 +621,26 @@
621 amount = payment_info.get('amount_ordered', False)621 amount = payment_info.get('amount_ordered', False)
622 return paid, amount622 return paid, amount
623623
624 def _get_payment_amounts(self, cr, uid, order, total_amount, context=None):
625 """
626 Compute the payments to create for an order based on an amount
627 which represents the total paid.
628
629 Uses the account.payment.term if there is one on the order so it will
630 correctly divide the payment between the billing deadlines.
631
632 :param browse_record order: browsable order
633 :param float total_amount: total amount of the payment
634 :return: list of tuple of payment [(payment date, payment amount), ...]
635 """
636 if order.payment_term:
637 return self.pool.get('account.payment.term').compute(
638 cr, uid, order.payment_term.id, total_amount,
639 date_ref=order.date_order, context=context)
640 else:
641 # full payment should be generated
642 return [(order.date_order, total_amount)]
643
624 def create_payments(self, cr, uid, order_id, data_record, context=None):644 def create_payments(self, cr, uid, order_id, data_record, context=None):
625 if context is None:645 if context is None:
626 context = {}646 context = {}
@@ -630,18 +650,21 @@
630 paid, amount = self._parse_external_payment(650 paid, amount = self._parse_external_payment(
631 cr, uid, data_record, context=context)651 cr, uid, data_record, context=context)
632 if paid:652 if paid:
633 order = self.pool.get('sale.order').browse(653 # external amount is a str
634 cr, uid, order_id, context)654 amount = float(amount)
635 self.generate_payment_with_pay_code(655 order = self.pool.get('sale.order').browse( cr, uid, order_id, context)
636 cr, uid,656 payments = self._get_payment_amounts(cr, uid, order, amount, context=context)
637 payment_info['method'],657 for pay_date, pay_amount in payments:
638 order.partner_id.id,658 self.generate_payment_with_pay_code(
639 float(amount),659 cr, uid,
640 "mag_" + payment_info['payment_id'],660 payment_info['method'],
641 "mag_" + data_record['increment_id'],661 order.partner_id.id,
642 order.date_order,662 pay_amount,
643 paid,663 "mag_" + payment_info['payment_id'],
644 context=context)664 "mag_" + data_record['increment_id'],
665 pay_date,
666 paid,
667 context=context)
645 else:668 else:
646 paid = super(sale_order, self).create_payments(669 paid = super(sale_order, self).create_payments(
647 cr, uid, order_id, data_record, context=context)670 cr, uid, order_id, data_record, context=context)