Subversion Repositories SmartDukaan

Rev

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

Rev 12963 Rev 12976
Line 488... Line 488...
488
        return True
488
        return True
489
    except:
489
    except:
490
        print "Unexpected error:", sys.exc_info()[0]
490
        print "Unexpected error:", sys.exc_info()[0]
491
        return False
491
        return False
492
 
492
 
-
 
493
#This is not the source as in snapdeal or website, this source is to incorporate different pricing depending upon source id.
-
 
494
#i.e. if user visiting to our site has specific source he would se pricing on that souce basis. Default source is 1.
493
def get_item_availability_for_location(item_id, source_id):
495
def get_item_availability_for_location(item_id, source_id):
494
    item_availability = ItemAvailabilityCache.get_by(itemId=item_id, sourceId = source_id)
496
    item_availability = ItemAvailabilityCache.get_by(itemId=item_id, sourceId = source_id)
495
    if item_availability:
497
    if item_availability:
496
        return [item_availability.warehouseId, item_availability.expectedDelay, item_availability.billingWarehouseId, item_availability.sellingPrice, item_availability.totalAvailability, item_availability.weight]
498
        return [item_availability.warehouseId, item_availability.expectedDelay, item_availability.billingWarehouseId, item_availability.sellingPrice, item_availability.totalAvailability, item_availability.weight]
497
    else:
499
    else:
Line 507... Line 509...
507
    else:
509
    else:
508
        ItemAvailabilityCache.query.delete()
510
        ItemAvailabilityCache.query.delete()
509
        session.commit()
511
        session.commit()
510
        client = CatalogClient("catalog_service_server_host_master", "catalog_service_server_port").get_client()
512
        client = CatalogClient("catalog_service_server_host_master", "catalog_service_server_port").get_client()
511
        for item in client.getItemsByRiskyFlag():
513
        for item in client.getItemsByRiskyFlag():
-
 
514
            item_availability = ItemAvailabilityCache.get_by(itemId=item.id, sourceId=1)
-
 
515
            if not item_availability:
-
 
516
                try:
512
            __update_item_availability_cache(None, 1, item)
517
                    __update_item_availability_cache(item.id, 1, item)
-
 
518
                    __check_risky_item(item.id, 1)
-
 
519
                except:
-
 
520
                    continue
-
 
521
    session.commit()
513
 
522
 
514
def __update_item_availability_cache(item_id, source_id, item=None):
523
def __update_item_availability_cache(item_id, source_id, item=None):
515
    """
524
    """
516
    Determines the warehouse that should be used to fulfil an order for the given item.
525
    Determines the warehouse that should be used to fulfil an order for the given item.
517
    Algorithm explained at https://sites.google.com/a/shop2020.in/virtual-w-h-and-inventory/technical-details
526
    Algorithm explained at https://sites.google.com/a/shop2020.in/virtual-w-h-and-inventory/technical-details