Subversion Repositories SmartDukaan

Rev

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

Rev 6501 Rev 6510
Line 90... Line 90...
90
            negativeItems.append(item_id)
90
            negativeItems.append(item_id)
91
        except:
91
        except:
92
            raise InventoryServiceException(108, "Some unforeseen error while updating inventory")
92
            raise InventoryServiceException(108, "Some unforeseen error while updating inventory")
93
    return negativeItems
93
    return negativeItems
94
 
94
 
-
 
95
def get_ignored_warehouses(item_id): 
-
 
96
    Ignored_inventory_items = Ignoredinventoryupdateitems.query.filter_by(item_id=item_id).all()
-
 
97
    warehouses = []
-
 
98
    for Ignored_inventory_item in Ignored_inventory_items:
-
 
99
        warehouses.append(Ignored_inventory_item.warehouse_id)
-
 
100
    return warehouses
-
 
101
 
95
def update_inventory_history(warehouse_id, timestamp, availability):
102
def update_inventory_history(warehouse_id, timestamp, availability):
96
    warehouse = get_Warehouse(warehouse_id)
103
    warehouse = get_Warehouse(warehouse_id)
97
    if not warehouse:
104
    if not warehouse:
98
        raise InventoryServiceException(107, "Warehouse? Where?")
105
        raise InventoryServiceException(107, "Warehouse? Where?")
99
    vendor = warehouse.vendor
106
    vendor = warehouse.vendor
100
    time = datetime.datetime.now()
107
    time = datetime.datetime.now()
101
    negativeItems = get_ignored_items(warehouse_id)        
-
 
102
    for item_key, quantity in availability.iteritems():
108
    for item_key, quantity in availability.iteritems():
103
        try:
109
        try:
104
            vendor_item_mapping = VendorItemMapping.query.filter_by(vendor=vendor, item_key=item_key).one();
110
            vendor_item_mapping = VendorItemMapping.query.filter_by(vendor=vendor, item_key=item_key).one();
105
            item_id = vendor_item_mapping.item_id
111
            item_id = vendor_item_mapping.item_id
106
            
-
 
107
        except:
112
        except:
108
            continue  
113
            continue  
109
        try:
114
        try:
110
            if item_id not in negativeItems:
-
 
111
                item_inventory_history = ItemInventoryHistory()
115
            item_inventory_history = ItemInventoryHistory()
112
                item_inventory_history.warehouse = warehouse
116
            item_inventory_history.warehouse = warehouse
113
                item_inventory_history.item_id = item_id
117
            item_inventory_history.item_id = item_id
114
                item_inventory_history.timestamp = time
118
            item_inventory_history.timestamp = time
115
                item_inventory_history.availability = quantity
119
            item_inventory_history.availability = quantity
116
        except:
120
        except:
117
            raise InventoryServiceException(108, "Some unforeseen error while updating inventory")
121
            raise InventoryServiceException(108, "Some unforeseen error while updating inventory")
118
    session.commit()
122
    session.commit()
119
    
123
    
120
def update_inventory(warehouse_id, timestamp, availability):
124
def update_inventory(warehouse_id, timestamp, availability):
121
    warehouse = get_Warehouse(warehouse_id)
125
    warehouse = get_Warehouse(warehouse_id)
122
    if not warehouse:
126
    if not warehouse:
123
        raise InventoryServiceException(107, "Warehouse? Where?")
127
        raise InventoryServiceException(107, "Warehouse? Where?")
124
    negativeItems = get_ignored_items(warehouse_id)
128
     
125
    time = datetime.datetime.now()
129
    time = datetime.datetime.now()
126
    warehouse.lastCheckedOn = time
130
    warehouse.lastCheckedOn = time
127
    warehouse.vendorString = timestamp
131
    warehouse.vendorString = timestamp
128
    vendor = warehouse.vendor
132
    vendor = warehouse.vendor
129
    item_ids = []
133
    item_ids = []
130
    for item_key, quantity in availability.iteritems():
134
    for item_key, quantity in availability.iteritems():
131
        try:
135
        try:
132
            vendor_item_mapping = VendorItemMapping.query.filter_by(vendor=vendor, item_key=item_key).one();
136
            vendor_item_mapping = VendorItemMapping.query.filter_by(vendor=vendor, item_key=item_key).one();
133
            item_id = vendor_item_mapping.item_id
137
            item_id = vendor_item_mapping.item_id
134
            if item_id not in negativeItems: 
-
 
135
                item_ids.append(item_id)
138
            item_ids.append(item_id)
136
            else:
-
 
137
                continue
-
 
138
        except:
139
        except:
139
            print 'Skipping update for ' + item_key + ' quantity ' + str(quantity) + ' warehouse id: ' + str(warehouse_id)
140
            print 'Skipping update for ' + item_key + ' quantity ' + str(quantity) + ' warehouse id: ' + str(warehouse_id)
140
            __send_mail_for_missing_key(item_key, quantity, warehouse_id)
141
            __send_mail_for_missing_key(item_key, quantity, warehouse_id)
141
            continue
142
            continue
142
        try:
143
        try:
Line 427... Line 428...
427
    item = __get_item_from_source(item_id, source_id)
428
    item = __get_item_from_source(item_id, source_id)
428
    item_pricing = {}
429
    item_pricing = {}
429
    for vendorItemPricing in VendorItemPricing.query.filter_by(item_id=item_id).all():
430
    for vendorItemPricing in VendorItemPricing.query.filter_by(item_id=item_id).all():
430
        item_pricing[vendorItemPricing.vendor_id] = vendorItemPricing
431
        item_pricing[vendorItemPricing.vendor_id] = vendorItemPricing
431
 
432
 
-
 
433
    ignoredWhs = get_ignored_warehouses(item_id)
-
 
434
 
432
    warehouses = {}
435
    warehouses = {}
433
    ourGoodWarehouses = {}
436
    ourGoodWarehouses = {}
434
    thirdpartyWarehouses = {}
437
    thirdpartyWarehouses = {}
435
    preferredThirdpartyWarehouses = {}
438
    preferredThirdpartyWarehouses = {}
436
    for warehouse in Warehouse.query.all():
439
    for warehouse in Warehouse.query.all():
-
 
440
        if warehouse.id in ignoredWhs:
-
 
441
            continue
437
        if (warehouse.inventoryType == InventoryType._VALUES_TO_NAMES[InventoryType.BAD]):
442
        if (warehouse.inventoryType == InventoryType._VALUES_TO_NAMES[InventoryType.BAD]):
438
            continue
443
            continue
439
        warehouses[warehouse.id] = warehouse
444
        warehouses[warehouse.id] = warehouse
440
        if warehouse.warehouseType == WarehouseType._VALUES_TO_NAMES[WarehouseType.OURS]:
445
        if warehouse.warehouseType == WarehouseType._VALUES_TO_NAMES[WarehouseType.OURS]:
441
            if warehouse.inventoryType == InventoryType._VALUES_TO_NAMES[InventoryType.GOOD]:
446
            if warehouse.inventoryType == InventoryType._VALUES_TO_NAMES[InventoryType.GOOD]: