Subversion Repositories SmartDukaan

Rev

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

Rev 23525 Rev 23536
Line 3657... Line 3657...
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
        
-
 
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
-
 
3665
#            shipping_id = str(order.id)
-
 
3666
#            if order.logisticsTransactionId is not None:
-
 
3667
#                shipping_id = order.logisticsTransactionId
-
 
3668
#            creditObj = __creditHistoryObj(order.customer_id, 1, order.transaction.id, total_amount, CreditTxnType.BLOCKED_REVERSED, shipping_id)
-
 
3669
#            creditTxns = []
-
 
3670
#            creditTxns.append(creditObj)
-
 
3671
#            try:
-
 
3672
#                process_credit_transaction(order.transaction.id, order.customer_id, 1, creditTxns)
-
 
3673
#            except:
-
 
3674
#                traceback.print_exc()
-
 
3675
#                session.rollback()
-
 
3676
#                return False  
-
 
3677
    else:
3662
    else:
3678
        status_transition = {OrderStatus.LOST_IN_TRANSIT : OrderStatus.LOST_IN_TRANSIT_REFUNDED,
3663
        status_transition = {OrderStatus.LOST_IN_TRANSIT : OrderStatus.LOST_IN_TRANSIT_REFUNDED,
3679
                     OrderStatus.RTO_RECEIVED_PRESTINE : OrderStatus.RTO_REFUNDED,
3664
                     OrderStatus.RTO_RECEIVED_PRESTINE : OrderStatus.RTO_REFUNDED,
3680
                     OrderStatus.RTO_RECEIVED_DAMAGED : OrderStatus.RTO_DAMAGED_REFUNDED,
3665
                     OrderStatus.RTO_RECEIVED_DAMAGED : OrderStatus.RTO_DAMAGED_REFUNDED,
3681
                     OrderStatus.RTO_LOST_IN_TRANSIT : OrderStatus.RTO_LOST_IN_TRANSIT_REFUNDED,
3666
                     OrderStatus.RTO_LOST_IN_TRANSIT : OrderStatus.RTO_LOST_IN_TRANSIT_REFUNDED,
Line 3760... Line 3745...
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]:
3745
        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)
3746
            __update_inventory_reservation(order, refund=True)
3762
            order.statusDescription = "Order Refunded"
3747
            order.statusDescription = "Order Refunded"
3763
        elif order.status == OrderStatus.CANCEL_REQUEST_CONFIRMED:
3748
        elif order.status == OrderStatus.CANCEL_REQUEST_CONFIRMED:
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]:
3749
            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]:
3765
                if order.previousStatus == OrderStatus.ACCEPTED:
-
 
3766
                    __create_refund(order, order.wallet_amount, 'Order #{0} is refunded due to low inventory'.format(order.id))
-
 
3767
                __update_inventory_reservation(order, refund=False)
3750
                __update_inventory_reservation(order, refund=True)
3768
                order.statusDescription = "Order Cancelled on customer request"
3751
                order.statusDescription = "Order Cancelled on customer request"
3769
            elif order.previousStatus == OrderStatus.BILLED:
3752
            elif order.previousStatus == OrderStatus.BILLED:
3770
                __create_return_order(order)
3753
                __create_return_order(order)
3771
                __create_refund(order, order.wallet_amount,  'Order #{0} Cancelled on customer request'.format(order.id))
3754
                __create_refund(order, order.wallet_amount,  'Order #{0} Cancelled on customer request'.format(order.id))
3772
                order.statusDescription = "Order Cancelled on customer request"
3755
                order.statusDescription = "Order Cancelled on customer request"
Line 3810... Line 3793...
3810
            if warehouse.billingType == BillingType.OURS_EXTERNAL:
3793
            if warehouse.billingType == BillingType.OURS_EXTERNAL:
3811
                warehouseClient.scanForOursExternalSaleReturn(order.id, lineitem.transfer_price)
3794
                warehouseClient.scanForOursExternalSaleReturn(order.id, lineitem.transfer_price)
