Subversion Repositories SmartDukaan

Rev

Rev 11660 | Rev 11663 | 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()
11660 amit.gupta 24
            privateDeals= catalog_client.getAllActivePrivateDeals(itemIds,0)
11662 amit.gupta 25
            print `privateDeals`
11653 amit.gupta 26
            if(len(privateDeals) == 0):
27
                raise PromotionException(115, 'None of the products have valid Private Deal')
28
            dealItems = privateDeals.keys()
29
            total_discounts = 0
30
            for line in cart.lines:
31
                if line.itemId in dealItems:
11662 amit.gupta 32
                    discountAmount = line.actualPrice - privateDeals[line.itemId].dealPrice
33
                    if discountAmount > 0:
34
                        discount = Discount()
35
                        discount.cart_id = cart.id
36
                        discount.item_id = line.itemId
37
                        discount.quantity = line.quantity
38
                        discount.discount = discountAmount 
39
                        discounts.append(discount)
40
                        total_discounts = total_discounts + discountAmount
11653 amit.gupta 41
                    if privateDeals[line.itemId].dealTextOption==0:
42
                        line.dealText = ''
43
                    if privateDeals[line.itemId].dealTextOption==2:
44
                        line.dealText =  privateDeals[line.itemId].dealText
45
 
46
                    if privateDeals[line.itemId].dealFreebieOption==0:
47
                        line.freebieId = 0
48
                    if privateDeals[line.itemId].dealFreebieOption==2:
49
                        line.freebieId =  privateDeals[line.itemId].dealFreebieItemId
50
 
51
 
52
 
53
            cart.discountedPrice = cart.totalPrice - round(total_discounts, 0)
54
            return cart, discounts
55