From f9afd1d739e06ec88a8b93afa12e39c477145c2b Mon Sep 17 00:00:00 2001 From: Fabien Pinckaers Date: Wed, 3 Sep 2008 15:47:19 +0200 Subject: [PATCH] Modifications Multi-plans bzr revid: fp@tinyerp.com-20080903134719-ubt3ugindpmjuqjw --- addons/account/account_invoice_view.xml | 6 +- addons/account/data/account_minimal.xml | 6 + addons/account/invoice.py | 2 + .../account_analytic_default.py | 16 +- .../account_analytic_default_view.xml | 51 +-- .../account_analytic_plans.py | 32 +- .../account_analytic_plans_view.xml | 430 +++++++++--------- addons/product/product.py | 2 - 8 files changed, 266 insertions(+), 279 deletions(-) diff --git a/addons/account/account_invoice_view.xml b/addons/account/account_invoice_view.xml index c759ac4ea14..4489cfea1a2 100644 --- a/addons/account/account_invoice_view.xml +++ b/addons/account/account_invoice_view.xml @@ -202,13 +202,13 @@ - + - + @@ -555,7 +555,7 @@ - + diff --git a/addons/account/data/account_minimal.xml b/addons/account/data/account_minimal.xml index 12ffb7e3c1f..325326f8754 100644 --- a/addons/account/data/account_minimal.xml +++ b/addons/account/data/account_minimal.xml @@ -97,6 +97,12 @@ your own chart of account. + + property_account_supplier_tax + + + + property_account_tax diff --git a/addons/account/invoice.py b/addons/account/invoice.py index 89e47a1ac43..fe4d16196c8 100644 --- a/addons/account/invoice.py +++ b/addons/account/invoice.py @@ -794,6 +794,8 @@ class account_invoice_line(osv.osv): return {'price_unit': price_unit,'invoice_line_tax_id': tax_id} def product_id_change(self, cr, uid, ids, product, uom, qty=0, name='', type='out_invoice', partner_id=False, price_unit=False, address_invoice_id=False, context={}): + if not partner_id: + raise osv.except_osv(_('No Partner Defined !'),_("You must first select a partner !") ) if not product: if type in ('in_invoice', 'in_refund'): return {'domain':{'product_uom':[]}} diff --git a/addons/account_analytic_default/account_analytic_default.py b/addons/account_analytic_default/account_analytic_default.py index bf0dcce3c9a..a2f95a1a04a 100644 --- a/addons/account_analytic_default/account_analytic_default.py +++ b/addons/account_analytic_default/account_analytic_default.py @@ -38,7 +38,7 @@ class account_analytic_default(osv.osv): _order = 'sequence' _columns = { 'sequence': fields.integer('Sequence'), - 'analytic_id': fields.many2one('account.analytic.account', 'Analytic Account', required=True), + 'analytic_id': fields.many2one('account.analytic.account', 'Analytic Account'), 'product_id': fields.many2one('product.product', 'Product', ondelete='cascade'), 'partner_id': fields.many2one('res.partner', 'Partner', ondelete='cascade'), 'user_id': fields.many2one('res.users', 'User', ondelete='cascade'), @@ -49,14 +49,18 @@ class account_analytic_default(osv.osv): def account_get(self, cr, uid, product_id=None, partner_id=None, user_id=None, date=None, context={}): domain = [] if product_id: - domain += ['|',('product_id','=',product_id),('product_id','=',False)] + domain += ['|',('product_id','=',product_id)] + domain += [('product_id','=',False)] if partner_id: - domain += ['|',('partner_id','=',partner_id),('partner_id','=',False)] - if partner_id: - domain += ['|',('user_id','=',uid),('user_id','=',False)] + domain += ['|',('partner_id','=',partner_id)] + domain += [('partner_id','=',False)] + if user_id: + domain += ['|',('user_id','=',uid)] + domain += [('user_id','=',False)] if date: domain += ['|',('date_start','<=',date),('date_start','=',False)] domain += ['|',('date_stop','>=',date),('date_stop','=',False)] + print 'DOMAIN', domain best_index = -1 res = False for rec in self.browse(cr, uid, self.search(cr, uid, domain, context=context), context=context): @@ -79,7 +83,7 @@ class account_invoice_line(osv.osv): res_prod = super(account_invoice_line,self).product_id_change(cr, uid, ids, product, uom, qty, name, type, partner_id, price_unit, address_invoice_id, context) rec = self.pool.get('account.analytic.default').account_get(cr, uid, product, partner_id, uid, time.strftime('%Y-%m-%d'), context) if rec: - res_prod['value'].update({'account_analytic_id':res.account_id.id}) + res_prod['value'].update({'account_analytic_id':rec.analytic_id.id}) return res_prod account_invoice_line() diff --git a/addons/account_analytic_default/account_analytic_default_view.xml b/addons/account_analytic_default/account_analytic_default_view.xml index a2d4e0df0b8..fb5eb636f01 100644 --- a/addons/account_analytic_default/account_analytic_default_view.xml +++ b/addons/account_analytic_default/account_analytic_default_view.xml @@ -8,7 +8,7 @@ - + @@ -24,7 +24,7 @@ form
- + @@ -47,33 +47,26 @@ id="menu_analytic_defaul_form" parent="account.menu_analytic_accounting"/> - - Analytic Rules - account.analytic.default - res.partner - ir.actions.act_window - form - tree,form - [('partner_id','=',active_id)] - - - Analytic Rules - account.analytic.default - res.users - ir.actions.act_window - form - tree,form - [('user_id','=',active_id)] - - - Analytic Rules - account.analytic.default - product.product - ir.actions.act_window - form - tree,form - [('product_id','=',active_id)] - + + + + diff --git a/addons/account_analytic_plans/account_analytic_plans.py b/addons/account_analytic_plans/account_analytic_plans.py index b9c14619382..cc568c70a2a 100644 --- a/addons/account_analytic_plans/account_analytic_plans.py +++ b/addons/account_analytic_plans/account_analytic_plans.py @@ -261,12 +261,10 @@ class account_invoice_line(osv.osv): def product_id_change(self, cr, uid, ids, product, uom, qty=0, name='', type='out_invoice', partner_id=False, price_unit=False, address_invoice_id=False, context={}): res_prod = super(account_invoice_line,self).product_id_change(cr, uid, ids, product, uom, qty, name, type, partner_id, price_unit, address_invoice_id, context) - if product: - res = self.pool.get('product.product').browse(cr, uid, product, context=context) - res_prod['value'].update({'analytics_id':res.property_account_distribution.id}) + rec = self.pool.get('account.analytic.default').account_get(cr, uid, product, partner_id, uid, time.strftime('%Y-%m-%d'), context) + if rec and rec.analytics_id: + res_prod['value'].update({'analytics_id':rec.analytics_id.id}) return res_prod - - account_invoice_line() class account_move_line(osv.osv): @@ -374,24 +372,10 @@ class account_analytic_plan(osv.osv): } account_analytic_plan() -class product_product(osv.osv): - _name = 'product.product' - _inherit = 'product.product' - _description = 'Product' - +class analytic_default(osv.osv): + _inherit = 'account.analytic.default' _columns = { - 'property_account_distribution': fields.property( - 'account.analytic.plan.instance', - type='many2one', - relation='account.analytic.plan.instance', - string="Analytic Distribution", - method=True, - view_load=True, - group_name="Accounting Properties", - help="This Analytic Distribution will be use in sale order line and invoice lines", - ), - } - -product_product() -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: + 'analytics_id': fields.many2one('account.analytic.plan.instance', 'Analytic Distribution'), + } +analytic_default() diff --git a/addons/account_analytic_plans/account_analytic_plans_view.xml b/addons/account_analytic_plans/account_analytic_plans_view.xml index cd992cdf049..c33122ca00f 100644 --- a/addons/account_analytic_plans/account_analytic_plans_view.xml +++ b/addons/account_analytic_plans/account_analytic_plans_view.xml @@ -4,245 +4,245 @@ - - account.journal.form.inherit - account.journal - form - - - - - - - + + account.journal.form.inherit + account.journal + form + + + + + + + - - account.move.line.form.inherit - account.move.line - form - - - - - - - + + account.move.line.form.inherit + account.move.line + form + + + + + + + - - account.move.line.tree.inherit - account.move.line - tree - - - - - - - + + account.move.line.tree.inherit + account.move.line + tree + + + + + + + - - account.invoice.line.form.inherit - account.invoice.line - - form - - - - - - + + account.invoice.line.form.inherit + account.invoice.line + + form + + + + + + - - account.invoice.supplier.form.inherit - account.invoice - form - - 2 - - - - - - + + account.invoice.supplier.form.inherit + account.invoice + form + + 2 + + + + + + - - account.analytic.plan.instance.form - account.analytic.plan.instance - form - - - - - - - - - - - - - - - + + account.analytic.plan.instance.form + account.analytic.plan.instance + form + +
+ + + + + + + + + + + + +
- - account.analytic.plan.instance.tree - account.analytic.plan.instance - tree - - - - - - - - - + + account.analytic.plan.instance.tree + account.analytic.plan.instance + tree + + + + + + + + + - - Analytic Distribution's Models - ir.actions.act_window - account.analytic.plan.instance - [('plan_id','<>',False)] - form - tree,form - + + Analytic Distribution's Models + ir.actions.act_window + account.analytic.plan.instance + [('plan_id','<>',False)] + form + tree,form + - + - + - - account.analytic.plan.instance.line.form - account.analytic.plan.instance.line - form - -
- - - - - -
+ + account.analytic.plan.instance.line.form + account.analytic.plan.instance.line + form + +
+ + + + + +
- - account.analytic.plan.instance.line.tree - account.analytic.plan.instance.line - tree - - - - - - - - + + account.analytic.plan.instance.line.tree + account.analytic.plan.instance.line + tree + + + + + + + + - - account.analytic.plan.form - account.analytic.plan - form - -
- - - - - -
+ + account.analytic.plan.form + account.analytic.plan + form + +
+ + + + + +
- - account.analytic.plan.tree - account.analytic.plan - tree - - - - - - + + account.analytic.plan.tree + account.analytic.plan + tree + + + + + + - - Analytic Plan - ir.actions.act_window - account.analytic.plan - form - tree,form - + + Analytic Plan + ir.actions.act_window + account.analytic.plan + form + tree,form + - + - - account.analytic.plan.line.form - account.analytic.plan.line - form - -
- - - - - - - - -
+ + account.analytic.plan.line.form + account.analytic.plan.line + form + +
+ + + + + + + + +
- - account.analytic.plan.line.tree - account.analytic.plan.line - tree - - - - - - - - - - + + account.analytic.plan.line.tree + account.analytic.plan.line + tree + + + + + + + + + + - + - - product.template.property.distribution.form.inherit - form - product.template - - - - - - - - - product.normal.property.distribution.form.inherit - form - product.product - - - - - - - + + account.analytic.default.form.plans + form + account.analytic.default + + + + + + + + + account.analytic.default.tree.plans + tree + account.analytic.default + + + + + + + diff --git a/addons/product/product.py b/addons/product/product.py index 0d69f6c5cd0..ab53db828e1 100644 --- a/addons/product/product.py +++ b/addons/product/product.py @@ -295,8 +295,6 @@ class product_template(osv.osv): 'procure_method': lambda *a: 'make_to_stock', 'uom_id': _get_uom_id, 'uom_po_id': _get_uom_id, - #'uom_price_id' : _get_uom_id, - #'uos_id' : _get_uom_id, 'uos_coeff' : lambda *a: 1.0, 'mes_type' : lambda *a: 'fixed', }