[FIX] a lot of fixes in several modules, as the result of the code review of the merge of the objects res.partner and res.partner.address

bzr revid: qdp-launchpad@openerp.com-20120330090837-s87z2qzsvynhlbwr
This commit is contained in:
Quentin (OpenERP) 2012-03-30 11:08:37 +02:00
parent eb1986a7df
commit ffd0c86ec2
42 changed files with 94 additions and 208 deletions

View File

@ -2100,7 +2100,7 @@ class account_tax(osv.osv):
"Deprecated, use compute_all(...)['taxes'] instead of compute(...) to manage prices with tax included")
return self._compute(cr, uid, taxes, price_unit, quantity, product, partner)
def _compute(self, cr, uid, taxes, price_unit, quantity,product=None, partner=None):
def _compute(self, cr, uid, taxes, price_unit, quantity, product=None, partner=None):
"""
Compute tax values for given PRICE_UNIT, QUANTITY and a buyer/seller ADDRESS_ID.

View File

@ -152,7 +152,7 @@
<field name="currency_id" width="50"/>
<button name="%(action_account_change_currency)d" type="action" icon="terp-stock_effects-object-colorize" string="Change" attrs="{'invisible':[('state','!=','draft')]}" groups="account.group_account_user"/>
<newline/>
<field string="Supplier Name" name="partner_id" on_change="onchange_partner_id(type,partner_id,date_invoice,payment_term, partner_bank_id,company_id)" context="{'default_customer': 0, 'search_default_supplier': 1, 'default_supplier': 1}" options='{"quick_create": false}' domain="[('supplier', '=', True)]"/>
<field string="Supplier" name="partner_id" on_change="onchange_partner_id(type,partner_id,date_invoice,payment_term, partner_bank_id,company_id)" context="{'default_customer': 0, 'search_default_supplier': 1, 'default_supplier': 1}" options='{"quick_create": false}' domain="[('supplier', '=', True)]"/>
<field name="fiscal_position" groups="base.group_extended" widget="selection"/>
<newline/>
<field name="date_invoice"/>
@ -260,7 +260,7 @@
<field name="currency_id" width="50"/>
<button name="%(action_account_change_currency)d" type="action" icon="terp-stock_effects-object-colorize" string="Change" attrs="{'invisible':[('state','!=','draft')]}" groups="account.group_account_user"/>
<newline/>
<field string="Customer Name" name="partner_id" on_change="onchange_partner_id(type,partner_id,date_invoice,payment_term, partner_bank_id,company_id)" groups="base.group_user" context="{'search_default_customer': 1}" options='{"quick_create": false}' domain="[('customer', '=', True)]"/>
<field string="Customer" name="partner_id" on_change="onchange_partner_id(type,partner_id,date_invoice,payment_term, partner_bank_id,company_id)" groups="base.group_user" context="{'search_default_customer': 1}" options='{"quick_create": false}' domain="[('customer', '=', True)]"/>
<field name="fiscal_position" groups="base.group_extended" widget="selection" options='{"quick_create": false}'/>
<newline/>
<field name="date_invoice"/>

View File

@ -8,7 +8,7 @@
part = self.pool.get('res.partner').browse(cr, uid, ref('base.main_partner'))
# if we know the country and the wizard has not yet been executed, we do it
if (part.country_id.id) and (wiz.state=='open'):
mod = 'l10n_'+part.country_id.co7de.lower()
mod = 'l10n_'+part.country_id.code.lower()
ids = modules.search(cr, uid, [ ('name','=',mod) ], context=context)
if ids:
wizards.write(cr, uid, [ref('account.account_configuration_installer_todo')], {

View File

@ -96,7 +96,7 @@
<separator string="Supplier Debit" colspan="2"/>
<field name="debit"/>
</group>
<field colspan="4" name="bank_ids" nolabel="1">
<field colspan="4" name="bank_ids" nolabel="1">
<form string="Bank account">
<field name="state"/>
<newline/>

View File

@ -166,9 +166,9 @@
<para style="terp_default_8">
<font color="white"> </font>
</para>
<para style="terp_default_8">Tel. : [[ (o.partner_id and o.partner_id.phone) or removeParentNode('para') ]]</para>
<para style="terp_default_8">Fax : [[ (o.partner_id and o.partner_id.fax) or removeParentNode('para') ]]</para>
<para style="terp_default_8">VAT : [[ (o.partner_id and o.partner_id.vat) or removeParentNode('para') ]]</para>
<para style="terp_default_8">Tel. : [[ (o.partner_id.phone) or removeParentNode('para') ]]</para>
<para style="terp_default_8">Fax : [[ (o.partner_id.fax) or removeParentNode('para') ]]</para>
<para style="terp_default_8">VAT : [[ (o.partner_id.vat) or removeParentNode('para') ]]</para>
</td>
</tr>
</blockTable>
@ -210,7 +210,7 @@
<para style="terp_default_Centre_9">[[ o.origin or '' ]]</para>
</td>
<td>
<para style="terp_default_Centre_9">[[ (o.partner_id and o.partner_id.ref) or ' ' ]]</para>
<para style="terp_default_Centre_9">[[ (o.partner_id.ref) or ' ' ]]</para>
</td>
</tr>
</blockTable>

View File

@ -197,9 +197,9 @@
<para style="terp_default_8">
<font color="white"> </font>
</para>
<para style="terp_default_8">Tel. : [[ (o.partner_id and o.partner_id.phone) or removeParentNode('para') ]]</para>
<para style="terp_default_8">Fax : [[ (o.partner_id and o.partner_id.fax) or removeParentNode('para') ]]</para>
<para style="terp_default_8">VAT : [[ (o.partner_id and o.partner_id.vat) or removeParentNode('para') ]]</para>
<para style="terp_default_8">Tel. : [[ (o.partner_id.phone) or removeParentNode('para') ]]</para>
<para style="terp_default_8">Fax : [[ (o.partner_id.fax) or removeParentNode('para') ]]</para>
<para style="terp_default_8">VAT : [[ (o.partner_id.vat) or removeParentNode('para') ]]</para>
</td>
</tr>
</blockTable>
@ -247,7 +247,7 @@
<para style="terp_default_Centre_9">[[ o.name or '' ]]</para>
</td>
<td>
<para style="terp_default_Centre_9">[[ (o.partner_id and o.partner_id.ref) or ' ' ]]</para>
<para style="terp_default_Centre_9">[[ (o.partner_id.ref) or ' ' ]]</para>
</td>
</tr>
</blockTable>

View File

@ -201,8 +201,8 @@
<para style="terp_default_8">
<font color="white"> </font>
</para>
<para style="terp_default_8">Tel. : [[ (o.partner_id and o.partner_id.phone) or removeParentNode('para') ]]</para>
<para style="terp_default_8">Fax : [[ (o.partner_id and o.partner_id.fax) or removeParentNode('para') ]]</para>
<para style="terp_default_8">Tel. : [[ (o.partner_id.phone) or removeParentNode('para') ]]</para>
<para style="terp_default_8">Fax : [[ (o.partner_id.fax) or removeParentNode('para') ]]</para>
<para style="terp_default_8">VAT : [[ (o.partner_id and o.partner_id.vat) or removeParentNode('para') ]]</para>
</td>
</tr>
@ -251,7 +251,7 @@
<para style="terp_default_Centre_9">[[ o.name or '' ]]</para>
</td>
<td>
<para style="terp_default_Centre_9">[[ ( o.partner_id and o.partner_id.ref) or ' ' ]]</para>
<para style="terp_default_Centre_9">[[ ( o.partner_id.ref) or ' ' ]]</para>
</td>
</tr>
</blockTable>

View File

@ -183,56 +183,30 @@ class payment_line(osv.osv):
"reference": "ref"}.get(orig, orig)
def info_owner(self, cr, uid, ids, name=None, args=None, context=None):
if not ids: return {}
partner_zip_obj = self.pool.get('res.partner.zip')
result = {}
info=''
for line in self.browse(cr, uid, ids, context=context):
owner = line.order_id.mode.bank_id.partner_id
result[line.id] = False
if owner:
if owner.type == 'default':
st = owner.street and owner.street or ''
st1 = owner.street2 and owner.street2 or ''
if 'zip_id' in owner:
zip_city = owner.zip_id and partner_zip_obj.name_get(cr, uid, [owner.zip_id.id])[0][1] or ''
else:
zip = owner.zip and owner.zip or ''
city = owner.city and owner.city or ''
zip_city = zip + ' ' + city
cntry = owner.country_id and owner.country_id.name or ''
info = owner.name + "\n" + st + " " + st1 + "\n" + zip_city + "\n" +cntry
result[line.id] = info
break
result[line.id] = self._get_info_partner(cr, uid, owner, context=context)
return result
def info_partner(self, cr, uid, ids, name=None, args=None, context=None):
if not ids: return {}
partner_zip_obj = self.pool.get('res.partner.zip')
result = {}
info = ''
def _get_info_partner(cr, uid, partner_record, context=None):
if not partner_record:
return False
st = partner_record.street or ''
st1 = partner_record.street2 or ''
zip = partner_record.zip or ''
city = partner_record.city or ''
zip_city = zip + ' ' + city
cntry = partner_record.country_id and partner_record.country_id.name or ''
return partner_record.name + "\n" + st + " " + st1 + "\n" + zip_city + "\n" +cntry
def info_partner(self, cr, uid, ids, name=None, args=None, context=None):
result = {}
for line in self.browse(cr, uid, ids, context=context):
result[line.id] = False
if not line.partner_id:
break
partner = line.partner_id.name or ''
if line.partner_id:
#for ads in line.partner_id:
if line.partner_id.type == 'default':
st = line.partner_id.street and line.partner_id.street or ''
st1 = line.partner_id.street2 and line.partner_id.street2 or ''
if 'zip_id' in line.partner_id:
zip_city = line.partner_id.zip_id and partner_zip_obj.name_get(cr, uid, [line.partner_id.zip_id.id])[0][1] or ''
else:
zip = line.partner_id.zip and line.partner_id.zip or ''
city = line.partner_id.city and line.partner_id.city or ''
zip_city = zip + ' ' + city
cntry = line.partner_id.country_id and line.partner_id.country_id.name or ''
info = partner + "\n" + st + " " + st1 + "\n" + zip_city + "\n" +cntry
result[line.id] = info
break
result[line.id] = self._get_info_partner(cr, uid, line.partner_id, context=context)
return result
#dead code
@ -419,7 +393,6 @@ class payment_line(osv.osv):
def onchange_partner(self, cr, uid, ids, partner_id, payment_type, context=None):
data = {}
partner_zip_obj = self.pool.get('res.partner.zip')
partner_obj = self.pool.get('res.partner')
payment_mode_obj = self.pool.get('payment.mode')
data['info_partner'] = data['bank_id'] = False
@ -427,23 +400,7 @@ class payment_line(osv.osv):
if partner_id:
part_obj = partner_obj.browse(cr, uid, partner_id, context=context)
partner = part_obj.name or ''
if part_obj:
#for ads in part_obj.address:
if part_obj.type == 'default':
st = part_obj.street and part_obj.street or ''
st1 = part_obj.street2 and part_obj.street2 or ''
if 'zip_id' in part_obj:
zip_city = part_obj.zip_id and partner_zip_obj.name_get(cr, uid, [part_obj.zip_id.id])[0][1] or ''
else:
zip = part_obj.zip and part_obj.zip or ''
city = part_obj.city and part_obj.city or ''
zip_city = zip + ' ' + city
cntry = part_obj.country_id and part_obj.country_id.name or ''
info = partner + "\n" + st + " " + st1 + "\n" + zip_city + "\n" +cntry
data['info_partner'] = info
data['info_partner'] = self._get_info_partner(cr, uid, part_obj, context=context)
if part_obj.bank_ids and payment_type:
bank_type = payment_mode_obj.suitable_bank_types(cr, uid, payment_type, context=context)

View File

@ -217,12 +217,6 @@ class account_analytic_account(osv.osv):
default['line_ids'] = []
return super(account_analytic_account, self).copy(cr, uid, id, default, context=context)
def on_change_partner_id(self, cr, uid, id, partner_id, context={}):
if not partner_id:
return {'value': {'partner_id': False}}
addr = self.pool.get('res.partner').address_get(cr, uid, [partner_id], ['invoice'])
return {'value': {'partner_id': addr.get('invoice', False)}}
def on_change_company(self, cr, uid, id, company_id):
if not company_id:
return {}
@ -242,13 +236,6 @@ class account_analytic_account(osv.osv):
res['value']['partner_id'] = partner
return res
def onchange_partner_id(self, cr, uid, ids, partner, context=None):
partner_obj = self.pool.get('res.partner')
if not partner:
return {'value':{'partner_id': False}}
address = partner_obj.address_get(cr, uid, [partner], ['contact'])
return {'value':{'partner_id': address['contact']}}
def name_search(self, cr, uid, name, args=None, operator='ilike', context=None, limit=100):
if not args:
args=[]

View File

@ -375,7 +375,7 @@ class audittrail_objects_proxy(object_proxy):
}
The reason why the structure returned is build as above is because when modifying an existing
record (res.partner, for example), we may have to log a change done in a x2many field
record, we may have to log a change done in a x2many field of that object
"""
key = (model.id, resource_id)
lines = {

View File

@ -27,7 +27,7 @@
<field name="partner_id" colspan="2" on_change="onchange_partner_id(partner_id)" attrs="{'required': [('type', '=', 'partner')]}"/>
<newline/>
<separator string="Partner Contacts" colspan="6"/>
<field name="contact_ids" select="1" colspan="4" nolabel="1" attrs="{'readonly': [('type', '!=', 'partner')]}"/>
<field name="contact_ids" select="1" colspan="4" nolabel="1" domain="[('id', 'child_of', [partner_id])]" attrs="{'readonly': [('type', '!=', 'partner')]}"/>
</group>
</page>
</notebook>

View File

@ -60,13 +60,6 @@ class crm_lead(crm_case, osv.osv):
'stage_id': _read_group_stage_ids
}
# especially if base_contact is installed.
def name_get(self, cr, user, ids, context=None):
if isinstance(ids, (int, long)):
ids = [ids]
return [(r['id'], tools.ustr(r[self._rec_name]))
for r in self.read(cr, user, ids, [self._rec_name], context)]
def _compute_day(self, cr, uid, ids, fields, args, context=None):
"""
@param cr: the current row, from the database cursor,
@ -170,7 +163,7 @@ class crm_lead(crm_case, osv.osv):
'contact_name': fields.char('Contact Name', size=64),
'partner_name': fields.char("Customer Name", size=64,help='The name of the future partner company that will be created while converting the lead into opportunity', select=1),
'optin': fields.boolean('Opt-In', help="If opt-in is checked, this contact has accepted to receive emails."),
'opt_out': fields.boolean('Opt-Out', help="If opt-out is checked, this contact has refused to receive emails or unsubscribed to a campaign."),
'optout': fields.boolean('Opt-Out', help="If opt-out is checked, this contact has refused to receive emails or unsubscribed to a campaign."),
'type':fields.selection([ ('lead','Lead'), ('opportunity','Opportunity'), ],'Type', help="Type is used to separate Leads and Opportunities"),
'priority': fields.selection(crm.AVAILABLE_PRIORITIES, 'Priority', select=True),
'date_closed': fields.datetime('Closed', readonly=True),
@ -222,19 +215,11 @@ class crm_lead(crm_case, osv.osv):
'color': 0,
}
def onchange_partner_address_id(self, cr, uid, ids, add, email=False):
"""This function returns value of partner email based on Partner Address
"""
if not add:
return {'value': {'email_from': False, 'country_id': False}}
address = self.pool.get('res.partner').browse(cr, uid, add)
return {'value': {'email_from': address.email, 'phone': address.phone, 'country_id': address.country_id.id}}
def on_change_optin(self, cr, uid, ids, optin):
return {'value':{'optin':optin,'opt_out':False}}
return {'value':{'optin':optin,'optout':False}}
def on_change_optout(self, cr, uid, ids, optout):
return {'value':{'opt_out':optout,'optin':False}}
return {'value':{'optout':optout,'optin':False}}
def onchange_stage_id(self, cr, uid, ids, stage_id, context={}):
if not stage_id:

View File

@ -186,7 +186,7 @@
<group colspan="2" col="2">
<separator string="Mailings" colspan="2" col="2"/>
<field name="optin" on_change="on_change_optin(optin)"/>
<field name="opt_out" on_change="on_change_optout(opt_out)"/>
<field name="optout" on_change="on_change_optout(optout)"/>
</group>
<group colspan="2" col="2" groups="base.group_no_one">
<separator string="Statistics" colspan="2" col="2"/>
@ -539,7 +539,7 @@
<group colspan="2" col="2">
<separator string="Mailings" colspan="2"/>
<field name="optin" on_change="on_change_optin(optin)"/>
<field name="opt_out" on_change="on_change_optout(opt_out)"/>
<field name="optout" on_change="on_change_optout(optout)"/>
</group>
</page>
<page string="Communication &amp; History" groups="base.group_extended">

View File

@ -86,16 +86,6 @@ class crm_phonecall(crm_base, osv.osv):
'active': 1,
}
# From crm.case
def onchange_partner_address_id(self, cr, uid, ids, add, email=False):
res = super(crm_phonecall, self).onchange_partner_address_id(cr, uid, ids, add, email)
res.setdefault('value', {})
if add:
address = self.pool.get('res.partner').browse(cr, uid, add)
res['value']['partner_phone'] = address.phone
res['value']['partner_mobile'] = address.mobile
return res
def case_close(self, cr, uid, ids, *args):
"""Overrides close for crm_case for setting close date
"""

View File

@ -137,7 +137,6 @@
<field name="partner_id"
on_change="onchange_partner_id(partner_id)"
string="Partner" />
<field name="partner_phone"
invisible="1"/>
<field name="user_id" groups="base.group_extended"/>

View File

@ -50,16 +50,14 @@ class res_partner(osv.osv):
return value
def make_opportunity(self, cr, uid, ids, opportunity_summary, planned_revenue=0.0, probability=0.0, partner_id=None, context=None):
categ = self.pool.get('crm.case.categ')
address = self.address_get(cr, uid, ids)
categ_ids = categ.search(cr, uid, [('object_id.model','=','crm.lead')])
lead = self.pool.get('crm.lead')
categ_obj = self.pool.get('crm.case.categ')
categ_ids = categ_obj.search(cr, uid, [('object_id.model','=','crm.lead')])
lead_obj = self.pool.get('crm.lead')
opportunity_ids = {}
for partner in self.browse(cr, uid, ids, context=context):
address = self.address_get(cr, uid, [partner.id])['default']
if not partner_id:
partner_id = partner.id
opportunity_id = lead.create(cr, uid, {
opportunity_id = lead_obj.create(cr, uid, {
'name' : opportunity_summary,
'planned_revenue' : planned_revenue,
'probability' : probability,

View File

@ -15,7 +15,7 @@
name: 'Need 20 Days of Consultancy'
type: opportunity
state: draft
opt_out: True
optout: True
-
I create phonecall record to call partner onchange method.
-

View File

@ -43,11 +43,8 @@ class crm_phonecall2partner(osv.osv_memory):
partner_id = False
for phonecall in phonecall_obj.browse(cr, uid, rec_ids, context=context):
partner_ids = partner_obj.search(cr, uid, [('name', '=', phonecall.name or phonecall.name)])
if not partner_ids and phonecall.email_from:
address_ids = partner_obj.search(cr, uid, ['|', ('phone', '=', phonecall.partner_phone), ('mobile','=',phonecall.partner_mobile)])
if address_ids:
addresses = partner_ids.browse(cr, uid, address_ids)
partner_ids = addresses and [addresses[0].parent_id.id] or False
if not partner_ids and (phonecall.partner_phone or phonecall.partner_mobile):
partner_ids = partner_obj.search(cr, uid, ['|', ('phone', '=', phonecall.partner_phone), ('mobile','=',phonecall.partner_mobile)])
partner_id = partner_ids and partner_ids[0] or False
return partner_id

View File

@ -37,7 +37,6 @@ class res_company(osv.osv):
an empty dict if no address can be found
"""
res_partner = self.pool.get('res.partner')
# res_partner_address = self.pool.get('res.partner.address')
addresses = res_partner.address_get(cr, uid, [company.partner_id.id], ['default', 'contact', 'invoice'])
addr_id = addresses['invoice'] or addresses['contact'] or addresses['default']
result = {}

