Subversion Repositories SmartDukaan

Rev

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

Rev 5382 Rev 5386
Line 398... Line 398...
398
 
398
 
399
def get_order_list(order_ids):
399
def get_order_list(order_ids):
400
    orders = Order.query.filter(Order.id.in_(tuple(order_ids)))
400
    orders = Order.query.filter(Order.id.in_(tuple(order_ids)))
401
    return orders
401
    return orders
402
 
402
 
-
 
403
def get_order_list_for_vendor(order_ids, vendor_id):
-
 
404
    if vendor_id == -1:
-
 
405
        return get_order_list(order_ids)
-
 
406
    else:
-
 
407
        orders = Order.query.filter_by(vendorId = vendor_id).filter(Order.id.in_(tuple(order_ids)))
-
 
408
        return orders
-
 
409
 
403
def get_orders_for_customer(customer_id, from_date, to_date, statuses):
410
def get_orders_for_customer(customer_id, from_date, to_date, statuses):
404
    if not customer_id:
411
    if not customer_id:
405
        raise TransactionServiceException(101, "bad customer id")
412
        raise TransactionServiceException(101, "bad customer id")
406
    query = Order.query.filter(Order.customer_id == customer_id)
413
    query = Order.query.filter(Order.customer_id == customer_id)
407
    if statuses:
414
    if statuses:
Line 1478... Line 1485...
1478
            order.statusDescription = "Order Cancelled"
1485
            order.statusDescription = "Order Cancelled"
1479
        elif order.status == OrderStatus.BILLED:
1486
        elif order.status == OrderStatus.BILLED:
1480
            __create_return_order(order)
1487
            __create_return_order(order)
1481
            order.statusDescription = "Order Cancelled"
1488
            order.statusDescription = "Order Cancelled"
1482
        elif order.status in [OrderStatus.RTO_RECEIVED_PRESTINE, OrderStatus.RTO_RECEIVED_DAMAGED, OrderStatus.RTO_LOST_IN_TRANSIT]:
1489
        elif order.status in [OrderStatus.RTO_RECEIVED_PRESTINE, OrderStatus.RTO_RECEIVED_DAMAGED, OrderStatus.RTO_LOST_IN_TRANSIT]:
-
 
1490
            if order.status != OrderStatus.RTO_LOST_IN_TRANSIT:
1483
            __create_return_order(order)
1491
                __create_return_order(order)
1484
            order.statusDescription = "RTO Refunded"
1492
            order.statusDescription = "RTO Refunded"
1485
        elif order.status in [OrderStatus.LOST_IN_TRANSIT]:
1493
        elif order.status in [OrderStatus.LOST_IN_TRANSIT]:
1486
            __create_return_order(order)
1494
            #__create_return_order(order)
1487
            order.statusDescription = "Lost in Transit Refunded"
1495
            order.statusDescription = "Lost in Transit Refunded"
1488
        elif order.status in [OrderStatus.DOA_CERT_INVALID, OrderStatus.DOA_CERT_VALID, OrderStatus.DOA_RECEIVED_DAMAGED, OrderStatus.DOA_LOST_IN_TRANSIT] :
1496
        elif order.status in [OrderStatus.DOA_CERT_INVALID, OrderStatus.DOA_CERT_VALID, OrderStatus.DOA_RECEIVED_DAMAGED, OrderStatus.DOA_LOST_IN_TRANSIT] :
-
 
1497
            if order.status != OrderStatus.DOA_LOST_IN_TRANSIT:
1489
            __create_return_order(order)
1498
                __create_return_order(order)
1490
            __create_refund(order)
1499
            __create_refund(order)
1491
            order.statusDescription = "DOA Refunded"
1500
            order.statusDescription = "DOA Refunded"
1492
        elif order.status in [OrderStatus.RET_PRODUCT_UNUSABLE, OrderStatus.RET_PRODUCT_USABLE, OrderStatus.RET_RECEIVED_DAMAGED, OrderStatus.RET_LOST_IN_TRANSIT] :
