Subversion Repositories SmartDukaan

Rev

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

Rev 8282 Rev 8303
Line 1107... Line 1107...
1107
        query = query.filter(Order.created_timestamp >from_date)
1107
        query = query.filter(Order.created_timestamp >from_date)
1108
    if to_date:
1108
    if to_date:
1109
        query = query.filter(Order.created_timestamp < to_date)
1109
        query = query.filter(Order.created_timestamp < to_date)
1110
    return query.all()
1110
    return query.all()
1111
 
1111
 
1112
def get_orders_in_batch(statuses=[], offset=0, limit=0, warehouse_id=None):
1112
def get_orders_in_batch(statuses=[], offset=0, limit=0, warehouse_id=None, source=0):
1113
    query = Order.query
1113
    query = Order.query
1114
    if warehouse_id:
1114
    if warehouse_id:
1115
        query = query.filter(Order.warehouse_id == warehouse_id)
1115
        query = query.filter(Order.warehouse_id == warehouse_id)
-
 
1116
    if source:
-
 
1117
        query = query.filter(Order.source == source)
1116
    if statuses:
1118
    if statuses:
1117
        query = query.filter(Order.status.in_(statuses))
1119
        query = query.filter(Order.status.in_(statuses))
1118
    query = query.offset(offset)
1120
    query = query.offset(offset)
1119
    if limit:
1121
    if limit:
1120
        query = query.limit(limit)
1122
        query = query.limit(limit)
1121
    return query.all()
1123
    return query.all()
1122
 
1124
 
1123
def get_order_count(statuses=[], warehouse_id=None):
1125
def get_order_count(statuses=[], warehouse_id=None, source=0):
1124
    if not warehouse_id:
1126
    if not warehouse_id:
1125
        raise TransactionServiceException(101, "bad warehouse id")
1127
        raise TransactionServiceException(101, "bad warehouse id")
1126
    query = session.query(func.count(Order.id)).filter(Order.warehouse_id == warehouse_id)
1128
    query = session.query(func.count(Order.id)).filter(Order.warehouse_id == warehouse_id)
-
 
1129
    if source:
-
 
1130
        query = query.filter(Order.source == source)
1127
    if statuses:
1131
    if statuses:
1128
        query = query.filter(Order.status.in_(statuses))
1132
        query = query.filter(Order.status.in_(statuses))
1129
    return query.scalar()
1133
    return query.scalar()
1130
 
1134
 
1131
def get_returnable_orders_for_customer(customer_id, limit = None):
1135
def get_returnable_orders_for_customer(customer_id, limit = None):
Line 1326... Line 1330...
1326
        return False
1330
        return False
1327
    else:
1331
    else:
1328
        return True
1332
        return True
1329
 
1333
 
1330
def add_billing_details(orderId, invoice_number, serialNumbers, itemNumbers, freebieWarehouseId, billedBy, jacketNumber, billingType, fulfilmentWarehouseId, authorize):
1334
def add_billing_details(orderId, invoice_number, serialNumbers, itemNumbers, freebieWarehouseId, billedBy, jacketNumber, billingType, fulfilmentWarehouseId, authorize):
1331
    if jacketNumber is None or jacketNumber <= 0:
-
 
1332
        raise TransactionServiceException(110, "Invalid jacket number")
-
 
1333
    
-
 
1334
    if billedBy is None or billedBy.strip() == "":
1335
    if billedBy is None or billedBy.strip() == "":
1335
        raise TransactionServiceException(110, "Invalid Biller")
1336
        raise TransactionServiceException(110, "Invalid Biller")
1336
    
1337
    
1337
    order = Order.get_by(id=orderId)
1338
    order = Order.get_by(id=orderId)
1338
    if not order:
1339
    if not order:
1339
        raise TransactionServiceException(101, "No order found for the given order id" + str(orderId))
1340
        raise TransactionServiceException(101, "No order found for the given order id" + str(orderId))
-
 
1341
    
-
 
1342
    if jacketNumber is None or jacketNumber <= 0:
-
 
1343
        if order.source == 6:
-
 
1344
            print "Skipping Jacket Number field for OrderId " + str(orderId)
-
 
1345
        else:
-
 
1346
            raise TransactionServiceException(110, "Invalid jacket number")
1340
 
1347
 
1341
    '''
1348
    '''
1342
    First checking whether freebie can be billed or not otherwise wont proceed.
1349
    First checking whether freebie can be billed or not otherwise wont proceed.
1343
    '''
1350
    '''
1344
    if order.freebieItemId:
1351
    if order.freebieItemId:
Line 1377... Line 1384...
1377
    
1384
    
1378
    catalog_client = CatalogClient().get_client()
1385
    catalog_client = CatalogClient().get_client()
1379
    item = catalog_client.getItem(item_id)
1386
    item = catalog_client.getItem(item_id)
1380
    if order.status == OrderStatus.ACCEPTED:
1387
    if order.status == OrderStatus.ACCEPTED:
1381
        order.jacket_number = jacketNumber
1388
        order.jacket_number = jacketNumber
1382
        
1389
        if order.source == 6:
-
 
1390
            order.jacket_number = "eby"+str(orderId)
1383
        if itemNumbers:
1391
        if itemNumbers:
1384
            lineitem.item_number = itemNumbers[0]    
1392
            lineitem.item_number = itemNumbers[0]    
1385
        if serialNumbers:
1393
        if serialNumbers:
1386
            lineitem.serial_number = serialNumbers[0]                
1394
            lineitem.serial_number = serialNumbers[0]                