View File

@ -76,7 +76,7 @@ class res_partner(osv.osv, EDIMixin):
if edi_bank_ids:
contact = self.browse(cr, uid, contact_id, context=context)
import_ctx = dict((context or {}),
default_partner_id=contact.id,
default_partner_id = contact.id,
default_state=self._get_bank_type(cr, uid, context))
for ext_bank_id, bank_name in edi_bank_ids:
try:

View File

@ -261,7 +261,6 @@ class event_registration(osv.osv):
'nb_register': fields.integer('Number of Participants', required=True, readonly=True, states={'draft': [('readonly', False)]}),
'event_id': fields.many2one('event.event', 'Event', required=True, readonly=True, states={'draft': [('readonly', False)]}),
'partner_id': fields.many2one('res.partner', 'Partner', states={'done': [('readonly', True)]}),
'create_date': fields.datetime('Creation Date' , readonly=True),
'date_closed': fields.datetime('Attended Date', readonly=True),
'date_open': fields.datetime('Registration Date', readonly=True),
@ -282,6 +281,8 @@ class event_registration(osv.osv):
'nb_register': 1,
'state': 'draft',
}
_order = 'name, create_date desc'
def do_draft(self, cr, uid, ids, context=None):
return self.write(cr, uid, ids, {'state': 'draft'}, context=context)

