Subversion Repositories SmartDukaan

Rev

Rev 4748 | Rev 4797 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 4748 Rev 4762
Line 215... Line 215...
215
    ds_item.updatedOn = datetime.datetime.now()
215
    ds_item.updatedOn = datetime.datetime.now()
216
    
216
    
217
    session.commit();
217
    session.commit();
218
    return ds_item.id
218
    return ds_item.id
219
 
219
 
220
def check_vendor_item_mapping(product_group, brand, model_number, color, vendor_id, vendor_category):
-
 
221
    key = product_group.strip().lower() + '|' + brand.strip().lower() + '|' + model_number.strip().lower() + '|' + color.strip().lower()
-
 
222
    try:
-
 
223
        vim = VendorItemMapping.query.filter_by(vendor_id=vendor_id, item_key=key, vendor_category=vendor_category).one()
-
 
224
        return True
-
 
225
    except:
-
 
226
        return False
-
 
227
 
-
 
228
def add_item(item):
220
def add_item(item):
229
    if not item:
221
    if not item:
230
        raise InventoryServiceException(108, "Bad item in request")
222
        raise InventoryServiceException(108, "Bad item in request")
231
    if get_item(item.id):
223
    if get_item(item.id):
232
        raise InventoryServiceException(101, "Item already exists")
224
        raise InventoryServiceException(101, "Item already exists")
Line 242... Line 234...
242
        ds_item.model_name = item.modelName
234
        ds_item.model_name = item.modelName
243
    if item.modelNumber:
235
    if item.modelNumber:
244
        ds_item.model_number = item.modelNumber
236
        ds_item.model_number = item.modelNumber
245
    if item.color:
237
    if item.color:
246
        ds_item.color = item.color
238
        ds_item.color = item.color
247
    if item.hotspotCategory:
-
 
248
        ds_item.hotspotCategory = item.hotspotCategory
-
 
249
        if item.hotspotCategory == 'Handsets':
-
 
250
            ds_item.preferredWarehouse = 1
-
 
251
        else:
-
 
252
            ds_item.preferredWarehouse = 2
-
 
253
            
-
 
254
    if item.category:
239
    if item.category:
255
        ds_item.category = item.category
240
        ds_item.category = item.category
256
    if item.comments:
241
    if item.comments:
257
        ds_item.comments = item.comments
242
        ds_item.comments = item.comments
258
 
243
 
Line 317... Line 302...
317
            similar_item.catalog_item_id = entity_id.id
302
            similar_item.catalog_item_id = entity_id.id
318
    else:
303
    else:
319
        #If a similar item already exists for a product group, brand and model_number, set it as same.
304
        #If a similar item already exists for a product group, brand and model_number, set it as same.
320
        ds_item.catalog_item_id = similar_item.catalog_item_id
305
        ds_item.catalog_item_id = similar_item.catalog_item_id
321
        ds_item.category = similar_item.category
306
        ds_item.category = similar_item.category
-
 
307
        ds_item.product_group = similar_item.product_group
322
        ds_item.status = similar_item.status
308
        ds_item.status = similar_item.status
323
        ds_item.status_description = similar_item.status_description
309
        ds_item.status_description = similar_item.status_description
324
    
310
    
325
    session.commit();
311
    session.commit();
326
    return ds_item.id
312
    return ds_item.id
Line 644... Line 630...
644
            item_change_log.old_status = item.status
630
            item_change_log.old_status = item.status
645
            item_change_log.new_status = content_complete_status
631
            item_change_log.new_status = content_complete_status
646
            item_change_log.timestamp = current_timestamp
632
            item_change_log.timestamp = current_timestamp
647
            item_change_log.item = item
633
            item_change_log.item = item
648
        
634
        
-
 
635
        category_object = get_category(category)
-
 
636
        if category_object is not None:
649
        item.category = category
637
            item.category = category
-
 
638
            item.product_group = category_object.display_name
