| Line 3... |
Line 3... |
| 3 |
|
3 |
|
| 4 |
@author: ashish
|
4 |
@author: ashish
|
| 5 |
'''
|
5 |
'''
|
| 6 |
from elixir import *
|
6 |
from elixir import *
|
| 7 |
from shop2020.model.v1.user.impl.Dataservice import Cart, Line, Address, User
|
7 |
from shop2020.model.v1.user.impl.Dataservice import Cart, Line, Address, User
|
| 8 |
from shop2020.thriftpy.model.v1.user.ttypes import CartStatus, LineStatus, ShoppingCartException
|
8 |
from shop2020.thriftpy.model.v1.user.ttypes import CartStatus, LineStatus, ShoppingCartException,\
|
| - |
|
9 |
PromotionException
|
| 9 |
import datetime
|
10 |
import datetime
|
| 10 |
from shop2020.utils.Utils import to_py_date, to_java_date
|
11 |
from shop2020.utils.Utils import to_py_date, to_java_date
|
| 11 |
|
12 |
|
| 12 |
from shop2020.thriftpy.model.v1.order.ttypes import Transaction as TTransaction,\
|
13 |
from shop2020.thriftpy.model.v1.order.ttypes import Transaction as TTransaction,\
|
| 13 |
TransactionStatus as TTransactionStatus, Order as TOrder, LineItem as TLineItem, OrderStatus
|
14 |
TransactionStatus as TTransactionStatus, Order as TOrder, LineItem as TLineItem, OrderStatus
|
| Line 19... |
Line 20... |
| 19 |
from shop2020.clients.TransactionClient import TransactionClient
|
20 |
from shop2020.clients.TransactionClient import TransactionClient
|
| 20 |
from shop2020.clients.InventoryClient import InventoryClient
|
21 |
from shop2020.clients.InventoryClient import InventoryClient
|
| 21 |
from shop2020.clients.LogisticsClient import LogisticsClient
|
22 |
from shop2020.clients.LogisticsClient import LogisticsClient
|
| 22 |
from shop2020.model.v1 import user
|
23 |
from shop2020.model.v1 import user
|
| 23 |
from shop2020.clients.PromotionClient import PromotionClient
|
24 |
from shop2020.clients.PromotionClient import PromotionClient
|
| - |
|
25 |
from shop2020.model.v1.user.impl import UserDataAccessors
|
| 24 |
|
26 |
|
| 25 |
def get_cart(user_id):
|
27 |
def get_cart(user_id):
|
| 26 |
query = Cart.query.filter_by(user_id=user_id)
|
28 |
query = Cart.query.filter_by(user_id=user_id)
|
| 27 |
query = query.filter_by(cart_status = CartStatus.ACTIVE)
|
29 |
query = query.filter_by(cart_status = CartStatus.ACTIVE)
|
| 28 |
try:
|
30 |
try:
|
| Line 348... |
Line 350... |
| 348 |
if retval == "":
|
350 |
if retval == "":
|
| 349 |
retval = "Your cart has been updated after the last checkout."
|
351 |
retval = "Your cart has been updated after the last checkout."
|
| 350 |
session.commit()
|
352 |
session.commit()
|
| 351 |
|
353 |
|
| 352 |
if cart.coupon_code is not None:
|
354 |
if cart.coupon_code is not None:
|
| - |
|
355 |
try:
|
| 353 |
updated_cart = promotion_client.applyCoupon(cart.coupon_code, cart.id)
|
356 |
updated_cart = promotion_client.applyCoupon(cart.coupon_code, cart.id)
|
| 354 |
for t_line in updated_cart.lines:
|
357 |
for t_line in updated_cart.lines:
|
| 355 |
#Find the line in the database which corresponds to this line
|
358 |
#Find the line in the database which corresponds to this line
|
| 356 |
line = Line.query.filter_by(cart = cart).filter_by(item_id = t_line.itemId).one()
|
359 |
line = Line.query.filter_by(cart = cart).filter_by(item_id = t_line.itemId).one()
|
| 357 |
#Update its discounted price.
|
360 |
#Update its discounted price.
|
| 358 |
line.discounted_price = t_line.discountedPrice
|
361 |
line.discounted_price = t_line.discountedPrice
|
| 359 |
cart.discounted_price = updated_cart.discountedPrice
|
362 |
cart.discounted_price = updated_cart.discountedPrice
|
| 360 |
session.commit()
|
363 |
session.commit()
|
| - |
|
364 |
except PromotionException as ex:
|
| - |
|
365 |
remove_coupon(cart.id)
|
| - |
|
366 |
retval = ex.message
|
| 361 |
return retval
|
367 |
return retval
|
| 362 |
|
368 |
|
| 363 |
def merge_cart(fromCartId, toCartId):
|
369 |
def merge_cart(fromCartId, toCartId):
|
| 364 |
fromCart = Cart.get_by(id=fromCartId)
|
370 |
fromCart = Cart.get_by(id=fromCartId)
|
| 365 |
toCart = Cart.get_by(id=toCartId)
|
371 |
toCart = Cart.get_by(id=toCartId)
|