View File

@ -448,7 +448,7 @@
<separator orientation="vertical"/>
<field name="event_id" widget="selection"/>
<field name="name" string="Participant"
filter_domain="['|','|','|', ('name','ilike',self), ('partner_id','ilike',self), ('email','ilike',self)]"/>
filter_domain="['|','|', ('name','ilike',self), ('partner_id','ilike',self), ('email','ilike',self)]"/>
<field name="user_id" groups="base.group_extended">
<filter icon="terp-personal"
string="My Registrations"

View File

@ -183,8 +183,6 @@ class hr_expense_expense(osv.osv):
}))
if not exp.employee_id.address_home_id:
raise osv.except_osv(_('Error !'), _('The employee must have a Home address.'))
if not exp.employee_id.address_home_id:
raise osv.except_osv(_('Error !'), _("The employee's home address must have a partner linked."))
acc = exp.employee_id.address_home_id.property_account_payable.id
payment_term_id = exp.employee_id.address_home_id.property_payment_term.id
inv = {

View File

@ -150,4 +150,4 @@
</table>
%endfor
</body>
</html>
</html>

View File

@ -81,4 +81,4 @@
</div>
%endfor
</body>
</html>
</html>

View File

@ -161,4 +161,4 @@ width:50%;
<field name="webkit_header" ref="ir_header_webkit_bvr_invoice0" />
</record>
</data>
</openerp>
</openerp>

View File

@ -42,7 +42,7 @@ class order(report_sxw.rml_parse):
'disc': self.discount,
'net': self.netamount,
'get_journal_amt': self._get_journal_amt,
'address': partner or False,
'address': partner or False,
'titlize': titlize
})

