Subversion Repositories SmartDukaan

Rev

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

Rev 6821 Rev 6832
Line 15... Line 15...
15
    RevisionedPurchaseOrder
15
    RevisionedPurchaseOrder
16
from shop2020.purchase.main.model.Supplier import Supplier
16
from shop2020.purchase.main.model.Supplier import Supplier
17
from shop2020.purchase.main.model.PurchaseOrder import PurchaseOrder
17
from shop2020.purchase.main.model.PurchaseOrder import PurchaseOrder
18
from shop2020.thriftpy.generic.ttypes import ExceptionType
18
from shop2020.thriftpy.generic.ttypes import ExceptionType
19
from shop2020.thriftpy.model.v1.inventory.ttypes import WarehouseType, \
19
from shop2020.thriftpy.model.v1.inventory.ttypes import WarehouseType, \
20
    InventoryType
20
    InventoryType, ItemStockPurchaseParams
21
from shop2020.thriftpy.model.v1.order.ttypes import OrderStatus
21
from shop2020.thriftpy.model.v1.order.ttypes import OrderStatus
22
from shop2020.thriftpy.purchase.ttypes import PurchaseServiceException, POStatus, \
22
from shop2020.thriftpy.purchase.ttypes import PurchaseServiceException, POStatus, \
23
    PurchaseOrder as TPurchaseOrder, LineItem as TLineItem, POType,\
23
    PurchaseOrder as TPurchaseOrder, LineItem as TLineItem, POType,\
24
    PurchaseReturnType
24
    PurchaseReturnType
25
from shop2020.utils.Utils import to_py_date
25
from shop2020.utils.Utils import to_py_date
Line 292... Line 292...
292
            for key in requirements:
292
            for key in requirements:
293
                inventory_client = InventoryClient().get_client()
293
                inventory_client = InventoryClient().get_client()
294
                oosStatuses = inventory_client.getOosStatusesForXDaysForItem(key,5)
294
                oosStatuses = inventory_client.getOosStatusesForXDaysForItem(key,5)
295
                salesCount = 0
295
                salesCount = 0
296
                numDaysInStock = 0
296
                numDaysInStock = 0
-
 
297
                avgSales = 0
297
                for oosStatus in oosStatuses:
298
                for oosStatus in oosStatuses:
298
                    if oosStatus.status == False:
299
                    if oosStatus.is_oos == False:
299
                        salesCount = salesCount + oosStatus.num_orders
300
                        salesCount = salesCount + oosStatus.num_orders
300
                        numDaysInStock = numDaysInStock + 1
301
                        numDaysInStock = numDaysInStock + 1
-
 
302
                if numDaysInStock>0:
301
                avgSales = salesCount/numDaysInStock
303
                    avgSales = salesCount/numDaysInStock
302
                if avgSales>1:
304
                itemStockPurchaseParam = ItemStockPurchaseParams()
303
                    itemStockPurchaseParam = inventory_client.getItemStockPurchaseParams(key)
305
                itemStockPurchaseParam = inventory_client.getItemStockPurchaseParams(key)
304
                advancedPOParameters[key] = [avgSales * itemStockPurchaseParam.numOfDaysStock, avgSales, numDaysInStock, itemStockPurchaseParam.minStockLevel, itemStockPurchaseParam.numOfDaysStock]
306
                advancedPOParameters[key] = [avgSales * itemStockPurchaseParam.numOfDaysStock, avgSales, numDaysInStock, itemStockPurchaseParam.minStockLevel, itemStockPurchaseParam.numOfDaysStock]
305
                
307
                
306
            netRequirements = {}
308
            netRequirements = {}
307
            for itemId in requirements.keys():
309
            for itemId in requirements.keys():
308
                requirementsCount = requirements.get(itemId)
310
                requirementsCount = requirements.get(itemId)
Line 343... Line 345...
343
                    t_po_lineitem.modelName = item.modelName
345
                    t_po_lineitem.modelName = item.modelName
344
                    t_po_lineitem.color = item.color
346
                    t_po_lineitem.color = item.color
345
                    t_po_lineitem.itemId = item.id
347
                    t_po_lineitem.itemId = item.id
346
                    t_po_lineitem.quantity = quantity
348
                    t_po_lineitem.quantity = quantity
347
                    
349
                    
-
 
350
                    t_po_lineitem.availableQuantity = 0
-
 
351
                    if availability.has_key(item.id):
348
                    t_po_lineitem.availableQuantity = availability[item.id][0]
352
                        t_po_lineitem.availableQuantity = availability[item.id][0]
349
                    t_po_lineitem.reservedQuantity = requirements[lineitem.item_id]
353
                    t_po_lineitem.reservedQuantity = requirements[lineitem.item_id]
350
                    t_po_lineitem.suggestedQuantity = advancedPOParameters[item.id][0]
354
                    t_po_lineitem.suggestedQuantity = advancedPOParameters[item.id][0]
351
                    t_po_lineitem.avgSales = advancedPOParameters[item.id][1]
355
                    t_po_lineitem.avgSales = advancedPOParameters[item.id][1]
352
                    t_po_lineitem.numberOfDaysInStock = advancedPOParameters[item.id][2] 
356
                    t_po_lineitem.numberOfDaysInStock = advancedPOParameters[item.id][2] 
353
                    t_po_lineitem.minStockLevel = advancedPOParameters[item.id][3]
357
                    t_po_lineitem.minStockLevel = advancedPOParameters[item.id][3]
354
                    t_po_lineitem.numberOfDaysStock = advancedPOParameters[item.id][2] 
358
                    t_po_lineitem.numberOfDaysStock = advancedPOParameters[item.id][4] 
355
                    if codRequirements.has_key(item.id):
359
                    if codRequirements.has_key(item.id):
356
                        t_po_lineitem.codCount = min(codRequirements[item.id], quantity)
360
                        t_po_lineitem.codCount = min(codRequirements[item.id], quantity)
357
                    try:
361
                    try:
358
                        item_pricing = inventory_client.getItemPricing(item.id, vendorId)
362
                        item_pricing = inventory_client.getItemPricing(item.id, vendorId)
359
                    except Exception as e:
363
                    except Exception as e: