Subversion Repositories SmartDukaan

Rev

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

Rev 27876 Rev 27897
Line 4... Line 4...
4
import java.io.ByteArrayOutputStream;
4
import java.io.ByteArrayOutputStream;
5
import java.io.InputStream;
5
import java.io.InputStream;
6
import java.time.LocalDate;
6
import java.time.LocalDate;
7
import java.time.LocalDateTime;
7
import java.time.LocalDateTime;
8
import java.time.YearMonth;
8
import java.time.YearMonth;
-
 
9
import java.util.ArrayList;
9
import java.util.Arrays;
10
import java.util.Arrays;
10
import java.util.HashMap;
11
import java.util.HashMap;
11
import java.util.HashSet;
12
import java.util.HashSet;
12
import java.util.List;
13
import java.util.List;
13
import java.util.Map;
14
import java.util.Map;
Line 71... Line 72...
71
 
72
 
72
	private static final Logger LOGGER = LogManager.getLogger(SchemeController.class);
73
	private static final Logger LOGGER = LogManager.getLogger(SchemeController.class);
73
 
74
 
74
	@Autowired
75
	@Autowired
75
	private SchemeService schemeService;
76
	private SchemeService schemeService;
76
	
77
 
77
	@Autowired
78
	@Autowired
78
	private OfferService offerService;
79
	private OfferService offerService;
79
 
80
 
80
	@Autowired
81
	@Autowired
81
	private StateGstRateRepository stateGstRateRepository;
82
	private StateGstRateRepository stateGstRateRepository;
Line 294... Line 295...
294
 
295
 
295
	@RequestMapping(value = "/getSchemes", method = RequestMethod.GET)
296
	@RequestMapping(value = "/getSchemes", method = RequestMethod.GET)
296
	public String getSchemes(HttpServletRequest request, @RequestParam(name = "offset", defaultValue = "0") int offset,
297
	public String getSchemes(HttpServletRequest request, @RequestParam(name = "offset", defaultValue = "0") int offset,
297
			@RequestParam(required = false) LocalDate date,
298
			@RequestParam(required = false) LocalDate date,
298
			@RequestParam(name = "limit", defaultValue = "10") int limit,
299
			@RequestParam(name = "limit", defaultValue = "10") int limit,
299
			@RequestParam(name = "searchItem", required = false, defaultValue = "") String searchItem,
300
			@RequestParam(name = "searchItem", required = false, defaultValue = "0") int searchItem,
300
			@RequestParam(name = "searchTerm", required = false, defaultValue = "") String searchTerm,
301
			@RequestParam(name = "searchTerm", required = false, defaultValue = "") String searchTerm,
301
			@RequestParam(name = "partnerType", required = false, defaultValue = "") PartnerType partnerType,
302
			@RequestParam(name = "partnerType", required = false, defaultValue = "") PartnerType partnerType,
302
			Model model) throws ProfitMandiBusinessException {
303
			Model model) throws ProfitMandiBusinessException {
303
		LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
304
		LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
304
		boolean isAdmin = roleManager.isAdmin(loginDetails.getRoleIds());
305
		boolean isAdmin = roleManager.isAdmin(loginDetails.getRoleIds());
Line 339... Line 340...
339
			else {
340
			else {
340
				throw new ProfitMandiBusinessException("SchemeId", searchTerm, "SchemeId Not Found");
341
				throw new ProfitMandiBusinessException("SchemeId", searchTerm, "SchemeId Not Found");
341
			}
342
			}
342
		}
343
		}
343
 
344
 
