From e713f85c15b9e14e42d1cd7d85a1c8336e045aee Mon Sep 17 00:00:00 2001 From: "Harry (Open ERP)" Date: Thu, 7 May 2009 16:22:59 +0530 Subject: [PATCH 01/15] [IMP] report_intrastat : report base on invoice not stock move bzr revid: hmo@tinyerp.com-20090507105259-4i01zzgeje86aifl --- addons/report_intrastat/report_intrastat.py | 111 ++++++++++-------- .../report_intrastat_view.xml | 6 +- 2 files changed, 64 insertions(+), 53 deletions(-) diff --git a/addons/report_intrastat/report_intrastat.py b/addons/report_intrastat/report_intrastat.py index 6b467f08c41..c45ac1085ae 100644 --- a/addons/report_intrastat/report_intrastat.py +++ b/addons/report_intrastat/report_intrastat.py @@ -55,7 +55,9 @@ class report_intrastat(osv.osv): _description = "Intrastat report" _auto = False _columns = { - 'name': fields.date('Month', readonly=True), + 'name': fields.many2one('account.period', 'Period', readonly=True,select=True), + 'supply_units':fields.float('Supply Units', readonly=True), + 'ref':fields.char('Origin',size=64, readonly=True), 'code': fields.char('Country code', size="2", readonly=True), 'intrastat_id': fields.many2one('report.intrastat.code', 'Intrastat code', readonly=True), 'weight': fields.float('Weight', readonly=True), @@ -66,56 +68,63 @@ class report_intrastat(osv.osv): def init(self, cr): cr.execute(""" create or replace view report_intrastat as ( - select - to_char(m.create_date, 'YYYY-MM-01') as name, - min(m.id) as id, - pt.intrastat_id as intrastat_id, - case when l.usage in ('supplier', 'customer') then upper(pc.code) else upper(c.code) end as code, - sum(case when pol.price_unit is not null - then pol.price_unit * m.product_qty - else - case when sol.price_unit is not null - then sol.price_unit * m.product_qty - else 0 - end - end) as value, - sum(pt.weight_net * m.product_qty) as weight, - case when l.usage in ('supplier', 'customer') then 'import' else 'export' end as type, - case when ppl.currency_id is not null - then ppl.currency_id - else spl.currency_id - end as currency_id - from - stock_move m - left join (product_template pt - left join product_product pp on (pp.product_tmpl_id = pt.id)) - on (m.product_id = pt.id) - left join (res_partner_address a - left join res_country c on (c.id = a.country_id)) - on (a.id = m.address_id) - left join (stock_picking sp - left join (res_partner_address pa - left join res_country pc on (pc.id = pa.country_id)) - on (pa.id = sp.address_id)) - on (sp.id = m.picking_id) - left join stock_location l on (l.id = m.location_id) - left join stock_location dl on (dl.id = m.location_dest_id) - left join (purchase_order_line pol - left join (purchase_order po - left join product_pricelist ppl on (ppl.id = po.pricelist_id)) - on (po.id = pol.order_id)) - on (pol.id = m.purchase_line_id) - left join (sale_order_line sol - left join (sale_order so - left join product_pricelist spl on (spl.id = so.pricelist_id)) - on (so.id = sol.order_id)) - on (sol.id = m.sale_line_id) - where - m.state != 'draft' - and ((l.usage in ('supplier', 'customer') and dl.usage not in ('supplier', 'customer')) - or (dl.usage in ('supplier', 'customer') and l.usage not in ('supplier', 'customer'))) - and (c.intrastat is not null or pc.intrastat is not null) - group by to_char(m.create_date, 'YYYY-MM-01'), pt.intrastat_id, c.code, pc.code, l.usage, dl.usage, ppl.currency_id, spl.currency_id + select + inv.period_id as name, + min(inv_line.id) as id, + intrastat.id as intrastat_id, + upper(inv_country.code) as code, + sum(case when inv_line.price_unit is not null + then inv_line.price_unit * inv_line.quantity + else 0 + end) as value, + sum( + case when uom.category_id != puom.category_id then pt.weight_net * inv_line.quantity + else + case when uom.factor_inv_data > 0 + then + pt.weight_net * inv_line.quantity * uom.factor_inv_data + else + pt.weight_net * inv_line.quantity / uom.factor + end + end + ) as weight, + sum( + case when uom.category_id != puom.category_id then inv_line.quantity + else + case when uom.factor_inv_data > 0 + then + inv_line.quantity * uom.factor_inv_data + else + inv_line.quantity / uom.factor + end + end + ) as supply_units, + + inv.currency_id as currency_id, + inv.number as ref, + case when inv.type in ('out_invoice','in_refund') + then 'export' + else 'import' + end as type + from + account_invoice inv + left join account_invoice_line inv_line on inv_line.invoice_id=inv.id + left join (product_template pt + left join product_product pp on (pp.product_tmpl_id = pt.id)) + on (inv_line.product_id = pt.id) + left join product_uom uom on uom.id=inv_line.uos_id + left join product_uom puom on puom.id = pt.uom_id + left join report_intrastat_code intrastat on pt.intrastat_id = intrastat.id + left join (res_partner_address inv_address + left join res_country inv_country on (inv_country.id = inv_address.country_id)) + on (inv_address.id = inv.address_invoice_id) + + where + inv.state in ('open','paid') + and inv_line.product_id is not null + and inv_country.intrastat=true + + group by inv.period_id,intrastat.id,inv.type,pt.intrastat_id, inv_country.code,inv.number, inv.currency_id )""") report_intrastat() diff --git a/addons/report_intrastat/report_intrastat_view.xml b/addons/report_intrastat/report_intrastat_view.xml index 9432091beca..51841c13bb5 100644 --- a/addons/report_intrastat/report_intrastat_view.xml +++ b/addons/report_intrastat/report_intrastat_view.xml @@ -77,10 +77,12 @@ - + + + @@ -93,7 +95,7 @@ report.intrastat form tree - [('name','=',time.strftime('%Y-%m-01'))] + [('name','=',time.strftime('%b.%Y'))] From 8325ffdb14a1320375cdbe33da69aa46559e15b9 Mon Sep 17 00:00:00 2001 From: "Sofia (Open ERP)" Date: Fri, 8 May 2009 11:17:36 +0530 Subject: [PATCH 02/15] bugfixed bzr revid: sso@tinyerp.com-20090508054736-9kok0hlpf7ysht54 --- addons/base_contact/base_contact.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/base_contact/base_contact.py b/addons/base_contact/base_contact.py index 1729f086122..d0453a9f94b 100644 --- a/addons/base_contact/base_contact.py +++ b/addons/base_contact/base_contact.py @@ -100,7 +100,7 @@ class res_partner_job(osv.osv): return [] res = [] for r in self.browse(cr, uid, ids): - res.append((r.id, self.pool.get('res.partner.contact').name_get(cr, uid, [r.contact_id.id])[0][1] +", "+ r.function_id.name)) + res.append((r.id, self.pool.get('res.partner.contact').name_get(cr, uid, [r.contact_id.id])[0][1] +", %s"% r.function_id.name)) return res def search(self, cr, user, args, offset=0, limit=None, order=None, From 0bf456e96ae3c7d71d0439602c836ea6f0afe4eb Mon Sep 17 00:00:00 2001 From: "Jay (Open ERP)" Date: Fri, 8 May 2009 11:27:04 +0530 Subject: [PATCH 03/15] [FIX] Bug 372583 : Supplier invoice creates partner as supplier only bzr revid: jvo@tinyerp.com-20090508055704-xgz0y55iux302gb2 --- addons/account/account_invoice_view.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/account/account_invoice_view.xml b/addons/account/account_invoice_view.xml index 9715598eb9c..b48d4ab1606 100644 --- a/addons/account/account_invoice_view.xml +++ b/addons/account/account_invoice_view.xml @@ -141,7 +141,7 @@ - + From 806dcd00b85bf2ad298a93a0a3ec3803ed92433a Mon Sep 17 00:00:00 2001 From: "Jay (Open ERP)" Date: Fri, 8 May 2009 12:25:06 +0530 Subject: [PATCH 04/15] [FIX] Bug 370854 : states defines for button and made stock.moves readonly(ref:SSI) bzr revid: jvo@tinyerp.com-20090508065506-mobnpkej9ddw79qp --- addons/stock/stock.py | 2 +- addons/stock/stock_view.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/stock/stock.py b/addons/stock/stock.py index 35c39d6ceeb..638fb7ca658 100644 --- a/addons/stock/stock.py +++ b/addons/stock/stock.py @@ -425,7 +425,7 @@ class stock_picking(osv.osv): 'date_done':fields.datetime('Date Done'), 'max_date': fields.function(get_min_max_date, fnct_inv=_set_maximum_date, multi="min_max_date", method=True,store=True, type='datetime', string='Max. Planned Date', select=2), - 'move_lines': fields.one2many('stock.move', 'picking_id', 'Move lines'), + 'move_lines': fields.one2many('stock.move', 'picking_id', 'Move lines',states={'done':[('readonly',True)],'cancel':[('readonly',True)]}), 'auto_picking': fields.boolean('Auto-Packing'), 'address_id': fields.many2one('res.partner.address', 'Partner'), diff --git a/addons/stock/stock_view.xml b/addons/stock/stock_view.xml index 65fa1fc504d..370a5b52f81 100644 --- a/addons/stock/stock_view.xml +++ b/addons/stock/stock_view.xml @@ -653,7 +653,7 @@