← Back to team overview

avanzosc team mailing list archive

[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