Subversion Repositories SmartDukaan

Rev

Rev 358 | Rev 494 | Go to most recent revision | Details | Compare with Previous | 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,\
483 rajveer 8
create_order, get_new_transaction, get_transactions_for_customer, get_transaction_status,\
9
 get_line_items_for_order, get_transaction, get_transactions_for_shopping_cart_id,\
10
 change_transaction_status, get_orders_for_customer,get_orders_for_transaction, get_order,\
11
 get_all_orders, change_order_status, get_alerts, set_alert
104 ashish 12
from shop2020.model.v1.order.impl.Convertors import to_t_transaction,\
483 rajveer 13
    to_t_lineitem, to_t_alert, to_t_order, to_t_lineitem
14
from shop2020.thriftpy.model.v1.order.ttypes import Transaction, OrderStatus,\
15
    LineItem, Order
104 ashish 16
from shop2020.utils import OrderStatus
17
from shop2020.utils.Utils import to_py_date, get_status_fdate_tdate
18
from shop2020.utils.OrderStatus import get_t_status, get_c_status
19
 
20
 
21
class OrderServiceHandler:
22
 
23
    def __init__(self):
483 rajveer 24
        """
104 ashish 25
        Constructor
483 rajveer 26
        """
104 ashish 27
        DataService.initialize()
28
 
29
    def createTransaction(self, transaction):
30
        """
31
        Parameters:
32
         - transaction
33
        """
34
        return create_transaction(transaction)
35
 
36
    def getTransaction(self, id):
37
        """
38
            Get transaction methods.
39
 
40
        Parameters:
41
         - id
42
        """
43
        transaction = get_transaction(id)
44
        return to_t_transaction(transaction)
483 rajveer 45
    def getTransactionsForCustomer(self, customerId, from_date, to_date, status):
104 ashish 46
        """
47
        Parameters:
483 rajveer 48
         - customerId
104 ashish 49
         - from_date
50
         - to_date
483 rajveer 51
         - status
104 ashish 52
        """
53
        current_status, current_from_date, current_to_date = get_status_fdate_tdate(status, from_date, to_date)
483 rajveer 54
 
55
        transactions = get_transactions_for_customer(customerId, current_from_date, current_to_date, current_status)
104 ashish 56
        t_transaction = []
57
        for transaction in transactions:
58
            t_transaction.append(to_t_transaction(transaction))
59
        return t_transaction
483 rajveer 60
 
61
 
62
    def getTransactionsForShoppingCartId(self, shoppingCartId):
63
        """
64
        Parameters:
65
            - shoppingCartId
66
        """
67
        transactions = get_transactions_for_shopping_cart_id(shoppingCartId)
68
        t_transaction = []
69
        for transaction in transactions:
70
            t_transaction.append(to_t_transaction(transaction))
71
        return t_transaction
72
 
104 ashish 73
 
483 rajveer 74
    def getTransactionStatus(self, transactionId):
104 ashish 75
        """
76
        Parameters:
483 rajveer 77
         - transactionId
78
        """
79
        return get_t_status(get_transaction_status(transactionId))
80
 
81
    def changeTransactionStatus(self, transactionId, status, description):
82
        """
83
        Parameters:
84
         - transactionId
104 ashish 85
         - status
483 rajveer 86
         - description
87
        """
88
        return change_transaction_status(transactionId, get_c_status(status), description)
89
 
90
    def getOrdersForTransaction(self, transactionId):
91
        """
92
        Parameters:
93
         - transactionId
94
        """
95
        orders = get_orders_for_transaction(transactionId)
96
        t_orders = []
97
        for order in orders:
98
            t_orders.append(to_t_order(order))
99
        return t_orders
100
 
101
 
102
    def getAllOrders(self, status, from_date, to_date, warehouse_id):
103
        """
104
        Parameters:
105
         - status
104 ashish 106
         - from_date
107
         - to_date
483 rajveer 108
         - warehouse_id
104 ashish 109
        """
110
        current_status, current_from_date, current_to_date = get_status_fdate_tdate(status, from_date, to_date)
483 rajveer 111
 
112
 
113
        orders = get_all_orders(current_status, current_from_date, current_to_date, warehouse_id)
114
        t_orders = []