1501
        elif order.status in [OrderStatus.RET_PRODUCT_UNUSABLE, OrderStatus.RET_PRODUCT_USABLE, OrderStatus.RET_RECEIVED_DAMAGED, OrderStatus.RET_LOST_IN_TRANSIT] :
-
 
1502
            if order.status != OrderStatus.RET_LOST_IN_TRANSIT:
1493
            __create_return_order(order)
1503
                __create_return_order(order)
1494
            __create_refund(order)
1504
            __create_refund(order)
1495
            order.statusDescription = "Return Refunded"
1505
            order.statusDescription = "Return Refunded"
1496
        elif order.status == OrderStatus.CANCEL_REQUEST_CONFIRMED:
1506
        elif order.status == OrderStatus.CANCEL_REQUEST_CONFIRMED:
1497
            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]:
1507
            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]:
1498
                __update_inventory_reservation(order)
1508
                __update_inventory_reservation(order)
Line 1525... Line 1535...
1525
                     }
1535
                     }
1526
        if order.status not in status_transition.keys():
1536
        if order.status not in status_transition.keys():
1527
            raise TransactionServiceException(114, "This order can't be refunded")
1537
            raise TransactionServiceException(114, "This order can't be refunded")
1528
    
1538
    
1529
        if order.status in [OrderStatus.RTO_RECEIVED_PRESTINE, OrderStatus.RTO_RECEIVED_DAMAGED, OrderStatus.RTO_LOST_IN_TRANSIT] :
1539
        if order.status in [OrderStatus.RTO_RECEIVED_PRESTINE, OrderStatus.RTO_RECEIVED_DAMAGED, OrderStatus.RTO_LOST_IN_TRANSIT] :
-
 
1540
            if order.status != OrderStatus.RTO_LOST_IN_TRANSIT:
1530
            __create_return_order(order)
1541
                __create_return_order(order)
1531
            __create_refund(order)
1542
            __create_refund(order)
1532
            order.statusDescription = "RTO Refunded"
1543
            order.statusDescription = "RTO Refunded"
1533
        elif order.status in [OrderStatus.LOST_IN_TRANSIT]:
1544
        elif order.status in [OrderStatus.LOST_IN_TRANSIT]:
1534
            __create_return_order(order)
1545
            #__create_return_order(order)
1535
            __create_refund(order)
1546
            __create_refund(order)
1536
            order.statusDescription = "Lost in Transit Refunded"
1547
            order.statusDescription = "Lost in Transit Refunded"
1537
        elif order.status in [OrderStatus.DOA_CERT_INVALID, OrderStatus.DOA_CERT_VALID, OrderStatus.DOA_RECEIVED_DAMAGED, OrderStatus.DOA_LOST_IN_TRANSIT] :
1548
        elif order.status in [OrderStatus.DOA_CERT_INVALID, OrderStatus.DOA_CERT_VALID, OrderStatus.DOA_RECEIVED_DAMAGED, OrderStatus.DOA_LOST_IN_TRANSIT] :
-
 
1549
            if order.status != OrderStatus.DOA_LOST_IN_TRANSIT:
1538
            __create_return_order(order)
1550
                __create_return_order(order)
1539
            __create_refund(order)
1551
            __create_refund(order)
1540
            order.statusDescription = "DOA Refunded"
1552
            order.statusDescription = "DOA Refunded"
1541
        elif order.status in [OrderStatus.RET_PRODUCT_UNUSABLE, OrderStatus.RET_PRODUCT_USABLE, OrderStatus.RET_RECEIVED_DAMAGED, OrderStatus.RET_LOST_IN_TRANSIT] :
1553
        elif order.status in [OrderStatus.RET_PRODUCT_UNUSABLE, OrderStatus.RET_PRODUCT_USABLE, OrderStatus.RET_RECEIVED_DAMAGED, OrderStatus.RET_LOST_IN_TRANSIT] :
-
 
1554
            if order.status != OrderStatus.RET_LOST_IN_TRANSIT:
