Subversion Repositories SmartDukaan

Rev

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

Rev 18429 Rev 18464
Line 44... Line 44...
44
boldStyle = xlwt.XFStyle()
44
boldStyle = xlwt.XFStyle()
45
f = xlwt.Font()
45
f = xlwt.Font()
46
f.bold = True
46
f.bold = True
47
boldStyle.font = f
47
boldStyle.font = f
48
i = -1
48
i = -1
-
 
49
errorsMap={}
49
 
50
 
50
datetime_format = xlwt.XFStyle()
51
datetime_format = xlwt.XFStyle()
51
datetime_format.num_format_str = 'dd/mm/yyyy HH:MM AM/PM'
52
datetime_format.num_format_str = 'dd/mm/yyyy HH:MM AM/PM'
52
 
53
 
53
class PurchaseHandler:
54
class PurchaseHandler:
Line 215... Line 216...
215
                    avgSales = float(salesCount)/float(numDaysInStock)
216
                    avgSales = float(salesCount)/float(numDaysInStock)
216
                itemStockPurchaseParam = ItemStockPurchaseParams()
217
                itemStockPurchaseParam = ItemStockPurchaseParams()
217
                try:
218
                try:
218
                    itemStockPurchaseParam = inventory_client.getItemStockPurchaseParams(key)
219
                    itemStockPurchaseParam = inventory_client.getItemStockPurchaseParams(key)
219
                except Exception as e:
220
                except Exception as e:
-
 
221
                    if errorsMap.has_key(key):
-
 
222
                        errorsMap[key] = errorsMap.get(key) + "| Item Stock Purchase Param Missing"
-
 
223
                    else:
-
 
224
                        errorsMap[key] = "Item Stock Purchase Param Missing "
-
 
225
                    continue
220
                    inventory_client.updateItemStockPurchaseParams(key, 0, 0)
226
                    inventory_client.updateItemStockPurchaseParams(key, 0, 0)
221
                    itemStockPurchaseParam = inventory_client.getItemStockPurchaseParams(key)
227
                    itemStockPurchaseParam = inventory_client.getItemStockPurchaseParams(key)
222
                advancedPOParameters[key] = [round(avgSales * itemStockPurchaseParam.numOfDaysStock), round(avgSales,2), numDaysInStock, itemStockPurchaseParam.minStockLevel, itemStockPurchaseParam.numOfDaysStock, lastXdaysSale, rtoCount]
228
                advancedPOParameters[key] = [round(avgSales * itemStockPurchaseParam.numOfDaysStock), round(avgSales,2), numDaysInStock, itemStockPurchaseParam.minStockLevel, itemStockPurchaseParam.numOfDaysStock, lastXdaysSale, rtoCount]
223
                
229
                
224
            cumulativeRequirementsItemIds = list(set(requirements.keys()+SKUListForPO))
230
            cumulativeRequirementsItemIds = list(set(requirements.keys()+SKUListForPO))
Line 231... Line 237...
231
                if  availability.has_key(itemId):
237
                if  availability.has_key(itemId):
232
                    availabilityCount = availability.get(itemId)[0]
238
                    availabilityCount = availability.get(itemId)[0]
233
                    item = self.__get_item_from_master(itemId)
239
                    item = self.__get_item_from_master(itemId)
234
                    if requirementsCount > availabilityCount or itemId in SKUListForPO:
240
                    if requirementsCount > availabilityCount or itemId in SKUListForPO:
235
                        if item.preferredVendor is None:
241
                        if item.preferredVendor is None:
-
 
242
                            if errorsMap.has_key(key):
236
                            raise PurchaseServiceException(101, 'Preferred Vendor missing for ' + " ".join([str(item.brand), str(item.modelName), str(item.modelNumber), str(item.color)]))
243
                                errorsMap[key] = errorsMap.get(key) + "| Preferred Vendor is Missing"
-
 
244
                            else:
-
 
245
                                errorsMap[key] = "Preferred Vendor is Missing "
-
 
246
                            continue
237
                        if (netRequirements.has_key(item.preferredVendor)):
247
                        if (netRequirements.has_key(item.preferredVendor)):
238
                            netRequirements[item.preferredVendor].append([item, requirementsCount - availabilityCount])
248
                            netRequirements[item.preferredVendor].append([item, requirementsCount - availabilityCount])
239
                        else:
249
                        else:
240
                            netRequirements[item.preferredVendor] = [[item, requirementsCount - availabilityCount]];
250
                            netRequirements[item.preferredVendor] = [[item, requirementsCount - availabilityCount]];
241
                else:
251
                else:
242
                    item = self.__get_item_from_master(itemId)
252
                    item = self.__get_item_from_master(itemId)
243
                    if item.preferredVendor is None:
253
                    if item.preferredVendor is None:
-
 
254
                        if errorsMap.has_key(key):
244
                        raise PurchaseServiceException(101, 'Preferred Vendor missing for ' + " ".join([str(item.brand), str(item.modelName), str(item.modelNumber), str(item.color)]))
255
                            errorsMap[key] = errorsMap.get(key) + "| Preferred Vendor is Missing"
-
 
256
                        else:
-
 
257
                            errorsMap[key] = "Preferred Vendor is Missing "
-
 
258
                        continue
245
                    if (netRequirements.has_key(item.preferredVendor)):
259
                    if (netRequirements.has_key(item.preferredVendor)):
246
                        netRequirements[item.preferredVendor].append([item, requirementsCount])
