[IMP] Solved error printing tuple many2one

bzr revid: jco@openerp.com-20121026151125-utppa71g4a5a53c5
This commit is contained in:
Josse Colpaert 2012-10-26 17:11:25 +02:00
parent 1453d24688
commit 81a802b22b
4 changed files with 24 additions and 17 deletions

View File

@ -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)

View File

@ -10,11 +10,12 @@
<field name="email_from">${object.user_id.email or ''}</field>
<field name="subject">${object.company_id.name} Followup</field>
<field name="email_to">${object.email}</field>
<field name="lang">${object.lang}</field>
<field name="model_id" ref="base.model_res_partner"/>
<field name="auto_delete" eval="True"/>
<field name="body_html"><![CDATA[
<div style="font-family: 'Lucica Grande', Ubuntu, Arial, Verdana, sans-serif; font-size: 12px; color: rgb(34, 34, 34); background-color: rgb(255, 255, 255); ">
TYPE HERE THE MAIL CONTENT YOU WANT
${object.latest_followup_level_id.description}
<p>Hello${object.partner_id.name and ' ' or ''}${object.partner_id.name or ''},</p>
<p>Here is your ${object.state in ('draft', 'sent') and 'quotation' or 'order confirmation'} from ${object.company_id.name}: </p>

View File

@ -30,6 +30,7 @@
<field name="send_email"/>
<field name="send_letter"/>
<field name="phonecall"/>
<field name="email_template_id"/>
</group>
<separator string="Message"/>
<field name="description"/>

View File

@ -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