Subversion Repositories SmartDukaan

Rev

Rev 30064 | Rev 30148 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 30064 Rev 30122
Line 413... Line 413...
413
	@RequestMapping(value = "/schemes/update", method = RequestMethod.POST)
413
	@RequestMapping(value = "/schemes/update", method = RequestMethod.POST)
414
	public String updateShcemes(HttpServletRequest request, @RequestBody SchemeItems schemeItems, Model model)
414
	public String updateShcemes(HttpServletRequest request, @RequestBody SchemeItems schemeItems, Model model)
415
			throws Exception {
415
			throws Exception {
416
		for (int schemeId : schemeItems.getSchemeIds()) {
416
		for (int schemeId : schemeItems.getSchemeIds()) {
417
			if (schemeRepository.selectById(schemeId) != null)
417
			if (schemeRepository.selectById(schemeId) != null)
418
				for (int itemId : schemeItems.getItemIds()) {
418
				for (int catalogId : schemeItems.getCatalogIds()) {
419
					if (tagListingRepository.selectByItemIdsAndTagIds(new HashSet<>(Arrays.asList(itemId)),
419
					if (tagListingRepository.selectByItemIdsAndTagIds(new HashSet<>(Arrays.asList(catalogId)),
420
							new HashSet<>(Arrays.asList(4, 7))).size() > 0) {
420
							new HashSet<>(Arrays.asList(4, 7))).size() > 0) {
421
						SchemeItem si = new SchemeItem();
421
						SchemeItem si = new SchemeItem();
422
						si.setItemId(itemId);
422
						si.setCatalogId(catalogId);
423
						si.setSchemeId(schemeId);
423
						si.setSchemeId(schemeId);
424
						si.setCreateTimestamp(LocalDateTime.now());
424
						si.setCreateTimestamp(LocalDateTime.now());
425
						try {
425
						try {
426
							schemeItemRepository.persist(si);
426
							schemeItemRepository.persist(si);
427
						} catch (Exception e) {
427
						} catch (Exception e) {
428
							LOGGER.info("Scheme aleady exist");
428
							LOGGER.info("Scheme aleady exist");
429
						}
429
						}
430
						model.addAttribute("response", mvcResponseSender.createResponseString(true));
430
						model.addAttribute("response", mvcResponseSender.createResponseString(true));
431
					} else {
431
					} else {
432
						model.addAttribute("response", mvcResponseSender.createResponseString(false));
432
						model.addAttribute("response", mvcResponseSender.createResponseString(false));
433
						throw new ProfitMandiBusinessException("ItemId", itemId, "Invalid Item Id");
433
						throw new ProfitMandiBusinessException("Catalog Id ", catalogId, "Invalid Catalog Id");
434
					}
434
					}
435
				}
435
				}
436
		}
436
		}
437
		return "response";
437
		return "response";
438
	}
438
	}
439
 
439
 
440
	@RequestMapping(value = "/addItemToScheme", method = RequestMethod.POST)
440
	@RequestMapping(value = "/addItemToScheme", method = RequestMethod.POST)
441
	public String updateScheme(HttpServletRequest request, @RequestBody SchemeItems schemeItems, Model model)
441
	public String updateScheme(HttpServletRequest request, @RequestBody SchemeItems schemeItems, Model model)
442
			throws Exception {
442
			throws Exception {
443
		for (int schemeId : schemeItems.getSchemeIds()) {
443
		for (int schemeId : schemeItems.getSchemeIds()) {
444
			List<Integer> itemIds = schemeItemRepository.selectItemIdsBySchemeId(schemeId);
444
			List<Integer> catalogIds = schemeItemRepository.selectCatalogIdsBySchemeId(schemeId);
445
			if (schemeRepository.selectById(schemeId) != null)
445
			if (schemeRepository.selectById(schemeId) != null)
446
				for (int itemId : schemeItems.getItemIds()) {
446
				for (int catalogId : schemeItems.getCatalogIds()) {
447
					if (tagListingRepository.selectByItemIdsAndTagIds(new HashSet<>(Arrays.asList(itemId)),
-
 
448
							new HashSet<>(Arrays.asList(4, 7))).size() > 0 && (!(itemIds.contains(itemId)))) {
447
					if (!(catalogIds.contains(catalogId))) {
449
						SchemeItem si = new SchemeItem();
448
						SchemeItem si = new SchemeItem();
450
						si.setItemId(itemId);
449
						si.setCatalogId(catalogId);
451
						si.setSchemeId(schemeId);
450
						si.setSchemeId(schemeId);
452
						si.setCreateTimestamp(LocalDateTime.now());
451
						si.setCreateTimestamp(LocalDateTime.now());
453
						try {
452
						try {
454
							schemeItemRepository.persist(si);
453
							schemeItemRepository.persist(si);
455
						} catch (Exception e) {
454
						} catch (Exception e) {
456
							LOGGER.info("Scheme already exist");
455
							LOGGER.info("Scheme already exist");
457
						}
456
						}
458
						model.addAttribute("response", mvcResponseSender.createResponseString(true));
457
						model.addAttribute("response", mvcResponseSender.createResponseString(true));
459
					} else {
458
					} else {
460
						model.addAttribute("response", mvcResponseSender.createResponseString(false));
459
						throw new ProfitMandiBusinessException("Catalog exist for scheme", "SchemeId= " + schemeId + ", CatalogId= " + catalogId, "Catalog exist for scheme");
461
					}
460
					}
462
				}
461
				}
463
		}
462
		}
464
		return "response";
463
		return "response";
465
	}
464
	}
466
 
465
 
467
	@RequestMapping(value = "/schemes/delete", method = RequestMethod.DELETE)
466
	@RequestMapping(value = "/schemes/delete", method = RequestMethod.DELETE)
468
	public String deleteShcemes(HttpServletRequest request,
467
	public String deleteShcemes(HttpServletRequest request,
469
			@RequestParam(name = "schemeId", required = false, defaultValue = "0") int schemeId,
468
								@RequestParam(name = "schemeId", required = false, defaultValue = "0") int schemeId,
470
			@RequestParam(name = "itemId", required = false, defaultValue = "0") int itemId, Model model)
469
								@RequestParam(name = "catalogId", required = false, defaultValue = "0") int catalogId, Model model)
