| 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);
|