| Line 10... |
Line 10... |
| 10 |
import com.spice.profitmandi.dao.entity.inventory.Vendor;
|
10 |
import com.spice.profitmandi.dao.entity.inventory.Vendor;
|
| 11 |
import com.spice.profitmandi.dao.entity.inventory.VendorCatalogPricing;
|
11 |
import com.spice.profitmandi.dao.entity.inventory.VendorCatalogPricing;
|
| 12 |
import com.spice.profitmandi.dao.entity.inventory.VendorCatalogPricingLog;
|
12 |
import com.spice.profitmandi.dao.entity.inventory.VendorCatalogPricingLog;
|
| 13 |
import com.spice.profitmandi.dao.entity.warehouse.Supplier;
|
13 |
import com.spice.profitmandi.dao.entity.warehouse.Supplier;
|
| 14 |
import com.spice.profitmandi.dao.enumuration.inventory.VendorCatalogPricingStatus;
|
14 |
import com.spice.profitmandi.dao.enumuration.inventory.VendorCatalogPricingStatus;
|
| - |
|
15 |
import com.spice.profitmandi.dao.model.InternalMovementAllocationModel;
|
| 15 |
import com.spice.profitmandi.dao.model.VendorCatalogPricingModel;
|
16 |
import com.spice.profitmandi.dao.model.VendorCatalogPricingModel;
|
| 16 |
import com.spice.profitmandi.dao.model.VendorPriceCircularModel;
|
17 |
import com.spice.profitmandi.dao.model.VendorPriceCircularModel;
|
| 17 |
import com.spice.profitmandi.dao.repository.auth.AuthRepository;
|
18 |
import com.spice.profitmandi.dao.repository.auth.AuthRepository;
|
| 18 |
import com.spice.profitmandi.dao.repository.catalog.CategorisedCatalogRepository;
|
19 |
import com.spice.profitmandi.dao.repository.catalog.CategorisedCatalogRepository;
|
| 19 |
import com.spice.profitmandi.dao.repository.catalog.ItemRepository;
|
20 |
import com.spice.profitmandi.dao.repository.catalog.ItemRepository;
|
| Line 23... |
Line 24... |
| 23 |
import com.spice.profitmandi.dao.repository.transaction.OrderRepository;
|
24 |
import com.spice.profitmandi.dao.repository.transaction.OrderRepository;
|
| 24 |
import com.spice.profitmandi.dao.repository.warehouse.SupplierRepository;
|
25 |
import com.spice.profitmandi.dao.repository.warehouse.SupplierRepository;
|
| 25 |
import com.spice.profitmandi.service.authentication.RoleManager;
|
26 |
import com.spice.profitmandi.service.authentication.RoleManager;
|
| 26 |
import com.spice.profitmandi.service.inventory.VendorCatalogPricingService;
|
27 |
import com.spice.profitmandi.service.inventory.VendorCatalogPricingService;
|
| 27 |
import com.spice.profitmandi.service.order.OrderService;
|
28 |
import com.spice.profitmandi.service.order.OrderService;
|
| - |
|
29 |
import com.spice.profitmandi.service.warehouse.InternalMovementPricingService;
|
| 28 |
import com.spice.profitmandi.service.warehouse.WarehouseService;
|
30 |
import com.spice.profitmandi.service.warehouse.WarehouseService;
|
| 29 |
import com.spice.profitmandi.web.model.LoginDetails;
|
31 |
import com.spice.profitmandi.web.model.LoginDetails;
|
| 30 |
import com.spice.profitmandi.web.util.CookiesProcessor;
|
32 |
import com.spice.profitmandi.web.util.CookiesProcessor;
|
| 31 |
import com.spice.profitmandi.web.util.MVCResponseSender;
|
33 |
import com.spice.profitmandi.web.util.MVCResponseSender;
|
| 32 |
import org.apache.logging.log4j.LogManager;
|
34 |
import org.apache.logging.log4j.LogManager;
|
| Line 103... |
Line 105... |
| 103 |
|
105 |
|
| 104 |
@Autowired
|
106 |
@Autowired
|
| 105 |
private WarehouseService warehouseService;
|
107 |
private WarehouseService warehouseService;
|
| 106 |
|
108 |
|
| 107 |
@Autowired
|
109 |
@Autowired
|
| - |
|
110 |
private InternalMovementPricingService internalMovementPricingService;
|
| - |
|
111 |
|
| - |
|
112 |
@Autowired
|
| 108 |
CategorisedCatalogRepository categorisedCatalogRepository;
|
113 |
CategorisedCatalogRepository categorisedCatalogRepository;
|
| 109 |
|
114 |
|
| 110 |
private static final Logger LOGGER = LogManager.getLogger(VendorController.class);
|
115 |
private static final Logger LOGGER = LogManager.getLogger(VendorController.class);
|
| 111 |
|
116 |
|
| 112 |
|
117 |
|
| Line 344... |
Line 349... |
| 344 |
model.addAttribute("response1", mvcResponseSender.createResponseString(false));
|
349 |
model.addAttribute("response1", mvcResponseSender.createResponseString(false));
|
| 345 |
return "response";
|
350 |
return "response";
|
| 346 |
}
|
351 |
}
|
| 347 |
}
|
352 |
}
|
| 348 |
}
|
353 |
}
|
| - |
|
354 |
Supplier vendor = supplierRepository.selectById(vendorId);
|
| - |
|
355 |
VendorPriceCircularModel vendorPriceCircularModel = vendor != null && vendor.isInternal()
|
| - |
|
356 |
? this.internalMovementPrice(vendor, item)
|
| 349 |
VendorPriceCircularModel vendorPriceCircularModel = vendorCatalogPricingLogRepository.getVendorPriceOnDate(vendorId, item.getCatalogItemId(), onDate);
|
357 |
: vendorCatalogPricingLogRepository.getVendorPriceOnDate(vendorId, item.getCatalogItemId(), onDate);
|
| 350 |
LOGGER.info("vendorCatalogPricing {}", vendorPriceCircularModel);
|
358 |
LOGGER.info("vendorCatalogPricing {}", vendorPriceCircularModel);
|
| 351 |
model.addAttribute("response1", mvcResponseSender.createResponseString(vendorPriceCircularModel));
|
359 |
model.addAttribute("response1", mvcResponseSender.createResponseString(vendorPriceCircularModel));
|
| 352 |
return "response";
|
360 |
return "response";
|
| 353 |
}
|
361 |
}
|
| 354 |
|
362 |
|
| 355 |
private void addVendorPricingIfMissing(int itemId, int vendorId) throws ProfitMandiBusinessException {
|
- |
|
| 356 |
Supplier supplier = supplierRepository.selectById(vendorId);
|
- |
|
| 357 |
Item item = itemRepository.selectById(itemId);
|
- |
|
| 358 |
int vendorWithPricing = 0;
|
- |
|
| 359 |
if (supplier.isInternal() && (item.getBrand().equals("Samsung") || item.getCategoryId() != 10006)) {
|
- |
|
| 360 |
VendorPriceCircularModel vendorPriceCircularModel = vendorCatalogPricingLogRepository.getVendorPriceOnDate(vendorId, item.getCatalogItemId(), LocalDate.now());
|
- |
|
| 361 |
LOGGER.info("VendorPriceCircularModel - {}", vendorPriceCircularModel);
|
- |
|
| 362 |
if (vendorPriceCircularModel == null) {
|
- |
|
| 363 |
if (item.getBrand().equals("Samsung")) {
|
- |
|
| 364 |
//BSB
|
363 |
/**
|
| 365 |
vendorWithPricing = 334;
|
- |
|
| 366 |
} else if (item.getCategoryId() != 10006) {
|
364 |
* Price an item moving out of one of our own warehouses: it keeps the price of the vendor it was
|
| 367 |
vendorWithPricing = vendorCatalogPricingLogRepository.selectByCatalogId(item.getCatalogItemId(), VendorCatalogPricingStatus.APPROVED).stream().map(x -> x.getVendorId())
|
- |
|
| 368 |
.findFirst().orElse(null);
|
365 |
* originally bought from, so the sending warehouse's own circular is not consulted.
|
| 369 |
}
|
366 |
*
|
| 370 |
VendorPriceCircularModel existingPriceCircular = vendorCatalogPricingLogRepository.getVendorPriceOnDate(vendorWithPricing, item.getCatalogItemId(), LocalDate.now());
|
367 |
* <p>Answers for a single unit, which is the price the oldest stock moves at. If a larger quantity is
|
| 371 |
LOGGER.info("Existing price circular - {}", existingPriceCircular);
|
368 |
* then entered and it would run past that vendor's stock into another's, creating the order says so and
|
| 372 |
if (existingPriceCircular == null) {
|
369 |
* names how many can move at this price - the quantity is not known yet at this point.
|
| 373 |
throw new ProfitMandiBusinessException("Pricing missing for vendor - " + vendorId, "Pricing missing for vendor - " + vendorId, "Pricing missing for vendor - " + vendorId);
|
- |
|
| 374 |
}
|
370 |
*/
|
| 375 |
VendorCatalogPricingModel vendorCatalogPricingModel = new VendorCatalogPricingModel();
|
371 |
private VendorPriceCircularModel internalMovementPrice(Supplier vendor, Item item)
|
| 376 |
vendorCatalogPricingModel.setAuthId(52);
|
372 |
throws ProfitMandiBusinessException {
|
| 377 |
vendorCatalogPricingModel.setVendorId(vendorId);
|
- |
|
| 378 |
vendorCatalogPricingModel.setCatalogId(existingPriceCircular.getCatalogId());
|
373 |
InternalMovementAllocationModel price = internalMovementPricingService.resolvePrice(vendor, item.getId(), 1);
|
| 379 |
vendorCatalogPricingModel.setDp(existingPriceCircular.getDealerPrice());
|
- |
|
| 380 |
vendorCatalogPricingModel.setEffectedOn(existingPriceCircular.getEffectedOn());
|
- |
|
| 381 |
vendorCatalogPricingModel.setMop(existingPriceCircular.getMop());
|
- |
|
| 382 |
vendorCatalogPricingModel.setTp(existingPriceCircular.getTransferPrice());
|
374 |
return new VendorPriceCircularModel(0, vendor.getId(), item.getCatalogItemId(), price.getTransferPrice(),
|
| 383 |
vendorCatalogPricingModel.setCatalogId(item.getCatalogItemId());
|
- |
|
| 384 |
|
- |
|
| 385 |
VendorCatalogPricingLog vendorCatalogPricingLog = vendorCatalogPricingService.createVendorCatalogPricingLog(vendorCatalogPricingModel);
|
- |
|
| 386 |
vendorCatalogPricingLog.setStatus(VendorCatalogPricingStatus.APPROVED);
|
- |
|
| 387 |
vendorCatalogPricingLog.setUpdatedTimestamp(LocalDateTime.now());
|
375 |
price.getDealerPrice(), price.getMop(), LocalDate.now(),
|
| 388 |
//Deenanath Auth Id
|
- |
|
| 389 |
vendorCatalogPricingLog.setApprovedBy(138);
|
376 |
VendorCatalogPricingStatus.APPROVED.name());
|
| 390 |
vendorCatalogPricingLog.setApprovedTimestamp(LocalDateTime.now());
|
- |
|
| 391 |
vendorCatalogPricingService.createVendorCatalogPricing(vendorCatalogPricingLog);
|
- |
|
| 392 |
|
- |
|
| 393 |
}
|
- |
|
| 394 |
}
|
- |
|
| 395 |
}
|
377 |
}
|
| 396 |
|
378 |
|
| 397 |
@RequestMapping(value = "/vendorItem", method = RequestMethod.GET)
|
379 |
@RequestMapping(value = "/vendorItem", method = RequestMethod.GET)
|
| 398 |
public String getItemPricing(Model model, @RequestParam int vendorId, @RequestParam String query) throws Exception {
|
380 |
public String getItemPricing(Model model, @RequestParam int vendorId, @RequestParam String query) throws Exception {
|
| 399 |
String query1 = query.toLowerCase();
|
381 |
String query1 = query.toLowerCase();
|
| 400 |
int itemId = 0;
|
- |
|
| 401 |
try {
|
- |
|
| 402 |
itemId = Integer.parseInt(query1);
|
- |
|
| 403 |
addVendorPricingIfMissing(itemId, vendorId);
|
- |
|
| 404 |
} catch (NumberFormatException e) {
|
- |
|
| 405 |
LOGGER.info("Ignore number format exception");
|
- |
|
| 406 |
// e.printStackTrace();
|
- |
|
| 407 |
}
|
- |
|
| 408 |
LOGGER.info("Vendor Id - {}", vendorId);
|
382 |
LOGGER.info("Vendor Id - {}", vendorId);
|
| 409 |
List<ItemDescriptionModel> partnersItemDescription = warehouseService.getAllPartnerItemStringDescription(vendorId).stream().filter(x -> x.getItemDescription().toLowerCase().contains(query1)).collect(Collectors.toList());
|
383 |
List<ItemDescriptionModel> partnersItemDescription = warehouseService.getAllPartnerItemStringDescription(vendorId).stream().filter(x -> x.getItemDescription().toLowerCase().contains(query1)).collect(Collectors.toList());
|
| 410 |
LOGGER.info("partnersItemDescription" + partnersItemDescription);
|
384 |
LOGGER.info("partnersItemDescription" + partnersItemDescription);
|
| 411 |
|
385 |
|
| 412 |
model.addAttribute("response1", mvcResponseSender.createResponseString(partnersItemDescription));
|
386 |
model.addAttribute("response1", mvcResponseSender.createResponseString(partnersItemDescription));
|