1542
            __create_return_order(order)
1555
                __create_return_order(order)
1543
            __create_refund(order)
1556
            __create_refund(order)
1544
            order.statusDescription = "Return Refunded"
1557
            order.statusDescription = "Return Refunded"
1545
        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]:
1558
        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]:
1546
            __update_inventory_reservation(order)
1559
            __update_inventory_reservation(order)
1547
            order.statusDescription = "Order Refunded"
1560
            order.statusDescription = "Order Refunded"
Line 2318... Line 2331...
2318
        query = query.filter(Order.billing_timestamp <= billing_date_to)
2331
        query = query.filter(Order.billing_timestamp <= billing_date_to)
2319
 
2332
 
2320
    return query.all()
2333
    return query.all()
2321
 
2334
 
2322
def get_orders_where_vendor_not_paid(vendor_id):
2335
def get_orders_where_vendor_not_paid(vendor_id):
2323
    query = Order.query.filter_by(vendorId = vendor_id)
-
 
2324
    query = query.filter(Order.billing_timestamp != None)
2336
    query = Order.query.filter(Order.billing_timestamp != None)
2325
    query = query.filter(Order.vendor_paid != True)
2337
    query = query.filter(Order.vendor_paid != True)
2326
    orderStatusGroup = OrderStatusGroups()
2338
    if vendor_id != -1:
2327
    query = query.filter(not_(Order.status.in_(orderStatusGroup.refundedOrders)))
2339
        query = query.filter_by(vendorId = vendor_id)
2328
    #query = query.filter(not_(Order.status.in_([15,31,32,33,34,48,50,54,56,70,72,76,74,79])))
-
 
2329
    #(15,31,32,33,34,48,54,70,72,74)
2340
    
2330
    return query.all()
2341
    return query.all()
2331
 
2342
 
2332
def save_bluedart_settlements(map_awb_and_amount):
2343
def save_bluedart_settlements(map_awb_and_amount):
2333
    payment_client = PaymentClient().get_client()
2344
    payment_client = PaymentClient().get_client()
2334
    
2345
    
Line 2341... Line 2352...
2341
        settlement.paymentGatewayId = payment.gatewayId
2352
        settlement.paymentGatewayId = payment.gatewayId
2342
        settlement.netCollection = amount
2353
        settlement.netCollection = amount
2343
        session.commit()
2354
        session.commit()
2344
 
2355
 
2345
def save_payment_settlements(settlementDate, paymentGatewayId, referenceId, serviceTax, otherCharges, netCollection):
2356
def save_payment_settlements(settlementDate, paymentGatewayId, referenceId, serviceTax, otherCharges, netCollection):
-
 
2357
    originalOrderId = None
-
 
2358
    if paymentGatewayId == 4:
-
 
2359
        cod_order = Order.get_by(id = referenceId)
-
 
2360
        if cod_order.originalOrderId:
-
 
2361
            originalOrderId = cod_order.originalOrderId
2346
    
2362
        else:
-
 
2363
            originalOrderId = referenceId
2347
    settlement = PaymentSettlement()
2364
    settlement = PaymentSettlement()
2348
    settlement.settlementDate = settlementDate
2365
    settlement.settlementDate = settlementDate
2349
    settlement.paymentGatewayId = paymentGatewayId
2366
    settlement.paymentGatewayId = paymentGatewayId
-
 
2367
    if originalOrderId is not None:
-
 
2368
        settlement.originalOrderId = originalOrderId
2350
    settlement.referenceId = referenceId
2369
    settlement.referenceId = referenceId
2351
    settlement.serviceTax = serviceTax
2370
    settlement.serviceTax = serviceTax
2352
    settlement.otherCharges = otherCharges
2371
    settlement.otherCharges = otherCharges
2353
    settlement.netCollection = netCollection
2372
    settlement.netCollection = netCollection
2354
    session.commit()
2373
    session.commit()
2355
 
2374
 
