Subversion Repositories SmartDukaan

Rev

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

Rev 3386 Rev 3554
Line 40... Line 40...
40
    coupon = Coupon.get_by(coupon_code = coupon_code)
40
    coupon = Coupon.get_by(coupon_code = coupon_code)
41
    
41
    
42
    if coupon:
42
    if coupon:
43
        user_client = UserClient().get_client()
43
        user_client = UserClient().get_client()
44
        cart = user_client.getCart(cart_id)
44
        cart = user_client.getCart(cart_id)
-
 
45
        
45
        coupon_module = coupon.promotion.rule_execution_src.strip()
46
        coupon_module = coupon.promotion.rule_execution_src.strip()
46
        
47
        
47
        try:
48
        try:
-
 
49
            user_client.deleteDiscountsFromCart(cart_id)
48
            imported_coupon_module = __import__("shop2020.model.v1.user.promotionrules", globals(), locals(), [coupon_module])
50
            imported_coupon_module = __import__("shop2020.model.v1.user.promotionrules", globals(), locals(), [coupon_module])
49
            rule = eval("imported_coupon_module." + coupon_module)
51
            rule = eval("imported_coupon_module." + coupon_module)
50
            
52
            
51
            args = eval(coupon.arguments) if coupon.arguments is not None else {}
53
            args = eval(coupon.arguments) if coupon.arguments is not None else {}
52
            
54
            
53
            updated_cart = rule.execute(cart, coupon_code, args)
55
            updated_cart, discounts = rule.execute(cart, coupon_code, args)
-
 
56
            
-
 
57
            if discounts and len(discounts) > 0:    user_client.saveDiscounts(discounts)
-
 
58
            
54
            user_client.applyCouponToCart(cart_id, coupon_code, updated_cart.totalPrice, updated_cart.discountedPrice)
59
            user_client.applyCouponToCart(cart_id, coupon_code, updated_cart.totalPrice, updated_cart.discountedPrice)
-
 
60
            
55
            return updated_cart
61
            return updated_cart
56
        
62
        
57
        except ImportError as e:
63
        except ImportError as e:
58
            traceback.print_stack()
64
            traceback.print_stack()
59
            #TODO: Better message
65
            #TODO: Better message