Subversion Repositories SmartDukaan

Rev

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

Rev 4484 Rev 4486
Line 1050... Line 1050...
1050
            order.status = OrderStatus.DOA_LOST_IN_TRANSIT
1050
            order.status = OrderStatus.DOA_LOST_IN_TRANSIT
1051
            order.statusDescription = "DOA lost in transit"
1051
            order.statusDescription = "DOA lost in transit"
1052
        order.received_return_timestamp = datetime.datetime.now()
1052
        order.received_return_timestamp = datetime.datetime.now()
1053
        session.commit()
1053
        session.commit()
1054
    elif order.status == OrderStatus.RTO_IN_TRANSIT :
1054
    elif order.status == OrderStatus.RTO_IN_TRANSIT :
-
 
1055
        if receiveCondition == 0:
1055
        order.status = OrderStatus.RTO_RECEIVED_PRESTINE
1056
            order.status = OrderStatus.RTO_RECEIVED_PRESTINE
1056
        order.statusDescription = "Sales return received"
1057
            order.statusDescription = "RTO package received"
-
 
1058
        elif receiveCondition == 1:
-
 
1059
            order.status = OrderStatus.RTO_RECEIVED_DAMAGED
-
 
1060
            order.statusDescription = "RTO received damaged"
-
 
1061
        elif receiveCondition == 2:
-
 
1062
            order.status = OrderStatus.RTO_LOST_IN_TRANSIT
-
 
1063
            order.statusDescription = "RTO lost in transit"
1057
        order.received_return_timestamp = datetime.datetime.now()
1064
        order.received_return_timestamp = datetime.datetime.now()
1058
        session.commit()
1065
        session.commit()
1059
    else:
1066
    else:
1060
        return False
1067
        return False
1061
    return True
1068
    return True
Line 1097... Line 1104...
1097
        new_order = __clone_order(order, True, order.cod)
1104
        new_order = __clone_order(order, True, order.cod)
1098
        order.status = OrderStatus.RTO_RESHIPPED
1105
        order.status = OrderStatus.RTO_RESHIPPED
1099
        order.statusDescription = "Order Reshipped"
1106
        order.statusDescription = "Order Reshipped"
1100
        session.commit()
1107
        session.commit()
1101
        update_trust_level(order)
1108
        update_trust_level(order)
-
 
1109
    elif order.status == OrderStatus.RTO_RECEIVED_DAMAGED:
-
 
1110
        new_order = __clone_order(order, False, order.cod)
-
 
1111
        ret_order = __create_return_order(order)
-
 
1112
        order.status = OrderStatus.RTO_DAMAGED_RESHIPPED
-
 
1113
        order.statusDescription = "Order Reshipped Received Damaged"
-
 
1114
        session.commit()
-
 
1115
    elif order.status == OrderStatus.RTO_LOST_IN_TRANSIT:
-
 
1116
        new_order = __clone_order(order, False, order.cod)
-
 
1117
        order.status = OrderStatus.RTO_LOST_IN_TRANSIT_RESHIPPED
-
 
1118
        order.statusDescription = "Order Reshipped Lost In Transit"
-
 
1119
        session.commit()
1102
    elif order.status == OrderStatus.DOA_CERT_INVALID:
1120
    elif order.status == OrderStatus.DOA_CERT_INVALID:
1103
        new_order = __clone_order(order, True, False)
1121
        new_order = __clone_order(order, True, False)
1104
        order.status = OrderStatus.DOA_INVALID_RESHIPPED
1122
        order.status = OrderStatus.DOA_INVALID_RESHIPPED
1105
        order.statusDescription = "Order Reshipped"
1123
        order.statusDescription = "Order Reshipped"
1106
        session.commit()
1124
        session.commit()
Line 1163... Line 1181...
1163
    
1181
    
1164
    
1182
    
1165
    if order.cod:
1183
    if order.cod:
1166
        logging.info("Refunding COD order with status " + str(order.status))