View File

@ -65,7 +65,7 @@ class purchase_order(osv.osv, EDIMixin):
"""Exports a purchase order"""
edi_struct = dict(edi_struct or PURCHASE_ORDER_EDI_STRUCT)
res_company = self.pool.get('res.company')
res_partner_address = self.pool.get('res.partner')
res_partner_obj = self.pool.get('res.partner')
edi_doc_list = []
for order in records:
# generate the main report
@ -79,7 +79,7 @@ class purchase_order(osv.osv, EDIMixin):
'__import_module': 'sale',
'company_address': res_company.edi_export_address(cr, uid, order.company_id, context=context),
'partner_address': res_partner_address.edi_export(cr, uid, [order.partner_id], context=context)[0],
'partner_address': res_partner_obj.edi_export(cr, uid, [order.partner_id], context=context)[0],
'currency': self.pool.get('res.currency').edi_export(cr, uid, [order.pricelist_id.currency_id],
context=context)[0],
})
@ -95,15 +95,15 @@ class purchase_order(osv.osv, EDIMixin):
# the desired company among the user's allowed companies
self._edi_requires_attributes(('company_id','company_address'), edi_document)
res_partner_address = self.pool.get('res.partner')
res_partner = self.pool.get('res.partner')
res_partner_obj = self.pool.get('res.partner')
# imported company_address = new partner address
src_company_id, src_company_name = edi_document.pop('company_id')
address_info = edi_document.pop('company_address')
address_info['customer'] = True
if 'name' not in address_info:
address_info['name'] = src_company_name
address_id = res_partner_address.edi_import(cr, uid, address_info, context=context)
address_id = res_partner_obj.edi_import(cr, uid, address_info, context=context)
# modify edi_document to refer to new partner/address
partner_address = res_partner_address.browse(cr, uid, address_id, context=context)

