Subversion Repositories SmartDukaan

Rev

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