← Back to team overview

avanzosc team mailing list archive

Re: [Merge] lp:~oihanecruce/avanzosc/phonelift_sales_extension into lp:~avanzosc-security-team/avanzosc/72horas

 

Te respondo a tus comentarios.

Diff comments:

> === added file 'phonelift_sales_extension/__init__.py'
> --- phonelift_sales_extension/__init__.py	1970-01-01 00:00:00 +0000
> +++ phonelift_sales_extension/__init__.py	2014-06-30 13:16:06 +0000
> @@ -0,0 +1,22 @@
> +# -*- encoding: utf-8 -*-
> +##############################################################################
> +#
> +#    OpenERP, Open Source Management Solution
> +#    Copyright (C) 2008-2014 AvanzOSC S.L. (Oihane) All Rights Reserved
> +#
> +#    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 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 models
> 
> === modified file 'phonelift_sales_extension/__openerp__.py'
> --- phonelift_sales_extension/__openerp__.py	2014-06-11 10:23:47 +0000
> +++ phonelift_sales_extension/__openerp__.py	2014-06-30 13:16:06 +0000
> @@ -24,7 +24,8 @@
>      "version": "1.3",
>      "author": "Nayar Systems",
>      "category": "Enterprise Specific Modules",
> -    "description": "Proporciona funcionalidad extra para la web de pedidos de Phonelift",
> +    "description": "Proporciona funcionalidad extra para la web de pedidos de "
> +    "Phonelift",
>      "depends": [
>          'base',
>          'nayar_sales_extension',
> @@ -36,5 +37,3 @@
>      "active": False,
>      "installable": True
>  }
> -
> -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
> 
> === added directory 'phonelift_sales_extension/models'
> === renamed file 'phonelift_sales_extension/__init__.py' => 'phonelift_sales_extension/models/__init__.py'
> --- phonelift_sales_extension/__init__.py	2014-06-11 10:23:47 +0000
> +++ phonelift_sales_extension/models/__init__.py	2014-06-30 13:16:06 +0000
> @@ -22,6 +22,3 @@
>  import partner
>  import sale
>  import stock
> -
> -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
> -
> 
> === renamed file 'phonelift_sales_extension/partner.py' => 'phonelift_sales_extension/models/partner.py'
> --- phonelift_sales_extension/partner.py	2014-06-11 10:23:47 +0000
> +++ phonelift_sales_extension/models/partner.py	2014-06-30 13:16:06 +0000
> @@ -19,40 +19,47 @@
>  #
>  ##############################################################################
>  
> -import logging
> -from osv import osv
> -
> -class res_partner(osv.osv):
> +from openerp import logging
> +from openerp.osv import orm
> +
> +
> +class ResPartner(orm.Model):
>      _inherit = 'res.partner'
>  
> -    def create_administrator(self, cr, uid, data):
> +    def create_administrator(self, cr, uid, data, context=None):
>          logging.getLogger("New administrator").info(data)
>  
>          administrator_d = {
> -	    'name': data['nombre'],
> -	    'ref': data['colegiado'],
> -	    'active': True,
> -	    'note': data['sociedad'],
> -	    'customer': False,
> -	    }
> -	address = {
> -	    'street': data['direccion'],
> -	    'zip': data['cp'],
> -	    'city': data['poblacion'],
> -	    'state_id': self.pool.get('res.country.state').search_by_name(cr, uid, data['provincia']),
> -	    'email': data['email'],
> -	    'phone': data['telefono'],
> -	    }
> -
> -        administrator_ids = self.search(cr, uid, [('ref', '=', data.get('colegiado'))])
> -	if not administrator_ids:
> -	    administrator_id = self.create(cr, uid, administrator_d)
> -	    address['partner_id'] = administrator_id
> -            address_id = self.pool.get('res.partner.address').create(cr, uid, address)
> -
> -    def deactivate_administrator(self, cr, uid, data):
> -        administrator_ids = self.search(cr, uid, [('ref', '=', data.get('colegiado'))])
> +            'name': data['nombre'],
> +            'ref': data['colegiado'],
> +            'active': True,
> +            'note': data['sociedad'],
> +            'customer': False,
> +        }
> +        partner = {
> +            'name': data['nombre'],
> +            'street': data['direccion'],
> +            'zip': data['cp'],
> +            'city': data['poblacion'],
> +            'state_id': self.pool['res.country.state'].search_by_name(
> +                cr, uid, data['provincia']),
> +            'email': data['email'],
> +            'phone': data['telefono'],
> +        }
> +
> +        administrator_ids = self.search(cr, uid,
> +                                        [('ref', '=', data['colegiado'])],
> +                                        context=context)
> +        if not administrator_ids:
> +            administrator_id = self.create(cr, uid, administrator_d,
> +                                           context=context)
> +            partner['partner_id'] = administrator_id
> +            self.pool['res.partner'].create(cr, uid, partner, context=context)
> +
> +    def deactivate_administrator(self, cr, uid, data, context=None):
> +        administrator_ids = self.search(cr, uid,
> +                                        [('ref', '=', data['colegiado'])],
> +                                        context=context)
>          if administrator_ids:
> -            self.write(cr, uid, administrator_ids, {'active': False}) 
> -
> -res_partner()
> +            self.write(cr, uid, administrator_ids, {'active': False},
> +                       context=context)
> 
> === renamed file 'phonelift_sales_extension/sale.py' => 'phonelift_sales_extension/models/sale.py'
> --- phonelift_sales_extension/sale.py	2014-06-11 10:23:47 +0000
> +++ phonelift_sales_extension/models/sale.py	2014-06-30 13:16:06 +0000
> @@ -19,16 +19,17 @@
>  #
>  ##############################################################################
>  
> -from osv import osv
> -from tools.translate import _
> -import netsvc
> -import logging
> -
> -class sale_order(osv.osv):
> +from openerp.osv import orm
> +from openerp.tools.translate import _
> +from openerp import netsvc, logging
> +
> +
> +class SaleOrder(orm.Model):
>      _inherit = 'sale.order'
>  
> -    def create_basic_order(self, cr, uid, data):
> -        """Make a new sale order for a neighboring community or particular customer:
> +    def create_basic_order(self, cr, uid, data, context=None):
> +        """Make a new sale order for a neighboring community or
> +        particular customer:
>          order_id_72horas: Order id at 72horas system.
>          administrator: Property Administrator Reference.
>          name: Community name.
> @@ -47,7 +48,10 @@
>          mandate_date: SEPA Mandate signature date.
>          act: Act (attachment).
>          notes: Order notes and observations (optional).
> -        lines: Order lines list with format {'sale_type', 'sale_group' (optional), 'ref' (optional), 'cabins' (list of strings with references), 'line_id_72horas' (optional)}."""
> +        lines: Order lines list with format {'sale_type',
> +            'sale_group' (optional), 'ref' (optional),
> +            'cabins' (list of strings with references),
> +            'line_id_72horas' (optional)}."""
>  
>          # Create basic order using Nayar logics
>          if 'customer_id' in data:
> @@ -55,138 +59,180 @@
>          if 'customer_id_72horas' in data:
>              del data['customer_id_72horas']
>  
> -        company_obj = self.pool.get('res.company')
> -        company_ids = company_obj.search(cr, uid, [])
> -        company = company_obj.browse(cr, uid, company_ids[0])
> +        company_obj = self.pool['res.company']
> +        company_ids = company_obj.search(cr, uid, [], context=context)
> +        company = company_obj.browse(cr, uid, company_ids[0], context=context)
>          data['customer_id'] = company.partner_id.ref
>  
> -        order_refs = super(sale_order, self).create_basic_order(cr, uid, data)
> +        order_refs = super(SaleOrder,
> +                           self).create_basic_order(cr, uid, data,
> +                                                    context=context)
>  
> -        order_obj = self.pool.get('sale.order')
> -        order_ids = order_obj.search(cr, uid, [('name', 'in', order_refs)])
> -        order = order_obj.browse(cr, uid, order_ids[0])
> +        order_obj = self.pool['sale.order']
> +        order_ids = order_obj.search(cr, uid, [('name', 'in', order_refs)],
> +                                     context=context)
> +        order = order_obj.browse(cr, uid, order_ids[0], context=context)
>  
>          # Get property administrator
> -        partner_obj = self.pool.get ('res.partner')
> -        administrator_ids = partner_obj.search(cr, uid, [('ref', '=', data['administrator'])])
> +        partner_obj = self.pool['res.partner']
> +        administrator_ids = partner_obj.search(
> +            cr, uid, [('ref', '=', data['administrator'])], context=context)
>          if not administrator_ids:
> -            raise osv.except_osv(_('Error !'), _('Property Administrator not found!!'))
> +            raise orm.except_orm(_('Error !'),
> +                                 _('Property Administrator not found!!'))
>          administrator_id = administrator_ids[0]
>  
> -        order_obj.write(cr, uid, order_ids, {'middleman_partner_id': administrator_id})
> +        order_obj.write(cr, uid, order_ids,
> +                        {'middleman_partner_id': administrator_id},
> +                        context=context)
>  
>          # Store Act
> -        if data.get('act'):
> -            attach_obj = self.pool.get('ir.attachment')
> +        if data['act']:
> +            attach_obj = self.pool['ir.attachment']
>              partner = order.partner_id
> -            attach_obj.create(cr, uid, {'datas': data['act'], 'datas_fname': '%s.pdf' % partner.ref, 'name': '%s.pdf' % partner.ref, 'res_id': partner.id, 'res_model': 'res.partner'})
> +            attach_obj.create(cr, uid, {'datas': data['act'],
> +                                        'datas_fname': '%s.pdf' % partner.ref,
> +                                        'name': '%s.pdf' % partner.ref,
> +                                        'res_id': partner.id,
> +                                        'res_model': 'res.partner'},
> +                              context=context)
>  
>          # Add instalation service line
> -        line_obj = self.pool.get('sale.order.line')
> +        line_obj = self.pool['sale.order.line']
>          new_line = {
>              'order_id': order.id,
>              'product_id': 8,
>              'product_uom': 1,
>              'product_uom_qty': len(data['lines']),
> -            }
> -        new_line.update(line_obj.product_id_change_inherit(cr, uid, [], order.pricelist_id.id, new_line['product_id'], contract_id=order.contract_id.id, partner_id=order.partner_id.id, date_order=order.date_order, fiscal_position=order.fiscal_position.id)['value'])
> +        }
> +        new_line.update(line_obj.product_id_change_inherit(
> +            cr, uid, [], order.pricelist_id.id, new_line['product_id'],
> +            contract_id=order.contract_id.id, partner_id=order.partner_id.id,
> +            date_order=order.date_order,
> +            fiscal_position=order.fiscal_position.id)['value'])
>          if new_line.get('tax_id'):
>              new_line['tax_id'] = [(6, 0, new_line['tax_id'])]
> -        line_obj.create(cr, uid, new_line)
> +        line_obj.create(cr, uid, new_line, context=context)
>  
>          # Return order references
>          return order_refs
> -        
> -    def update_order_line(self, cr, uid, data):
> +
> +    def update_order_line(self, cr, uid, data, context=None):
>          """Update a sale order line:
>          prodlot_id: Pack product ID
>          order_line_id: Order line ID
>          """
> -        prod_obj = self.pool.get('product.product')
> -        stock_prod_lot_obj = self.pool.get('stock.production.lot')
> -        line_obj = self.pool.get('sale.order.line')
> -        pack = stock_prod_lot_obj.browse(cr, uid, [data['prodlot_id']])
> -        line = line_obj.browse(cr, uid, [data['order_line_id']])
> +        stock_prod_lot_obj = self.pool['stock.production.lot']
> +        line_obj = self.pool['sale.order.line']
> +        pack = stock_prod_lot_obj.browse(cr, uid, [data['prodlot_id']],
> +                                         context=context)
> +        line = line_obj.browse(cr, uid, [data['order_line_id']],
> +                               context=context)
>          order = line[0].order_id
>          if len(pack) == 0:
>              return -1
>          pack = pack[0]
> -        update_dict = {'name': pack.product_id.name,
> +        update_dict = {
> +            'name': pack.product_id.name,
>              'client_order_ref': pack.ref,
>              'product_id': pack.product_id.id,
> -            'prodlot_id':pack.id,
> +            'prodlot_id': pack.id,
>              'price_unit': pack.product_id.list_price,
>              'discount': pack.product_id.discount,
> -            }
> -        line_obj.write(cr, uid, [data['order_line_id']], update_dict)
> -        new_update = line_obj.product_id_change_inherit(cr, uid, [], order.pricelist_id.id, update_dict['product_id'], contract_id=order.contract_id.id, partner_id=order.partner_id.id, date_order=order.date_order, fiscal_position=order.fiscal_position.id)
> +        }
> +        line_obj.write(cr, uid, [data['order_line_id']], update_dict,
> +                       context=context)
> +        new_update = line_obj.product_id_change_inherit(
> +            cr, uid, [], order.pricelist_id.id, update_dict['product_id'],
> +            contract_id=order.contract_id.id, partner_id=order.partner_id.id,
> +            date_order=order.date_order,
> +            fiscal_position=order.fiscal_position.id, context=context)
>          update_dict.update(new_update['value'])
>          if update_dict.get('tax_id'):
>              update_dict['tax_id'] = [(6, 0, update_dict['tax_id'])]
>          update_dict['prodlot_id'] = pack.id
> -        return line_obj.write(cr, uid, [data['order_line_id']], update_dict)
> - 
> -    def update_process_order(self, cr, uid, data):
> +        return line_obj.write(cr, uid, [data['order_line_id']], update_dict,
> +                              context=context)
> +
> +    def update_process_order(self, cr, uid, data, context=None):
>          """Update and process a sale order:
>          order_line_id: Order line ID
>          prodlot_id: Pack product ID
>          """
> -        line_obj = self.pool.get('sale.order.line')
> -        sale_obj = self.pool.get('sale.order')
> -        order_id = sale_obj.search(cr, uid, [('name','=',int(data['ref'])), ('state','=','draft')])
> +        line_obj = self.pool['sale.order.line']
> +        sale_obj = self.pool['sale.order']
> +        order_id = sale_obj.search(
> +            cr, uid, [('name', '=', int(data['ref'])),
> +                      ('state', '=', 'draft')], context=context)
>          if not len(order_id):
>              #El pedido ya esta procesado.
>              return (-1, 'Pedido ya procesado')
> -        order_line_ids = line_obj.search(cr, uid, [('order_id', '=', order_id[0]), ('name','=','Pack')])
> +        order_line_ids = line_obj.search(
> +            cr, uid, [('order_id', '=', order_id[0]), ('name', '=', 'Pack')],
> +            context=context)
>          if not len(order_line_ids):
>              #El pedido no tiene lineas.
>              return (-1, 'Pedido sin lineas!')
>          data['order_line_id'] = order_line_ids[0]
> -        res = self.update_order_line(cr, uid, data)
> +        res = self.update_order_line(cr, uid, data, context=context)
>          res = '103'
>          if len(order_line_ids) == 1:
>              #self.process_phonelift_deliveries(cr, uid, order_id)
> -            res='3'
> +            res = '3'
>          return (res, None)
>  
> -    def process_phonelift_delivery(self, cr, uid, ref_id):
> +    def process_phonelift_delivery(self, cr, uid, ref_id, context=None):
>          wf_service = netsvc.LocalService('workflow')
>          logger = logging.getLogger(self._name)
>  
>          #Search order_id
> -        order_ids = self.search(cr, uid, [('name','=',int(ref_id)), ('state','=','draft')])
> +        order_ids = self.search(cr, uid, [('name', '=', int(ref_id)),
> +                                          ('state', '=', 'draft')],
> +                                context=context)
>  
>          # Processing orders
>          logger.info("*** Processing orders")
> -        self.write(cr, uid, order_ids, {'state': 'draft'})
> +        self.write(cr, uid, order_ids, {'state': 'draft'}, context=context)
>          for order_id in order_ids:
> -            wf_service.trg_validate(uid, 'sale.order', order_id, 'order_confirm', cr)
> -        orders = self.browse(cr, uid, order_ids)
> -        
> +            wf_service.trg_validate(
> +                uid, 'sale.order', order_id, 'order_confirm', cr)
> +        orders = self.browse(cr, uid, order_ids, context=context)
> +
>          # Processing pickings
>          logger.info("*** Processing pickings")
> -        picking_obj = self.pool.get('stock.picking')
> -        partial_obj = self.pool.get("stock.partial.picking")
> -        picking_ids = picking_obj.search(cr, uid, [('origin', 'in', [o.name for o in orders]), ('type', '=', 'out')])
> -        picking_obj.action_done(cr, uid, picking_ids)
> -        partial_id = partial_obj.create(cr, uid, {}, context={'active_ids': picking_ids})
> -        partial_obj.do_partial(cr, uid, [partial_id], context={'active_ids': picking_ids})
> +        picking_obj = self.pool['stock.picking']
> +        partial_obj = self.pool["stock.partial.picking"]
> +        picking_ids = picking_obj.search(
> +            cr, uid, [('origin', 'in', [o.name for o in orders]),
> +                      ('type', '=', 'out')], context=context)
> +        picking_obj.action_done(cr, uid, picking_ids, context=context)
> +        partial_id = partial_obj.create(
> +            cr, uid, {}, context={'active_ids': picking_ids})
> +        partial_obj.do_partial(
> +            cr, uid, [partial_id], context={'active_ids': picking_ids})
>  
>          # Invoicing pickings
>          logger.info("*** Invoicing pickings")
> -        onshipping_obj = self.pool.get('stock.invoice.onshipping')
> -        journal_id = self.pool.get('account.journal').search(cr, uid, [('code', '=', 'VEN')])[0]
> +        onshipping_obj = self.pool['stock.invoice.onshipping']
> +        journal_id = self.pool['account.journal'].search(
> +            cr, uid, [('code', '=', 'VEN')], context=context)[0]
>          for picking_id in picking_ids:
> -            onshipping_id = onshipping_obj.create(cr, uid, {'journal_id': journal_id}, context={'active_ids': [picking_id], 'active_id': picking_id})
> -            onshipping_obj.open_invoice(cr, uid, [onshipping_id], context={'active_ids': [picking_id], 'active_id': picking_id})
> +            onshipping_id = onshipping_obj.create(
> +                cr, uid, {'journal_id': journal_id},
> +                context={'active_ids': [picking_id], 'active_id': picking_id})
> +            onshipping_obj.open_invoice(
> +                cr, uid, [onshipping_id], context={'active_ids': [picking_id],
> +                                                   'active_id': picking_id})
>          # Validating invoices
>          logger.info("*** Validating invoices")
>          invoice_obj = self.pool.get('account.invoice')
>          pickings = picking_obj.read(cr, uid, picking_ids, ['name'])
>          for picking in pickings:
> -            invoice_ids = invoice_obj.search(cr, uid, [('origin', 'like', "%s:%%" % picking['name'])])
> -            invoice_obj.button_reset_taxes(cr,uid,invoice_ids)
> +            invoice_ids = invoice_obj.search(
> +                cr, uid, [('origin', 'like', "%s:%%" % picking['name'])],
> +                context=context)
> +            invoice_obj.button_reset_taxes(cr, uid, invoice_ids,
> +                                           context=context)
>              for invoice_id in invoice_ids:
> -                wf_service.trg_validate(uid, 'account.invoice', invoice_id, 'invoice_open', cr)
> -sale_order()
> -
> +                wf_service.trg_validate(
> +                    uid, 'account.invoice', invoice_id, 'invoice_open', cr)
> 
> === renamed file 'phonelift_sales_extension/stock.py' => 'phonelift_sales_extension/models/stock.py'
> --- phonelift_sales_extension/stock.py	2014-06-11 10:23:47 +0000
> +++ phonelift_sales_extension/models/stock.py	2014-06-30 13:16:06 +0000
> @@ -19,109 +19,133 @@
>  #
>  ##############################################################################
>  
> -from osv import osv
> -import sys, traceback, time
> -
> -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
> -class stock_production_lot(osv.osv):
> +from openerp.osv import orm
> +import sys
> +import traceback

