Subversion Repositories SmartDukaan

Rev

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

Rev 30470 Rev 30651
Line 11... Line 11...
11
import com.spice.profitmandi.common.util.FormattingUtils;
11
import com.spice.profitmandi.common.util.FormattingUtils;
12
import com.spice.profitmandi.common.web.util.ResponseSender;
12
import com.spice.profitmandi.common.web.util.ResponseSender;
13
import com.spice.profitmandi.dao.entity.catalog.Offer;
13
import com.spice.profitmandi.dao.entity.catalog.Offer;
14
import com.spice.profitmandi.dao.entity.fofo.PartnerType;
14
import com.spice.profitmandi.dao.entity.fofo.PartnerType;
15
import com.spice.profitmandi.dao.enumuration.catalog.ItemCriteriaType;
15
import com.spice.profitmandi.dao.enumuration.catalog.ItemCriteriaType;
-
 
16
import com.spice.profitmandi.dao.enumuration.catalog.OfferSchemeType;
16
import com.spice.profitmandi.dao.model.CreateOfferRequest;
17
import com.spice.profitmandi.dao.model.CreateOfferRequest;
17
import com.spice.profitmandi.dao.model.OfferRowModel;
18
import com.spice.profitmandi.dao.model.OfferRowModel;
18
import com.spice.profitmandi.dao.repository.catalog.ItemRepository;
19
import com.spice.profitmandi.dao.repository.catalog.ItemRepository;
19
import com.spice.profitmandi.dao.repository.catalog.OfferMarginRepository;
20
import com.spice.profitmandi.dao.repository.catalog.OfferMarginRepository;
20
import com.spice.profitmandi.dao.repository.catalog.OfferPartnerRepository;
21
import com.spice.profitmandi.dao.repository.catalog.OfferPartnerRepository;
Line 145... Line 146...
145
 
146
 
146
	}
147
	}
147
 
148
 
148
	@RequestMapping(value = "/createOffer", method = RequestMethod.POST)
149
	@RequestMapping(value = "/createOffer", method = RequestMethod.POST)
149
	public String createOffer(HttpServletRequest request, @RequestBody CreateOfferRequest createOfferRequest,
150
	public String createOffer(HttpServletRequest request, @RequestBody CreateOfferRequest createOfferRequest,
150
			Model model) throws Exception {
151
							  Model model) throws Exception {
151
		LOGGER.info("createOfferRequest [{}]", createOfferRequest);
152
		LOGGER.info("createOfferRequest [{}]", createOfferRequest);
152
		offerService.addOfferService(createOfferRequest);
153
		offerService.addOfferService(createOfferRequest);
153
		thirtyMinsTimeOutCacheManager.getCache("allOffers").evict(YearMonth.now());
154
		thirtyMinsTimeOutCacheManager.getCache("allOffers").evict(YearMonth.now());
154
		model.addAttribute("response", mvcResponseSender.createResponseString(true));
155
		model.addAttribute("response", mvcResponseSender.createResponseString(true));
155
		return "response";
156
		return "response";
Line 165... Line 166...
165
 
166
 
166
	}
167
	}
167
 
168
 
168
	@RequestMapping(value = "/offer/active/{offerId}", method = RequestMethod.GET)
169
	@RequestMapping(value = "/offer/active/{offerId}", method = RequestMethod.GET)
169
	public String activateOffer(HttpServletRequest request, @PathVariable(name = "offerId") String offerIdsString,
170
	public String activateOffer(HttpServletRequest request, @PathVariable(name = "offerId") String offerIdsString,
170
			Model model, @RequestParam(defaultValue = "true") boolean active)
171
								Model model, @RequestParam(defaultValue = "true") boolean active)
171
			throws ProfitMandiBusinessException, Exception {
172
			throws ProfitMandiBusinessException, Exception {
172
		List<Integer> offerIds = Arrays.stream(offerIdsString.split(",")).map(x -> Integer.parseInt(x))
173
		List<Integer> offerIds = Arrays.stream(offerIdsString.split(",")).map(x -> Integer.parseInt(x))
173
				.collect(Collectors.toList());
174
				.collect(Collectors.toList());
174
		List<Offer> offers = offerRepository.selectAllByIds(offerIds);
175
		List<Offer> offers = offerRepository.selectAllByIds(offerIds);
175
		boolean shouldEvict = false;
176
		boolean shouldEvict = false;
Line 196... Line 197...
196
		// return "offer_margin_detail_partner2";
197
		// return "offer_margin_detail_partner2";
197
	}
198
	}
198
 
199
 
199
	@RequestMapping(value = "/offer/testimage/{offerId}", method = RequestMethod.GET)
200
	@RequestMapping(value = "/offer/testimage/{offerId}", method = RequestMethod.GET)
