Subversion Repositories SmartDukaan

Rev

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

Rev 18381 Rev 18418
Line 442... Line 442...
442
        customer_pincode = address.pin
442
        customer_pincode = address.pin
443
 
443
 
444
    user = User.get_by(active_cart_id = cartId)
444
    user = User.get_by(active_cart_id = cartId)
445
    
445
    
446
    dealItems = []
446
    dealItems = []
-
 
447
    bulkPricingMap ={}
-
 
448
    bulkPricingItems =[]
447
    privateDealUser = PrivateDealUser.get_by(id=user.id)    
449
    privateDealUser = PrivateDealUser.get_by(id=user.id)    
448
    if privateDealUser is not None and privateDealUser.isActive:
450
    if privateDealUser is not None and privateDealUser.isActive:
449
        itemIds = [cartLine.item_id for cartLine in cart.lines]
451
        itemIds = [cartLine.item_id for cartLine in cart.lines]
450
        deals = inventory_client.getAllActivePrivateDeals(itemIds, 0)
452
        deals = inventory_client.getAllActivePrivateDeals(itemIds, 0)
451
        dealItems = deals.keys()
453
        dealItems = deals.keys()
-
 
454
        bulkPricingMap = inventory_client.getBulkPricingForItems(itemIds)
-
 
455
        bulkPricingItems = bulkPricingMap.keys() 
452
 
456
 
453
    if not customer_pincode:
457
    if not customer_pincode:
454
        default_address_id = user.default_address_id
458
        default_address_id = user.default_address_id
455
        if default_address_id:
459
        if default_address_id:
456
            address = Address.get_by(id = default_address_id)
460
            address = Address.get_by(id = default_address_id)
Line 467... Line 471...
467
        item_shipping_info = inventory_client.isActive(item_id) 
471
        item_shipping_info = inventory_client.isActive(item_id) 
468
        if item_shipping_info.isActive:
472
        if item_shipping_info.isActive:
469
            if item_shipping_info.isRisky and item_shipping_info.quantity < line.quantity:
473
            if item_shipping_info.isRisky and item_shipping_info.quantity < line.quantity:
470
                line.quantity = 1
474
                line.quantity = 1
471
                retval = "Try adding a smaller quantity of " + item.brand + " " + item.modelNumber + " (" + item.color + ")"
475
                retval = "Try adding a smaller quantity of " + item.brand + " " + item.modelNumber + " (" + item.color + ")"
-
 
476
            bulkPrice = None
-
 
477
            if item_id in bulkPricingItems:
-
 
478
                #Check quantity qualifies or not
-
 
479
                bulkPricingList = bulkPricingMap.get(item_id)
-
 
480
                bulkPricingList = sorted(bulkPricingList, key=lambda x: x.quantity, reverse=False)
-
 
481
                for pricingItems in bulkPricingList:
-
 
482
                    if pricingItems.quantity <= line.quantity:
-
 
483
                        bulkPrice = pricingItems
-
 
484
                    else:
-
 
485
                        break
-
 
486
                
472
                 
487
                 
473
            if item_id in dealItems:
488
            if item_id in dealItems:
-
 
489
                if bulkPrice is None:
474
                line.actual_price = deals[item_id].dealPrice
490
                    line.actual_price = deals[item_id].dealPrice
-
 
491
                else:
-
 
492
                    line.actual_price = bulkPrice.price
475
                if deals[item_id].dealTextOption==0:
493
                if deals[item_id].dealTextOption==0:
476
                    line.dealText = ''
494
                    line.dealText = ''
477
                if deals[item_id].dealTextOption==2:
495
                if deals[item_id].dealTextOption==2:
478
                    line.dealText =  deals[item_id].dealText
496
                    line.dealText =  deals[item_id].dealText
479
                    
497
                    
Line 481... Line 499...
481
                    line.freebieId = 0
499
                    line.freebieId = 0
482
                if deals[item_id].dealFreebieOption==2:
500
                if deals[item_id].dealFreebieOption==2:
483
                    line.freebieId =  deals[item_id].dealFreebieItemId
501
                    line.freebieId =  deals[item_id].dealFreebieItemId
484
 
502
 
485
            else:
503
            else:
-
 
504
                if bulkPrice is None:
