| Line 505... |
Line 505... |
| 505 |
def clear_item_availability_cache(item_id = None):
|
505 |
def clear_item_availability_cache(item_id = None):
|
| 506 |
print item_id
|
506 |
print item_id
|
| 507 |
if type(item_id)==list:
|
507 |
if type(item_id)==list:
|
| 508 |
ItemAvailabilityCache.query.filter(ItemAvailabilityCache.itemId.in_(item_id)).delete(synchronize_session='fetch')
|
508 |
ItemAvailabilityCache.query.filter(ItemAvailabilityCache.itemId.in_(item_id)).delete(synchronize_session='fetch')
|
| 509 |
session.commit()
|
509 |
session.commit()
|
| - |
|
510 |
t = threading.Thread(target=_task_update_item_availability_cache, args=(item_id,))
|
| 510 |
return
|
511 |
t.start()
|
| - |
|
512 |
|
| 511 |
if item_id:
|
513 |
if item_id:
|
| 512 |
ItemAvailabilityCache.query.filter_by(itemId = item_id).delete()
|
514 |
ItemAvailabilityCache.query.filter_by(itemId = item_id).delete()
|
| 513 |
session.commit()
|
515 |
session.commit()
|
| 514 |
else:
|
516 |
|
| 515 |
ItemAvailabilityCache.query.delete()
|
517 |
def _task_update_item_availability_cache(item_ids):
|
| 516 |
session.commit()
|
- |
|
| 517 |
client = CatalogClient("catalog_service_server_host_master", "catalog_service_server_port").get_client()
|
518 |
client = CatalogClient("catalog_service_server_host_master", "catalog_service_server_port").get_client()
|
| 518 |
for item in client.getItemsByRiskyFlag():
|
519 |
items = client.getItems(item_ids)
|
| - |
|
520 |
for item_id in item_ids:
|
| 519 |
item_availability = ItemAvailabilityCache.get_by(itemId=item.id, sourceId=1)
|
521 |
item_availability = ItemAvailabilityCache.get_by(itemId=item_id, sourceId=1)
|
| 520 |
if not item_availability:
|
522 |
if not item_availability:
|
| 521 |
try:
|
523 |
try:
|
| 522 |
__update_item_availability_cache(item.id, 1, item)
|
524 |
__update_item_availability_cache(item_id, 1, items[id])
|
| 523 |
__check_risky_item(item.id, 1)
|
525 |
__check_risky_item(id, 1)
|
| 524 |
except:
|
526 |
except:
|
| - |
|
527 |
print "Could not update cache for "
|
| 525 |
continue
|
528 |
continue
|
| 526 |
session.commit()
|
529 |
return
|
| 527 |
|
530 |
|
| 528 |
def __update_item_availability_cache(item_id, source_id, item=None):
|
531 |
def __update_item_availability_cache(item_id, source_id, item=None):
|
| 529 |
"""
|
532 |
"""
|
| 530 |
Determines the warehouse that should be used to fulfil an order for the given item.
|
533 |
Determines the warehouse that should be used to fulfil an order for the given item.
|
| 531 |
Algorithm explained at https://sites.google.com/a/shop2020.in/virtual-w-h-and-inventory/technical-details
|
534 |
Algorithm explained at https://sites.google.com/a/shop2020.in/virtual-w-h-and-inventory/technical-details
|