Fixes to pricing and customer models. Add req deliv to order. And more..

* Fix NullPriceAllowed and logic in price calculation
* Fix CustomerCategory join in Customer model
* Add RequestedDeliveryDate to order creation
* Start using Jeeves Signatures on order creation
This commit is contained in:
Marcus Lindvall 2019-09-23 14:12:34 +02:00
parent fc7c1e13bc
commit 6339e9d1ce
4 changed files with 63 additions and 24 deletions

View file

@ -44,8 +44,9 @@ class Order():
).all()
@staticmethod
def create(customer_no, head={}, items=[], web_user_name=None):
def create(customer_no, head={}, items=[], web_user_name=None, pers_sign='biz'):
head['CompanyNumber'] = str(customer_no)
head['PersSign'] = str(pers_sign)
# Create order from head dict to get an order number
order, invoice_possible = OrderModel(head).create(web_user_name)
@ -53,7 +54,7 @@ class Order():
raise
# Go through order items, if any, and save them to DB.
order['OrderItems'] = Order.create_rows(order['FtgNr'], order['OrderNr'], items)
order['OrderItems'] = Order.create_rows(order, items)
# Save the information in the order object
# Boolean argument deceides if order has contact person, and should be set 'registered'
@ -62,14 +63,20 @@ class Order():
return order
@staticmethod
def create_rows(company_no, order_no, items=[]):
def create_rows(order, items=[], pers_sign='biz'):
rv = []
for item in items:
if not isinstance(item, OrderItemModel):
item = OrderItemModel(item)
item['OrderNr'] = order_no
item['FtgNr'] = company_no
# Set RequestedDeliveryDate from order head if not specified for items.
if order['OrdBerLevDat'] and not item['OrdBegLevDat']:
item['OrdBegLevDat'] = order['OrdBerLevDat']
item['OrderNr'] = order['OrderNr']
item['FtgNr'] = order['FtgNr']
item['PersSign'] = pers_sign
rv.append(item.save())
return rv