1184
        logging.info("Refunding COD order with status " + str(order.status))
1167
        status_transition = {OrderStatus.RTO_RECEIVED_PRESTINE : OrderStatus.RTO_REFUNDED,
1185
        status_transition = {OrderStatus.RTO_RECEIVED_PRESTINE : OrderStatus.RTO_REFUNDED,
-
 
1186
                     OrderStatus.RTO_RECEIVED_DAMAGED : OrderStatus.RTO_DAMAGED_REFUNDED,
-
 
1187
                     OrderStatus.RTO_LOST_IN_TRANSIT : OrderStatus.RTO_LOST_IN_TRANSIT_REFUNDED,
1168
                     OrderStatus.DOA_CERT_INVALID : OrderStatus.DOA_INVALID_REFUNDED,
1188
                     OrderStatus.DOA_CERT_INVALID : OrderStatus.DOA_INVALID_REFUNDED,
1169
                     OrderStatus.DOA_CERT_VALID : OrderStatus.DOA_VALID_REFUNDED,
1189
                     OrderStatus.DOA_CERT_VALID : OrderStatus.DOA_VALID_REFUNDED,
1170
                     OrderStatus.DOA_RECEIVED_DAMAGED : OrderStatus.DOA_REFUNDED_RCVD_DAMAGED,
1190
                     OrderStatus.DOA_RECEIVED_DAMAGED : OrderStatus.DOA_REFUNDED_RCVD_DAMAGED,
1171
                     OrderStatus.DOA_LOST_IN_TRANSIT : OrderStatus.DOA_REFUNDED_LOST_IN_TRANSIT,
1191
                     OrderStatus.DOA_LOST_IN_TRANSIT : OrderStatus.DOA_REFUNDED_LOST_IN_TRANSIT,
1172
                     OrderStatus.INIT : OrderStatus.CANCELED,
1192
                     OrderStatus.INIT : OrderStatus.CANCELED,
Line 1186... Line 1206...
1186
            __update_inventory_reservation(order)
1206
            __update_inventory_reservation(order)
1187
            order.statusDescription = "Order Cancelled"
1207
            order.statusDescription = "Order Cancelled"
1188
        elif order.status == OrderStatus.BILLED:
1208
        elif order.status == OrderStatus.BILLED:
1189
            __create_return_order(order)
1209
            __create_return_order(order)
1190
            order.statusDescription = "Order Cancelled"
1210
            order.statusDescription = "Order Cancelled"
1191
        elif order.status == OrderStatus.RTO_RECEIVED_PRESTINE:
1211
        elif order.status in [OrderStatus.RTO_RECEIVED_PRESTINE, OrderStatus.RTO_RECEIVED_DAMAGED, OrderStatus.RTO_LOST_IN_TRANSIT]:
1192
            __create_return_order(order)
1212
            __create_return_order(order)
1193
            order.statusDescription = "Order Returned to origin"
1213
            order.statusDescription = "RTO Refunded"
1194
        elif order.status in [OrderStatus.DOA_CERT_INVALID, OrderStatus.DOA_CERT_VALID, OrderStatus.DOA_RECEIVED_DAMAGED, OrderStatus.DOA_LOST_IN_TRANSIT] :
1214
        elif order.status in [OrderStatus.DOA_CERT_INVALID, OrderStatus.DOA_CERT_VALID, OrderStatus.DOA_RECEIVED_DAMAGED, OrderStatus.DOA_LOST_IN_TRANSIT] :
1195
            __create_return_order(order)
1215
            __create_return_order(order)
1196
            __create_refund(order)
1216
            __create_refund(order)
1197
            order.statusDescription = "Order Refunded"
1217
            order.statusDescription = "Order Refunded"
1198
        elif order.status == OrderStatus.CANCEL_REQUEST_CONFIRMED:
1218
        elif order.status == OrderStatus.CANCEL_REQUEST_CONFIRMED:
Line 1202... Line 1222...
1202
            elif order.previousStatus == OrderStatus.BILLED:
1222
            elif order.previousStatus == OrderStatus.BILLED:
1203
                __create_return_order(order)
1223
                __create_return_order(order)
1204
                order.statusDescription = "Order Cancelled on customer request"
1224
                order.statusDescription = "Order Cancelled on customer request"
1205
    else:
1225
    else:
1206
        status_transition = {OrderStatus.RTO_RECEIVED_PRESTINE : OrderStatus.RTO_REFUNDED,
1226
        status_transition = {OrderStatus.RTO_RECEIVED_PRESTINE : OrderStatus.RTO_REFUNDED,
-
 
1227
                     OrderStatus.RTO_RECEIVED_DAMAGED : OrderStatus.RTO_DAMAGED_REFUNDED,
-
 
1228
                     OrderStatus.RTO_LOST_IN_TRANSIT : OrderStatus.RTO_LOST_IN_TRANSIT_REFUNDED,
1207
                     OrderStatus.DOA_CERT_INVALID : OrderStatus.DOA_INVALID_REFUNDED,
1229
                     OrderStatus.DOA_CERT_INVALID : OrderStatus.DOA_INVALID_REFUNDED,
1208
                     OrderStatus.DOA_CERT_VALID : OrderStatus.DOA_VALID_REFUNDED,
1230
                     OrderStatus.DOA_CERT_VALID : OrderStatus.DOA_VALID_REFUNDED,
1209
                     OrderStatus.DOA_RECEIVED_DAMAGED : OrderStatus.DOA_REFUNDED_RCVD_DAMAGED,
1231
                     OrderStatus.DOA_RECEIVED_DAMAGED : OrderStatus.DOA_REFUNDED_RCVD_DAMAGED,
1210
                     OrderStatus.DOA_LOST_IN_TRANSIT : OrderStatus.DOA_REFUNDED_LOST_IN_TRANSIT,
1232
                     OrderStatus.DOA_LOST_IN_TRANSIT : OrderStatus.DOA_REFUNDED_LOST_IN_TRANSIT,
1211
                     OrderStatus.SUBMITTED_FOR_PROCESSING : OrderStatus.REFUNDED,
1233
                     OrderStatus.SUBMITTED_FOR_PROCESSING : OrderStatus.REFUNDED,
Line 1219... Line 1241...
1219
                     OrderStatus.PAYMENT_FLAGGED : OrderStatus.PAYMENT_FLAGGED_DENIED
1241
                     OrderStatus.PAYMENT_FLAGGED : OrderStatus.PAYMENT_FLAGGED_DENIED
1220
                     }
1242
                     }
1221
        if order.status not in status_transition.keys():
1243
        if order.status not in status_transition.keys():
1222
            raise TransactionServiceException(114, "This order can't be refunded")
1244
            raise TransactionServiceException(114, "This order can't be refunded")
1223
    
1245
    
1224
        if order.status in [OrderStatus.RTO_RECEIVED_PRESTINE, OrderStatus.DOA_CERT_INVALID, OrderStatus.DOA_CERT_VALID, OrderStatus.DOA_RECEIVED_DAMAGED, OrderStatus.DOA_LOST_IN_TRANSIT] :
1246
        if order.status in [OrderStatus.RTO_RECEIVED_PRESTINE, OrderStatus.RTO_RECEIVED_DAMAGED, OrderStatus.RTO_LOST_IN_TRANSIT, OrderStatus.DOA_CERT_INVALID, OrderStatus.DOA_CERT_VALID, OrderStatus.DOA_RECEIVED_DAMAGED, OrderStatus.DOA_LOST_IN_TRANSIT] :
1225
            __create_return_order(order)
1247
            __create_return_order(order)
1226
            __create_refund(order)
1248
            __create_refund(order)
1227
            order.statusDescription = "Order Refunded"
1249
            order.statusDescription = "Order Refunded"
1228
        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]:
1250
        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]:
1229
            __create_cancellation(order)
1251
            __create_cancellation(order)