← Back to team overview

avanzosc team mailing list archive

[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