avanzosc team mailing list archive
-
avanzosc team
-
Mailing list archive
-
Message #00487
[Merge] lp:~dani-ds/avanzosc/dos_sale_group into lp:~avanzosc-security-team/avanzosc/72horas
Daniel Campos (Avanzosc) has proposed merging lp:~dani-ds/avanzosc/dos_sale_group into lp:~avanzosc-security-team/avanzosc/72horas.
Requested reviews:
Avanzosc_security (avanzosc-security-team)
For more details, see:
https://code.launchpad.net/~dani-ds/avanzosc/dos_sale_group/+merge/223900
--
https://code.launchpad.net/~dani-ds/avanzosc/dos_sale_group/+merge/223900
Your team Avanzosc_security is requested to review the proposed merge of lp:~dani-ds/avanzosc/dos_sale_group into lp:~avanzosc-security-team/avanzosc/72horas.
=== modified file 'dos_sale_group/__init__.py'
--- dos_sale_group/__init__.py 2014-06-11 10:23:47 +0000
+++ dos_sale_group/__init__.py 2014-06-20 11:40:50 +0000
@@ -19,7 +19,7 @@
#
##############################################################################
-import sale_group
-import sale_order_line
+from . import models
+from . import wizard
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
=== modified file 'dos_sale_group/__openerp__.py'
--- dos_sale_group/__openerp__.py 2014-06-11 10:23:47 +0000
+++ dos_sale_group/__openerp__.py 2014-06-20 11:40:50 +0000
@@ -21,21 +21,18 @@
{
- "name" : "DOS Sale Group",
- "version" : "1.0",
- "author" : "DOS",
- "category" : "Production, Sale",
- "website" : "www.dos-sl.es",
- "description": "This module allows you to create groups which include product sales.",
- "depends" : ["sale", "sale_layout", "product"],
- "init_xml" : [],
- "update_xml" : [
- 'security/ir.model.access.csv',
- 'sale_group_view.xml',
- 'sale_order_line_view.xml',
- ],
+ "name": "DOS Sale Group",
+ "version": "1.0",
+ "author": "DOS",
+ "category": "Production, Sale",
+ "website": "www.dos-sl.es",
+ "description": "This module allows you to create groups which include "
+ "product sales.",
+ "depends": ["sale", "sale_layout", "product"],
+ "data": ['security/ir.model.access.csv',
+ 'views/sale_group_view.xml',
+ 'views/sale_order_line_view.xml',
+ ],
"active": False,
"installable": True
}
-
-
=== added directory 'dos_sale_group/models'
=== renamed file 'dos_sale_group/sale_group.py' => 'dos_sale_group/models/sale_group.py'
--- dos_sale_group/sale_group.py 2014-06-11 10:23:47 +0000
+++ dos_sale_group/models/sale_group.py 2014-06-20 11:40:50 +0000
@@ -19,114 +19,118 @@
#
##############################################################################
-from osv import osv
-from osv import fields
-from tools.translate import _
-import time
-
-class sale_group(osv.osv):
-
- _name = 'sale.group'
- _description = "Sale Group"
-
- _columns = {
- 'name': fields.char('Group Name', size=250, required=True),
- 'type' : fields.selection([('sim', 'SIM'), ('enlace', 'Enlace'), ('pack', 'Pack')], 'Type', required=True),
- 'partner_sales': fields.boolean('Partner Sales', help="If checked the calculations of sales are made on the active client."),
- 'sale_group_line_ids': fields.one2many('sale.group.line', 'sale_group_id', 'Sale Group Lines'),
- }
-
- def create(self, cr, uid, vals, context=None):
-
- sale_group_id = super(sale_group, self).create(cr, uid, vals, context=context)
-
- if sale_group_id:
- sale_group_obj = self.browse(cr, uid, sale_group_id, context)
- total = 0
- if sale_group_obj.sale_group_line_ids:
- """ Comprobamos que el porcentage total de las líneas sea 100 """
- for sale_group_line_obj in sale_group_obj.sale_group_line_ids:
- total += sale_group_line_obj.percentage
- """
- if total != 100:
- raise osv.except_osv(_('Error'),
- _('It is necessary that the sum total of the percentages of sales of products is exactly 100.'))
- """
-
- return sale_group_id
-
- def write(self, cr, uid, ids, vals, context=None):
-
- result = super(sale_group, self).write(cr, uid, ids, vals, context = context)
-
- for ident in ids:
-
- sale_group_obj = self.browse(cr, uid, ident, context)
- total = 0
-
- if sale_group_obj.sale_group_line_ids:
- """ Comprobamos que el porcentage total de las líneas sea 100 """
- for sale_group_line_obj in sale_group_obj.sale_group_line_ids:
- total += sale_group_line_obj.percentage
-
- """
- if total != 100:
- raise osv.except_osv(_('Error'),
- _('It is necessary that the sum total of the percentages of sales of products is exactly 100.'))
-
- """
- return result
-
-sale_group()
-
-class sale_group_line(osv.osv):
-
- _name = 'sale.group.line'
- _description = "Sale Group Line"
-
- _columns = {
- 'sale_group_id': fields.many2one('sale.group', 'Sale Group', ondelete='cascade'),
- 'product_id': fields.many2one('product.product', 'Product', required=True, ondelete='cascade'),
- 'percentage': fields.integer('Percentage', required=True),
- }
-
- _order = 'percentage desc'
-
- def create(self, cr, uid, vals, context=None):
-
- sale_group_line_id = super(sale_group_line, self).create(cr, uid, vals, context=context)
-
- if sale_group_line_id:
- sale_group_line_obj = self.browse(cr, uid, sale_group_line_id, context)
-
- if sale_group_line_obj.percentage:
- if sale_group_line_obj.percentage <= 0 or sale_group_line_obj.percentage > 100:
- """ Comprobamos que el porcentage de la lineas esté entre 0 y 100 """
- raise osv.except_osv(_('Error'),
- _('It is necessary the sales percentage of lines is between 0 and 100.'))
- else:
- raise osv.except_osv(_('Error'),
- _('The percentage of sales can not be 0.'))
-
- return sale_group_line_id
-
- def write(self, cr, uid, ids, vals, context=None):
-
- result = super(sale_group_line, self).write(cr, uid, ids, vals, context = context)
-
- for ident in ids:
-
- sale_group_line_obj = self.browse(cr, uid, ident, context)
-
- if sale_group_line_obj.percentage:
- if sale_group_line_obj.percentage <= 0 or sale_group_line_obj.percentage > 100:
- """ Comprobamos que el porcentage de la lineas esté entre 0 y 100 """
- raise osv.except_osv(_('Error'),
- _('It is necessary the sales percentage of lines is between 0 and 100.'))
- else:
- raise osv.except_osv(_('Error'),
- _('The percentage of sales can not be 0.'))
-
- return result
-
-sale_group_line()
\ No newline at end of file
+from openerp.orm import fields, orm
+from openerp.tools.translate import _
+
+
+class SaleGroup(orm.Model):
+
+ _name = 'sale.group'
+ _description = "Sale Group"
+
+ _columns = {
+ 'name': fields.char('Group Name', size=250, required=True),
+ 'type': fields.selection([('sim', 'SIM'), ('enlace', 'Enlace'),
+ ('pack', 'Pack')], 'Type', required=True),
+ 'partner_sales': fields.boolean('Partner Sales',
+ help="If checked the calculations of "
+ "sales are made on the active"
+ " client."),
+ 'sale_group_line_ids': fields.one2many('sale.group.line',
+ 'sale_group_id',
+ 'Sale Group Lines'),
+ }
+
+ def create(self, cr, uid, vals, context=None):
+ sale_group_id = super(SaleGroup, self).create(cr, uid, vals,
+ context=context)
+ if sale_group_id:
+ sale_group_obj = self.browse(cr, uid, sale_group_id, context)
+ total = 0
+ if sale_group_obj.sale_group_line_ids:
+ """ Comprobamos que el porcentage total de las líneas"
+ " sea 100 """
+ for sale_group_line_obj in sale_group_obj.sale_group_line_ids:
+ total += sale_group_line_obj.percentage
+ """ if total != 100:
+ raise osv.except_osv(_('Error'),
+ _('It is necessary that the sum total of the percentages
+ of sales of products is exactly 100.'))
+ """
+ return sale_group_id
+
+ def write(self, cr, uid, ids, vals, context=None):
+ result = super(SaleGroup, self).write(cr, uid, ids, vals,
+ context=context)
+ for ident in ids:
+ sale_group_obj = self.browse(cr, uid, ident, context)
+ total = 0
+ if sale_group_obj.sale_group_line_ids:
+ """ Comprobamos que el porcentage total de las líneas
+ sea 100 """
+ for sale_group_line_obj in sale_group_obj.sale_group_line_ids:
+ total += sale_group_line_obj.percentage
+ """
+ if total != 100:
+ raise osv.except_osv(_('Error'),
+ _('It is necessary that the sum total of the percentages of
+ sales of products is exactly 100.'))
+ """
+ return result
+
+
+class SaleGroupLine(orm.Model):
+
+ _name = 'sale.group.line'
+ _description = "Sale Group Line"
+
+ _columns = {
+ 'sale_group_id': fields.many2one('sale.group', 'Sale Group',
+ ondelete='cascade'),
+ 'product_id': fields.many2one('product.product', 'Product',
+ required=True, ondelete='cascade'),
+ 'percentage': fields.integer('Percentage', required=True),
+ }
+
+ _order = 'percentage desc'
+
+ def create(self, cr, uid, vals, context=None):
+ sale_group_line_id = super(SaleGroupLine, self).create(cr, uid, vals,
+ context=context)
+ if sale_group_line_id:
+ sale_group_line_obj = self.browse(cr, uid, sale_group_line_id,
+ context)
+ if sale_group_line_obj.percentage:
+ if (sale_group_line_obj.percentage <= 0 or
+ sale_group_line_obj.percentage > 100):
+ """ Comprobamos que el porcentage de la lineas esté entre
+ 0 y 100 """
+ raise orm.except_orm(_('Error'),
+ _('It is necessary the sales '
+ 'percentage of lines is between 0'
+ ' and 100.'))
+ else:
+ raise orm.except_orm(_('Error'),
+ _('The percentage of sales can not'
+ ' be 0.'))
+ return sale_group_line_id
+
+ def write(self, cr, uid, ids, vals, context=None):
+ result = super(SaleGroupLine, self).write(cr, uid, ids, vals,
+ context=context)
+ for ident in ids:
+ sale_group_line_obj = self.browse(cr, uid, ident, context)
+ if sale_group_line_obj.percentage:
+ if (sale_group_line_obj.percentage <= 0 or
+ sale_group_line_obj.percentage > 100):
+ """ Comprobamos que el porcentage de la lineas esté
+ entre 0 y 100 """
+ raise orm.except_orm(_('Error'),
+ _('It is necessary the sales '
+ 'percentage of lines is between 0 '
+ 'and 100.'))
+ else:
+ raise orm.except_orm(_('Error'),
+ _('The percentage of sales can not '
+ 'be 0.'))
+ return result
=== renamed file 'dos_sale_group/sale_order_line.py' => 'dos_sale_group/models/sale_order_line.py'
--- dos_sale_group/sale_order_line.py 2014-06-11 10:23:47 +0000
+++ dos_sale_group/models/sale_order_line.py 2014-06-20 11:40:50 +0000
@@ -19,196 +19,224 @@
#
##############################################################################
-from osv import osv
-from osv import fields
-from tools.translate import _
-import time
+from openerp.orm import orm, fields
+from openerp.tools.translate import _
from datetime import datetime
-from dateutil.relativedelta import relativedelta
-
-class sale_order_line(osv.osv):
-
- _name = 'sale.order.line'
+
+
+class SaleOrderLine(orm.Model):
_inherit = 'sale.order.line'
-
+
_columns = {
- 'sale_group_type': fields.selection([('sim', 'SIM'), ('enlace', 'Enlace'), ('pack', 'Pack')], 'Sale Type', change_default=True, help="When you select a type of sales will recommend the necessary product sales according to the group defined in the customer contract."),
- 'sale_group_id': fields.many2one('sale.group', 'Sale Group', change_default=True, help="When you select a sales group will recommend the product necessary to fulfill the rules of sale."),
+ 'sale_group_type': fields.selection(
+ [('sim', 'SIM'), ('enlace', 'Enlace'), ('pack', 'Pack')],
+ 'Sale Type', change_default=True, help="When you select a type of "
+ "sales will recommend the necessary product sales according to the"
+ " group defined in the customer contract."),
+ 'sale_group_id': fields.many2one('sale.group', 'Sale Group',
+ change_default=True,
+ help="When you select a sales group "
+ "will recommend the product necessary"
+ "to fulfill the rules of sale."),
}
-
- def get_suggested_sale_product(self, cr, uid, sale_group_id, partner_id, date_order, product_ids=[]):
-
+
+ def get_suggested_sale_product(self, cr, uid, sale_group_id,
+ partner_id, date_order, product_ids=[],
+ context=None):
product_id = None
-
if sale_group_id:
sale_group_obj = self.pool.get('sale.group')
- sale_group = sale_group_obj.browse(cr, uid, sale_group_id, context=None)
-
+ sale_group = sale_group_obj.browse(cr, uid, sale_group_id,
+ context=None)
date_order_obj = datetime.strptime(date_order, "%Y-%m-%d")
date_start = date_order_obj.strftime('%Y-%m-01')
date_end = date_order_obj.strftime('%Y-%m-%d')
-
sql = " SELECT COALESCE(SUM(sl.product_uom_qty), 0) AS total "
- sql += " FROM sale_order_line sl "
- sql += " INNER JOIN sale_order s ON sl.order_id=s.id "
- sql += " INNER JOIN sale_group_line gl ON sl.product_id=gl.product_id "
- sql += " INNER JOIN sale_group g ON gl.sale_group_id=g.id "
- sql += " WHERE g.id=" + str(sale_group_id) + " AND s.date_order >= '" + date_start + "' AND s.date_order <= '" + date_end + "' "
- sql += " UNION "
- sql += " SELECT COALESCE(SUM(sl.product_uom_qty), 0) AS total "
- sql += " FROM (SELECT DISTINCT order_id, pack_product_id, pack_prodlot_id, product_uom_qty "
- sql += " FROM sale_order_line "
- sql += " WHERE NOT pack_product_id IS NULL) sl"
- sql += " INNER JOIN sale_order s ON sl.order_id=s.id "
- sql += " INNER JOIN sale_group_line gl ON sl.pack_product_id=gl.product_id "
- sql += " INNER JOIN sale_group g ON gl.sale_group_id=g.id "
- sql += " WHERE g.id=" + str(sale_group_id) + " AND s.date_order >= '" + date_start + "' AND s.date_order <= '" + date_end + "' "
- sql += " UNION"
- sql += " SELECT COALESCE(SUM(sl.product_uom_qty), 0) AS total "
- sql += " FROM (SELECT DISTINCT l.order_id, b.product_id, l.prodlot_id, l.product_uom_qty "
- sql += " FROM sale_order_line l "
- sql += " INNER JOIN product_product p ON l.product_id=p.id "
- sql += " INNER JOIN product_template t ON p.product_tmpl_id=t.id AND t.supply_method='produce' "
- sql += " INNER JOIN mrp_bom b ON b.bom_id IN (SELECT id FROM mrp_bom where product_id=p.id) "
- sql += " WHERE pack_product_id IS NULL) sl "
- sql += " INNER JOIN sale_order s ON sl.order_id=s.id "
- sql += " INNER JOIN sale_group_line gl ON sl.product_id=gl.product_id "
- sql += " INNER JOIN sale_group g ON gl.sale_group_id=g.id "
- sql += " WHERE g.id=" + str(sale_group_id) + " AND s.date_order >= '" + date_start + "' AND s.date_order <= '" + date_end + "' "
-
-
+ " FROM sale_order_line sl "
+ " INNER JOIN sale_order s ON sl.order_id=s.id "
+ " INNER JOIN sale_group_line gl ON sl.product_id=gl.product_id "
+ " INNER JOIN sale_group g ON gl.sale_group_id=g.id "
+ " WHERE g.id=" + str(sale_group_id) + " AND s.date_order >= '"
+ + date_start + "' AND s.date_order <= '" + date_end + "' "
+ " UNION "
+ " SELECT COALESCE(SUM(sl.product_uom_qty), 0) AS total "
+ " FROM (SELECT DISTINCT order_id, pack_product_id, "
+ "pack_prodlot_id, product_uom_qty "
+ " FROM sale_order_line "
+ " WHERE NOT pack_product_id IS NULL) sl"
+ " INNER JOIN sale_order s ON sl.order_id=s.id "
+ " INNER JOIN sale_group_line gl ON "
+ "sl.pack_product_id=gl.product_id "
+ " INNER JOIN sale_group g ON gl.sale_group_id=g.id "
+ " WHERE g.id=" + str(sale_group_id) + " AND s.date_order >= '"
+ + date_start + "' AND s.date_order <= '" + date_end + "' "
+ " UNION"
+ " SELECT COALESCE(SUM(sl.product_uom_qty), 0) AS total "
+ " FROM (SELECT DISTINCT l.order_id, b.product_id, l.prodlot_id,"
+ " l.product_uom_qty "
+ " FROM sale_order_line l "
+ " INNER JOIN product_product p ON l.product_id=p.id "
+ " INNER JOIN product_template t ON p.product_tmpl_id=t.id"
+ " AND t.supply_method='produce' "
+ " INNER JOIN mrp_bom b ON b.bom_id IN (SELECT id FROM"
+ " mrp_bom where product_id=p.id) "
+ " WHERE pack_product_id IS NULL) sl "
+ " INNER JOIN sale_order s ON sl.order_id=s.id "
+ " INNER JOIN sale_group_line gl ON sl.product_id=gl.product_id "
+ " INNER JOIN sale_group g ON gl.sale_group_id=g.id "
+ " WHERE g.id=" + str(sale_group_id) + " AND s.date_order >= '"
+ + date_start + "' AND s.date_order <= '" + date_end + "' "
""" Contamos total de productos vendidos del grupo de ventas """
-
sql_total = "SELECT SUM(total) FROM ( "
sql_total += sql
-
if sale_group.partner_sales and partner_id:
- sql_total += "AND s.partner_id= " + str(partner_id)
-
+ sql_total += "AND s.partner_id= " + str(partner_id)
sql_total += ") t "
-
cr.execute(sql_total)
-
t = cr.fetchall()
total = t[0][0] or 0
-
- """ Calculamos porcentajes actuales de los productos del grupo de ventas """
+ """ Calculamos porcentajes actuales de los productos del grupo de
+ ventas """
products = []
for line in sale_group.sale_group_line_ids:
product = {}
-
sql_total = "SELECT SUM(total) FROM ( "
sql_total += sql
- sql_total += "AND gl.product_id=" + str(line.product_id.id) + " "
-
+ sql_total += "AND gl.product_id=" + str(line.product_id.id)
+ + " "
if sale_group.partner_sales and partner_id:
- sql_total += "AND s.partner_id= " + str(partner_id)
-
+ sql_total += "AND s.partner_id= " + str(partner_id)
sql_total += ") t "
-
cr.execute(sql_total)
-
t = cr.fetchall()
total_product = t[0][0] or 0
-
product['id'] = line.product_id.id
product['percentage'] = line.percentage
if total > 0:
- product['actual_percentage'] = (total_product / total) * 100
+ product['actual_percentage'] = total_product / total * 100
else:
product['actual_percentage'] = 0
-
products.append(product)
-
""" Filtramos por productos """
if product_ids:
products = filter(lambda x: x['id'] in product_ids, products)
-
- """ Devolvemos el primer producto que no cumpla su porcentage estimado """
+ """ Devolvemos el primer producto que no cumpla su porcentage
+ estimado """
if products and len(products) > 0:
-
- """ Guardamos primer producto con mayor porcentage del grupo de ventas """
+ """ Guardamos primer producto con mayor porcentage del
+ grupo de ventas """
product_id = products[0]['id']
-
""" Recorremos productos """
for p in products:
if p['actual_percentage'] < p['percentage']:
- product_id = p['id']
+ product_id = p['id']
return product_id
-
return product_id
-
- def sale_group_type_change(self, cr, uid, ids, sale_group_type, pricelist, product, contract_id=False, prodlot_id=False, num_cabins=0, qty=0,
- uom=False, qty_uos=0, uos=False, name='', partner_id=False,
- lang=False, update_tax=True, date_order=False, packaging=False, fiscal_position=False, flag=False):
-
+
+ def sale_group_type_change(self, cr, uid, ids, sale_group_type,
+ pricelist, product, contract_id=False,
+ prodlot_id=False, num_cabins=0, qty=0,
+ uom=False, qty_uos=0, uos=False, name='',
+ partner_id=False, lang=False, update_tax=True,
+ date_order=False, packaging=False,
+ fiscal_position=False, flag=False,
+ context=None):
result = {}
domain = {}
warning = {}
-
if sale_group_type:
if contract_id:
- contract_obj = self.pool.get('contract.contract')
- contract = contract_obj.browse(cr, uid, contract_id, context=None)
+ contract_obj = self.pool['contract.contract']
+ contract = contract_obj.browse(cr, uid, contract_id,
+ context=None)
sale_group_id = None
-
if sale_group_type == 'sim':
- sale_group_id = contract.sale_group_sim_id and contract.sale_group_sim_id.id or None
+ sale_group_id = (contract.sale_group_sim_id and
+ contract.sale_group_sim_id.id or None)
elif sale_group_type == 'enlace':
- sale_group_id = contract.sale_group_link_id and contract.sale_group_link_id.id or None
+ sale_group_id = (contract.sale_group_link_id and
+ contract.sale_group_link_id.id or None)
elif sale_group_type == 'pack':
- sale_group_id = contract.sale_group_pack_id and contract.sale_group_pack_id.id or None
-
+ sale_group_id = (contract.sale_group_pack_id and
+ contract.sale_group_pack_id.id or None)
if sale_group_id:
- product_id = self.get_suggested_sale_product(cr, uid, sale_group_id, partner_id, date_order)
-
- """ Llamamos a la funcion on_change por defecto de product_id """
- product_id_change = super(sale_order_line, self).product_id_change(cr, uid, ids, pricelist, product_id, qty, uom, qty_uos, uos, name, partner_id, lang, update_tax, date_order, packaging, fiscal_position, flag)
-
- if product_id_change != None:
- if product_id_change.has_key('value'):
- result = product_id_change['value']
- if product_id_change.has_key('domain'):
- domain = product_id_change['domain']
- if product_id_change.has_key('warning'):
- warning = product_id_change['warning']
-
+ product_id = self.get_suggested_sale_product(cr, uid,
+ sale_group_id,
+ partner_id,
+ date_order,
+ context)
+ """ Llamamos a la funcion on_change por defecto de
+ product_id """
+ super_sol = super(SaleOrderLine, self)
+ pro_id_chng = super_sol.product_id_change(cr, uid, ids,
+ pricelist,
+ product_id, qty,
+ uom, qty_uos,
+ uos, name,
+ partner_id,
+ lang, update_tax,
+ date_order,
+ packaging,
+ fiscal_position,
+ flag, context)
+ if pro_id_chng is not None:
+ if 'value' in pro_id_chng:
+ result = pro_id_chng['value']
+ if 'domain' in pro_id_chng:
+ domain = pro_id_chng['domain']
+ if 'warning' in pro_id_chng:
+ warning = pro_id_chng['warning']
result['sale_group_id'] = sale_group_id
result['product_id'] = product_id
-
- else:
- raise osv.except_osv(_('No Sales Group Defined !'), _('You have to select a sales group in the partner contract form !\nPlease set one sales group before choosing a sales type.'))
+ else:
+ raise orm.except_orm(_('No Sales Group Defined !'),
+ _('You have to select a sales group '
+ 'in the partner contract form '
+ '!\nPlease set one sales group '
+ 'before choosing a sales type.'))
else:
- raise osv.except_osv(_('No Contract Defined !'), _('You have to select a contract in the sales form !\nPlease set one contract before choosing a sales type.'))
-
+ raise orm.except_orm(_('No Contract Defined !'),
+ _('You have to select a contract in the '
+ 'sales form !\nPlease set one contract '
+ 'before choosing a sales type.'))
return {'value': result, 'domain': domain, 'warning': warning}
-
- def sale_group_id_change(self, cr, uid, ids, sale_group_id, pricelist, product, contract_id=False, prodlot_id=False, num_cabins=0, qty=0,
- uom=False, qty_uos=0, uos=False, name='', partner_id=False,
- lang=False, update_tax=True, date_order=False, packaging=False, fiscal_position=False, flag=False):
-
+
+ def sale_group_id_change(self, cr, uid, ids, sale_group_id, pricelist,
+ product, contract_id=False, prodlot_id=False,
+ num_cabins=0, qty=0, uom=False, qty_uos=0,
+ uos=False, name='', partner_id=False, lang=False,
+ update_tax=True, date_order=False,
+ packaging=False, fiscal_position=False,
+ flag=False, context=None):
result = {}
domain = {}
warning = {}
-
if sale_group_id:
-
- product_id = self.get_suggested_sale_product(cr, uid, sale_group_id, partner_id, date_order)
-
+ product_id = self.get_suggested_sale_product(cr, uid,
+ sale_group_id,
+ partner_id,
+ date_order)
""" Llamamos a la funcion on_change por defecto de product_id """
- product_id_change = super(sale_order_line, self).product_id_change(cr, uid, ids, pricelist, product_id, qty, uom, qty_uos, uos, name, partner_id, lang, update_tax, date_order, packaging, fiscal_position, flag)
-
- if product_id_change != None:
- if product_id_change.has_key('value'):
+ product_id_change = super(SaleOrderLine,
+ self).product_id_change(cr, uid, ids,
+ pricelist,
+ product_id, qty,
+ uom, qty_uos,
+ uos, name,
+ partner_id,
+ lang, update_tax,
+ date_order,
+ packaging,
+ fiscal_position,
+ flag,
+ context)
+ if product_id_change is not None:
+ if 'value' in product_id_change:
result = product_id_change['value']
- if product_id_change.has_key('domain'):
+ if 'domain' in product_id_change:
domain = product_id_change['domain']
- if product_id_change.has_key('warning'):
+ if 'warning' in product_id_change:
warning = product_id_change['warning']
-
result['sale_group_type'] = None
result['product_id'] = product_id
-
return {'value': result, 'domain': domain, 'warning': warning}
-
-sale_order_line()
=== added directory 'dos_sale_group/views'
=== renamed file 'dos_sale_group/sale_group_view.xml' => 'dos_sale_group/views/sale_group_view.xml'
--- dos_sale_group/sale_group_view.xml 2014-06-11 10:23:47 +0000
+++ dos_sale_group/views/sale_group_view.xml 2014-06-20 11:40:50 +0000
@@ -5,7 +5,6 @@
<record model="ir.ui.view" id="sale_group_search_view">
<field name="name">sale.group.search.view</field>
<field name="model">sale.group</field>
- <field name="type">search</field>
<field name="arch" type="xml">
<search string="Sale Group">
<field name="type" string="Type"/>
@@ -15,11 +14,10 @@
</field>
</record>
- <!--Sale Group Tree View -->
- <record model="ir.ui.view" id="sale_group_tree_view">
+ <!--Sale Group Tree View -->
+ <record model="ir.ui.view" id="sale_group_tree_view">
<field name="name">sale.group.tree.view</field>
<field name="model">sale.group</field>
- <field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Sale Group">
<field name="type"/>
@@ -33,7 +31,6 @@
<record model="ir.ui.view" id="sale_group_form_view">
<field name="name">sale.group.form.view</field>
<field name="model">sale.group</field>
- <field name="type">form</field>
<field name="arch" type="xml">
<form string="Sale Group">
<group colspan="4" col="4">
=== renamed file 'dos_sale_group/sale_order_line_view.xml' => 'dos_sale_group/views/sale_order_line_view.xml'
Follow ups