Subversion Repositories SmartDukaan

Rev

Rev 494 | Rev 738 | 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,\
494 rajveer 11
 get_all_orders, change_order_status, get_alerts, set_alert, add_billing_details
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
        """
494 rajveer 127
        return change_order_status(self, orderId, get_c_status(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
 
642 chandransh 163
    def addBillingDetails(self, orderId, invoice_number, jacket_number, billed_by):
494 rajveer 164
        """
165
        Parameters:
166
         - orderId
167
         - invoice_number
168
         - billed_by
169
        """
642 chandransh 170
        return add_billing_details(orderId, invoice_number, jacket_number, billed_by)
494 rajveer 171
 
172
 
483 rajveer 173
    def getAlerts(self, orderId, valid):
174
        """
175
        Parameters:
176
         - orderId
177
         - valid
178
        """
179
        alerts = get_alerts(orderId, valid)
180
 
181
        t_alerts = []
182
 
183
        for alert in alerts:
184
            t_alerts.append(to_t_alert(alert)) 
185
 
186
        return t_alerts
187
 
188
    def setAlert(self, orderId, unset, type, comment):
189
        """
190
        Parameters:
191
         - orderId
192
         - unset
193
         - type
194
         - comment
195
        """
196
        set_alert(orderId, unset, type, comment)
197
 
104 ashish 198
 
483 rajveer 199
if __name__ == "__main__":
200
    order = OrderServiceHandler()
201
    t = order.getTransaction(4)
202
    print t
203
 
204
    '''
205
    these methods commented right now. may be used later
206
    def getAllTransactions(self, status, from_date, to_date, warehouse_id):
104 ashish 207
        """
208
        Parameters:
483 rajveer 209
         - status
104 ashish 210
         - from_date
211
         - to_date
212
        """
213
        current_status, current_from_date, current_to_date = get_status_fdate_tdate(status, from_date, to_date)
483 rajveer 214
 
215
        transactions = get_all_transactions(current_status, current_from_date, current_to_date, warehouse_id)
104 ashish 216
        t_transaction = []
217
        for transaction in transactions:
218
            t_transaction.append(to_t_transaction(transaction))
219
        return t_transaction
483 rajveer 220
 
221
    def getTransactionsForShipmentStatus(self, status, from_date, to_date):
132 ashish 222
        """
223
        Parameters:
483 rajveer 224
         - status
225
         - from_date
226
         - to_date
132 ashish 227
        """
483 rajveer 228
        current_status, current_from_date, current_to_date = get_status_fdate_tdate(status, from_date, to_date)
229
 
230
        transactions = get_transactions_for_shipment_status(current_status, current_from_date, current_to_date)
132 ashish 231
        t_transaction = []
232
        for transaction in transactions:
233
            t_transaction.append(to_t_transaction(transaction))
234
        return t_transaction
483 rajveer 235
 
236
    def getTransactionsForCustomerAndShipmentStatus(self, customerId, from_date, to_date, status):
104 ashish 237
        """
238
        Parameters:
483 rajveer 239
         - customerId
240
         - from_date
241
         - to_date
104 ashish 242
         - status
243
        """
483 rajveer 244
        current_status, current_from_date, current_to_date = get_status_fdate_tdate(status, from_date, to_date)
245
 
246
        transactions = get_transactions_for_customer_shipment(customerId, current_from_date, current_to_date, current_status)
247
        t_transaction = []
248
        for transaction in transactions:
249
            t_transaction.append(to_t_transaction(transaction))
250
        return t_transaction
251
 
104 ashish 252
    def getOrderInfo(self, transactionId):
253
        """
254
            Get and set individual objects in it
255
        *
256
 
257
        Parameters:
258
         - transactionId
259
        """
260
        lineitems = get_line_items(transactionId)
261
        order_info = OrderInfo()
262
        order_info.lineitems = []
263
        for lineitem in lineitems:
264
            order_info.lineitems.append(to_t_lineitem(lineitem))
265
            order_info.id = lineitem.transaction.id
266
 
267
        return order_info
268
 
269
    def getShippingInfo(self, transactionId):
270
        """
271
        Parameters:
272
         - transactionId
273
        """
274
        shipments = get_shipments(transactionId)
275
        shipment_info = ShipmentInfo()
276
        shipment_info.shipments = []
277
        for shipment in shipments:
278
            shipment_info.shipments.append(to_t_shipment(shipment))
279
            shipment_info.id = shipment.id
280
        return shipment_info
281
    def getBillingInfo(self, transactionId):
282
        """
283
        Parameters:
284
         - transactionId
285
        """
286
        billings = get_billings(transactionId)
287
        billing_info = BillingInfo()
288
        billing_info.billings = []
289
        if billings:
290
            for billing in billings:
291
                billing_info.billings.append(to_t_billing(billing))
292
                billing_info.id = billing.line_item.transaction.id
293
        return billing_info
294
 
295
    def addBilling(self, transactionId, billing):
296
        """
297
        Parameters:
298
         - tranactionId
299
         - billing
300
        """
301
        return set_billing(transactionId, billing)
302
 
303
    def setShippingTracker(self, transactionId, shippingId, trackingId, airwayBillNo, provider):
304
        """
305
        Parameters:
306
         - transactionId
307
         - shippingId
308
         - trackingId
309
         - airwayBillNo
310
         - provider
311
        """
312
        return set_shipping_tracker_info(transactionId, shippingId, trackingId, airwayBillNo, provider)
313
 
314
    def setShippingDate(self, transactionId, shippingId, timestamp):
315
        """
316
        Parameters:
317
         - transactionId
318
         - shippingId
319
         - timestamp
320
        """
321
        return set_shipping_date(transactionId, shippingId, to_py_date(timestamp))
322
 
323
    def setDeliveryDate(self, transactionId, shippingid, timestamp):
324
        """
325
        Parameters:
326
         - transactionId
327
         - shippingid
328
         - timestamp
329
        """
330
        return set_delivery_date(transactionId, shippingid, timestamp)
331
 
332
    def changeShippingStatus(self, transactionId, shippingId, status, description):
333
        """
334
        Parameters:
335
         - transactionId
336
         - shippingId
337
         - status
338
         - description
339
        """
340
        return change_shipping_status(transactionId, shippingId, get_c_status(status), description)
483 rajveer 341
 
304 ashish 342
    def getAlerts(self, transactionId, valid):
343
        """
344
        Parameters:
345
         - transactionId
346
         - valid
347
        """
348
        alerts = get_alerts(transactionId, valid)
349
 
350
        t_alerts = []
351
 
352
        for alert in alerts:
353
            t_alerts.append(to_t_alert(alert)) 
354
 
355
        return t_alerts
356
 
357
    def setAlert(self, transactionId, unset, type, comment):
358
        """
359
        Parameters:
360
         - transactionId
361
         - unset
362
         - type
363
         - comment
364
        """
365
        set_alert(transactionId, unset, type, comment)
366
 
367
    def getExtraInfo(self, transaction_id):
368
        """
369
        Parameters:
370
         - transaction_id
371
        """
372
        extra_info = get_extra_info(transaction_id)
373
 
374
        return to_t_extra_item_info(extra_info, transaction_id)
375
 
376
 
377
    def setExtraInfo(self, transaction_id, sku_id, model, colour, vendor):
378
        """
379
        Parameters:
380
         - transaction_id
381
         - sku_id
382
         - model
383
         - colour
384
         - vendor
385
        """
386
        set_extra_info(transaction_id, sku_id, model, vendor, colour)
387
 
483 rajveer 388
    '''
104 ashish 389