344
		else if (!searchItem.equals("")) {
345
		else if (searchItem > 0) {
345
			int itemId = 0;
-
 
346
			TagListing tagListing = null;
346
			TagListing tagListing = null;
347
			if (!searchItem.equals("")) {
-
 
348
				itemId = Integer.parseInt(searchItem);
-
 
349
				tagListing = tagListingRepository.selectByItemId(itemId);
347
				tagListing = tagListingRepository.selectByItemId(searchItem);
350
				if (tagListing != null) {
348
				if (tagListing != null) {
351
					model.addAttribute("dp", tagListing.getSellingPrice());
349
					model.addAttribute("dp", tagListing.getSellingPrice());
352
					model.addAttribute("mop", tagListing.getMop());
350
					model.addAttribute("mop", tagListing.getMop());
353
				}
-
 
354
			}
351
			}
355
			schemes = schemeService.selectSchemeByPartnerType(partnerType, date, itemId, isAdmin, offset, limit);
352
			schemes = schemeService.selectSchemeByPartnerType(partnerType, date, searchItem, isAdmin, offset, limit);
356
			model.addAttribute("schemes", schemes);
353
			model.addAttribute("schemes", schemes);
357
			if (schemes.size() == 0) {
354
			if (schemes.size() == 0) {
358
				return "schemes";
355
				return "schemes";
359
			}
356
			}
360
 
357
 
361
			for (Scheme scheme : schemes) {
358
			for (Scheme scheme : schemes) {
362
				if (scheme.getAmountType().equals(AmountType.PERCENTAGE)) {
359
				if (scheme.getAmountType().equals(AmountType.PERCENTAGE)) {
363
					if (tagListing != null) {
360
					if (tagListing != null) {
364
						float taxRate = stateGstRateRepository.getIgstTaxRate(Arrays.asList(itemId)).get(itemId);
361
						float taxRate = stateGstRateRepository.getIgstTaxRate(Arrays.asList(searchItem)).get(searchItem);
365
						float taxableSellingPrice = tagListing.getSellingPrice() / (1 + taxRate / 100);
362
						float taxableSellingPrice = tagListing.getSellingPrice() / (1 + taxRate / 100);
366
						float amount = taxableSellingPrice * scheme.getAmount() / 100;
363
						float amount = taxableSellingPrice * scheme.getAmount() / 100;
367
						scheme.setAmountModel(
364
						scheme.setAmountModel(
368
								FormattingUtils.formatDecimalTwoDigits(amount) + " (" + scheme.getAmount() + "%)");
365
								FormattingUtils.formatDecimalTwoDigits(amount) + " (" + scheme.getAmount() + "%)");
369
					}
366
					}
Line 373... Line 370...
373
					}
370
					}
374
				} else {
371
				} else {
375
					scheme.setAmountModel(scheme.getAmount() + "");
372
					scheme.setAmountModel(scheme.getAmount() + "");
376
				}
373
				}
377
			}
374
			}
378
			size = schemeService.selectSchemeCount(partnerType, date, itemId, isAdmin);
375
			size = schemeService.selectSchemeCount(partnerType, date, searchItem, isAdmin);
379
			model.addAttribute("start", offset + 1);
376
			model.addAttribute("start", offset + 1);
380
			model.addAttribute("size", size);
377
			model.addAttribute("size", size);
381
			if (schemes.size() < limit) {
378
			if (schemes.size() < limit) {
382
				model.addAttribute("end", offset + schemes.size());
379
				model.addAttribute("end", offset + schemes.size());
383
			} else {
380
			} else {
Line 392... Line 389...
392
		LOGGER.info("schemes" + schemes);
389
		LOGGER.info("schemes" + schemes);
393
		// model.addAttribute("roleTypes", loginDetails.getRoleTypes());
390
		// model.addAttribute("roleTypes", loginDetails.getRoleTypes());
394
		if (isAdmin)
391
		if (isAdmin)
395
			return "schemes";
392
			return "schemes";
396
		else {
393
		else {
-
 
394
			List<CreateOfferRequest> offers = new ArrayList<>();
-
 
395
			if(searchItem > 0) {
397
			List<CreateOfferRequest> offers = offerService.getPublishedOffers(date, loginDetails.getFofoId(), Integer.parseInt(searchItem));
396
				offers = offerService.getPublishedOffers(date, loginDetails.getFofoId(), searchItem);
-
 
397
			}
398
			model.addAttribute("offers", offers);
398
			model.addAttribute("offers", offers);
399
			return "schemes-partner";
399
			return "schemes-partner";
400
		}
400
		}
401
	}
401
	}
402
 
402
 
Line 414... Line 414...
414
		}
414
		}
415
		LOGGER.info("requested offset=[{}], limit = [{}]", offset, limit);
415
		LOGGER.info("requested offset=[{}], limit = [{}]", offset, limit);
416
		List<Scheme> schemes = schemeRepository.selectAll();
416
		List<Scheme> schemes = schemeRepository.selectAll();
417
		int itemId = 0;
417
		int itemId = 0;
418
		TagListing tagListing = null;
418
		TagListing tagListing = null;
419
		
419
 
420
		for (Scheme scheme : schemes) {
420
		for (Scheme scheme : schemes) {
421
			if (scheme.getAmountType().equals(AmountType.PERCENTAGE)) {
421
			if (scheme.getAmountType().equals(AmountType.PERCENTAGE)) {
422
				if (itemId > 0) {
422
				if (itemId > 0) {
423
					float taxRate = stateGstRateRepository.getIgstTaxRate(Arrays.asList(itemId)).get(itemId);
423
					float taxRate = stateGstRateRepository.getIgstTaxRate(Arrays.asList(itemId)).get(itemId);
424
					float taxableSellingPrice = tagListing.getSellingPrice() / (1 + taxRate / 100);
424
					float taxableSellingPrice = tagListing.getSellingPrice() / (1 + taxRate / 100);