Efectivamente, se utiliza, pero es como si nada, porque lo almacena en una variable ret que no devuelve. Lo dejaremos tal cual.

> +import time
> +
> +
> +class stock_production_lot(orm.Model):
>      _inherit = 'stock.production.lot'
>  
> -    def search_link_partial(self, cr, uid, data):
> +    def search_link_partial(self, cr, uid, data, context=None):
>          '''Search link
> -        num: last 5 digits 
> +        num: last 5 digits
>          '''
>          num = data['num']
> -        stock_prodlot = self.pool.get('stock.production.lot')
> +        stock_prodlot = self.pool['stock.production.lot']
>          try:
> -            id_link = stock_prodlot.search(cr,uid,[('name','like',num)])
> -            link = stock_prodlot.browse(cr,uid,id_link)[0]
> -            stock=link.stock_available
> +            id_link = stock_prodlot.search(cr, uid, [('name', 'like', num)],
> +                                           context=context)
> +            link = stock_prodlot.browse(cr, uid, id_link, context=context)[0]
> +            stock = link.stock_available
>          except:
>              id_link = []
> -            stock=0
> -        return (id_link,stock)
> -        
> -    def search_sim(self, cr, uid, data):
> +            stock = 0
> +        return (id_link, stock)
> +
> +    def search_sim(self, cr, uid, data, context=None):
>          ''' Search sim lot
>          telf: Telephone number
>          '''
> -        stock_prodlot = self.pool.get('stock.production.lot')
> +        stock_prodlot = self.pool['stock.production.lot']
>          telf = data['telf']
>          id_sim = []
>          try:
> -            id_sim = stock_prodlot.search(cr,uid,[('ref','=',telf),('stock_available','>=','1')])
> +            id_sim = stock_prodlot.search(
> +                cr, uid, [('ref', '=', telf), ('stock_available', '>=', '1')],
> +                context=context)
>          except:
> -            ty,val,tb = sys.exc_info()
> -            ret = traceback.format_exception(ty,val,tb)
> +            ty, val, tb = sys.exc_info()
> +            ret = traceback.format_exception(ty, val, tb)
>          return id_sim
> -        
> -    def create_pack(self, cr, uid, data):
> +
> +    def create_pack(self, cr, uid, data, context=None):
>          ''' Create a pack
>          telf: Telephone number
>          id_link: Link prodlot id
>          '''
> -        company = [('company_id','=','1')]
> -        stock_move_obj = self.pool.get('stock.move')
> -        stock_warehouse_obj = self.pool.get('stock.warehouse')
> -        stock_prod_lot_obj = self.pool.get('stock.production.lot')
> -        product_obj = self.pool.get('product.product')
> -        bom_obj = self.pool.get('mrp.bom')
> -        pack_data = {'id_link':data['id_link'],
> -                     'telf':data['telf'],
> -                    }
> -        link = stock_prod_lot_obj.browse(cr,uid,[int(pack_data['id_link']),])
> +        company = [('company_id', '=', '1')]
> +        stock_move_obj = self.pool['stock.move']
> +        stock_warehouse_obj = self.pool['stock.warehouse']
> +        stock_prod_lot_obj = self.pool['stock.production.lot']
> +        bom_obj = self.pool['mrp.bom']
> +        pack_data = {
> +            'id_link': data['id_link'],
> +            'telf': data['telf'],
> +        }
> +        link = stock_prod_lot_obj.browse(cr, uid, [int(pack_data['id_link'])],
> +                                         context=context)
>          if not len(link):
> -            return (-1,'No existe el enlace indicado')
> +            return (-1, 'No existe el enlace indicado')
>          link = link[0]
> -        sim = stock_prod_lot_obj.browse(cr,uid,stock_prod_lot_obj.search(cr,uid,[('ref','=',pack_data['telf'])]))
> +        sim = stock_prod_lot_obj.browse(
> +            cr, uid, stock_prod_lot_obj.search(
> +                cr, uid, [('ref', '=', pack_data['telf'])], context=context),
> +            context=context)
>          if not len(sim):
> -            return (-1,'No existe la sim indicada')
> +            return (-1, 'No existe la sim indicada')
>          sim = sim[0]
>          #Comprobamos si el pack existe y tiene stock
> -        pack_ids = stock_prod_lot_obj.search(cr,uid,[('name', '=', link.name), ('ref', '=', sim.ref), ('stock_available','>=','1')])
> +        pack_ids = stock_prod_lot_obj.search(
> +            cr, uid, [('name', '=', link.name),
> +                      ('ref', '=', sim.ref),
> +                      ('stock_available', '>=', '1')],
> +            context=context)
>          if len(pack_ids):
> -            return (pack_ids[0],None)
> -        #Comprobamos el Stock de ambos productos 
> +            return (pack_ids[0], None)
> +        #Comprobamos el Stock de ambos productos
>          link_product_id = link.product_id.id
>          sim_product_id = sim.product_id.id
>          if not (link.stock_available and sim.stock_available):
>              return (-1, 'Sin stock')
> -        bom_ids = bom_obj.search(cr,uid,[('bom_lines.product_id.id','=',link_product_id),('bom_lines.product_id.id','=',sim_product_id),('active','=','1')])
> +        bom_ids = bom_obj.search(
> +            cr, uid, [('bom_lines.product_id.id', '=', link_product_id),
> +                      ('bom_lines.product_id.id', '=', sim_product_id),
> +                      ('active', '=', '1')],
> +            context=context)
>          if not len(bom_ids):
>              return (-1, 'No existe el pack con ese BOM')
> -        bom_pack = bom_obj.browse(cr,uid,bom_ids)[0]
> +        bom_pack = bom_obj.browse(cr, uid, bom_ids, context=context)[0]
>          pack_id = bom_pack.product_id.id
> -        pack =  {'product_id': pack_id,
> -                #Datos de la sim
> -                'icc': sim.icc,
> -                'ref': sim.telefono,
> -                'telefono': sim.telefono,
> -                'pin': sim.pin,
> -                'puk': sim.puk,
> -                'fecha_alta': sim.fecha_alta,
> -                'fecha_activacion': sim.fecha_activacion,
> -                #Datos del track
> -                'imei': link.imei,
> -                'name': link.imei,
> -                'n_serie': link.n_serie,
> -                'propietario': link.propietario,
> -                'descripcion': link.descripcion,
> -                'albaran_entrada': link.albaran_entrada,
> -                }
> -               
> -        id_lotpack = stock_prod_lot_obj.create(cr, uid,pack)
> -        pack = stock_prod_lot_obj.browse(cr,uid,[id_lotpack])[0]
> +        pack = {
> +            'product_id': pack_id,
> +            #Datos de la sim
> +            'icc': sim.icc,
> +            'ref': sim.telefono,
> +            'telefono': sim.telefono,
> +            'pin': sim.pin,
> +            'puk': sim.puk,
> +            'fecha_alta': sim.fecha_alta,
> +            'fecha_activacion': sim.fecha_activacion,
> +            #Datos del track
> +            'imei': link.imei,
> +            'name': link.imei,
> +            'n_serie': link.n_serie,
> +            'propietario': link.propietario,
> +            'descripcion': link.descripcion,
> +            'albaran_entrada': link.albaran_entrada,
> +        }
> +
> +        id_lotpack = stock_prod_lot_obj.create(cr, uid, pack, context=context)
> +        pack = stock_prod_lot_obj.browse(cr, uid, [id_lotpack],
> +                                         context=context)[0]
>          #Realizamos los movimientos
>          stock_warehouse = None
> -        stock_warehouse_ids = stock_warehouse_obj.search(cr, uid, [])
> -        for warehouse in stock_warehouse_obj.browse(cr, uid, stock_warehouse_ids, company):
> +        stock_warehouse_ids = stock_warehouse_obj.search(cr, uid, [],
> +                                                         context=context)
> +        for warehouse in stock_warehouse_obj.browse(cr, uid,

La verdad es que esto es código espaguetti total. Efectivamente, busca todos los ids para luego coger uno. WTF?!! Pero en este módulo hay tantas cosas hardcodeadas. Tal vez sería mejor obtener el almacén desde la compañía. Mira a ver si vale, y si no, lo dejamos con el índice 0 y marchando.

> +                                                    stock_warehouse_ids,
> +                                                    company,
> +                                                    context=context):
>              stock_warehouse = warehouse
> -            break            
> +            break
>  
>          if stock_warehouse:
>              vals_sim = {
>                  'product_id': link.product_id.id,
> -                'name': '[' + link.product_id.default_code + '] ' + link.product_id.name,
> +                'name': ('[' + link.product_id.default_code +
> +                         '] ' + link.product_id.name),
>                  'prodlot_id': link.id,
>                  'product_qty': 1,
>                  'product_uos_qty': 1,
> @@ -136,7 +160,8 @@
>              }
>              vals_track = {
>                  'product_id': sim.product_id.id,
> -                'name': '[' + sim.product_id.default_code + '] ' + sim.product_id.name,
> +                'name': ('[' + sim.product_id.default_code +
> +                         '] ' + sim.product_id.name),
>                  'prodlot_id': sim.id,
>                  'product_qty': 1,
>                  'product_uos_qty': 1,
> @@ -151,7 +176,8 @@
>              }
>              vals_pack = {
>                  'product_id': pack.product_id.id,
> -                'name': '[' + pack.product_id.default_code + '] ' + pack.product_id.name,
> +                'name': ('[' + pack.product_id.default_code +
> +                         '] ' + pack.product_id.name),
>                  'prodlot_id': pack.id,
>                  'product_qty': 1,
>                  'product_uos_qty': 1,
> @@ -164,10 +190,8 @@
>                  'priority': '1',
>                  'state': 'done',
>              }
> -            stock_move_int_id = stock_move_obj.create(cr, uid, vals_sim)
> -            stock_move_int_id = stock_move_obj.create(cr, uid, vals_track)
> -            stock_move_int_id = stock_move_obj.create(cr, uid, vals_pack)
> -            return (id_lotpack,None)
> +            stock_move_obj.create(cr, uid, vals_sim, context=context)
> +            stock_move_obj.create(cr, uid, vals_track, context=context)
> +            stock_move_obj.create(cr, uid, vals_pack, context=context)
> +            return (id_lotpack, None)
>          return (-1, 'No existen almacenes.')
> -
> -stock_production_lot()             
> 
> === renamed file 'phonelift_sales_extension/user.py' => 'phonelift_sales_extension/models/user.py'
> --- phonelift_sales_extension/user.py	2014-06-11 10:23:47 +0000
> +++ phonelift_sales_extension/models/user.py	2014-06-30 13:16:06 +0000
> @@ -19,42 +19,46 @@
>  #
>  ##############################################################################
>  
> -from osv import osv
> -
> -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
> -class user(osv.osv):
> -        _inherit = 'res.users'
> -
> -        def create_user(self, cr, uid, data):
> -                user_d = {'name':data['nombre'],
> -                        'login':data['colegiado'],
> -                        'active':True,
> -			'user_email':data['email'],
> -			'signature':data['sociedad']
> -                        }
> -                address = {
> -			'street':data['direccion'],
> -			'zip':data['cp'],
> -			'city':data['poblacion'],
> -			'state_id':self.pool.get('res.country.state').search_by_name(cr,uid,data['provincia']),
> -			'phone':data['telefono']}
> -			
> -                users_obj = self.pool.get('res.users')
> -                address_obj = self.pool.get('res.partner.address')
> -                users_ids = users_obj.search(cr, uid, [('login', '=', data.get('colegiado'))])
> -                if not users_ids:
> -                    address_id = address_obj.create(cr,uid,address)
> -                    print address_id
> -                    user_d['address_id'] = address_id
> -                    user_id = users_obj.create(cr, uid, user_d)
> -                    #user = users_obj.browse
> -                #return "lalalal" 
> -
> -        def deactivate_user(self,cr,uid,data):
> -                users_obj = self.pool.get('res.users')
> -                users_ids = users_obj.search(cr, uid, [('login', '=', data.get('colegiado'))])
> -                if users_ids:
> -                   users_obj.write(cr,uid,users_ids,{'active':False}) 
> -               
> -
> -user()             
> +from osv import orm
> +
> +
> +class ResUsers(orm.Model):
> +    _inherit = 'res.users'
> +
> +    def create_user(self, cr, uid, data, context=None):
> +        user_d = {
> +            'name': data['nombre'],
> +            'login': data['colegiado'],
> +            'active': True,
> +            'user_email': data['email'],
> +            'signature': data['sociedad']
> +        }
> +        partner = {
> +            'name': data['nombre'],
> +            'street': data['direccion'],
> +            'zip': data['cp'],
> +            'city': data['poblacion'],
> +            'state_id': self.pool['res.country.state'].search_by_name(
> +                cr, uid, data['provincia']),
> +            'phone': data['telefono']
> +        }
> +
> +        users_obj = self.pool['res.users']
> +        partner_obj = self.pool['res.partner']
> +        users_ids = users_obj.search(cr, uid,
> +                                     [('login', '=', data['colegiado'])],
> +                                     context=context)
> +        if not users_ids:
> +            partner_id = partner_obj.create(cr, uid, partner, context=context)
> +
> +            user_d['partner_id'] = partner_id
> +            users_obj.create(cr, uid, user_d)
> +
> +    def deactivate_user(self, cr, uid, data, context=None):
> +        users_obj = self.pool['res.users']
> +        users_ids = users_obj.search(cr, uid,
> +                                     [('login', '=', data['colegiado'])],
> +                                     context=context)
> +        if users_ids:
> +            users_obj.write(cr, uid, users_ids, {'active': False},
> +                            context=context)
> 


-- 
https://code.launchpad.net/~oihanecruce/avanzosc/phonelift_sales_extension/+merge/223355
Your team Avanzosc_security is subscribed to branch lp:~avanzosc-security-team/avanzosc/72horas.