Subversion Repositories SmartDukaan

Rev

Rev 132 | Rev 358 | 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,\
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,\
132 ashish 12
    get_shipments, get_billings, set_billing,\
304 ashish 13
    get_transactions_for_shopping_cart_id, get_alerts, set_alert, get_extra_info,\
14
    set_extra_info
104 ashish 15
from shop2020.model.v1.order.impl.Convertors import to_t_transaction,\
304 ashish 16
    to_t_lineitem, to_t_shipment, to_t_billing, to_t_alert, to_t_extra_item_info
104 ashish 17
from shop2020.thriftpy.model.v1.order.ttypes import Transaction, OrderInfo,\
18
    LineItem, ShipmentInfo, BillingInfo
19
from shop2020.utils import OrderStatus
20
from shop2020.utils.Utils import to_py_date, get_status_fdate_tdate
21
from shop2020.utils.OrderStatus import get_t_status, get_c_status
22
 
23
 
24
class OrderServiceHandler:
25
 
26
    def __init__(self):
27
        '''
28
        Constructor
29
        '''
30
        DataService.initialize()
31
 
32
    def createTransaction(self, transaction):
33
        """
34
        Parameters:
35
         - transaction
36
        """
37
        return create_transaction(transaction)
38
 
39
    def getTransaction(self, id):
40
        """
41
            Get transaction methods.
42
 
43
        Parameters:
44
         - id
45
        """
46
        transaction = get_transaction(id)
47
        return to_t_transaction(transaction)
48
 
49
    def getAllTransactions(self, status, from_date, to_date):
50
        """
51
        Parameters:
52
         - status
53
         - from_date
54
         - to_date
55
        """
56
        current_status, current_from_date, current_to_date = get_status_fdate_tdate(status, from_date, to_date)
57
 
58
        transactions = get_all_transactions(current_status, current_from_date, current_to_date)
59
        t_transaction = []
60
        for transaction in transactions:
61
            t_transaction.append(to_t_transaction(transaction))
62
        return t_transaction
63
 
64
 
65
    def getTransactionsForShipmentStatus(self, status, from_date, to_date):
66
        """
67
        Parameters:
68
         - status
69
         - from_date
70
         - to_date
71
        """
72
        current_status, current_from_date, current_to_date = get_status_fdate_tdate(status, from_date, to_date)
73
 
74
        transactions = get_transactions_for_shipment_status(current_status, current_from_date, current_to_date)
75
        t_transaction = []
76
        for transaction in transactions:
77
            t_transaction.append(to_t_transaction(transaction))
78
        return t_transaction
79
 
80
    def getTransactionsForCustomer(self, customerId, from_date, to_date, status):
81
        """
82
        Parameters:
83
         - customerId
84
         - from_date
85
         - to_date
86
         - status
87
        """
88
        current_status, current_from_date, current_to_date = get_status_fdate_tdate(status, from_date, to_date)
89
 
90
        transactions = get_transactions_for_customer(customerId, current_from_date, current_to_date, current_status)
91
        t_transaction = []
92
        for transaction in transactions:
93
            t_transaction.append(to_t_transaction(transaction))
94
        return t_transaction
95
 
96
 
97
    def getTransactionsForCustomerAndShipmentStatus(self, customerId, from_date, to_date, status):
98
        """
99
        Parameters:
100
         - customerId
101
         - from_date
102
         - to_date
103
         - status
104
        """
105
        current_status, current_from_date, current_to_date = get_status_fdate_tdate(status, from_date, to_date)
106
 
107
        transactions = get_transactions_for_customer_shipment(customerId, current_from_date, current_to_date, current_status)
108
        t_transaction = []
109
        for transaction in transactions:
110
            t_transaction.append(to_t_transaction(transaction))
111
        return t_transaction
112
 
132 ashish 113
    def getTransactionsForShoppingCartId(self, shoppingCartId):
114
        """
115
        Parameters:
116
            - shoppingCartId
117
        """
118
        transactions = get_transactions_for_shopping_cart_id(shoppingCartId)
119
        t_transaction = []
120
        for transaction in transactions:
121
            t_transaction.append(to_t_transaction(transaction))
122
        return t_transaction
123
        pass
124
 
125
 
104 ashish 126
    def getTransactionStatus(self, transactionId):
127
        """
128
        Parameters:
129
         - transactionId
130
        """
131
        return get_t_status(get_transaction_status(transactionId))
132
 
