Subversion Repositories SmartDukaan

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
122 ashish 1
'''
2
Created on 27-Apr-2010
3
 
4
@author: ashish
5
'''
6
from shop2020.model.v1.catalog.impl import DataService
7
from shop2020.utils.Utils import log_entry
8
from shop2020.model.v1.catalog.impl.DataAcessors import add_item, add_warehouse,\
9
    update_inventory, retire_warehouse, retire_item, change_item_status,\
10
    get_Item, get_all_items, get_all_items_by_status, get_item_inventoy,\
11
    get_item_availability_for_warehouse, get_all_warehouses_by_status,\
12
    get_Warehouse, get_all_warehouses_for_item, get_all_items_for_warehouse,\
13
    update_item, update_price, update_price_for_warehouse, start_item_on,\
483 rajveer 14
    retire_item_on, get_item_inventory_by_catalog_id, get_item_by_catalog_id,\
598 chandransh 15
    get_item_by_vendor_id, get_best_deals, get_best_sellers, get_latest_arrivals, get_latest_arrivals_catalog_ids,\
563 chandransh 16
    is_active
122 ashish 17
from shop2020.model.v1.catalog.impl.Convertors import to_t_item,\
18
    to_t_item_inventory, to_t_warehouse
19
from shop2020.thriftpy.model.v1.catalog.ttypes import status,\
20
    InventoryServiceException
21
 
22
 
23
class InventoryServiceHandler:
24
    '''
25
    classdocs
26
    '''
27
    def __init__(self):
28
        '''
29
        Constructor
30
        '''
31
        DataService.initialize()
32
 
33
    #DONE
34
    def addItem(self, item):
35
        """
36
        Availability and inventory attributes
37
 
38
        Parameters:
39
         - item
40
        """
41
        log_entry(self, "addItem called")
42
        return add_item(item)
43
        pass
44
 
45
    def addWarehouse(self, warehouse):
46
        """
47
        Parameters:
48
         - warehouse
49
        """
50
        log_entry(self, "addWarehouse called")
51
        return add_warehouse(warehouse)
52
        pass
53
 
483 rajveer 54
 
55
    def updateInventory(self, warehouse_id, timestamp, availability):
122 ashish 56
        """
57
        Parameters:
58
         - warehouse_id
59
         - timestamp
483 rajveer 60
         - availability
122 ashish 61
        """
62
        log_entry(self, "update Inventory called")
483 rajveer 63
        return update_inventory(warehouse_id, timestamp, availability)
122 ashish 64
 
576 chandransh 65
    def isActive(self, catalog_item_id):
563 chandransh 66
        """
67
        Parameters:
576 chandransh 68
         - catalog_item_id
563 chandransh 69
        """
576 chandransh 70
        return is_active(catalog_item_id)
122 ashish 71
 
72
    def retireWarehouse(self, warehouse_id):
73
        """
74
        Parameters:
75
         - warehouse_id
76
        """
77
        log_entry(self, "retire warehouse called")
78
        return retire_warehouse(warehouse_id)
79
 
80
 
81
    def retireItem(self, item_id):
82
        """
83
        Parameters:
84
        - item_id
85
        """
86
        log_entry(self, "retire item called")
87
        return retire_item(item_id)
88
 
89
    def startItemOn(self, item_id, timestamp):
90
        """
91
        Parameters:
92
         - item_id
93
         - timestamp
94
        """
95
        start_item_on(item_id, timestamp)
96
 
97
    def retireItemOn(self, item_id, timestamp):
98
        """
99
        Parameters:
100
         - item_id
101
         - timestamp
102
        """
103
        retire_item_on(item_id, timestamp)
104
 
105
    def changeItemStatus(self, item_id, timestamp, newstatus):
106
        """
107
        Parameters:
108
         - item_id
109
         - timestamp
110
         - newstatus
111
        """
112
        log_entry(self, "change item status called")
113
        return change_item_status(item_id, newstatus)
114
 
115
 
116
    def getItem(self, item_id):
117
        """
118
        Parameters:
119
         - item_id
120
        """
121
        log_entry(self, "item requested")
122
        return to_t_item( get_Item(item_id))
379 ashish 123
 
124
    def getItemByCatalogId(self, catalog_item_id):
125
        """
126
        Parameters:
127
        - catalog_item_id
128
        """
386 ashish 129
        log_entry(self, "item requested")
130
        return to_t_item( get_item_by_catalog_id(catalog_item_id))
122 ashish 131
 
483 rajveer 132
    def getItemByVendorId(self, vendor_item_id):
133
        """
134
        Parameters:
135
        - catalog_item_id
136
        """
137
        log_entry(self, "item requested")
138
        return to_t_item( get_item_by_vendor_id(vendor_item_id))
139
        pass
140
 
141
 
122 ashish 142
    def getAllItems(self, isActive):
143
        """
144
        Parameters:
145
         - isActive
146
        """
147
        log_entry(self, "all items requested")
148
 
149
        items = get_all_items(isActive)
150
        ret_items = []
151
        for item in items:
152
            if item:
153
                ret_items.append(to_t_item(item))
154
        return ret_items
155
 
156
    def getAllItemsByStatus(self, itemStatus):
157
        """
158
        Parameters:
159
         - itemStatus
160
        """
161
        log_entry(self, "all items requested")
162
 
163
        items = get_all_items_by_status(itemStatus)
