| Line 3642... |
Line 3642... |
| 3642 |
#__create_return_order(order)
|
3642 |
#__create_return_order(order)
|
| 3643 |
order.statusDescription = "Lost in Transit Refunded"
|
3643 |
order.statusDescription = "Lost in Transit Refunded"
|
| 3644 |
elif order.status in [OrderStatus.DOA_CERT_INVALID, OrderStatus.DOA_CERT_VALID, OrderStatus.DOA_RECEIVED_DAMAGED, OrderStatus.DOA_LOST_IN_TRANSIT] :
|
3644 |
elif order.status in [OrderStatus.DOA_CERT_INVALID, OrderStatus.DOA_CERT_VALID, OrderStatus.DOA_RECEIVED_DAMAGED, OrderStatus.DOA_LOST_IN_TRANSIT] :
|
| 3645 |
if order.status != OrderStatus.DOA_LOST_IN_TRANSIT:
|
3645 |
if order.status != OrderStatus.DOA_LOST_IN_TRANSIT:
|
| 3646 |
__create_return_order(order)
|
3646 |
__create_return_order(order)
|
| 3647 |
__create_refund(order)
|
3647 |
__create_refund(order, 0, 'Should be unreachable for now')
|
| 3648 |
order.statusDescription = "DOA Refunded"
|
3648 |
order.statusDescription = "DOA Refunded"
|
| 3649 |
elif order.status in [OrderStatus.RET_PRODUCT_UNUSABLE, OrderStatus.RET_PRODUCT_USABLE, OrderStatus.RET_RECEIVED_DAMAGED, OrderStatus.RET_LOST_IN_TRANSIT] :
|
3649 |
elif order.status in [OrderStatus.RET_PRODUCT_UNUSABLE, OrderStatus.RET_PRODUCT_USABLE, OrderStatus.RET_RECEIVED_DAMAGED, OrderStatus.RET_LOST_IN_TRANSIT] :
|
| 3650 |
if order.status != OrderStatus.RET_LOST_IN_TRANSIT:
|
3650 |
if order.status != OrderStatus.RET_LOST_IN_TRANSIT:
|
| 3651 |
__create_return_order(order)
|
3651 |
__create_return_order(order)
|
| 3652 |
__create_refund(order)
|
3652 |
__create_refund(order, 0, 'Should be unreachable for now')
|
| 3653 |
order.statusDescription = "Return Refunded"
|
3653 |
order.statusDescription = "Return Refunded"
|
| 3654 |
elif order.status == OrderStatus.CANCEL_REQUEST_CONFIRMED:
|
3654 |
elif order.status == OrderStatus.CANCEL_REQUEST_CONFIRMED:
|
| 3655 |
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]:
|
3655 |
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]:
|
| 3656 |
__update_inventory_reservation(order, refund=True)
|
3656 |
__update_inventory_reservation(order, refund=True)
|
| 3657 |
order.statusDescription = "Order Cancelled on customer request"
|
3657 |
order.statusDescription = "Order Cancelled on customer request"
|
| 3658 |
elif order.previousStatus == OrderStatus.BILLED:
|
3658 |
elif order.previousStatus == OrderStatus.BILLED:
|
| 3659 |
__create_return_order(order)
|
3659 |
__create_return_order(order)
|
| 3660 |
order.statusDescription = "Order Cancelled on customer request"
|
3660 |
order.statusDescription = "Order Cancelled on customer request"
|
| 3661 |
order.received_return_timestamp = datetime.datetime.now()
|
3661 |
order.received_return_timestamp = datetime.datetime.now()
|
| 3662 |
|
3662 |
|
| 3663 |
if order.transaction.payment_option == capitalFloatPayMethod and 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, OrderStatus.CANCEL_REQUEST_CONFIRMED]:
|
3663 |
# if order.transaction.payment_option == capitalFloatPayMethod and 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, OrderStatus.CANCEL_REQUEST_CONFIRMED]:
|
| 3664 |
total_amount = order.total_amount + order.shippingCost - order.gvAmount
|
3664 |
# total_amount = order.total_amount + order.shippingCost - order.gvAmount
|
| 3665 |
shipping_id = str(order.id)
|
3665 |
# shipping_id = str(order.id)
|
| 3666 |
if order.logisticsTransactionId is not None:
|
3666 |
# if order.logisticsTransactionId is not None:
|
| 3667 |
shipping_id = order.logisticsTransactionId
|
3667 |
# shipping_id = order.logisticsTransactionId
|
| 3668 |
creditObj = __creditHistoryObj(order.customer_id, 1, order.transaction.id, total_amount, CreditTxnType.BLOCKED_REVERSED, shipping_id)
|
3668 |
# creditObj = __creditHistoryObj(order.customer_id, 1, order.transaction.id, total_amount, CreditTxnType.BLOCKED_REVERSED, shipping_id)
|
| 3669 |
creditTxns = []
|
3669 |
# creditTxns = []
|
| 3670 |
creditTxns.append(creditObj)
|
3670 |
# creditTxns.append(creditObj)
|
| 3671 |
try:
|
3671 |
# try:
|
| 3672 |
process_credit_transaction(order.transaction.id, order.customer_id, 1, creditTxns)
|
3672 |
# process_credit_transaction(order.transaction.id, order.customer_id, 1, creditTxns)
|
| 3673 |
except:
|
3673 |
# except:
|
| 3674 |
traceback.print_exc()
|
3674 |
# traceback.print_exc()
|
| 3675 |
session.rollback()
|
3675 |
# session.rollback()
|
| 3676 |
return False
|
3676 |
# return False
|
| 3677 |
else:
|
3677 |
else:
|
| 3678 |
status_transition = {OrderStatus.LOST_IN_TRANSIT : OrderStatus.LOST_IN_TRANSIT_REFUNDED,
|
3678 |
status_transition = {OrderStatus.LOST_IN_TRANSIT : OrderStatus.LOST_IN_TRANSIT_REFUNDED,
|
| 3679 |
OrderStatus.RTO_RECEIVED_PRESTINE : OrderStatus.RTO_REFUNDED,
|
3679 |
OrderStatus.RTO_RECEIVED_PRESTINE : OrderStatus.RTO_REFUNDED,
|
| 3680 |
OrderStatus.RTO_RECEIVED_DAMAGED : OrderStatus.RTO_DAMAGED_REFUNDED,
|
3680 |
OrderStatus.RTO_RECEIVED_DAMAGED : OrderStatus.RTO_DAMAGED_REFUNDED,
|
| 3681 |
OrderStatus.RTO_LOST_IN_TRANSIT : OrderStatus.RTO_LOST_IN_TRANSIT_REFUNDED,
|
3681 |
OrderStatus.RTO_LOST_IN_TRANSIT : OrderStatus.RTO_LOST_IN_TRANSIT_REFUNDED,
|
| Line 3701... |
Line 3701... |
| 3701 |
raise TransactionServiceException(114, "This order can't be refunded")
|
3701 |
raise TransactionServiceException(114, "This order can't be refunded")
|
| 3702 |
|
3702 |
|
| 3703 |
if order.status in [OrderStatus.RTO_RECEIVED_PRESTINE, OrderStatus.RTO_RECEIVED_DAMAGED, OrderStatus.RTO_LOST_IN_TRANSIT] :
|
3703 |
if order.status in [OrderStatus.RTO_RECEIVED_PRESTINE, OrderStatus.RTO_RECEIVED_DAMAGED, OrderStatus.RTO_LOST_IN_TRANSIT] :
|
| 3704 |
if order.status != OrderStatus.RTO_LOST_IN_TRANSIT:
|
3704 |
if order.status != OrderStatus.RTO_LOST_IN_TRANSIT:
|
| 3705 |
__create_return_order(order)
|
3705 |
__create_return_order(order)
|
| 3706 |
__create_refund(order)
|
3706 |
__create_refund(order, order.wallet_amount, 'Order #{0} is RTO refunded'.format(order.id))
|
| 3707 |
order.statusDescription = "RTO Refunded"
|
3707 |
order.statusDescription = "RTO Refunded"
|
| 3708 |
#Start:- Added By Manish Sharma for Creating a new Ticket: Category- RTO Refund on 21-Jun-2013
|
3708 |
#Start:- Added By Manish Sharma for Creating a new Ticket: Category- RTO Refund on 21-Jun-2013
|
| 3709 |
try:
|
3709 |
try:
|
| 3710 |
crmServiceClient = CRMClient().get_client()
|
3710 |
crmServiceClient = CRMClient().get_client()
|
| 3711 |
ticket =Ticket()
|
3711 |
ticket =Ticket()
|
| Line 3743... |
Line 3743... |
| 3743 |
except:
|
3743 |
except:
|
| 3744 |
print "Ticket for RTO Refund is not created."
|
3744 |
print "Ticket for RTO Refund is not created."
|
| 3745 |
#End:- Added By Manish Sharma for Creating a new Ticket: Category- RTO Refund on 21-Jun-2013
|
3745 |
#End:- Added By Manish Sharma for Creating a new Ticket: Category- RTO Refund on 21-Jun-2013
|
| 3746 |
elif order.status in [OrderStatus.LOST_IN_TRANSIT]:
|
3746 |
elif order.status in [OrderStatus.LOST_IN_TRANSIT]:
|
| 3747 |
#__create_return_order(order)
|
3747 |
#__create_return_order(order)
|
| 3748 |
__create_refund(order)
|
3748 |
__create_refund(order, order.wallet_amount, 'Order #{0} is Lost in Transit'.format(order.id))
|
| 3749 |
order.statusDescription = "Lost in Transit Refunded"
|
3749 |
order.statusDescription = "Lost in Transit Refunded"
|
| 3750 |
elif order.status in [OrderStatus.DOA_CERT_INVALID, OrderStatus.DOA_CERT_VALID, OrderStatus.DOA_RECEIVED_DAMAGED, OrderStatus.DOA_LOST_IN_TRANSIT] :
|
3750 |
elif order.status in [OrderStatus.DOA_CERT_INVALID, OrderStatus.DOA_CERT_VALID, OrderStatus.DOA_RECEIVED_DAMAGED, OrderStatus.DOA_LOST_IN_TRANSIT] :
|
| 3751 |
if order.status != OrderStatus.DOA_LOST_IN_TRANSIT:
|
3751 |
if order.status != OrderStatus.DOA_LOST_IN_TRANSIT:
|
| 3752 |
__create_return_order(order)
|
3752 |
__create_return_order(order)
|
| 3753 |
__create_refund(order)
|
3753 |
__create_refund(order, 0, 'This should be unreachable')
|
| 3754 |
order.statusDescription = "DOA Refunded"
|
3754 |
order.statusDescription = "DOA Refunded"
|
| 3755 |
elif order.status in [OrderStatus.RET_PRODUCT_UNUSABLE, OrderStatus.RET_PRODUCT_USABLE, OrderStatus.RET_RECEIVED_DAMAGED, OrderStatus.RET_LOST_IN_TRANSIT] :
|
3755 |
elif order.status in [OrderStatus.RET_PRODUCT_UNUSABLE, OrderStatus.RET_PRODUCT_USABLE, OrderStatus.RET_RECEIVED_DAMAGED, OrderStatus.RET_LOST_IN_TRANSIT] :
|
| 3756 |
if order.status != OrderStatus.RET_LOST_IN_TRANSIT:
|
3756 |
if order.status != OrderStatus.RET_LOST_IN_TRANSIT:
|
| 3757 |
__create_return_order(order)
|
3757 |
__create_return_order(order)
|
| 3758 |
__create_refund(order)
|
3758 |
__create_refund(order, 0, 'This should be unreachable')
|
| 3759 |
order.statusDescription = "Return Refunded"
|
3759 |
order.statusDescription = "Return Refunded"
|
| 3760 |
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]:
|
3760 |
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]:
|
| 3761 |
__update_inventory_reservation(order, refund=True)
|
3761 |
__update_inventory_reservation(order, refund=True)
|
| 3762 |
order.statusDescription = "Order Refunded"
|
3762 |
order.statusDescription = "Order Refunded"
|
| 3763 |
elif order.status == OrderStatus.BILLED:
|
- |
|
| 3764 |
if order.source == OrderSource.SNAPDEAL or order.source == OrderSource.EBAY or order.source == OrderSource.FLIPKART or order.source == OrderSource.HOMESHOP18:
|
- |
|
| 3765 |
order.statusDescription = "Order Cancelled"
|
- |
|
| 3766 |
order.received_return_timestamp = datetime.datetime.now()
|
- |
|
| 3767 |
elif order.status == OrderStatus.CANCEL_REQUEST_CONFIRMED:
|
3763 |
elif order.status == OrderStatus.CANCEL_REQUEST_CONFIRMED:
|
| 3768 |
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.PAYMENT_FLAGGED, OrderStatus.ACCEPTED]:
|
3764 |
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.PAYMENT_FLAGGED, OrderStatus.ACCEPTED]:
|
| 3769 |
if order.previousStatus == OrderStatus.ACCEPTED:
|
3765 |
if order.previousStatus == OrderStatus.ACCEPTED:
|
| 3770 |
__create_refund(order)
|
3766 |
__create_refund(order, order.wallet_amount, 'Order #{0} is refunded due to low inventory'.format(order.id))
|
| 3771 |
__update_inventory_reservation(order, refund=True)
|
3767 |
__update_inventory_reservation(order, refund=False)
|
| 3772 |
order.statusDescription = "Order Cancelled on customer request"
|
3768 |
order.statusDescription = "Order Cancelled on customer request"
|
| 3773 |
elif order.previousStatus == OrderStatus.BILLED:
|
3769 |
elif order.previousStatus == OrderStatus.BILLED:
|
| 3774 |
__create_return_order(order)
|
3770 |
__create_return_order(order)
|
| 3775 |
__create_refund(order)
|
3771 |
__create_refund(order, order.wallet_amount, 'Order #{0} Cancelled on customer request'.format(order.id))
|
| 3776 |
order.statusDescription = "Order Cancelled on customer request"
|
3772 |
order.statusDescription = "Order Cancelled on customer request"
|
| 3777 |
order.received_return_timestamp = datetime.datetime.now()
|
3773 |
order.received_return_timestamp = datetime.datetime.now()
|
| 3778 |
|
3774 |
|
| 3779 |
elif order.status == OrderStatus.PAYMENT_FLAGGED:
|
3775 |
elif order.status == OrderStatus.PAYMENT_FLAGGED:
|
| 3780 |
__update_inventory_reservation(order, refund=True)
|
3776 |
__update_inventory_reservation(order, refund=True)
|
| Line 3897... |
Line 3893... |
| 3897 |
'''
|
3893 |
'''
|
| 3898 |
|
3894 |
|
| 3899 |
if refund:
|
3895 |
if refund:
|
| 3900 |
if order.wallet_amount > 0:
|
3896 |
if order.wallet_amount > 0:
|
| 3901 |
refund_to_wallet(order.customer_id, order.wallet_amount, order.transaction.id, WalletReferenceType.PURCHASE, "Refunded angainst cancellation of Order Id -" + str(order.id))
|
3897 |
refund_to_wallet(order.customer_id, order.wallet_amount, order.transaction.id, WalletReferenceType.PURCHASE, "Refunded angainst cancellation of Order Id -" + str(order.id))
|
| 3902 |
if order.cod == False and order.status == OrderStatus.PAYMENT_FLAGGED_DENIED:
|
- |
|
| 3903 |
order.net
|
- |
|
| 3904 |
try:
|
3898 |
try:
|
| 3905 |
inventoryClient = InventoryClient().get_client()
|
3899 |
inventoryClient = InventoryClient().get_client()
|
| 3906 |
for lineitem in order.lineitems:
|
3900 |
for lineitem in order.lineitems:
|
| 3907 |
inventoryClient.reduceReservationCount(lineitem.item_id, order.fulfilmentWarehouseId, sourceId, order.id, lineitem.quantity)
|
3901 |
inventoryClient.reduceReservationCount(lineitem.item_id, order.fulfilmentWarehouseId, sourceId, order.id, lineitem.quantity)
|
| 3908 |
except:
|
3902 |
except:
|
| Line 4100... |
Line 4094... |
| 4100 |
|
4094 |
|
| 4101 |
def __create_return_order(order):
|
4095 |
def __create_return_order(order):
|
| 4102 |
ret_order = ReturnOrder(order)
|
4096 |
ret_order = ReturnOrder(order)
|
| 4103 |
return ret_order
|
4097 |
return ret_order
|
| 4104 |
|
4098 |
|
| 4105 |
def __create_refund(order):
|
4099 |
def __create_refund(order, refundAmount, reason="Order Refunded"):
|
| - |
|
4100 |
if order.wallet_amount > 0:
|
| - |
|
4101 |
refund_to_wallet(order.customer_id, refundAmount, order.transaction.id, WalletReferenceType.PURCHASE, reason)
|
| 4106 |
if order.net_payable_amount > 0:
|
4102 |
if order.net_payable_amount > 0:
|
| 4107 |
payment_client = PaymentClient().get_client()
|
4103 |
payment_client = PaymentClient().get_client()
|
| 4108 |
payment_client.createRefund(order.id, order.transaction.id, order.net_payable_amount)
|
4104 |
payment_client.createRefund(order.id, order.transaction.id, order.net_payable_amount)
|
| 4109 |
return
|
4105 |
return
|
| 4110 |
|
4106 |
|
| Line 10515... |
Line 10511... |
| 10515 |
else:
|
10511 |
else:
|
| 10516 |
returnOrder.refundDescription = "No Pickup Required for this item. Refund in Process. It takes 7-10 working days to be in actual credit."
|
10512 |
returnOrder.refundDescription = "No Pickup Required for this item. Refund in Process. It takes 7-10 working days to be in actual credit."
|
| 10517 |
else:
|
10513 |
else:
|
| 10518 |
raise TransactionServiceException(114, "This order can't be refunded")
|
10514 |
raise TransactionServiceException(114, "This order can't be refunded")
|
| 10519 |
|
10515 |
|
| 10520 |
__create_refund(order)
|
10516 |
__create_refund(order, refundAmount, 'Refunded against #{0} {}pc(s)'.format(order.id, returnOrder.receivedQuantity))
|
| 10521 |
|
10517 |
|
| 10522 |
returnOrder.refundedAt = datetime.datetime.now()
|
10518 |
returnOrder.refundedAt = datetime.datetime.now()
|
| 10523 |
returnOrder.refundedBy = refundedBy
|
10519 |
returnOrder.refundedBy = refundedBy
|
| 10524 |
returnOrder.refundReason = refundReason
|
10520 |
returnOrder.refundReason = refundReason
|
| 10525 |
returnOrder.refundAmount = refundAmount
|
10521 |
returnOrder.refundAmount = refundAmount
|