Bugfix Sales, some modifs

lp bug: https://launchpad.net/bugs/263568 fixed

bzr revid: fp@tinyerp.com-20080908142513-qjdeffk20gtqjf7i
This commit is contained in:
Fabien Pinckaers 2008-09-08 16:25:13 +02:00
commit 4d16e06c77
5 changed files with 34 additions and 19 deletions

View File

@ -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}
#

View File

@ -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"/>

View File

@ -31,7 +31,7 @@ import pooler
class config_install_extra_modules(osv.osv_memory):
_name='config.install_extra_modules'
_name='config.install_extra_modules.mrp'
_columns = {
'mrp_jit':fields.boolean('Just in Time Scheduling',
help="The JIT module allows you to not run the scheduler "\

View File

@ -1,2 +1 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_config_install_extra_modules,config.install_extra_modules,model_config_install_extra_modules,base.group_system,1,1,1,1

1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
access_config_install_extra_modules config.install_extra_modules model_config_install_extra_modules base.group_system 1 1 1 1

View File

@ -322,6 +322,9 @@ class sale_order(osv.osv):
'comment': order.note,
'payment_term': pay_term,
}
data = inv_obj.onchange_payment_term_date_invoice(cr, uid, [inv_id],
pay_term,time.strftime('%Y-%m-%d'))
inv.update(data['value'])
inv.update(self._inv_get(cr, uid, order))
inv_obj = self.pool.get('account.invoice')
inv_id = inv_obj.create(cr, uid, inv)