200
	public String testOffer(HttpServletRequest request, @PathVariable int offerId, Model model,
201
	public String testOffer(HttpServletRequest request, @PathVariable int offerId, Model model,
201
			@RequestParam(defaultValue = "true") boolean active) throws ProfitMandiBusinessException, Exception {
202
							@RequestParam(defaultValue = "true") boolean active) throws ProfitMandiBusinessException, Exception {
202
		Offer offer = offerRepository.selectById(offerId);
203
		Offer offer = offerRepository.selectById(offerId);
203
		// model.addAttribute("response", mvcResponseSender.createResponseString(true));
204
		// model.addAttribute("response", mvcResponseSender.createResponseString(true));
204
		// return "response";
205
		// return "response";
205
		CreateOfferRequest createOfferRequest = offerService.getCreateOfferRequest(offer);
206
		CreateOfferRequest createOfferRequest = offerService.getCreateOfferRequest(offer);
206
		model.addAttribute("offer", createOfferRequest);
207
		model.addAttribute("offer", createOfferRequest);
Line 210... Line 211...
210
	@Autowired
211
	@Autowired
211
	private com.spice.profitmandi.dao.repository.dtr.UserRepository dtrUserRepository;
212
	private com.spice.profitmandi.dao.repository.dtr.UserRepository dtrUserRepository;
212
 
213
 
213
	@RequestMapping(value = "/offer/active/fofo/{fofoId}", method = RequestMethod.GET)
214
	@RequestMapping(value = "/offer/active/fofo/{fofoId}", method = RequestMethod.GET)
214
	public String sendOfferNotification(HttpServletRequest request, @PathVariable int fofoId, Model model,
215
	public String sendOfferNotification(HttpServletRequest request, @PathVariable int fofoId, Model model,
215
			@RequestParam(defaultValue = "true") boolean active) throws ProfitMandiBusinessException, Exception {
216
										@RequestParam(defaultValue = "true") boolean active) throws ProfitMandiBusinessException, Exception {
216
		List<Offer> offers = offerRepository.selectAllPublishedMapByPartner(YearMonth.now()).get(fofoId);
217
		List<Offer> offers = offerRepository.selectAllPublishedMapByPartner(YearMonth.now()).get(fofoId);
217
		for (Offer offer : offers) {
218
		for (Offer offer : offers) {
218
			this.sendNotification(offer);
219
			this.sendNotification(offer);
219
		}
220
		}
220
		model.addAttribute("response", mvcResponseSender.createResponseString(true));
221
		model.addAttribute("response", mvcResponseSender.createResponseString(true));
Line 366... Line 367...
366
 
367
 
367
		List<CreateOfferRequest> publishedOffers = offerService.getAllOffers(yearMonth).values().stream()
368
		List<CreateOfferRequest> publishedOffers = offerService.getAllOffers(yearMonth).values().stream()
368
				.sorted(Comparator.comparing(CreateOfferRequest::getId).reversed()).collect(Collectors.toList());
369
				.sorted(Comparator.comparing(CreateOfferRequest::getId).reversed()).collect(Collectors.toList());
369
		model.addAttribute("offers", publishedOffers);
370
		model.addAttribute("offers", publishedOffers);
370
		model.addAttribute("yearMonth", yearMonth);
371
		model.addAttribute("yearMonth", yearMonth);
-
 
372
		model.addAttribute("currentMonth", yearMonth.equals(YearMonth.now()));
371
 
373
 
372
		return "offer_history";
374
		return "offer_history";
373
	}
375
	}
374
 
376
 
375
	@RequestMapping(value = "/offer-details", method = RequestMethod.GET)
377
	@RequestMapping(value = "/offer-details", method = RequestMethod.GET)
Line 379... Line 381...
379
 
381
 
380
		model.addAttribute("offer", createOfferRequest);
382
		model.addAttribute("offer", createOfferRequest);
381
		return "offer-details";
383
		return "offer-details";
382
	}
384
	}
383
 
385
 
-
 
386
	@RequestMapping(value = "/offer/process/{offerId}", method = RequestMethod.GET)
-
 
387
	public ResponseEntity<?> processOfferRequest(HttpServletRequest request, @PathVariable int offerId, Model model)
-
 
388
			throws Exception {
-
 
389
		CreateOfferRequest createOfferRequest = offerService.getOffer(0, offerId);
-
 
390
		if (createOfferRequest.getSchemeType().equals(OfferSchemeType.SELLIN)) {
-
 
391
			offerRepository.processSellin(createOfferRequest);
-
 
392
		}
-
 
393
		return responseSender.ok(true);
-
 
394
	}
-
 
395
 
384
	@RequestMapping(value = "/offerDownload", method = RequestMethod.GET)
396
	@RequestMapping(value = "/offerDownload", method = RequestMethod.GET)
