[FIX] contract: fix expired contracts reminder job to actually work

The API for sending emails has changed in 6.1, use the new one.
Also fix the expired contract filter to behave similarly to the
"Contracts To Renew" menu inside OpenERP.

bzr revid: odo@openerp.com-20120725160807-xzngv988dso9z6zj
This commit is contained in:
Olivier Dony
2012-07-25 18:08:07 +02:00
parent 1fbf7a3030
commit 6bdcc1760a
@@ -13,12 +13,12 @@ MAKO_TEMPLATE = u"""Hello ${user.name},
Here is a list of contracts that have to be renewed for two
possible reasons:
- the end of contract date is passed
- the customer consumed more hours than expected
- the end date of the contract is passed
- the customer consumed more hours than included in the contract
Can you contact the customer in order to sell a new or renew its contract.
The contract has been set with a pending state, can you update the status
of the analytic account following this rule:
Can you contact the customer in order to sell a new or renew their contract.
The contract has been set with a pending state, please update its status
following this rule:
- Set Done: if the customer does not want to renew
- Set Open: if the customer purchased an extra contract
@@ -39,7 +39,7 @@ Here is the list of contracts to renew:
% endfor
% endfor
You can use the report in the menu: Sales > Invoicing > Overdue Accounts
You can use the report in the menu: Sales > Invoicing > Contracts To Renew
Regards,
@@ -52,27 +52,26 @@ class analytic_account(osv.osv):
def cron_account_analytic_account(self, cr, uid, context=None):
domain = [
('name', 'not ilike', 'maintenance'),
('partner_id', '!=', False),
('user_id', '!=', False),
('user_id.user_email', '!=', False),
('state', 'in', ('draft', 'open')),
'|', ('date', '<', time.strftime('%Y-%m-%d')), ('date', '=', False),
'|', ('date', '<=', time.strftime('%Y-%m-%d')),
('is_overdue_quantity', '=', True),
]
users = {}
account_ids = self.search(cr, uid, domain, context=context, order='name asc')
accounts = self.browse(cr, uid, account_ids, context=context)
users = dict()
for account in accounts:
users.setdefault(account.user_id, dict()).setdefault(account.partner_id, []).append(account)
account.write({'state' : 'pending'}, context=context)
account.write({'state' : 'pending'})
if account.user_id:
users.setdefault(account.user_id, {}).setdefault(account.partner_id, []).append(account)
mail_message = self.pool.get('mail.message')
for user, data in users.iteritems():
subject = '[OPENERP] Reporting: Analytic Accounts'
body = Template(MAKO_TEMPLATE).render_unicode(user=user, partners=data)
tools.email_send('noreply@openerp.com', [user.user_email, ], subject, body)
if user.user_email:
mail_message.schedule_with_attach(cr, uid, 'noreply@openerp.com', [user.user_email],
subject, body)
return True