Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[IMP] stock_incoterm_extension: destination_port and type in purchase…
… orders (#161)
- Loading branch information
Showing
9 changed files
with
143 additions
and
21 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -19,3 +19,4 @@ | |
from . import sale_order | ||
from . import stock | ||
from . import account_invoice | ||
from . import purchase_order |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
# -*- coding: utf-8 -*- | ||
# Copyright 2017 Ainara Galdona - Avanzosc S.L. | ||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). | ||
|
||
from openerp import models, fields, api | ||
|
||
|
||
class PurchaseOrder(models.Model): | ||
|
||
_inherit = 'purchase.order' | ||
|
||
@api.model | ||
def _get_selection_transport_type(self): | ||
return self.env['sale.order'].fields_get( | ||
allfields=['transport_type'])['transport_type']['selection'] | ||
|
||
req_destination_port = fields.Boolean( | ||
string="Requires destination port", | ||
related="incoterm_id.destination_port") | ||
req_transport_type = fields.Boolean( | ||
string="Requires transport type", | ||
related="incoterm_id.transport_type") | ||
destination_port = fields.Char(string="Destination port") | ||
transport_type = fields.Selection( | ||
selection='_get_selection_transport_type', string="Transport type") | ||
|
||
@api.model | ||
def _prepare_invoice(self, order, line_ids): | ||
res = super(PurchaseOrder, self)._prepare_invoice(order, line_ids) | ||
res.update({ | ||
'incoterm': order.incoterm_id.id, | ||
'destination_port': order.destination_port, | ||
'transport_type': order.transport_type | ||
}) | ||
return res |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
# -*- coding: utf-8 -*- | ||
# Copyright 2017 Ainara Galdona - Avanzosc S.L. | ||
# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html | ||
|
||
from . import test_stock_incoterm_extension |
52 changes: 52 additions & 0 deletions
52
stock_incoterm_extension/tests/test_stock_incoterm_extension.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,52 @@ | ||
# -*- coding: utf-8 -*- | ||
# Copyright 2017 Ainara Galdona - Avanzosc S.L. | ||
# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html | ||
|
||
from openerp.tests import common | ||
|
||
|
||
class TestStockIncotermExtension(common.TransactionCase): | ||
|
||
def setUp(self): | ||
super(TestStockIncotermExtension, self).setUp() | ||
self.invoice_model = self.env['account.invoice'] | ||
self.journal = self.env.ref('account.sales_journal') | ||
self.sale_order = self.env.ref('sale.sale_order_2') | ||
self.sale_order1 = self.env.ref('sale.sale_order_1') | ||
self.purchase_order = self.env.ref('purchase.purchase_order_1') | ||
self.incoterm = self.env.ref('stock.incoterm_EXW') | ||
self.incoterm.destination_port = False | ||
self.incoterm.transport_type = True | ||
self.sale_order.incoterm = self.incoterm | ||
self.sale_order.transport_type = 'air' | ||
self.sale_order1.incoterm = self.incoterm | ||
self.sale_order1.transport_type = 'ground' | ||
self.sale_order1.destination_port = 'port1' | ||
self.purchase_order.incoterm_id = self.incoterm | ||
self.purchase_order.transport_type = 'maritime' | ||
|
||
def test_sale_order_invoice(self): | ||
self.sale_order.order_policy = 'manual' | ||
self.sale_order.action_button_confirm() | ||
res = self.sale_order.manual_invoice() | ||
inv_id = res.get('res_id', False) | ||
invoice = self.invoice_model.browse(inv_id) | ||
self.assertTrue(invoice and invoice.incoterm.id == self.incoterm.id and | ||
invoice.transport_type == 'air') | ||
|
||
def test_purchase_order_invoice(self): | ||
self.purchase_order.signal_workflow('purchase_confirm') | ||
invoice = self.purchase_order.invoice_ids and \ | ||
self.purchase_order.invoice_ids[0] | ||
self.assertTrue(invoice and invoice.incoterm.id == self.incoterm.id and | ||
invoice.transport_type == 'maritime') | ||
|
||
def test_sale_order_picking_invoice(self): | ||
self.sale_order1.order_policy = 'picking' | ||
self.sale_order1.action_button_confirm() | ||
invoice_ids = self.sale_order1.picking_ids.action_invoice_create( | ||
journal_id=self.journal.id) | ||
invoices = self.invoice_model.browse(invoice_ids) | ||
self.assertTrue(invoices and invoices[0].incoterm.id == | ||
self.incoterm.id and invoices[0].transport_type == | ||
'ground' and invoices[0].destination_port == 'port1') |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
<?xml version="1.0" encoding="UTF-8"?> | ||
<openerp> | ||
<data> | ||
<record id="purchase_order_form" model="ir.ui.view"> | ||
<field name="name">purchase.order.form</field> | ||
<field name="model">purchase.order</field> | ||
<field name="inherit_id" ref="purchase.purchase_order_form"/> | ||
<field name="arch" type="xml"> | ||
<field name="incoterm_id" position="after"> | ||
<field name="req_destination_port" invisible="1"/> | ||
<field name="req_transport_type" invisible="1"/> | ||
<field name="destination_port" attrs="{'required':[('req_destination_port', '=', True)]}"/> | ||
<field name="transport_type" attrs="{'required':[('req_transport_type', '=', True)]}"/> | ||
</field> | ||
</field> | ||
</record> | ||
</data> | ||
</openerp> |