Subversion Repositories SmartDukaan

Rev

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

Rev 23176 Rev 23183
Line 572... Line 572...
572
            item_id = order.lineitems[0].item_id
572
            item_id = order.lineitems[0].item_id
573
            if pickUp == PickUpType.RUNNER or pickUp == PickUpType.SELF:
573
            if pickUp == PickUpType.RUNNER or pickUp == PickUpType.SELF:
574
                current_time = datetime.datetime.now()
574
                current_time = datetime.datetime.now()
575
                logistics_info = logistics_client.getLogisticsInfo(order.customer_pincode, item_id, DeliveryType.PREPAID, pickUp)
575
                logistics_info = logistics_client.getLogisticsInfo(order.customer_pincode, item_id, DeliveryType.PREPAID, pickUp)
576
                order.logistics_provider_id = logistics_info.providerId
576
                order.logistics_provider_id = logistics_info.providerId
-
 
577
                if pdu.isFofo:
-
 
578
                    ###For fofo always use RQuick - Surface i.e. 48
-
 
579
                    order.logistics_provider_id = 48
-
 
580
                    logistics_info.deliveryTime = logistics_info.shippingTime + 1
-
 
581
                    
577
                if pdu.isFofo and fofoWarehousesMap:
582
                    if fofoWarehousesMap:
578
                    order.fulfilmentWarehouseId = fofoWarehousesMap.get(item_id).id
583
                        order.fulfilmentWarehouseId = fofoWarehousesMap.get(item_id).id
579
                    order.warehouse_id = fofoWarehousesMap.get(item_id).billingWarehouseId
584
                        order.warehouse_id = fofoWarehousesMap.get(item_id).billingWarehouseId
580
                else:
585
                else:
581
                    order.warehouse_id = logistics_info.warehouseId
586
                    order.warehouse_id = logistics_info.warehouseId
582
                    order.fulfilmentWarehouseId = logistics_info.fulfilmentWarehouseId
587
                    order.fulfilmentWarehouseId = logistics_info.fulfilmentWarehouseId
583
                
588
                
584
                logistics_info.deliveryTime = adjust_delivery_time(current_time, logistics_info.deliveryTime)
589
                logistics_info.deliveryTime = adjust_delivery_time(current_time, logistics_info.deliveryTime)
Line 593... Line 598...
593
                order.otg = False
598
                order.otg = False
594
                
599
                
595
                    
600
                    
596
                inventory_client = InventoryClient().get_client()
601
                inventory_client = InventoryClient().get_client()
597
                    
602
                    
598
#                if OrderType.B2B == order.orderType:
-
 
599
#                    #get state
-
 
600
#                    stateMaster = fetchStateMaster()
-
 
601
#                    stateId = -1
-
 
602
#                    for k, v in stateMaster.iteritems():
-
 
603
#                        if v.stateName == order.customer_state:
-
 
604
#                            stateId = k
-
 
605
#                            break
-
 
606
#                    if stateId == -1:
-
 
607
#                        raise TransactionServiceException(108, "No such State")
-
 
608
#                    if not inventory_client.isAlive():
-
 
609
#                        inventory_client = InventoryClient().get_client()
-
 
610
#                    ffWarehouse = inventory_client.getWarehouse(order.fulfilmentWarehouseId)
-
 
611
#                    if stateId!= ffWarehouse.stateId:
-
 
612
#                        goodWhIds = inventory_client.getOursGoodWarehouseIdsForLocation(stateId)
-
 
613
#                        if goodWhIds is None or len(goodWhIds) == 0:
-
 
614
#                            raise TransactionServiceException(108, "No availability from this location")
-
 
615
#                        fulfilmentWarehouseId = goodWhIds[0]
-
 
616
#                        for goodWhId in goodWhIds:
-
 
617
#                            availability = inventory_client.getItemAvailibilityAtWarehouse(goodWhId, order.lineitems[0].item_id)
-
 
618
#                            if availability > 0:
-
 
619
#                                fulfilmentWarehouseId = goodWhId
-
 
620
#                                break
-
 
621
#                        
-
 
622
#                        order.fulfilmentWarehouseId = fulfilmentWarehouseId
-
 
