Subversion Repositories SmartDukaan

Rev

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

Rev 4303 Rev 4306
Line 575... Line 575...
575
        return False
575
        return False
576
        
576
        
577
def accept_order(orderId):
577
def accept_order(orderId):
578
    logging.info("Accepting order no: " + str(orderId))
578
    logging.info("Accepting order no: " + str(orderId))
579
    order = get_order(orderId)
579
    order = get_order(orderId)
580
    if order.status in [OrderStatus.SUBMITTED_FOR_PROCESSING, OrderStatus.INVENTORY_LOW]:
580
    if 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]:
581
        if not order.cod:
581
        if not order.cod:
582
            if order.transaction.status == TransactionStatus.AUTHORIZED:
582
            if order.transaction.status == TransactionStatus.AUTHORIZED:
583
                __capture_txn(order.transaction.id)
583
                __capture_txn(order.transaction.id)
584
        order.status = OrderStatus.ACCEPTED
584
        order.status = OrderStatus.ACCEPTED
585
        order.statusDescription = "Order Accepted"
585
        order.statusDescription = "Order Accepted"
Line 1061... Line 1061...
1061
                     OrderStatus.DOA_CERT_INVALID : OrderStatus.DOA_INVALID_REFUNDED,
1061
                     OrderStatus.DOA_CERT_INVALID : OrderStatus.DOA_INVALID_REFUNDED,
1062
                     OrderStatus.DOA_CERT_VALID : OrderStatus.DOA_VALID_REFUNDED,
1062
                     OrderStatus.DOA_CERT_VALID : OrderStatus.DOA_VALID_REFUNDED,
1063
                     OrderStatus.INIT : OrderStatus.CANCELED,
1063
                     OrderStatus.INIT : OrderStatus.CANCELED,
1064
                     OrderStatus.SUBMITTED_FOR_PROCESSING : OrderStatus.CANCELED,
1064
                     OrderStatus.SUBMITTED_FOR_PROCESSING : OrderStatus.CANCELED,
1065
                     OrderStatus.INVENTORY_LOW : OrderStatus.CANCELED,
1065
                     OrderStatus.INVENTORY_LOW : OrderStatus.CANCELED,
-
 
1066
                     OrderStatus.LOW_INV_PO_RAISED : OrderStatus.CANCELED,
-
 
1067
                     OrderStatus.LOW_INV_REVERSAL_IN_PROCESS : OrderStatus.CANCELED,
-
 
1068
                     OrderStatus.LOW_INV_NOT_AVAILABLE_AT_HOTSPOT : OrderStatus.CANCELED,
1066
                     OrderStatus.ACCEPTED : OrderStatus.CANCELED,
1069
                     OrderStatus.ACCEPTED : OrderStatus.CANCELED,
1067
                     OrderStatus.BILLED : OrderStatus.CANCELED,
1070
                     OrderStatus.BILLED : OrderStatus.CANCELED,
1068
                     OrderStatus.CANCEL_REQUEST_CONFIRMED : OrderStatus.CANCELLED_ON_CUSTOMER_REQUEST
1071
                     OrderStatus.CANCEL_REQUEST_CONFIRMED : OrderStatus.CANCELLED_ON_CUSTOMER_REQUEST
1069
                     }
1072
                     }
1070
        if order.status not in status_transition.keys():
1073
        if order.status not in status_transition.keys():
