Subversion Repositories SmartDukaan

Rev

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

Rev 13150 Rev 13493
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