| Line 1... |
Line 1... |
| 1 |
package com.spice.profitmandi.web.controller;
|
1 |
package com.spice.profitmandi.web.controller;
|
| 2 |
|
2 |
|
| 3 |
import com.spice.profitmandi.common.exception.ProfitMandiBusinessException;
|
3 |
import com.spice.profitmandi.common.exception.ProfitMandiBusinessException;
|
| 4 |
import com.spice.profitmandi.common.model.ItemDescriptionModel;
|
4 |
import com.spice.profitmandi.common.model.ItemDescriptionModel;
|
| 5 |
import com.spice.profitmandi.common.model.ProfitMandiConstants;
|
5 |
import com.spice.profitmandi.common.model.ProfitMandiConstants;
|
| - |
|
6 |
import com.spice.profitmandi.common.util.FileUtil;
|
| - |
|
7 |
import com.spice.profitmandi.common.util.FormattingUtils;
|
| 6 |
import com.spice.profitmandi.dao.entity.auth.AuthUser;
|
8 |
import com.spice.profitmandi.dao.entity.auth.AuthUser;
|
| 7 |
import com.spice.profitmandi.dao.entity.catalog.Item;
|
9 |
import com.spice.profitmandi.dao.entity.catalog.Item;
|
| 8 |
import com.spice.profitmandi.dao.entity.inventory.Vendor;
|
10 |
import com.spice.profitmandi.dao.entity.inventory.Vendor;
|
| 9 |
import com.spice.profitmandi.dao.entity.inventory.VendorCatalogPricing;
|
11 |
import com.spice.profitmandi.dao.entity.inventory.VendorCatalogPricing;
|
| 10 |
import com.spice.profitmandi.dao.entity.inventory.VendorCatalogPricingLog;
|
12 |
import com.spice.profitmandi.dao.entity.inventory.VendorCatalogPricingLog;
|
| 11 |
import com.spice.profitmandi.dao.entity.warehouse.Supplier;
|
13 |
import com.spice.profitmandi.dao.entity.warehouse.Supplier;
|
| 12 |
import com.spice.profitmandi.dao.enumuration.inventory.VendorCatalogPricingStatus;
|
14 |
import com.spice.profitmandi.dao.enumuration.inventory.VendorCatalogPricingStatus;
|
| - |
|
15 |
import com.spice.profitmandi.dao.model.PriceDropReportModel;
|
| 13 |
import com.spice.profitmandi.dao.model.VendorCatalogPricingModel;
|
16 |
import com.spice.profitmandi.dao.model.VendorCatalogPricingModel;
|
| 14 |
import com.spice.profitmandi.dao.model.VendorPriceCircularModel;
|
17 |
import com.spice.profitmandi.dao.model.VendorPriceCircularModel;
|
| 15 |
import com.spice.profitmandi.dao.repository.auth.AuthRepository;
|
18 |
import com.spice.profitmandi.dao.repository.auth.AuthRepository;
|
| 16 |
import com.spice.profitmandi.dao.repository.catalog.ItemRepository;
|
19 |
import com.spice.profitmandi.dao.repository.catalog.ItemRepository;
|
| 17 |
import com.spice.profitmandi.dao.repository.inventory.VendorCatalogPricingLogRepository;
|
20 |
import com.spice.profitmandi.dao.repository.inventory.VendorCatalogPricingLogRepository;
|
| 18 |
import com.spice.profitmandi.dao.repository.inventory.VendorCatalogPricingRepository;
|
21 |
import com.spice.profitmandi.dao.repository.inventory.VendorCatalogPricingRepository;
|
| 19 |
import com.spice.profitmandi.dao.repository.inventory.VendorRepository;
|
22 |
import com.spice.profitmandi.dao.repository.inventory.VendorRepository;
|
| - |
|
23 |
import com.spice.profitmandi.dao.repository.transaction.OrderRepository;
|
| 20 |
import com.spice.profitmandi.dao.repository.warehouse.SupplierRepository;
|
24 |
import com.spice.profitmandi.dao.repository.warehouse.SupplierRepository;
|
| - |
|
25 |
import com.spice.profitmandi.service.authentication.RoleManager;
|
| 21 |
import com.spice.profitmandi.service.inventory.VendorCatalogPricingService;
|
26 |
import com.spice.profitmandi.service.inventory.VendorCatalogPricingService;
|
| - |
|
27 |
import com.spice.profitmandi.service.order.OrderService;
|
| 22 |
import com.spice.profitmandi.service.warehouse.WarehouseService;
|
28 |
import com.spice.profitmandi.service.warehouse.WarehouseService;
|
| 23 |
import com.spice.profitmandi.web.model.LoginDetails;
|
29 |
import com.spice.profitmandi.web.model.LoginDetails;
|
| 24 |
import com.spice.profitmandi.web.util.CookiesProcessor;
|
30 |
import com.spice.profitmandi.web.util.CookiesProcessor;
|
| 25 |
import com.spice.profitmandi.web.util.MVCResponseSender;
|
31 |
import com.spice.profitmandi.web.util.MVCResponseSender;
|
| 26 |
import org.apache.logging.log4j.LogManager;
|
32 |
import org.apache.logging.log4j.LogManager;
|
| 27 |
import org.apache.logging.log4j.Logger;
|
33 |
import org.apache.logging.log4j.Logger;
|
| 28 |
import org.springframework.beans.factory.annotation.Autowired;
|
34 |
import org.springframework.beans.factory.annotation.Autowired;
|
| - |
|
35 |
import org.springframework.http.ResponseEntity;
|
| 29 |
import org.springframework.stereotype.Controller;
|
36 |
import org.springframework.stereotype.Controller;
|
| 30 |
import org.springframework.transaction.annotation.Transactional;
|
37 |
import org.springframework.transaction.annotation.Transactional;
|
| 31 |
import org.springframework.ui.Model;
|
38 |
import org.springframework.ui.Model;
|
| 32 |
import org.springframework.web.bind.annotation.RequestBody;
|
39 |
import org.springframework.web.bind.annotation.RequestBody;
|
| 33 |
import org.springframework.web.bind.annotation.RequestMapping;
|
40 |
import org.springframework.web.bind.annotation.RequestMapping;
|
| Line 35... |
Line 42... |
| 35 |
import org.springframework.web.bind.annotation.RequestParam;
|
42 |
import org.springframework.web.bind.annotation.RequestParam;
|
| 36 |
|
43 |
|
| 37 |
import javax.servlet.http.HttpServletRequest;
|
44 |
import javax.servlet.http.HttpServletRequest;
|
| 38 |
import java.time.LocalDate;
|
45 |
import java.time.LocalDate;
|
| 39 |
import java.time.LocalDateTime;
|
46 |
import java.time.LocalDateTime;
|
| - |
|
47 |
import java.time.LocalTime;
|
| 40 |
import java.util.*;
|
48 |
import java.util.*;
|
| 41 |
import java.util.stream.Collectors;
|
49 |
import java.util.stream.Collectors;
|
| 42 |
|
50 |
|
| 43 |
@Controller
|
51 |
@Controller
|
| 44 |
@Transactional(rollbackFor = Throwable.class)
|
52 |
@Transactional(rollbackFor = Throwable.class)
|
| Line 50... |
Line 58... |
| 50 |
|
58 |
|
| 51 |
@Autowired
|
59 |
@Autowired
|
| 52 |
private CookiesProcessor cookiesProcessor;
|
60 |
private CookiesProcessor cookiesProcessor;
|
| 53 |
|
61 |
|
| 54 |
@Autowired
|
62 |
@Autowired
|
| - |
|
63 |
private RoleManager roleManager;
|
| - |
|
64 |
|
| - |
|
65 |
@Autowired
|
| 55 |
private AuthRepository authRepository;
|
66 |
private AuthRepository authRepository;
|
| 56 |
|
67 |
|
| 57 |
@Autowired
|
68 |
@Autowired
|
| - |
|
69 |
private OrderRepository orderRepository;
|
| - |
|
70 |
|
| - |
|
71 |
@Autowired
|
| - |
|
72 |
private OrderService orderService;
|
| - |
|
73 |
|
| - |
|
74 |
@Autowired
|
| 58 |
private VendorCatalogPricingService vendorCatalogPricingService;
|
75 |
private VendorCatalogPricingService vendorCatalogPricingService;
|
| 59 |
|
76 |
|
| 60 |
@Autowired
|
77 |
@Autowired
|
| 61 |
private VendorCatalogPricingLogRepository vendorCatalogPricingLogRepository;
|
78 |
private VendorCatalogPricingLogRepository vendorCatalogPricingLogRepository;
|
| 62 |
|
79 |
|
| Line 205... |
Line 222... |
| 205 |
|
222 |
|
| 206 |
}
|
223 |
}
|
| 207 |
|
224 |
|
| 208 |
|
225 |
|
| 209 |
@RequestMapping(value = "/getVendorPriceCircular", method = RequestMethod.GET)
|
226 |
@RequestMapping(value = "/getVendorPriceCircular", method = RequestMethod.GET)
|
| 210 |
public String getVendorPriceCircular(HttpServletRequest request, @RequestParam int vendorId, @RequestParam LocalDate effectedDate, Model model) throws Exception {
|
227 |
public String getVendorPriceCircular(HttpServletRequest request, @RequestParam(defaultValue = "0") int vendorId, @RequestParam LocalDate effectedDate, Model model) throws Exception {
|
| 211 |
|
228 |
|
| 212 |
List<VendorPriceCircularModel> vendorCatalogPricings = vendorCatalogPricingLogRepository.getVendorPricesOnDate(vendorId, effectedDate);
|
229 |
List<VendorPriceCircularModel> vendorCatalogPricings = vendorCatalogPricingLogRepository.getVendorPricesOnDate(vendorId, effectedDate);
|
| 213 |
|
- |
|
| - |
|
230 |
Map<Integer, Supplier> supplierMap = supplierRepository.selectAll().stream().collect(Collectors.toMap(x -> x.getId(), x -> x));
|
| 214 |
if (!vendorCatalogPricings.isEmpty()) {
|
231 |
if (!vendorCatalogPricings.isEmpty()) {
|
| 215 |
Set<Integer> catalogIds = vendorCatalogPricings.stream().map(x -> x.getCatalogId()).collect(Collectors.toSet());
|
232 |
Set<Integer> catalogIds = vendorCatalogPricings.stream().map(x -> x.getCatalogId()).collect(Collectors.toSet());
|
| 216 |
Map<Integer, List<Item>> itemMap = itemRepository.selectAllByCatalogIds(catalogIds).stream().collect(Collectors.groupingBy(x -> x.getCatalogItemId()));
|
233 |
Map<Integer, List<Item>> itemMap = itemRepository.selectAllByCatalogIds(catalogIds).stream().collect(Collectors.groupingBy(x -> x.getCatalogItemId()));
|
| 217 |
model.addAttribute("itemMap", itemMap);
|
234 |
model.addAttribute("itemMap", itemMap);
|
| 218 |
}
|
235 |
}
|
| 219 |
|
236 |
|
| 220 |
model.addAttribute("vendorCatalogPricings", vendorCatalogPricings);
|
237 |
model.addAttribute("vendorCatalogPricings", vendorCatalogPricings);
|
| - |
|
238 |
model.addAttribute("suppliers", supplierMap);
|
| 221 |
return "vendor-price-circular-view";
|
239 |
return "vendor-price-circular-view";
|
| 222 |
|
240 |
|
| 223 |
}
|
241 |
}
|
| - |
|
242 |
@RequestMapping(value = "/downloadPriceCircularReport", method = RequestMethod.GET)
|
| - |
|
243 |
public ResponseEntity<?> getSelectDownloadPriceCircularReport(HttpServletRequest request,
|
| - |
|
244 |
@RequestParam(defaultValue = "0") int fofoId,
|
| - |
|
245 |
@RequestParam(name = "startDate") LocalDate startDate) throws Exception {
|
| - |
|
246 |
|
| - |
|
247 |
List<VendorPriceCircularModel> vendorCatalogPricings = vendorCatalogPricingLogRepository.getVendorPricesOnDate(0, startDate);
|
| - |
|
248 |
Map<Integer, Supplier> supplierMap = supplierRepository.selectAll().stream().collect(Collectors.toMap(x -> x.getId(), x -> x));
|
| - |
|
249 |
Map<Integer, List<Item>> itemMap = new HashMap<>();
|
| - |
|
250 |
List<List<?>> rows = new ArrayList<>();
|
| - |
|
251 |
if (!vendorCatalogPricings.isEmpty()) {
|
| - |
|
252 |
Set<Integer> catalogIds = vendorCatalogPricings.stream().map(x -> x.getCatalogId()).collect(Collectors.toSet());
|
| - |
|
253 |
itemMap = itemRepository.selectAllByCatalogIds(catalogIds).stream().collect(Collectors.groupingBy(x -> x.getCatalogItemId()));
|
| - |
|
254 |
}
|
| - |
|
255 |
|
| - |
|
256 |
|
| - |
|
257 |
for(VendorPriceCircularModel vcp: vendorCatalogPricings) {
|
| - |
|
258 |
|
| - |
|
259 |
rows.add(Arrays.asList(vcp.getCatalogId(),supplierMap.get(vcp.getVendorId()).getName(),itemMap.get(vcp.getCatalogId()).get(0).getItemDescriptionNoColor(),vcp.getTransferPrice(),vcp.getDealerPrice(),vcp.getMop(),
|
| - |
|
260 |
FormattingUtils.formatDate(vcp.getEffectedOn())));
|
| - |
|
261 |
|
| - |
|
262 |
}
|
| - |
|
263 |
org.apache.commons.io.output.ByteArrayOutputStream baos = FileUtil
|
| - |
|
264 |
.getCSVByteStream(Arrays.asList("Catalog Id","Vendor Name", "Model name", "TP", "DP", "MOP",
|
| - |
|
265 |
"Effected On"), rows);
|
| - |
|
266 |
|
| - |
|
267 |
ResponseEntity<?> responseEntity = orderService.downloadReportInCsv(baos, rows, "price circular report");
|
| - |
|
268 |
|
| - |
|
269 |
return responseEntity;
|
| - |
|
270 |
|
| - |
|
271 |
}
|
| 224 |
|
272 |
|
| 225 |
@RequestMapping(value = "/getPricing", method = RequestMethod.GET)
|
273 |
@RequestMapping(value = "/getPricing", method = RequestMethod.GET)
|
| 226 |
public String getPricing(HttpServletRequest request, @RequestParam int vendorId, @RequestParam int itemId, @RequestParam LocalDate onDate, Model model) throws Exception {
|
274 |
public String getPricing(HttpServletRequest request, @RequestParam int vendorId, @RequestParam int itemId, @RequestParam LocalDate onDate, Model model) throws Exception {
|
| 227 |
Item item = itemRepository.selectById(itemId);
|
275 |
Item item = itemRepository.selectById(itemId);
|
| 228 |
VendorPriceCircularModel vendorPriceCircularModel = vendorCatalogPricingLogRepository.getVendorPriceOnDate(vendorId, item.getCatalogItemId(), onDate);
|
276 |
VendorPriceCircularModel vendorPriceCircularModel = vendorCatalogPricingLogRepository.getVendorPriceOnDate(vendorId, item.getCatalogItemId(), onDate);
|