avanzosc team mailing list archive
-
avanzosc team
-
Mailing list archive
-
Message #00509
[Merge] lp:~alfredodelafuente/avanzosc/dos_sales_elevator_partner into lp:~avanzosc-security-team/avanzosc/72horas
Alfredo has proposed merging lp:~alfredodelafuente/avanzosc/dos_sales_elevator_partner into lp:~avanzosc-security-team/avanzosc/72horas.
Requested reviews:
Avanzosc_security (avanzosc-security-team)
For more details, see:
https://code.launchpad.net/~alfredodelafuente/avanzosc/dos_sales_elevator_partner/+merge/224476
--
https://code.launchpad.net/~alfredodelafuente/avanzosc/dos_sales_elevator_partner/+merge/224476
Your team Avanzosc_security is requested to review the proposed merge of lp:~alfredodelafuente/avanzosc/dos_sales_elevator_partner into lp:~avanzosc-security-team/avanzosc/72horas.
=== modified file 'dos_sales_elevator_partner/__init__.py'
--- dos_sales_elevator_partner/__init__.py 2014-06-11 10:23:47 +0000
+++ dos_sales_elevator_partner/__init__.py 2014-06-25 16:19:57 +0000
@@ -17,10 +17,4 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
-
-import sale
-import stock
-import account
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
-
+from . import models
\ No newline at end of file
=== modified file 'dos_sales_elevator_partner/__openerp__.py'
--- dos_sales_elevator_partner/__openerp__.py 2014-06-11 10:23:47 +0000
+++ dos_sales_elevator_partner/__openerp__.py 2014-06-25 16:19:57 +0000
@@ -1,7 +1,7 @@
# -*- encoding: utf-8 -*-
##############################################################################
-#
-# OpenERP, Open Source Management Solution
+#
+# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2008 Tiny SPRL (<http://tiny.be>). All Rights Reserved
# $Id$
#
@@ -20,21 +20,22 @@
#
##############################################################################
{
- "name" : "DOS Sales Elevator Partner",
- "version" : "1.0",
- "author" : "DOS",
- "category" : "Enterprise Specific Modules",
- "description":"""Module to allow set elevator partner in sale orders, stock picking and account invoice.""",
- "depends" : ["base", "sale", "stock", "account", "dos_partner_additional_info", "dos_contracts"],
- "init_xml" : [],
- "demo_xml" : [],
- "update_xml" : [
- 'sale_view.xml',
- 'stock_view.xml',
- 'account_view.xml',
- ],
- "website": 'http://www.dos-sl.es',
- "active": False,
- "installable": True
+ "name": "DOS Sales Elevator Partner",
+ "version": "1.0",
+ "author": "DOS",
+ "category": "Enterprise Specific Modules",
+ "description": """
+ Module to allow set elevator partner in sale orders, stock picking and
+ account invoice.
+ """,
+ "depends": ["base", "sale", "stock", "account",
+ "dos_partner_additional_info", "dos_contracts",
+ ],
+ "demo_xml": [],
+ "data": ['view/sale_view.xml',
+ 'view/stock_view.xml',
+ 'view/account_view.xml',
+ ],
+ "website": 'http://www.dos-sl.es',
+ "installable": True
}
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
=== added directory 'dos_sales_elevator_partner/models'
=== added file 'dos_sales_elevator_partner/models/__init__.py'
--- dos_sales_elevator_partner/models/__init__.py 1970-01-01 00:00:00 +0000
+++ dos_sales_elevator_partner/models/__init__.py 2014-06-25 16:19:57 +0000
@@ -0,0 +1,23 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+##############################################################################
+from . import account
+from . import sale
+from . import stock
\ No newline at end of file
=== renamed file 'dos_sales_elevator_partner/account.py' => 'dos_sales_elevator_partner/models/account.py'
--- dos_sales_elevator_partner/account.py 2014-06-11 10:23:47 +0000
+++ dos_sales_elevator_partner/models/account.py 2014-06-25 16:19:57 +0000
@@ -20,78 +20,84 @@
#
##############################################################################
-from osv import fields, osv
-import decimal_precision as dp
-import time
-
-class account_invoice(osv.osv):
- """Inherit account_invoice to add elevator partner field"""
-
- _inherit ="account.invoice"
-
- _columns = {
- 'ref': fields.char('Reference', size=64),
- 'elevator_partner_id': fields.many2one('res.partner', 'Elevator', readonly=True, states={'draft':[('readonly',False)]}, select=True),
- 'middleman_partner_id': fields.many2one('res.partner', 'Middleman', readonly=True, states={'draft': [('readonly', False)]}, select=True),
- }
-
-
- def onchange_partner_id(self, cr, uid, ids, type, partner_id,\
- date_invoice=False, payment_term=False, partner_bank_id=False, company_id=False):
-
- res = super(account_invoice, self).onchange_partner_id(cr, uid, ids, type, partner_id,\
- date_invoice, payment_term, partner_bank_id, company_id)
-
- values = res['value']
-
- values['contract_id'] = False
- values['elevator_partner_id'] = False
- values['middleman_partner_id'] = False
- values['user_id'] = False
-
- if partner_id:
- partner = self.pool.get('res.partner').browse(cr, uid, partner_id, context=None)
- contract_ids = self.pool.get('contract.contract').search(cr, uid, [('customer_id', '=', partner_id), ('active_contract', '=', True)], limit=1)
- contract_id = contract_ids and contract_ids[0] or False
-
- if contract_id:
- contract = self.pool.get('contract.contract').browse(cr, uid, contract_id)
- values['contract_id'] = contract_id
- values['elevator_partner_id'] = contract.elevator_id and contract.elevator_id.id or False
- values['middleman_partner_id'] = contract.middleman_id and contract.middleman_id.id or False
-
- values['user_id'] = partner.user_id and partner.user_id.id or False
-
- return {'value': values}
-
-
- def onchange_contract_id(self, cr, uid, ids, contract):
- if not contract:
- return {'value': {'elevator_partner_id': False, 'middleman_partner_id': False}}
-
- contract = self.pool.get('contract.contract').browse(cr, uid, contract)
- elevator_partner_id = contract.elevator_id and contract.elevator_id.id or False
- middleman_partner_id = contract.middleman_id and contract.middleman_id.id or False
-
- val = {
- 'elevator_partner_id': elevator_partner_id,
- 'middleman_partner_id': middleman_partner_id,
- }
-
- return {'value': val}
-
-account_invoice()
-
-
-class account_invoice_line(osv.osv):
-
- _inherit ="account.invoice.line"
-
- _columns = {
- 'ref': fields.char('Reference', size=64),
- 'contract_id': fields.many2one('contract.contract', 'Contract', select=True),
- 'contract_annexe_id': fields.many2one('contract.annexe', 'Annexe', select=True),
- 'stock_move_id': fields.many2one('stock.move', 'Stock Move', select=True),
- }
-
-account_invoice_line()
+from openerp.osv import orm, fields
+from . import decimal_precision as dp
+from . import time
+
+
+class AccountInvoice(orm.Model):
+ """Inherit account_invoice to add elevator partner field"""
+ _inherit = "account.invoice"
+
+ _columns = {
+ 'ref': fields.char('Reference', size=64),
+ 'elevator_partner_id':
+ fields.many2one('res.partner', 'Elevator', readonly=True,
+ select=True, states={'draft': [('readonly',
+ False)]}),
+ 'middleman_partner_id':
+ fields.many2one('res.partner', 'Middleman', readonly=True,
+ select=True, states={'draft': [('readonly',
+ False)]}),
+ }
+
+ def onchange_partner_id(self, cr, uid, ids, type, partner_id,
+ date_invoice=False, payment_term=False,
+ partner_bank_id=False, company_id=False):
+ partner_obj = self.pool['res.partner']
+ contract_obj = self.pool['contract.contract']
+ res = super(AccountInvoice, self).onchange_partner_id(
+ cr, uid, ids, type, partner_id, date_invoice, payment_term,
+ partner_bank_id, company_id)
+ values = res['value']
+ values['contract_id'] = False
+ values['elevator_partner_id'] = False
+ values['middleman_partner_id'] = False
+ values['user_id'] = False
+ if partner_id:
+ partner = partner_obj.browse(cr, uid, partner_id, context=None)
+ condition = [('customer_id', '=', partner_id),
+ ('active_contract', '=', True)]
+ contract_ids = contract_obj.search(cr, uid, condition, limit=1)
+ contract_id = contract_ids and contract_ids[0] or False
+ if contract_id:
+ contract = contract_obj.browse(cr, uid, contract_id)
+ values['contract_id'] = contract_id
+ values['elevator_partner_id'] = (contract.elevator_id and
+ contract.elevator_id.id or
+ False)
+ values['middleman_partner_id'] = (contract.middleman_id and
+ contract.middleman_id.id or
+ False)
+ values['user_id'] = partner.user_id and partner.user_id.id or False
+ return {'value': values}
+
+ def onchange_contract_id(self, cr, uid, ids, contract):
+ if not contract:
+ return {'value': {'elevator_partner_id': False,
+ 'middleman_partner_id': False}}
+ contract = self.pool.get('contract.contract').browse(cr, uid, contract)
+ elevator_partner_id = (contract.elevator_id and
+ contract.elevator_id.id or False)
+ middleman_partner_id = (contract.middleman_id and
+ contract.middleman_id.id or False)
+ val = {
+ 'elevator_partner_id': elevator_partner_id,
+ 'middleman_partner_id': middleman_partner_id,
+ }
+
+ return {'value': val}
+
+
+class AccountInvoiceLine(orm.Model):
+ _inherit = "account.invoice.line"
+
+ _columns = {
+ 'ref': fields.char('Reference', size=64),
+ 'contract_id': fields.many2one('contract.contract', 'Contract',
+ select=True),
+ 'contract_annexe_id': fields.many2one('contract.annexe', 'Annexe',
+ select=True),
+ 'stock_move_id': fields.many2one('stock.move', 'Stock Move',
+ select=True),
+ }
=== renamed file 'dos_sales_elevator_partner/sale.py' => 'dos_sales_elevator_partner/models/sale.py'
--- dos_sales_elevator_partner/sale.py 2014-06-11 10:23:47 +0000
+++ dos_sales_elevator_partner/models/sale.py 2014-06-25 16:19:57 +0000
@@ -19,167 +19,204 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
-
-from osv import fields, osv
-import decimal_precision as dp
-import time
-
-class sale_order(osv.osv):
+from openerp.osv import orm, fields
+from . import decimal_precision as dp
+from . import time
+
+
+class SaleOrder(orm.Model):
"""Inherit sale_order to add elevator partner field"""
-
- _inherit ="sale.order"
-
+ _inherit = "sale.order"
_columns = {
'ref': fields.char('Reference', size=64),
- 'elevator_partner_id': fields.many2one('res.partner', 'Elevator', readonly=True, states={'draft': [('readonly', False)]}, select=True),
- 'elevator_invoice_id': fields.many2one('res.partner.address', 'Elevator Invoice Address', readonly=True, states={'draft': [('readonly', False)]}, help="Elevator invoice address for current sales order."),
- 'middleman_partner_id': fields.many2one('res.partner', 'Middleman', readonly=True, states={'draft': [('readonly', False)]}, select=True),
+ 'elevator_partner_id':
+ fields.many2one('res.partner', 'Elevator', readonly=True,
+ states={'draft': [('readonly', False)]},
+ select=True),
+ 'elevator_invoice_id':
+ fields.many2one('res.partner.address', 'Elevator Invoice Address',
+ readonly=True,
+ states={'draft': [('readonly', False)]},
+ help="Elevator invoice address for current sales "
+ "order."),
+ 'middleman_partner_id':
+ fields.many2one('res.partner', 'Middleman', readonly=True,
+ states={'draft': [('readonly', False)]},
+ select=True),
}
-
+
def action_ship_create(self, cr, uid, ids, *args):
- result = super(sale_order, self).action_ship_create(cr, uid, ids, *args)
+ picking_obj = self.pool['stock.picking']
+ result = super(SaleOrder, self).action_ship_create(cr, uid, ids, *args)
for order in self.browse(cr, uid, ids, context={}):
- pids = [ x.id for x in order.picking_ids]
- self.pool.get('stock.picking').write(cr, uid, pids, {
- 'elevator_partner_id': order.elevator_partner_id and order.elevator_partner_id.id or False,
- 'elevator_invoice_id': order.elevator_invoice_id and order.elevator_invoice_id.id or False,
- 'middleman_partner_id': order.middleman_partner_id and order.middleman_partner_id.id or False,
- 'contract_id': order.contract_id and order.contract_id.id or False,
- 'contact_id': order.contact_id and order.contact_id.id or False,
- })
+ pids = [x.id for x in order.picking_ids]
+ vals = {
+ 'elevator_partner_id': (order.elevator_partner_id and
+ order.elevator_partner_id.id or False),
+ 'elevator_invoice_id': (order.elevator_invoice_id and
+ order.elevator_invoice_id.id or False),
+ 'middleman_partner_id': (order.middleman_partner_id and
+ order.middleman_partner_id.id or
+ False),
+ 'contract_id': (order.contract_id and order.contract_id.id or
+ False),
+ 'contact_id': (order.contact_id and order.contact_id.id or
+ False),
+ }
+ picking_obj.write(cr, uid, pids, vals)
return result
-
-
- def action_invoice_create(self, cr, uid, ids, grouped=False, states=['confirmed', 'done', 'exception'], date_inv = False, context=None):
- invoice_id = super(sale_order, self).action_invoice_create(cr, uid, ids, grouped=grouped, states=states, date_inv = date_inv, context=context)
+
+ def action_invoice_create(self, cr, uid, ids, grouped=False,
+ states=['confirmed', 'done', 'exception'],
+ date_inv=False, context=None):
inv_obj = self.pool.get('account.invoice')
+ invoice_id = super(SaleOrder, self).action_invoice_create(
+ cr, uid, ids, grouped=grouped, states=states,
+ date_inv=date_inv, context=context)
for order in self.browse(cr, uid, ids, context=context):
for invoice in order.invoice_ids:
- inv_obj.write(cr, uid, [invoice.id], {
- 'elevator_partner_id': order.elevator_partner_id and order.elevator_partner_id.id or False,
- 'elevator_invoice_id': order.elevator_invoice_id and order.elevator_invoice_id.id or False,
- 'middleman_partner_id': order.middleman_partner_id and order.middleman_partner_id.id or False,
- 'contract_id': order.contract_id and order.contract_id.id or False,
- 'contact_id': order.contact_id and order.contact_id.id or False,
- })
+ vals = {
+ 'elevator_partner_id': (order.elevator_partner_id and
+ order.elevator_partner_id.id or
+ False),
+ 'elevator_invoice_id': (order.elevator_invoice_id and
+ order.elevator_invoice_id.id or
+ False),
+ 'middleman_partner_id': (order.middleman_partner_id and
+ order.middleman_partner_id.id or
+ False),
+ 'contract_id': (order.contract_id and
+ order.contract_id.id or False),
+ 'contact_id': (order.contact_id and order.contact_id.id or
+ False),
+ }
+ inv_obj.write(cr, uid, [invoice.id], vals)
return invoice_id
-
-
+
def onchange_partner_id(self, cr, uid, ids, part):
-
- res = super(sale_order, self).onchange_partner_id(cr, uid, ids, part)
-
- values = ('value' in res) and res['value'] or {'partner_invoice_id': False,
- 'partner_shipping_id': False,
- 'partner_order_id': False,
- 'payment_term': False,
- 'fiscal_position': False,
- }
-
+ partner_obj = self.pool['res.partner']
+ contract_obj = self.pool['contract.contract']
+ address_obj = self.pool['res.partner.address']
+ res = super(SaleOrder, self).onchange_partner_id(cr, uid, ids, part)
+ values = (('value' in res) and
+ res['value'] or {'partner_invoice_id': False,
+ 'partner_shipping_id': False,
+ 'partner_order_id': False,
+ 'payment_term': False,
+ 'fiscal_position': False,
+ })
values['contract_id'] = False
values['middleman_partner_id'] = False
values['elevator_partner_id'] = False
values['elevator_invoice_id'] = False
-
domain = {}
domain['contract_id'] = []
-
if part:
- partner = self.pool.get('res.partner').browse(cr, uid, part, context=None)
- contract_ids = self.pool.get('contract.contract').search(cr, uid, [('customer_id', '=', part), ('active_contract', '=', True)])
- contract_id = contract_ids and (len(contract_ids)==1) and contract_ids[0] or False
-
+ condition = [('customer_id', '=', part),
+ ('active_contract', '=', True)]
+ contract_ids = contract_obj.search(cr, uid, condition)
+ contract_id = (contract_ids and (len(contract_ids) == 1) and
+ contract_ids[0] or False)
if contract_id:
- contract = self.pool.get('contract.contract').browse(cr, uid, contract_id)
+ contract = contract_obj.browse(cr, uid, contract_id)
values['contract_id'] = contract_id
- values['middleman_partner_id'] = contract.middleman_id and contract.middleman_id.id or False
- values['elevator_partner_id'] = contract.elevator_id and contract.elevator_id.id or False
+ values['middleman_partner_id'] = (contract.middleman_id and
+ contract.middleman_id.id or
+ False)
+ values['elevator_partner_id'] = (contract.elevator_id and
+ contract.elevator_id.id or
+ False)
if contract.elevator_id:
- addr = self.pool.get('res.partner').address_get(cr, uid, [contract.elevator_id.id], ['delivery', 'invoice'])
- values['partner_shipping_id'] = addr['delivery']
+ addr = partner_obj.address_get(cr, uid,
+ [contract.elevator_id.id],
+ ['delivery', 'invoice'])
+ values['partner_shipping_id'] = addr['delivery']
values['elevator_invoice_id'] = addr['invoice']
- if values['partner_shipping_id']:
- address = self.pool.get('res.partner.address').browse(cr, uid, values['partner_shipping_id'], context=None)
- values['contact_id'] = address and address.job_id and address.job_id.id or False
-
+ if values['partner_shipping_id']:
+ address = address_obj.browse(
+ cr, uid, values['partner_shipping_id'],
+ context=None)
+ values['contact_id'] = (address and address.job_id and
+ address.job_id.id or False)
# Filtramos contrato por cliente
- domain['contract_id'] = [('customer_id','=', part)]
-
+ domain['contract_id'] = [('customer_id', '=', part)]
return {'value': values, 'domain': domain}
-
-
+
def onchange_contract_id(self, cr, uid, ids, contract):
if not contract:
- return {'value': {'elevator_partner_id': False, 'middleman_partner_id': False, 'elevator_invoice_id': False}}
+ return {'value': {'elevator_partner_id': False,
+ 'middleman_partner_id': False,
+ 'elevator_invoice_id': False}}
- contract_obj = self.pool.get('contract.contract')
- partner_obj = self.pool.get('res.partner')
-
+ contract_obj = self.pool['contract.contract']
+ partner_obj = self.pool['res.partner']
+ address_obj = self.pool['res.partner.address']
val = {}
-
domain = {}
domain['contract_id'] = []
-
contract = contract_obj.browse(cr, uid, contract)
partner = contract.customer_id or False
- middleman_partner_id = contract.middleman_id and contract.middleman_id.id or False
- elevator_partner_id = contract.elevator_id and contract.elevator_id.id or False
- elevator_invoice_id = False
+ middleman_partner_id = (contract.middleman_id and
+ contract.middleman_id.id or False)
+ elevator_partner_id = (contract.elevator_id and
+ contract.elevator_id.id or False)
if elevator_partner_id:
- addr = partner_obj.address_get(cr, uid, [elevator_partner_id], ['delivery', 'invoice'])
+ addr = partner_obj.address_get(
+ cr, uid, [elevator_partner_id], ['delivery', 'invoice'])
val['partner_shipping_id'] = addr['delivery']
val['elevator_invoice_id'] = addr['invoice']
if addr['delivery']:
- address = self.pool.get('res.partner.address').browse(cr, uid, addr['delivery'], context=None)
- val['contact_id'] = address and address.job_id and address.job_id.id or False
-
+ address = address_obj.browse(cr, uid, addr['delivery'],
+ context=None)
+ val['contact_id'] = (address and address.job_id and
+ address.job_id.id or False)
if partner:
- addr = partner_obj.address_get(cr, uid, [partner.id], ['invoice', 'contact'])
- pricelist = partner.property_product_pricelist and partner.property_product_pricelist.id or False
- payment_term = partner.property_payment_term and partner.property_payment_term.id or False
- fiscal_position = partner.property_account_position and partner.property_account_position.id or False
+ addr = partner_obj.address_get(cr, uid, [partner.id],
+ ['invoice', 'contact'])
+ pricelist = (partner.property_product_pricelist and
+ partner.property_product_pricelist.id or False)
+ payment_term = (partner.property_payment_term and
+ partner.property_payment_term.id or False)
+ fiscal_position = (partner.property_account_position and
+ partner.property_account_position.id or False)
dedicated_salesman = partner.user_id and partner.user_id.id or uid
-
val['partner_id'] = partner.id
val['partner_invoice_id'] = addr['invoice']
val['partner_order_id'] = addr['contact']
val['payment_term'] = payment_term
val['fiscal_position'] = fiscal_position
val['user_id'] = dedicated_salesman
-
if pricelist:
val['pricelist_id'] = pricelist
-
# Filtramos contrato por cliente
- domain['contract_id'] = [('customer_id','=', partner.id)]
-
+ domain['contract_id'] = [('customer_id', '=', partner.id)]
val['middleman_partner_id'] = middleman_partner_id
val['elevator_partner_id'] = elevator_partner_id
-
return {'value': val, 'domain': domain}
-
-
+
def onchange_elevator_partner_id(self, cr, uid, ids, elevator_partner):
+ partner_obj = self.pool['res.partner']
+ address_obj = self.pool['res.partner.address']
if not elevator_partner:
return {'value': {'elevator_invoice_id': False}}
-
values = {}
- addr = self.pool.get('res.partner').address_get(cr, uid, [elevator_partner], ['delivery', 'invoice'])
+ addr = partner_obj.address_get(cr, uid, [elevator_partner],
+ ['delivery', 'invoice'])
values['partner_shipping_id'] = addr['delivery']
values['elevator_invoice_id'] = addr['invoice']
if addr['delivery']:
- address = self.pool.get('res.partner.address').browse(cr, uid, addr['delivery'], context=None)
- values['contact_id'] = address and address.job_id and address.job_id.id or False
-
+ address = address_obj.browse(cr, uid, addr['delivery'],
+ context=None)
+ values['contact_id'] = (address and address.job_id and
+ address.job_id.id or False)
return {'value': values}
-
def onchange_partner_shipping_id(self, cr, uid, ids, partner_shipping_id):
+ address_obj = self.pool['res.partner.address']
contact_id = False
if partner_shipping_id:
- address = self.pool.get('res.partner.address').browse(cr, uid, partner_shipping_id, context=None)
- contact_id = address and address.job_id and address.job_id.id or False
+ address = address_obj.browse(cr, uid, partner_shipping_id,
+ context=None)
+ contact_id = (address and address.job_id and address.job_id.id or
+ False)
return {'value': {'contact_id': contact_id}}
-
-sale_order()
-
=== renamed file 'dos_sales_elevator_partner/stock.py' => 'dos_sales_elevator_partner/models/stock.py'
--- dos_sales_elevator_partner/stock.py 2014-06-11 10:23:47 +0000
+++ dos_sales_elevator_partner/models/stock.py 2014-06-25 16:19:57 +0000
@@ -19,123 +19,148 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
-
-from osv import fields, osv
-import decimal_precision as dp
-import time
-
-class stock_picking(osv.osv):
- """Inherit stock_picking to add elevator partner field"""
-
- _inherit ="stock.picking"
-
- _columns = {
- 'ref': fields.char('Reference', size=64),
- 'elevator_partner_id': fields.many2one('res.partner', 'Elevator', states={'done': [('readonly', True)], 'cancel': [('readonly', True)]}, select=True),
- 'elevator_invoice_id': fields.many2one('res.partner.address', 'Elevator Invoice Address', states={'done': [('readonly', True)], 'cancel': [('readonly', True)]}, help="Elevator invoice address for current picking."),
- 'middleman_partner_id': fields.many2one('res.partner', 'Middleman', states={'done': [('readonly', True)], 'cancel': [('readonly', True)]}, select=True),
- }
-
- def _invoice_line_hook(self, cr, uid, move_line, invoice_line_id):
- '''Call after the creation of the invoice line'''
- if move_line:
- self.pool.get('account.invoice.line').write(cr, uid, [invoice_line_id], {
- 'contract_id': move_line.contract_id and move_line.contract_id.id or False,
- 'contract_annexe_id': move_line.contract_annexe_id and move_line.contract_annexe_id.id or False,
- 'stock_move_id': move_line.id,
- }, context=None)
-
-
- return super(stock_picking, self)._invoice_line_hook(cr, uid, move_line, invoice_line_id)
-
-
- def action_invoice_create(self, cr, uid, ids, journal_id=False, group=False, type='out_invoice', context=None):
-
- res = super(stock_picking, self).action_invoice_create(cr, uid, ids, journal_id=journal_id, group=group, type=type, context=context)
-
- for picking_id, invoice_id in res.items():
- picking = self.browse(cr, uid, picking_id, context=context)
-
- invoice_ids = self.pool.get('account.invoice').search(cr, uid, [('id', '=', invoice_id)], limit=1)
-
- if invoice_ids:
- # Write the sale_order_type info into the invoice.
- self.pool.get('account.invoice').write(cr, uid, [invoice_id], {
- 'elevator_partner_id': picking.elevator_partner_id and picking.elevator_partner_id.id or False,
- 'middleman_partner_id': picking.middleman_partner_id and picking.middleman_partner_id.id or False,
- 'contract_id': picking.contract_id and picking.contract_id.id or False,
- 'contact_id': picking.contact_id and picking.contact_id.id or False,
- }, context=context)
-
- return res
-
- def onchange_partner_in(self, cr, uid, context=None, partner_id=None):
-
- res = super(stock_picking, self).onchange_partner_in(cr, uid, context, partner_id)
-
- values = ('value' in res) and res['value'] or {}
-
- values['contract_id'] = False
- values['middleman_partner_id'] = False
- values['elevator_partner_id'] = False
- values['elevator_invoice_id'] = False
-
- if partner_id:
- address = self.pool.get('res.partner.address').browse(cr, uid, partner_id)
- contract_ids = self.pool.get('contract.contract').search(cr, uid, [('customer_id', '=', address.partner_id.id), ('active_contract', '=', True)], limit=1)
- contract_id = contract_ids and contract_ids[0] or False
-
- if contract_id:
- contract = self.pool.get('contract.contract').browse(cr, uid, contract_id)
- values['contract_id'] = contract_id
- values['middleman_partner_id'] = contract.middleman_id and contract.middleman_id.id or False
- values['elevator_partner_id'] = contract.elevator_id and contract.elevator_id.id or False
- if contract.elevator_id:
- addr = self.pool.get('res.partner').address_get(cr, uid, [contract.elevator_id.id], ['invoice'])
- values['elevator_invoice_id'] = addr['invoice']
-
- return {'value': values}
-
-
- def onchange_contract_id(self, cr, uid, ids, contract):
- if not contract:
- return {'value': {'elevator_partner_id': False, 'middleman_partner_id': False, 'elevator_invoice_id': False}}
-
- contract = self.pool.get('contract.contract').browse(cr, uid, contract)
- middleman_partner_id = contract.middleman_id and contract.middleman_id.id or False
- elevator_partner_id = contract.elevator_id and contract.elevator_id.id or False
- if elevator_partner_id:
- addr = self.pool.get('res.partner').address_get(cr, uid, [elevator_partner_id], ['invoice'])
- elevator_invoice_id = addr['invoice']
-
- val = {
- 'middleman_partner_id': middleman_partner_id,
- 'elevator_partner_id': elevator_partner_id,
- 'elevator_invoice_id': elevator_invoice_id,
- }
-
- return {'value': val}
-
-
- def onchange_elevator_partner_id(self, cr, uid, ids, elevator_partner):
- if not elevator_partner:
- return {'value': {'elevator_invoice_id': False}}
-
- addr = self.pool.get('res.partner').address_get(cr, uid, [elevator_partner], ['invoice'])
-
- return {'value': {'elevator_invoice_id': addr['invoice']}}
-
-stock_picking()
-
-
-class stock_move(osv.osv):
-
- _inherit ="stock.move"
-
- _columns = {
- 'ref': fields.char('Reference', size=64),
- 'contract_id': fields.many2one('contract.contract', 'Contract', select=True),
- 'contract_annexe_id': fields.many2one('contract.annexe', 'Annexe', select=True),
- }
-
-stock_move()
+from openerp.osv import orm, fields
+from . import decimal_precision as dp
+from . import time
+
+
+class StockPicking(orm.Model):
+ """Inherit stock_picking to add elevator partner field"""
+ _inherit = "stock.picking"
+
+ _columns = {
+ 'ref': fields.char('Reference', size=64),
+ 'elevator_partner_id':
+ fields.many2one('res.partner', 'Elevator', select=True,
+ states={'done': [('readonly', True)],
+ 'cancel': [('readonly', True)]}),
+ 'elevator_invoice_id':
+ fields.many2one('res.partner.address', 'Elevator Invoice Address',
+ states={'done': [('readonly', True)],
+ 'cancel': [('readonly', True)]},
+ help="Elevator invoice address for current "
+ "picking."),
+ 'middleman_partner_id':
+ fields.many2one('res.partner', 'Middleman', select=True,
+ states={'done': [('readonly', True)],
+ 'cancel': [('readonly', True)]}),
+ }
+
+ def _invoice_line_hook(self, cr, uid, move_line, invoice_line_id):
+ '''Call after the creation of the invoice line'''
+ invoice_line_obj = self.pool['account.invoice.line']
+ if move_line:
+ vals = {'contract_id': (move_line.contract_id and
+ move_line.contract_id.id or
+ False),
+ 'contract_annexe_id': (move_line.contract_annexe_id and
+ move_line.contract_annexe_id.id or
+ False),
+ 'stock_move_id': move_line.id,
+ }
+ invoice_line_obj.write(cr, uid, [invoice_line_id], vals,
+ context=None)
+ return super(StockPicking, self)._invoice_line_hook(cr, uid, move_line,
+ invoice_line_id)
+
+ def action_invoice_create(self, cr, uid, ids, journal_id=False,
+ group=False, type='out_invoice', context=None):
+ invoice_obj = self.pool['account.invoice']
+ res = super(StockPicking, self).action_invoice_create(
+ cr, uid, ids, journal_id=journal_id, group=group, type=type,
+ context=context)
+ for picking_id, invoice_id in res.items():
+ picking = self.browse(cr, uid, picking_id, context=context)
+ condition = [('id', '=', invoice_id)]
+ invoice_ids = invoice_obj.search(cr, uid, condition, limit=1)
+ if invoice_ids:
+ # Write the sale_order_type info into the invoice.
+ vals = {
+ 'elevator_partner_id': (picking.elevator_partner_id and
+ picking.elevator_partner_id.id or
+ False),
+ 'middleman_partner_id': (picking.middleman_partner_id and
+ picking.middleman_partner_id.id or
+ False),
+ 'contract_id': (picking.contract_id and
+ picking.contract_id.id or False),
+ 'contact_id': (picking.contact_id and picking.contact_id.id
+ or False),
+ }
+ invoice_obj.write(cr, uid, [invoice_id], vals, context=context)
+ return res
+
+ def onchange_partner_in(self, cr, uid, context=None, partner_id=None):
+ address_obj = self.pool['res.partner.address']
+ contract_obj = self.pool['contract.contract']
+ partner_obj = self.pool['res.partner']
+ res = super(StockPicking, self).onchange_partner_in(
+ cr, uid, context, partner_id)
+ values = ('value' in res) and res['value'] or {}
+ values['contract_id'] = False
+ values['middleman_partner_id'] = False
+ values['elevator_partner_id'] = False
+ values['elevator_invoice_id'] = False
+ if partner_id:
+ address = address_obj.browse(cr, uid, partner_id)
+ condition = [('customer_id', '=', address.partner_id.id),
+ ('active_contract', '=', True), ]
+ contract_ids = contract_obj.search(cr, uid, condition, limit=1)
+ contract_id = contract_ids and contract_ids[0] or False
+ if contract_id:
+ contract = contract_obj.browse(cr, uid, contract_id)
+ values['contract_id'] = contract_id
+ values['middleman_partner_id'] = (contract.middleman_id and
+ contract.middleman_id.id or
+ False)
+ values['elevator_partner_id'] = (contract.elevator_id and
+ contract.elevator_id.id or
+ False)
+ if contract.elevator_id:
+ addr = partner_obj.address_get(
+ cr, uid, [contract.elevator_id.id], ['invoice'])
+ values['elevator_invoice_id'] = addr['invoice']
+ return {'value': values}
+
+ def onchange_contract_id(self, cr, uid, ids, contract):
+ contract_obj = self.pool['contract.contract']
+ partner_obj = self.pool['res.partner']
+ if not contract:
+ return {'value': {'elevator_partner_id': False,
+ 'middleman_partner_id': False,
+ 'elevator_invoice_id': False}}
+ contract = contract_obj.browse(cr, uid, contract)
+ middleman_partner_id = (contract.middleman_id and
+ contract.middleman_id.id or False)
+ elevator_partner_id = (contract.elevator_id and
+ contract.elevator_id.id or False)
+ if elevator_partner_id:
+ addr = partner_obj.address_get(
+ cr, uid, [elevator_partner_id], ['invoice'])
+ elevator_invoice_id = addr['invoice']
+ val = {
+ 'middleman_partner_id': middleman_partner_id,
+ 'elevator_partner_id': elevator_partner_id,
+ 'elevator_invoice_id': elevator_invoice_id,
+ }
+ return {'value': val}
+
+ def onchange_elevator_partner_id(self, cr, uid, ids, elevator_partner):
+ partner_obj = self.pool['res.partner']
+ if not elevator_partner:
+ return {'value': {'elevator_invoice_id': False}}
+ addr = partner_obj.address_get(
+ cr, uid, [elevator_partner], ['invoice'])
+ return {'value': {'elevator_invoice_id': addr['invoice']}}
+
+
+class StockMove(orm.Model):
+ _inherit = "stock.move"
+
+ _columns = {
+ 'ref': fields.char('Reference', size=64),
+ 'contract_id': fields.many2one('contract.contract', 'Contract',
+ select=True),
+ 'contract_annexe_id': fields.many2one('contract.annexe', 'Annexe',
+ select=True),
+ }
=== added directory 'dos_sales_elevator_partner/views'
=== renamed file 'dos_sales_elevator_partner/account_view.xml' => 'dos_sales_elevator_partner/views/account_view.xml'
--- dos_sales_elevator_partner/account_view.xml 2014-06-11 10:23:47 +0000
+++ dos_sales_elevator_partner/views/account_view.xml 2014-06-25 16:19:57 +0000
@@ -5,7 +5,6 @@
<field name="name">account.invoice.form.add_elevator_partner</field>
<field name="model">account.invoice</field>
<field name="inherit_id" ref="account.invoice_form"/>
- <field name="type">form</field>
<field name="arch" type="xml">
<field name="date_invoice" position="before">
<field name="contract_id" on_change="onchange_contract_id(contract_id)" domain="['|', ('customer_id','=', partner_id), ('elevator_id','=', partner_id)]" />
=== renamed file 'dos_sales_elevator_partner/sale_view.xml' => 'dos_sales_elevator_partner/views/sale_view.xml'
--- dos_sales_elevator_partner/sale_view.xml 2014-06-11 10:23:47 +0000
+++ dos_sales_elevator_partner/views/sale_view.xml 2014-06-25 16:19:57 +0000
@@ -5,23 +5,21 @@
<field name="name">sale.order.form.add_elevator_partner</field>
<field name="model">sale.order</field>
<field name="inherit_id" ref="sale.view_order_form"/>
- <field name="type">form</field>
<field name="arch" type="xml">
- <field name="project_id" position="after">
- <field name="contract_id" on_change="onchange_contract_id(contract_id)" />
- <field name="middleman_partner_id" />
- <field name="elevator_partner_id" domain="[('tipo_cliente','=','ascensorista')]" on_change="onchange_elevator_partner_id(elevator_partner_id)" />
- <field name="elevator_invoice_id" domain="[('partner_id','=',elevator_partner_id)]" groups="base.group_extended"/>
- </field>
-
- <field name="partner_shipping_id" position="replace">
- <field name="partner_shipping_id" domain="['|', ('partner_id','=',partner_id), ('partner_id','=',elevator_partner_id)]" on_change="onchange_partner_shipping_id(partner_shipping_id)" groups="base.group_extended"/>
- </field>
-
- <field name="partner_order_id" position="replace">
- <field name="partner_order_id" domain="['|', ('partner_id','=',partner_id), ('partner_id','=',elevator_partner_id)]" invisible="1" />
- </field>
-
+ <field name="project_id" position="after">
+ <field name="contract_id" on_change="onchange_contract_id(contract_id)" />
+ <field name="middleman_partner_id" />
+ <field name="elevator_partner_id" domain="[('tipo_cliente','=','ascensorista')]" on_change="onchange_elevator_partner_id(elevator_partner_id)" />
+ <field name="elevator_invoice_id" domain="[('partner_id','=',elevator_partner_id)]" groups="base.group_extended"/>
+ </field>
+ <field name="partner_shipping_id" position="attributes">
+ <attribute name="domain">['|', ('partner_id','=',partner_id), ('partner_id','=',elevator_partner_id)]</attribute>
+ <attribute name="on_change">onchange_partner_shipping_id(partner_shipping_id)</attribute>
+ </field>
+ <field name="partner_order_id" position="attributes">
+ <attribute name="domain">['|', ('partner_id','=',partner_id), ('partner_id','=',elevator_partner_id)]</attribute>
+ <attribute name="invisible">1</attribute>
+ </field>
</field>
</record>
</data>
=== renamed file 'dos_sales_elevator_partner/stock_view.xml' => 'dos_sales_elevator_partner/views/stock_view.xml'
--- dos_sales_elevator_partner/stock_view.xml 2014-06-11 10:23:47 +0000
+++ dos_sales_elevator_partner/views/stock_view.xml 2014-06-25 16:19:57 +0000
@@ -5,13 +5,12 @@
<field name="name">stock.picking.out.form.add_elevator_partner</field>
<field name="model">stock.picking</field>
<field name="inherit_id" ref="stock.view_picking_out_form"/>
- <field name="type">form</field>
<field name="arch" type="xml">
<field name="company_id" position="after">
<field name="contract_id" on_change="onchange_contract_id(contract_id)" domain="['|', ('customer_address_id','=', address_id), ('elevator_address_id','=', address_id)]" />
<field name="elevator_partner_id" domain="[('tipo_cliente','=','ascensorista')]" on_change="onchange_elevator_partner_id(elevator_partner_id)" />
- <field name="middleman_partner_id" />
- <field name="elevator_invoice_id" domain="[('partner_id','=',elevator_partner_id)]" groups="base.group_extended"/>
+ <field name="middleman_partner_id" />
+ <field name="elevator_invoice_id" domain="[('partner_id','=',elevator_partner_id)]" groups="base.group_extended"/>
</field>
</field>
</record>
Follow ups