From 4899e29bd2a705e1474747624b550c7b1c7916cb Mon Sep 17 00:00:00 2001 From: "Pooja Zankhariya (OpenERP)" Date: Fri, 6 Sep 2013 15:47:28 +0530 Subject: [PATCH 1/2] [IMP]Improved Code bzr revid: pza@tinyerp.com-20130906101728-wr9oi2wv54jhgzux --- addons/delivery/stock.py | 6 ++++-- addons/stock_account/stock.py | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/addons/delivery/stock.py b/addons/delivery/stock.py index 3c1440cf951..d09481117e3 100644 --- a/addons/delivery/stock.py +++ b/addons/delivery/stock.py @@ -123,16 +123,18 @@ class stock_picking(osv.osv): group=False, type='out_invoice', context=None): invoice_obj = self.pool.get('account.invoice') picking_obj = self.pool.get('stock.picking') + move_obj = self.pool.get('stock.move') invoice_line_obj = self.pool.get('account.invoice.line') result = super(stock_picking, self).action_invoice_create(cr, uid, ids, journal_id=journal_id, group=group, type=type, context=context) - for picking in picking_obj.browse(cr, uid, result, context=context): - invoice = invoice_obj.browse(cr, uid, picking.id, context=context) + for picking in picking_obj.browse(cr, uid, ids, context=context): + invoice = invoice_obj.browse(cr, uid, result, context=context) invoice_line = self._prepare_shipping_invoice_line(cr, uid, picking, invoice, context=context) if invoice_line: invoice_line_obj.create(cr, uid, invoice_line) invoice_obj.button_compute(cr, uid, [invoice.id], context=context) + move_obj.write(cr, uid, [x.id for x in picking.move_lines], {'invoice_state': 'invoiced'}, context=context) return result def _get_default_uom(self,cr,uid,c): uom_categ, uom_categ_id = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'product', 'product_uom_categ_kgm') diff --git a/addons/stock_account/stock.py b/addons/stock_account/stock.py index ff48e865737..8a8066e6521 100644 --- a/addons/stock_account/stock.py +++ b/addons/stock_account/stock.py @@ -113,7 +113,7 @@ class stock_picking(osv.osv): store={ 'stock.picking': (lambda self, cr, uid, ids, c={}: ids, ['state'], 10), - 'stock.move': (__get_picking_move, ['picking_id'], 10), + 'stock.move': (__get_picking_move, ['picking_id', 'invoice_state'], 10), }, ), } From 7cace1fb20913294305726872b55c84760fddade Mon Sep 17 00:00:00 2001 From: "Pooja Zankhariya (OpenERP)" Date: Fri, 6 Sep 2013 18:46:37 +0530 Subject: [PATCH 2/2] [IMP]Improved Delivery Code bzr revid: pza@tinyerp.com-20130906131637-sdg9kik868ia2pbu --- addons/delivery/__openerp__.py | 2 +- addons/delivery/report/shipping.py | 11 +++++++++++ addons/delivery/report/shipping.rml | 25 ++++++++----------------- 3 files changed, 20 insertions(+), 18 deletions(-) diff --git a/addons/delivery/__openerp__.py b/addons/delivery/__openerp__.py index 089dc3e14d7..6201668bd90 100644 --- a/addons/delivery/__openerp__.py +++ b/addons/delivery/__openerp__.py @@ -32,7 +32,7 @@ You can define your own carrier and delivery grids for prices. When creating invoices from picking, OpenERP is able to add and compute the shipping line. """, 'author': 'OpenERP SA', - 'depends': ['sale', 'purchase', 'stock_account'], + 'depends': ['sale_stock', 'purchase'], 'data': [ 'security/ir.model.access.csv', 'delivery_report.xml', diff --git a/addons/delivery/report/shipping.py b/addons/delivery/report/shipping.py index 53bdad807c0..2becbc87b47 100644 --- a/addons/delivery/report/shipping.py +++ b/addons/delivery/report/shipping.py @@ -28,8 +28,19 @@ class shipping(report_sxw.rml_parse): super(shipping, self).__init__(cr, uid, name, context=context) self.localcontext.update({ 'time': time, + 'get_partner_invoice_id': self.get_partner_invoice_info, }) + def get_partner_invoice_info(self, origin): + """This method is used to get information of invoiced partner. + :param: origin: origin of picking + :return: tuple contaning partner name and address of invoiced partner + """ + sale_obj = self.pool.get('sale.order') + sale_id = sale_obj.search(self.cr, self.uid, [('name', '=', origin)])[0] + partner_invoice_id = sale_obj.browse(self.cr, self.uid, sale_id).partner_invoice_id + return partner_invoice_id.name, self.pool.get('res.partner')._display_address(self.cr, self.uid, partner_invoice_id) + report_sxw.report_sxw('report.sale.shipping','stock.picking','addons/delivery/report/shipping.rml',parser=shipping) # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/delivery/report/shipping.rml b/addons/delivery/report/shipping.rml index 5a3750e64a8..38e13a27936 100644 --- a/addons/delivery/report/shipping.rml +++ b/addons/delivery/report/shipping.rml @@ -107,14 +107,11 @@ - + Description - - Lot - Quantity @@ -130,12 +127,12 @@ Invoiced to - [[ o.sale_id and o.sale_id.partner_invoice_id and o.sale_id.partner_invoice_id.name or '']] - [[ o.sale_id and o.sale_id.partner_invoice_id and display_address(o.sale_id.partner_invoice_id) ]] + [[ o.origin and get_partner_invoice_id(o.origin)[0] or '' ]] + [[ o.origin and get_partner_invoice_id(o.origin)[1] or '' ]] - [[ o.partner_id and o.partner_id and o.partner_id.name or '' ]] - [[ o.partner_id and o.partner_id and display_address(o.partner_id) ]] + [[ o.partner_id and o.partner_id.name or '' ]] + [[ o.partner_id and display_address(o.partner_id) ]] @@ -165,7 +162,7 @@ - [[ o.sale_id and o.sale_id.name ]] + [[ o.origin or '' ]] [[ formatLang(o.date,date_time=True) ]] @@ -184,14 +181,11 @@ - + Description - - Lot - Quantity @@ -199,14 +193,11 @@
[[repeatIn(o.move_lines,'line')]] - + [[line.product_id.code ]] [[ line.product_id and line.product_id.name or '']] - - [[ (line.prodlot_id and (line.prodlot_id.name + (line.prodlot_id.ref and ('/' + line.prodlot_id.ref) or ''))) or ' ' ]] - [[ formatLang(line.product_qty) ]] [[ line.product_uom and line.product_uom.name ]]