Subversion Repositories SmartDukaan

Rev

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

Rev 122 Rev 132
Line 2... Line 2...
2
Created on 29-Mar-2010
2
Created on 29-Mar-2010
3
 
3
 
4
@author: ashish
4
@author: ashish
5
'''
5
'''
6
from shop2020.model.v1.order.impl.DataService import Transaction, LineItem,\
6
from shop2020.model.v1.order.impl.DataService import Transaction, LineItem,\
7
    AdditionalInfo, Payment, Shipment, TransactionTrail, Billing
7
    AdditionalInfo, Payment, Shipment, TransactionTrail, Billing, ItemInfo
8
from shop2020.thriftpy.model.v1.order.ttypes import Transaction as T_Transaction,\
8
from shop2020.thriftpy.model.v1.order.ttypes import Transaction as T_Transaction,\
9
    TransactionServiceException
9
    TransactionServiceException
10
import datetime
10
import datetime
11
from shop2020.utils.OrderStatus import status_transaction_init,\
11
from shop2020.utils.OrderStatus import status_transaction_init,\
12
    status_shipment_shipped, status_shipment_delivered
12
    status_shipment_shipped, status_shipment_delivered
Line 29... Line 29...
29
    if not orderinfo:
29
    if not orderinfo:
30
        raise TransactionServiceException(101, "Orderinfo missing from the transaction")
30
        raise TransactionServiceException(101, "Orderinfo missing from the transaction")
31
    transaction = get_new_transaction()
31
    transaction = get_new_transaction()
32
    for line_item in orderinfo.lineitems:
32
    for line_item in orderinfo.lineitems:
33
        litem = LineItem()
33
        litem = LineItem()
-
 
34
        if line_item.item.id:
34
        litem.item_id = line_item.item
35
            litem.item_id = line_item.item.id
-
 
36
            item_info = ItemInfo()
-
 
37
            item_info.price = line_item.item.price
-
 
38
            item_info.weight = line_item.item.weight
-
 
39
            litem.item_info = item_info
35
        litem.added_on = to_py_date(line_item.addedOn)
40
        litem.added_on = to_py_date(line_item.addedOn)
36
        transaction.lineitems.append(litem)
41
        transaction.lineitems.append(litem)
37
        if line_item.additionalInfo:
42
        if line_item.additionalInfo:
38
            for k,v in line_item.additionalInfo.iteritems():
43
            for k,v in line_item.additionalInfo.iteritems():
39
                additional_info = AdditionalInfo()
44
                additional_info = AdditionalInfo()
40
                additional_info.key = k
45
                additional_info.key = k
41
                additional_info.value = v
46
                additional_info.value = v
42
                litem.additional_info.append(additional_info)
47
                litem.additional_info.append(additional_info)
-
 
48
    if t_transaction.shoppingCartid:
-
 
49
        transaction.shopping_cart_id = t_transaction.shoppingCartid
-
 
50
    transaction.customer_id = t_transaction.customer_id
-
 
51
    transaction.expected_delivery_time = to_py_date(t_transaction.expectedDeliveryTime)
-
 
52
    transaction.status = t_transaction.transactionStatus
-
 
53
    transaction.status_message = t_transaction.statusDescription
-
 
54
    transaction.createdOn = to_py_date(t_transaction.createdOn)
43
    
55
    
-
 
56
    #add payment info
-
 
57
    #transaction.payments=[]
-
 
58
    if t_transaction.paymentInfo:
-
 
59
        if not t_transaction.paymentInfo.payments:
-
 
60
            raise TransactionServiceException(108, "no payments found")
-
 
61
        
-
 
62
        for k,v in t_transaction.paymentInfo.payments.iteritems():
-
 
63
            payment = Payment()
-
 
64
            payment.merchant_tx_id = v.merchant_tx_id
-
 
65
            payment.bank_tx_id = v.bank_tx_id
-
 
66
            payment.mode = v.mode
-
 
67
            payment.amount = v.amount
-
 
68
            payment.payment_id = v.id
-
 
69
            payment.status = v.status
-
 
70
            payment.status_message = v.description
-
 
71
            payment.start_time = to_py_date(v.submissionTimestamp)
-
 
72
            payment.finish_time = to_py_date(v.completionTimestamp)
-
 
73
            transaction.payments.append(payment)
44
    session.commit()
74
    session.commit()
45
    return transaction.id
75
    return transaction.id
46
            
76
            
47
    
77
    
48
def get_transaction(transaction_id):
78
def get_transaction(transaction_id):
Line 270... Line 300...
270
        raise TransactionServiceException(108, "no lineitems, hence no billing with transaction %d"%(transaction_id))
300
        raise TransactionServiceException(108, "no lineitems, hence no billing with transaction %d"%(transaction_id))
271
    billings = []
301
    billings = []
272
    for lineitem in transaction.lineitems:
302
    for lineitem in transaction.lineitems:
273
        billings.append(lineitem.billing)
303
        billings.append(lineitem.billing)
274
    return billings
304
    return billings
275
    return transaction.shipments
-
 
276
305
    return transaction.shipments
-
 
306
 
-
 
307
def get_transactions_for_shopping_cart_id(shopping_cart_id):
-
 
308
    transactions = Transaction.query.filter_by(shopping_cart_id=shopping_cart_id).all()
-
 
309
    if not transactions:
-
 
310
        raise TransactionServiceException(108, "transactions for this shopping cart")
-
 
311
    return transactions
-
 
312
277
313