| Line 9585... |
Line 9585... |
| 9585 |
if order.status not in [OrderStatus.SUBMITTED_FOR_PROCESSING,
|
9585 |
if order.status not in [OrderStatus.SUBMITTED_FOR_PROCESSING,
|
| 9586 |
OrderStatus.INVENTORY_LOW,
|
9586 |
OrderStatus.INVENTORY_LOW,
|
| 9587 |
OrderStatus.LOW_INV_PO_RAISED,
|
9587 |
OrderStatus.LOW_INV_PO_RAISED,
|
| 9588 |
OrderStatus.LOW_INV_REVERSAL_IN_PROCESS,
|
9588 |
OrderStatus.LOW_INV_REVERSAL_IN_PROCESS,
|
| 9589 |
OrderStatus.LOW_INV_NOT_AVAILABLE_AT_HOTSPOT,
|
9589 |
OrderStatus.LOW_INV_NOT_AVAILABLE_AT_HOTSPOT,
|
| 9590 |
OrderStatus.CAPTURE_IN_PROCESS, OrderStatus.REJECTED,
|
9590 |
OrderStatus.CAPTURE_IN_PROCESS, OrderStatus.REJECTED]:
|
| 9591 |
OrderStatus.ACCEPTED]:
|
- |
|
| 9592 |
raise TransactionServiceException(115, "Order not allowed to be split")
|
9591 |
raise TransactionServiceException(115, "Order not allowed to be split")
|
| 9593 |
|
9592 |
|
| 9594 |
new_order = __clone_order(order, False, order.cod, False)
|
9593 |
new_order = __clone_order(order, False, order.cod, False)
|
| 9595 |
|
9594 |
|
| 9596 |
new_order.lineitems[0].quantity = split_order_quantity
|
9595 |
new_order.lineitems[0].quantity = split_order_quantity
|
| Line 9604... |
Line 9603... |
| 9604 |
new_order.lineitems[0].total_price = new_order.lineitems[0].unit_price*split_order_quantity
|
9603 |
new_order.lineitems[0].total_price = new_order.lineitems[0].unit_price*split_order_quantity
|
| 9605 |
new_order.lineitems[0].total_weight = new_order.lineitems[0].unit_weight*split_order_quantity
|
9604 |
new_order.lineitems[0].total_weight = new_order.lineitems[0].unit_weight*split_order_quantity
|
| 9606 |
new_order.total_amount = new_order.lineitems[0].total_price
|
9605 |
new_order.total_amount = new_order.lineitems[0].total_price
|
| 9607 |
new_order.total_weight = new_order.lineitems[0].total_weight
|
9606 |
new_order.total_weight = new_order.lineitems[0].total_weight
|
| 9608 |
new_order.shippingCost = round((order.shippingCost/order.lineitems[0].quantity)*split_order_quantity,0)
|
9607 |
new_order.shippingCost = round((order.shippingCost/order.lineitems[0].quantity)*split_order_quantity,0)
|
| 9609 |
|
- |
|
| 9610 |
order.lineitems[0].quantity = order.lineitems[0].quantity - split_order_quantity
|
9608 |
order.lineitems[0].quantity = order.lineitems[0].quantity - split_order_quantity
|
| 9611 |
order.lineitems[0].total_price = order.lineitems[0].unit_price * order.lineitems[0].quantity
|
9609 |
order.lineitems[0].total_price = order.lineitems[0].unit_price * order.lineitems[0].quantity
|
| 9612 |
order.lineitems[0].total_weight = order.lineitems[0].unit_weight*order.lineitems[0].quantity
|
9610 |
order.lineitems[0].total_weight = order.lineitems[0].unit_weight*order.lineitems[0].quantity
|
| 9613 |
order.total_amount = order.lineitems[0].total_price
|
9611 |
order.total_amount = order.lineitems[0].total_price
|
| 9614 |
order.total_weight = order.lineitems[0].total_weight
|
9612 |
order.total_weight = order.lineitems[0].total_weight
|
| 9615 |
order.shippingCost = order.shippingCost - new_order.shippingCost
|
9613 |
order.shippingCost = order.shippingCost - new_order.shippingCost
|
| - |
|
9614 |
|
| - |
|
9615 |
new_order_net_payable = new_order.total_amount + new_order.shippingCost
|
| - |
|
9616 |
order_net_payable = order.total_amount + order.shippingCost
|
| - |
|
9617 |
|
| - |
|
9618 |
|
| - |
|
9619 |
if order.wallet_amount > 0:
|
| - |
|
9620 |
wallet_amount = order.wallet_amount
|
| - |
|
9621 |
first_order = new_order
|
| - |
|
9622 |
second_order = order
|
| - |
|
9623 |
if new_order_net_payable > order_net_payable:
|
| - |
|
9624 |
first_order = order
|
| - |
|
9625 |
second_order = new_order
|
| - |
|
9626 |
|
| - |
|
9627 |
first_order.wallet_amount = min(first_order.total_amount + first_order.shippingCost, wallet_amount)
|
| - |
|
9628 |
first_order.net_payable_amount = first_order.total_amount + first_order.shippingCost - first_order.wallet_amount
|
| - |
|
9629 |
second_order.wallet_amount = wallet_amount - first_order.wallet_amount
|
| - |
|
9630 |
second_order.net_payable_amount = second_order.total_amount + second_order.shippingCost - second_order.wallet_amount
|
| - |
|
9631 |
|
| 9616 |
|
9632 |
|
| 9617 |
if order.status == OrderStatus.ACCEPTED:
|
- |
|
| 9618 |
new_order.status = order.status
|
- |
|
| 9619 |
new_order.statusDescription = order.statusDescription
|
- |
|
| 9620 |
new_order.accepted_timestamp = order.accepted_timestamp
|
- |
|
| 9621 |
new_order.logisticsTransactionId = order.logisticsTransactionId
|
- |
|
| 9622 |
new_order.airwaybill_no = order.airwaybill_no
|
- |
|
| 9623 |
new_order.tracking_id = order.tracking_id
|
- |
|
| 9624 |
session.commit()
|
9633 |
session.commit()
|
| 9625 |
inventoryClient = InventoryClient().get_client()
|
9634 |
inventoryClient = InventoryClient().get_client()
|
| 9626 |
inventoryClient.reserveItemInWarehouse(new_order.lineitems[0].item_id, new_order.fulfilmentWarehouseId, sourceId, new_order.id, to_java_date(new_order.created_timestamp), to_java_date(new_order.promised_shipping_time), new_order.lineitems[0].quantity)
|
9635 |
inventoryClient.reserveItemInWarehouse(new_order.lineitems[0].item_id, new_order.fulfilmentWarehouseId, sourceId, new_order.id, to_java_date(new_order.created_timestamp), to_java_date(new_order.promised_shipping_time), new_order.lineitems[0].quantity)
|
| 9627 |
inventoryClient.reduceReservationCount(order.lineitems[0].item_id, order.fulfilmentWarehouseId, sourceId, order.id, new_order.lineitems[0].quantity)
|
9636 |
inventoryClient.reduceReservationCount(order.lineitems[0].item_id, order.fulfilmentWarehouseId, sourceId, order.id, new_order.lineitems[0].quantity)
|
| 9628 |
|
9637 |
|