260
                        netRequirements[item.preferredVendor].append([item, requirementsCount])
247
                    else:
261
                    else:
248
                        netRequirements[item.preferredVendor] = [[item, requirementsCount]];
262
                        netRequirements[item.preferredVendor] = [[item, requirementsCount]];
249
    
263
    
Line 311... Line 325...
311
                    if codRequirements.has_key(item.id):
325
                    if codRequirements.has_key(item.id):
312
                        t_po_lineitem['codCount'] = min(codRequirements[item.id], quantity)
326
                        t_po_lineitem['codCount'] = min(codRequirements[item.id], quantity)
313
                    try:
327
                    try:
314
                        item_pricing = inventory_client.getItemPricing(item.id, vendorId)
328
                        item_pricing = inventory_client.getItemPricing(item.id, vendorId)
315
                    except Exception as e:
329
                    except Exception as e:
316
                        vendor = self.getSupplier(vendorId)
330
                        if errorsMap.has_key(key):
-
 
331
                            errorsMap[key] = errorsMap.get(key) + "| Could not find transfer price for vendor id: " + str(vendorId) +" "
-
 
332
                        else:
-
 
333
                            errorsMap[key] = "Could not find transfer price for vendor id: " + str(vendorId) +" "
317
                        print 'Could not find transfer price for Item id: ' + str(item.id) + ' and vendor id: ' + str(vendorId)
334
                        print 'Could not find transfer price for Item id: ' + str(item.id) + ' and vendor id: ' + str(vendorId)
318
                        print e
335
                        print e
319
                        raise PurchaseServiceException(101, 'Transfer price missing for ' + vendor.name + ' and ' + " ".join([item.brand, item.modelName, item.modelNumber, item.color]))
336
                        continue
320
                    t_po_lineitem['unitPrice'] = item_pricing.transferPrice
337
                    t_po_lineitem['unitPrice'] = item_pricing.transferPrice
321
                    t_po_lineitem['nlc'] = item_pricing.nlc
338
                    t_po_lineitem['nlc'] = item_pricing.nlc
322
                    t_po_lineitem['mrp'] = item.mrp
339
                    t_po_lineitem['mrp'] = item.mrp
323
                    t_purchase_order['lineitems'].append(t_po_lineitem)
340
                    t_purchase_order['lineitems'].append(t_po_lineitem)
324
                purchaseOrders.append(t_purchase_order)
341
                purchaseOrders.append(t_purchase_order)
Line 396... Line 413...
396
    worksheet.write(row, inc(), 'Pending RTOs', boldStyle)
413
    worksheet.write(row, inc(), 'Pending RTOs', boldStyle)
397
    worksheet.write(row, inc(), 'COD Pending Orders', boldStyle)
414
    worksheet.write(row, inc(), 'COD Pending Orders', boldStyle)
398
    worksheet.write(row, inc(), 'NumDaysStock', boldStyle)
415
    worksheet.write(row, inc(), 'NumDaysStock', boldStyle)
399
    worksheet.write(row, inc(), 'MinStockReq', boldStyle)
416
    worksheet.write(row, inc(), 'MinStockReq', boldStyle)
400
    worksheet.write(row, inc(), 'Additional Qty', boldStyle)
417
    worksheet.write(row, inc(), 'Additional Qty', boldStyle)
-
 
418
    worksheet.write(row, inc(), 'Errors', boldStyle)
401
    
419
    
402
    
420
    
403
    purchaseHandler = PurchaseHandler()
421
    purchaseHandler = PurchaseHandler()
404
    pendingPurchaseOrders = purchaseHandler.getPendingPurchaseOrders(7)
422
    pendingPurchaseOrders = purchaseHandler.getPendingPurchaseOrders(7)
405
    print pendingPurchaseOrders
423
    print pendingPurchaseOrders
Line 445... Line 463...
445
                additionalQty = additionalQty - (float(lineitem.get('rtoOrders'))/2)
463
                additionalQty = additionalQty - (float(lineitem.get('rtoOrders'))/2)
446
            
464
            
447
            if additionalQty<0:
465
            if additionalQty<0:
448
                additionalQty = 0
466
                additionalQty = 0
449
            worksheet.write(row, inc(), additionalQty)
467
            worksheet.write(row, inc(), additionalQty)
-
 
468
            error = "NA"
-
 
469
            if errorsMap.has_key(lineitem.get('itemId')):
-
 
470
                error = errorsMap.get(lineitem.get('itemId'))
-
 
471
            worksheet.write(row, inc(), error)
450
    wb.save(XLS_O_FILENAME)
472
    wb.save(XLS_O_FILENAME)
451
    
473
    
452
    sendmail(["amit.gupta@shop2020.in", "rajneesh.arora@saholic.com", "chaitnaya.vats@saholic.com", "manoj.kumar@saholic.com", "manish.sharma@shop2020.in"], "", "All Pending Purchase Orders", XLS_O_FILENAME)
474
    sendmail(["amit.gupta@shop2020.in", "rajneesh.arora@saholic.com", "chaitnaya.vats@saholic.com", "manoj.kumar@saholic.com", "manish.sharma@shop2020.in"], "", "All Pending Purchase Orders", XLS_O_FILENAME)
453
    #sendmail(["manish.sharma@shop2020.in"], "", "All Pending Purchase Orders", XLS_O_FILENAME)
475
    #sendmail(["manish.sharma@shop2020.in"], "", "All Pending Purchase Orders", XLS_O_FILENAME)
454
 
476