623
#                        fulfillmentWh = inventory_client.getWarehouse(fulfilmentWarehouseId)
-
 
624
#                        order.warehouse_id = fulfillmentWh.billingWarehouseId
-
 
625
                                
-
 
626
                if order.pickupStoreId:
-
 
627
                    order.otg = False
-
 
628
                    
-
 
629
                if order.productCondition != ProductCondition.BAD:
603
                if order.productCondition != ProductCondition.BAD:
630
                    inventory_client.reserveItemInWarehouse(item_id, order.fulfilmentWarehouseId, sourceId, order.id, to_java_date(order.created_timestamp), to_java_date(order.promised_shipping_time), order.lineitems[0].quantity)
604
                    inventory_client.reserveItemInWarehouse(item_id, order.fulfilmentWarehouseId, sourceId, order.id, to_java_date(order.created_timestamp), to_java_date(order.promised_shipping_time), order.lineitems[0].quantity)
631
 
605
 
632
            elif order.source == OrderSource.WEBSITE:
606
            elif order.source == OrderSource.WEBSITE:
633
                try:
607
                try:
Line 658... Line 632...
658
                subOrderAmountsMap[long(order.lineitems[0].unit_price)] = order
632
                subOrderAmountsMap[long(order.lineitems[0].unit_price)] = order
659
                    
633
                    
660
                order.fulfilmentWarehouseId = fulfilmentWhId
634
                order.fulfilmentWarehouseId = fulfilmentWhId
661
                order.warehouse_id = billingWarehouseId
635
                order.warehouse_id = billingWarehouseId
662
                
636
                
663
#                fulfilmentWarehouseId = fulfilmentWhId
-
 
664
#                if OrderType.B2B == order.orderType:
-
 
665
#                    #get state
-
 
666
#                    stateMaster = fetchStateMaster()
-
 
667
#                    stateId = -1
-
 
668
#                    for k, v in stateMaster.iteritems():
-
 
669
#                        if v.stateName == order.customer_state:
-
 
670
#                            stateId = k
-
 
671
#                            break
-
 
672
#                    if stateId == -1:
-
 
673
#                        raise TransactionServiceException(108, "No such State")
-
 
674
#                    if not inventory_client.isAlive():
-
 
675
#                        inventory_client = InventoryClient().get_client()
-
 
676
#                    ffWarehouse = inventory_client.getWarehouse(order.fulfilmentWarehouseId)
-
 
677
#                    if stateId!= ffWarehouse.stateId:
-
 
678
#                        goodWhIds = inventory_client.getOursGoodWarehouseIdsForLocation(stateId)
-
 
679
#                        if goodWhIds is None or len(goodWhIds) == 0:
-
 
680
#                            raise TransactionServiceException(108, "No availability from this location")
-
 
681
#                        fulfilmentWarehouseId = goodWhIds[0]
-
 
682
#                        for goodWhId in goodWhIds:
-
 
683
#                            availability = inventory_client.getItemAvailibilityAtWarehouse(goodWhId, order.lineitems[0].item_id)
-
 
684
#                            if availability > 0:
-
 
685
#                                fulfilmentWarehouseId = goodWhId
-
 
686
#                                break
-
 
687
#                        
-
 
688
#                        order.fulfilmentWarehouseId = fulfilmentWarehouseId
-
 
689
#                        fulfillmentWh = inventory_client.getWarehouse(fulfilmentWarehouseId)
-
 
690
#                        order.warehouse_id = fulfillmentWh.billingWarehouseId
-
 
691
                                
-
 
692
                if order.pickupStoreId:
-
 
693
                    order.otg = False
-
 
694
                    
637
                    
695
                if order.productCondition != ProductCondition.BAD:
638
                if order.productCondition != ProductCondition.BAD:
696
                    inventory_client.reserveItemInWarehouse(item_id, order.fulfilmentWarehouseId, sourceId, order.id, to_java_date(order.created_timestamp), to_java_date(order.promised_shipping_time), order.lineitems[0].quantity)
