Subversion Repositories SmartDukaan

Rev

Rev 132 | Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
104 ashish 1
'''
2
Created on 29-Mar-2010
3
 
4
@author: ashish
5
'''
6
from shop2020.model.v1.order.impl import DataService
7
from shop2020.model.v1.order.impl.DataAccessors import create_transaction,\
8
    get_transaction, get_all_transactions, get_transactions_for_shipment_status,\
9
    get_transactions_for_customer, get_transactions_for_customer_shipment,\
10
    get_transaction_status, change_transaction_status, set_shipping_tracker_info,\
11
    change_shipping_status, set_shipping_date, set_delivery_date, get_line_items,\
12
    get_shipments, get_billings, set_billing
13
from shop2020.model.v1.order.impl.Convertors import to_t_transaction,\
14
    to_t_lineitem, to_t_shipment, to_t_billing
15
from shop2020.thriftpy.model.v1.order.ttypes import Transaction, OrderInfo,\
16
    LineItem, ShipmentInfo, BillingInfo
17
from shop2020.utils import OrderStatus
18
from shop2020.utils.Utils import to_py_date, get_status_fdate_tdate
19
from shop2020.utils.OrderStatus import get_t_status, get_c_status
20
 
21
 
22
class OrderServiceHandler:
23
 
24
    def __init__(self):
25
        '''
26
        Constructor
27
        '''
28
        DataService.initialize()
29
 
30
    def createTransaction(self, transaction):
31
        """
32
        Parameters:
33
         - transaction
34
        """
35
        return create_transaction(transaction)
36
 
37
    def getTransaction(self, id):
38
        """
39
            Get transaction methods.
40
 
41
        Parameters:
42
         - id
43
        """
44
        transaction = get_transaction(id)
45
        return to_t_transaction(transaction)
46
 
47
    def getAllTransactions(self, status, from_date, to_date):
48
        """
49
        Parameters:
50
         - status
51
         - from_date
52
         - to_date
53
        """
54
        current_status, current_from_date, current_to_date = get_status_fdate_tdate(status, from_date, to_date)
55
 
56
        transactions = get_all_transactions(current_status, current_from_date, current_to_date)
57
        t_transaction = []
58
        for transaction in transactions:
59
            t_transaction.append(to_t_transaction(transaction))
60
        return t_transaction
61
 
62
 
63
    def getTransactionsForShipmentStatus(self, status, from_date, to_date):
64
        """
65
        Parameters:
66
         - status
67
         - from_date
68
         - to_date
69
        """
70
        current_status, current_from_date, current_to_date = get_status_fdate_tdate(status, from_date, to_date)
71
 
72
        transactions = get_transactions_for_shipment_status(current_status, current_from_date, current_to_date)
73
        t_transaction = []
74
        for transaction in transactions:
75
            t_transaction.append(to_t_transaction(transaction))
76
        return t_transaction
77
 
78
    def getTransactionsForCustomer(self, customerId, from_date, to_date, status):
79
        """
80
        Parameters:
81
         - customerId
82
         - from_date
83
         - to_date
84
         - status
85
        """
86
        current_status, current_from_date, current_to_date = get_status_fdate_tdate(status, from_date, to_date)
87
 
88
        transactions = get_transactions_for_customer(customerId, current_from_date, current_to_date, current_status)
89
        t_transaction = []
90
        for transaction in transactions:
91
            t_transaction.append(to_t_transaction(transaction))
92
        return t_transaction
93
 
94
 
95
    def getTransactionsForCustomerAndShipmentStatus(self, customerId, from_date, to_date, status):
96
        """
97
        Parameters:
98
         - customerId
99
         - from_date
100
         - to_date
101
         - status
102
        """
103
        current_status, current_from_date, current_to_date = get_status_fdate_tdate(status, from_date, to_date)
104
 
105
        transactions = get_transactions_for_customer_shipment(customerId, current_from_date, current_to_date, current_status)
106
        t_transaction = []
107
        for transaction in transactions:
108
            t_transaction.append(to_t_transaction(transaction))
109
        return t_transaction
110
 
111
    def getTransactionStatus(self, transactionId):
112
        """
113
        Parameters:
114
         - transactionId
115
        """
116
        return get_t_status(get_transaction_status(transactionId))
117
 
118
    def changeTransactionStatus(self, transactionId, status, description):
119
        """
120
        Parameters:
121
         - transactionId
122
         - status
123
         - description
124
        """
125
        return change_transaction_status(transactionId, get_c_status(status), description)
126
 
127
    def getOrderInfo(self, transactionId):
128
        """
129
            Get and set individual objects in it
130
        *
131
 
132
        Parameters:
133
         - transactionId
134
        """
135
        lineitems = get_line_items(transactionId)
136
        order_info = OrderInfo()
137
        order_info.lineitems = []
138
        for lineitem in lineitems:
139
            order_info.lineitems.append(to_t_lineitem(lineitem))
140
            order_info.id = lineitem.transaction.id
141
 
142
        return order_info
143
 
144
    def getShippingInfo(self, transactionId):
145
        """
146
        Parameters:
147
         - transactionId
148
        """
149
        shipments = get_shipments(transactionId)
150
        shipment_info = ShipmentInfo()
151
        shipment_info.shipments = []
152
        for shipment in shipments:
153
            shipment_info.shipments.append(to_t_shipment(shipment))
154
            shipment_info.id = shipment.id
155
        return shipment_info
156
    def getBillingInfo(self, transactionId):
157
        """
158
        Parameters:
159
         - transactionId
160
        """
161
        billings = get_billings(transactionId)
162
        billing_info = BillingInfo()
163
        billing_info.billings = []
164
        if billings:
165
            for billing in billings:
166
                billing_info.billings.append(to_t_billing(billing))
167
                billing_info.id = billing.line_item.transaction.id
168
        return billing_info
169
 
170
    def addBilling(self, transactionId, billing):
171
        """
172
        Parameters:
173
         - tranactionId
174
         - billing
175
        """
176
        return set_billing(transactionId, billing)
177
 
178
    def setShippingTracker(self, transactionId, shippingId, trackingId, airwayBillNo, provider):
179
        """
180
        Parameters:
181
         - transactionId
182
         - shippingId
183
         - trackingId
184
         - airwayBillNo
185
         - provider
186
        """
187
        return set_shipping_tracker_info(transactionId, shippingId, trackingId, airwayBillNo, provider)
188
 
189
    def setShippingDate(self, transactionId, shippingId, timestamp):
190
        """
191
        Parameters:
192
         - transactionId
193
         - shippingId
194
         - timestamp
195
        """
196
        return set_shipping_date(transactionId, shippingId, to_py_date(timestamp))
197
 
198
    def setDeliveryDate(self, transactionId, shippingid, timestamp):
199
        """
200
        Parameters:
201
         - transactionId
202
         - shippingid
203
         - timestamp
204
        """
205
        return set_delivery_date(transactionId, shippingid, timestamp)
206
 
207
    def changeShippingStatus(self, transactionId, shippingId, status, description):
208
        """
209
        Parameters:
210
         - transactionId
211
         - shippingId
212
         - status
213
         - description
214
        """
215
        return change_shipping_status(transactionId, shippingId, get_c_status(status), description)
216
 
217
 
218
if __name__ == "__main__":
219
    order = OrderServiceHandler()
220
    t = order.getTransaction(4)
221
    print t