Rev 3559 | Rev 4155 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
'''Created on 01-Oct-2011@author: Varun GuptaMax uses: 100BB Playbook 16GB 1090 offBB Playbook 64GB 1690 offHTC P510e Flyer 500 offMotorola Xoom WiFi 3G 1700 offSamsung P7500 Galaxy Tab 2500 offSpice Mi-720 Tab 1500 off'''from shop2020.thriftpy.model.v1.user.ttypes import PromotionException, Discountfrom shop2020.model.v1.user.impl.PromotionRuleDataUtilities import get_coupon_usage_count, get_coupon_usage_count_by_userfrom shop2020.clients.CatalogClient import CatalogClientdef execute(cart, coupon_code, args):#Allow only first 100 users to use the couponcount_coupon_usage = get_coupon_usage_count(coupon_code)if count_coupon_usage >= 100:raise PromotionException(112, 'This promotion is over.')discounts = []if cart.lines:total_selling_price = 0total_discounted_price = 0has_qualified_model = Falsefor line in cart.lines:line.discountedPrice = line.actualPricediscount_value = 0if line.itemId == 1543: #Playbook 16GBhas_qualified_model = Trueif line.actualPrice:line.discountedPrice = line.actualPrice - 1090discount_value = 1090elif line.itemId == 1550: #Playbook 64GBhas_qualified_model = Trueif line.actualPrice:line.discountedPrice = line.actualPrice - 1690discount_value = 1690elif line.itemId == 1551: #HTC Flyer P510ehas_qualified_model = Trueif line.actualPrice:line.discountedPrice = line.actualPrice - 500discount_value = 500elif line.itemId == 1552: #Motorola Xoom WiFi 3Ghas_qualified_model = Trueif line.actualPrice:line.discountedPrice = line.actualPrice - 1700discount_value = 1700elif line.itemId == 2005: #Samsung P7500 Galaxy Tabhas_qualified_model = Trueif line.actualPrice:line.discountedPrice = line.actualPrice - 2500discount_value = 2500elif line.itemId == 2022: #Spice Mi-720 Tabhas_qualified_model = Trueif line.actualPrice:line.discountedPrice = line.actualPrice - 1500discount_value = 1500total_selling_price += line.actualPrice * line.quantitytotal_discounted_price += line.discountedPrice * line.quantityif discount_value > 0:discount = Discount()discount.cart_id = cart.iddiscount.item_id = line.itemIddiscount.discount = discount_valuediscount.quantity = line.quantitydiscounts.append(discount)if has_qualified_model is False:raise PromotionException(115, 'This coupon is applicable only for selective tablets.')cart.totalPrice = total_selling_pricecart.discountedPrice = total_discounted_pricereturn cart, discounts