650
        item.brand = brand
639
        item.brand = brand
651
        item.model_name = modelName
640
        item.model_name = modelName
652
        item.model_number = modelNumber
641
        item.model_number = modelNumber
653
        item.updatedOn = current_timestamp
642
        item.updatedOn = current_timestamp
654
    session.commit()
643
    session.commit()
Line 1024... Line 1013...
1024
    if category is None:
1013
    if category is None:
1025
        category = Category()
1014
        category = Category()
1026
    category.id = t_category.id 
1015
    category.id = t_category.id 
1027
    category.label = t_category.label
1016
    category.label = t_category.label
1028
    category.description = t_category.description
1017
    category.description = t_category.description
-
 
1018
    category.display_name = t_category.display_name
1029
    category.parent_category_id = t_category.parent_category_id 
1019
    category.parent_category_id = t_category.parent_category_id 
1030
    session.commit()
1020
    session.commit()
1031
    return True
1021
    return True
1032
 
1022
 
1033
def get_category(id):
1023
def get_category(id):
Line 1106... Line 1096...
1106
        ds_vendorItemMapping = VendorItemMapping.query.filter(and_(VendorItemMapping.vendor==vendor, VendorItemMapping.item==item, VendorItemMapping.item_key==key)).one()
1096
        ds_vendorItemMapping = VendorItemMapping.query.filter(and_(VendorItemMapping.vendor==vendor, VendorItemMapping.item==item, VendorItemMapping.item_key==key)).one()
1107
    except:
1097
    except:
1108
        ds_vendorItemMapping = VendorItemMapping()
1098
        ds_vendorItemMapping = VendorItemMapping()
1109
        ds_vendorItemMapping.vendor = vendor
1099
        ds_vendorItemMapping.vendor = vendor
1110
        ds_vendorItemMapping.item = item
1100
        ds_vendorItemMapping.item = item
1111
    ds_vendorItemMapping.vendor_category = vendorItemMapping.vendorCategory
-
 
1112
    ds_vendorItemMapping.item_key = vendorItemMapping.itemKey
1101
    ds_vendorItemMapping.item_key = vendorItemMapping.itemKey
1113
    
1102
    
1114
    session.commit()
1103
    session.commit()
1115
    return
1104
    return
1116
 
1105
 
Line 1198... Line 1187...
1198
    item.risky = risky
1187
    item.risky = risky
1199
    if not risky and item.status == status.PAUSED_BY_RISK:
1188
    if not risky and item.status == status.PAUSED_BY_RISK:
1200
        change_item_status(item.id, status.ACTIVE)
1189
        change_item_status(item.id, status.ACTIVE)
1201
    session.commit()
1190
    session.commit()
1202
    
1191
    
1203
def get_items_by_vendor_category(vendor_category):
1192
def get_items_by_category(categoryName):
1204
    if not vendor_category:
1193
    if not categoryName:
1205
        raise InventoryServiceException(101, "Invalid vendor category in request")
1194
        raise InventoryServiceException(101, "Invalid category in request")
-
 
1195
    categories = ["Handsets", "Tablets", "Laptops"]
-
 
1196
    if categoryName == "Accessories":
-
 
1197
        query = Item.query.filter(and_(Item.product_group not in categories, Item.status != status.PHASED_OUT))
-
 
1198
    elif categoryName == "Handsets":
1206
    query = Item.query.filter(and_(Item.hotspotCategory==vendor_category, Item.status != status.PHASED_OUT))
1199
        query = Item.query.filter(and_(Item.product_group in categories, Item.status != status.PHASED_OUT))
1207
    items = query.all()
1200
    items = query.all()
1208
    return items
1201
    return items
1209
 
1202
 
1210
def get_risky_items():
1203
def get_risky_items():
1211
    items = Item.query.filter_by(risky=True).all()
1204
    items = Item.query.filter_by(risky=True).all()