From 67d025a4cb6cd176c7d3966b9dcca427caca36bf Mon Sep 17 00:00:00 2001 From: "Ajay Chauhan (OpenERP)" Date: Mon, 11 Feb 2013 15:42:57 +0530 Subject: [PATCH 1/6] [IMP] sales terms & conditions note per company bzr revid: cha@tinyerp.com-20130211101257-nw5pvqrs841pe2l9 --- addons/sale/res_config.py | 17 ++++++++++++++++- addons/sale/res_config_view.xml | 19 ++++++++++++++++++- addons/sale/sale.py | 12 +++++++++++- 3 files changed, 45 insertions(+), 3 deletions(-) diff --git a/addons/sale/res_config.py b/addons/sale/res_config.py index a693fd11024..2a0c8761d0e 100644 --- a/addons/sale/res_config.py +++ b/addons/sale/res_config.py @@ -76,14 +76,25 @@ Example: Product: this product is deprecated, do not purchase more than 5. 'module_sale_stock': fields.boolean("Trigger delivery orders automatically from sales orders", help="""Allows you to Make Quotation, Sale Order using different Order policy and Manage Related Stock. This installs the module sale_stock."""), + 'sale_note': fields.text('Terms & Conditions', translate=True), + 'company_id': fields.many2one('res.company', 'Company', required=True), } + def onchange_company_id(self, cr, uid, ids, company_id): + res = {'value':{}} + if company_id: + company = self.pool.get('res.company').browse(cr, uid, company_id) + res['value'].update({'sale_note': company.sale_note}) + return res + def default_get(self, cr, uid, fields, context=None): ir_model_data = self.pool.get('ir.model.data') res = super(sale_configuration, self).default_get(cr, uid, fields, context) if res.get('module_project'): user = self.pool.get('res.users').browse(cr, uid, uid, context) res['time_unit'] = user.company_id.project_time_mode_id.id + res['sale_note'] = user.company_id.sale_note + res['company_id'] = user.company_id.id else: try: product = ir_model_data.get_object(cr, uid, 'product', 'product_product_consultant') @@ -104,7 +115,7 @@ Example: Product: this product is deprecated, do not purchase more than 5. def set_sale_defaults(self, cr, uid, ids, context=None): ir_model_data = self.pool.get('ir.model.data') wizard = self.browse(cr, uid, ids)[0] - + if wizard.time_unit: try: product = ir_model_data.get_object(cr, uid, 'product', 'product_product_consultant') @@ -115,6 +126,10 @@ Example: Product: this product is deprecated, do not purchase more than 5. if wizard.module_project and wizard.time_unit: user = self.pool.get('res.users').browse(cr, uid, uid, context) user.company_id.write({'project_time_mode_id': wizard.time_unit.id}) + + if wizard.company_id: + self.pool.get('res.company').write(cr, uid, wizard.company_id.id, {'sale_note': wizard.sale_note}, context=context) + return {} def onchange_task_work(self, cr, uid, ids, task_work, context=None): diff --git a/addons/sale/res_config_view.xml b/addons/sale/res_config_view.xml index b150fb276b7..e3226a869bb 100644 --- a/addons/sale/res_config_view.xml +++ b/addons/sale/res_config_view.xml @@ -31,7 +31,24 @@ - + + + + +
diff --git a/addons/sale/sale.py b/addons/sale/sale.py index cddde4a5f08..23b05977e40 100644 --- a/addons/sale/sale.py +++ b/addons/sale/sale.py @@ -261,6 +261,7 @@ class sale_order(osv.osv): 'shop_id': _get_default_shop, 'partner_invoice_id': lambda self, cr, uid, context: context.get('partner_id', False) and self.pool.get('res.partner').address_get(cr, uid, [context['partner_id']], ['invoice'])['invoice'], 'partner_shipping_id': lambda self, cr, uid, context: context.get('partner_id', False) and self.pool.get('res.partner').address_get(cr, uid, [context['partner_id']], ['delivery'])['delivery'], + 'note': lambda self, cr, uid, context: self.pool.get('res.company').browse(cr, uid, uid, context=context).sale_note } _sql_constraints = [ ('name_uniq', 'unique(name, company_id)', 'Order Reference must be unique per Company!'), @@ -324,12 +325,16 @@ class sale_order(osv.osv): payment_term = part.property_payment_term and part.property_payment_term.id or False fiscal_position = part.property_account_position and part.property_account_position.id or False dedicated_salesman = part.user_id and part.user_id.id or uid + context_lang = context.copy() + context_lang.update({'lang': part.lang}) + company = self.pool.get('res.company').browse(cr, uid, uid, context=context_lang) val = { 'partner_invoice_id': addr['invoice'], 'partner_shipping_id': addr['delivery'], 'payment_term': payment_term, 'fiscal_position': fiscal_position, 'user_id': dedicated_salesman, + 'note': company.sale_note } if pricelist: val['pricelist_id'] = pricelist @@ -983,7 +988,12 @@ class sale_order_line(osv.osv): raise osv.except_osv(_('Invalid Action!'), _('Cannot delete a sales order line which is in state \'%s\'.') %(rec.state,)) return super(sale_order_line, self).unlink(cr, uid, ids, context=context) - +class res_company(osv.Model): + _inherit = "res.company" + _columns = { + 'sale_note': fields.text('sales_note', translate=True, placeholder="Terms & Conditions"), + } + class mail_compose_message(osv.Model): _inherit = 'mail.compose.message' From b8e5a3790d3c3db76402c6762bdc37c295306342 Mon Sep 17 00:00:00 2001 From: "Ajay Chauhan (OpenERP)" Date: Thu, 14 Feb 2013 11:03:52 +0530 Subject: [PATCH 2/6] [FIX] revert some changes bzr revid: cha@tinyerp.com-20130214053352-p7ed5meqs0o985d3 --- addons/sale/res_config.py | 15 --------------- addons/sale/res_config_view.xml | 17 ----------------- 2 files changed, 32 deletions(-) diff --git a/addons/sale/res_config.py b/addons/sale/res_config.py index 2a0c8761d0e..722f3e9265c 100644 --- a/addons/sale/res_config.py +++ b/addons/sale/res_config.py @@ -76,25 +76,14 @@ Example: Product: this product is deprecated, do not purchase more than 5. 'module_sale_stock': fields.boolean("Trigger delivery orders automatically from sales orders", help="""Allows you to Make Quotation, Sale Order using different Order policy and Manage Related Stock. This installs the module sale_stock."""), - 'sale_note': fields.text('Terms & Conditions', translate=True), - 'company_id': fields.many2one('res.company', 'Company', required=True), } - def onchange_company_id(self, cr, uid, ids, company_id): - res = {'value':{}} - if company_id: - company = self.pool.get('res.company').browse(cr, uid, company_id) - res['value'].update({'sale_note': company.sale_note}) - return res - def default_get(self, cr, uid, fields, context=None): ir_model_data = self.pool.get('ir.model.data') res = super(sale_configuration, self).default_get(cr, uid, fields, context) if res.get('module_project'): user = self.pool.get('res.users').browse(cr, uid, uid, context) res['time_unit'] = user.company_id.project_time_mode_id.id - res['sale_note'] = user.company_id.sale_note - res['company_id'] = user.company_id.id else: try: product = ir_model_data.get_object(cr, uid, 'product', 'product_product_consultant') @@ -126,10 +115,6 @@ Example: Product: this product is deprecated, do not purchase more than 5. if wizard.module_project and wizard.time_unit: user = self.pool.get('res.users').browse(cr, uid, uid, context) user.company_id.write({'project_time_mode_id': wizard.time_unit.id}) - - if wizard.company_id: - self.pool.get('res.company').write(cr, uid, wizard.company_id.id, {'sale_note': wizard.sale_note}, context=context) - return {} def onchange_task_work(self, cr, uid, ids, task_work, context=None): diff --git a/addons/sale/res_config_view.xml b/addons/sale/res_config_view.xml index e3226a869bb..f641a34edcc 100644 --- a/addons/sale/res_config_view.xml +++ b/addons/sale/res_config_view.xml @@ -32,23 +32,6 @@
- - - -
From 34946cf3feeb27c7bd6ce389051c88b424f0c9ef Mon Sep 17 00:00:00 2001 From: "Ajay Chauhan (OpenERP)" Date: Thu, 14 Feb 2013 15:07:38 +0530 Subject: [PATCH 3/6] [IMP] made sale condition based on shop's company bzr revid: cha@tinyerp.com-20130214093738-2r1wiw6zocozadae --- addons/sale/sale.py | 21 ++++++++++++++------- addons/sale/sale_view.xml | 16 ++++++++++++++-- addons/sale_stock/sale_stock_view.xml | 2 +- 3 files changed, 29 insertions(+), 10 deletions(-) diff --git a/addons/sale/sale.py b/addons/sale/sale.py index 643c14c8b31..25e93963508 100644 --- a/addons/sale/sale.py +++ b/addons/sale/sale.py @@ -56,7 +56,7 @@ class sale_order(osv.osv): }, } - def onchange_shop_id(self, cr, uid, ids, shop_id, context=None): + def onchange_shop_id(self, cr, uid, ids, shop_id, partner_id, context=None): v = {} if shop_id: shop = self.pool.get('sale.shop').browse(cr, uid, shop_id, context=context) @@ -64,6 +64,9 @@ class sale_order(osv.osv): v['project_id'] = shop.project_id.id if shop.pricelist_id.id: v['pricelist_id'] = shop.pricelist_id.id + partner = self.pool.get('res.partner').browse(cr, uid, partner_id, context=context) + sale_note = self.get_sale_note(cr, uid, ids, partner, shop_id, context=context) + v.update({'note': sale_note}) return {'value': v} def copy(self, cr, uid, id, default=None, context=None): @@ -311,7 +314,13 @@ class sale_order(osv.osv): } return {'warning': warning, 'value': value} - def onchange_partner_id(self, cr, uid, ids, part, context=None): + def get_sale_note(self, cr, uid, ids, part, shop_id, context=None): + context_lang = context.copy() + context_lang.update({'lang': part.lang}) + sale_note = self.pool.get('sale.shop').browse(cr, uid, shop_id, context=context_lang).company_id.sale_note + return sale_note + + def onchange_partner_id(self, cr, uid, ids, part, shop_id, context=None): if not part: return {'value': {'partner_invoice_id': False, 'partner_shipping_id': False, 'payment_term': False, 'fiscal_position': False}} @@ -325,19 +334,17 @@ class sale_order(osv.osv): payment_term = part.property_payment_term and part.property_payment_term.id or False fiscal_position = part.property_account_position and part.property_account_position.id or False dedicated_salesman = part.user_id and part.user_id.id or uid - context_lang = context.copy() - context_lang.update({'lang': part.lang}) - company = self.pool.get('res.company').browse(cr, uid, uid, context=context_lang) val = { 'partner_invoice_id': addr['invoice'], 'partner_shipping_id': addr['delivery'], 'payment_term': payment_term, 'fiscal_position': fiscal_position, 'user_id': dedicated_salesman, - 'note': company.sale_note } if pricelist: val['pricelist_id'] = pricelist + sale_note = self.get_sale_note(cr, uid, ids, part, shop_id, context=context) + val.update({'note': sale_note}) return {'value': val} def create(self, cr, uid, vals, context=None): @@ -986,7 +993,7 @@ class sale_order_line(osv.osv): class res_company(osv.Model): _inherit = "res.company" _columns = { - 'sale_note': fields.text('sales_note', translate=True, placeholder="Terms & Conditions"), + 'sale_note': fields.text('sales_note', translate=True), } class mail_compose_message(osv.Model): diff --git a/addons/sale/sale_view.xml b/addons/sale/sale_view.xml index 18fdb739923..1a88584c0e2 100644 --- a/addons/sale/sale_view.xml +++ b/addons/sale/sale_view.xml @@ -153,14 +153,14 @@ - + - + @@ -550,5 +550,17 @@ + + res.company.form.inherit + + res.company + + + + + + + + diff --git a/addons/sale_stock/sale_stock_view.xml b/addons/sale_stock/sale_stock_view.xml index bebb95f0088..b4bcf67281c 100644 --- a/addons/sale_stock/sale_stock_view.xml +++ b/addons/sale_stock/sale_stock_view.xml @@ -49,7 +49,7 @@ - + Date: Fri, 15 Feb 2013 14:14:28 +0530 Subject: [PATCH 4/6] [IMP] made changes in code bzr revid: cha@tinyerp.com-20130215084428-s1sxky78rk0tevak --- addons/sale/sale.py | 13 +++++++------ addons/sale/sale_view.xml | 4 ++-- addons/sale_stock/sale_stock_view.xml | 2 +- 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/addons/sale/sale.py b/addons/sale/sale.py index a9c12f7e388..a53d6d1fca6 100644 --- a/addons/sale/sale.py +++ b/addons/sale/sale.py @@ -56,7 +56,7 @@ class sale_order(osv.osv): }, } - def onchange_shop_id(self, cr, uid, ids, shop_id, partner_id, context=None): + def onchange_shop_id(self, cr, uid, ids, shop_id, context=None): v = {} if shop_id: shop = self.pool.get('sale.shop').browse(cr, uid, shop_id, context=context) @@ -64,9 +64,10 @@ class sale_order(osv.osv): v['project_id'] = shop.project_id.id if shop.pricelist_id.id: v['pricelist_id'] = shop.pricelist_id.id - partner = self.pool.get('res.partner').browse(cr, uid, partner_id, context=context) - sale_note = self.get_sale_note(cr, uid, ids, partner, shop_id, context=context) - v.update({'note': sale_note}) + if context['partner_id']: + partner = self.pool.get('res.partner').browse(cr, uid, context['partner_id'], context=context) + sale_note = self.get_sale_note(cr, uid, ids, partner, shop_id, context=context) + v.update({'note': sale_note}) return {'value': v} def copy(self, cr, uid, id, default=None, context=None): @@ -320,7 +321,7 @@ class sale_order(osv.osv): sale_note = self.pool.get('sale.shop').browse(cr, uid, shop_id, context=context_lang).company_id.sale_note return sale_note - def onchange_partner_id(self, cr, uid, ids, part, shop_id, context=None): + def onchange_partner_id(self, cr, uid, ids, part, context=None): if not part: return {'value': {'partner_invoice_id': False, 'partner_shipping_id': False, 'payment_term': False, 'fiscal_position': False}} @@ -343,7 +344,7 @@ class sale_order(osv.osv): } if pricelist: val['pricelist_id'] = pricelist - sale_note = self.get_sale_note(cr, uid, ids, part, shop_id, context=context) + sale_note = self.get_sale_note(cr, uid, ids, part, context['shop_id'], context=context) val.update({'note': sale_note}) return {'value': val} diff --git a/addons/sale/sale_view.xml b/addons/sale/sale_view.xml index 1a88584c0e2..57f4c0016af 100644 --- a/addons/sale/sale_view.xml +++ b/addons/sale/sale_view.xml @@ -153,14 +153,14 @@ - + - + diff --git a/addons/sale_stock/sale_stock_view.xml b/addons/sale_stock/sale_stock_view.xml index b4bcf67281c..4a7da0f3d53 100644 --- a/addons/sale_stock/sale_stock_view.xml +++ b/addons/sale_stock/sale_stock_view.xml @@ -49,7 +49,7 @@ - + Date: Fri, 15 Feb 2013 19:03:09 +0530 Subject: [PATCH 5/6] [IMP] made changes in code bzr revid: cha@tinyerp.com-20130215133309-0842owye7wersb0o --- addons/sale/sale.py | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/addons/sale/sale.py b/addons/sale/sale.py index a53d6d1fca6..d23c0ccedcd 100644 --- a/addons/sale/sale.py +++ b/addons/sale/sale.py @@ -64,9 +64,9 @@ class sale_order(osv.osv): v['project_id'] = shop.project_id.id if shop.pricelist_id.id: v['pricelist_id'] = shop.pricelist_id.id - if context['partner_id']: - partner = self.pool.get('res.partner').browse(cr, uid, context['partner_id'], context=context) - sale_note = self.get_sale_note(cr, uid, ids, partner, shop_id, context=context) + partner_id = context.get('partner_id',False) + if partner_id: + sale_note = self.get_salenote(cr, uid, ids, partner_id, shop_id, context=context) v.update({'note': sale_note}) return {'value': v} @@ -315,12 +315,15 @@ class sale_order(osv.osv): } return {'warning': warning, 'value': value} - def get_sale_note(self, cr, uid, ids, part, shop_id, context=None): - context_lang = context.copy() - context_lang.update({'lang': part.lang}) - sale_note = self.pool.get('sale.shop').browse(cr, uid, shop_id, context=context_lang).company_id.sale_note - return sale_note - + def get_salenote(self, cr, uid, ids, partner_id, shop_id, context=None): + context_lang = context.copy() + if partner_id: + partner_lang = self.pool.get('res.partner').browse(cr, uid, partner_id, context=context).lang + context_lang.update({'lang': partner_lang}) + if shop_id: + return self.pool.get('sale.shop').browse(cr, uid, shop_id, context=context_lang).company_id.sale_note + return self.pool.get('res.users').browse(cr, uid, uid, context=context).company_id.sale_note + def onchange_partner_id(self, cr, uid, ids, part, context=None): if not part: return {'value': {'partner_invoice_id': False, 'partner_shipping_id': False, 'payment_term': False, 'fiscal_position': False}} @@ -344,7 +347,8 @@ class sale_order(osv.osv): } if pricelist: val['pricelist_id'] = pricelist - sale_note = self.get_sale_note(cr, uid, ids, part, context['shop_id'], context=context) + shop_id = context.get('shop_id',False) + sale_note = self.get_salenote(cr, uid, ids, part.id, shop_id, context=context) val.update({'note': sale_note}) return {'value': val} From 5c202a8ba253e96ed05d72c430b5d6a37095db84 Mon Sep 17 00:00:00 2001 From: "Ajay Chauhan (OpenERP)" Date: Mon, 25 Feb 2013 14:32:36 +0530 Subject: [PATCH 6/6] [IMP] sale, sale_stock: remove shop_id concept from sale_condition feature bzr revid: cha@tinyerp.com-20130225090236-k9im6bebl5k5s0wa --- addons/sale/sale.py | 13 +++---------- addons/sale/sale_view.xml | 4 ++-- addons/sale_stock/sale_stock_view.xml | 2 +- 3 files changed, 6 insertions(+), 13 deletions(-) diff --git a/addons/sale/sale.py b/addons/sale/sale.py index d23c0ccedcd..6e9e5ebbf06 100644 --- a/addons/sale/sale.py +++ b/addons/sale/sale.py @@ -64,10 +64,6 @@ class sale_order(osv.osv): v['project_id'] = shop.project_id.id if shop.pricelist_id.id: v['pricelist_id'] = shop.pricelist_id.id - partner_id = context.get('partner_id',False) - if partner_id: - sale_note = self.get_salenote(cr, uid, ids, partner_id, shop_id, context=context) - v.update({'note': sale_note}) return {'value': v} def copy(self, cr, uid, id, default=None, context=None): @@ -315,14 +311,12 @@ class sale_order(osv.osv): } return {'warning': warning, 'value': value} - def get_salenote(self, cr, uid, ids, partner_id, shop_id, context=None): + def get_salenote(self, cr, uid, ids, partner_id, context=None): context_lang = context.copy() if partner_id: partner_lang = self.pool.get('res.partner').browse(cr, uid, partner_id, context=context).lang context_lang.update({'lang': partner_lang}) - if shop_id: - return self.pool.get('sale.shop').browse(cr, uid, shop_id, context=context_lang).company_id.sale_note - return self.pool.get('res.users').browse(cr, uid, uid, context=context).company_id.sale_note + return self.pool.get('res.users').browse(cr, uid, uid, context=context_lang).company_id.sale_note def onchange_partner_id(self, cr, uid, ids, part, context=None): if not part: @@ -347,8 +341,7 @@ class sale_order(osv.osv): } if pricelist: val['pricelist_id'] = pricelist - shop_id = context.get('shop_id',False) - sale_note = self.get_salenote(cr, uid, ids, part.id, shop_id, context=context) + sale_note = self.get_salenote(cr, uid, ids, part.id, context=context) val.update({'note': sale_note}) return {'value': val} diff --git a/addons/sale/sale_view.xml b/addons/sale/sale_view.xml index 27401fe4986..7fce9409500 100644 --- a/addons/sale/sale_view.xml +++ b/addons/sale/sale_view.xml @@ -153,14 +153,14 @@ - + - + diff --git a/addons/sale_stock/sale_stock_view.xml b/addons/sale_stock/sale_stock_view.xml index 4a7da0f3d53..bebb95f0088 100644 --- a/addons/sale_stock/sale_stock_view.xml +++ b/addons/sale_stock/sale_stock_view.xml @@ -49,7 +49,7 @@ - +