Subversion Repositories SmartDukaan

Rev

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

Rev 5189 Rev 5199
Line 1463... Line 1463...
1463
                     OrderStatus.CANCEL_REQUEST_CONFIRMED : OrderStatus.CANCELLED_ON_CUSTOMER_REQUEST
1463
                     OrderStatus.CANCEL_REQUEST_CONFIRMED : OrderStatus.CANCELLED_ON_CUSTOMER_REQUEST
1464
                     }
1464
                     }
1465
        if order.status not in status_transition.keys():
1465
        if order.status not in status_transition.keys():
1466
            raise TransactionServiceException(114, "This order can't be refunded")
1466
            raise TransactionServiceException(114, "This order can't be refunded")
1467
    
1467
    
1468
        if order.status in [OrderStatus.COD_VERIFICATION_PENDING, OrderStatus.SUBMITTED_FOR_PROCESSING, OrderStatus.INVENTORY_LOW, OrderStatus.LOW_INV_PO_RAISED, OrderStatus.LOW_INV_REVERSAL_IN_PROCESS, OrderStatus.LOW_INV_NOT_AVAILABLE_AT_HOTSPOT]:
1468
        if order.status in [OrderStatus.COD_VERIFICATION_PENDING, OrderStatus.SUBMITTED_FOR_PROCESSING, OrderStatus.INVENTORY_LOW, OrderStatus.LOW_INV_PO_RAISED, OrderStatus.LOW_INV_REVERSAL_IN_PROCESS, OrderStatus.LOW_INV_NOT_AVAILABLE_AT_HOTSPOT, OrderStatus.ACCEPTED]:
1469
            __update_inventory_reservation(order)
1469
            __update_inventory_reservation(order)
1470
            order.statusDescription = "Order Cancelled"
1470
            order.statusDescription = "Order Cancelled"
1471
        elif order.status == OrderStatus.BILLED:
1471
        elif order.status == OrderStatus.BILLED:
1472
            __create_return_order(order)
1472
            __create_return_order(order)
1473
            order.statusDescription = "Order Cancelled"
1473
            order.statusDescription = "Order Cancelled"
Line 1484... Line 1484...
1484
        elif order.status in [OrderStatus.RET_PRODUCT_UNUSABLE, OrderStatus.RET_PRODUCT_USABLE, OrderStatus.RET_RECEIVED_DAMAGED, OrderStatus.RET_LOST_IN_TRANSIT] :
1484
        elif order.status in [OrderStatus.RET_PRODUCT_UNUSABLE, OrderStatus.RET_PRODUCT_USABLE, OrderStatus.RET_RECEIVED_DAMAGED, OrderStatus.RET_LOST_IN_TRANSIT] :
1485
            __create_return_order(order)
1485
            __create_return_order(order)
1486
            __create_refund(order)
1486
            __create_refund(order)
1487
            order.statusDescription = "Return Refunded"
1487
            order.statusDescription = "Return Refunded"
1488
        elif order.status == OrderStatus.CANCEL_REQUEST_CONFIRMED:
1488
        elif order.status == OrderStatus.CANCEL_REQUEST_CONFIRMED:
1489
            if order.previousStatus  < OrderStatus.BILLED:
1489
            if order.previousStatus in [OrderStatus.COD_VERIFICATION_PENDING, OrderStatus.SUBMITTED_FOR_PROCESSING, OrderStatus.INVENTORY_LOW, OrderStatus.LOW_INV_PO_RAISED, OrderStatus.LOW_INV_REVERSAL_IN_PROCESS, OrderStatus.LOW_INV_NOT_AVAILABLE_AT_HOTSPOT, OrderStatus.ACCEPTED]:
1490
                __update_inventory_reservation(order)
1490
                __update_inventory_reservation(order)
1491
                order.statusDescription = "Order Cancelled on customer request"
1491
                order.statusDescription = "Order Cancelled on customer request"
1492
            elif order.previousStatus == OrderStatus.BILLED:
1492
            elif order.previousStatus == OrderStatus.BILLED:
1493
                __create_return_order(order)
1493
                __create_return_order(order)
1494
                order.statusDescription = "Order Cancelled on customer request"
1494
                order.statusDescription = "Order Cancelled on customer request"
Line 1532... Line 1532...
1532
            order.statusDescription = "DOA Refunded"