115
        for order in orders:
116
            t_orders.append(to_t_order(order))
117
        return t_orders
118
 
119
    def changeOrderStatus(self, orderId, status, description):
120
        """
121
        Parameters:
122
         - orderId
123
         - status
124
         - description
125
         - 
126
        """
127
        return change_order_status(self, orderId, status, description)
104 ashish 128
 
483 rajveer 129
    def getOrdersForCustomer(self, customerId, from_date, to_date, status):
104 ashish 130
        """
131
        Parameters:
132
         - customerId
133
         - from_date
134
         - to_date
135
         - status
136
        """
137
        current_status, current_from_date, current_to_date = get_status_fdate_tdate(status, from_date, to_date)
483 rajveer 138
 
139
        orders = get_orders_for_customer(customerId, current_from_date, current_to_date, current_status)
140
        t_orders = []
141
        for order in orders:
142
            t_orders.append(to_t_order(order))
143
        return t_orders
144
 
145
    def getOrder(self, id):
146
        """
147
        Parameters:
148
         - id
149
        """
150
        return to_t_order(get_order(id))
151
 
152
    def getLineItemsForOrder(self, orderId):
153
        """
154
        Parameters:
155
         - orderId
156
        """
157
        lineitems = get_line_items_for_order(orderId)
158
        t_lineitems = []
159
        for lineitem in lineitems:
160
            t_lineitems.append(to_t_lineitem(lineitem))
161
        return t_lineitems
104 ashish 162
 
483 rajveer 163
    def getAlerts(self, orderId, valid):
164
        """
165
        Parameters:
166
         - orderId
167
         - valid
168
        """
169
        alerts = get_alerts(orderId, valid)
170
 
171
        t_alerts = []
172
 
173
        for alert in alerts:
174
            t_alerts.append(to_t_alert(alert)) 
175
 
176
        return t_alerts
177
 
178
    def setAlert(self, orderId, unset, type, comment):
179
        """
180
        Parameters:
181
         - orderId
182
         - unset
183
         - type
184
         - comment
185
        """
186
        set_alert(orderId, unset, type, comment)
187
 
104 ashish 188
 
483 rajveer 189
if __name__ == "__main__":
190
    order = OrderServiceHandler()
191
    t = order.getTransaction(4)
192
    print t
193
 