486
                line.actual_price = item.sellingPrice 
505
                    line.actual_price = item.sellingPrice
-
 
506
                else:
-
 
507
                    line.actual_price = bulkPrice.price 
487
                line.dealText = None
508
                line.dealText = None
488
                line.freebieId = None
509
                line.freebieId = None
489
            cart.total_price = cart.total_price + (line.actual_price * line.quantity)
510
            cart.total_price = cart.total_price + (line.actual_price * line.quantity)
490
            try:
511
            try:
491
                item_delivery_estimate = logistics_client.getLogisticsEstimation(item_id, customer_pincode, DeliveryType.PREPAID).deliveryTime
512
                item_delivery_estimate = logistics_client.getLogisticsEstimation(item_id, customer_pincode, DeliveryType.PREPAID).deliveryTime
Line 824... Line 845...
824
    totalAmount = 0 
845
    totalAmount = 0 
825
    shippingCharges=0
846
    shippingCharges=0
826
    cartMessages=[]
847
    cartMessages=[]
827
    cartItems = []
848
    cartItems = []
828
    dealItems = []
849
    dealItems = []
-
 
850
    bulkPricingMap ={}
-
 
851
    bulkPricingItems =[]
829
    
852
    
830
    responseMap['shippingCharges']= shippingCharges
853
    responseMap['shippingCharges']= shippingCharges
831
    responseMap['cartMessages']= cartMessages
854
    responseMap['cartMessages']= cartMessages
832
    responseMap['cartItems']= cartItems
855
    responseMap['cartItems']= cartItems
833
    responseMap['pincode']= customer_pincode
856
    responseMap['pincode']= customer_pincode
Line 835... Line 858...
835
    privateDealUser = PrivateDealUser.get_by(id=user.id)    
858
    privateDealUser = PrivateDealUser.get_by(id=user.id)    
836
    itemIds = [cartLine.item_id for cartLine in cart.lines]
859
    itemIds = [cartLine.item_id for cartLine in cart.lines]
837
    if privateDealUser is not None and privateDealUser.isActive:
860
    if privateDealUser is not None and privateDealUser.isActive:
838
        deals = inventory_client.getAllActivePrivateDeals(itemIds, 0)
861
        deals = inventory_client.getAllActivePrivateDeals(itemIds, 0)
839
        dealItems = deals.keys()
862
        dealItems = deals.keys()
-
 
863
        bulkPricingMap = inventory_client.getBulkPricingForItems(itemIds)
-
 
864
        bulkPricingItems = bulkPricingMap.keys() 
840
 
865
 
841
    cart.total_price = 0
866
    cart.total_price = 0
842
    itemsMap = inventory_client.getItems(itemIds)
867
    itemsMap = inventory_client.getItems(itemIds)
843
    
868
    
844
    cartMessageChanged = 0
869
    cartMessageChanged = 0
Line 846... Line 871...
846
    cartMessageUndeliverable = 0
871
    cartMessageUndeliverable = 0
847
    
872
    
848
    for line in cart_lines:
873
    for line in cart_lines:
849
        itemQuantityChanged=False
874
        itemQuantityChanged=False
850
        cartItem={}
875
        cartItem={}
-
 
876
        tempBulkItemList = []
851
        
877
        
852
        old_estimate = line.estimate
878
        old_estimate = line.estimate
853
        item_id = line.item_id
879
        item_id = line.item_id
854
        item = itemsMap.get(item_id)
880
        item = itemsMap.get(item_id)
855
        if item.itemStatus==0:
881
        if item.itemStatus==0:
Line 861... Line 887...
861
        cartItem['cartItemMessages']=[]
887
        cartItem['cartItemMessages']=[]
862
        cartItemMessages = cartItem['cartItemMessages']
888
        cartItemMessages = cartItem['cartItemMessages']
863
        cartItem['color'] = item.color
889
        cartItem['color'] = item.color
864
        cartItem['catalogItemId'] = item.catalogItemId
890
        cartItem['catalogItemId'] = item.catalogItemId
865
        cartItem['packQuantity'] = item.packQuantity
891
        cartItem['packQuantity'] = item.packQuantity
-
 
892
        cartItem['bulkPricing'] = tempBulkItemList
-
 
893
        bulkPrice = None
