Subversion Repositories SmartDukaan

Rev

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