View File

@ -161,7 +161,7 @@ class purchase_order(osv.osv):
'date_order':fields.date('Order Date', required=True, states={'confirmed':[('readonly',True)], 'approved':[('readonly',True)]}, select=True, help="Date on which this document has been created."),
'date_approve':fields.date('Date Approved', readonly=1, select=True, help="Date on which purchase order has been approved"),
'partner_id':fields.many2one('res.partner', 'Supplier', required=True, states={'confirmed':[('readonly',True)], 'approved':[('readonly',True)],'done':[('readonly',True)]}, change_default=True),
'dest_address_id':fields.many2one('res.partner', 'Destination Address', domain="[('parent_id','=',partner_id)]",
'dest_address_id':fields.many2one('res.partner', 'Customer Address (Direct Delivery)',
states={'confirmed':[('readonly',True)], 'approved':[('readonly',True)],'done':[('readonly',True)]},
help="Put an address if you want to deliver directly from the supplier to the customer." \
"In this case, it will remove the warehouse link and set the customer location."
@ -569,7 +569,6 @@ class purchase_order(osv.osv):
'origin': porder.origin,
'date_order': porder.date_order,
'partner_id': porder.partner_id.id,
# 'partner_address_id': porder.partner_id.id,
'dest_address_id': porder.dest_address_id.id,
'warehouse_id': porder.warehouse_id.id,
'location_id': porder.location_id.id,

View File

@ -7,7 +7,7 @@
</record>
<workflow action="purchase_confirm" model="purchase.order" ref="order_purchase2"/>
<!--workflow action="purchase_confirm" model="purchase.order" ref="order_purchase6"/-->
<workflow action="purchase_confirm" model="purchase.order" ref="order_purchase6"/>
<record id="stock.res_company_tinyshop0" model="res.company">
<field eval="1.0" name="po_lead"/>

View File

@ -57,29 +57,6 @@
action="base.action_partner_category_form" id="menu_partner_categories_in_form" name="Partner Categories"
parent="purchase.menu_purchase_partner_cat" groups="base.group_no_one"/>
<!--supplier addresses action-->
<record id="action_supplier_address_form" model="ir.actions.act_window">
<field name="name">Addresses</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">res.partner</field>
<field name="view_type">form</field>
<field name="context">{"search_default_supplier":1}</field>
<field name="help">Access your supplier records and maintain a good relationship with your suppliers. You can track all your interactions with them through the History tab: emails, orders, meetings, etc.</field>
</record>
<record id="action_supplier_address_form_view1" model="ir.actions.act_window.view">
<field eval="10" name="sequence"/>
<field name="view_mode">tree</field>
<field name="view_id" ref="base.view_partner_tree"/>
<field name="act_window_id" ref="action_supplier_address_form"/>
</record>
<!--record id="action_supplier_address_form_view2" model="ir.actions.act_window.view">
<field eval="20" name="sequence"/>
<field name="view_mode">form</field>
<field name="view_id" ref="base.view_partner_address_form1"/>
<field name="act_window_id" ref="action_supplier_address_form"/>
</record-->
<!--supplier menu-->
<menuitem id="base.menu_procurement_management_supplier_name" name="Suppliers"
parent="menu_procurement_management"

View File

@ -186,9 +186,9 @@
<para style="terp_default_9">
<font color="white"> </font>
</para>
<para style="terp_default_9">Tél. : [[ (o.partner_id and o.partner_id.phone) or removeParentNode('para') ]]</para>
<para style="terp_default_9">Fax : [[ (o.partner_id and o.partner_id.fax) or removeParentNode('para') ]]</para>
<para style="terp_default_9">TVA : [[ (o.partner_id and o.partner_id.vat) or removeParentNode('para') ]]</para>
<para style="terp_default_9">Tél. : [[ (o.partner_id.phone) or removeParentNode('para') ]]</para>
<para style="terp_default_9">Fax : [[ (o.partner_id.fax) or removeParentNode('para') ]]</para>
<para style="terp_default_9">TVA : [[ (o.partner_id.vat) or removeParentNode('para') ]]</para>
</td>
</tr>
</blockTable>

View File

@ -100,14 +100,14 @@
</para>
</td>
<td>
<para style="terp_default_9">[[ (order.partner_id and order.partner_id.title and order.partner_id.title.name) or '' ]] [[ order.partner_id.name ]]</para>
<para style="terp_default_9">[[ order.partner_id and display_address(order.partner_id) ]] </para>
<para style="terp_default_9">[[ (order.partner_id.title and order.partner_id.title.name) or '' ]] [[ order.partner_id.name ]]</para>
<para style="terp_default_9">[[ display_address(order.partner_id) ]] </para>
<para style="terp_default_9">
<font color="white"> </font>
</para>
<para style="terp_default_9">Tel.: [[ (order.partner_id and order.partner_id.phone) or removeParentNode('para') ]]</para>
<para style="terp_default_9">Fax: [[ (order.partner_id and order.partner_id.fax) or removeParentNode('para') ]]</para>
<para style="terp_default_9">TVA: [[ (order.partner_id and order.partner_id.vat) or removeParentNode('para') ]]</para>
<para style="terp_default_9">Tel.: [[ (order.partner_id.phone) or removeParentNode('para') ]]</para>
<para style="terp_default_9">Fax: [[ (order.partner_id.fax) or removeParentNode('para') ]]</para>
<para style="terp_default_9">TVA: [[ (order.partner_id.vat) or removeParentNode('para') ]]</para>
</td>
</tr>
</blockTable>

View File

@ -30,7 +30,6 @@ access_account_invoice_tax_purchase,account_invoice.tax purchase,account.model_a
access_account_fiscal_position_purchase_user,account.fiscal.position purchase,account.model_account_fiscal_position,group_purchase_user,1,0,0,0
access_account_sequence_fiscalyear_purchase_user,account.sequence.fiscalyear purchase,account.model_account_sequence_fiscalyear,group_purchase_user,1,1,1,1
access_res_partner_purchase_user,res.partner purchase,base.model_res_partner,group_purchase_user,1,0,0,0
access_res_partner_purchase_user,res.partner purchase,base.model_res_partner,group_purchase_user,1,0,0,0
access_account_journal_period,account.journal.period,account.model_account_journal_period,group_purchase_user,1,1,1,0
access_account_journal,account.journal,account.model_account_journal,group_purchase_user,1,0,0,0
access_account_journal_manager,account.journal,account.model_account_journal,group_purchase_manager,1,0,0,0

1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
30 access_account_fiscal_position_purchase_user account.fiscal.position purchase account.model_account_fiscal_position group_purchase_user 1 0 0 0
31 access_account_sequence_fiscalyear_purchase_user account.sequence.fiscalyear purchase account.model_account_sequence_fiscalyear group_purchase_user 1 1 1 1
32 access_res_partner_purchase_user res.partner purchase base.model_res_partner group_purchase_user 1 0 0 0
access_res_partner_purchase_user res.partner purchase base.model_res_partner group_purchase_user 1 0 0 0
33 access_account_journal_period account.journal.period account.model_account_journal_period group_purchase_user 1 1 1 0
34 access_account_journal account.journal account.model_account_journal group_purchase_user 1 0 0 0
35 access_account_journal_manager account.journal account.model_account_journal group_purchase_manager 1 0 0 0

View File

@ -223,7 +223,7 @@
<blockTable colWidths="338.0,96.0,96.0" style="Table7">
<tr>
<td>
<para style="terp_default_9">[[ (purchase_ids.partner_id and purchase_ids.partner_id.id and purchase_ids.partner_id.name) or '' ]]</para>
<para style="terp_default_9">[[ (purchase_ids.partner_id and purchase_ids.partner_id.name) or '' ]]</para>
</td>
<td>
<para style="terp_default_Centre_9">[[ formatLang(purchase_ids.date_order,date='True') ]]</para>

View File

@ -141,14 +141,14 @@
</para>
</td>
<td>
<para style="terp_default_8">[[ (o.partner_id and o.partner_id.title and o.partner_id.title.name) or '' ]] [[ (o.partner_id and o.partner_id.name) or '' ]]</para>
<para style="terp_default_8">[[ (o.partner_id.title and o.partner_id.title.name) or '' ]] [[ (o.partner_id and o.partner_id.name) or '' ]]</para>
<para style="terp_default_8">[[ o.partner_id and display_address(o.partner_id) ]] </para>
<para style="terp_default_8">
<font color="white"> </font>
</para>
<para style="terp_default_8">Tel. : [[ (o.partner_id and o.partner_id.phone) or removeParentNode('para') ]]</para>
<para style="terp_default_8">Fax : [[ (o.partner_id and o.partner_id.fax) or removeParentNode('para') ]]</para>
<para style="terp_default_8">VAT : [[ (o.partner_id and o.partner_id.vat) or removeParentNode('para') ]]</para>
<para style="terp_default_8">Tel. : [[ (o.partner_id.phone) or removeParentNode('para') ]]</para>
<para style="terp_default_8">Fax : [[ (o.partner_id.fax) or removeParentNode('para') ]]</para>
<para style="terp_default_8">VAT : [[ (o.partner_id.vat) or removeParentNode('para') ]]</para>
</td>
</tr>
</blockTable>
@ -184,7 +184,7 @@
<para style="terp_default_Centre_9">[[ formatLang(o.date_invoice,date=True) ]]</para>
</td>
<td>
<para style="terp_default_Centre_9">[[ (o.partner_id and o.partner_id.ref) or ' ' ]]</para>
<para style="terp_default_Centre_9">[[ (o.partner_id.ref) or ' ' ]]</para>
</td>
</tr>
</blockTable>

View File

@ -68,7 +68,7 @@ class sale_order(osv.osv, EDIMixin):
"""Exports a Sale order"""
edi_struct = dict(edi_struct or SALE_ORDER_EDI_STRUCT)
res_company = self.pool.get('res.company')
res_partner_address = self.pool.get('res.partner')
res_partner_obj = self.pool.get('res.partner')
edi_doc_list = []
for order in records:
# generate the main report
@ -82,7 +82,7 @@ class sale_order(osv.osv, EDIMixin):
'__import_module': 'purchase',
'company_address': res_company.edi_export_address(cr, uid, order.company_id, context=context),
'partner_id': res_partner_address.edi_export(cr, uid, [order.partner_id], context=context)[0],
'partner_id': res_partner_obj.edi_export(cr, uid, [order.partner_id], context=context)[0],
'currency': self.pool.get('res.currency').edi_export(cr, uid, [order.pricelist_id.currency_id],
context=context)[0],
@ -99,7 +99,7 @@ class sale_order(osv.osv, EDIMixin):
# the desired company among the user's allowed companies
self._edi_requires_attributes(('company_id','company_address'), edi_document)
res_partner = self.pool.get('res.partner')
res_partner_obj = self.pool.get('res.partner')
# imported company_address = new partner address
src_company_id, src_company_name = edi_document.pop('company_id')
@ -109,10 +109,10 @@ class sale_order(osv.osv, EDIMixin):
if 'name' not in address_info:
address_info['name'] = src_company_name
address_id = res_partner.edi_import(cr, uid, address_info, context=context)
address_id = res_partner_obj.edi_import(cr, uid, address_info, context=context)
# modify edi_document to refer to new partner/address
partner_address = res_partner.browse(cr, uid, address_id, context=context)
partner_address = res_partner_obj.browse(cr, uid, address_id, context=context)
edi_document.pop('partner_address', False) # ignored
address_edi_m2o = self.edi_m2o(cr, uid, partner_address, context=context)
edi_document['partner_id'] = address_edi_m2o

View File

@ -177,9 +177,9 @@
<para style="terp_default_9">
<font color="white"> </font>
</para>
<para style="terp_default_9">Tel. : [[ (o.partner_id and o.partner_id.phone) or removeParentNode('para') ]]</para>
<para style="terp_default_9">Fax : [[ (o.partner_id and o.partner_id.fax) or removeParentNode('para') ]]</para>
<para style="terp_default_9">TVA : [[ (o.partner_id and o.partner_id.vat) or removeParentNode('para') ]]</para>
<para style="terp_default_9">Tel. : [[ (o.partner_id.phone) or removeParentNode('para') ]]</para>
<para style="terp_default_9">Fax : [[ (o.partner_id.fax) or removeParentNode('para') ]]</para>
<para style="terp_default_9">TVA : [[ (o.partner_id.vat) or removeParentNode('para') ]]</para>
<para style="terp_default_9">
<font color="white"> </font>
</para>

View File

@ -154,14 +154,14 @@
</para>
</td>
<td>
<para style="terp_default_9">[[ (o.partner_id and o.partner_id.title and o.partner_id.title.name) or '' ]] [[ (o.partner_id and o.partner_id.name) or '' ]]</para>
<para style="terp_default_9">[[ o.partner_id and display_address(o.partner_id) ]] </para>
<para style="terp_default_9">[[ (o.partner_id.title and o.partner_id.title.name) or '' ]] [[ (o.partner_id and o.partner_id.name) or '' ]]</para>
<para style="terp_default_9">[[ display_address(o.partner_id) ]] </para>
<para style="terp_default_9">
<font color="white"> </font>
</para>
<para style="terp_default_9">Tel. : [[ (o.partner_id and o.partner_id.phone) or removeParentNode('para') ]]</para>
<para style="terp_default_9">Fax : [[ (o.partner_id and o.partner_id.fax) or removeParentNode('para') ]]</para>
<para style="terp_default_9">TVA : [[ (o.partner_id and o.partner_id.vat) or removeParentNode('para') ]]</para>
<para style="terp_default_9">Tel. : [[ (o.partner_id.phone) or removeParentNode('para') ]]</para>
<para style="terp_default_9">Fax : [[ (o.partner_id.fax) or removeParentNode('para') ]]</para>
<para style="terp_default_9">TVA : [[ (o.partner_id.vat) or removeParentNode('para') ]]</para>
<para style="terp_default_9">
<font color="white"> </font>
</para>

View File

@ -1073,7 +1073,7 @@ class stock_picking(osv.osv):
invoice_obj = self.pool.get('account.invoice')
invoice_line_obj = self.pool.get('account.invoice.line')
parnter_obj = self.pool.get('res.partner')
partner_obj = self.pool.get('res.partner')
invoices_group = {}
res = {}
inv_type = type
@ -1082,7 +1082,7 @@ class stock_picking(osv.osv):
continue
partner = self._get_partner_to_invoice(cr, uid, picking, context=context)
if isinstance(partner, int):
partner=parnter_obj.browse(cr,uid,[partner])[0]
partner = partner_obj.browse(cr, uid, [partner], context=context)[0]
if not partner:
raise osv.except_osv(_('Error, no partner !'),
_('Please put a partner on the picking list if you want to generate invoice.'))
@ -1098,7 +1098,7 @@ class stock_picking(osv.osv):
else:
invoice_vals = self._prepare_invoice(cr, uid, picking, partner, inv_type, journal_id, context=context)
invoice_id = invoice_obj.create(cr, uid, invoice_vals, context=context)
invoices_group[partner] = invoice_id
invoices_group[partner.id] = invoice_id
res[picking.id] = invoice_id
for move_line in picking.move_lines:
if move_line.state == 'cancel':

View File

@ -163,7 +163,7 @@ class survey_send_invitation(osv.osv_memory):
ans = mail_message.schedule_with_attach(cr, uid, record['mail_from'], [partner.email], \
record['mail_subject'], mail, attachments=attachments, context=context)
if ans:
res_data = {'name': partner.name or 'Unknown',
res_data = {'name': partner.name or _('Unknown'),
'login': partner.email,
'password': passwd,
'address_id': partner.id,
@ -174,10 +174,10 @@ class survey_send_invitation(osv.osv_memory):
user = user_ref.create(cr, uid, res_data)
if user not in new_user:
new_user.append(user)
created+= "- %s (Login: %s, Password: %s)\n" % (partner.name or 'Unknown',\
created+= "- %s (Login: %s, Password: %s)\n" % (partner.name or _('Unknown'),\
partner.email, passwd)
else:
error+= "- %s (Login: %s, Password: %s)\n" % (partner.name or 'Unknown',\
error+= "- %s (Login: %s, Password: %s)\n" % (partner.name or _('Unknown'),\
partner.email, passwd)
new_vals = {}

View File

@ -152,7 +152,7 @@ class stock_picking(osv.osv):
def onchange_partner_in(self, cr, uid, context, partner_id=None):
if not partner_id:
return {}
partner = self.pool.get('res.partner').browse(cr, uid, partner_id)
partner = self.pool.get('res.partner').browse(cr, uid, partner_id, context=context)
warning = {}
title = False
message = False