Subversion Repositories SmartDukaan

Rev

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

Rev 2133 Rev 2185
Line 1... Line 1...
1
#!/usr/bin/python
1
#!/usr/bin/python
2
 
2
 
3
import optparse
3
import optparse
4
import sys
4
import sys
5
 
5
 
-
 
6
from thrift.Thrift import TException
-
 
7
from shop2020.thriftpy.model.v1.user.ttypes import ShoppingCartException,\
-
 
8
    PromotionException
-
 
9
from shop2020.clients.UserClient import UserClient
-
 
10
from shop2020.clients.PromotionClient import PromotionClient
-
 
11
 
6
if __name__ == '__main__' and __package__ is None:
12
if __name__ == '__main__' and __package__ is None:
7
    import os
13
    import os
8
    sys.path.insert(0, os.getcwd())
14
    sys.path.insert(0, os.getcwd())
9
 
15
 
10
from shop2020.model.v1.order.impl import DataAccessors, DataService
16
from shop2020.model.v1.order.impl import DataAccessors, DataService
11
from shop2020.thriftpy.model.v1.order.ttypes import TransactionStatus
17
from shop2020.thriftpy.model.v1.order.ttypes import TransactionStatus
12
 
18
 
-
 
19
def reset_cart(transaction, userServiceClient):
-
 
20
    items = {}
-
 
21
    for order in transaction.orders:
-
 
22
        for line_item in order.lineitems:
-
 
23
            item_id = line_item.item_id
-
 
24
            quantity = items[item_id]
-
 
25
            if quantity is None:
-
 
26
                quantity = line_item.quantity
-
 
27
            else:
-
 
28
                quantity = quantity + line_item.quantity
-
 
29
            items[item_id] = quantity
-
 
30
 
-
 
31
    print items
-
 
32
    
-
 
33
    try:
-
 
34
        userServiceClient.getClient().resetCart(transaction.shopping_cart_id, items);
-
 
35
    except ShoppingCartException:
-
 
36
        print "Error while resetting the cart in the cart database"
-
 
37
        print sys.exc_info()
-
 
38
    except TException:
-
 
39
        print "Error while updating information in payment database."
-
 
40
        print sys.exc_info()
-
 
41
    except:
-
 
42
        print "Unexpected exception"
-
 
43
        print sys.exc_info()
-
 
44
 
-
 
45
def track_coupon_usage(transaction, userServiceClient):
-
 
46
    try:
-
 
47
        cart = userServiceClient.getClient().getCart(transaction.shopping_cart_id)
-
 
48
        coupon_code = cart.coupon_code
-
 
49
        
-
 
50
        if coupon_code is not None and coupon_code != '':
-
 
51
            PromotionClient().get_client().trackCouponUsage(coupon_code, transaction.id, transaction.customer_id);
-
 
52
    except ShoppingCartException:
-
 
53
        print "Error occurred in reading CardId for transaction"
-
 
54
        print sys.exc_info()
-
 
55
    except PromotionException:
-
 
56
        print "Promotion Exception: "
-
 
57
        print sys.exc_info()
-
 
58
    except TException:
-
 
59
        print "Transport from Promotion Service failed:"
-
 
60
        print sys.exc_info()
-
 
61
    except Exception:
-
 
62
        print "Unexpected exception:"
-
 
63
        print sys.exc_info()
-
 
64
 
13
def main():
65
def main():
14
    parser = optparse.OptionParser()
66
    parser = optparse.OptionParser()
15
    parser.add_option("-t", "--txn-id", dest="txn_id",
67
    parser.add_option("-t", "--txn-id", dest="txn_id",
16
                   type="int",
68
                   type="int",
17
                   help="mark the transaction TXN_ID and all its orders as successful",
69
                   help="mark the transaction TXN_ID and all its orders as successful",
Line 20... Line 72...
20
    if len(args) != 0:
72
    if len(args) != 0:
21
        parser.error("You've supplied extra arguments. Are you sure you want to run this program?")
73
        parser.error("You've supplied extra arguments. Are you sure you want to run this program?")
22
    if options.txn_id == None:
74
    if options.txn_id == None:
23
        parser.error("No Transaction id supplied")
75
        parser.error("No Transaction id supplied")
24
    DataService.initialize(echoOn=True)
76
    DataService.initialize(echoOn=True)
-
 
77
    transaction = DataAccessors.get_transaction(options.txn_id)
25
    DataAccessors.change_transaction_status(options.txn_id, TransactionStatus.IN_PROCESS, "Payment received for the order")
78
    DataAccessors.change_transaction_status(options.txn_id, TransactionStatus.IN_PROCESS, "Payment received for the order")
-
 
79
    DataAccessors.enqueue_transaction_info_email(options.txn_id)
-
 
80
    
-
 
81
    user_service_client = UserClient()
-
 
82
    reset_cart(transaction, user_service_client)
-
 
83
    track_coupon_usage(transaction, user_service_client)
26
 
84
 
27
if __name__ == '__main__':
85
if __name__ == '__main__':
28
    main()
86
    main()
29
87