1532
            order.statusDescription = "DOA Refunded"
1533
        elif order.status in [OrderStatus.RET_PRODUCT_UNUSABLE, OrderStatus.RET_PRODUCT_USABLE, OrderStatus.RET_RECEIVED_DAMAGED, OrderStatus.RET_LOST_IN_TRANSIT] :
1533
        elif order.status in [OrderStatus.RET_PRODUCT_UNUSABLE, OrderStatus.RET_PRODUCT_USABLE, OrderStatus.RET_RECEIVED_DAMAGED, OrderStatus.RET_LOST_IN_TRANSIT] :
1534
            __create_return_order(order)
1534
            __create_return_order(order)
1535
            __create_refund(order)
1535
            __create_refund(order)
1536
            order.statusDescription = "Return Refunded"
1536
            order.statusDescription = "Return Refunded"
1537
        elif order.status in [OrderStatus.SUBMITTED_FOR_PROCESSING, OrderStatus.INVENTORY_LOW, OrderStatus.LOW_INV_PO_RAISED, OrderStatus.LOW_INV_REVERSAL_IN_PROCESS, OrderStatus.LOW_INV_NOT_AVAILABLE_AT_HOTSPOT]:
1537
        elif order.status in [OrderStatus.SUBMITTED_FOR_PROCESSING, OrderStatus.INVENTORY_LOW, OrderStatus.LOW_INV_PO_RAISED, OrderStatus.LOW_INV_REVERSAL_IN_PROCESS, OrderStatus.LOW_INV_NOT_AVAILABLE_AT_HOTSPOT, OrderStatus.ACCEPTED]:
1538
            __update_inventory_reservation(order)
1538
            __update_inventory_reservation(order)
1539
            order.statusDescription = "Order Refunded"
1539
            order.statusDescription = "Order Refunded"
1540
        elif order.status == OrderStatus.CANCEL_REQUEST_CONFIRMED:
1540
        elif order.status == OrderStatus.CANCEL_REQUEST_CONFIRMED:
1541
            if order.previousStatus  < OrderStatus.BILLED:
1541
            if order.previousStatus in [OrderStatus.SUBMITTED_FOR_PROCESSING, OrderStatus.INVENTORY_LOW, OrderStatus.LOW_INV_PO_RAISED, OrderStatus.LOW_INV_REVERSAL_IN_PROCESS, OrderStatus.LOW_INV_NOT_AVAILABLE_AT_HOTSPOT, OrderStatus.ACCEPTED]:
1542
                if order.previousStatus == OrderStatus.ACCEPTED:
1542
                if order.previousStatus == OrderStatus.ACCEPTED:
1543
                    __create_refund(order)
1543
                    __create_refund(order)
1544
                __update_inventory_reservation(order)
1544
                __update_inventory_reservation(order)
1545
                order.statusDescription = "Order Cancelled on customer request"
1545
                order.statusDescription = "Order Cancelled on customer request"
1546
            elif order.previousStatus == OrderStatus.BILLED:
1546
            elif order.previousStatus == OrderStatus.BILLED:
Line 1834... Line 1834...
1834
                        if goodWarehouse.vendor.id == item.preferredVendor:
1834
                        if goodWarehouse.vendor.id == item.preferredVendor:
1835
                            warehouse = goodWarehouse
1835
                            warehouse = goodWarehouse
1836
        else:
1836
        else:
1837
            raise TransactionServiceException(119, "Shifting of warehouse allowed to GOOD inventory type warehouse with billing support")
1837
            raise TransactionServiceException(119, "Shifting of warehouse allowed to GOOD inventory type warehouse with billing support")
1838
 
1838
 
1839
    catalog_client.reserveItemInWarehouse(lineitem.item_id, warehouse_id, lineitem.quantity)
1839
    catalog_client.reserveItemInWarehouse(lineitem.item_id, warehouse.id, lineitem.quantity)
1840
    __update_inventory_reservation(order)
1840
    __update_inventory_reservation(order)
1841
 
1841
 
1842
    order.warehouse_id = warehouse.billingWarehouseId
1842
    order.warehouse_id = warehouse.billingWarehouseId
1843
    order.fulfilmentWarehouseId = warehouse.id
1843
    order.fulfilmentWarehouseId = warehouse.id
1844
    session.commit()
1844
    session.commit()