Subversion Repositories SmartDukaan

Rev

Rev 11658 | Rev 11660 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
11653 amit.gupta 1
'''
2
Created on 06-Dec-2011
3
 
4
@author: varungupta
5
'''
6
 
7
from shop2020.clients.CatalogClient import CatalogClient
8
from shop2020.clients.UserClient import UserClient
9
from shop2020.model.v1.user.impl.Dataservice import PrivateDealUser
10
from shop2020.thriftpy.model.v1.user.ttypes import PromotionException, Discount
11
 
12
 
13
def execute(cart, coupon_code, args):
14
    user_client = UserClient().get_client()
15
    user = user_client.getUserByCartId(cart.id)
16
    #email = user.email.lower().strip()
11658 amit.gupta 17
    privateDealUser = PrivateDealUser.get_by(id=user.userId)
11653 amit.gupta 18
    if privateDealUser==None or not privateDealUser.isActive:
19
        if cart.lines != None:
20
            discounts = []
21
            itemIds = []
22
            [itemIds.append(line.itemId) for line in cart.lines]
11659 amit.gupta 23
            catalog_client = CatalogClient().get_client()
24
            privateDeals= catalog_client.getValidPrivateDeals(itemIds,0)
11653 amit.gupta 25
            if(len(privateDeals) == 0):
26
                raise PromotionException(115, 'None of the products have valid Private Deal')
27
            dealItems = privateDeals.keys()
28
            total_discounts = 0
29
            for line in cart.lines:
30
                if line.itemId in dealItems:
31
                    discount = Discount()
32
                    discount.cart_id = cart.id
33
                    discount.item_id = line.itemId
34
                    discount.quantity = line.quantity
35
                    discount.discount = line.actualPrice - privateDeals[line.itemId].dealPrice
36
                    discounts.append(discount)
37
                    total_discounts = total_discounts + discount.discount
38
                    if privateDeals[line.itemId].dealTextOption==0:
39
                        line.dealText = ''
40
                    if privateDeals[line.itemId].dealTextOption==2:
41
                        line.dealText =  privateDeals[line.itemId].dealText
42
 
43
                    if privateDeals[line.itemId].dealFreebieOption==0:
44
                        line.freebieId = 0
45
                    if privateDeals[line.itemId].dealFreebieOption==2:
46
                        line.freebieId =  privateDeals[line.itemId].dealFreebieItemId
47
 
48
 
49
 
50
            cart.discountedPrice = cart.totalPrice - round(total_discounts, 0)
51
            return cart, discounts
52