From 61639fd4913c9554664c39172fbf60e7e3c9d7c0 Mon Sep 17 00:00:00 2001 From: "ajay javiya (OpenERP)" Date: Mon, 3 Dec 2012 18:57:13 +0530 Subject: [PATCH 001/186] [FIX]:Issue of add custome field on object bzr revid: aja@tinyerp.com-20121203132713-298spxst191htlh7 --- openerp/osv/orm.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openerp/osv/orm.py b/openerp/osv/orm.py index 3b9b8f30d23..095e6b6f6c0 100644 --- a/openerp/osv/orm.py +++ b/openerp/osv/orm.py @@ -1068,7 +1068,7 @@ class BaseModel(object): # Validate rec_name if self._rec_name is not None: - assert self._rec_name in self._columns.keys() + ['id'], "Invalid rec_name %s for model %s" % (self._rec_name, self._name) + assert self._rec_name in self._all_columns.keys() + ['id'], "Invalid rec_name %s for model %s" % (self._rec_name, self._name) else: self._rec_name = 'name' From 96d50a9a40d77680ffbd1719385e33757c89f725 Mon Sep 17 00:00:00 2001 From: Josse Colpaert Date: Mon, 10 Dec 2012 15:16:02 +0100 Subject: [PATCH 002/186] [FIX] added period_id field to account_voucher dialog lp bug: https://launchpad.net/bugs/1062621 fixed bzr revid: jco@openerp.com-20121210141602-z7sa9lou4vkuczw3 --- addons/account_voucher/voucher_payment_receipt_view.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/addons/account_voucher/voucher_payment_receipt_view.xml b/addons/account_voucher/voucher_payment_receipt_view.xml index b6f367601ff..0f923bcd1f4 100644 --- a/addons/account_voucher/voucher_payment_receipt_view.xml +++ b/addons/account_voucher/voucher_payment_receipt_view.xml @@ -305,6 +305,7 @@ widget="selection" on_change="onchange_journal(journal_id, line_cr_ids, False, partner_id, date, amount, type, company_id, context)" string="Payment Method"/> + From dc47ad6c737e386d9ad163cb0cb39c6fe0c02724 Mon Sep 17 00:00:00 2001 From: Josse Colpaert Date: Wed, 19 Dec 2012 10:22:35 +0100 Subject: [PATCH 003/186] [FIX] Added onchange_company for gain and loss accounts in config settings lp bug: https://launchpad.net/bugs/1076509 fixed bzr revid: jco@openerp.com-20121219092235-wci6jo81q2ihgpgd --- addons/account_voucher/account_voucher.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/addons/account_voucher/account_voucher.py b/addons/account_voucher/account_voucher.py index 41d3476442e..59399a766d5 100644 --- a/addons/account_voucher/account_voucher.py +++ b/addons/account_voucher/account_voucher.py @@ -56,6 +56,13 @@ class account_config_settings(osv.osv_memory): relation='account.account', string="Loss Exchange Rate Account"), } + def onchange_company_id(self, cr, uid, ids, company_id): + res = super(account_config_settings, self).onchange_company_id(cr, uid, ids, company_id) + if company_id: + company = self.pool.get('res.company').browse(cr, uid, company_id) + res['value'].update({'income_currency_exchange_account_id': company.income_currency_exchange_account_id and company.income_currency_exchange_account_id.id, + 'expense_currency_exchange_account_id': company.expense_currency_exchange_account_id and company.expense_currency_exchange_account_id.id}) + return res class account_voucher(osv.osv): def _check_paid(self, cr, uid, ids, name, args, context=None): From a02e894bfcad34945bceaf2a2ef97251555f2d78 Mon Sep 17 00:00:00 2001 From: Josse Colpaert Date: Wed, 19 Dec 2012 12:55:17 +0100 Subject: [PATCH 004/186] [FIX] Correction when no account or no company bzr revid: jco@openerp.com-20121219115517-uj3t8embox155kty --- addons/account_voucher/account_voucher.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/addons/account_voucher/account_voucher.py b/addons/account_voucher/account_voucher.py index 59399a766d5..609a19661c0 100644 --- a/addons/account_voucher/account_voucher.py +++ b/addons/account_voucher/account_voucher.py @@ -49,19 +49,24 @@ class account_config_settings(osv.osv_memory): 'company_id', 'income_currency_exchange_account_id', type='many2one', relation='account.account', - string="Gain Exchange Rate Account"), + string="Gain Exchange Rate Account", + domain="[('type', '=', 'other')]"), 'expense_currency_exchange_account_id': fields.related( 'company_id', 'expense_currency_exchange_account_id', type="many2one", relation='account.account', - string="Loss Exchange Rate Account"), + string="Loss Exchange Rate Account", + domain="[('type', '=', 'other')]"), } def onchange_company_id(self, cr, uid, ids, company_id): res = super(account_config_settings, self).onchange_company_id(cr, uid, ids, company_id) if company_id: company = self.pool.get('res.company').browse(cr, uid, company_id) - res['value'].update({'income_currency_exchange_account_id': company.income_currency_exchange_account_id and company.income_currency_exchange_account_id.id, - 'expense_currency_exchange_account_id': company.expense_currency_exchange_account_id and company.expense_currency_exchange_account_id.id}) + res['value'].update({'income_currency_exchange_account_id': company.income_currency_exchange_account_id and company.income_currency_exchange_account_id.id or False, + 'expense_currency_exchange_account_id': company.expense_currency_exchange_account_id and company.expense_currency_exchange_account_id.id or False}) + else: + res['value'].update({'income_currency_exchange_account_id': False, + 'expense_currency_exchange_account_id': False}) return res class account_voucher(osv.osv): From dba6e07ecdf8ed61316bdc1f4c4af36e489a95be Mon Sep 17 00:00:00 2001 From: Josse Colpaert Date: Fri, 21 Dec 2012 10:41:47 +0100 Subject: [PATCH 005/186] [FIX] Will take into account the type of the invoice for the default account in the invoice line lp bug: https://launchpad.net/bugs/1084819 fixed bzr revid: jco@openerp.com-20121221094147-mp7dhttfob7y2xis --- addons/account/account_invoice.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/addons/account/account_invoice.py b/addons/account/account_invoice.py index 02903ea8f33..e836e28d6c6 100644 --- a/addons/account/account_invoice.py +++ b/addons/account/account_invoice.py @@ -1393,8 +1393,13 @@ class account_invoice_line(osv.osv): def _default_account_id(self, cr, uid, context=None): # XXX this gets the default account for the user's company, # it should get the default account for the invoice's company - # however, the invoice's company does not reach this point - prop = self.pool.get('ir.property').get(cr, uid, 'property_account_income_categ', 'product.category', context=context) + # however, the invoice's company does not reach this point (but will throw error on validation) + if context is None: + context = {} + if context.get('type') in ('out_invoice','out_refund'): + prop = self.pool.get('ir.property').get(cr, uid, 'property_account_income_categ', 'product.category', context=context) + else: + prop = self.pool.get('ir.property').get(cr, uid, 'property_account_expense_categ', 'product.category', context=context) return prop and prop.id or False _defaults = { From 0a6f2417e797e7ade9699d4638f2786f581c6e9f Mon Sep 17 00:00:00 2001 From: Josse Colpaert Date: Fri, 21 Dec 2012 14:49:56 +0100 Subject: [PATCH 006/186] [FIX] Changes the period used into the period chosen and not the period of today lp bug: https://launchpad.net/bugs/1078004 fixed bzr revid: jco@openerp.com-20121221134956-fgg1ltu1qy1j2ion --- addons/account_asset/account_asset.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/addons/account_asset/account_asset.py b/addons/account_asset/account_asset.py index b7330352b12..b335063b758 100644 --- a/addons/account_asset/account_asset.py +++ b/addons/account_asset/account_asset.py @@ -331,6 +331,9 @@ class account_asset_asset(osv.osv): depreciation_obj = self.pool.get('account.asset.depreciation.line') period = period_obj.browse(cr, uid, period_id, context=context) depreciation_ids = depreciation_obj.search(cr, uid, [('asset_id', 'in', ids), ('depreciation_date', '<=', period.date_stop), ('depreciation_date', '>=', period.date_start), ('move_check', '=', False)], context=context) + if context is None: + context = {} + context.update({'depreciation_date':period.date_stop}) return depreciation_obj.create_move(cr, uid, depreciation_ids, context=context) def create(self, cr, uid, vals, context=None): @@ -388,7 +391,7 @@ class account_asset_depreciation_line(osv.osv): created_move_ids = [] asset_ids = [] for line in self.browse(cr, uid, ids, context=context): - depreciation_date = time.strftime('%Y-%m-%d') + depreciation_date = context.get('depreciation_date') or time.strftime('%Y-%m-%d') period_ids = period_obj.find(cr, uid, depreciation_date, context=context) company_currency = line.asset_id.company_id.currency_id.id current_currency = line.asset_id.currency_id.id From 0e3308ef927496546141a259d9aa1835599a36c3 Mon Sep 17 00:00:00 2001 From: Josse Colpaert Date: Thu, 17 Jan 2013 17:31:59 +0100 Subject: [PATCH 007/186] [IMP] Add field for not sending emails bzr revid: jco@openerp.com-20130117163159-ceqq1ewf55go05ua --- addons/account_followup/account_followup.py | 37 +++++++++++++------ .../account_followup_customers.xml | 22 +++++++++-- .../wizard/account_followup_print.py | 2 +- 3 files changed, 45 insertions(+), 16 deletions(-) diff --git a/addons/account_followup/account_followup.py b/addons/account_followup/account_followup.py index 285a3529ee7..6ea90f5c204 100644 --- a/addons/account_followup/account_followup.py +++ b/addons/account_followup/account_followup.py @@ -208,12 +208,13 @@ class res_partner(osv.osv): for partner in self.browse(cr, uid, partner_ids, context=ctx): if partner.email and partner.email.strip(): level = partner.latest_followup_level_id_without_lit - if level and level.send_email and level.email_template_id and level.email_template_id.id: - mtp.send_mail(cr, uid, level.email_template_id.id, partner.id, context=ctx) - else: - mail_template_id = self.pool.get('ir.model.data').get_object_reference(cr, uid, - 'account_followup', 'email_template_account_followup_default') - mtp.send_mail(cr, uid, mail_template_id[1], partner.id, context=ctx) + if not partner.payment_no_email: + if level and level.send_email and level.email_template_id and level.email_template_id.id: + mtp.send_mail(cr, uid, level.email_template_id.id, partner.id, context=ctx) + else: + mail_template_id = self.pool.get('ir.model.data').get_object_reference(cr, uid, + 'account_followup', 'email_template_account_followup_default') + mtp.send_mail(cr, uid, mail_template_id[1], partner.id, context=ctx) else: unknown_mails = unknown_mails + 1 action_text = _("Email not sent because of email address of partner not filled in") @@ -275,8 +276,17 @@ class res_partner(osv.osv):
Amount due: %s
''' % (total) return followup_table + def write(self, cr, uid, ids, vals, context=None): + if vals.get("payment_responsible_id", False): + for part in self.browse(cr, uid, ids, context=context): + if part.payment_responsible_id <> vals["payment_responsible_id"]: + pass + #message_post() + res = super(res_partner, self).write(cr, uid, ids, vals, context=context) + return res + def action_done(self, cr, uid, ids, context=None): - return self.write(cr, uid, ids, {'payment_next_action_date': False, 'payment_next_action':'', 'payment_responsible_id': False}, context=context) + return self.write(cr, uid, ids, {'payment_next_action_date': False, 'payment_next_action':'', 'payment_responsible_id': False, 'payment_no_email': False}, context=context) def do_button_print(self, cr, uid, ids, context=None): assert(len(ids) == 1) @@ -408,13 +418,18 @@ class res_partner(osv.osv): _inherit = "res.partner" _columns = { 'payment_responsible_id':fields.many2one('res.users', ondelete='set null', string='Follow-up Responsible', - help="Optionally you can assign a user to this field, which will make him responsible for the action."), - 'payment_note':fields.text('Customer Payment Promise', help="Payment Note"), + help="Optionally you can assign a user to this field, which will make him responsible for the action.", + track_visibility="onchange"), + 'payment_note':fields.text('Customer Payment Promise', help="Payment Note", track_visibility="onchange"), 'payment_next_action':fields.text('Next Action', - help="This is the next action to be taken. It will automatically be set when the partner gets a follow-up level that requires a manual action. "), + help="This is the next action to be taken. It will automatically be set when the partner gets a follow-up level that requires a manual action. ", + track_visibility="onchange"), 'payment_next_action_date':fields.date('Next Action Date', help="This is when the manual follow-up is needed. " \ - "The date will be set to the current date when the partner gets a follow-up level that requires a manual action. Can be practical to set manually e.g. to see if he keeps his promises."), + "The date will be set to the current date when the partner gets a follow-up level that requires a manual action. "\ + "Can be practical to set manually e.g. to see if he keeps his promises."), + 'payment_no_email':fields.boolean('Don\'t send follow-up emails meanwhile', help='When checked, the follow-up wizard will go to the next level,'\ + ' print letters and set manual actions, but mails will not be sent. Follow-up will happen by doing manual actions. '), 'unreconciled_aml_ids':fields.one2many('account.move.line', 'partner_id', domain=['&', ('reconcile_id', '=', False), '&', ('account_id.active','=', True), '&', ('account_id.type', '=', 'receivable'), ('state', '!=', 'draft')]), 'latest_followup_date':fields.function(_get_latest, method=True, type='date', string="Latest Follow-up Date", diff --git a/addons/account_followup/account_followup_customers.xml b/addons/account_followup/account_followup_customers.xml index 8a27730b003..ca1c509be39 100644 --- a/addons/account_followup/account_followup_customers.xml +++ b/addons/account_followup/account_followup_customers.xml @@ -35,10 +35,10 @@ - +
- +
@@ -81,10 +81,12 @@