Subversion Repositories SmartDukaan

Rev

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

Rev 2019 Rev 2026
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)