I have a report in account.invoice which have a wizard of model invoice.details.
While the report is printed I need to automatically attach the file to the attachment drop down of corresponding invoice.
How is this possible? Anyone have idea?
Odoo is the world's easiest all-in-one management software.
It includes hundreds of business apps:
I have a report in account.invoice which have a wizard of model invoice.details.
While the report is printed I need to automatically attach the file to the attachment drop down of corresponding invoice.
How is this possible? Anyone have idea?
Hi,
For the reports to save in the attachments button in the top of the form view, add a attachments in the report tag you have given for the report.
<report
string="Request for Quotation"
id="report_purchase_quotation"
model="purchase.order"
report_type="qweb-pdf"
name="purchase.report_purchasequotation"
file="purchase.report_purchasequotation"
attachment="(object.name + '_test_report.pdf')"/>/>
Normally this will save the downloaded reports to the attachments button, see Quotation /Order in sales.
For attachments button to visible in all view, install the module document(technical name)
Check whether it will work in your case.
This is a sample code for creating an attachment and it will show in attachment button in top of the form too
attachment_model = request.env['ir.attachment']
byte_str = kw['attachments[4]'].read()
uploaded_file = base64.encodestring(byte_str)
vals = {
'name': kw['attachments[4]'].filename,
'res_model': model_name,
'res_id': new_record.id,
'datas': uploaded_file}
attachments_record = attachment_model.sudo().create(vals)
Thanks
I have tried this and didn't worked. I have to do it from the code
just updated the answer, check it can help you or not
I have tried the code below. I get error showing 'my.model' object has no attribute 'custom_name'.
I am calling this function from print function in my wizard and my wizard have field 'custom_name'. Wizard is called from 'my.model' form view.
def attach_report(self):
attachment_obj = self.env['ir.attachment']
for record in self:
ir_actions_report = self.env['ir.actions.report.xml']
matching_reports = ir_actions_report.search([('report_name','=','module_name.report_template')])
if matching_reports:
report = matching_reports[0]
report_service = report.report_name
result, format = odoo_report.render_report(self._cr, self._uid, [record.id], report_service, {'model': self._name}, self._context)
eval_context = {'time': time, 'object': record}
if not report.attachment or not eval(report.attachment, eval_context):
# no auto-saving of report as attachment, need to do it manually
result = base64.b64encode(result)
file_name = re.sub(r'[^a-zA-Z0-9_-]', '_', "Report Name Here")
file_name += ".pdf"
attachment_id = attachment_obj.create({
'name': file_name,
'datas': result,
'datas_fname': file_name,
'res_model': 'my.model',
'res_id': self._context.get('active_id', False),
'type': 'binary'
})
return True
I know how to use this. But it is attaching to the model of wizard. I want it to attach to the corresponding record from which the report is called.
<report
string="Request for Quotation"
id="report_purchase_quotation"
model="purchase.order"
report_type="qweb-pdf"
name="purchase.report_purchasequotation"
file="purchase.report_purchasequotation"
attachment="(object.name + '_test_report.pdf')"/>/>
how to attach a pdf file to a report?
i just want to add spec sheet of a product to the product report
Create an account today to enjoy exclusive features and engage with our awesome community!
Sign upRelated Posts | Replies | Views | Activity | |
---|---|---|---|---|
|
0
Jan 19
|
1899 | ||
|
0
Nov 18
|
2166 | ||
|
4
Aug 18
|
7315 | ||
|
1
Nov 17
|
8508 | ||
|
6
Dec 23
|
18632 |