diff --git a/addons/delivery/__openerp__.py b/addons/delivery/__openerp__.py
index 40dab751f79..87f3b5aa89e 100644
--- a/addons/delivery/__openerp__.py
+++ b/addons/delivery/__openerp__.py
@@ -44,7 +44,9 @@ When creating invoices from picking, OpenERP is able to add and compute the ship
'partner_view.xml'
],
'demo_xml': ['delivery_demo.xml'],
- 'test':['test/delivery_report.yml'],
+ 'test': [
+ 'test/delivery_cost.yml',
+ ],
'installable': True,
'active': False,
'certificate': '0033981912253',
diff --git a/addons/delivery/delivery.py b/addons/delivery/delivery.py
index a149f99777c..214d2a60b52 100644
--- a/addons/delivery/delivery.py
+++ b/addons/delivery/delivery.py
@@ -125,8 +125,9 @@ class delivery_carrier(osv.osv):
grid_line_pool.unlink(cr, uid, lines, context=context)
#create the grid lines
+ default_data = None
if record.free_if_more_than:
- data = {
+ default_data = {
'grid_id': grid_id and grid_id[0],
'name': _('Free if more than %.2f') % record.amount,
'type': 'price',
@@ -135,8 +136,6 @@ class delivery_carrier(osv.osv):
'standard_price': 0.0,
'list_price': 0.0,
}
- grid_line_pool.create(cr, uid, data, context=context)
-
if record.normal_price:
default_data = {
'grid_id': grid_id and grid_id[0],
@@ -147,6 +146,7 @@ class delivery_carrier(osv.osv):
'standard_price': record.normal_price,
'list_price': record.normal_price,
}
+ if default_data:
grid_line_pool.create(cr, uid, default_data, context=context)
return True
diff --git a/addons/delivery/delivery_demo.xml b/addons/delivery/delivery_demo.xml
index 94666efb26c..acc17e20eae 100644
--- a/addons/delivery/delivery_demo.xml
+++ b/addons/delivery/delivery_demo.xml
@@ -6,20 +6,19 @@
The Poste
-
default
-
+
Delivery by Poste
Delivery
service
-
+
@@ -30,12 +29,34 @@
+
+ Free delivery charges
+ True
+ 1000
+
+
+
+
+
+ normal delivery charges
+ 10
+
+
+
+
+
+
+
+
+
+
The Poste - Pricelist
+
Weight <= 5kg
@@ -43,6 +64,7 @@
+
Weight > 5kg
@@ -52,6 +74,7 @@
+
Free if price >= 300
@@ -59,7 +82,7 @@
>=
price
-
+
diff --git a/addons/delivery/test/delivery_cost.yml b/addons/delivery/test/delivery_cost.yml
new file mode 100644
index 00000000000..f8d6787a0c5
--- /dev/null
+++ b/addons/delivery/test/delivery_cost.yml
@@ -0,0 +1,75 @@
+-
+ In order to test Carrier Cost,
+-
+ I add delivery cost in Sale order.
+-
+ !python {model: delivery.sale.order}: |
+ context.update({'active_ids': [ref("sale.order")]})
+-
+ !record {model: delivery.sale.order, id: sale_delivery_carrier}:
+ {}
+-
+ !python {model: delivery.sale.order}: |
+ self.delivery_set(cr, uid, [ref('sale_delivery_carrier')], context=context)
+-
+ I check sale order after added delivery cost.
+-
+ !python {model: sale.order.line}: |
+ line_ids = self.search(cr, uid, [('order_id','=', ref('sale.order')), ('product_id','=', ref('delivery_product'))])
+ assert len(line_ids), "Delivery cost is not Added"
+ line_data = self.browse(cr ,uid ,line_ids[0] ,context)
+ assert line_data.price_subtotal == 10, "Delivey cost is not correspond."
+-
+ I confirm the sale order.
+-
+ !workflow {model: sale.order, action: order_confirm, ref: sale.order}
+-
+ I create Invoice from shipment.
+-
+ !python {model: stock.invoice.onshipping}: |
+ sale = self.pool.get('sale.order')
+ sale_order = sale.browse(cr, uid, ref("sale.order"))
+ ship_ids = [x.id for x in sale_order.picking_ids]
+ wiz_id = self.create(cr, uid, {'journal_id': ref('account.sales_journal')},
+ {'active_ids': ship_ids, 'active_model': 'stock.picking'})
+ self.create_invoice(cr, uid, [wiz_id], {"active_ids": ship_ids, "active_id": ship_ids[0]})
+-
+ I print a Delivery Order report.
+-
+ !python {model: stock.picking}: |
+ import netsvc, tools, os
+ sale = self.pool.get('sale.order')
+ sale_order = sale.browse(cr, uid, ref("sale.order"))
+ ship_ids = [x.id for x in sale_order.picking_ids]
+ (data, format) = netsvc.LocalService('report.sale.shipping').create(cr, uid, ship_ids, {}, {})
+ if tools.config['test_report_directory']:
+ file(os.path.join(tools.config['test_report_directory'], 'delivery-shipping'+format), 'wb+').write(data)
+-
+ I add free delivery cost in Sale order.
+-
+ !python {model: delivery.sale.order}: |
+ context.update({'active_ids': [ref("sale.order2")]})
+-
+ !record {model: delivery.sale.order, id: sale_delivery_carrier}:
+ {}
+-
+ !python {model: delivery.sale.order}: |
+ self.delivery_set(cr, uid, [ref('sale_delivery_carrier')], context=context)
+-
+ I check sale order after added delivery cost.
+-
+ !python {model: sale.order.line}: |
+ line_ids = self.search(cr, uid, [('order_id','=', ref('sale.order2')), ('product_id','=', ref('delivery_product'))])
+ assert len(line_ids), "Delivery cost is not Added"
+ line_data = self.browse(cr ,uid ,line_ids[0] ,context)
+ assert line_data.price_subtotal == 0, "Delivey cost is not correspond."
+
+-
+ I set default delivery policy.
+-
+ !record {model: delivery.define.delivery.steps.wizard, id: default_delivery_policy}:
+ {}
+-
+ !python {model: delivery.define.delivery.steps.wizard}: |
+ self.apply_cb(cr, uid, [ref('default_delivery_policy')], context=context)
+
diff --git a/addons/delivery/test/delivery_report.yml b/addons/delivery/test/delivery_report.yml
deleted file mode 100644
index 4205a374910..00000000000
--- a/addons/delivery/test/delivery_report.yml
+++ /dev/null
@@ -1,36 +0,0 @@
-
--
-
- In Order to test the delivery report I create picking with move lines.
--
- !record {model: stock.picking, id: stock_picking_delivery}:
- name: test_picking
- origin: SO001
- address_id: base.res_partner_address_4
- company_id: base.main_company
- date: !eval time.strftime('%Y-%m-%d %H:%M:%S')
- invoice_state: none
- move_lines:
- - company_id: base.main_company
- date: !eval time.strftime('%Y-%m-%d %H:%M:%S')
- location_dest_id: stock.stock_location_customers
- location_id: stock.stock_location_stock
- name: HP CD writers
- product_id: product.product_product_pc1
- product_qty: 3.0
- product_uom: product.product_uom_unit
- date: !eval time.strftime('%Y-%m-%d %H:%M:%S')
- product_uos_qty: 3.0
- move_type: direct
- type: out
-
-
-
--
- In order to test the PDF reports defined on a Delievry, we will print a Delivery Order report
--
- !python {model: stock.picking}: |
- import netsvc, tools, os
- (data, format) = netsvc.LocalService('report.sale.shipping').create(cr, uid, [ref('stock_picking_delivery')], {}, {})
- if tools.config['test_report_directory']:
- file(os.path.join(tools.config['test_report_directory'], 'delievry-shipping'+format), 'wb+').write(data)
diff --git a/addons/delivery/wizard/delivery_sale_order.py b/addons/delivery/wizard/delivery_sale_order.py
index 685917e8bd9..80b3431f2a7 100644
--- a/addons/delivery/wizard/delivery_sale_order.py
+++ b/addons/delivery/wizard/delivery_sale_order.py
@@ -34,18 +34,6 @@ class make_delivery(osv.osv_memory):
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_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):
@@ -66,18 +54,6 @@ class make_delivery(osv.osv_memory):
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',[])