Set shipment_party from purchase + set default warehouse in case is required

161304
This commit is contained in:
Raimon Esteve 2023-09-07 16:47:38 +02:00
parent 1bc83ba9dc
commit 1b8b7f6a15
2 changed files with 15 additions and 6 deletions

View File

@ -1,7 +1,7 @@
# The COPYRIGHT file at the top level of this repository contains the full
# copyright notices and license terms.
from trytond.pool import Pool, PoolMeta
from trytond.model import ModelView, fields
from trytond.model import ModelView
from trytond.transaction import Transaction
from trytond.i18n import gettext
from trytond.exceptions import UserError
@ -56,27 +56,35 @@ class Purchase(metaclass=PoolMeta):
default_values = Sale.default_get(Sale._fields.keys(),
with_rec_name=False)
party = Party(self.company.party.id)
sale = Sale(**default_values)
if not sale.warehouse and Sale.warehouse.required:
sale.warehouse = self.warehouse
sale.comment = self.comment
sale.company = company
sale.currency = self.currency
sale.party = party
sale.on_change_party()
if hasattr(self, 'customer') and self.customer:
sale.shipment_party = self.customer
else:
sale.shipment_party = self.party
sale.on_change_shipment_party()
sale.description = self.description
sale.payment_term = self.payment_term
sale.reference = self.number
sale.sale_date = self.purchase_date
if hasattr(sale, 'price_list'):
sale.price_list = None
sale.shipment_address = party.address_get(type='delivery')
lines = []
for line in self.lines:
if line.type != 'line':
if line.type != 'line' or not line.product or not line.product.salable:
continue
lines.append(self.create_intercompany_sale_line(sale, line))
if lines:
sale.lines = tuple(lines)
if not lines:
return
sale.lines = tuple(lines)
return sale
def create_intercompany_sale_line(self, sale, line):

View File

@ -7,5 +7,6 @@ depends:
extras_depend:
purchase_discount
sale_discount
sale_supply_drop_shipment
xml:
message.xml