133
    def changeTransactionStatus(self, transactionId, status, description):
134
        """
135
        Parameters:
136
         - transactionId
137
         - status
138
         - description
139
        """
140
        return change_transaction_status(transactionId, get_c_status(status), description)
141
 
142
    def getOrderInfo(self, transactionId):
143
        """
144
            Get and set individual objects in it
145
        *
146
 
147
        Parameters:
148
         - transactionId
149
        """
150
        lineitems = get_line_items(transactionId)
151
        order_info = OrderInfo()
152
        order_info.lineitems = []
153
        for lineitem in lineitems:
154
            order_info.lineitems.append(to_t_lineitem(lineitem))
155
            order_info.id = lineitem.transaction.id
156
 
157
        return order_info
158
 
159
    def getShippingInfo(self, transactionId):
160
        """
161
        Parameters:
162
         - transactionId
163
        """
164
        shipments = get_shipments(transactionId)
165
        shipment_info = ShipmentInfo()
166
        shipment_info.shipments = []
167
        for shipment in shipments:
168
            shipment_info.shipments.append(to_t_shipment(shipment))
169
            shipment_info.id = shipment.id
170
        return shipment_info
171
    def getBillingInfo(self, transactionId):
172
        """
173
        Parameters:
174
         - transactionId
175
        """
176
        billings = get_billings(transactionId)
177
        billing_info = BillingInfo()
178
        billing_info.billings = []
179
        if billings:
180
            for billing in billings:
181
                billing_info.billings.append(to_t_billing(billing))
182
                billing_info.id = billing.line_item.transaction.id
183
        return billing_info
184
 
185
    def addBilling(self, transactionId, billing):
186
        """
187
        Parameters:
188
         - tranactionId
189
         - billing
190
        """
191
        return set_billing(transactionId, billing)
192
 
193
    def setShippingTracker(self, transactionId, shippingId, trackingId, airwayBillNo, provider):
194
        """
195
        Parameters:
196
         - transactionId
197
         - shippingId
198
         - trackingId
199
         - airwayBillNo
200
         - provider
201
        """
202
        return set_shipping_tracker_info(transactionId, shippingId, trackingId, airwayBillNo, provider)
203
 
204
    def setShippingDate(self, transactionId, shippingId, timestamp):
205
        """
206
        Parameters:
207
         - transactionId
208
         - shippingId
209
         - timestamp
210
        """
211
        return set_shipping_date(transactionId, shippingId, to_py_date(timestamp))
212
 
213
    def setDeliveryDate(self, transactionId, shippingid, timestamp):
214
        """
215
        Parameters:
216
         - transactionId
217
         - shippingid
218
         - timestamp
219
        """
220
        return set_delivery_date(transactionId, shippingid, timestamp)
221
 
222
    def changeShippingStatus(self, transactionId, shippingId, status, description):
223
        """
224
        Parameters:
225
         - transactionId
226
         - shippingId
227
         - status
228
         - description
229
        """
230
        return change_shipping_status(transactionId, shippingId, get_c_status(status), description)
231
 
304 ashish 232
    def getAlerts(self, transactionId, valid):
233
        """
234
        Parameters:
235
         - transactionId
236
         - valid
237
        """
238
        alerts = get_alerts(transactionId, valid)
239
 
240
        t_alerts = []
241
 
242
        for alert in alerts:
243
            t_alerts.append(to_t_alert(alert)) 
244
 
245
        return t_alerts
246
 
247
    def setAlert(self, transactionId, unset, type, comment):
248
        """
249
        Parameters:
250
         - transactionId
251
         - unset
252
         - type
253
         - comment
254
        """
255
        set_alert(transactionId, unset, type, comment)
256
 
257
    def getExtraInfo(self, transaction_id):
258
        """
259
        Parameters:
260
         - transaction_id
261
        """
262
        extra_info = get_extra_info(transaction_id)
263
 
264
        return to_t_extra_item_info(extra_info, transaction_id)
265
 
266
 
267
    def setExtraInfo(self, transaction_id, sku_id, model, colour, vendor):
268
        """
269
        Parameters:
270
         - transaction_id
271
         - sku_id
272
         - model
273
         - colour
274
         - vendor
275
        """
276
        set_extra_info(transaction_id, sku_id, model, vendor, colour)
277
 
104 ashish 278
 
279
if __name__ == "__main__":
280
    order = OrderServiceHandler()
281
    t = order.getTransaction(4)
282
    print t