Subversion Repositories SmartDukaan

Rev

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

Rev 4941 Rev 5469
Line 4... Line 4...
4
'''
4
'''
5
from shop2020.clients.UserClient import UserClient
5
from shop2020.clients.UserClient import UserClient
6
from shop2020.clients.CatalogClient import CatalogClient
6
from shop2020.clients.CatalogClient import CatalogClient
7
from shop2020.thriftpy.model.v1.user.ttypes import PromotionException
7
from shop2020.thriftpy.model.v1.user.ttypes import PromotionException
8
from shop2020.model.v1.user.impl import Dataservice
8
from shop2020.model.v1.user.impl import Dataservice
9
from shop2020.model.v1.user.impl.Dataservice import Promotion, Coupon, PromotionTracker
9
from shop2020.model.v1.user.impl.Dataservice import Promotion, Coupon, PromotionTracker,\
-
 
10
    RechargeVoucher
10
from shop2020.utils.Utils import to_py_date
11
from shop2020.utils.Utils import to_py_date
11
 
12
 
12
from elixir import session
13
from elixir import session
13
import datetime, traceback
14
import datetime, traceback
14
 
15
 
Line 126... Line 127...
126
            item_coupons_discounts.append((item_id, discount[0], discount[1]))
127
            item_coupons_discounts.append((item_id, discount[0], discount[1]))
127
            break
128
            break
128
    
129
    
129
    return item_coupons_discounts
130
    return item_coupons_discounts
130
 
131
 
-
 
132
def add_voucher(t_voucher):
-
 
133
    voucher = RechargeVoucher()
-
 
134
    voucher.available = True
-
 
135
    voucher.amount = t_voucher.amount
-
 
136
    voucher.voucherCode = t_voucher.voucherCode
-
 
137
    voucher.voucherType = t_voucher.voucherType
-
 
138
    if t_voucher.issuedOn:
-
 
139
        voucher.issuedOn = to_py_date(t_voucher.issuedOn)
-
 
140
    if t_voucher.expiredOn:
-
 
141
        voucher.expiredOn = to_py_date(t_voucher.expiredOn)
-
 
142
    session.commit()
-
 
143
    
-
 
144
def assign_voucher(userId, userEmail, voucherType, amount):
-
 
145
    voucher = RechargeVoucher.query.filter_by(voucherType = voucherType, amount = amount, available = True).first()
-
 
146
    if not voucher:
-
 
147
        raise PromotionException(501, 'Voucher of this type is not available.')
-
 
148
    voucher.userId = userId
-
 
149
    voucher.available = False
-
 
150
    voucher.issuedOn = datetime.datetime.now()
-
 
151
    voucher.email = userEmail
-
 
152
    session.commit()
-
 
153
    return voucher
-
 
154
 
-
 
155
def mark_voucher_as_redeemed(voucherCode, redeemedOn):
-
 
156
    voucher = RechargeVoucher.query.filter_by(voucherCode = voucherCode).first()
-
 
157
    voucher.redeemedOn = to_py_date(redeemedOn)
-
 
158
    voucher.redeemed = True
-
 
159
    session.commit()
-
 
160
    return True
-
 
161
 
131
class ItemDiscountFinder:
162
class ItemDiscountFinder:
132
    
163
    
133
    def __init__(self):
164
    def __init__(self):
134
        self.coupon_modules = {}
165
        self.coupon_modules = {}
135
        coupons = get_active_coupons()
166
        coupons = get_active_coupons()