385
	public ResponseEntity<?> dowloadOfferSummary(HttpServletRequest request, @RequestParam int offerId, Model model)
397
	public ResponseEntity<?> dowloadOfferSummary(HttpServletRequest request, @RequestParam int offerId, Model model)
386
			throws Exception {
398
			throws Exception {
387
		List<List<?>> listOfRows = new ArrayList<>();
399
		List<List<?>> listOfRows = new ArrayList<>();
388
		final HttpHeaders headers = new HttpHeaders();
400
		final HttpHeaders headers = new HttpHeaders();
389
		headers.set("Content-Type", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
401
		headers.set("Content-Type", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
390
		headers.set("Content-disposition", "inline; filename=offer-" + offerId + ".csv");
402
		headers.set("Content-disposition", "inline; filename=offer-" + offerId + ".csv");
391
		CreateOfferRequest createOfferRequest = offerService.getOffer(0, offerId);
403
		CreateOfferRequest createOfferRequest = offerService.getOffer(0, offerId);
392
		Collection<OfferRowModel> offerRowModels = offerRepository.getOfferRows(createOfferRequest);
404
		Collection<OfferRowModel> offerRowModels = offerRepository.getOfferRows(createOfferRequest);
-
 
405
		ByteArrayOutputStream baos = null;
-
 
406
		if (createOfferRequest.getSchemeType().equals(OfferSchemeType.SELLIN)) {
-
 
407
			for (OfferRowModel offerRowModel : offerRowModels) {
-
 
408
				CustomRetailer customRetailer = retailerService.getFofoRetailer(offerRowModel.getFofoId());
-
 
409
				listOfRows.add(Arrays.asList(createOfferRequest.getId(), createOfferRequest.getName(),
-
 
410
						createOfferRequest.getTargetType(), createOfferRequest.getSchemeType(),
-
 
411
						createOfferRequest.getBrandShareTerms(), createOfferRequest.getSellinPercentage(),
-
 
412
						"--", createOfferRequest.getItemCriteriaString(),
-
 
413
						createOfferRequest.getStartDate(), createOfferRequest.getEndDate(),
-
 
414
						createOfferRequest.getCreatedOn(), customRetailer.getPartnerId(), customRetailer.getBusinessName(),
-
 
415
						customRetailer.getCode(), offerRowModel.getTotalBasePurchaseValue(), offerRowModel.getAchievedTarget(),
-
 
416
						offerRowModel.getPayoutPurchaseValue(), offerRowModel.getPayout(), offerRowModel.getPayoutType(), offerRowModel.getFinalPayout(), String.join(", ", offerRowModel.getEligibleImeis())));
-
 
417
			}
-
 
418
			baos = FileUtil.getCSVByteStream(
-
 
419
					Arrays.asList("Id", "Name", "Target Type", "Scheme Type", "Brand %", "Sellin %", "Partner Criteria",
-
 
420
							"Item Criteria", "Start", "End", "Created", "Partner Id", "Partner Name", "Partner Code",
-
 
421
							"Base Purchase", "Achieved Target", "Eligible Purchase", "Slab Amount", "Slab Amount Type", "Payout Value(Rs.)",
-
 
422
							"Eligible IMEIs"
-
 
423
					), listOfRows);
-
 
424
		} else {
393
 
425
 
394
		for (OfferRowModel offerRowModel : offerRowModels) {
426
			for (OfferRowModel offerRowModel : offerRowModels) {
395
			CustomRetailer customRetailer = retailerService.getFofoRetailer(offerRowModel.getFofoId());
427
				CustomRetailer customRetailer = retailerService.getFofoRetailer(offerRowModel.getFofoId());
396
			listOfRows.add(Arrays.asList(createOfferRequest.getId(), createOfferRequest.getName(),
428
				listOfRows.add(Arrays.asList(createOfferRequest.getId(), createOfferRequest.getName(),
397
					createOfferRequest.getTargetType(), createOfferRequest.getSchemeType(),
429
						createOfferRequest.getTargetType(), createOfferRequest.getSchemeType(),
398
					createOfferRequest.getBrandShareTerms(), createOfferRequest.getSellinPercentage(),
430
						createOfferRequest.getBrandShareTerms(), createOfferRequest.getSellinPercentage(),
399
					createOfferRequest.getPartnerCriteriaString(), createOfferRequest.getItemCriteriaString(),
431
						createOfferRequest.getPartnerCriteriaString(), createOfferRequest.getItemCriteriaString(),
400
					createOfferRequest.getStartDate(), createOfferRequest.getEndDate(),
432
						createOfferRequest.getStartDate(), createOfferRequest.getEndDate(),
401
					createOfferRequest.getCreatedOn(), customRetailer.getPartnerId(), customRetailer.getBusinessName(),
433
						createOfferRequest.getCreatedOn(), customRetailer.getPartnerId(), customRetailer.getBusinessName(),
402
					customRetailer.getCode(), offerRowModel.getTotalSale(), offerRowModel.getEligibleSale(),
434
						customRetailer.getCode(), offerRowModel.getTotalSale(), offerRowModel.getEligibleSale(),
403
					offerRowModel.getAchievedTarget(), offerRowModel.getNextTarget(), offerRowModel.getEligibleSaleDp(),
435
						offerRowModel.getAchievedTarget(), offerRowModel.getNextTarget(), offerRowModel.getEligibleSaleDp(),
404
					offerRowModel.getTotalPurchaseValue(), offerRowModel.getCurrentPayoutTarget(),
436
						offerRowModel.getTotalBasePurchaseValue(), offerRowModel.getCurrentPayoutTarget(),
405
					offerRowModel.getPayoutTargetAchieved(), offerRowModel.getAmountType(),
437
						offerRowModel.getPayoutTargetAchieved(), offerRowModel.getPayoutType(),
406
					offerRowModel.getPayoutValue(), offerRowModel.getPayoutValueDp(), offerRowModel.getFinalPayout(),
438
						offerRowModel.getPayoutValue(), offerRowModel.getPayoutValueDp(), offerRowModel.getFinalPayout(),
407
					String.join(", ", offerRowModel.getPendingImeis())));
439
						String.join(", ", offerRowModel.getPendingImeis())));
408
		}
440
			}
409
		ByteArrayOutputStream baos = FileUtil.getCSVByteStream(
441
			baos = FileUtil.getCSVByteStream(
410
				Arrays.asList("Id", "Name", "Target Type", "Scheme Type", "Brand %", "Sellin %", "Partner Criteria",
442
					Arrays.asList("Id", "Name", "Target Type", "Scheme Type", "Brand %", "Sellin %", "Partner Criteria",
411
						"Item Criteria", "Start", "End", "Created", "Partner Id", "Partner Name", "Partner Code",
443
							"Item Criteria", "Start", "End", "Created", "Partner Id", "Partner Name", "Partner Code",
412
						"Total Sale", "Eligible Sale", "Achieved Target", "Next Target", "Eligible Sale DP",
444
							"Total Value", "Eligible Value", "Achieved Target", "Next Target", "Eligible Sale DP",
413
						"Total Purchase DP", "Current Payout Target", "Payout Target Achieved", "Payout Amount Type",
445
							"Total Purchase DP", "Current Payout Target", "Payout Target Achieved", "Payout Amount Type",
414
						"Payout Value", "Payout Value DP", "Amount to be credited", "IMEIs pending for Activation"
446
							"Payout Value", "Payout Value DP", "Amount to be credited", "IMEIs pending for Activation"
415
				// "Payout Sale Qty", "Activated Value", "Activated Qty",
447
							// "Payout Sale Qty", "Activated Value", "Activated Qty",
416
				), listOfRows);
448
					), listOfRows);
-
 
449
		}
417
		final InputStream inputStream = new ByteArrayInputStream(baos.toByteArray());
450
		final InputStream inputStream = new ByteArrayInputStream(baos.toByteArray());
418
		final InputStreamResource inputStreamResource = new InputStreamResource(inputStream);
451
		final InputStreamResource inputStreamResource = new InputStreamResource(inputStream);
419
		return new ResponseEntity<>(inputStreamResource, headers, HttpStatus.OK);
452
		return new ResponseEntity<>(inputStreamResource, headers, HttpStatus.OK);
420
	}
453
	}
421
 
454
 
Line 453... Line 486...
453
	@Autowired
486
	@Autowired
454
	RoleManager roleManager;
487
	RoleManager roleManager;
455
 
488
 
456
	@RequestMapping(value = "/getOfferMargins", method = RequestMethod.GET)
489
	@RequestMapping(value = "/getOfferMargins", method = RequestMethod.GET)
457
	public String getOfferMargins(HttpServletRequest request,
490
	public String getOfferMargins(HttpServletRequest request,
458
			@RequestParam(name = "offerId", defaultValue = "0") int offerId, Model model) throws Exception {
491
								  @RequestParam(name = "offerId", defaultValue = "0") int offerId, Model model) throws Exception {
459
		LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
492
		LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
460
		boolean isAdmin = roleManager.isAdmin(loginDetails.getRoleIds());
493
		boolean isAdmin = roleManager.isAdmin(loginDetails.getRoleIds());
461
		CreateOfferRequest createOfferRequest = offerService.getOffer(isAdmin ? 0 : loginDetails.getFofoId(), offerId);
494
		CreateOfferRequest createOfferRequest = offerService.getOffer(isAdmin ? 0 : loginDetails.getFofoId(), offerId);
462
 
495
 
463
		model.addAttribute("offer", createOfferRequest);
496
		model.addAttribute("offer", createOfferRequest);