Subversion Repositories SmartDukaan

Rev

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

Rev 4421 Rev 4434
Line 1342... Line 1342...
1342
    query = query.order_by(Order.created_timestamp)
1342
    query = query.order_by(Order.created_timestamp)
1343
    pending_orders = query.all()
1343
    pending_orders = query.all()
1344
    
1344
    
1345
    if not pending_orders:
1345
    if not pending_orders:
1346
        return -1
1346
        return -1
-
 
1347
 
-
 
1348
    catalog_client = CatalogClient().get_client()
-
 
1349
    availability = {}
-
 
1350
    for item in catalog_client.getAllItemsForWarehouse(warehouseId):
-
 
1351
        availability[item.id] = item.itemInventory.availability[warehouseId]
1347
    
1352
 
-
 
1353
    query = Order.query.with_lockmode("update").filter_by(warehouse_id=warehouseId)
-
 
1354
    query = query.filter(Order.status == OrderStatus.ACCEPTED)
-
 
1355
    accepted_orders = query.all()
-
 
1356
 
1348
    t_purchase_order = PurchaseOrder()
1357
    t_purchase_order = PurchaseOrder()
1349
    t_purchase_order.supplierId = 3 # Putting supplier id as 3 for sarvottam for time being
1358
    t_purchase_order.supplierId = 3 # Putting supplier id as 3 for sarvottam for time being
1350
    t_purchase_order.warehouseId = warehouseId
1359
    t_purchase_order.warehouseId = warehouseId
1351
    t_purchase_order.lineitems = []
1360
    t_purchase_order.lineitems = []
1352
    
1361
    
-
 
1362
    t_po_lineitems = []
1353
    lineitems = {}
1363
    lineitems = {}
1354
    
1364
 
1355
    catalog_client = CatalogClient().get_client()
1365
    # Considering all pending orders and accepted as well
1356
    
1366
    accepted_orders.extend(pending_orders)
1357
    for order in pending_orders:
1367
    for order in accepted_orders:
1358
        for lineitem in order.lineitems:
1368
        for lineitem in order.lineitems:
1359
            item_id = lineitem.item_id
1369
            item_id = lineitem.item_id
1360
            if lineitems.has_key(item_id):
1370
            if lineitems.has_key(item_id):
1361
                lineitems[item_id].quantity = lineitems[item_id].quantity + lineitem.quantity
1371
                lineitems[item_id].quantity += lineitem.quantity
1362
            else:
1372
            else:
1363
                t_po_lineitem = POLineItem()
1373
                t_po_lineitem = POLineItem()
1364
                t_po_lineitem.productGroup = lineitem.productGroup
1374
                t_po_lineitem.productGroup = lineitem.productGroup
1365
                t_po_lineitem.brand = lineitem.brand
1375
                t_po_lineitem.brand = lineitem.brand
1366
                t_po_lineitem.modelNumber = lineitem.model_number
1376
                t_po_lineitem.modelNumber = lineitem.model_number
1367
                t_po_lineitem.modelName = lineitem.model_name
1377
                t_po_lineitem.modelName = lineitem.model_name
1368
                t_po_lineitem.color = lineitem.color
1378
                t_po_lineitem.color = lineitem.color
1369
                t_po_lineitem.itemId = lineitem.item_id
1379
                t_po_lineitem.itemId = lineitem.item_id
1370
                t_po_lineitem.quantity = lineitem.quantity
1380
                t_po_lineitem.quantity = lineitem.quantity - availability.get(item_id, 0)
1371
                lineitems[item_id] = t_po_lineitem
1381
                lineitems[item_id] = t_po_lineitem
1372
                t_purchase_order.lineitems.append(t_po_lineitem)
1382
                t_po_lineitems.append(t_po_lineitem)
1373
                #FIXME vendor is hardcoded for servottam
1383
                #FIXME vendor is hardcoded for sarvottam
1374
                item_pricing = catalog_client.getItemPricing(item_id, 3)
1384
                item_pricing = catalog_client.getItemPricing(item_id, 3)
1375
                t_po_lineitem.unitPrice = item_pricing.transferPrice
1385
                t_po_lineitem.unitPrice = item_pricing.transferPrice
-
 
1386
 
-
 
1387
    for lineitem in t_po_lineitems:
1376
        
1388
        if lineitem.quantity > 0:
-
 
1389
            t_purchase_order.lineitems.append(lineitem)
-
 
1390
 
-
 
1391
    if not t_purchase_order.lineitems:
1377
        
1392
        return -1
-
 
1393
 
1378
    warehouse_client = WarehouseClient().get_client()
1394
    warehouse_client = WarehouseClient().get_client()
1379
    po_id = warehouse_client.createPurchaseOrder(t_purchase_order)
1395
    po_id = warehouse_client.createPurchaseOrder(t_purchase_order)
1380
    
1396
    
1381
    for order in pending_orders:
1397
    for order in pending_orders:
1382
        order.purchase_order_id = po_id
1398
        order.purchase_order_id = po_id
-
 
1399
        order.status = OrderStatus.LOW_INV_PO_RAISED
-
 
1400
        order.statusDescription = 'In Process'
1383
    session.commit()
1401
    session.commit()
1384
    return po_id
1402
    return po_id
1385
 
1403
 
1386
def update_weight(order_id, weight):
1404
def update_weight(order_id, weight):
1387
    '''
1405
    '''