Line 1094... Line 1097...
1094
        status_transition = {OrderStatus.SALES_RET_RECEIVED : OrderStatus.SALES_RET_REFUNDED,
1097
        status_transition = {OrderStatus.SALES_RET_RECEIVED : OrderStatus.SALES_RET_REFUNDED,
1095
                     OrderStatus.DOA_CERT_INVALID : OrderStatus.DOA_INVALID_REFUNDED,
1098
                     OrderStatus.DOA_CERT_INVALID : OrderStatus.DOA_INVALID_REFUNDED,
1096
                     OrderStatus.DOA_CERT_VALID : OrderStatus.DOA_VALID_REFUNDED,
1099
                     OrderStatus.DOA_CERT_VALID : OrderStatus.DOA_VALID_REFUNDED,
1097
                     OrderStatus.SUBMITTED_FOR_PROCESSING : OrderStatus.REFUNDED,
1100
                     OrderStatus.SUBMITTED_FOR_PROCESSING : OrderStatus.REFUNDED,
1098
                     OrderStatus.INVENTORY_LOW : OrderStatus.REFUNDED,
1101
                     OrderStatus.INVENTORY_LOW : OrderStatus.REFUNDED,
-
 
1102
                     OrderStatus.LOW_INV_PO_RAISED : OrderStatus.REFUNDED,
-
 
1103
                     OrderStatus.LOW_INV_REVERSAL_IN_PROCESS : OrderStatus.REFUNDED,
-
 
1104
                     OrderStatus.LOW_INV_NOT_AVAILABLE_AT_HOTSPOT : OrderStatus.REFUNDED,
1099
                     OrderStatus.ACCEPTED : OrderStatus.REFUNDED,
1105
                     OrderStatus.ACCEPTED : OrderStatus.REFUNDED,
1100
                     OrderStatus.BILLED : OrderStatus.REFUNDED,
1106
                     OrderStatus.BILLED : OrderStatus.REFUNDED,
1101
                     OrderStatus.CANCEL_REQUEST_CONFIRMED : OrderStatus.CANCELLED_ON_CUSTOMER_REQUEST,
1107
                     OrderStatus.CANCEL_REQUEST_CONFIRMED : OrderStatus.CANCELLED_ON_CUSTOMER_REQUEST,
1102
                     OrderStatus.PAYMENT_FLAGGED : OrderStatus.PAYMENT_FLAGGED_DENIED
1108
                     OrderStatus.PAYMENT_FLAGGED : OrderStatus.PAYMENT_FLAGGED_DENIED
1103
                     }
1109
                     }
Line 1106... Line 1112...
1106
    
1112
    
1107
        if order.status in [OrderStatus.SALES_RET_RECEIVED, OrderStatus.DOA_CERT_INVALID, OrderStatus.DOA_CERT_VALID] :
1113
        if order.status in [OrderStatus.SALES_RET_RECEIVED, OrderStatus.DOA_CERT_INVALID, OrderStatus.DOA_CERT_VALID] :
1108
            __create_return_order(order)
1114
            __create_return_order(order)
1109
            __create_refund(order)
1115
            __create_refund(order)
1110
            order.statusDescription = "Order Refunded"
1116
            order.statusDescription = "Order Refunded"
1111
        elif order.status in [OrderStatus.SUBMITTED_FOR_PROCESSING, OrderStatus.INVENTORY_LOW]:
1117
        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]:
1112
            __create_cancellation(order)
1118
            __create_cancellation(order)
1113
            __update_inventory_reservation(order)
1119
            __update_inventory_reservation(order)
1114
            order.statusDescription = "Order Refunded"
1120
            order.statusDescription = "Order Refunded"
1115
        elif order.status == OrderStatus.CANCEL_REQUEST_CONFIRMED:
1121
        elif order.status == OrderStatus.CANCEL_REQUEST_CONFIRMED:
1116
            if order.previousStatus  < OrderStatus.BILLED:
1122
            if order.previousStatus  < OrderStatus.BILLED:
Line 1354... Line 1360...
1354
def change_product(order_id, item_id):
1360
def change_product(order_id, item_id):
1355
    '''
1361
    '''
1356
    Ship a product of a different color to the customer.
1362
    Ship a product of a different color to the customer.
1357
    '''
1363
    '''
1358
    order = get_order(order_id)
1364
    order = get_order(order_id)
1359
    if order.status not in [OrderStatus.INIT, OrderStatus.SUBMITTED_FOR_PROCESSING, OrderStatus.INVENTORY_LOW]:
