From efdb5373c31a82af3be3157b05c4e33fe647642f Mon Sep 17 00:00:00 2001 From: Ravi Patel <rap@odoo.com> Date: Fri, 22 Jul 2016 11:21:35 +0530 Subject: [PATCH] [IMP] *: Define pdf report name according to the business case Purpose: When downloading a document, the name by default is not clear at all because by default, the printed report name is empty. Specification: Change the Printed Report Name. In most of the cases, it should be the name of the object + the number. For the following reports : - BOM Structure ==> BOM-product_variant_name ===> 'BOM'+'-'+(object.product_id.name) - BOM Cost ==> BOM Cost-product_variant_name ===> 'BOM Cost'+'-'+(object.product_id.name) - Call for Tenders ==>Tender-TE00001 ===> 'Tender'+'-'+(object.name) - Delivery Slip ==> Delivery Slip-Customer Name-Picking Number ===> 'Delivery Slip'+'-'+(object.partner_id.name)+'-'+(object.name) - Expenses Report ==> Expenses-Employee Name-Travel By Air ===> 'Expenses'+'-'+(object.employee_id.name)+'-'+(object.name) - Inventory ===> Inventory-Starting Inventory ====> 'Inventory'+'-'+(object.name) - Invoice (pos.order)===> Invoice-Main-0002 ===> 'Invoice'+'-'+(object.name) - Invoices (account.invoice): ===> Invoice-INV-2016-0019 ====> ((object.type == 'out_invoice') and (object.state == 'open' or object.state == 'paid')) ===> 'Invoice'+'-'+(object.number) ===> Vendor Bill-BILL-2016-003 ===> (object.type == 'in_invoice') ===> 'Vendor Bill'+'-'+(object.number) - Location Barcode ===> Order Processing-Location ===> (object.name)+'-'+'Location' - Lot Barcode ===> Lot/Serial-0000018 ===> 'Lot/Serial'+'-'+(object.name) - Payslip ===> Employee Name-Payslip ===> (object.employee_id.name)+'-'+'Payslip' - Print Batch Deposit ===> Bank- DEPOSIT/2016/0001 ===> (object.journal_id.name)+'-'+(object.name) - Print Check (Top) ==> check_Partner name_Draft Payment_top ===> 'check_'+(object.partner_id.name)+'_'+(object.name)+'_top' - Print Check (middle) ==> check_Partner name_Draft Payment_middle ===> 'check_'+(object.partner_id.name)+'_'+(object.name)+'_middle' - Print Check (Bottom) ==> check_Partner name_Draft Payment_bottom ====> 'check_'+(object.partner_id.name)+'_'+(object.name)+'_bottom' - Production Order ==> Production Order-MO-00006 ====> 'Production Order'+'-'+(object.name) - Quotation / Order (sale.order): ==> Order-S00001 ===> (object.state not in ('draft', 'sent'))==> 'Order'+'-'+(object.name) ==> Quotation-S00002 ====> (object.state in ('draft','sent'))===> 'Quotation'+'-'+(object.name) - Quotation / Order (mrp.repair): ==> Repair Order-RMA00005 ===> (object.state != 'draft') ===> 'Repair Order'+'-'+(object.name) ==> Repair Ouotation-RMA00005 ===> (object.state == 'draft') ===> 'Repair Quotation'+'-'+(object.name) - Registration Badge ===> Registration Event-Attendee Name ====> 'Registration Event'+'-'+(object.name) - Web Quotation(sale.order): ==> Order-S00001 ===> (object.state not in ('draft', 'sent')) ===> 'Order'+'-'+(object.name) ==> Quotation-S00002 ====> (object.state in ('draft','sent')) ===> 'Quotation'+'-'+(object.name) - Payslip Details: ===> Payslip Name ===>(object.name) - Purchase Order: ===> Purchase Order-PO0012 ===>(object.state != 'draft') ===> 'Purchase Order'+'-'+(object.name) ===> Request for Quotation-PO0012 ===> (object.state == 'draft') ===> 'Request for Quotation'+'-'+(object.name) - Request for Quotation:===> Request for Quotation-PO0012 ===> 'Request for Quotation'+'-'+(object.name) - Due Payments ===> Due Payments-Partner Name ====> 'Due Payments'+'-'+(object.name) - Products Labels ===> Products Labels-Product Name ===> 'Products Labels'+'-'+(object.name) - Picking Operations ===> Picking Operations-Customer Name-Picking Number ===> 'Picking Operations'+'-'+(object.partner_id.name)+'-'+(object.name) - Duplicates Invoices (account.invoice): ===> Duplicate Invoice-INV-2016-0019 ====> ((object.type == 'out_invoice') and (object.state == 'open' or object.state == 'paid')) ===> 'Duplicate Invoice'+'-'+(object.number) ===> Duplicate Vendor Bill-BILL-2016-003 ===> (object.type == 'in_invoice') ===> 'Duplicate Vendor Bill'+'-'+(object.number) - Intrastat Invoices (account.invoice): ===> Intrastat Invoice-INV-2016-0019 ====> ((object.type == 'out_invoice') and (object.state == 'open' or object.state == 'paid')) ===> 'Intrastat Invoice'+'-'+(object.number) ===> Intrastat Vendor Bill-BILL-2016-003 ===> (object.type == 'in_invoice') ===> 'Intrastat Vendor Bill'+'-'+(object.number) - Cost Structure Analysis ==> Cost Structure Analysis-Product Name ===> 'Cost Structure Analysis'+'-'+(object.name) - Cost Analysis ===> Cost Analysis-Product Name ====> 'Cost Analysis'+'-'+(object.name) - Print Badge ===> Print Badge-Employee Name ===> 'Print Badge'+'-'+(object.name) - Event Badge ==> this report is in html format so ,there is no need to give the print_report_name. - The following reports are print through wizard so there is no need to give the print_report_name Budgets ===> Financial Report ==> General Ledger ===> Leaves Summary ===> --- addons/account/views/account_report.xml | 23 +++++++++++++++++++ addons/event/report/event_event_reports.xml | 3 +++ .../report/hr_employee_badge.xml | 3 +++ .../report/report_expense_sheet.xml | 3 +++ addons/hr_payroll/views/hr_payroll_report.xml | 6 +++++ addons/mrp/report/mrp_report_views_main.xml | 9 ++++++++ .../mrp_repair/report/mrp_repair_reports.xml | 3 +++ .../views/point_of_sale_report.xml | 1 + addons/product/report/product_reports.xml | 6 +++++ addons/purchase/report/purchase_reports.xml | 6 +++++ .../report/purchase_requisition_report.xml | 3 +++ addons/report/controllers/main.py | 3 ++- .../report/report_intrastat_report.xml | 10 ++++++++ addons/sale/report/sale_report.xml | 3 +++ addons/stock/report/stock_report_views.xml | 15 ++++++++++++ .../report/sale_order_reports.xml | 3 +++ 16 files changed, 99 insertions(+), 1 deletion(-) diff --git a/addons/account/views/account_report.xml b/addons/account/views/account_report.xml index 605c6f7c64bb..5b301a2fa80c 100644 --- a/addons/account/views/account_report.xml +++ b/addons/account/views/account_report.xml @@ -12,6 +12,16 @@ attachment_use="True" attachment="(object.state in ('open','paid')) and ('INV'+(object.number or '').replace('/','')+'.pdf')" /> + <record id="account_invoices" model="ir.actions.report.xml"> + <field name="print_report_name">(object.type == 'out_invoice' and object.state == 'draft' and 'Draft Invoice' or + object.type == 'out_invoice' and object.state in ('open','paid') and 'Invoice'+'-'+(object.number) or + object.type == 'out_refund' and object.state == 'draft' and 'Refund' or + object.type == 'out_refund' and 'Refund'+'-'+(object.number) or + object.type == 'in_invoice' and object.state == 'draft' and 'Vendor Bill' or + object.type == 'in_invoice' and object.state in ('open','paid') and 'Vendor Bill'+'-'+(object.number) or + object.type == 'in_refund' and object.state == 'draft' and 'Vendor Refund' or + object.type == 'in_refund' and 'Vendor Refund'+'-'+(object.number))</field> + </record> <report id="account_invoice_action_report_duplicate" @@ -22,6 +32,16 @@ file="account.report_invoice_duplicate" attachment_use="False" /> + <record id="account_invoice_action_report_duplicate" model="ir.actions.report.xml"> + <field name="print_report_name">(object.type == 'out_invoice' and object.state == 'draft' and 'Duplicate Invoice' or + object.type == 'out_invoice' and object.state in ('open','paid') and 'Duplicate Invoice'+'-'+(object.number) or + object.type == 'out_refund' and object.state == 'draft' and 'Duplicate Refund' or + object.type == 'out_refund' and 'Duplicate Refund'+'-'+(object.number) or + object.type == 'in_invoice' and object.state == 'draft' and 'Duplicate Vendor Bill' or + object.type == 'in_invoice' and object.state in ('open','paid') and 'Duplicate Vendor Bill'+'-'+(object.number) or + object.type == 'in_refund' and object.state == 'draft' and 'Duplicate Vendor Refund' or + object.type == 'in_refund' and 'Duplicate Vendor Refund'+'-'+(object.number))</field> + </record> <report id="action_report_print_overdue" @@ -31,6 +51,9 @@ name="account.report_overdue" file="account.report_overdue" /> + <record id="action_report_print_overdue" model="ir.actions.report.xml"> + <field name="print_report_name">'Due Payments'+'-'+(object.name)</field> + </record> <report id="action_report_general_ledger" diff --git a/addons/event/report/event_event_reports.xml b/addons/event/report/event_event_reports.xml index d15e72e4faa9..2f81b7b0e3b2 100644 --- a/addons/event/report/event_event_reports.xml +++ b/addons/event/report/event_event_reports.xml @@ -25,6 +25,9 @@ name="event.event_registration_report_template_badge" file="event.event_registration_report_template_badge" paperformat="event.paperformat_euro_lowmargin"/> + <record id="report_event_registration_badge" model="ir.actions.report.xml"> + <field name="print_report_name">'Registration Event'+'-'+(object.name)</field> + </record> <report id="report_event_event_badge" diff --git a/addons/hr_attendance/report/hr_employee_badge.xml b/addons/hr_attendance/report/hr_employee_badge.xml index 387d84647160..902131334b0c 100644 --- a/addons/hr_attendance/report/hr_employee_badge.xml +++ b/addons/hr_attendance/report/hr_employee_badge.xml @@ -7,6 +7,9 @@ report_type="qweb-html" name="hr_attendance.print_employee_badge" file="hr_attendance.print_employee_badge"/> + <record id="hr_employee_print_badge" model="ir.actions.report.xml"> + <field name="print_report_name">'Print Badge'+'-'+(object.name)</field> + </record> <template id="print_employee_badge"> <t t-call="report.html_container"> diff --git a/addons/hr_expense/report/report_expense_sheet.xml b/addons/hr_expense/report/report_expense_sheet.xml index dcf612fec092..e033d7920c1a 100644 --- a/addons/hr_expense/report/report_expense_sheet.xml +++ b/addons/hr_expense/report/report_expense_sheet.xml @@ -106,5 +106,8 @@ name="hr_expense.report_expense_sheet" file="hr_expense.report_expense_sheet" /> + <record id="action_report_hr_expense_sheet" model="ir.actions.report.xml"> + <field name="print_report_name">'Expenses'+'-'+(object.employee_id.name)+'-'+(object.name)</field> + </record> </odoo> \ No newline at end of file diff --git a/addons/hr_payroll/views/hr_payroll_report.xml b/addons/hr_payroll/views/hr_payroll_report.xml index 725375803e2d..c6e02324f0a6 100644 --- a/addons/hr_payroll/views/hr_payroll_report.xml +++ b/addons/hr_payroll/views/hr_payroll_report.xml @@ -17,6 +17,9 @@ name="hr_payroll.report_payslip" file="hr_payroll.report_payslip" /> + <record id="action_report_payslip" model="ir.actions.report.xml"> + <field name="print_report_name">(object.employee_id.name)+'-'+'Payslip'</field> + </record> <report id="payslip_details_report" model="hr.payslip" @@ -25,4 +28,7 @@ name="hr_payroll.report_payslipdetails" file="hr_payroll.report_payslipdetails" /> + <record id="payslip_details_report" model="ir.actions.report.xml"> + <field name="print_report_name">(object.name)</field> + </record> </odoo> diff --git a/addons/mrp/report/mrp_report_views_main.xml b/addons/mrp/report/mrp_report_views_main.xml index 06fece65865f..cdc7d40e79e4 100644 --- a/addons/mrp/report/mrp_report_views_main.xml +++ b/addons/mrp/report/mrp_report_views_main.xml @@ -9,6 +9,9 @@ file="mrp.report.mrp_bom_templates" report_type="qweb-pdf" /> + <record id="action_report_bom_structure" model="ir.actions.report.xml"> + <field name="print_report_name">'BOM'+'-'+(object.product_id.name or object.product_tmpl_id.name)</field> + </record> <report string="Production Order" @@ -18,6 +21,9 @@ file="mrp.report.mrp_production_templates" report_type="qweb-pdf" /> + <record id="action_report_production_order" model="ir.actions.report.xml"> + <field name="print_report_name">'Production Order'+'-'+(object.name)</field> + </record> <report string="BOM Cost" @@ -27,5 +33,8 @@ file="mrp_bom_cost" report_type="qweb-html" /> + <record id="action_report_bom_price" model="ir.actions.report.xml"> + <field name="print_report_name">'BOM Cost'+'-'+(object.product_id.name or object.product_tmpl_id.name)</field> + </record> </data> </odoo> diff --git a/addons/mrp_repair/report/mrp_repair_reports.xml b/addons/mrp_repair/report/mrp_repair_reports.xml index 9a4ab10e86c0..db73449155d8 100644 --- a/addons/mrp_repair/report/mrp_repair_reports.xml +++ b/addons/mrp_repair/report/mrp_repair_reports.xml @@ -9,5 +9,8 @@ file="mrp_repair.report_mrprepairorder" report_type="qweb-pdf" /> + <record id="action_report_mrp_repair_order" model="ir.actions.report.xml"> + <field name="print_report_name">(object.state == 'draft' and 'Repair Quotation'+'-'+(object.name) or 'Repair Order'+'-'+(object.name))</field> + </record> </data> </odoo> diff --git a/addons/point_of_sale/views/point_of_sale_report.xml b/addons/point_of_sale/views/point_of_sale_report.xml index 94ad5b1e8110..b751dea87bef 100644 --- a/addons/point_of_sale/views/point_of_sale_report.xml +++ b/addons/point_of_sale/views/point_of_sale_report.xml @@ -15,6 +15,7 @@ <field name="model">pos.order</field> <field name="report_type">qweb-pdf</field> <field name="report_name">point_of_sale.report_invoice</field> + <field name="print_report_name">'Invoice'+'-'+(object.name)</field> </record> <record id="sale_details_report" model="ir.actions.report.xml"> diff --git a/addons/product/report/product_reports.xml b/addons/product/report/product_reports.xml index 11c802515e82..2c7a58336d04 100644 --- a/addons/product/report/product_reports.xml +++ b/addons/product/report/product_reports.xml @@ -8,6 +8,9 @@ report_type="qweb-pdf" name="product.report_productlabel" file="product.report_productlabel"/> + <record id="report_product_label" model="ir.actions.report.xml"> + <field name="print_report_name">'Products Labels'+'-'+(object.name)</field> + </record> <report id="report_product_template_label" @@ -16,6 +19,9 @@ report_type="qweb-pdf" name="product.report_producttemplatelabel" file="product.report_producttemplatelabel"/> + <record id="report_product_template_label" model="ir.actions.report.xml"> + <field name="print_report_name">'Products Labels'+'-'+(object.name)</field> + </record> <report id="action_report_pricelist" diff --git a/addons/purchase/report/purchase_reports.xml b/addons/purchase/report/purchase_reports.xml index 75bba974ed1e..a266c4d01470 100644 --- a/addons/purchase/report/purchase_reports.xml +++ b/addons/purchase/report/purchase_reports.xml @@ -8,6 +8,9 @@ name="purchase.report_purchaseorder" file="purchase.report_purchaseorder" /> + <record id="action_report_purchase_order" model="ir.actions.report.xml"> + <field name="print_report_name">(object.state in ('draft', 'sent') and 'Request for Quotation'+'-'+(object.name) or 'Purchase Order'+'-'+(object.name))</field> + </record> <report string="Request for Quotation" @@ -17,4 +20,7 @@ name="purchase.report_purchasequotation" file="purchase.report_purchasequotation" /> + <record id="report_purchase_quotation" model="ir.actions.report.xml"> + <field name="print_report_name">'Request for Quotation'+'-'+(object.name)</field> + </record> </odoo> diff --git a/addons/purchase_requisition/report/purchase_requisition_report.xml b/addons/purchase_requisition/report/purchase_requisition_report.xml index 844be7bd8e1c..98b73254c115 100644 --- a/addons/purchase_requisition/report/purchase_requisition_report.xml +++ b/addons/purchase_requisition/report/purchase_requisition_report.xml @@ -9,5 +9,8 @@ name="purchase_requisition.report_purchaserequisitions" file="purchase_requisition.report.report_purchaserequisitions" /> + <record id="action_report_purchase_requisitions" model="ir.actions.report.xml"> + <field name="print_report_name">'Tender'+'-'+(object.name)</field> + </record> </data> </odoo> diff --git a/addons/report/controllers/main.py b/addons/report/controllers/main.py index aad5d3a23ea7..3219d14754b6 100644 --- a/addons/report/controllers/main.py +++ b/addons/report/controllers/main.py @@ -105,7 +105,8 @@ class ReportController(Controller): ids = [int(x) for x in docids.split(",")] obj = request.env[report.model].browse(ids) if report.print_report_name and not len(obj) > 1: - filename = safe_eval(report.print_report_name, {'object': obj, 'time': time}) + report_name = safe_eval(report.print_report_name, {'object': obj, 'time': time}) + filename = "%s.%s" % (report_name, "pdf") response.headers.add('Content-Disposition', content_disposition(filename)) response.set_cookie('fileToken', token) return response diff --git a/addons/report_intrastat/report/report_intrastat_report.xml b/addons/report_intrastat/report/report_intrastat_report.xml index 9c666f1b6f75..ff96ea6e3153 100644 --- a/addons/report_intrastat/report/report_intrastat_report.xml +++ b/addons/report_intrastat/report/report_intrastat_report.xml @@ -8,4 +8,14 @@ name="report_intrastat.report_intrastatinvoice" file="report_intrastat.report_intrastatinvoice" /> + <record id="account_intrastatinvoices" model="ir.actions.report.xml"> + <field name="print_report_name">(object.type == 'out_invoice' and object.state == 'draft' and 'Intrastat Invoice' or + object.type == 'out_invoice' and object.state in ('open','paid') and 'Intrastat Invoice'+'-'+(object.number) or + object.type == 'out_refund' and object.state == 'draft' and 'Intrastat Refund' or + object.type == 'out_refund' and 'Intrastat Refund'+'-'+(object.number) or + object.type == 'in_invoice' and object.state == 'draft' and 'Intrastat Vendor Bill' or + object.type == 'in_invoice' and object.state in ('open','paid') and 'Intrastat Vendor Bill'+'-'+(object.number) or + object.type == 'in_refund' and object.state == 'draft' and 'Intrastat Vendor Refund' or + object.type == 'in_refund' and 'Intrastat Vendor Refund'+'-'+(object.number))</field> + </record> </odoo> diff --git a/addons/sale/report/sale_report.xml b/addons/sale/report/sale_report.xml index 04d9080928ba..e0bad531aeac 100644 --- a/addons/sale/report/sale_report.xml +++ b/addons/sale/report/sale_report.xml @@ -9,5 +9,8 @@ file="sale.report_saleorder" name="sale.report_saleorder" /> + <record id="report_sale_order" model="ir.actions.report.xml"> + <field name="print_report_name">(object.state in ('draft', 'sent') and 'Quotation'+'-'+(object.name) or 'Order'+'-'+(object.name))</field> + </record> </data> </odoo> diff --git a/addons/stock/report/stock_report_views.xml b/addons/stock/report/stock_report_views.xml index 750918c22d29..c794b59e9bed 100644 --- a/addons/stock/report/stock_report_views.xml +++ b/addons/stock/report/stock_report_views.xml @@ -9,6 +9,9 @@ name="stock.report_picking" file="stock.report_picking_operations" /> + <record id="action_report_picking" model="ir.actions.report.xml"> + <field name="print_report_name">'Picking Operations'+'-'+(object.partner_id.name)+'-'+(object.name)</field> + </record> <report string="Delivery Slip" id="action_report_delivery" @@ -17,6 +20,9 @@ name="stock.report_deliveryslip" file="stock.report_deliveryslip" /> + <record id="action_report_delivery" model="ir.actions.report.xml"> + <field name="print_report_name">'Delivery Slip'+'-'+(object.partner_id.name)+'-'+(object.name)</field> + </record> <report string="Inventory" id="action_report_inventory" @@ -25,9 +31,18 @@ name="stock.report_inventory" file="stock.report_inventory" /> + <record id="action_report_inventory" model="ir.actions.report.xml"> + <field name="print_report_name">'Inventory'+'-'+(object.name)</field> + </record> <report id="action_report_quant_package_barcode" model="stock.quant.package" report_type="qweb-pdf" name="stock.report_package_barcode" string="Package BarCode with Contents" file="stock.report_package_barcode"/> <report id="action_report_quant_package_barcode_small" model="stock.quant.package" report_type="qweb-pdf" name="stock.report_package_barcode_small" string="Package BarCode" file="stock.report_package_barcode"/> <report id="action_report_location_barcode" model="stock.location" report_type="qweb-pdf" name="stock.report_location_barcode" string="Location BarCode" file="stock.report_location_barcode"/> + <record id="action_report_location_barcode" model="ir.actions.report.xml"> + <field name="print_report_name">(object.name)+'-'+'Location'</field> + </record> <report id="action_report_lot_barcode" model="stock.production.lot" report_type="qweb-pdf" name="stock.report_lot_barcode" string="Lot BarCode" file="stock.report_lot_barcode"/> + <record id="action_report_lot_barcode" model="ir.actions.report.xml"> + <field name="print_report_name">'Lot/Serial'+'-'+(object.name)</field> + </record> </data> </odoo> diff --git a/addons/website_quote/report/sale_order_reports.xml b/addons/website_quote/report/sale_order_reports.xml index 9b4f6e100823..1aeaf7c6e0e6 100644 --- a/addons/website_quote/report/sale_order_reports.xml +++ b/addons/website_quote/report/sale_order_reports.xml @@ -9,4 +9,7 @@ name="website_quote.report_quote" menu="False" /> + <record id="report_web_quote" model="ir.actions.report.xml"> + <field name="print_report_name">(object.state in ('draft', 'sent') and 'Quotation'+'-'+(object.name) or 'Order'+'-'+(object.name))</field> + </record> </odoo> -- GitLab