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,\
15
    get_item_by_vendor_id
122 ashish 16
from shop2020.model.v1.catalog.impl.Convertors import to_t_item,\
17
    to_t_item_inventory, to_t_warehouse
18
from shop2020.thriftpy.model.v1.catalog.ttypes import status,\
19
    InventoryServiceException
20
 
21
 
22
class InventoryServiceHandler:
23
    '''
24
    classdocs
25
    '''
26
    def __init__(self):
27
        '''
28
        Constructor
29
        '''
30
        DataService.initialize()
31
 
32
    #DONE
33
    def addItem(self, item):
34
        """
35
        Availability and inventory attributes
36
 
37
        Parameters:
38
         - item
39
        """
40
        log_entry(self, "addItem called")
41
        return add_item(item)
42
        pass
43
 
44
    def addWarehouse(self, warehouse):
45
        """
46
        Parameters:
47
         - warehouse
48
        """
49
        log_entry(self, "addWarehouse called")
50
        return add_warehouse(warehouse)
51
        pass
52
 
483 rajveer 53
 
54
    def updateInventory(self, warehouse_id, timestamp, availability):
122 ashish 55
        """
56
        Parameters:
57
         - warehouse_id
58
         - timestamp
483 rajveer 59
         - availability
122 ashish 60
        """
61
        log_entry(self, "update Inventory called")
483 rajveer 62
        return update_inventory(warehouse_id, timestamp, availability)
122 ashish 63
 
64
 
65
    def retireWarehouse(self, warehouse_id):
66
        """
67
        Parameters:
68
         - warehouse_id
69
        """
70
        log_entry(self, "retire warehouse called")
71
        return retire_warehouse(warehouse_id)
72
 
73
 
74
    def retireItem(self, item_id):
75
        """
76
        Parameters:
77
        - item_id
78
        """
79
        log_entry(self, "retire item called")
80
        return retire_item(item_id)
81
 
82
    def startItemOn(self, item_id, timestamp):
83
        """
84
        Parameters:
85
         - item_id
86
         - timestamp
87
        """
88
        start_item_on(item_id, timestamp)
89
 
90
    def retireItemOn(self, item_id, timestamp):
91
        """
92
        Parameters:
93
         - item_id
94
         - timestamp
95
        """
96
        retire_item_on(item_id, timestamp)
97
 
98
    def changeItemStatus(self, item_id, timestamp, newstatus):
99
        """
100
        Parameters:
101
         - item_id
102
         - timestamp
103
         - newstatus
104
        """
105
        log_entry(self, "change item status called")
106
        return change_item_status(item_id, newstatus)
107
 
108
 
109
    def getItem(self, item_id):
110
        """
111
        Parameters:
112
         - item_id
113
        """
114
        log_entry(self, "item requested")
115
        return to_t_item( get_Item(item_id))
116
        pass
379 ashish 117
 
118
    def getItemByCatalogId(self, catalog_item_id):
119
        """
120
        Parameters:
121
        - catalog_item_id
122
        """
386 ashish 123
        log_entry(self, "item requested")
124
        return to_t_item( get_item_by_catalog_id(catalog_item_id))
379 ashish 125
        pass
122 ashish 126
 
379 ashish 127
 
483 rajveer 128
    def getItemByVendorId(self, vendor_item_id):
129
        """
130
        Parameters:
131
        - catalog_item_id
132
        """
133
        log_entry(self, "item requested")
134
        return to_t_item( get_item_by_vendor_id(vendor_item_id))
135
        pass
136
 
137
 
122 ashish 138
    def getAllItems(self, isActive):
139
        """
140
        Parameters:
141
         - isActive
142
        """
143
        log_entry(self, "all items requested")
144
 
145
        items = get_all_items(isActive)
146
        ret_items = []
147
        for item in items:
148
            if item:
149
                ret_items.append(to_t_item(item))
150
        return ret_items
