Subversion Repositories SmartDukaan

Rev

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

Rev 6938 Rev 7105
Line 252... Line 252...
252
            availability = {}
252
            availability = {}
253
            
253
            
254
            ourGoodWarehouseIds = [w.id for w in inventory_client.getWarehouses(WarehouseType.OURS, InventoryType.GOOD, 0, None, warehouseId)]
254
            ourGoodWarehouseIds = [w.id for w in inventory_client.getWarehouses(WarehouseType.OURS, InventoryType.GOOD, 0, None, warehouseId)]
255
            itemInventorySnapshot = inventory_client.getInventorySnapshot(0)
255
            itemInventorySnapshot = inventory_client.getInventorySnapshot(0)
256
            for itemId, itemInventory in itemInventorySnapshot.iteritems():
256
            for itemId, itemInventory in itemInventorySnapshot.iteritems():
257
                item = self.__get_item_from_master(itemId)
257
                '''item = self.__get_item_from_master(itemId)'''
258
                for warehouseId, quantity in itemInventory.availability.iteritems():
258
                for warehouseId, quantity in itemInventory.availability.iteritems():
259
                    if warehouseId in ourGoodWarehouseIds:
259
                    if warehouseId in ourGoodWarehouseIds:
260
                        if availability.has_key(item.id):
260
                        if availability.has_key(itemId):
261
                            availability[item.id] = [availability[item.id][0] + quantity, item]
261
                            availability[itemId] = [availability[itemId][0] + quantity]
262
                        else:
262
                        else:
263
                            availability[item.id] = [quantity, item]
263
                            availability[itemId] = [quantity]
264
 
264
 
265
            previouslyOrderedQty = {}
265
            previouslyOrderedQty = {}
266
            unfulfilledPurchaseOrders = PurchaseOrder.query.filter(or_(PurchaseOrder.status == POStatus.PARTIALLY_FULFILLED, PurchaseOrder.status == POStatus.READY)).filter(PurchaseOrder.type == POType.REAL).all()
266
            unfulfilledPurchaseOrders = PurchaseOrder.query.filter(or_(PurchaseOrder.status == POStatus.PARTIALLY_FULFILLED, PurchaseOrder.status == POStatus.READY)).filter(PurchaseOrder.type == POType.REAL).all()
267
            for purchaseOrder in unfulfilledPurchaseOrders:
267
            for purchaseOrder in unfulfilledPurchaseOrders:
268
                for lineitem in purchaseOrder.lineitems:
268
                for lineitem in purchaseOrder.lineitems:
Line 270... Line 270...
270
                        previouslyOrderedQty[lineitem.itemId] = previouslyOrderedQty[lineitem.itemId] + lineitem.unfulfilledQuantity
270
                        previouslyOrderedQty[lineitem.itemId] = previouslyOrderedQty[lineitem.itemId] + lineitem.unfulfilledQuantity
271
                    else:
271
                    else:
272
                        previouslyOrderedQty[lineitem.itemId] = lineitem.unfulfilledQuantity
272
                        previouslyOrderedQty[lineitem.itemId] = lineitem.unfulfilledQuantity
273
                    
273
                    
274
                    if availability.has_key(lineitem.itemId):
274
                    if availability.has_key(lineitem.itemId):
275
                        availability[lineitem.itemId] = [availability[lineitem.itemId][0] + lineitem.unfulfilledQuantity, availability[lineitem.itemId][1]]
275
                        availability[lineitem.itemId] = [availability[lineitem.itemId][0] + lineitem.unfulfilledQuantity]
276
                    else:
276
                    else:
277
                        item = self.__get_item_from_master(lineitem.itemId)
277
                        '''item = self.__get_item_from_master(lineitem.itemId)'''
278
                        availability[item.id] = [lineitem.unfulfilledQuantity, item]
278
                        availability[item.id] = [lineitem.unfulfilledQuantity]
279
 
279
 
280
            codRequirements = {}
280
            codRequirements = {}
281
            requirements = {}
281
            requirements = {}
282
            for order in pending_orders:
282
            for order in pending_orders:
283
                if order.purchaseOrderId:
283
                if order.purchaseOrderId:
Line 357... Line 357...
357
                requirementsCount = requirements.get(itemId)
357
                requirementsCount = requirements.get(itemId)
358
                if requirementsCount is None:
358
                if requirementsCount is None:
359
                    requirementsCount = 0.0
359
                    requirementsCount = 0.0
360
                if  availability.has_key(itemId):
360
                if  availability.has_key(itemId):
361
                    availabilityCount = availability.get(itemId)[0]
361
                    availabilityCount = availability.get(itemId)[0]
362
                    item = availability.get(itemId)[1]
362
                    item = self.__get_item_from_master(itemId)
363
                    if requirementsCount > availabilityCount or itemId in SKUListForPO:
363
                    if requirementsCount > availabilityCount or itemId in SKUListForPO:
364
                        if item.preferredVendor is None:
364
                        if item.preferredVendor is None:
365
                            raise PurchaseServiceException(101, 'Preferred Vendor missing for ' + " ".join([str(item.brand), str(item.modelName), str(item.modelNumber), str(item.color)]))
365
                            raise PurchaseServiceException(101, 'Preferred Vendor missing for ' + " ".join([str(item.brand), str(item.modelName), str(item.modelNumber), str(item.color)]))
366
                        if (netRequirements.has_key(item.preferredVendor)):
366
                        if (netRequirements.has_key(item.preferredVendor)):
367
                            netRequirements[item.preferredVendor].append([item, requirementsCount - availabilityCount])
367
                            netRequirements[item.preferredVendor].append([item, requirementsCount - availabilityCount])
Line 426... Line 426...
426
                        raise PurchaseServiceException(101, 'Transfer price missing for ' + vendor.name + ' and ' + " ".join([item.brand, item.modelName, item.modelNumber, item.color]))
426
                        raise PurchaseServiceException(101, 'Transfer price missing for ' + vendor.name + ' and ' + " ".join([item.brand, item.modelName, item.modelNumber, item.color]))
427
                    t_po_lineitem.unitPrice = item_pricing.transferPrice
427
                    t_po_lineitem.unitPrice = item_pricing.transferPrice
428
                    t_purchase_order.lineitems.append(t_po_lineitem)
428
                    t_purchase_order.lineitems.append(t_po_lineitem)
429
                purchaseOrders.append(t_purchase_order)
429
                purchaseOrders.append(t_purchase_order)
430
            return purchaseOrders
430
            return purchaseOrders
-
 
431
        except Exception as e:
-
 
432
            print e
431
        finally:
433
        finally:
432
            self.close_session()
434
            self.close_session()
433
 
435
 
434
    def getSuppliers(self,):
436
    def getSuppliers(self,):
435
        """
437
        """