194
    '''
195
    these methods commented right now. may be used later
196
    def getAllTransactions(self, status, from_date, to_date, warehouse_id):
104 ashish 197
        """
198
        Parameters:
483 rajveer 199
         - status
104 ashish 200
         - from_date
201
         - to_date
202
        """
203
        current_status, current_from_date, current_to_date = get_status_fdate_tdate(status, from_date, to_date)
483 rajveer 204
 
205
        transactions = get_all_transactions(current_status, current_from_date, current_to_date, warehouse_id)
104 ashish 206
        t_transaction = []
207
        for transaction in transactions:
208
            t_transaction.append(to_t_transaction(transaction))
209
        return t_transaction
483 rajveer 210
 
211
    def getTransactionsForShipmentStatus(self, status, from_date, to_date):
132 ashish 212
        """
213
        Parameters:
483 rajveer 214
         - status
215
         - from_date
216
         - to_date
132 ashish 217
        """
483 rajveer 218
        current_status, current_from_date, current_to_date = get_status_fdate_tdate(status, from_date, to_date)
219
 
220
        transactions = get_transactions_for_shipment_status(current_status, current_from_date, current_to_date)
132 ashish 221
        t_transaction = []
222
        for transaction in transactions:
223
            t_transaction.append(to_t_transaction(transaction))
224
        return t_transaction
483 rajveer 225
 
226
    def getTransactionsForCustomerAndShipmentStatus(self, customerId, from_date, to_date, status):
104 ashish 227
        """
228
        Parameters:
483 rajveer 229
         - customerId
230
         - from_date
231
         - to_date
104 ashish 232
         - status
233
        """
483 rajveer 234
        current_status, current_from_date, current_to_date = get_status_fdate_tdate(status, from_date, to_date)
235
 
236
        transactions = get_transactions_for_customer_shipment(customerId, current_from_date, current_to_date, current_status)
237
        t_transaction = []
238
        for transaction in transactions:
239
            t_transaction.append(to_t_transaction(transaction))
240
        return t_transaction
241
 
104 ashish 242
    def getOrderInfo(self, transactionId):
243
        """
244
            Get and set individual objects in it
245
        *
246
 
247
        Parameters:
248
         - transactionId
249
        """
250
        lineitems = get_line_items(transactionId)
251
        order_info = OrderInfo()
252
        order_info.lineitems = []
253
        for lineitem in lineitems:
254
            order_info.lineitems.append(to_t_lineitem(lineitem))
255
            order_info.id = lineitem.transaction.id
256
 
257
        return order_info
258
 
259
    def getShippingInfo(self, transactionId):
260
        """
261
        Parameters:
262
         - transactionId
263
        """
264
        shipments = get_shipments(transactionId)
265
        shipment_info = ShipmentInfo()
266
        shipment_info.shipments = []
267
        for shipment in shipments:
268
            shipment_info.shipments.append(to_t_shipment(shipment))
269
            shipment_info.id = shipment.id
270
        return shipment_info
271
    def getBillingInfo(self, transactionId):
272
        """
273
        Parameters:
274
         - transactionId
275
        """
276
        billings = get_billings(transactionId)
277
        billing_info = BillingInfo()
278
        billing_info.billings = []
279
        if billings:
280
            for billing in billings:
281
                billing_info.billings.append(to_t_billing(billing))
282
                billing_info.id = billing.line_item.transaction.id
283
        return billing_info
284
 
285
    def addBilling(self, transactionId, billing):
286
        """
287
        Parameters:
288
         - tranactionId
289
         - billing
290
        """
291
        return set_billing(transactionId, billing)
292
 
293
    def setShippingTracker(self, transactionId, shippingId, trackingId, airwayBillNo, provider):
294
        """
295
        Parameters:
296
         - transactionId
297
         - shippingId
298
         - trackingId
299
         - airwayBillNo
300
         - provider
301
        """
302
        return set_shipping_tracker_info(transactionId, shippingId, trackingId, airwayBillNo, provider)
303
 
304
    def setShippingDate(self, transactionId, shippingId, timestamp):
305
        """
306
        Parameters:
307
         - transactionId
308
         - shippingId
309
         - timestamp
310
        """
311
        return set_shipping_date(transactionId, shippingId, to_py_date(timestamp))
312
 
313
    def setDeliveryDate(self, transactionId, shippingid, timestamp):
314
        """
315
        Parameters:
316
         - transactionId
317
         - shippingid
318
         - timestamp
319
        """
320
        return set_delivery_date(transactionId, shippingid, timestamp)
321
 
322
    def changeShippingStatus(self, transactionId, shippingId, status, description):
323
        """
324
        Parameters:
325
         - transactionId
326
         - shippingId
327
         - status
328
         - description
329
        """
330
        return change_shipping_status(transactionId, shippingId, get_c_status(status), description)
483 rajveer 331
 
304 ashish 332
    def getAlerts(self, transactionId, valid):
333
        """
334
        Parameters:
335
         - transactionId
336
         - valid
337
        """
338
        alerts = get_alerts(transactionId, valid)
339
 
340
        t_alerts = []
341
 
342
        for alert in alerts:
343
            t_alerts.append(to_t_alert(alert)) 
344
 
345
        return t_alerts
346
 
347
    def setAlert(self, transactionId, unset, type, comment):
348
        """
349
        Parameters:
350
         - transactionId
351
         - unset
352
         - type
353
         - comment
354
        """
355
        set_alert(transactionId, unset, type, comment)
356
 
357
    def getExtraInfo(self, transaction_id):
358
        """
359
        Parameters:
360
         - transaction_id
361
        """
362
        extra_info = get_extra_info(transaction_id)
363
 
364
        return to_t_extra_item_info(extra_info, transaction_id)
365
 
366
 
367
    def setExtraInfo(self, transaction_id, sku_id, model, colour, vendor):
368
        """
369
        Parameters:
370
         - transaction_id
371
         - sku_id
372
         - model
373
         - colour
374
         - vendor
375
        """
376
        set_extra_info(transaction_id, sku_id, model, vendor, colour)
377
 
483 rajveer 378
    '''
104 ashish 379