| Line 3... |
Line 3... |
| 3 |
import java.io.ByteArrayInputStream;
|
3 |
import java.io.ByteArrayInputStream;
|
| 4 |
import java.io.ByteArrayOutputStream;
|
4 |
import java.io.ByteArrayOutputStream;
|
| 5 |
import java.io.InputStream;
|
5 |
import java.io.InputStream;
|
| 6 |
import java.time.LocalDateTime;
|
6 |
import java.time.LocalDateTime;
|
| 7 |
import java.time.temporal.ChronoUnit;
|
7 |
import java.time.temporal.ChronoUnit;
|
| - |
|
8 |
import java.util.ArrayList;
|
| 8 |
import java.util.Arrays;
|
9 |
import java.util.Arrays;
|
| 9 |
import java.util.HashMap;
|
10 |
import java.util.HashMap;
|
| 10 |
import java.util.HashSet;
|
11 |
import java.util.HashSet;
|
| 11 |
import java.util.List;
|
12 |
import java.util.List;
|
| 12 |
import java.util.Map;
|
13 |
import java.util.Map;
|
| Line 105... |
Line 106... |
| 105 |
@Autowired
|
106 |
@Autowired
|
| 106 |
private FofoOrderItemRepository fofoOrderItemRepository;
|
107 |
private FofoOrderItemRepository fofoOrderItemRepository;
|
| 107 |
|
108 |
|
| 108 |
@Autowired
|
109 |
@Autowired
|
| 109 |
private PaymentOptionRepository paymentOptionRepository;
|
110 |
private PaymentOptionRepository paymentOptionRepository;
|
| 110 |
|
111 |
|
| 111 |
@Autowired
|
112 |
@Autowired
|
| 112 |
private StateRepository stateRepository;
|
113 |
private StateRepository stateRepository;
|
| 113 |
|
114 |
|
| 114 |
@Autowired
|
115 |
@Autowired
|
| 115 |
private ItemRepository itemRepository;
|
116 |
private ItemRepository itemRepository;
|
| 116 |
|
117 |
|
| 117 |
@Autowired
|
118 |
@Autowired
|
| 118 |
private MVCResponseSender mvcResponseSender;
|
119 |
private MVCResponseSender mvcResponseSender;
|
| 119 |
|
120 |
|
| 120 |
@Autowired
|
121 |
@Autowired
|
| 121 |
private ZestService zestService;
|
122 |
private ZestService zestService;
|
| 122 |
|
123 |
|
| 123 |
@Autowired
|
124 |
@Autowired
|
| 124 |
private FofoOrderRepository fofoOrderRepository;
|
125 |
private FofoOrderRepository fofoOrderRepository;
|
| Line 174... |
Line 175... |
| 174 |
loginDetails.getFofoId());
|
175 |
loginDetails.getFofoId());
|
| 175 |
List<Integer> paymentOptionIds = fofoPartnerPaymentOptionRepository
|
176 |
List<Integer> paymentOptionIds = fofoPartnerPaymentOptionRepository
|
| 176 |
.selectPaymentOptionIdsByFofoId(loginDetails.getFofoId());
|
177 |
.selectPaymentOptionIdsByFofoId(loginDetails.getFofoId());
|
| 177 |
List<PaymentOption> paymentOptions = paymentOptionRepository.selectByIds(new HashSet<>(paymentOptionIds));
|
178 |
List<PaymentOption> paymentOptions = paymentOptionRepository.selectByIds(new HashSet<>(paymentOptionIds));
|
| 178 |
LOGGER.info("mopPriceMap {}", mopPriceMap);
|
179 |
LOGGER.info("mopPriceMap {}", mopPriceMap);
|
| - |
|
180 |
model.addAttribute("stateNames",
|
| 179 |
model.addAttribute("stateNames", stateRepository.selectAll().stream().map(x->x.getName()).collect(Collectors.toList()));
|
181 |
stateRepository.selectAll().stream().map(x -> x.getName()).collect(Collectors.toList()));
|
| 180 |
model.addAttribute("retailerStateName", address.getState());
|
182 |
model.addAttribute("retailerStateName", address.getState());
|
| 181 |
model.addAttribute("cartItems", cartItems);
|
183 |
model.addAttribute("cartItems", cartItems);
|
| 182 |
model.addAttribute("mopPriceMap", mopPriceMap);
|
184 |
model.addAttribute("mopPriceMap", mopPriceMap);
|
| 183 |
model.addAttribute("paymentOptions", paymentOptions);
|
185 |
model.addAttribute("paymentOptions", paymentOptions);
|
| 184 |
model.addAttribute("accessoriesDeals", accessoriesDeals);
|
186 |
model.addAttribute("accessoriesDeals", accessoriesDeals);
|
| 185 |
return "order-index";
|
187 |
return "order-index";
|
| 186 |
}
|
188 |
}
|
| 187 |
|
189 |
|
| 188 |
@RequestMapping(value = "/checkplans", method = RequestMethod.GET)
|
190 |
@RequestMapping(value = "/checkplans", method = RequestMethod.GET)
|
| 189 |
public String getInsurancePrices(HttpServletRequest request,
|
191 |
public String getInsurancePrices(HttpServletRequest request, @RequestParam float price, Model model)
|
| 190 |
@RequestParam float price, Model model) throws ProfitMandiBusinessException {
|
192 |
throws ProfitMandiBusinessException {
|
| 191 |
LOGGER.info("Request received at url : {}", request.getRequestURI());
|
193 |
LOGGER.info("Request received at url : {}", request.getRequestURI());
|
| 192 |
|
194 |
|
| 193 |
try {
|
195 |
try {
|
| 194 |
String response = mvcResponseSender.createResponseString(this.getPlans(price));
|
196 |
String response = mvcResponseSender.createResponseString(this.getPlans(price));
|
| 195 |
model.addAttribute("response", response);
|
197 |
model.addAttribute("response", response);
|
| 196 |
} catch (Exception e) {
|
198 |
} catch (Exception e) {
|
| 197 |
// TODO Auto-generated catch block
|
199 |
// TODO Auto-generated catch block
|
| 198 |
e.printStackTrace();
|
200 |
e.printStackTrace();
|
| 199 |
throw new ProfitMandiBusinessException("Plans", "Plans API", "Error formatting insurance plans");
|
201 |
throw new ProfitMandiBusinessException("Plans", "Plans API", "Error formatting insurance plans");
|
| 200 |
}
|
202 |
}
|
| 201 |
|
203 |
|
| 202 |
return "response";
|
204 |
return "response";
|
| 203 |
}
|
205 |
}
|
| 204 |
|
206 |
|
| 205 |
@RequestMapping(value = "/get-order", method = RequestMethod.GET)
|
207 |
@RequestMapping(value = "/get-order", method = RequestMethod.GET)
|
| 206 |
public String getOrder(HttpServletRequest request, @RequestParam(name = ProfitMandiConstants.ORDER_ID) int orderId,
|
208 |
public String getOrder(HttpServletRequest request, @RequestParam(name = ProfitMandiConstants.ORDER_ID) int orderId,
|
| Line 373... |
Line 375... |
| 373 |
List<FofoOrderItem> fofoOrderItems = fofoOrderItemRepository.selectByOrderId(fofoOrder.getId());
|
375 |
List<FofoOrderItem> fofoOrderItems = fofoOrderItemRepository.selectByOrderId(fofoOrder.getId());
|
| 374 |
Customer customer = customerRepository.selectById(fofoOrder.getCustomerId());
|
376 |
Customer customer = customerRepository.selectById(fofoOrder.getCustomerId());
|
| 375 |
CustomerAddress customerAddress = customerAddressRepository.selectById(fofoOrder.getCustomerAddressId());
|
377 |
CustomerAddress customerAddress = customerAddressRepository.selectById(fofoOrder.getCustomerAddressId());
|
| 376 |
List<Integer> fofoPartnerPaymentOptions = fofoPartnerPaymentOptionRepository
|
378 |
List<Integer> fofoPartnerPaymentOptions = fofoPartnerPaymentOptionRepository
|
| 377 |
.selectPaymentOptionIdsByFofoId(fofoOrder.getFofoId());
|
379 |
.selectPaymentOptionIdsByFofoId(fofoOrder.getFofoId());
|
| 378 |
|
380 |
|
| 379 |
Map<Integer, Item> itemsMap = fofoOrderItems.stream().collect(Collectors.toMap(x -> x.getItemId(), x -> {
|
381 |
Map<Integer, Item> itemsMap = fofoOrderItems.stream().collect(Collectors.toMap(x -> x.getItemId(), x -> {
|
| 380 |
try {
|
382 |
try {
|
| 381 |
return itemRepository.selectById(x.getItemId());
|
383 |
return itemRepository.selectById(x.getItemId());
|
| 382 |
} catch (ProfitMandiBusinessException e) {
|
384 |
} catch (ProfitMandiBusinessException e) {
|
| 383 |
// TODO Auto-generated catch block
|
385 |
// TODO Auto-generated catch block
|
| Line 395... |
Line 397... |
| 395 |
LOGGER.info("paymentOptionIdPaymentOptionTransactionMap" + paymentOptionIdPaymentOptionTransactionMap.keySet());
|
397 |
LOGGER.info("paymentOptionIdPaymentOptionTransactionMap" + paymentOptionIdPaymentOptionTransactionMap.keySet());
|
| 396 |
List<InsurancePolicy> insurancePolicies = insurancePolicyRepository
|
398 |
List<InsurancePolicy> insurancePolicies = insurancePolicyRepository
|
| 397 |
.selectByRetailerIdInvoiceNumber(fofoOrder.getFofoId(), fofoOrder.getInvoiceNumber());
|
399 |
.selectByRetailerIdInvoiceNumber(fofoOrder.getFofoId(), fofoOrder.getInvoiceNumber());
|
| 398 |
this.addInsuranceProvider(insurancePolicies);
|
400 |
this.addInsuranceProvider(insurancePolicies);
|
| 399 |
model.addAttribute("fofoOrder", fofoOrder);
|
401 |
model.addAttribute("fofoOrder", fofoOrder);
|
| 400 |
for(FofoOrderItem fofoOrderItem : fofoOrderItems) {
|
402 |
for (FofoOrderItem fofoOrderItem : fofoOrderItems) {
|
| 401 |
fofoOrderItem.setDoa(true);
|
403 |
fofoOrderItem.setDoa(true);
|
| 402 |
}
|
404 |
}
|
| 403 |
|
405 |
|
| 404 |
Map<Integer, Set<FofoLineItem>> fofoOrderItemIdLineItemMap = fofoOrderItems.stream()
|
406 |
Map<Integer, Set<FofoLineItem>> fofoOrderItemIdLineItemMap = fofoOrderItems.stream()
|
| 405 |
.collect(Collectors.toMap(FofoOrderItem::getId, FofoOrderItem::getFofoLineItems));
|
407 |
.collect(Collectors.toMap(FofoOrderItem::getId, FofoOrderItem::getFofoLineItems));
|
| 406 |
|
408 |
|
| 407 |
Map<Integer, List<CustomerReturnItem>> foiIdCustomerReturnInventoryItemsMap = fofoOrderItems.stream()
|
409 |
Map<Integer, List<CustomerReturnItem>> foiIdCustomerReturnInventoryItemsMap = fofoOrderItems.stream()
|
| 408 |
.collect(Collectors.toMap(foi -> foi.getId(),
|
410 |
.collect(Collectors.toMap(foi -> foi.getId(),
|
| Line 434... |
Line 436... |
| 434 |
model.addAttribute("paymentOptionIdPaymentOptionMap", paymentOptionIdPaymentOptionMap);
|
436 |
model.addAttribute("paymentOptionIdPaymentOptionMap", paymentOptionIdPaymentOptionMap);
|
| 435 |
model.addAttribute("paymentOptionIdPaymentOptionTransactionMap", paymentOptionIdPaymentOptionTransactionMap);
|
437 |
model.addAttribute("paymentOptionIdPaymentOptionTransactionMap", paymentOptionIdPaymentOptionTransactionMap);
|
| 436 |
model.addAttribute("insurancePolicies", insurancePolicies);
|
438 |
model.addAttribute("insurancePolicies", insurancePolicies);
|
| 437 |
model.addAttribute("fofoPartnerPaymentOptions", fofoPartnerPaymentOptions);
|
439 |
model.addAttribute("fofoPartnerPaymentOptions", fofoPartnerPaymentOptions);
|
| 438 |
model.addAttribute("totalNumberOfPaymentOptionId", fofoPartnerPaymentOptions.size());
|
440 |
model.addAttribute("totalNumberOfPaymentOptionId", fofoPartnerPaymentOptions.size());
|
| - |
|
441 |
model.addAttribute("stateNames",
|
| 439 |
model.addAttribute("stateNames", stateRepository.selectAll().stream().map(x->x.getName()).collect(Collectors.toList()));
|
442 |
stateRepository.selectAll().stream().map(x -> x.getName()).collect(Collectors.toList()));
|
| 440 |
return "search-order-details";
|
443 |
return "search-order-details";
|
| 441 |
}
|
444 |
}
|
| 442 |
|
445 |
|
| 443 |
private Map<Integer, PaymentOption> paymentOptionIdPaymentOptionMap(
|
446 |
private Map<Integer, PaymentOption> paymentOptionIdPaymentOptionMap(
|
| 444 |
List<PaymentOptionTransaction> paymentOptionTransactions) {
|
447 |
List<PaymentOptionTransaction> paymentOptionTransactions) {
|
| Line 473... |
Line 476... |
| 473 |
paymentOptionTransaction);
|
476 |
paymentOptionTransaction);
|
| 474 |
}
|
477 |
}
|
| 475 |
return paymentOptionIdPaymentOptionTransactionMap;
|
478 |
return paymentOptionIdPaymentOptionTransactionMap;
|
| 476 |
}
|
479 |
}
|
| 477 |
|
480 |
|
| 478 |
|
- |
|
| 479 |
|
- |
|
| 480 |
@RequestMapping(value = "/create-order", method = RequestMethod.POST)
|
481 |
@RequestMapping(value = "/create-order", method = RequestMethod.POST)
|
| 481 |
public String createOrder(HttpServletRequest request, @RequestBody CreateOrderRequest createOrderRequest,
|
482 |
public String createOrder(HttpServletRequest request, @RequestBody CreateOrderRequest createOrderRequest,
|
| 482 |
Model model) throws ProfitMandiBusinessException {
|
483 |
Model model) throws ProfitMandiBusinessException {
|
| 483 |
LOGGER.info("request at uri {} body {}", request.getRequestURI(), createOrderRequest);
|
484 |
LOGGER.info("request at uri {} body {}", request.getRequestURI(), createOrderRequest);
|
| 484 |
LoginDetails fofoDetails = cookiesProcessor.getCookiesObject(request);
|
485 |
LoginDetails fofoDetails = cookiesProcessor.getCookiesObject(request);
|
| Line 492... |
Line 493... |
| 492 |
public ResponseEntity<?> badReturn(HttpServletRequest request, @RequestBody FoiBadReturnRequest foiBadReturnRequest,
|
493 |
public ResponseEntity<?> badReturn(HttpServletRequest request, @RequestBody FoiBadReturnRequest foiBadReturnRequest,
|
| 493 |
Model model) throws ProfitMandiBusinessException {
|
494 |
Model model) throws ProfitMandiBusinessException {
|
| 494 |
LOGGER.info("request at uri {} body {}", request.getRequestURI(), foiBadReturnRequest);
|
495 |
LOGGER.info("request at uri {} body {}", request.getRequestURI(), foiBadReturnRequest);
|
| 495 |
LoginDetails fofoDetails = cookiesProcessor.getCookiesObject(request);
|
496 |
LoginDetails fofoDetails = cookiesProcessor.getCookiesObject(request);
|
| 496 |
CustomerCreditNote custmoerCreditNote;
|
497 |
CustomerCreditNote custmoerCreditNote;
|
| 497 |
if(roleManager.isAdmin(fofoDetails.getRoleIds())) {
|
498 |
if (roleManager.isAdmin(fofoDetails.getRoleIds())) {
|
| 498 |
FofoOrderItem foi = fofoOrderItemRepository.selectById(foiBadReturnRequest.getFofoOrderItemId());
|
499 |
FofoOrderItem foi = fofoOrderItemRepository.selectById(foiBadReturnRequest.getFofoOrderItemId());
|
| 499 |
FofoOrder fo = fofoOrderRepository.selectByOrderId(foi.getOrderId());
|
500 |
FofoOrder fo = fofoOrderRepository.selectByOrderId(foi.getOrderId());
|
| 500 |
custmoerCreditNote = orderService.badReturn(fo.getFofoId(), foiBadReturnRequest);
|
501 |
custmoerCreditNote = orderService.badReturn(fo.getFofoId(), foiBadReturnRequest);
|
| 501 |
} else {
|
502 |
} else {
|
| 502 |
custmoerCreditNote = orderService.badReturn(fofoDetails.getFofoId(), foiBadReturnRequest);
|
503 |
custmoerCreditNote = orderService.badReturn(fofoDetails.getFofoId(), foiBadReturnRequest);
|
| Line 515... |
Line 516... |
| 515 |
pdfModel = orderService.getInvoicePdfModel(orderId);
|
516 |
pdfModel = orderService.getInvoicePdfModel(orderId);
|
| 516 |
} else {
|
517 |
} else {
|
| 517 |
pdfModel = orderService.getInvoicePdfModel(fofoDetails.getFofoId(), orderId);
|
518 |
pdfModel = orderService.getInvoicePdfModel(fofoDetails.getFofoId(), orderId);
|
| 518 |
}
|
519 |
}
|
| 519 |
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
|
520 |
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
|
| 520 |
PdfUtils.generateAndWrite(pdfModel, byteArrayOutputStream);
|
521 |
PdfUtils.generateAndWrite(Arrays.asList(pdfModel), byteArrayOutputStream);
|
| 521 |
LOGGER.info("Pdf Stream length {}", byteArrayOutputStream.toByteArray().length);
|
522 |
LOGGER.info("Pdf Stream length {}", byteArrayOutputStream.toByteArray().length);
|
| 522 |
final HttpHeaders headers = new HttpHeaders();
|
523 |
final HttpHeaders headers = new HttpHeaders();
|
| 523 |
headers.setContentType(MediaType.APPLICATION_PDF);
|
524 |
headers.setContentType(MediaType.APPLICATION_PDF);
|
| 524 |
headers.set("Content-disposition", "inline; filename=invoice-" + pdfModel.getInvoiceNumber() + ".pdf");
|
525 |
headers.set("Content-disposition", "inline; filename=invoice-" + pdfModel.getInvoiceNumber() + ".pdf");
|
| 525 |
headers.setContentLength(byteArrayOutputStream.toByteArray().length);
|
526 |
headers.setContentLength(byteArrayOutputStream.toByteArray().length);
|
| 526 |
final InputStream inputStream = new ByteArrayInputStream(byteArrayOutputStream.toByteArray());
|
527 |
final InputStream inputStream = new ByteArrayInputStream(byteArrayOutputStream.toByteArray());
|
| 527 |
final InputStreamResource inputStreamResource = new InputStreamResource(inputStream);
|
528 |
final InputStreamResource inputStreamResource = new InputStreamResource(inputStream);
|
| 528 |
return new ResponseEntity<InputStreamResource>(inputStreamResource, headers, HttpStatus.OK);
|
529 |
return new ResponseEntity<InputStreamResource>(inputStreamResource, headers, HttpStatus.OK);
|
| 529 |
}
|
530 |
}
|
| 530 |
|
531 |
|
| - |
|
532 |
@RequestMapping(value = "/generateInvoices")
|
| - |
|
533 |
public ResponseEntity<?> generateInvoice(HttpServletRequest request, HttpServletResponse response,
|
| - |
|
534 |
@RequestParam LocalDateTime startDate, @RequestParam LocalDateTime endDate, @RequestParam int partnerId)
|
| - |
|
535 |
throws ProfitMandiBusinessException {
|
| - |
|
536 |
LoginDetails fofoDetails = cookiesProcessor.getCookiesObject(request);
|
| - |
|
537 |
List<PdfModel> pdfModels = new ArrayList<>();
|
| - |
|
538 |
if (roleManager.isAdmin(fofoDetails.getRoleIds())) {
|
| - |
|
539 |
List<Integer> orderIds = fofoOrderRepository.selectByFofoId(partnerId, startDate, endDate, 0, 0).stream()
|
| - |
|
540 |
.map(x -> x.getId()).collect(Collectors.toList());
|
| - |
|
541 |
for (int orderId : orderIds) {
|
| - |
|
542 |
pdfModels.add(orderService.getInvoicePdfModel(orderId));
|
| - |
|
543 |
}
|
| - |
|
544 |
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
|
| - |
|
545 |
PdfUtils.generateAndWrite(pdfModels, byteArrayOutputStream);
|
| - |
|
546 |
LOGGER.info("Pdf Stream length {}", byteArrayOutputStream.toByteArray().length);
|
| - |
|
547 |
final HttpHeaders headers = new HttpHeaders();
|
| - |
|
548 |
headers.setContentType(MediaType.APPLICATION_PDF);
|
| - |
|
549 |
headers.set("Content-disposition", "inline; filename=invoice-" + partnerId + ".pdf");
|
| - |
|
550 |
headers.setContentLength(byteArrayOutputStream.toByteArray().length);
|
| - |
|
551 |
final InputStream inputStream = new ByteArrayInputStream(byteArrayOutputStream.toByteArray());
|
| - |
|
552 |
final InputStreamResource inputStreamResource = new InputStreamResource(inputStream);
|
| - |
|
553 |
return new ResponseEntity<InputStreamResource>(inputStreamResource, headers, HttpStatus.OK);
|
| - |
|
554 |
} else {
|
| - |
|
555 |
throw new ProfitMandiBusinessException("Auth", fofoDetails.getEmailId(), "Unauthorised access");
|
| - |
|
556 |
}
|
| - |
|
557 |
}
|
| - |
|
558 |
|
| 531 |
@RequestMapping(value = "/saleHistory")
|
559 |
@RequestMapping(value = "/saleHistory")
|
| 532 |
public String saleHistory(HttpServletRequest request,
|
560 |
public String saleHistory(HttpServletRequest request,
|
| 533 |
@RequestParam(name = "searchValue", defaultValue = "") String searchValue,
|
561 |
@RequestParam(name = "searchValue", defaultValue = "") String searchValue,
|
| 534 |
@RequestParam(name = "searchType", defaultValue = "") SearchType searchType,
|
562 |
@RequestParam(name = "searchType", defaultValue = "") SearchType searchType,
|
| 535 |
@RequestParam(required = false) LocalDateTime startTime,
|
563 |
@RequestParam(required = false) LocalDateTime startTime,
|
| Line 641... |
Line 669... |
| 641 |
throw new ProfitMandiBusinessException("Amount", amount, "Sum of amount is not equal to total amount");
|
669 |
throw new ProfitMandiBusinessException("Amount", amount, "Sum of amount is not equal to total amount");
|
| 642 |
}
|
670 |
}
|
| 643 |
|
671 |
|
| 644 |
return "response";
|
672 |
return "response";
|
| 645 |
}
|
673 |
}
|
| 646 |
|
- |
|
| 647 |
|
- |
|
| 648 |
|
674 |
|
| 649 |
private Map<String, List<MobileInsurancePlan>> getPlans(float sellingPrice) throws ProfitMandiBusinessException {
|
675 |
private Map<String, List<MobileInsurancePlan>> getPlans(float sellingPrice) throws ProfitMandiBusinessException {
|
| 650 |
Map<String, List<MobileInsurancePlan>> productDurationPlans = zestService.getAllPlansByProductAndDuration();
|
676 |
Map<String, List<MobileInsurancePlan>> productDurationPlans = zestService.getAllPlansByProductAndDuration();
|
| 651 |
Map<String, List<MobileInsurancePlan>> returnPlans = new HashMap<>();
|
677 |
Map<String, List<MobileInsurancePlan>> returnPlans = new HashMap<>();
|
| 652 |
productDurationPlans.entrySet().stream().forEach(m -> {
|
678 |
productDurationPlans.entrySet().stream().forEach(m -> {
|