1365
    if order.status not in [OrderStatus.INIT, 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]:
1360
        raise TransactionServiceException(120, "This order has already been processed. Please seek help from engineering.")
1366
        raise TransactionServiceException(120, "This order has already been processed. Please seek help from engineering.")
1361
        
1367
        
1362
    lineitem = order.lineitems[0]
1368
    lineitem = order.lineitems[0]
1363
    
1369
    
1364
    catalog_client = CatalogClient().get_client()
1370
    catalog_client = CatalogClient().get_client()
Line 1383... Line 1389...
1383
def change_warehouse(order_id, warehouse_id):
1389
def change_warehouse(order_id, warehouse_id):
1384
    '''
1390
    '''
1385
    Update the warehouse which will be used to fulfil this order.
1391
    Update the warehouse which will be used to fulfil this order.
1386
    '''
1392
    '''
1387
    order = get_order(order_id)
1393
    order = get_order(order_id)
1388
    if order.status not in [OrderStatus.INIT, OrderStatus.SUBMITTED_FOR_PROCESSING, OrderStatus.INVENTORY_LOW]:
1394
    if order.status not in [OrderStatus.INIT, 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]:
1389
        raise TransactionServiceException(117, "This order has already been processed. Please seek help from engineering.")
1395
        raise TransactionServiceException(117, "This order has already been processed. Please seek help from engineering.")
1390
         
1396
         
1391
    if warehouse_id == order.warehouse_id:
1397
    if warehouse_id == order.warehouse_id:
1392
        raise TransactionServiceException(118, "You have selected the current warehouse again. Nothing to do")
1398
        raise TransactionServiceException(118, "You have selected the current warehouse again. Nothing to do")
1393
 
1399
 
Line 1525... Line 1531...
1525
     - orderId
1531
     - orderId
1526
    """
1532
    """
1527
    status_transition = {OrderStatus.INIT : OrderStatus.CANCEL_REQUEST_RECEIVED,
1533
    status_transition = {OrderStatus.INIT : OrderStatus.CANCEL_REQUEST_RECEIVED,
1528
             OrderStatus.SUBMITTED_FOR_PROCESSING : OrderStatus.CANCEL_REQUEST_RECEIVED,
1534
             OrderStatus.SUBMITTED_FOR_PROCESSING : OrderStatus.CANCEL_REQUEST_RECEIVED,
1529
             OrderStatus.INVENTORY_LOW : OrderStatus.CANCEL_REQUEST_RECEIVED,
1535
             OrderStatus.INVENTORY_LOW : OrderStatus.CANCEL_REQUEST_RECEIVED,
-
 
1536
             OrderStatus.LOW_INV_PO_RAISED : OrderStatus.CANCEL_REQUEST_RECEIVED,
-
 
1537
             OrderStatus.LOW_INV_REVERSAL_IN_PROCESS : OrderStatus.CANCEL_REQUEST_RECEIVED,
-
 
1538
             OrderStatus.LOW_INV_NOT_AVAILABLE_AT_HOTSPOT : OrderStatus.CANCEL_REQUEST_RECEIVED,
1530
             OrderStatus.ACCEPTED : OrderStatus.CANCEL_REQUEST_RECEIVED,
1539
             OrderStatus.ACCEPTED : OrderStatus.CANCEL_REQUEST_RECEIVED,
1531
             OrderStatus.BILLED : OrderStatus.CANCEL_REQUEST_RECEIVED,
1540
             OrderStatus.BILLED : OrderStatus.CANCEL_REQUEST_RECEIVED,
1532
             OrderStatus.PAYMENT_FLAGGED : OrderStatus.CANCEL_REQUEST_RECEIVED
1541
             OrderStatus.PAYMENT_FLAGGED : OrderStatus.CANCEL_REQUEST_RECEIVED
1533
             }
1542
             }
1534
    if order.status not in status_transition.keys():
1543
    if order.status not in status_transition.keys():