Subversion Repositories SmartDukaan

Rev

Rev 20936 | Rev 20939 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 20936 Rev 20937
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