2356
def get_settlement_for_referenceId(reference_id, payment_gateway_id, is_refund = False):
2375
def get_settlement_for_Prepaid(reference_id, is_refund = False):
2357
    query = PaymentSettlement.query.filter_by(referenceId = reference_id)
2376
    query = PaymentSettlement.query.filter_by(referenceId = reference_id).filter(PaymentSettlement.paymentGatewayId != 4)
2358
    
2377
    
2359
    if is_refund:
2378
    if is_refund:
2360
        query = query.filter(PaymentSettlement.netCollection < 0)
2379
        query = query.filter(PaymentSettlement.netCollection < 0)
2361
    else:
2380
    else:
2362
        query = query.filter(PaymentSettlement.netCollection > 0)
2381
        query = query.filter(PaymentSettlement.netCollection > 0)
2363
    
2382
    
-
 
2383
    return query.first()
-
 
2384
 
-
 
2385
def get_settlement_for_Cod(orderId, is_refund = False):
-
 
2386
    query = PaymentSettlement.query.filter_by(originalOrderId = orderId)
-
 
2387
    
2364
    if payment_gateway_id:
2388
    if is_refund:
-
 
2389
        query = query.filter(PaymentSettlement.netCollection < 0)
-
 
2390
    else:
2365
        query = query.filter_by(paymentGatewayId = payment_gateway_id)
2391
        query = query.filter(PaymentSettlement.netCollection > 0)
2366
    
2392
    
2367
    return query.first()
2393
    return query.first()
2368
 
2394
 
2369
def save_ebs_settlement_summary(settlement_id, settlement_date, transaction_date_from, transaction_date_to, amount):
2395
def save_ebs_settlement_summary(settlement_id, settlement_date, transaction_date_from, transaction_date_to, amount):
2370
    summary = EBSSettlementSummary()
2396
    summary = EBSSettlementSummary()
Line 2499... Line 2525...
2499
        original_order_id = paid_order.originalOrderId
2525
        original_order_id = paid_order.originalOrderId
2500
        
2526
        
2501
        for order in Order.query.filter(Order.originalOrderId == original_order_id).all():
2527
        for order in Order.query.filter(Order.originalOrderId == original_order_id).all():
2502
            order.vendor_paid = True
2528
            order.vendor_paid = True
2503
            session.commit()
2529
            session.commit()
2504
            original_order_id = order.originalOrderId
-
 
2505
        
2530
        
2506
        original_order = Order.get_by(id = original_order_id)
2531
        original_order = Order.get_by(id = original_order_id)
2507
        if original_order:  original_order.vendor_paid = True
2532
        if original_order:  original_order.vendor_paid = True
2508
        session.commit()
2533
        session.commit()
2509
        
2534
        
Line 2515... Line 2540...
2515
    agent.orderId = orderId
2540
    agent.orderId = orderId
2516
    agent.verificationAgent = agentEmailId
2541
    agent.verificationAgent = agentEmailId
2517
    session.commit()
2542
    session.commit()
2518
    
2543
    
2519
 
2544
 
-
 
2545
def update_order_only_as_paid_to_vendor(order_id):
-
 
2546
    paid_order = Order.get_by(id = order_id)
-
 
2547
    if paid_order is None:
-
 
2548
        raise TransactionServiceException(116, "No order found for the given order id")
-
 
2549
    paid_order.vendor_paid = True
-
 
2550
    session.commit()
-
 
2551
 
2520
def get_refunded_orders_marked_paid():
2552
def get_refunded_orders_marked_paid():
2521
    orderStatusGroup = OrderStatusGroups()
2553
    orderStatusGroup = OrderStatusGroups()
2522
    return Order.query.filter(Order.vendor_paid == 1).filter(Order.status.in_(orderStatusGroup.refundedOrders)).all()
2554
    return Order.query.filter(Order.vendor_paid == 1).filter(Order.status.in_(orderStatusGroup.refundedOrders)).all()
2523
 
2555
 
2524
def close_session():
2556
def close_session():