[IMP] account,sale: shipping address on invoice report

PURPOSE:
Display shipping address on invoice, when both addresses are
different ('Invoice Address' and 'Delivery Address').
This commit is contained in:
jpr-odoo
2016-06-07 15:55:37 +02:00
committed by Yannick Tivisse
parent 89d7c730fb
commit ecd892e53d
5 changed files with 44 additions and 1 deletions
+1 -1
View File
@@ -6,7 +6,7 @@
<t t-set="o" t-value="o.with_context({'lang':o.partner_id.lang})" />
<div class="page">
<div class="row">
<div class="col-xs-5 col-xs-offset-7">
<div name="invoice_address" class="col-xs-5 col-xs-offset-7">
<address t-field="o.partner_id"
t-field-options='{"widget": "contact", "fields": ["address", "name"], "no_marker": true}' />
<span t-if="o.partner_id.vat">TIN: <span t-field="o.partner_id.vat"/></span>
+21
View File
@@ -286,6 +286,7 @@ class SaleOrder(models.Model):
'type': 'out_invoice',
'account_id': self.partner_invoice_id.property_account_receivable_id.id,
'partner_id': self.partner_invoice_id.id,
'partner_shipping_id': self.partner_shipping_id.id,
'journal_id': journal_id,
'currency_id': self.pricelist_id.currency_id.id,
'comment': self.note,
@@ -912,6 +913,26 @@ class AccountInvoice(models.Model):
team_id = fields.Many2one('crm.team', string='Sales Team', default=_get_default_team, oldname='section_id')
comment = fields.Text(default=_default_comment)
partner_shipping_id = fields.Many2one(
'res.partner',
string='Delivery Address',
readonly=True,
states={'draft': [('readonly', False)]},
help="Delivery address for current invoice.")
@api.onchange('partner_shipping_id')
def _onchange_partner_shipping_id(self):
"""
Trigger the change of fiscal position when the shipping address is modified.
"""
fiscal_position = self.env['account.fiscal.position'].get_fiscal_position(self.partner_id.id, self.partner_shipping_id.id)
if fiscal_position:
self.fiscal_position_id = fiscal_position
@api.onchange('partner_id', 'company_id')
def _onchange_delivery_address(self):
addr = self.partner_id.address_get(['delivery'])
self.partner_shipping_id = addr and addr.get('delivery')
@api.multi
def confirm_paid(self):
+3
View File
@@ -655,6 +655,9 @@
<xpath expr="//field[@name='user_id']" position="after">
<field name="team_id"/>
</xpath>
<xpath expr="//field[@name='partner_id']" position="after">
<field name="partner_shipping_id" groups="sale.group_delivery_invoice_address"/>
</xpath>
<xpath expr="//page/field[@name='invoice_line_ids']/tree/field[@name='product_id']" position="after">
<field name="layout_category_id" groups="sale.group_sale_layout"/>
</xpath>
@@ -69,5 +69,23 @@
</t>
</xpath>
</template>
<template id="report_invoice_document_inherit_sale" inherit_id="account.report_invoice_document" groups="sale.group_delivery_invoice_address">
<xpath expr="//div[@name='invoice_address']" position="replace">
<div class="col-xs-5 col-xs-offset-7">
<strong t-if="o.partner_shipping_id == o.partner_id">Invoicing and shipping address:</strong>
<strong t-if="o.partner_shipping_id != o.partner_id">Invoicing address:</strong>
<div t-field="o.partner_id"
t-field-options='{"widget": "contact", "fields": ["address", "name"], "no_marker": true}'/>
<span t-if="o.partner_id.vat">TIN: <span t-field="o.partner_id.vat"/></span>
<div t-if="o.partner_shipping_id != o.partner_id" class="mt8">
<strong>Shipping address:</strong>
<div t-field="o.partner_shipping_id"
t-field-options='{"widget": "contact", "fields": ["address", "name"], "no_marker": true}'/>
<span t-if="o.partner_id.vat">TIN: <span t-field="o.partner_id.vat"/></span>
</div>
</div>
</xpath>
</template>
</data>
</openerp>
@@ -76,6 +76,7 @@ class SaleAdvancePaymentInv(models.TransientModel):
'reference': False,
'account_id': order.partner_id.property_account_receivable_id.id,
'partner_id': order.partner_invoice_id.id,
'partner_shipping_id': order.partner_shipping_id.id,
'invoice_line_ids': [(0, 0, {
'name': name,
'origin': order.name,