-
 
894
        if item_id in bulkPricingItems:
-
 
895
            #Check quantity qualifies or not
-
 
896
            bulkPricingList = bulkPricingMap.get(item_id)
-
 
897
            bulkPricingList = sorted(bulkPricingList, key=lambda x: x.quantity, reverse=False)
-
 
898
            for pricingItems in bulkPricingList:
-
 
899
                if pricingItems.quantity <= line.quantity:
-
 
900
                    bulkPrice = pricingItems
-
 
901
                tempBulkItemList.append({'quantity':pricingItems.quantity,'price':pricingItems.price})    
866
        
902
            
867
        if item_id in dealItems:
903
        if item_id in dealItems:
-
 
904
            if bulkPrice is None:
868
            line.actual_price = deals[item_id].dealPrice
905
                line.actual_price = deals[item_id].dealPrice
-
 
906
            else:
-
 
907
                line.actual_price = bulkPrice.price
869
            if deals[item_id].dealTextOption==0:
908
            if deals[item_id].dealTextOption==0:
870
                line.dealText = ''
909
                line.dealText = ''
871
            if deals[item_id].dealTextOption==2:
910
            if deals[item_id].dealTextOption==2:
872
                line.dealText = deals[item_id].dealText
911
                line.dealText = deals[item_id].dealText
873
                
912
                
Line 875... Line 914...
875
                line.freebieId = 0
914
                line.freebieId = 0
876
            if deals[item_id].dealFreebieOption==2:
915
            if deals[item_id].dealFreebieOption==2:
877
                line.freebieId =  deals[item_id].dealFreebieItemId
916
                line.freebieId =  deals[item_id].dealFreebieItemId
878
            cartItem['dealText'] = line.dealText
917
            cartItem['dealText'] = line.dealText
879
        else:
918
        else:
-
 
919
            if bulkPrice is None:
880
            line.actual_price = item.sellingPrice
920
                line.actual_price = item.sellingPrice
-
 
921
            else:
-
 
922
                line.actual_price = bulkPrice.price
881
            if item.bestDealText:
923
            if item.bestDealText:
882
                cartItem['dealText'] = item.bestDealText
924
                cartItem['dealText'] = item.bestDealText
883
            line.dealText = None
925
            line.dealText = None
884
            line.freebieId = None
926
            line.freebieId = None
885
        cartItem['sellingPrice'] = line.actual_price
927
        cartItem['sellingPrice'] = line.actual_price
Line 1006... Line 1048...
1006
            pincode = Address.get_by(id=found_cart.address_id).pin
1048
            pincode = Address.get_by(id=found_cart.address_id).pin
1007
        elif default_address_id is not None:
1049
        elif default_address_id is not None:
1008
            default_address = Address.get_by(id = default_address_id) 
1050
            default_address = Address.get_by(id = default_address_id) 
1009
            pincode = default_address.pin
1051
            pincode = default_address.pin
1010
        
1052
        
1011
        needInuranceInfo = False
1053
        needInsuranceInfo = False
1012
        if default_address_id is not None:
1054
        if default_address_id is not None:
1013
            for line in found_cart.lines:
1055
            for line in found_cart.lines:
1014
                if line.insurer > 0:
1056
                if line.insurer > 0:
1015
                    needInuranceInfo = not is_insurance_detail_present(default_address_id)
1057
                    needInsuranceInfo = not is_insurance_detail_present(default_address_id)
1016
                    break
1058
                    break
1017
        cartPlus = CartPlus()
1059
        cartPlus = CartPlus()
1018
        cartPlus.cart = to_t_cart(found_cart)
1060
        cartPlus.cart = to_t_cart(found_cart)
1019
        cartPlus.pinCode = pincode
1061
        cartPlus.pinCode = pincode
1020
        cartPlus.validateCartMessages = cart_messages
1062
        cartPlus.validateCartMessages = cart_messages
1021
        cartPlus.needInsuranceInfo = needInuranceInfo
1063
        cartPlus.needInsuranceInfo = needInsuranceInfo
1022
        return cartPlus
1064
        return cartPlus
1023
    finally:
1065
    finally:
1024
        close_session()
1066
        close_session()
1025
 
1067
 
1026
def close_session():
1068
def close_session():