Skip to Content
Menu
You need to be registered to interact with the community.
This question has been flagged
5 Odgovori
5495 Prikazi

I need help about report from wizard in odoo 11.

In form wizard Includes three fields: date_start , date_end , partner_id.

I want name partner selected in wizard form display in report pdf. but in report displayed In the form of res.partner(9,).

python code:


from datetime import datetime, timedelta

from odoo import models, fields, api, _
from odoo.tools import DEFAULT_SERVER_DATE_FORMAT as DATE_FORMAT, DEFAULT_SERVER_DATETIME_FORMAT as DATETIME_FORMAT
import re
import datetime



class ExpertRecapReportWizard(models.TransientModel):
_name = 'expert.recap.report.wizard'

partner_id = fields.Many2one('res.partner')
date_start = fields.Date(string="Start Date", required=True, default=fields.Date.today)
date_end = fields.Date(string="End Date", required=True, default=fields.Date.today)


@api.multi
def get_report(self):
data = {
'ids': self.ids,
'model': self._name,
'form': {
'date_start': self.date_start,
'date_end': self.date_end,
'partner_id': self.partner_id,
},
}

return self.env.ref('custom_report_expert.recap_report_expert').report_action(self, data=data)


class ReportexpertRecap(models.Model):
_name = 'report.custom_report_expert.product_recap_report_view'

def _get_idexpert(self,partner_id):

sql = """ select name from res_partner
where id=%s """ %(partner_id)
self.env.cr.execute(sql)
return self.env.cr.dictfetchone()


@api.model
def get_report_values(self, docids, data=None):

date_start = data['form']['date_start']
date_end = data['form']['date_end']
partner_id = data['form']['partner_id']
docs = []

return {
'doc_ids': partner_id,
'doc_model': self.env['res.partner'],
'data': data,
'date_start': date_start,
'date_end': date_end,
'partner_id': partner_id,
'get_idexpert': self._get_idexpert,
}

in template xml:


<span t-esc="get_idexpert(partner_id)"/>


output in report: res.partner(9,)

please help me.


Avatar
Opusti
Avtor

Hi Akshay, <span t-esc="get_idexpert(partner_id).name"/> has error:

Error to render compiling AST

ProgrammingError: syntax error at or near ")"

LINE 2: where id=res.partner(9,)

try to display directly like <span t-esc="partner_id.name"/>

Best Answer

Just write as following :

<span t-esc="partner_id.name"/>

Avatar
Opusti
Best Answer

Hi,

Update this,

@api.multi
def get_report(self):
data = {
'ids': self.ids,
'model': self._name,
'form': {
'date_start': self.date_start,
'date_end': self.date_end,
'partner_id': self.partner_id.name,
},
}

Thanks

Avatar
Opusti
Best Answer

Try <span t-esc="get_idexpert(partner_id).name"/>

Avatar
Opusti