151
 
152
    def getAllItemsByStatus(self, itemStatus):
153
        """
154
        Parameters:
155
         - itemStatus
156
        """
157
        log_entry(self, "all items requested")
158
 
159
        items = get_all_items_by_status(itemStatus)
160
        ret_items = []
161
        for item in items:
162
            if item:
163
                ret_items.append(to_t_item(item))
164
        return ret_items
165
 
166
    def getItemInventory(self, item_id):
167
        """
168
        Parameters:
169
        - item_id
170
        """
171
        log_entry(self, "item inventory requested")
172
        inventory = get_item_inventoy(item_id)
173
        return to_t_item_inventory(inventory, item_id)
174
 
379 ashish 175
    def getItemInventoryByCatalogId(self, item_id):
176
        """
177
        Parameters:
178
         - item_id
179
        """
383 ashish 180
        log_entry(self, "item inventory requested")
181
        inventory = get_item_inventory_by_catalog_id(item_id)
182
        return to_t_item_inventory(inventory, item_id)
379 ashish 183
 
184
 
122 ashish 185
    def getItemAvailibilityAtWarehouse(self, warehouse_id, item_id):
186
        """
187
        Parameters:
188
         - warehouse_id
189
         - item_id
190
        """
191
        log_entry(self, "item availability at warehouse requested")
192
        return get_item_availability_for_warehouse(warehouse_id, item_id)
193
 
194
    def getItemInventoryHistory(self, id, item_id, warehouse_id, from_date, to_date):
195
        """
196
        Parameters:
197
         - id
198
         - item_id
199
         - warehouse_id
200
         - from_date
201
         - to_date
202
        """
203
        pass
204
 
205
    def getAllWarehouses(self, isActive):
206
        """
207
        Parameters:
208
        - isActive
209
        """
210
        if isActive:
211
            warehouses = get_all_warehouses_by_status(status.ACTIVE)
212
 
213
        else:
214
            warehouses = get_all_warehouses_by_status(None)
215
 
216
        ret_warehouses = []
217
 
218
        for warehouse in warehouses:
219
            ret_warehouses.append(to_t_warehouse(warehouse))
220
        return ret_warehouses
221
 
222
    def getWarehouse(self, warehouse_id):
223
        """
224
        Parameters:
225
         - warehouse_id
226
        """
227
        log_entry(self, "get warehouse call")
228
        warehouse = get_Warehouse(warehouse_id)
229
        if warehouse:
230
            return to_t_warehouse(warehouse)
231
        else:
232
            raise InventoryServiceException(101, "no such warehouse")
233
 
234
    def getAllWarehousesForItem(self, item_id):
235
        """
236
        Parameters:
237
         - item_id
238
        """
239
        log_entry(self, "getting all warehouses for item")
240
        all_warehouses = get_all_warehouses_for_item(item_id)
241
        t_warehouses = []
242
        for warehouse in all_warehouses:
243
            t_warehouses.append(to_t_warehouse(warehouse))
244
        return t_warehouses
245
 
246
    def getAllItemsForWarehouse(self, warehouse_id):
247
        """
248
        Parameters:
249
         - warehouse_id
250
        """
251
        log_entry(self, "getting all items for warehouse")
252
        all_items = get_all_items_for_warehouse(warehouse_id)
253
        t_items = []
254
        for item in all_items:
255
            t_items.append(to_t_item(item))
256
        return t_items
257
    def updateItem(self, item):
258
        """
259
        Parameters:
260
         - item
261
        """
262
        log_entry(self, "addItem called")
263
        return update_item(item)
264
 
265
    def updatePrice(self, item_id, warehouse_id, price):
266
        """
267
        Parameters:
268
         - item_id
269
         - warehouse_id
270
         - price
271
        """
272
        log_entry(self, "updatePrice")
273
        update_price_for_warehouse(item_id, warehouse_id, price)
274
        pass
275