| 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 |
|