1387
            
1395
            
Line 3647... Line 3655...
3647
     - itemId
3655
     - itemId
3648
     - inventory
3656
     - inventory
3649
    """
3657
    """
3650
    orders = Order.query.filter(Order.warehouse_id == 9).filter(Order.status.in_(tuple([OrderStatus.SUBMITTED_FOR_PROCESSING, OrderStatus.INVENTORY_LOW, OrderStatus.LOW_INV_PO_RAISED, OrderStatus.LOW_INV_REVERSAL_IN_PROCESS]))).order_by(Order.expected_shipping_time).all()
3658
    orders = Order.query.filter(Order.warehouse_id == 9).filter(Order.status.in_(tuple([OrderStatus.SUBMITTED_FOR_PROCESSING, OrderStatus.INVENTORY_LOW, OrderStatus.LOW_INV_PO_RAISED, OrderStatus.LOW_INV_REVERSAL_IN_PROCESS]))).order_by(Order.expected_shipping_time).all()
3651
    for order in orders:
3659
    for order in orders:
-
 
3660
        if order.source ==6:
-
 
3661
            continue
3652
        if inventory > 0:
3662
        if inventory > 0:
3653
            lineitem = order.lineitems[0]
3663
            lineitem = order.lineitems[0]
3654
            if itemId == lineitem.item_id:
3664
            if itemId == lineitem.item_id:
3655
                try:
3665
                try:
3656
                    accept_order(order.id)
3666
                    accept_order(order.id)
Line 4145... Line 4155...
4145
def accept_order_for_item(itemId, quantity, fulfilmentWarehouseId, billingWarehouseId):
4155
def accept_order_for_item(itemId, quantity, fulfilmentWarehouseId, billingWarehouseId):
4146
    inventoryClient = InventoryClient().get_client()
4156
    inventoryClient = InventoryClient().get_client()
4147
    inventory = inventoryClient.getItemInventoryByItemId(itemId)
4157
    inventory = inventoryClient.getItemInventoryByItemId(itemId)
4148
    orders = Order.query.filter(Order.fulfilmentWarehouseId != fulfilmentWarehouseId).filter(Order.warehouse_id == billingWarehouseId).filter(Order.status.in_(tuple([OrderStatus.SUBMITTED_FOR_PROCESSING, OrderStatus.COD_VERIFICATION_PENDING, OrderStatus.ACCEPTED, OrderStatus.INVENTORY_LOW, OrderStatus.LOW_INV_PO_RAISED, OrderStatus.LOW_INV_REVERSAL_IN_PROCESS]))).order_by(Order.expected_shipping_time).all()
4158
    orders = Order.query.filter(Order.fulfilmentWarehouseId != fulfilmentWarehouseId).filter(Order.warehouse_id == billingWarehouseId).filter(Order.status.in_(tuple([OrderStatus.SUBMITTED_FOR_PROCESSING, OrderStatus.COD_VERIFICATION_PENDING, OrderStatus.ACCEPTED, OrderStatus.INVENTORY_LOW, OrderStatus.LOW_INV_PO_RAISED, OrderStatus.LOW_INV_REVERSAL_IN_PROCESS]))).order_by(Order.expected_shipping_time).all()
4149
    for order in orders:
4159
    for order in orders:
-
 
4160
        if order.source ==6:
-
 
4161
            continue
4150
        lineitem = order.lineitems[0]
4162
        lineitem = order.lineitems[0]
4151
        if lineitem.item_id == itemId and lineitem.quantity <= quantity:
4163
        if lineitem.item_id == itemId and lineitem.quantity <= quantity:
4152
            warehouse = inventoryClient.getWarehouse(order.fulfilmentWarehouseId)
4164
            warehouse = inventoryClient.getWarehouse(order.fulfilmentWarehouseId)
4153
            if not warehouse.billingWarehouseId and warehouse.warehouseType == WarehouseType.THIRD_PARTY:
4165
            if not warehouse.billingWarehouseId and warehouse.warehouseType == WarehouseType.THIRD_PARTY:
4154
                if (inventory.availability[fulfilmentWarehouseId] >= inventory.reserved[fulfilmentWarehouseId] + lineitem.quantity) and inventory.availability[order.fulfilmentWarehouseId] < inventory.reserved[order.fulfilmentWarehouseId]:
4166
                if (inventory.availability[fulfilmentWarehouseId] >= inventory.reserved[fulfilmentWarehouseId] + lineitem.quantity) and inventory.availability[order.fulfilmentWarehouseId] < inventory.reserved[order.fulfilmentWarehouseId]:
Line 6029... Line 6041...
6029
    order.logistics_provider_id = t_order.logistics_provider_id
6041
    order.logistics_provider_id = t_order.logistics_provider_id
6030
    order.airwaybill_no = t_order.airwaybill_no
6042
    order.airwaybill_no = t_order.airwaybill_no
6031
    order.tracking_id = t_order.tracking_id
6043
    order.tracking_id = t_order.tracking_id
6032
    order.status = t_order.status  
6044
    order.status = t_order.status  
6033
    order.statusDescription = t_order.statusDescription
6045
    order.statusDescription = t_order.statusDescription
-
 
6046
    order.cod = 0
6034
    order.otg = False
6047
    order.otg = False
6035
    order.freebieItemId = 0
6048
    order.freebieItemId = 0
6036
    order.orderType = OrderType.B2C
6049
    order.orderType = OrderType.B2C
6037
    order.source = 6
6050
    order.source = 6
6038
    
6051