164
        ret_items = []
165
        for item in items:
166
            if item:
167
                ret_items.append(to_t_item(item))
168
        return ret_items
169
 
170
    def getItemInventory(self, item_id):
171
        """
172
        Parameters:
173
        - item_id
174
        """
175
        log_entry(self, "item inventory requested")
176
        inventory = get_item_inventoy(item_id)
177
        return to_t_item_inventory(inventory, item_id)
178
 
379 ashish 179
    def getItemInventoryByCatalogId(self, item_id):
180
        """
181
        Parameters:
182
         - item_id
183
        """
383 ashish 184
        log_entry(self, "item inventory requested")
185
        inventory = get_item_inventory_by_catalog_id(item_id)
186
        return to_t_item_inventory(inventory, item_id)
379 ashish 187
 
188
 
122 ashish 189
    def getItemAvailibilityAtWarehouse(self, warehouse_id, item_id):
190
        """
191
        Parameters:
192
         - warehouse_id
193
         - item_id
194
        """
195
        log_entry(self, "item availability at warehouse requested")
196
        return get_item_availability_for_warehouse(warehouse_id, item_id)
197
 
198
    def getItemInventoryHistory(self, id, item_id, warehouse_id, from_date, to_date):
199
        """
200
        Parameters:
201
         - id
202
         - item_id
203
         - warehouse_id
204
         - from_date
205
         - to_date
206
        """
207
        pass
208
 
209
    def getAllWarehouses(self, isActive):
210
        """
211
        Parameters:
212
        - isActive
213
        """
214
        if isActive:
215
            warehouses = get_all_warehouses_by_status(status.ACTIVE)
216
 
217
        else:
218
            warehouses = get_all_warehouses_by_status(None)
219
 
220
        ret_warehouses = []
221
 
222
        for warehouse in warehouses:
223
            ret_warehouses.append(to_t_warehouse(warehouse))
224
        return ret_warehouses
225
 
226
    def getWarehouse(self, warehouse_id):
227
        """
228
        Parameters:
229
         - warehouse_id
230
        """
231
        log_entry(self, "get warehouse call")
232
        warehouse = get_Warehouse(warehouse_id)
233
        if warehouse:
234
            return to_t_warehouse(warehouse)
235
        else:
236
            raise InventoryServiceException(101, "no such warehouse")
237
 
238
    def getAllWarehousesForItem(self, item_id):
239
        """
240
        Parameters:
241
         - item_id
242
        """
243
        log_entry(self, "getting all warehouses for item")
244
        all_warehouses = get_all_warehouses_for_item(item_id)
245
        t_warehouses = []
246
        for warehouse in all_warehouses:
247
            t_warehouses.append(to_t_warehouse(warehouse))
248
        return t_warehouses
249
 
250
    def getAllItemsForWarehouse(self, warehouse_id):
251
        """
252
        Parameters:
253
         - warehouse_id
254
        """
255
        log_entry(self, "getting all items for warehouse")
256
        all_items = get_all_items_for_warehouse(warehouse_id)
257
        t_items = []
258
        for item in all_items:
259
            t_items.append(to_t_item(item))
260
        return t_items
598 chandransh 261
 
122 ashish 262
    def updateItem(self, item):
263
        """
264
        Parameters:
265
         - item
266
        """
267
        log_entry(self, "addItem called")
268
        return update_item(item)
269
 
270
    def updatePrice(self, item_id, warehouse_id, price):
271
        """
272
        Parameters:
273
         - item_id
274
         - warehouse_id
275
         - price
276
        """
277
        log_entry(self, "updatePrice")
278
        update_price_for_warehouse(item_id, warehouse_id, price)
279
        pass
280
 
591 chandransh 281
    def getBestSellers(self,):
598 chandransh 282
        return self.getAllItems(True)
548 rajveer 283
 
591 chandransh 284
    def getBestSellersCatalogIds(self, beginIndex, totalItems):
548 rajveer 285
        """
286
        Parameters:
287
         - beginIndex
288
         - totalItems
289
        """
290
        return get_best_sellers()
291
 
591 chandransh 292
    def getBestSellersCount(self, ):
548 rajveer 293
        return 105
294
 
591 chandransh 295
    def getBestDeals(self,):
598 chandransh 296
        return self.getAllItems(True)
591 chandransh 297
 
298
    def getBestDealsCatalogIds(self, beginIndex, totalItems):
548 rajveer 299
        """
300
        Parameters:
301
         - beginIndex
302
         - totalItems
303
        """
304
        return get_best_deals()
305
 
591 chandransh 306
    def getBestDealsCount(self, ):
548 rajveer 307
        return 89
308
 
591 chandransh 309
    def getLatestArrivals(self,):
598 chandransh 310
        items = get_latest_arrivals()
311
        ret_items = []
312
        for item in items:
313
            if item:
314
                ret_items.append(to_t_item(item))
315
        return ret_items
591 chandransh 316
 
317
    def getLatestArrivalsCatalogIds(self, beginIndex, totalItems):
548 rajveer 318
        """
319
        Parameters:
320
         - beginIndex
321
         - totalItems
322
        """
598 chandransh 323
        return get_latest_arrivals_catalog_ids()
548 rajveer 324
 
591 chandransh 325
    def getLatestArrivalsCount(self, ):
548 rajveer 326
        return 4
591 chandransh 327