diff options
| author | Stephane Wirtel <stephane@tinyerp.com> | 2009-05-20 14:54:34 +0200 |
|---|---|---|
| committer | Stephane Wirtel <stephane@tinyerp.com> | 2009-05-20 14:54:34 +0200 |
| commit | 2e9c072e69ada28d1fb8cbbe1200e883f7dfcc99 (patch) | |
| tree | 814bdc464ebbdff3ec94cf472dd04ebb07ef47fb | |
| parent | 27834ba2cb2d395eeb767f3f42e883745cd917a9 (diff) | |
| parent | 2bc053eb4051e7a7c25f757735b4b1c1c76ff52e (diff) | |
[MERGE]
bzr revid: stephane@tinyerp.com-20090520125434-x9qiim1awpnhm95l
| -rw-r--r-- | addons/product/pricelist_view.xml | 2 | ||||
| -rw-r--r-- | addons/purchase/purchase_view.xml | 1 | ||||
| -rw-r--r-- | addons/report_intrastat/report_intrastat.py | 131 |
3 files changed, 69 insertions, 65 deletions
diff --git a/addons/product/pricelist_view.xml b/addons/product/pricelist_view.xml index 544ebfacff4..0c3c858e2d2 100644 --- a/addons/product/pricelist_view.xml +++ b/addons/product/pricelist_view.xml @@ -75,7 +75,7 @@ <separator colspan="4" string="Price Computation"/> <field name="base"/> - <field name="base_pricelist_id"/> + <field name="base_pricelist_id" attrs="{'required': [('base','=', -1)], 'readonly': [('base','!=', -1)]}"/> <group col="6" colspan="5"> <label string="New Price ="/> <label string="Base Price"/> diff --git a/addons/purchase/purchase_view.xml b/addons/purchase/purchase_view.xml index 161f7117090..74117861d3d 100644 --- a/addons/purchase/purchase_view.xml +++ b/addons/purchase/purchase_view.xml @@ -198,6 +198,7 @@ <tree colors="red:date_planned<=current_date" string="Purchase Order Line"> <field name="date_planned"/> <field name="name"/> + <field name="product_id"/> <field name="product_qty"/> <field name="product_uom"/> <field name="price_unit"/> diff --git a/addons/report_intrastat/report_intrastat.py b/addons/report_intrastat/report_intrastat.py index 36c429639f1..d941bebcc4d 100644 --- a/addons/report_intrastat/report_intrastat.py +++ b/addons/report_intrastat/report_intrastat.py @@ -1,7 +1,7 @@ # -*- encoding: utf-8 -*- ############################################################################## # -# OpenERP, Open Source Management Solution +# OpenERP, Open Source Management Solution # Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>). All Rights Reserved # $Id$ # @@ -21,7 +21,8 @@ ############################################################################## from osv import osv, fields -import tools.sql +from tools.sql import drop_view_if_exists + class res_country(osv.osv): _name = 'res.country' @@ -32,8 +33,10 @@ class res_country(osv.osv): _defaults = { 'intrastat': lambda *a: False, } + res_country() + class report_intrastat_code(osv.osv): _name = "report.intrastat.code" _description = "Intrastat code" @@ -41,14 +44,17 @@ class report_intrastat_code(osv.osv): 'name': fields.char('Intrastat Code', size=16), 'description': fields.char('Description', size=64), } + report_intrastat_code() + class product_template(osv.osv): _name = "product.template" _inherit = "product.template" _columns = { 'intrastat_id': fields.many2one('report.intrastat.code', 'Intrastat code'), } + product_template() class report_intrastat(osv.osv): @@ -56,9 +62,9 @@ class report_intrastat(osv.osv): _description = "Intrastat report" _auto = False _columns = { - '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), + '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), @@ -67,69 +73,66 @@ class report_intrastat(osv.osv): 'currency_id': fields.many2one('res.currency', "Currency", readonly=True), } def init(self, cr): - tools.sql.drop_view_if_exists(cr, 'report_intrastat') + drop_view_if_exists(cr, 'report_intrastat') cr.execute(""" create or replace view report_intrastat as ( - 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, + 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) + 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 + 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() - -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: +report_intrastat() |
