computation of maturity date on move_line using the payment term defined on partner
bzr revid: mra@tinyerp.com-20080908063506-kvmhf9o4exr5gsm0
This commit is contained in:
parent
49908cfc85
commit
18949ad0e4
|
@ -33,6 +33,9 @@ import netsvc
|
|||
from osv import fields, osv
|
||||
from tools.translate import _
|
||||
|
||||
import mx.DateTime
|
||||
from mx.DateTime import RelativeDateTime, now, DateTime, localtime
|
||||
|
||||
class account_move_line(osv.osv):
|
||||
_name = "account.move.line"
|
||||
_description = "Entry lines"
|
||||
|
@ -336,20 +339,30 @@ class account_move_line(osv.osv):
|
|||
|
||||
#TODO: ONCHANGE_ACCOUNT_ID: set account_tax_id
|
||||
|
||||
def onchange_partner_id(self, cr, uid, ids, move_id, partner_id, account_id=None, debit=0, credit=0, journal=False):
|
||||
if (not partner_id) or account_id:
|
||||
return {}
|
||||
part = self.pool.get('res.partner').browse(cr, uid, partner_id)
|
||||
id1 = part.property_account_payable.id
|
||||
id2 = part.property_account_receivable.id
|
||||
def onchange_partner_id(self, cr, uid, ids, move_id, partner_id, account_id=None, debit=0, credit=0, date=False, journal=False):
|
||||
val = {}
|
||||
if journal:
|
||||
jt = self.pool.get('account.journal').browse(cr, uid, journal).type
|
||||
if jt=='sale':
|
||||
val['account_id'] = id2
|
||||
elif jt=='purchase':
|
||||
val['account_id'] = id1
|
||||
# Compute Maturity Date in val !
|
||||
val['date_maturity'] = False
|
||||
if not partner_id:
|
||||
return {'value':val}
|
||||
if not date:
|
||||
date = now().strftime('%Y-%m-%d')
|
||||
part = self.pool.get('res.partner').browse(cr, uid, partner_id)
|
||||
if part.property_payment_term and part.property_payment_term.line_ids:# Compute Maturity Date in val !
|
||||
line = part.property_payment_term.line_ids[0]
|
||||
next_date = mx.DateTime.strptime(date, '%Y-%m-%d') + RelativeDateTime(days=line.days)
|
||||
if line.condition == 'end of month':
|
||||
next_date += RelativeDateTime(day=-1)
|
||||
next_date = next_date.strftime('%Y-%m-%d')
|
||||
val['date_maturity'] = next_date
|
||||
if not account_id:
|
||||
id1 = part.property_account_payable.id
|
||||
id2 = part.property_account_receivable.id
|
||||
if journal:
|
||||
jt = self.pool.get('account.journal').browse(cr, uid, journal).type
|
||||
if jt=='sale':
|
||||
val['account_id'] = id2
|
||||
elif jt=='purchase':
|
||||
val['account_id'] = id1
|
||||
return {'value':val}
|
||||
|
||||
#
|
||||
|
|
|
@ -672,7 +672,7 @@
|
|||
<field name="ref" select="2"/>
|
||||
<field name="invoice" select="2"/>
|
||||
<field name="account_id" select="1"/>
|
||||
<field name="partner_id" select="1"/>
|
||||
<field name="partner_id" select="1" on_change="onchange_partner_id(False,partner_id,account_id,debit,credit,date)"/>
|
||||
|
||||
<field name="debit" select="2"/>
|
||||
<field name="credit" select="2"/>
|
||||
|
@ -725,7 +725,7 @@
|
|||
<field name="journal_id" readonly="False" select="1"/>
|
||||
<field name="period_id" readonly="False" select="2"/>
|
||||
<field name="account_id" select="1"/>
|
||||
<field name="partner_id" select="2"/>
|
||||
<field name="partner_id" select="2" on_change="onchange_partner_id(False,partner_id,account_id,debit,credit,date)"/>
|
||||
<newline/>
|
||||
<field name="debit" select="2"/>
|
||||
<field name="credit" select="2"/>
|
||||
|
@ -807,7 +807,7 @@
|
|||
<field name="name" select="1"/>
|
||||
<field name="date"/>
|
||||
<field name="account_id"/>
|
||||
<field name="partner_id" on_change="onchange_partner_id(False,partner_id,account_id,debit,credit)"/>
|
||||
<field name="partner_id" on_change="onchange_partner_id(False,partner_id,account_id,debit,credit,date)"/>
|
||||
|
||||
<field name="debit" select="1"/>
|
||||
<field name="credit" select="1"/>
|
||||
|
@ -829,7 +829,7 @@
|
|||
<tree editable="top" string="Account Entry Line">
|
||||
<field name="date"/>
|
||||
<field name="name"/>
|
||||
<field name="partner_id" on_change="onchange_partner_id(False,partner_id,account_id,debit,credit)"/>
|
||||
<field name="partner_id" on_change="onchange_partner_id(False,partner_id,account_id,debit,credit,date)"/>
|
||||
<field name="account_id"/>
|
||||
<field name="date_maturity"/>
|
||||
<field name="ref"/>
|
||||
|
|
Loading…
Reference in New Issue