| 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]:
|