3812
            if order.freebieItemId:
3795
            if order.freebieItemId:
3813
                warehouseClient.scanfreebie(order.id, order.freebieItemId, 0, ScanType.SALE_RET)
3796
                warehouseClient.scanfreebie(order.id, order.freebieItemId, 0, ScanType.SALE_RET)
3814
 
3797
 
3815
    if order.source == 2 and order.status in (OrderStatus.SUBMITTED_FOR_PROCESSING, OrderStatus.ACCEPTED, OrderStatus.INVENTORY_LOW, OrderStatus.CANCEL_REQUEST_CONFIRMED):
-
 
3816
        storeOrderDetail = StoreOrderDetail.query.filter(StoreOrderDetail.orderId == order.id).filter(StoreOrderDetail.storeId == order.storeId).first()
-
 
3817
        
-
 
3818
        if order.created_timestamp.date() == datetime.datetime.now().date() and storeOrderDetail.cardType != "debit":
-
 
3819
            __push_store_collection_to_hotspot(order, "RefundFromStore", -storeOrderDetail.cashRefundAmount, -storeOrderDetail.cardRefundAmount)
-
 
3820
            storeOrderDetail.payStatus = StorePaymentStatus.ADV_REFUNDED
-
 
3821
        else:
-
 
3822
            if storeOrderDetail.cardRefundAmount == 0:
-
 
3823
                storeOrderDetail.payStatus = StorePaymentStatus.ADV_REFUNDED
-
 
3824
            else:
-
 
3825
                storeOrderDetail.payStatus = StorePaymentStatus.REFUND_REQUESTED
-
 
3826
                
-
 
3827
            if storeOrderDetail.cashRefundAmount > 0:
-
 
3828
                __push_store_collection_to_hotspot(order, "RefundFromStore", -storeOrderDetail.cashRefundAmount, 0)
-
 
3829
                
-
 
3830
    elif order.source == 2 and order.status in (OrderStatus.RTO_RECEIVED_PRESTINE, OrderStatus.RTO_RECEIVED_DAMAGED, \
-
 
3831
                                                OrderStatus.RET_PRODUCT_UNUSABLE, OrderStatus.RET_PRODUCT_USABLE, \
-
 
3832
                                                OrderStatus.RET_RECEIVED_DAMAGED, OrderStatus.RET_LOST_IN_TRANSIT ,\
-
 
3833
                                                OrderStatus.DOA_CERT_INVALID, OrderStatus.DOA_CERT_VALID, \
-
 
3834
                                                OrderStatus.DOA_RECEIVED_DAMAGED, OrderStatus.DOA_LOST_IN_TRANSIT):
-
 
3835
        storeOrderDetail = StoreOrderDetail.query.filter(StoreOrderDetail.orderId == order.id).filter(StoreOrderDetail.storeId == order.storeId).first()
-
 
3836
        if storeOrderDetail.payStatus not in (StorePaymentStatus.ADV_REFUNDED , StorePaymentStatus.REFUND_INITIATED, \
-
 
3837
                                          StorePaymentStatus.REFUND_REQUESTED, StorePaymentStatus.REFUNDED):
-
 
3838
            storeOrderDetail.payStatus = StorePaymentStatus.REFUND_REQUESTED
-
 
3839
        else:
-
 
3840
            order.status = status_transition[order.status]
-
 
3841
            order.refund_reason = reason
-
 
3842
            session.commit()
-
 
3843
            return True
-
 
3844
        
-
 
3845
    order.status = status_transition[order.status]
3798
    order.status = status_transition[order.status]
3846
    order.refund_timestamp = datetime.datetime.now()
3799
    order.refund_timestamp = datetime.datetime.now()
3847
    order.refunded_by = refunded_by
3800
    order.refunded_by = refunded_by
3848
    order.refund_reason = reason
3801
    order.refund_reason = reason
3849
    #to re evaluate the shipping charge if any order is being cancelled.
3802
    #to re evaluate the shipping charge if any order is being cancelled.