avanzosc team mailing list archive
-
avanzosc team
-
Mailing list archive
-
Message #00500
[Merge] lp:~mikelarregi/avanzosc/dos_delivery into lp:~avanzosc-security-team/avanzosc/72horas
mikel arregi has proposed merging lp:~mikelarregi/avanzosc/dos_delivery into lp:~avanzosc-security-team/avanzosc/72horas.
Requested reviews:
Avanzosc_security (avanzosc-security-team)
For more details, see:
https://code.launchpad.net/~mikelarregi/avanzosc/dos_delivery/+merge/224157
dos_delivery
--
https://code.launchpad.net/~mikelarregi/avanzosc/dos_delivery/+merge/224157
Your team Avanzosc_security is requested to review the proposed merge of lp:~mikelarregi/avanzosc/dos_delivery into lp:~avanzosc-security-team/avanzosc/72horas.
=== modified file 'dos_delivery/__init__.py'
--- dos_delivery/__init__.py 2014-06-11 10:23:47 +0000
+++ dos_delivery/__init__.py 2014-06-23 15:30:31 +0000
@@ -19,6 +19,6 @@
#
##############################################################################
-import wizard
+from . import wizard
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
=== modified file 'dos_delivery/__openerp__.py'
--- dos_delivery/__openerp__.py 2014-06-11 10:23:47 +0000
+++ dos_delivery/__openerp__.py 2014-06-23 15:30:31 +0000
@@ -21,20 +21,16 @@
{
- "name" : "DOS Delivery",
- "version" : "1.0",
- "author" : "DOS",
- "category" : "Contract, Sale, Delivery",
- "website" : "www.dos-sl.es",
- "description": "This module allows to calculate contracts shipping costs.",
- "depends" : ["base", "sale", "delivery", "dos_contracts"],
- "init_xml" : [],
- "update_xml" : [
- 'wizard/make_contract_delivery.xml',
- 'delivery_view.xml',
- ],
- "active": False,
- "installable": True
+ "name": "DOS Delivery",
+ "version": "1.0",
+ "author": "DOS",
+ "category": "Contract, Sale, Delivery",
+ "website": "www.dos-sl.es",
+ "description": "This module allows to calculate contracts shipping costs.",
+ "depends": ["base", "sale", "delivery", "dos_contracts"],
+ "data": [
+ 'wizard/make_contract_delivery.xml',
+ 'views/delivery_view.xml',
+ ],
+ "installable": True
}
-
-
=== added directory 'dos_delivery/views'
=== renamed file 'dos_delivery/delivery_view.xml' => 'dos_delivery/views/delivery_view.xml'
=== modified file 'dos_delivery/wizard/__init__.py'
--- dos_delivery/wizard/__init__.py 2014-06-11 10:23:47 +0000
+++ dos_delivery/wizard/__init__.py 2014-06-23 15:30:31 +0000
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
#
@@ -15,11 +15,10 @@
# 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/>.
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
-import make_contract_delivery
+from . import make_contract_delivery
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
-
=== modified file 'dos_delivery/wizard/make_contract_delivery.py'
--- dos_delivery/wizard/make_contract_delivery.py 2014-06-11 10:23:47 +0000
+++ dos_delivery/wizard/make_contract_delivery.py 2014-06-23 15:30:31 +0000
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
#
@@ -15,184 +15,178 @@
# 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/>.
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
import time
-import ir
+from openerp.addons.base import ir
from tools.translate import _
-
-from osv import osv, fields
-
-class delivery_carrier(osv.osv):
-
- _inherit ="delivery.carrier"
+from openerp.osv import orm, fields
+
+
+class DeliveryCarrier(orm.Models):
+
+ _inherit = "delivery.carrier"
def name_get(self, cr, uid, ids, context=None):
if not len(ids):
return []
if context is None:
context = {}
- order_id = context.get('order_id',False)
+ order_id = context.get('order_id', False)
if not order_id:
- res = super(delivery_carrier, self).name_get(cr, uid, ids, context=context)
+ res = super(DeliveryCarrier, self).name_get(cr, uid, ids,
+ context=context)
else:
- order = self.pool.get('sale.order').browse(cr, uid, order_id, context=context)
+ order = self.pool['sale.order'].browse(cr, uid, order_id,
+ context=context)
currency = order.pricelist_id.currency_id.name or ''
-
- #Obtenemos precio de coste de los gastos de envío en función del número de unidades
+ # Obtenemos precio de coste de los gastos de envío en
+ # función del número de unidades
price = 0
-
if order.contract_id:
- #Obtenemos número de productos
- num_products = 0
- for line in order.order_line:
- num_products = num_products + line.product_uom_qty
- #Obtenemos precio de coste
- for ship_cost in order.contract_id.contract_shipping_cost_ids:
- if ship_cost.min_units <= num_products:
- price = ship_cost.price
-
- res = [(r['id'], r['name']+' ('+(str(price))+' '+currency+')') for r in self.read(cr, uid, ids, ['name'], context)]
- return res
-
-delivery_carrier()
-
-class make_contract_delivery(osv.osv_memory):
- _name = "make.contract.delivery"
- _description = 'Make Contract Delivery'
-
- _columns = {
- 'carrier_id': fields.many2one('delivery.carrier','Delivery Method', required=True),
- }
-
-
- def default_get(self, cr, uid, fields, context=None):
- """
- To get default values for the object.
-
- @param self: The object pointer.
- @param cr: A database cursor
- @param uid: ID of the user currently logged in
- @param fields: List of fields for which we want default values
- @param context: A standard dictionary
-
- @return: A dictionary which of fields with values.
-
- """
- res = super(make_contract_delivery, self).default_get(cr, uid, fields, context=context)
- order_obj = self.pool.get('sale.order')
- for order in order_obj.browse(cr, uid, context.get('active_ids', []), context=context):
- carrier = order.carrier_id.id
- if not carrier:
- carrier = order.partner_id.property_delivery_carrier.id
- res.update({'carrier_id': carrier})
-
- return res
-
- def view_init(self, cr , uid , fields, context=None):
- if context is None:
- context = {}
- order_obj = self.pool.get('sale.order')
- for order in order_obj.browse(cr, uid, context.get('active_ids', []), context=context):
- if not order.state in ('draft'):
- raise osv.except_osv(_('Order not in draft state !'), _('The order state have to be draft to add delivery lines.'))
- if not order.contract_id:
- raise osv.except_osv(_('No contract available !'), _('No matching contract for the customer order !'))
- pass
-
- def delivery_set(self, cr, uid, ids, context=None):
- """
- Adds delivery costs to Sale Order Line.
-
- @param self: The object pointer.
- @param cr: A database cursor
- @param uid: ID of the user currently logged in
- @param ids: List of IDs selected
- @param context: A standard dictionary
-
- @return:
-
- """
- if context is None:
- context = {}
- rec_ids = context and context.get('active_ids',[])
- order_obj = self.pool.get('sale.order')
- line_obj = self.pool.get('sale.order.line')
- carrier_obj = self.pool.get('delivery.carrier')
- acc_fp_obj = self.pool.get('account.fiscal.position')
- contract_obj = self.pool.get('contract.contract')
- order_objs = order_obj.browse(cr, uid, rec_ids, context=context)
-
- for datas in self.browse(cr, uid, ids, context=context):
- for order in order_objs:
- if not order.state in ('draft'):
- raise osv.except_osv(_('Order not in draft state !'), _('The order state have to be draft to add delivery lines.'))
-
- #Obtenemos número de productos
- num_products = 0
- for line in order.order_line:
- num_products = num_products + line.product_uom_qty
-
- #Obtenemos contrato del cliente del pedido
- #contract_ids = contract_obj.search(cr, uid, [('customer_id', '=', order.partner_id.id), ('active_contract', '=', True)], limit=1)
-
- if not order.contract_id:
- raise osv.except_osv(_('No contract available !'), _('No matching contract for the customer order !'))
-
- contract_id = order.contract_id
-
- #Obtenemos precio de coste de los gastos de envío en función del número de unidades
- price = 0
- found_ship_cost = False
-
- for ship_cost in contract_id.contract_shipping_cost_ids:
- if ship_cost.min_units <= num_products:
- price = ship_cost.price
- found_ship_cost = True
-
-
- if not found_ship_cost:
- raise osv.except_osv(_('No shipping cost available !'), _('No matching shipping cost defined in the contract !'))
-
- carrier = carrier_obj.browse(cr, uid, datas.carrier_id.id, context=context)
- taxes = carrier.product_id.taxes_id
- fpos = order.fiscal_position or False
- taxes_ids = acc_fp_obj.map_tax(cr, uid, fpos, taxes)
-
- #Obtenemos destinatario del producto
- receiver = False
-
- for info in contract_id.info_invoice_ids:
- receiver = line_obj._find_receiver(carrier.product_id.categ_id, info)
- if receiver:
- break
-
- if not receiver:
- receiver = 'cliente'
-
- #Creamos línea de gastos de envío
- line_obj.create(cr, uid, {
- 'order_id': order.id,
- 'name': carrier.product_id.name,
- 'product_uom_qty': 1,
- 'product_uom': carrier.product_id.uom_id.id,
- 'product_id': carrier.product_id.id,
- 'price_unit': price,
- 'receiver': receiver,
- 'num_cabins': 0,
- 'tax_id': [(6,0,taxes_ids)],
- 'type': 'make_to_stock',
- 'sequence': 30
- })
-
- #Actualizamos transportista seleccionado en el pedido
- order_obj.write(cr, uid, [order.id], {'carrier_id': carrier.id })
-
- return {'type': 'ir.actions.act_window_close'}
-
-make_contract_delivery()
+ # Obtenemos número de productos
+ num_products = 0
+ for line in order.order_line:
+ num_products = num_products + line.product_uom_qty
+ # Obtenemos precio de coste
+ for ship_cost in order.contract_id.contract_shipping_cost_ids:
+ if ship_cost.min_units <= num_products:
+ price = ship_cost.price
+ res = [(r['id'], r['name']+' ('+(str(price))+' '+currency+')')
+ for r in self.read(cr, uid, ids, ['name'], context)]
+ return res
+
+
+class make_contract_delivery(orm.TransientModel):
+ _name = "make.contract.delivery"
+ _description = 'Make Contract Delivery'
+ _columns = {
+ 'carrier_id': fields.many2one('delivery.carrier',
+ 'Delivery Method', required=True)
+ }
+
+ def default_get(self, cr, uid, fields, context=None):
+ """
+ To get default values for the object.
+ @param self: The object pointer.
+ @param cr: A database cursor
+ @param uid: ID of the user currently logged in
+ @param fields: List of fields for which we want default value
+ @param context: A standard dictionary
+ @return: A dictionary which of fields with values.
+ """
+ res = super(make_contract_delivery, self).default_get(cr, uid, fields,
+ context=context)
+ order_obj = self.pool['sale.order']
+ for order in order_obj.browse(cr, uid, context.get('active_ids', []),
+ context=context):
+ carrier = order.carrier_id.id
+ if not carrier:
+ carrier = order.partner_id.property_delivery_carrier.id
+ res.update({'carrier_id': carrier})
+ return res
+
+ def view_init(self, cr, uid, fields, context=None):
+ if context is None:
+ context = {}
+ order_obj = self.pool['sale.order']
+ for order in order_obj.browse(cr, uid, context.get('active_ids', []),
+ context=context):
+ if order.state not in ('draft'):
+ raise orm.except_orm(_('Order not in draft state !'),
+ _('The order state have to be draft'
+ ' to add delivery lines.'))
+ if not order.contract_id:
+ raise osv.except_osv(_('No contract available !'),
+ _('No matching contract '
+ 'for the customer order !'))
+ pass
+
+ def delivery_set(self, cr, uid, ids, context=None):
+ """
+ Adds delivery costs to Sale Order Line.
+
+ @param self: The object pointer.
+ @param cr: A database cursor
+ @param uid: ID of the user currently logged in
+ @param ids: List of IDs selected
+ @param context: A standard dictionary
+
+ @return:
+ """
+ if context is None:
+ context = {}
+ rec_ids = context and context.get('active_ids', [])
+ order_obj = self.pool['sale.order']
+ line_obj = self.pool['sale.order.line']
+ carrier_obj = self.pool['delivery.carrier']
+ acc_fp_obj = self.pool['account.fiscal.position']
+ contract_obj = self.pool['contract.contract']
+ order_objs = order_obj.browse(cr, uid, rec_ids, context=context)
+ for datas in self.browse(cr, uid, ids, context=context):
+ for order in order_objs:
+ if order.state not in ('draft'):
+ raise osv.except_osv(_('Order not in draft state !'),
+ _('The order state have to be draft'
+ ' to add delivery lines.'))
+ # Obtenemos número de productos
+ num_products = 0
+ for line in order.order_line:
+ num_products = num_products + line.product_uom_qty
+ # Obtenemos contrato del cliente del pedido
+ # contract_ids = contract_obj.search(cr, uid,
+ # [('customer_id', '=', order.partner_id.id),
+ # ('active_contract', '=', True)], limit=1)
+ if not order.contract_id:
+ raise osv.except_osv(_('No contract available !'),
+ _('No matching contract'
+ 'for the customer order !'))
+ contract_id = order.contract_id
+ # Obtenemos precio de coste de los gastos de envío
+ # en función del número de unidades
+ price = 0
+ found_ship_cost = False
+ for ship_cost in contract_id.contract_shipping_cost_ids:
+ if ship_cost.min_units <= num_products:
+ price = ship_cost.price
+ found_ship_cost = True
+ if not found_ship_cost:
+ raise osv.except_osv(_('No shipping cost available !'),
+ _('No matching shipping cost'
+ 'defined in the contract !'))
+ carrier = carrier_obj.browse(cr, uid, datas.carrier_id.id,
+ context=context)
+ taxes = carrier.product_id.taxes_id
+ fpos = order.fiscal_position or False
+ taxes_ids = acc_fp_obj.map_tax(cr, uid, fpos, taxes)
+ # Obtenemos destinatario del producto
+ receiver = False
+ for info in contract_id.info_invoice_ids:
+ categ = carrier.product_id.categ_id
+ receiver = line_obj._find_receiver(categ, info)
+ if receiver:
+ break
+ if not receiver:
+ receiver = 'cliente'
+ # Creamos línea de gastos de envío
+ line_obj.create(cr, uid, {
+ 'order_id': order.id,
+ 'name': carrier.product_id.name,
+ 'product_uom_qty': 1,
+ 'product_uom': carrier.product_id.uom_id.id,
+ 'product_id': carrier.product_id.id,
+ 'price_unit': price,
+ 'receiver': receiver,
+ 'num_cabins': 0,
+ 'tax_id': [(6, 0, taxes_ids)],
+ 'type': 'make_to_stock',
+ 'sequence': 30
+ })
+ # Actualizamos transportista seleccionado en el pedido
+ order_obj.write(cr, uid, [order.id], {'carrier_id': carrier.id
+ })
+ return {'type': 'ir.actions.act_window_close'}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
-
Follow ups