Subversion Repositories SmartDukaan

Rev

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

Rev 4266 Rev 4283
Line 137... Line 137...
137
            litem.quantity = line_item.quantity
137
            litem.quantity = line_item.quantity
138
            litem.unit_price = line_item.unit_price
138
            litem.unit_price = line_item.unit_price
139
            litem.unit_weight = line_item.unit_weight
139
            litem.unit_weight = line_item.unit_weight
140
            litem.total_price = line_item.total_price
140
            litem.total_price = line_item.total_price
141
            litem.total_weight = line_item.total_weight
141
            litem.total_weight = line_item.total_weight
142
            litem.transfer_price = line_item.transfer_price
142
            '''litem.transfer_price = line_item.transfer_price'''
143
            litem.dealText = line_item.dealText
143
            litem.dealText = line_item.dealText
144
            
144
            
145
            """
145
            """
146
            if line_item.addedOn:
146
            if line_item.addedOn:
147
                litem.added_on = to_py_date(line_item.addedOn)
147
                litem.added_on = to_py_date(line_item.addedOn)
Line 220... Line 220...
220
            order.promised_delivery_time = order.expected_delivery_time 
220
            order.promised_delivery_time = order.expected_delivery_time 
221
            
221
            
222
            catalog_client = CatalogClient().get_client()
222
            catalog_client = CatalogClient().get_client()
223
            catalog_client.reserveItemInWarehouse(item_id, logistics_info.warehouseId, order.lineitems[0].quantity)
223
            catalog_client.reserveItemInWarehouse(item_id, logistics_info.warehouseId, order.lineitems[0].quantity)
224
 
224
 
225
            item_pricing = catalog_client.getItemPricing(item_id, order.warehouse_id)
225
            '''item_pricing = catalog_client.getItemPricing(item_id, order.warehouse_id)
226
            order.lineitems[0].transfer_price = item_pricing.transferPrice
226
            order.lineitems[0].transfer_price = item_pricing.transferPrice'''
227
    elif new_status == TransactionStatus.COD_IN_PROCESS:
227
    elif new_status == TransactionStatus.COD_IN_PROCESS:
228
        for order in transaction.orders:
228
        for order in transaction.orders:
229
            order.status = OrderStatus.INIT
229
            order.status = OrderStatus.INIT
230
            order.statusDescription = "Verification Pending"
230
            order.statusDescription = "Verification Pending"
231
            order.cod = True
231
            order.cod = True
Line 249... Line 249...
249
            order.promised_delivery_time = order.expected_delivery_time
249
            order.promised_delivery_time = order.expected_delivery_time
250
            
250
            
251
            catalog_client = CatalogClient().get_client()
251
            catalog_client = CatalogClient().get_client()
252
            catalog_client.reserveItemInWarehouse(item_id, logistics_info.warehouseId, order.lineitems[0].quantity)
252
            catalog_client.reserveItemInWarehouse(item_id, logistics_info.warehouseId, order.lineitems[0].quantity)
253
 
253
 
254
            item_pricing = catalog_client.getItemPricing(item_id, order.warehouse_id)
254
            '''item_pricing = catalog_client.getItemPricing(item_id, order.warehouse_id)
255
            order.lineitems[0].transfer_price = item_pricing.transferPrice        
255
            order.lineitems[0].transfer_price = item_pricing.transferPrice'''        
256
 
256
 
257
    session.commit()
257
    session.commit()
258
 
258
 
259
    try:
259
    try:
260
        if new_status == TransactionStatus.COD_IN_PROCESS:
260
        if new_status == TransactionStatus.COD_IN_PROCESS:
Line 598... Line 598...
598
        logging.info("Successfully captured payment for merchant txn:" + str(txnId))
598
        logging.info("Successfully captured payment for merchant txn:" + str(txnId))
599
        change_transaction_status(txnId, TransactionStatus.IN_PROCESS, "Payment received")
599
        change_transaction_status(txnId, TransactionStatus.IN_PROCESS, "Payment received")
600
    else:
600
    else:
601
        raise TransactionServiceException(115, "Payment capture failed.")
601
        raise TransactionServiceException(115, "Payment capture failed.")
602
 
602
 
603
def bill_order(self, orderId):
-
 
604
    order = get_order(orderId)
-
 
605
    order.status = OrderStatus.BILLED
-
 
606
    order.statusDescription = "Order Billed"
-
 
607
    order.billing_timestamp = datetime.datetime.now()
-
 
608
    session.commit()
-
 
609
    return True
-
 
610
 
-
 
611
def add_billing_details(orderId, invoice_number, billed_by, jacketNumber):
-
 
612
    order = Order.get_by(id=orderId)
-
 
613
    if not order:
-
 
614
        raise TransactionServiceException(101, "No order found for the given order id:" + str(orderId))
-
 
615
    order.invoice_number = invoice_number
-
 
616
    order.billed_by = billed_by
-
 
617
    order.jacket_number = jacketNumber
-
 
