diff --git a/shipping_information_on_customer_invoice/__init__.py b/shipping_information_on_customer_invoice/__init__.py new file mode 100644 index 0000000..0650744 --- /dev/null +++ b/shipping_information_on_customer_invoice/__init__.py @@ -0,0 +1 @@ +from . import models diff --git a/shipping_information_on_customer_invoice/__manifest__.py b/shipping_information_on_customer_invoice/__manifest__.py new file mode 100644 index 0000000..19a3877 --- /dev/null +++ b/shipping_information_on_customer_invoice/__manifest__.py @@ -0,0 +1,19 @@ +{ + 'name': 'Shipping Information on Customer Invoice', + 'version': '18.0.0.1', + 'category': 'Accounting', + 'summary': 'Add shipping carrier information on customer invoices', + 'description': """ + This module adds shipping carrier information to customer invoices: + * Carrier name + * Tracking number + * Billing mode + """, + 'depends': ['account', 'delivery'], + 'data': [ + 'views/report_invoice.xml', + ], + 'installable': True, + 'auto_install': False, + 'license': 'LGPL-3', +} diff --git a/shipping_information_on_customer_invoice/models/__init__.py b/shipping_information_on_customer_invoice/models/__init__.py new file mode 100644 index 0000000..9c0a421 --- /dev/null +++ b/shipping_information_on_customer_invoice/models/__init__.py @@ -0,0 +1 @@ +from . import account_move diff --git a/shipping_information_on_customer_invoice/models/account_move.py b/shipping_information_on_customer_invoice/models/account_move.py new file mode 100644 index 0000000..5ec2c0d --- /dev/null +++ b/shipping_information_on_customer_invoice/models/account_move.py @@ -0,0 +1,21 @@ +from odoo import api, fields, models + +class AccountMove(models.Model): + _inherit = 'account.move' + + def _get_delivery_info(self): + """Get the delivery information for the invoice.""" + self.ensure_one() + if self.move_type != 'out_invoice': + return False + + deliveries = self.picking_ids.filtered(lambda p: p.carrier_id) + if not deliveries: + return False + + carrier = deliveries[0].carrier_id + return { + 'carrier_name': carrier.name, + 'tracking_ref': deliveries[0].carrier_tracking_ref or '', + 'invoice_policy': dict(carrier._fields['invoice_policy'].selection).get(carrier.invoice_policy, carrier.invoice_policy), + } diff --git a/shipping_information_on_customer_invoice/views/report_invoice.xml b/shipping_information_on_customer_invoice/views/report_invoice.xml new file mode 100644 index 0000000..b1855d0 --- /dev/null +++ b/shipping_information_on_customer_invoice/views/report_invoice.xml @@ -0,0 +1,26 @@ + + + +