Subversion Repositories SmartDukaan

Rev

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

Rev 4341 Rev 4368
Line 310... Line 310...
310
 
310
 
311
def update_inventory_history(warehouse_id, timestamp, availability):
311
def update_inventory_history(warehouse_id, timestamp, availability):
312
    warehouse = get_Warehouse(warehouse_id)
312
    warehouse = get_Warehouse(warehouse_id)
313
    if not warehouse:
313
    if not warehouse:
314
        raise InventoryServiceException(107, "Warehouse? Where?")
314
        raise InventoryServiceException(107, "Warehouse? Where?")
315
    #FIXME Choose vendor.
315
    vendors = get_vendors_for_warehouse(warehouse_id)
316
    #vendor = warehouse.vendor
316
    if len(vendors) > 1:
-
 
317
        raise InventoryServiceException(110, "Multiple vendors found for warehouse !")
317
    vendor = get_Vendor(1) 
318
    vendor = vendors[0]
318
    time = datetime.datetime.now()
319
    time = datetime.datetime.now()
319
    for item_key, quantity in availability.iteritems():
320
    for item_key, quantity in availability.iteritems():
320
        try:
321
        try:
321
            vendor_item_mapping = VendorItemMapping.query.filter_by(vendor=vendor, item_key=item_key).one();
322
            vendor_item_mapping = VendorItemMapping.query.filter_by(vendor=vendor, item_key=item_key).one();
322
            item = vendor_item_mapping.item
323
            item = vendor_item_mapping.item
Line 338... Line 339...
338
        raise InventoryServiceException(107, "Warehouse? Where?")
339
        raise InventoryServiceException(107, "Warehouse? Where?")
339
     
340
     
340
    time = datetime.datetime.now()
341
    time = datetime.datetime.now()
341
    warehouse.lastCheckedOn = time
342
    warehouse.lastCheckedOn = time
342
    warehouse.vendorString = timestamp
343
    warehouse.vendorString = timestamp
343
    #FIXME Choose vendor.
344
    vendors = get_vendors_for_warehouse(warehouse_id)
344
    #vendor = warehouse.vendor
345
    if len(vendors) > 1:
-
 
346
        raise InventoryServiceException(110, "Multiple vendors found for warehouse !")
345
    vendor = get_Vendor(1)
347
    vendor = vendors[0]
346
    session.commit()
348
    session.commit()
347
    for item_key, quantity in availability.iteritems():
349
    for item_key, quantity in availability.iteritems():
348
        try:
350
        try:
349
            vendor_item_mapping = VendorItemMapping.query.filter_by(vendor=vendor, item_key=item_key).one();
351
            vendor_item_mapping = VendorItemMapping.query.filter_by(vendor=vendor, item_key=item_key).one();
350
            item = vendor_item_mapping.item
352
            item = vendor_item_mapping.item
Line 1270... Line 1272...
1270
def get_pending_orders_inventory(vendor_id=1):
1272
def get_pending_orders_inventory(vendor_id=1):
1271
    """
1273
    """
1272
    Returns a list of inventory stock for items for which there are pending orders.
1274
    Returns a list of inventory stock for items for which there are pending orders.
1273
    """
1275
    """
1274
    
1276
    
1275
    #warehouse_ids = [warehouse.id for warehouse in Warehouse.query.filter_by(vendor_id=vendor_id).all()]
1277
    warehouse_ids = [warehouse.id for warehouse in get_warehouses_for_vendor(vendor_id)]
1276
    warehouse_ids = [1,2,3,4,5]
-
 
1277
    pending_items_inventory = []
1278
    pending_items_inventory = []
1278
    if warehouse_ids:
1279
    if warehouse_ids:
1279
        pending_items_inventory = session.query(CurrentInventorySnapshot.item_id, func.sum(CurrentInventorySnapshot.availibility), func.sum(CurrentInventorySnapshot.reserved)).filter(CurrentInventorySnapshot.warehouse_id.in_(warehouse_ids)).group_by(CurrentInventorySnapshot.item_id).having(func.sum(CurrentInventorySnapshot.reserved) > 0).all()
1280
        pending_items_inventory = session.query(CurrentInventorySnapshot.item_id, func.sum(CurrentInventorySnapshot.availibility), func.sum(CurrentInventorySnapshot.reserved)).filter(CurrentInventorySnapshot.warehouse_id.in_(warehouse_ids)).group_by(CurrentInventorySnapshot.item_id).having(func.sum(CurrentInventorySnapshot.reserved) > 0).all()
1280
    return pending_items_inventory
1281
    return pending_items_inventory
1281
 
1282