banking-addons-team team mailing list archive
-
banking-addons-team team
-
Mailing list archive
-
Message #01757
[Merge] lp:~akretion-team/banking-addons/70-communication-communication2-clarify into lp:banking-addons
Alexis de Lattre has proposed merging lp:~akretion-team/banking-addons/70-communication-communication2-clarify into lp:banking-addons.
Requested reviews:
Banking Addons Core Editors (banking-addons-team)
For more details, see:
https://code.launchpad.net/~akretion-team/banking-addons/70-communication-communication2-clarify/+merge/212271
As discussed in the banking-addons-drivers mailing-list (https://lists.launchpad.net/banking-addons-drivers/msg00080.html), we would like to clarify the use of the fields 'communication' and 'communication2' :
- Structured => 'communication'
- Free => 'communication' + 'communication2'
But the most important stuff in the MP is the addition of a _prepare method in the wizard "Select Invoices to Pay", so that you can easily inherit the creation of payment lines from the wizard ! I think this is very welcomed for integration work and customer-specific adaptations.
--
https://code.launchpad.net/~akretion-team/banking-addons/70-communication-communication2-clarify/+merge/212271
Your team Banking Addons Core Editors is requested to review the proposed merge of lp:~akretion-team/banking-addons/70-communication-communication2-clarify into lp:banking-addons.
=== modified file 'account_banking_payment/model/payment_line.py'
--- account_banking_payment/model/payment_line.py 2013-08-16 15:05:21 +0000
+++ account_banking_payment/model/payment_line.py 2014-03-22 01:00:54 +0000
@@ -40,14 +40,6 @@
'msg': fields.char('Message', size=255, required=False, readonly=True),
'date_done': fields.date(
'Date Confirmed', select=True, readonly=True),
- # Communication: required is dependend on the mode
- 'communication': fields.char(
- 'Communication', size=64, required=False,
- help=("Used as the message between ordering customer and current "
- "company. Depicts 'What do you want to say to the recipient"
- " about this order ?'"
- ),
- ),
# Communication2: enlarge to 128
'communication2': fields.char(
'Communication 2', size=128,
=== modified file 'account_banking_payment/view/account_payment.xml'
--- account_banking_payment/view/account_payment.xml 2013-08-09 20:55:49 +0000
+++ account_banking_payment/view/account_payment.xml 2014-03-22 01:00:54 +0000
@@ -17,13 +17,6 @@
'invisible':[('state','!=','draft')]
}</attribute>
</xpath>
- <!-- Communication only used for 'structured' communication -->
- <xpath expr="//field[@name='line_ids']/form//field[@name='communication']"
- position="attributes">
- <attribute name="attrs">{
- 'readonly': [('state', '=', 'normal')]
- }</attribute>
- </xpath>
</data>
</field>
</record>
=== modified file 'account_banking_payment_export/model/payment_order_create.py'
--- account_banking_payment_export/model/payment_order_create.py 2014-03-13 17:39:51 +0000
+++ account_banking_payment_export/model/payment_order_create.py 2014-03-22 01:00:54 +0000
@@ -88,6 +88,82 @@
'target': 'new',
}
+ def _prepare_payment_line(self, cr, uid, payment, line, context=None):
+ '''This function is designed to be inherited
+ The resulting dict is passed to the create method of payment.line'''
+ _today = fields.date.context_today(self, cr, uid, context=context)
+ if payment.date_prefered == "now":
+ #no payment date => immediate payment
+ date_to_pay = False
+ elif payment.date_prefered == 'due':
+ ### account_banking
+ # date_to_pay = line.date_maturity
+ date_to_pay = (
+ line.date_maturity
+ if line.date_maturity and line.date_maturity > _today
+ else False)
+ ### end account banking
+ elif payment.date_prefered == 'fixed':
+ ### account_banking
+ # date_to_pay = payment.date_scheduled
+ date_to_pay = (
+ payment.date_scheduled
+ if payment.date_scheduled and payment.date_scheduled > _today
+ else False)
+ ### end account banking
+
+ ### account_banking
+ state = 'normal'
+ communication = line.ref or '-'
+ if line.invoice:
+ if line.invoice.type in ('in_invoice', 'in_refund'):
+ if line.invoice.reference_type == 'structured':
+ state = 'structured'
+ communication = line.invoice.reference
+ else:
+ if line.invoice.reference:
+ communication = line.invoice.reference
+ elif line.invoice.supplier_invoice_number:
+ communication = line.invoice.supplier_invoice_number
+ else:
+ # Make sure that the communication includes the
+ # customer invoice number (in the case of debit order)
+ communication = line.invoice.number.replace('/', '')
+ state = 'structured'
+
+ # support debit orders when enabled
+ if (payment.payment_order_type == 'debit' and
+ 'amount_to_receive' in line):
+ amount_currency = line.amount_to_receive
+ else:
+ amount_currency = line.amount_to_pay
+ ### end account_banking
+
+ ### account banking
+ # t = None
+ # line2bank = line_obj.line2bank(cr, uid, line_ids, t, context)
+ line2bank = self.pool['account.move.line'].line2bank(
+ cr, uid, [line.id], payment.mode.id, context)
+ ### end account banking
+
+ res = {
+ 'move_line_id': line.id,
+ 'amount_currency': amount_currency,
+ 'bank_id': line2bank.get(line.id),
+ 'order_id': payment.id,
+ 'partner_id': line.partner_id and line.partner_id.id or False,
+ ### account banking
+ # 'communication': line.ref or '/'
+ 'communication': communication,
+ 'state': state,
+ ### end account banking
+ 'date': date_to_pay,
+ 'currency': (line.invoice and line.invoice.currency_id.id
+ or line.journal_id.currency.id
+ or line.journal_id.company_id.currency_id.id),
+ }
+ return res
+
def create_payment(self, cr, uid, ids, context=None):
'''
This method is a slightly modified version of the existing method on this
@@ -97,10 +173,6 @@
references are allowed, but others as well
- check date_to_pay is not in the past.
'''
-
- order_obj = self.pool.get('payment.order')
- line_obj = self.pool.get('account.move.line')
- payment_obj = self.pool.get('payment.line')
if context is None:
context = {}
data = self.read(cr, uid, ids, [], context=context)[0]
@@ -108,85 +180,14 @@
if not line_ids:
return {'type': 'ir.actions.act_window_close'}
- payment = order_obj.browse(
+ payment = self.pool['payment.order'].browse(
cr, uid, context['active_id'], context=context)
- ### account banking
- # t = None
- # line2bank = line_obj.line2bank(cr, uid, line_ids, t, context)
- line2bank = line_obj.line2bank(
- cr, uid, line_ids, payment.mode.id, context)
- _today = fields.date.context_today(self, cr, uid, context=context)
- ### end account banking
-
- ## Finally populate the current payment with new lines:
- for line in line_obj.browse(cr, uid, line_ids, context=context):
- if payment.date_prefered == "now":
- #no payment date => immediate payment
- date_to_pay = False
- elif payment.date_prefered == 'due':
- ### account_banking
- # date_to_pay = line.date_maturity
- date_to_pay = (
- line.date_maturity
- if line.date_maturity and line.date_maturity > _today
- else False)
- ### end account banking
- elif payment.date_prefered == 'fixed':
- ### account_banking
- # date_to_pay = payment.date_scheduled
- date_to_pay = (
- payment.date_scheduled
- if payment.date_scheduled and payment.date_scheduled > _today
- else False)
- ### end account banking
-
- ### account_banking
- state = communication2 = False
- communication = line.ref or '/'
- if line.invoice:
- if line.invoice.type in ('in_invoice', 'in_refund'):
- if line.invoice.reference_type == 'structured':
- state = 'structured'
- communication = line.invoice.reference
- else:
- state = 'normal'
- communication2 = line.invoice.reference
- else:
- # Make sure that the communication includes the
- # customer invoice number (in the case of debit order)
- communication = line.invoice.number.replace('/', '')
- state = 'structured'
- if line.invoice.number != line.ref:
- communication2 = line.ref
- else:
- state = 'normal'
- communication2 = line.ref
-
- # support debit orders when enabled
- if (payment.payment_order_type == 'debit' and
- 'amount_to_receive' in line):
- amount_currency = line.amount_to_receive
- else:
- amount_currency = line.amount_to_pay
- ### end account_banking
-
- payment_obj.create(cr, uid, {
- 'move_line_id': line.id,
- 'amount_currency': amount_currency,
- 'bank_id': line2bank.get(line.id),
- 'order_id': payment.id,
- 'partner_id': line.partner_id and line.partner_id.id or False,
- ### account banking
- # 'communication': line.ref or '/'
- 'communication': communication,
- 'communication2': communication2,
- 'state': state,
- ### end account banking
- 'date': date_to_pay,
- 'currency': (line.invoice and line.invoice.currency_id.id
- or line.journal_id.currency.id
- or line.journal_id.company_id.currency_id.id),
- }, context=context)
+ ## Populate the current payment with new lines:
+ for line in self.pool['account.move.line'].browse(
+ cr, uid, line_ids, context=context):
+ vals = self._prepare_payment_line(
+ cr, uid, payment, line, context=context)
+ self.pool['payment.line'].create(cr, uid, vals, context=context)
# Force reload of payment order view as a workaround for lp:1155525
return {'name': _('Payment Orders'),
'context': context,
Follow ups
-
[Merge] lp:~banking-addons-drivers/banking-addons/70-communication-communication2-clarify into lp:banking-addons
From: noreply, 2014-05-23
-
Re: [Merge] lp:~banking-addons-drivers/banking-addons/70-communication-communication2-clarify into lp:banking-addons
From: Acsone, 2014-05-06
-
Re: [Merge] lp:~banking-addons-drivers/banking-addons/70-communication-communication2-clarify into lp:banking-addons
From: Stefan Rijnhart (Therp), 2014-05-06
-
Re: [Merge] lp:~banking-addons-drivers/banking-addons/70-communication-communication2-clarify into lp:banking-addons
From: Alexis de Lattre, 2014-05-05
-
Re: [Merge] lp:~banking-addons-drivers/banking-addons/70-communication-communication2-clarify into lp:banking-addons
From: Alexis de Lattre, 2014-04-22
-
Re: [Merge] lp:~banking-addons-drivers/banking-addons/70-communication-communication2-clarify into lp:banking-addons
From: Stefan Rijnhart (Therp), 2014-04-04
-
Re: [Merge] lp:~banking-addons-drivers/banking-addons/70-communication-communication2-clarify into lp:banking-addons
From: Stefan Rijnhart (Therp), 2014-03-25
-
Re: [Merge] lp:~banking-addons-drivers/banking-addons/70-communication-communication2-clarify into lp:banking-addons
From: Stefan Rijnhart (Therp), 2014-03-25
-
Re: [Merge] lp:~banking-addons-drivers/banking-addons/70-communication-communication2-clarify into lp:banking-addons
From: Acsone, 2014-03-25
-
Re: [Merge] lp:~banking-addons-drivers/banking-addons/70-communication-communication2-clarify into lp:banking-addons
From: Alexis de Lattre, 2014-03-23
-
Re: [Merge] lp:~akretion-team/banking-addons/70-communication-communication2-clarify into lp:banking-addons
From: Stefan Rijnhart (Therp), 2014-03-23
-
Re: [Merge] lp:~akretion-team/banking-addons/70-communication-communication2-clarify into lp:banking-addons
From: Stefan Rijnhart (Therp), 2014-03-23
-
Re: [Merge] lp:~akretion-team/banking-addons/70-communication-communication2-clarify into lp:banking-addons
From: Alexis de Lattre, 2014-03-22
-
Re: [Merge] lp:~akretion-team/banking-addons/70-communication-communication2-clarify into lp:banking-addons
From: Stefan Rijnhart (Therp), 2014-03-22
-
Re: [Merge] lp:~akretion-team/banking-addons/70-communication-communication2-clarify into lp:banking-addons
From: Acsone, 2014-03-22