From 81a802b22bad49857ee98097fb9a6798ef69980f Mon Sep 17 00:00:00 2001 From: Josse Colpaert Date: Fri, 26 Oct 2012 17:11:25 +0200 Subject: [PATCH] [IMP] Solved error printing tuple many2one bzr revid: jco@openerp.com-20121026151125-utppa71g4a5a53c5 --- addons/account_followup/account_followup.py | 33 ++++++++++--------- .../account_followup_data.xml | 3 +- .../account_followup_view.xml | 1 + .../wizard/account_followup_print.py | 4 ++- 4 files changed, 24 insertions(+), 17 deletions(-) diff --git a/addons/account_followup/account_followup.py b/addons/account_followup/account_followup.py index 25338677c6d..14362eca733 100644 --- a/addons/account_followup/account_followup.py +++ b/addons/account_followup/account_followup.py @@ -21,6 +21,7 @@ from osv import fields, osv from datetime import date +import time class followup(osv.osv): _name = 'account_followup.followup' @@ -50,6 +51,7 @@ class followup_line(osv.osv): 'send_email':fields.boolean('Send email', help="When processing, it will send an email"), 'send_letter':fields.boolean('Print email'), 'phonecall':fields.boolean('Phone call'), + 'email_template_id':fields.many2one('email.template', 'Email template', required = False, ondelete='set null') } _defaults = { 'start': 'days', @@ -143,12 +145,11 @@ class res_partner(osv.osv): for partner in self.browse(cr, uid, ids): amls = partner.accountmoveline_ids level_id = 0 - level_days = -1000 #TO BE IMPROVED with boolean checking first time or by using MAX + level_days = False #TO BE IMPROVED with boolean checking first time or by using MAX latest_level = False res[partner.id] = False - for accountmoveline in amls: - if (accountmoveline.followup_line_id != False) and (level_days < accountmoveline.followup_line_id.delay): + if (accountmoveline.followup_line_id != False) and (not level_days or level_days < accountmoveline.followup_line_id.delay): # and (accountmoveline.debit > 0): (accountmoveline.state != "draft") and #and (accountmoveline.reconcile_id == None) level_days = accountmoveline.followup_line_id.delay @@ -177,9 +178,9 @@ class res_partner(osv.osv): old_delay = latest.delay else: old_delay = False - - for fl in self.pool.get('account_followup.followup.line').search(cr, uid, []): #('followup_id.company_id','=',latest.followup_id.company_id) - fl_obj = self.pool.get('account_followup.followup.line').browse(cr, uid, [fl])[0] + fl_ar = self.pool.get('account_followup.followup.line').search(cr, uid, [('followup_id.company_id.id','=', partner.company_id.id)]) + + for fl_obj in self.pool.get('account_followup.followup.line').browse(cr, uid, fl_ar): if not old_delay: if not delay or fl_obj.delay < delay: delay = fl_obj.delay @@ -193,19 +194,18 @@ class res_partner(osv.osv): return res - def do_partner_phonecall(self, cr, uid, partner_ids, context=None): + def do_partner_phonecall(self, cr, uid, partner_ids, context=None): #partners = self.browse(cr, uid, partner_ids, context) - print partner_ids - #for partner in self.browse(cr, uid, partner_ids, context): - # print partner.is_company - self.write(cr, uid, partner_ids, {'payment_note': 'Phone...'}, context) + #print partner_ids + self.write(cr, uid, partner_ids, {'payment_next_date': fields.date.context_today(cr, uid, context), 'payment_next_action':'Phony'}, context) + + def do_partner_print(self, cr, uid, partner_ids, data, context=None): #data.update({'date': context['date']}) if not partner_ids: return {} data['partner_ids'] = partner_ids - print data datas = { 'ids': [], 'model': 'account_followup.followup', @@ -229,9 +229,12 @@ class res_partner(osv.osv): #mtp.email_from = user_obj.browse(cr, uid, uid, context=context) for partner in self.browse(cr, uid, partner_ids, context): pass - # mtp.send_mail(cr, uid, partner.id, mail_template_id, context=context) - - + #Get max level of ids +# if partner.latest_followup_level_id.email_template_id != False: +# mtp.send_mail(cr, uid, partner.id, partner.latest_followup_level_id.email_template_id.id, context=context) +# else: +# mtp.send_mail(cr, uid, partner.id, mail_template_id.id, context=context) + #complete the mail body with partner information #(to be discussed with fp) attach the report to the mail or include the move lines in the mail body #send the mail (need to check the function name) diff --git a/addons/account_followup/account_followup_data.xml b/addons/account_followup/account_followup_data.xml index a14f32b2747..05df2b9a179 100644 --- a/addons/account_followup/account_followup_data.xml +++ b/addons/account_followup/account_followup_data.xml @@ -10,11 +10,12 @@ ${object.user_id.email or ''} ${object.company_id.name} Followup ${object.email} + ${object.lang} -TYPE HERE THE MAIL CONTENT YOU WANT + ${object.latest_followup_level_id.description}

Hello${object.partner_id.name and ' ' or ''}${object.partner_id.name or ''},

Here is your ${object.state in ('draft', 'sent') and 'quotation' or 'order confirmation'} from ${object.company_id.name}:

diff --git a/addons/account_followup/account_followup_view.xml b/addons/account_followup/account_followup_view.xml index f15395d1c33..1a080d71b45 100644 --- a/addons/account_followup/account_followup_view.xml +++ b/addons/account_followup/account_followup_view.xml @@ -30,6 +30,7 @@ + diff --git a/addons/account_followup/wizard/account_followup_print.py b/addons/account_followup/wizard/account_followup_print.py index a0ecd86ce45..f926c1f1b16 100644 --- a/addons/account_followup/wizard/account_followup_print.py +++ b/addons/account_followup/wizard/account_followup_print.py @@ -80,7 +80,7 @@ class account_followup_print(osv.osv_memory): 'date': fields.date('Follow-up Sending Date', required=True, help="This field allow you to select a forecast date to plan your follow-ups"), 'followup_id': fields.many2one('account_followup.followup', 'Follow-Up', required=True, readonly = True), 'partner_ids': fields.many2many('account_followup.stat.by.partner', 'partner_stat_rel', 'osv_memory_id', 'partner_id', 'Partners', required=True), - 'company_id':fields.related('followup_id', 'company_id', type='many2one', relation='res.company'), + 'company_id':fields.related('followup_id', 'company_id', type='many2one', relation='res.company', store=True, readonly=True), 'email_conf': fields.boolean('Send Email Confirmation'), 'email_subject': fields.char('Email Subject', size=64), 'partner_lang': fields.boolean('Send Email in Partner Language', help='Do not change message text, if you want to send email in partner language, or configure from company'), @@ -132,6 +132,7 @@ class account_followup_print(osv.osv_memory): partner_obj.do_partner_mail(cr, uid, [partner.partner_id.id], context) if partner.max_followup_id.send_letter: partner_ids_to_print.append(partner.id) + action = partner_obj.do_partner_print(cr, uid, partner_ids_to_print, data, context) return action or {} @@ -154,6 +155,7 @@ class account_followup_print(osv.osv_memory): to_update = tmp['to_update'] date = self.browse(cr, uid, ids, context)[0].date data = self.read(cr, uid, ids, [], context)[0] + data['followup_id'] = data['followup_id'][0] self.do_update_followup_level(cr, uid, to_update, partner_list, date, context=context) res = self.process_partners(cr, uid, partner_list, data, context=context) return res