471
			throws Exception {
470
			throws Exception {
472
		LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
471
		LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
473
		if (!(schemeId == 0 && itemId == 0) || (!(schemeId == 0 || itemId == 0))) {
472
		if (schemeId > 0 && catalogId > 0) {
474
			schemeItemRepository.deletebyItemIdsandSchemeIds(itemId, schemeId);
473
			schemeItemRepository.deleteByCatalogIdsAndSchemeIds(catalogId, schemeId);
475
 
474
 
476
			model.addAttribute("response", mvcResponseSender.createResponseString(true));
475
			model.addAttribute("response", mvcResponseSender.createResponseString(true));
477
 
476
 
478
			model.addAttribute("roleType", roleManager.isAdmin(loginDetails.getRoleIds()));
477
			model.addAttribute("roleType", roleManager.isAdmin(loginDetails.getRoleIds()));
479
 
478
 
Line 501... Line 500...
501
	}
500
	}
502
 
501
 
503
	@RequestMapping(value = "/extendSchemeById", method = RequestMethod.POST)
502
	@RequestMapping(value = "/extendSchemeById", method = RequestMethod.POST)
504
	public String extendSchemeById(HttpServletRequest request,
503
	public String extendSchemeById(HttpServletRequest request,
505
 
504
 
506
			@RequestParam(name = ProfitMandiConstants.SCHEME_ID) int schemeId,
505
								   @RequestParam(name = ProfitMandiConstants.SCHEME_ID) int schemeId,
507
			@RequestBody LocalDateTime extendDatetime, Model model) throws Exception {
506
								   @RequestBody LocalDateTime extendDatetime, Model model) throws Exception {
508
		extendDatetime = LocalDateTime.of(extendDatetime.toLocalDate(), Utils.MAX_TIME);
507
		extendDatetime = LocalDateTime.of(extendDatetime.toLocalDate(), Utils.MAX_TIME);
509
		Scheme scheme = schemeRepository.selectById(schemeId);
508
		Scheme scheme = schemeRepository.selectById(schemeId);
510
		if ((!(scheme.getActiveTimestamp() == null)) && scheme.getExpireTimestamp() == null) {
509
		if ((!(scheme.getActiveTimestamp() == null)) && scheme.getExpireTimestamp() == null) {
511
			scheme.setEndDateTime(extendDatetime);
510
			scheme.setEndDateTime(extendDatetime);
512
			schemeRepository.persist(scheme);
511
			schemeRepository.persist(scheme);
Line 516... Line 515...
516
		model.addAttribute("response", mvcResponseSender.createResponseString(false));
515
		model.addAttribute("response", mvcResponseSender.createResponseString(false));
517
		return "response";
516
		return "response";
518
	}
517
	}
519
 
518
 
520
	@RequestMapping(value = "/createScheme", method = RequestMethod.POST)
519
	@RequestMapping(value = "/createScheme", method = RequestMethod.POST)
521
	public String createScheme(HttpServletRequest request, @RequestBody CreateSchemeRequest createSchemeRequest,
520
	public String createScheme(HttpServletRequest request, @RequestBody CreateSchemeRequest createSchemeRequest, Model model)
522
			@RequestParam(name = "offset", defaultValue = "0") int offset,
-
 
523
			@RequestParam(name = "limit", defaultValue = "10") int limit,
-
 
524
			@RequestParam(name = "searchItem", required = false, defaultValue = "") String searchItem,
-
 
525
			@RequestParam(name = "searchTerm", required = false, defaultValue = "") String searchTerm, Model model)
-
 
526
			throws ProfitMandiBusinessException {
521
			throws ProfitMandiBusinessException {
527
		LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
522
		LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
528
		LOGGER.info("CreateSchemeRequest {}", createSchemeRequest);
523
		LOGGER.info("CreateSchemeRequest {}", createSchemeRequest);
529
		schemeService.saveScheme(loginDetails.getFofoId(), createSchemeRequest);
524
		schemeService.saveScheme(loginDetails.getFofoId(), createSchemeRequest);
530
		LOGGER.info("Scheme saved successfully");
525
		return getDefaultSchemes(request, model);
531
		long size = schemeRepository.selectAllCount();
-
 
532
		List<Scheme> schemes = schemeRepository.selectAll(offset, limit);
-
 
-
 
526
	}
533
 
527
 
-
 
528
	private String getDefaultSchemes(HttpServletRequest request, Model model) throws ProfitMandiBusinessException {
-
 
529
		return getSchemes(request, 0, null, 30, 0, 0, PartnerType.ALL, "", model);
-
 
530
	}
-
 
531
 
534
		if (!schemes.isEmpty()) {
532
	private List<Scheme> setSchemeAmountModel(List<Scheme> schemes) {
535
			for (Scheme scheme : schemes) {
533
		for (Scheme scheme : schemes) {
536
				if (scheme.getAmountType().equals(AmountType.PERCENTAGE)) {
534
			if (scheme.getAmountType().equals(AmountType.PERCENTAGE)) {
537
					scheme.setAmountModel(scheme.getAmount() + "%");
535
				scheme.setAmountModel(scheme.getAmount() + "%");
538
				} else {
536
			} else {
539
					scheme.setAmountModel(scheme.getAmount() + "");
537
				scheme.setAmountModel(scheme.getAmount() + "");
540
				}
-
 
541
			}
538
			}
542
		}
539
		}
543
		model.addAttribute("schemes", schemes);
-
 
544
		model.addAttribute("start", offset + 1);
-
 
545
		model.addAttribute("size", size);
-
 
546
		model.addAttribute("searchItem", searchItem);
-
 
547
		model.addAttribute("searchTerm", searchTerm);
-
 
548
		model.addAttribute("roleType", roleManager.isAdmin(loginDetails.getRoleIds()));
-
 
549
		if (schemes.size() < limit) {
-
 
550
			model.addAttribute("end", offset + schemes.size());
-
 
551
		} else {
-
 
552
			model.addAttribute("end", offset + limit);
-
 
553
		}
-
 
554
		return "schemes";
540
		return schemes;
555
 
-
 
556
	}
541
	}
557
 
542
 
-
 
543
	//Show 20 recents
558
	@RequestMapping(value = "/getSchemes", method = RequestMethod.GET)
544
	@RequestMapping(value = "/getSchemes", method = RequestMethod.GET)
559
	public String getSchemes(HttpServletRequest request, @RequestParam(name = "offset", defaultValue = "0") int offset,
545
	public String getSchemes(HttpServletRequest request, @RequestParam(name = "offset", defaultValue = "0") int offset,
560
			@RequestParam(required = false) LocalDate date,
546
							 @RequestParam(required = false) LocalDate date,
561
			@RequestParam(name = "limit", defaultValue = "10") int limit,
547
							 @RequestParam(name = "limit", required = false, defaultValue = "30") int limit,
562
			@RequestParam(name = "searchItem", required = false, defaultValue = "0") int searchItem,
548
							 @RequestParam(name = "searchModel", required = false, defaultValue = "0") int searchModel,
563
			@RequestParam(name = "searchTerm", required = false, defaultValue = "") String searchTerm,
549
							 @RequestParam(name = "searchScheme", required = false, defaultValue = "0") int searchScheme,
564
			@RequestParam(name = "partnerType", required = false, defaultValue = "") PartnerType partnerType,
550
							 @RequestParam(name = "partnerType", required = false, defaultValue = "ALL") PartnerType partnerType,
565
			@RequestParam(name = "searchImei", required = false, defaultValue = "") String searchImei, Model model)
551
							 @RequestParam(name = "searchImei", required = false, defaultValue = "") String searchImei, Model model)
566
			throws ProfitMandiBusinessException {
552
			throws ProfitMandiBusinessException {
567
		LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
553
		LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
568
		boolean isAdmin = roleManager.isAdmin(loginDetails.getRoleIds());
554
		boolean isAdmin = roleManager.isAdmin(loginDetails.getRoleIds());
569
		if (date == null) {
555
		if (date != null) {
570
			date = LocalDate.now();
556
			date = date.isAfter(LocalDate.now()) ? LocalDate.now() : date;
571
		}
557
		}
572
		model.addAttribute("date", date);
-
 
573
 
558
 
574
		List<Scheme> schemes = null;
559
		List<Scheme> schemes = null;
575
		List<SchemeInOut> schemeInOut = null;
560
		List<SchemeInOut> schemeInOut = null;
576
 
561
 
577
		long size = 0;
-
 
578
		date = date.isAfter(LocalDate.now()) ? LocalDate.now() : date;
562
		boolean fullAccess = this.getAccess(loginDetails.getEmailId());
579
		final LocalDate date1 = date;
-
 
580
		if (partnerType == null) {
-
 
581
			// TODO - SCHEME
-
 
582
 
563
 
-
 
564
		model.addAttribute("fullAccess", fullAccess);
-
 
565
		model.addAttribute("searchImei", searchImei);
-
 
566
		model.addAttribute("isAdmin", isAdmin);
583
			partnerType = partnerTypeChangeService.getTypeOnMonth(loginDetails.getFofoId(), YearMonth.from(date));
567
		model.addAttribute("searchModel", searchModel);
-
 
568
		model.addAttribute("searchScheme", searchScheme);
-
 
569
		model.addAttribute("partnerType", partnerType);
-
 
570
		model.addAttribute("date", date);
584
 
571
 
585
			// partnerType =
572
		final LocalDate date1 = date;
586
			// partnerTypeChangeService.getTypeOnDate(loginDetails.getFofoId(), date);
-
 
587
		}
-
 
588
		if (!(searchTerm.equals(""))) {
573
		if (searchScheme > 0) {
589
			schemes = schemeRepository.selectBySearchTerm(searchTerm, offset, limit);
574
			schemes = Arrays.asList(schemeRepository.selectById(searchScheme));
590
			for (Scheme scheme : schemes) {
575
			this.setSchemeAmountModel(schemes);
591
				if (scheme.getAmountType().equals(AmountType.PERCENTAGE)) {
-
 
592
					scheme.setAmountModel(scheme.getAmount() + "%");
-
 
593
				} else {
-
 
594
					scheme.setAmountModel(scheme.getAmount() + "");
-
 
595
				}
-
 
596
			}
-
 
597
			if (schemes.size() > 0) {
576
			if (schemes.size() > 0) {
598
				size = schemeRepository.selectAllCount();
-
 
599
				LOGGER.info("schemes" + schemes);
-
 
600
				model.addAttribute("schemes", schemes);
577
				model.addAttribute("schemes", schemes);
601
				model.addAttribute("start", offset + 1);
-
 
602
				model.addAttribute("size", size);
578
				return "schemes";
603
				if (schemes.size() < limit) {
-
 
604
					model.addAttribute("end", offset + schemes.size());
-
 
605
				} else {
-
 
606
					model.addAttribute("end", offset + limit);
-
 
607
				}
-
 
608
			} else {
579
			} else {
609
				throw new ProfitMandiBusinessException("SchemeId", searchTerm, "SchemeId Not Found");
580
				throw new ProfitMandiBusinessException("SchemeId", searchScheme, "SchemeId Not Found");
610
			}
581
			}
611
		} else if (searchItem > 0) {
582
		} else if (searchModel > 0) {
612
			TagListing tagListing = null;
583
			TagListing tagListing = null;
-
 
584
			Item item = itemRepository.selectAllByCatalogItemId(searchModel).get(0);
613
			tagListing = tagListingRepository.selectByItemId(searchItem);
585
			tagListing = tagListingRepository.selectByItemId(item.getId());
614
			Item item = itemRepository.selectById(searchItem);
586
			model.addAttribute("modelName", item.getItemDescriptionNoColor());
615
			if (tagListing != null) {
587
			if (tagListing != null) {
616
				model.addAttribute("dp", tagListing.getSellingPrice());
588
				model.addAttribute("dp", tagListing.getSellingPrice());
617
				model.addAttribute("mop", tagListing.getMop());
589
				model.addAttribute("mop", tagListing.getMop());
618
			}
590
			}
619
			schemes = schemeService.selectSchemeByPartnerType(partnerType, date, searchItem, isAdmin, offset, limit)
591
			schemes = schemeService.selectSchemeByPartnerType(partnerType, date, searchModel, isAdmin, offset, limit)
620
					.stream().filter(x -> {
592
					.stream().filter(x -> {
621
						return (x.getId() != 411 && x.getId() != 612) || date1.isBefore(LocalDate.of(2021, 12, 1));
593
						return (x.getId() != 411 && x.getId() != 612) || date1.isBefore(LocalDate.of(2021, 12, 1));
622
					}).collect(Collectors.toList());
594
					}).collect(Collectors.toList());
623
			// Remove 411 and 612
595
			// Remove 411 and 612
624
			model.addAttribute("schemes", schemes);
596
			model.addAttribute("schemes", schemes);
625
			if (schemes.size() == 0) {
-
 
626
				if (isAdmin)
-
 
627
					return "schemes";
-
 
628
				else {
-
 
629
 
-
 
630
					return "schemes-partner";
-
 
631
				}
-
 
632
			}
-
 
633
			// For 7720(HR) remove investment
597
			// For 7720(HR) remove investment
634
			int nlc = this.getNlc(item, loginDetails.getFofoId(), schemes, tagListing, searchItem);
598
			int nlc = this.getNlc(item, loginDetails.getFofoId(), schemes, tagListing, searchModel);
635
			size = schemeService.selectSchemeCount(partnerType, date, searchItem, isAdmin);
-
 
636
			model.addAttribute("start", offset + 1);
-
 
637
			model.addAttribute("size", size);
-
 
638
			if (schemes.size() < limit) {
-
 
639
				model.addAttribute("end", offset + schemes.size());
-
 
640
			} else {
-
 
641
				model.addAttribute("end", offset + limit);
-
 
642
			}
-
 
643
			model.addAttribute("nlc", Math.round(nlc));
599
			model.addAttribute("nlc", Math.round(nlc));
-
 
600
			return "schemes";
-
 
601
 
644
		} else if (!(searchImei.equals(""))) {
602
		} else if (org.apache.commons.lang3.StringUtils.isNotEmpty(searchImei)) {
645
 
603
 
646
			LOGGER.info("searchImei" + searchImei);
604
			LOGGER.info("searchImei" + searchImei);
647
 
605
 
648
			InventoryItem inventoryItem = inventoryItemRepository.selectBySerialNumberFofoId(searchImei,
606
			InventoryItem inventoryItem = inventoryItemRepository.selectBySerialNumber(searchImei);
649
					loginDetails.getFofoId());
-
 
650
			Item item = itemRepository.selectById(inventoryItem.getItemId());
607
			Item item = itemRepository.selectById(inventoryItem.getItemId());
651
			Map<Integer, Scheme> schemeMap = new HashMap<>();
608
			Map<Integer, Scheme> schemeMap = new HashMap<>();
652
			if (inventoryItem != null) {
609
			if (inventoryItem != null) {
653
 
610
 
654
				LOGGER.info("inventoryItem" + inventoryItem);
611
				LOGGER.info("inventoryItem" + inventoryItem);
Line 676... Line 633...
676
				}
633
				}
677
			}
634
			}
678
 
635
 
679
			model.addAttribute("schemeMap", schemeMap);
636
			model.addAttribute("schemeMap", schemeMap);
680
			model.addAttribute("item", item);
637
			model.addAttribute("item", item);
681
 
-
 
-
 
638
			model.addAttribute("schemeInOut", schemeInOut);
-
 
639
			return "schemes-partner";
682
		}
640
		}
683
		model.addAttribute("schemeInOut", schemeInOut);
-
 
684
 
641
 
685
		model.addAttribute("searchItem", searchItem);
-
 
686
		model.addAttribute("searchTerm", searchTerm);
-
 
687
		model.addAttribute("partnerType", partnerType);
-
 
688
		model.addAttribute("isAdmin", isAdmin);
-
 
689
		LOGGER.info("schemes" + schemes);
-
 
690
		model.addAttribute("schemes", schemes != null ? schemes.stream().filter(x -> {
-
 
691
			return (x.getId() != 411 && x.getId() != 612) || date1.isBefore(LocalDate.of(2021, 12, 1));
-
 
692
		}).collect(Collectors.toList()) : null);
-
 
693
		LOGGER.info("schemes" + schemes);
-
 
694
		// model.addAttribute("roleTypes", loginDetails.getRoleTypes());
-
 
695
		if (isAdmin) {
642
		if (isAdmin) {
696
 
-
 
697
			boolean fullAccess = this.getAccess(loginDetails.getEmailId());
643
			schemes = schemeRepository.selectAll(0, 30);
698
 
-
 
-
 
644
			this.setSchemeAmountModel(schemes);
699
			model.addAttribute("fullAccess", fullAccess);
645
			model.addAttribute("schemes", schemes);
700
 
-
 
701
			return "schemes";
646
			return "schemes";
702
		} else {
647
		} else {
703
			List<CreateOfferRequest> offers = null;
648
			List<CreateOfferRequest> offers = null;
704
			Map<Integer, Map<Integer, Long>> offerSlabPayoutMap = new HashMap<>();
649
			Map<Integer, Map<Integer, Long>> offerSlabPayoutMap = new HashMap<>();
705
			List<PriceDropIMEI> priceDropImeis = new ArrayList<>();
650
			List<PriceDropIMEI> priceDropImeis = new ArrayList<>();
706
			if (searchItem > 0) {
651
			if (searchModel > 0) {
707
				offers = offerService.getPublishedOffers(date, loginDetails.getFofoId(), searchItem);
652
				offers = offerService.getPublishedOffers(date, loginDetails.getFofoId(), searchModel);
708
				for (CreateOfferRequest createOfferRequest : offers) {
653
				for (CreateOfferRequest createOfferRequest : offers) {
709
					Map<Integer, Map<Integer, Long>> itemSlabPayoutMap = offerService
654
					Map<Integer, Map<Integer, Long>> itemSlabPayoutMap = offerService
710
							.getSlabPayoutMap(createOfferRequest);
655
							.getSlabPayoutMap(createOfferRequest);
711
					Map<Integer, Long> slabPayoutMap = itemSlabPayoutMap.get(searchItem);
656
					Map<Integer, Long> slabPayoutMap = itemSlabPayoutMap.get(searchModel);
712
					offerSlabPayoutMap.put(createOfferRequest.getId(), slabPayoutMap);
657
					offerSlabPayoutMap.put(createOfferRequest.getId(), slabPayoutMap);
713
				}
658
				}
714
			} else {
659
			} else {
715
				offers = new ArrayList<>();
660
				offers = new ArrayList<>();
716
			}
661
			}
717
			if (!(searchImei.equals(""))) {
662
			if (org.apache.commons.lang3.StringUtils.isNotEmpty(searchImei)) {
718
				InventoryItem inventoryItem = inventoryItemRepository.selectBySerialNumberFofoId(searchImei,
663
				InventoryItem inventoryItem = inventoryItemRepository.selectBySerialNumberFofoId(searchImei,
719
						loginDetails.getFofoId());
664
						loginDetails.getFofoId());
720
 
665
 
721
				priceDropImeis = priceDropIMEIRepository.selectByFofoIdImei(loginDetails.getFofoId(), searchImei);
666
				priceDropImeis = priceDropIMEIRepository.selectByFofoIdImei(loginDetails.getFofoId(), searchImei);
722
				for (PriceDropIMEI priceDropIMEI : priceDropImeis) {
667
				for (PriceDropIMEI priceDropIMEI : priceDropImeis) {
Line 728... Line 673...
728
			}
673
			}
729
			FofoStore fs = fofoStoreRepository.selectByRetailerId(loginDetails.getFofoId());
674
			FofoStore fs = fofoStoreRepository.selectByRetailerId(loginDetails.getFofoId());
730
 
675
 
731
			model.addAttribute("offers", offers);
676
			model.addAttribute("offers", offers);
732
			model.addAttribute("offerSlabPayoutMap", offerSlabPayoutMap);
677
			model.addAttribute("offerSlabPayoutMap", offerSlabPayoutMap);
-
 
678
			model.addAttribute("searchModel", searchModel);
-
 
679
			model.addAttribute("searchScheme", searchScheme);
-
 
680
			model.addAttribute("searchImei", searchImei);
733
			model.addAttribute("partnerCode", fs.getCode());
681
			model.addAttribute("partnerCode", fs.getCode());
734
			model.addAttribute("fofoId", fs.getId());
682
			model.addAttribute("fofoId", fs.getId());
735
			model.addAttribute("priceDropImeis", priceDropImeis);
683
			model.addAttribute("priceDropImeis", priceDropImeis);
736
			return "schemes-partner";
684
			return "schemes-partner";
737
		}
685
		}
Line 888... Line 836...
888
		return "last-month-credited-income";
836
		return "last-month-credited-income";
889
	}
837
	}
890
 
838
 
891
	@RequestMapping(value = "/getLastMonthImeiWiseIncome", method = RequestMethod.GET)
839
	@RequestMapping(value = "/getLastMonthImeiWiseIncome", method = RequestMethod.GET)
892
	public String getLastMonthImeiWiseIncome(HttpServletRequest request,
840
	public String getLastMonthImeiWiseIncome(HttpServletRequest request,
893
			@RequestParam(name = "catalogItemId", required = false, defaultValue = "") int catalogItemId,
841
											 @RequestParam(name = "catalogItemId", required = false, defaultValue = "") int catalogItemId,
894
			@RequestParam(name = "month", required = false, defaultValue = "") int month, Model model)
842
											 @RequestParam(name = "month", required = false, defaultValue = "") int month, Model model)
895
			throws Exception {
843
			throws Exception {
896
 
844
 
897
		LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
845
		LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
898
 
846
 
899
		LocalDateTime lastMonthStart = LocalDate.now().minusMonths(month).withDayOfMonth(1).atStartOfDay();
847
		LocalDateTime lastMonthStart = LocalDate.now().minusMonths(month).withDayOfMonth(1).atStartOfDay();
Line 1009... Line 957...
1009
		return "last-month-imei-wise-income";
957
		return "last-month-imei-wise-income";
1010
	}
958
	}
1011
 
959
 
1012
	@RequestMapping(value = "/brandWiseIncome", method = RequestMethod.GET)
960
	@RequestMapping(value = "/brandWiseIncome", method = RequestMethod.GET)
1013
	public String getBrandWiseIncome(HttpServletRequest request,
961
	public String getBrandWiseIncome(HttpServletRequest request,
1014
			@RequestParam(name = "brand", required = false, defaultValue = "") String brand,
962
									 @RequestParam(name = "brand", required = false, defaultValue = "") String brand,
1015
			@RequestParam(name = "status", required = false, defaultValue = "") String status,
963
									 @RequestParam(name = "status", required = false, defaultValue = "") String status,
1016
			@RequestParam(name = "month", required = false, defaultValue = "") int month, Model model)
964
									 @RequestParam(name = "month", required = false, defaultValue = "") int month, Model model)
1017
			throws ProfitMandiBusinessException {
965
			throws ProfitMandiBusinessException {
1018
		LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
966
		LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
1019
		LOGGER.info("loginDetails {}", loginDetails);
967
		LOGGER.info("loginDetails {}", loginDetails);
1020
		LOGGER.info("brand" + brand);
968
		LOGGER.info("brand" + brand);
1021
		LOGGER.info("month {}", month);
969
		LOGGER.info("month {}", month);
Line 1202... Line 1150...
1202
		LOGGER.info("lastMonthSaleMarginMap {}", lastMonthSaleMarginMap);
1150
		LOGGER.info("lastMonthSaleMarginMap {}", lastMonthSaleMarginMap);
1203
 
1151
 
1204
		return "last-month-credited-income";
1152
		return "last-month-credited-income";
1205
	}
1153
	}
1206
 
1154
 
1207
	@RequestMapping(value = "/getPaginatedSchemes", method = RequestMethod.GET)
-
 
1208
	public String getPaginatedSchemes(HttpServletRequest request, @RequestParam(required = false) LocalDate date,
-
 
1209
			@RequestParam(name = "offset", defaultValue = "0") int offset,
-
 
1210
			@RequestParam(name = "limit", defaultValue = "10") int limit,
-
 
1211
			@RequestParam(name = "partnerType", required = false, defaultValue = "ALL") PartnerType partnerType,
-
 
1212
			Model model) throws ProfitMandiBusinessException {
-
 
1213
 
-
 
1214
		LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
-
 
1215
		boolean isAdmin = roleManager.isAdmin(loginDetails.getRoleIds());
-
 
1216
		if (date == null) {
-
 
1217
			date = LocalDate.now();
-
 
1218
		}
-
 
1219
		LOGGER.info("requested offset=[{}], limit = [{}]", offset, limit);
-
 
1220
		List<Scheme> schemes = schemeRepository.selectAll();
-
 
1221
		int itemId = 0;
-
 
1222
		TagListing tagListing = null;
-
 
1223
 
-
 
1224
		for (Scheme scheme : schemes) {
-
 
1225
			if (scheme.getAmountType().equals(AmountType.PERCENTAGE)) {
-
 
1226
				if (itemId > 0) {
-
 
1227
					float taxRate = stateGstRateRepository.getIgstTaxRate(Arrays.asList(itemId)).get(itemId);
-
 
1228
					float taxableSellingPrice = tagListing.getSellingPrice() / (1 + taxRate / 100);
-
 
1229
					float amount = taxableSellingPrice * scheme.getAmount() / 100;
-
 
1230
					scheme.setAmountModel(FormattingUtils.formatDecimal(amount) + " (" + scheme.getAmount() + "%)");
-
 
1231
				} else {
-
 
1232
					scheme.setAmountModel(scheme.getAmount() + "%");
-
 
1233
				}
-
 
1234
			} else {
-
 
1235
				scheme.setAmountModel("" + scheme.getAmount());
-
 
1236
			}
-
 
1237
		}
-
 
1238
 
-
 
1239
		model.addAttribute("schemes", schemes);
-
 
1240
		model.addAttribute("partnerType", partnerType);
-
 
1241
		model.addAttribute("roleType", roleManager.isAdmin(loginDetails.getRoleIds()));
-
 
1242
		return "schemes-paginated";
-
 
1243
	}
-
 
1244
 
1155
 
1245
	@RequestMapping(value = "/schemes/downloadPage", method = RequestMethod.GET)
1156
	@RequestMapping(value = "/schemes/downloadPage", method = RequestMethod.GET)
1246
	public String downloadPage(HttpServletRequest request, Model model) {
1157
	public String downloadPage(HttpServletRequest request, Model model) {
1247
		return "schemes-download";
1158
		return "schemes-download";
1248
	}
1159
	}
1249
 
1160
 
1250
	@RequestMapping(value = "/schemes/download", method = RequestMethod.GET)
1161
	@RequestMapping(value = "/schemes/download", method = RequestMethod.GET)
1251
	public ResponseEntity<?> downloadInventoryItemAgingByInterval(HttpServletRequest request,
1162
	public ResponseEntity<?> downloadInventoryItemAgingByInterval(HttpServletRequest request,
1252
			@RequestParam(name = ProfitMandiConstants.START_DATE_TIME) String startDateTimeString,
1163
																  @RequestParam(name = ProfitMandiConstants.START_DATE_TIME) String startDateTimeString,
1253
			@RequestParam(name = ProfitMandiConstants.END_DATE_TIME) String endDateTimeString, Model model)
1164
																  @RequestParam(name = ProfitMandiConstants.END_DATE_TIME) String endDateTimeString, Model model)
1254
			throws ProfitMandiBusinessException {
1165
			throws ProfitMandiBusinessException {
1255
		LocalDateTime startDateTime = StringUtils.toDateTime(startDateTimeString,
1166
		LocalDateTime startDateTime = StringUtils.toDateTime(startDateTimeString,
1256
				DateTimePattern.DD_MM_yyyy_T_HH_MM_SS);
1167
				DateTimePattern.DD_MM_yyyy_T_HH_MM_SS);
1257
		LocalDateTime endDateTime = StringUtils.toDateTime(endDateTimeString, DateTimePattern.DD_MM_yyyy_T_HH_MM_SS);
1168
		LocalDateTime endDateTime = StringUtils.toDateTime(endDateTimeString, DateTimePattern.DD_MM_yyyy_T_HH_MM_SS);
1258
 
1169
 
Line 1270... Line 1181...
1270
		return new ResponseEntity<InputStreamResource>(inputStreamResource, headers, HttpStatus.OK);
1181
		return new ResponseEntity<InputStreamResource>(inputStreamResource, headers, HttpStatus.OK);
1271
	}
1182
	}
1272
 
1183
 
1273
	@RequestMapping(value = "/getSchemeById", method = RequestMethod.GET)
1184
	@RequestMapping(value = "/getSchemeById", method = RequestMethod.GET)
1274
	public String getSchemeById(HttpServletRequest request,
1185
	public String getSchemeById(HttpServletRequest request,
1275
			@RequestParam(name = ProfitMandiConstants.SCHEME_ID) int schemeId, Model model)
1186
								@RequestParam(name = ProfitMandiConstants.SCHEME_ID) int schemeId, Model model)
1276
			throws ProfitMandiBusinessException {
1187
			throws ProfitMandiBusinessException {
1277
		LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
1188
		LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
1278
 
1189
 
1279
		boolean fullAccess = this.getAccess(loginDetails.getEmailId());
1190
		boolean fullAccess = this.getAccess(loginDetails.getEmailId());
1280
		Scheme scheme = schemeService.getSchemeById(schemeId);
1191
		Scheme scheme = schemeService.getSchemeById(schemeId);
1281
		model.addAttribute("fullAccess", fullAccess);
1192
		model.addAttribute("fullAccess", fullAccess);
1282
		model.addAttribute("scheme", scheme);
1193
		model.addAttribute("scheme", scheme);
1283
		model.addAttribute("isAdmin", roleManager.isAdmin(loginDetails.getRoleIds()));
1194
		model.addAttribute("isAdmin", roleManager.isAdmin(loginDetails.getRoleIds()));
1284
		return "scheme-details";
1195
		return "scheme-details";
1285
 
-
 
1286
	}
1196
	}
1287
 
1197
 
1288
	@RequestMapping(value = "/activeSchemeById", method = RequestMethod.PUT)
1198
	@RequestMapping(value = "/activeSchemeById", method = RequestMethod.PUT)
1289
	public String activeSchemeById(HttpServletRequest request,
1199
	public String activeSchemeById(HttpServletRequest request,
1290
			@RequestParam(name = ProfitMandiConstants.SCHEME_ID) int schemeId,
1200
								   @RequestParam(name = ProfitMandiConstants.SCHEME_ID) int schemeId,
1291
			@RequestParam(name = "offset", defaultValue = "0") int offset,
1201
								   @RequestParam(name = "offset", defaultValue = "0") int offset,
1292
			@RequestParam(name = "limit", defaultValue = "10") int limit, Model model)
1202
								   @RequestParam(name = "limit", defaultValue = "10") int limit, Model model)
1293
			throws ProfitMandiBusinessException {
1203
			throws ProfitMandiBusinessException {
1294
		schemeService.activeSchemeById(schemeId);
1204
		schemeService.activeSchemeById(schemeId);
1295
		List<Scheme> schemes = schemeRepository.selectAll(offset, limit);
1205
		List<Scheme> schemes = schemeRepository.selectAll(offset, limit);
1296
		for (Scheme scheme : schemes) {
1206
		for (Scheme scheme : schemes) {
1297
			if (scheme.getAmountType().equals(AmountType.PERCENTAGE)) {
1207
			if (scheme.getAmountType().equals(AmountType.PERCENTAGE)) {
1298
				scheme.setAmountModel(scheme.getAmount() + "%");
1208
				scheme.setAmountModel(scheme.getAmount() + "%");
1299
			} else {
1209
			} else {
1300
				scheme.setAmountModel(scheme.getAmount() + "");
1210
				scheme.setAmountModel(scheme.getAmount() + "");
1301
			}
1211
			}
1302
		}
1212
		}
1303
		model.addAttribute("schemes", schemes);
-
 
1304
		return "schemes-paginated";
1213
		return "schemes";
1305
	}
1214
	}
1306
 
1215
 
1307
	@RequestMapping(value = "/expireSchemeById", method = RequestMethod.PUT)
1216
	@RequestMapping(value = "/expireSchemeById", method = RequestMethod.PUT)
1308
	public String expireSchemeById(HttpServletRequest request,
1217
	public String expireSchemeById(HttpServletRequest request,
1309
			@RequestParam(name = ProfitMandiConstants.SCHEME_ID) int schemeId,
1218
								   @RequestParam(name = ProfitMandiConstants.SCHEME_ID) int schemeId,
1310
			@RequestParam(name = ProfitMandiConstants.EXPIRE_TIMESTAMP) LocalDateTime expiryTimestamp,
1219
								   @RequestParam(name = ProfitMandiConstants.EXPIRE_TIMESTAMP) LocalDateTime expiryTimestamp,
1311
			@RequestParam(name = "offset", defaultValue = "0") int offset,
-
 
1312
			@RequestParam(name = "limit", defaultValue = "10") int limit, Model model)
1220
								   Model model)
1313
			throws ProfitMandiBusinessException {
1221
			throws ProfitMandiBusinessException {
1314
		expiryTimestamp = LocalDateTime.of(expiryTimestamp.toLocalDate(), Utils.MAX_TIME);
1222
		expiryTimestamp = LocalDateTime.of(expiryTimestamp.toLocalDate(), Utils.MAX_TIME);
1315
		schemeService.expireSchemeById(schemeId, expiryTimestamp);
1223
		schemeService.expireSchemeById(schemeId, expiryTimestamp);
1316
		List<Scheme> schemes = schemeRepository.selectAll(offset, limit);
-
 
1317
		model.addAttribute("schemes", schemes);
-
 
1318
		return "schemes-paginated";
1224
		return getDefaultSchemes(request, model);
1319
	}
1225
	}
1320
 
1226
 
1321
	@RequestMapping(value = "/getSchemesJson", method = RequestMethod.GET)
1227
	@RequestMapping(value = "/getSchemesJson", method = RequestMethod.GET)
1322
	public ResponseEntity<?> getSchemesJson(HttpServletRequest request,
1228
	public ResponseEntity<?> getSchemesJson(HttpServletRequest request,
1323
			@RequestParam(name = "offset", defaultValue = "0") int offset,
1229
											@RequestParam(name = "offset", defaultValue = "0") int offset,
1324
			@RequestParam(name = "limit", defaultValue = "10") int limit, Model model)
1230
											@RequestParam(name = "limit", defaultValue = "10") int limit, Model model)
1325
			throws ProfitMandiBusinessException {
1231
			throws ProfitMandiBusinessException {
1326
		LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
1232
		LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
1327
		return responseSender.ok(schemeService.getSchemes(loginDetails.getRoleIds(), offset, limit));
1233
		return responseSender.ok(schemeService.getSchemes(loginDetails.getRoleIds(), offset, limit));
1328
	}
1234
	}
1329
 
1235
 
1330
	@RequestMapping(value = "/searchSchemeByCategory")
-
 
1331
	public String getSchemeByCategory(HttpServletRequest request,
-
 
1332
			@RequestParam(name = "offset", defaultValue = "0") int offset,
-
 
1333
			@RequestParam(name = "limit", defaultValue = "10") int limit,
-
 
1334
			@RequestParam(name = "searchItem", required = false, defaultValue = "") String searchItem,
-
 
1335
			@RequestParam(name = "searchTerm", required = false, defaultValue = "") String searchTerm,
-
 
1336
			@RequestParam(name = "category", required = true, defaultValue = "") PartnerType category, Model model)
-
 
1337
			throws ProfitMandiBusinessException {
-
 
1338
		LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
-
 
1339
		List<Scheme> schemes = null;
-
 
1340
		long size = 0;
-
 
1341
 
-
 
1342
		schemes = schemeRepository.selectByPartnerType(category, offset, limit);
-
 
1343
 
-
 
1344
		if (!(schemes.size() == 0)) {
-
 
1345
			size = schemeRepository.selectAllCount();
-
 
1346
			LOGGER.info("schemes" + schemes);
-
 
1347
			model.addAttribute("schemes", schemes);
-
 
1348
			model.addAttribute("start", offset + 1);
-
 
1349
			model.addAttribute("size", size);
-
 
1350
			model.addAttribute("searchTerm", searchTerm);
-
 
1351
			model.addAttribute("searchItem", searchItem);
-
 
1352
			model.addAttribute("roleType", roleManager.isAdmin(loginDetails.getRoleIds()));
-
 
1353
			if (schemes.size() < limit) {
-
 
1354
				model.addAttribute("end", offset + schemes.size());
-
 
1355
			} else {
-
 
1356
				model.addAttribute("end", offset + limit);
-
 
1357
			}
-
 
1358
		}
-
 
1359
 
-
 
1360
		return "schemes";
-
 
1361
	}
-
 
1362
 
-
 
1363
	@RequestMapping(value = "/getSchemeByCategoryPaginated")
-
 
1364
	public String getSchemeByCategoryPaginated(HttpServletRequest request,
-
 
1365
			@RequestParam(name = "offset", defaultValue = "0") int offset,
-
 
1366
			@RequestParam(name = "limit", defaultValue = "10") int limit,
-
 
1367
			@RequestParam(name = "searchItem", required = false, defaultValue = "") String searchItem,
-
 
1368
			@RequestParam(name = "searchTerm", required = false, defaultValue = "") String searchTerm,
-
 
1369
			@RequestParam(name = "category", required = true, defaultValue = "") PartnerType category, Model model)
-
 
1370
			throws ProfitMandiBusinessException {
-
 
1371
		LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
-
 
1372
		LOGGER.info("In search Item....");
-
 
1373
		List<Scheme> schemes = null;
-
 
1374
 
-
 
1375
		schemes = schemeRepository.selectByPartnerType(category, offset, limit);
-
 
1376
 
-
 
1377
		model.addAttribute("schemes", schemes);
-
 
1378
		model.addAttribute("searchItem", searchItem);
-
 
1379
		model.addAttribute("roleType", roleManager.isAdmin(loginDetails.getRoleIds()));
-
 
1380
		return "schemes-paginated";
-
 
1381
	}
-
 
1382
 
-
 
1383
	@RequestMapping(value = "/searchScheme")
-
 
1384
	public String getSchemeBySchemeId(HttpServletRequest request,
-
 
1385
			@RequestParam(name = "offset", defaultValue = "0") int offset,
-
 
1386
			@RequestParam(name = "limit", defaultValue = "10") int limit,
-
 
1387
			@RequestParam(name = "searchTerm", required = false, defaultValue = "") String searchTerm,
-
 
1388
			@RequestParam(name = "searchItem", required = false, defaultValue = "") String searchItem, Model model)
-
 
1389
			throws ProfitMandiBusinessException {
-
 
1390
		LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
-
 
1391
		List<Scheme> schemes = null;
-
 
1392
		long size = 0;
-
 
1393
		if (!(searchTerm.equals("")) && searchItem.equals("")) {
-
 
1394
			schemes = schemeRepository.selectBySearchTerm(searchTerm, offset, limit);
-
 
1395
			if (!(schemes.size() == 0)) {
-
 
1396
				size = schemeRepository.selectAllCount();
-
 
1397
				LOGGER.info("schemes" + schemes);
-
 
1398
				model.addAttribute("schemes", schemes);
-
 
1399
				model.addAttribute("start", offset + 1);
-
 
1400
				model.addAttribute("size", size);
-
 
1401
				model.addAttribute("searchTerm", searchTerm);
-
 
1402
				model.addAttribute("searchItem", searchItem);
-
 
1403
				model.addAttribute("roleType", roleManager.isAdmin(loginDetails.getRoleIds()));
-
 
1404
				if (schemes.size() < limit) {
-
 
1405
					model.addAttribute("end", offset + schemes.size());
-
 
1406
				} else {
-
 
1407
					model.addAttribute("end", offset + limit);
-
 
1408
				}
-
 
1409
			} else {
-
 
1410
				throw new ProfitMandiBusinessException("SchemeId", searchTerm, "SchemeId Not Found");
-
 
1411
			}
-
 
1412
		} else if (!(searchItem.equals("")) && searchTerm.equals("")) {
-
 
1413
			List<Integer> schemeIds = schemeItemRepository.selectSchemeIdByItemId(Integer.parseInt(searchItem));
-
 
1414
			if (!(schemeIds.size() == 0)) {
-
 
1415
				LOGGER.info("schemeIds in searchItemScheme" + schemeIds);
-
 
1416
				schemes = schemeRepository.selectBySchemeIds(schemeIds, offset, limit);
-
 
1417
				size = schemeIds.size();
-
 
1418
				LOGGER.info("Size" + size);
-
 
1419
				model.addAttribute("schemes", schemes);
-
 
1420
				model.addAttribute("start", offset + 1);
-
 
1421
				model.addAttribute("size", size);
-
 
1422
				model.addAttribute("searchItem", searchItem);
-
 
1423
				model.addAttribute("searchTerm", searchTerm);
-
 
1424
				model.addAttribute("roleType", roleManager.isAdmin(loginDetails.getRoleIds()));
-
 
1425
				if (schemes.size() < limit) {
-
 
1426
					model.addAttribute("end", offset + schemes.size());
-
 
1427
				} else {
-
 
1428
					model.addAttribute("end", offset + limit);
-
 
1429
				}
-
 
1430
 
-
 
1431
			} else {
-
 
1432
				throw new ProfitMandiBusinessException("SchemeIds", searchItem, "SchemeId Not Found");
-
 
1433
			}
-
 
1434
		} else {
-
 
1435
			if (roleManager.isAdmin(loginDetails.getRoleIds())) {
-
 
1436
				schemes = schemeRepository.selectAll(offset, limit);
-
 
1437
				size = schemeRepository.selectAllCount();
-
 
1438
			} else {
-
 
1439
				schemes = schemeRepository.selectActiveAll(offset, limit);
-
 
1440
				size = schemeRepository.selectAllActiveCount();
-
 
1441
			}
-
 
1442
			model.addAttribute("schemes", schemes);
-
 
1443
			model.addAttribute("start", offset + 1);
-
 
1444
			model.addAttribute("size", size);
-
 
1445
			model.addAttribute("searchItem", searchItem);
-
 
1446
			model.addAttribute("searchTerm", searchTerm);
-
 
1447
			model.addAttribute("roleType", roleManager.isAdmin(loginDetails.getRoleIds()));
-
 
1448
			if (schemes.size() < limit) {
-
 
1449
				model.addAttribute("end", offset + schemes.size());
-
 
1450
			} else {
-
 
1451
				model.addAttribute("end", offset + limit);
-
 
1452
			}
-
 
1453
		}
-
 
1454
		return "schemes";
-
 
1455
	}
-
 
1456
 
-
 
1457
	@RequestMapping(value = "/searchItemSchemePanigated")
-
 
1458
	public String getSchemeByItemPanigated(HttpServletRequest request,
-
 
1459
			@RequestParam(name = "offset", defaultValue = "0") int offset,
-
 
1460
			@RequestParam(name = "limit", defaultValue = "10") int limit,
-
 
1461
			@RequestParam(name = "searchItem", required = false, defaultValue = "") String searchItem, Model model)
-
 
1462
			throws ProfitMandiBusinessException {
-
 
1463
		LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
-
 
1464
		LOGGER.info("In search Item....");
-
 
1465
		List<Scheme> schemes = null;
-
 
1466
		if (!searchItem.equals("")) {
-
 
1467
			List<Integer> schemeIds = schemeItemRepository.selectSchemeIdByItemId(Integer.parseInt(searchItem));
-
 
1468
			if (schemeIds != null) {
-
 
1469
				LOGGER.info(schemeIds);
-
 
1470
				schemes = schemeRepository.selectBySchemeIds(schemeIds, offset, limit);
-
 
1471
 
-
 
1472
			}
-
 
1473
		}
-
 
1474
		model.addAttribute("schemes", schemes);
-
 
1475
		model.addAttribute("searchItem", searchItem);
-
 
1476
		model.addAttribute("roleType", roleManager.isAdmin(loginDetails.getRoleIds()));
-
 
1477
		return "schemes-paginated";
-
 
1478
 
-
 
1479
	}
-
 
1480
 
1236
 
1481
	@RequestMapping(value = "/getCustomerOffer", method = RequestMethod.GET)
1237
	@RequestMapping(value = "/getCustomerOffer", method = RequestMethod.GET)
1482
	public String getCustomerOffer(HttpServletRequest request, Model model) throws ProfitMandiBusinessException {
1238
	public String getCustomerOffer(HttpServletRequest request, Model model) throws ProfitMandiBusinessException {
1483
 
1239
 
1484
		List<CustomerOffer> customerOffers = customerOfferRepository.selectAll();
1240
		List<CustomerOffer> customerOffers = customerOfferRepository.selectAll();
Line 1488... Line 1244...
1488
 
1244
 
1489
	}
1245
	}
1490
 
1246
 
1491
	@RequestMapping(value = "/createCustomerOffer", method = RequestMethod.POST)
1247
	@RequestMapping(value = "/createCustomerOffer", method = RequestMethod.POST)
1492
	public String createCustomerOffer(HttpServletRequest request, @RequestParam String offerName,
1248
	public String createCustomerOffer(HttpServletRequest request, @RequestParam String offerName,
1493
			@RequestParam LocalDateTime startDate, @RequestParam LocalDateTime endDate, Model model) throws Exception {
1249
									  @RequestParam LocalDateTime startDate, @RequestParam LocalDateTime endDate, Model model) throws Exception {
1494
 
1250
 
1495
		CustomerOffer co = new CustomerOffer();
1251
		CustomerOffer co = new CustomerOffer();
1496
		co.setOfferName(offerName);
1252
		co.setOfferName(offerName);
1497
		co.setStartDate(startDate);
1253
		co.setStartDate(startDate);
1498
		co.setEndDate(endDate);
1254
		co.setEndDate(endDate);
Line 1524... Line 1280...
1524
 
1280
 
1525
	}
1281
	}
1526
 
1282
 
1527
	@RequestMapping(value = "/customerOfferItem/upload", method = RequestMethod.POST)
1283
	@RequestMapping(value = "/customerOfferItem/upload", method = RequestMethod.POST)
1528
	public String uploadCustomerOfferItem(HttpServletRequest request, Model model, @RequestParam int offerId,
1284
	public String uploadCustomerOfferItem(HttpServletRequest request, Model model, @RequestParam int offerId,
1529
			HttpServletResponse response, @RequestPart MultipartFile file) throws Throwable {
1285
										  HttpServletResponse response, @RequestPart MultipartFile file) throws Throwable {
1530
 
1286
 
1531
		List<CSVRecord> records = FileUtil.readFile(file);
1287
		List<CSVRecord> records = FileUtil.readFile(file);
1532
 
1288
 
1533
		for (CSVRecord record : records) {
1289
		for (CSVRecord record : records) {
1534
			if (Integer.parseInt(record.get(0)) == 0) {
1290
			if (Integer.parseInt(record.get(0)) == 0) {
Line 1582... Line 1338...
1582
 
1338
 
1583
	}
1339
	}
1584
 
1340
 
1585
	@RequestMapping(value = "/extendCustomerOffer", method = RequestMethod.POST)
1341
	@RequestMapping(value = "/extendCustomerOffer", method = RequestMethod.POST)
1586
	public String extendCustomerOffer(HttpServletRequest request, @RequestParam int id,
1342
	public String extendCustomerOffer(HttpServletRequest request, @RequestParam int id,
1587
			@RequestParam LocalDateTime endDate, Model model) throws ProfitMandiBusinessException {
1343
									  @RequestParam LocalDateTime endDate, Model model) throws ProfitMandiBusinessException {
1588
 
1344
 
1589
		CustomerOffer co = customerOfferRepository.selectById(id);
1345
		CustomerOffer co = customerOfferRepository.selectById(id);
1590
		co.setEndDate(endDate);
1346
		co.setEndDate(endDate);
1591
		co.setUpdatedTimestamp(LocalDateTime.now());
1347
		co.setUpdatedTimestamp(LocalDateTime.now());
1592
 
1348