639
                    inventory_client.reserveItemInWarehouse(item_id, order.fulfilmentWarehouseId, sourceId, order.id, to_java_date(order.created_timestamp), to_java_date(order.promised_shipping_time), order.lineitems[0].quantity)
697
        
640
        
698
            try:
641
            try:
Line 741... Line 684...
741
                shippingTime = adjust_delivery_time(current_time, shipping_delay)
684
                shippingTime = adjust_delivery_time(current_time, shipping_delay)
742
                delivery_delay = adjust_delivery_time(current_time, shipping_delay+delivery_delay)
685
                delivery_delay = adjust_delivery_time(current_time, shipping_delay+delivery_delay)
743
                #Otg is currently available to both type of users. 
686
                #Otg is currently available to both type of users. 
744
                order.otg = costingAndDeliveryEstimateObj.otgAvailable
687
                order.otg = costingAndDeliveryEstimateObj.otgAvailable
745
                
688
                
-
 
689
                #If RQuick Surface then dont change shipping details
-
 
690
                if order.logistics_provider_id != 48:
746
                order.logistics_provider_id = costingAndDeliveryEstimateObj.logistics_provider_id
691
                    order.logistics_provider_id = costingAndDeliveryEstimateObj.logistics_provider_id
747
                #Start:- Added by Manish Sharma for FedEx Integration - Shipment Creation on 31-Jul-2013
692
                #Start:- Added by Manish Sharma for FedEx Integration - Shipment Creation on 31-Jul-2013
748
                #order.airwaybill_no = logistics_info.airway_billno
693
                #order.airwaybill_no = logistics_info.airway_billno
749
                #order.tracking_id = order.airwaybill_no
694
                #order.tracking_id = order.airwaybill_no
750
                #End:- Added by Manish Sharma for FedEx Integration- Shipment Creation on 31-Jul-2013
695
                #End:- Added by Manish Sharma for FedEx Integration- Shipment Creation on 31-Jul-2013
751
                #TODO APR2516 Promised Delivery Time should also consider delivery delay.
696
                #TODO APR2516 Promised Delivery Time should also consider delivery delay.
752
                order.courier_delivery_time = (current_time + datetime.timedelta(days=delivery_delay)).replace(hour=PREPAID_SHIPPING_CUTOFF_TIME, minute=0, second=0)
697
                    order.courier_delivery_time = (current_time + datetime.timedelta(days=delivery_delay)).replace(hour=PREPAID_SHIPPING_CUTOFF_TIME, minute=0, second=0)
753
                order.expected_shipping_time = (current_time + datetime.timedelta(days=shippingTime)).replace(hour=PREPAID_SHIPPING_CUTOFF_TIME, minute=0, second=0)
698
                    order.expected_shipping_time = (current_time + datetime.timedelta(days=shippingTime)).replace(hour=PREPAID_SHIPPING_CUTOFF_TIME, minute=0, second=0)
754
                order.promised_shipping_time = order.expected_shipping_time
699
                    order.promised_shipping_time = order.expected_shipping_time
755
                order.expected_delivery_time = (current_time + datetime.timedelta(days=deliveryTime)).replace(hour=PREPAID_SHIPPING_CUTOFF_TIME, minute=0, second=0)
700
                    order.expected_delivery_time = (current_time + datetime.timedelta(days=deliveryTime)).replace(hour=PREPAID_SHIPPING_CUTOFF_TIME, minute=0, second=0)
756
                order.promised_delivery_time = order.expected_delivery_time
701
                    order.promised_delivery_time = order.expected_delivery_time
757
                itemLevelLogisticsCost = round((order.total_weight *logisticsCost)/transactionWeight, 2)
702
                itemLevelLogisticsCost = round((order.total_weight *logisticsCost)/transactionWeight, 2)
758
                logisticsCostInOrders = logisticsCostInOrders + itemLevelLogisticsCost
703
                logisticsCostInOrders = logisticsCostInOrders + itemLevelLogisticsCost
759
                order.lineitems[0].logisticsCost = itemLevelLogisticsCost
704
                order.lineitems[0].logisticsCost = itemLevelLogisticsCost
760
                order.lineitems[0].codCollectionCharges = 0
705
                order.lineitems[0].codCollectionCharges = 0
761
        
706