Subversion Repositories SmartDukaan

Rev

Rev 37133 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 37133 Rev 37604
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));