618
    session.commit()
-
 
619
    return True
-
 
620
 
-
 
621
def add_jacket_number(self, orderId, jacket_number, imei_number, item_number, billed_by, billing_type):
603
def add_billing_details(self, orderId, jacket_number, imei_number, item_number, invoice_number, billed_by, billing_type, vendor_id):
622
    if jacket_number is None or jacket_number <= 0:
604
    if jacket_number is None or jacket_number <= 0:
623
        raise TransactionServiceException(110, "Invalid jacket number")
605
        raise TransactionServiceException(110, "Invalid jacket number")
624
    
606
    
625
    if item_number is None or item_number.strip() == "":
-
 
626
        raise TransactionServiceException(110, "Invalid item number")
-
 
627
    
-
 
628
    if billed_by is None or billed_by.strip() == "":
607
    if billed_by is None or billed_by.strip() == "":
629
        raise TransactionServiceException(110, "Invalid Biller")
608
        raise TransactionServiceException(110, "Invalid Biller")
630
    
609
    
631
    order = Order.get_by(id=orderId)
610
    order = Order.get_by(id=orderId)
632
    if not order:
611
    if not order:
633
        raise TransactionServiceException(101, "No order found for the given order id" + str(orderId))
612
        raise TransactionServiceException(101, "No order found for the given order id" + str(orderId))
634
    
613
    
-
 
614
    if order.status == OrderStatus.ACCEPTED:
635
    order.jacket_number = jacket_number
615
        order.jacket_number = jacket_number
636
    if billing_type == BillingType.OURS:
616
        if billing_type == BillingType.OURS:
-
 
617
            if item_number is None or item_number.strip() == "":
-
 
618
                raise TransactionServiceException(110, "Invalid item number")
-
 
619
 
637
        order.invoice_number = get_next_invoice_number()
620
            order.invoice_number = get_next_invoice_number()
-
 
621
            lineitem = order.lineitems[0]
-
 
622
            if lineitem.productGroup == "Handsets" and imei_number <= 0:
-
 
623
                raise TransactionServiceException(110, "No IMEI number supplied for a handset.")
-
 
624
            lineitem.item_number = item_number
-
 
625
            if imei_number > 0:
-
 
626
                lineitem.imei_number = str(imei_number)
-
 
627
        else:
638
        order.billed_by = billed_by
628
            order.invoice_number = invoice_number
-
 
629
        
639
        order.status = OrderStatus.BILLED
630
        order.status = OrderStatus.BILLED
640
        order.statusDescription = "Order Billed"
631
        order.statusDescription = "Order Billed"
641
        order.billing_timestamp = datetime.datetime.now()
632
        order.billing_timestamp = datetime.datetime.now()
642
    
633
        order.billed_by = billed_by
643
        lineitem = order.lineitems[0]
634
        lineitem = order.lineitems[0]
-
 
635
        item_id = lineitem.item_id
644
        if lineitem.productGroup == "Handsets" and imei_number <= 0:
636
        catalog_client = CatalogClient().get_client()
-
 
637
        '''catalog_client.reserveItemInWarehouse(item_id, logistics_info.warehouseId, order.lineitems[0].quantity)'''
645
            raise TransactionServiceException(110, "No IMEI number supplied for a handset.")
638
        item_pricing = catalog_client.getItemPricing(item_id, vendor_id)
-
 
639
        order.vendorId = vendor_id
646
        lineitem.item_number = item_number
640
        lineitems = order.lineitems
647
        if imei_number > 0:
641
        for lineitem in lineitems:
-
 
642
            catalog_client.reduceReservationCount(item_id, order.warehouse_id, lineitem.quantity)
648
            lineitem.imei_number = str(imei_number)
643
        order.lineitems[0].transfer_price = item_pricing.transferPrice
649
    
-
 
650
    session.commit()
644
        session.commit()
651
    return True
645
        return True
-
 
646
    else:
-
 
647
        return False
652
 
648
 
653
def batch_orders(warehouseId):
649
def batch_orders(warehouseId):
654
    if not warehouseId:
650
    if not warehouseId:
655
        raise TransactionServiceException(101, "bad warehouse id")
651
        raise TransactionServiceException(101, "bad warehouse id")
656
    
652
    
Line 1567... Line 1563...
1567
        refund_order(order.id, refundedBy, reason)
1563
        refund_order(order.id, refundedBy, reason)
1568
    session.commit()
1564
    session.commit()
1569
    
1565
    
1570
def mark_order_cancellation_request_denied(orderId):
1566
def mark_order_cancellation_request_denied(orderId):
1571
    """
1567
    """
1572
    If we decide to not to cancel order, we will move the order ro previous status.
1568
    If we decide to not to cancel order, we will move the order to previous status.
1573
    
1569
    
1574
    Parameters:
1570
    Parameters:
1575
     - orderId
1571
     - orderId
1576
    """
1572
    """
1577
    order = get_order(orderId)
1573
    order = get_order(orderId)