Subversion Repositories SmartDukaan

Rev

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

Rev 27391 Rev 27394
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.LocalDate;
6
import java.time.LocalDate;
7
import java.time.LocalDateTime;
7
import java.time.LocalDateTime;
8
import java.util.ArrayList;
-
 
9
import java.util.Arrays;
8
import java.util.Arrays;
10
import java.util.HashMap;
9
import java.util.HashMap;
11
import java.util.HashSet;
10
import java.util.HashSet;
12
import java.util.List;
11
import java.util.List;
13
import java.util.Map;
12
import java.util.Map;
Line 39... Line 38...
39
import com.spice.profitmandi.common.model.MapWrapper;
38
import com.spice.profitmandi.common.model.MapWrapper;
40
import com.spice.profitmandi.common.model.ProfitMandiConstants;
39
import com.spice.profitmandi.common.model.ProfitMandiConstants;
41
import com.spice.profitmandi.common.model.SchemeItems;
40
import com.spice.profitmandi.common.model.SchemeItems;
42
import com.spice.profitmandi.common.model.SchemeModel;
41
import com.spice.profitmandi.common.model.SchemeModel;
43
import com.spice.profitmandi.common.util.ExcelUtils;
42
import com.spice.profitmandi.common.util.ExcelUtils;
-
 
43
import com.spice.profitmandi.common.util.FormattingUtils;
44
import com.spice.profitmandi.common.util.StringUtils;
44
import com.spice.profitmandi.common.util.StringUtils;
45
import com.spice.profitmandi.common.web.util.ResponseSender;
45
import com.spice.profitmandi.common.web.util.ResponseSender;
46
import com.spice.profitmandi.dao.entity.catalog.Item;
-
 
47
import com.spice.profitmandi.dao.entity.catalog.Offer;
46
import com.spice.profitmandi.dao.entity.catalog.Offer;
48
import com.spice.profitmandi.dao.entity.catalog.OfferPartner;
-
 
49
import com.spice.profitmandi.dao.entity.catalog.Offermargin;
-
 
50
import com.spice.profitmandi.dao.entity.catalog.Scheme;
47
import com.spice.profitmandi.dao.entity.catalog.Scheme;
51
import com.spice.profitmandi.dao.entity.catalog.TagListing;
48
import com.spice.profitmandi.dao.entity.catalog.TagListing;
52
import com.spice.profitmandi.dao.entity.fofo.PartnerType;
49
import com.spice.profitmandi.dao.entity.fofo.PartnerType;
53
import com.spice.profitmandi.dao.entity.fofo.SchemeItem;
50
import com.spice.profitmandi.dao.entity.fofo.SchemeItem;
54
import com.spice.profitmandi.dao.enumuration.catalog.AmountType;
51
import com.spice.profitmandi.dao.enumuration.catalog.AmountType;
55
import com.spice.profitmandi.dao.enumuration.catalog.ItemCriteriaType;
52
import com.spice.profitmandi.dao.enumuration.catalog.ItemCriteriaType;
56
import com.spice.profitmandi.dao.model.AmountMarginModel;
-
 
57
import com.spice.profitmandi.dao.model.CreateOfferRequest;
-
 
58
import com.spice.profitmandi.dao.model.CreateSchemeRequest;
53
import com.spice.profitmandi.dao.model.CreateSchemeRequest;
59
import com.spice.profitmandi.dao.model.ItemTypeParams;
-
 
60
import com.spice.profitmandi.dao.model.SimpleItemType;
-
 
61
import com.spice.profitmandi.dao.repository.catalog.ItemRepository;
54
import com.spice.profitmandi.dao.repository.catalog.ItemRepository;
62
import com.spice.profitmandi.dao.repository.catalog.OfferMarginRepository;
-
 
63
import com.spice.profitmandi.dao.repository.catalog.OfferPartnerRepository;
-
 
64
import com.spice.profitmandi.dao.repository.catalog.OfferRepository;
-
 
65
import com.spice.profitmandi.dao.repository.catalog.SchemeRepository;
55
import com.spice.profitmandi.dao.repository.catalog.SchemeRepository;
66
import com.spice.profitmandi.dao.repository.catalog.StateGstRateRepository;
56
import com.spice.profitmandi.dao.repository.catalog.StateGstRateRepository;
67
import com.spice.profitmandi.dao.repository.catalog.TagListingRepository;
57
import com.spice.profitmandi.dao.repository.catalog.TagListingRepository;
68
import com.spice.profitmandi.dao.repository.dtr.FofoStoreRepository;
58
import com.spice.profitmandi.dao.repository.dtr.FofoStoreRepository;
69
import com.spice.profitmandi.dao.repository.dtr.Mongo;
59
import com.spice.profitmandi.dao.repository.dtr.Mongo;
Line 86... Line 76...
86
	private static final Logger LOGGER = LogManager.getLogger(SchemeController.class);
76
	private static final Logger LOGGER = LogManager.getLogger(SchemeController.class);
87
 
77
 
88
	@Autowired
78
	@Autowired
89
	private SchemeService schemeService;
79
	private SchemeService schemeService;
90
 
80
 
-
 
81
	
91
	@Autowired
82
	@Autowired
92
	private StateGstRateRepository stateGstRateRepository;
83
	private StateGstRateRepository stateGstRateRepository;
93
 
84
	
94
	@Autowired
85
	@Autowired
95
	private SchemeRepository schemeRepository;
86
	private SchemeRepository schemeRepository;
96
 
87
 
97
	@Autowired
88
	@Autowired
98
	private SchemeItemRepository schemeItemRepository;
89
	private SchemeItemRepository schemeItemRepository;
Line 111... Line 102...
111
	private TagListingRepository tagListingRepository;
102
	private TagListingRepository tagListingRepository;
112
 
103
 
113
	@Autowired
104
	@Autowired
114
	private RoleManager roleManager;
105
	private RoleManager roleManager;
115
 
106
 
116
	@Autowired
-
 
117
	private PurchaseRepository purchaseRepository;
-
 
118
 
107
 
119
	@Autowired
108
	@Autowired
120
	private RoleRepository roleRepository;
109
	private ResponseSender<?> responseSender;
-
 
110
 
121
 
111
 
122
	@Autowired
112
	@Autowired
123
	private ResponseSender<?> responseSender;
113
	private FofoStoreRepository fofoStoreRepository;
124
 
114
 
-
 
115
	@Autowired
-
 
116
	private RetailerService retailerService;
125
 
117
 
-
 
118
	@Autowired
-
 
119
	private Mongo mongoClient;
126
 
120
 
127
	@Autowired
121
	@Autowired
128
	private PartnerTypeChangeService partnerTypeChangeService;
122
	private PartnerTypeChangeService partnerTypeChangeService;
129
 
123
 
130
	@RequestMapping(value = "/createScheme", method = RequestMethod.GET)
124
	@RequestMapping(value = "/createScheme", method = RequestMethod.GET)
Line 314... Line 308...
314
		long size = 0;
308
		long size = 0;
315
		LOGGER.info("partnerType" + partnerType);
309
		LOGGER.info("partnerType" + partnerType);
316
		if (partnerType == null) {
310
		if (partnerType == null) {
317
			partnerType = partnerTypeChangeService.getTypeOnDate(loginDetails.getFofoId(), LocalDate.now());
311
			partnerType = partnerTypeChangeService.getTypeOnDate(loginDetails.getFofoId(), LocalDate.now());
318
		}
312
		}
319
		if (!(searchTerm.equals("")) && searchItem.equals("")) {
313
		if (!(searchTerm.equals(""))) {
320
			schemes = schemeRepository.selectBySearchTerm(searchTerm, offset, limit);
314
			schemes = schemeRepository.selectBySearchTerm(searchTerm, offset, limit);
321
			if (!(schemes.size() == 0)) {
-
 
322
				for (Scheme scheme : schemes) {
315
			for(Scheme scheme  : schemes) {
323
					if (scheme.getAmountType().equals(AmountType.PERCENTAGE)) {
316
				if(scheme.getAmountType().equals(AmountType.PERCENTAGE)) {
324
						scheme.setAmountModel(scheme.getAmount() + "%");
317
					scheme.setAmountModel(scheme.getAmount() + "%");
325
					} else {
318
				} else {
326
						scheme.setAmountModel(scheme.getAmount() + "");
319
					scheme.setAmountModel(scheme.getAmount() + "");
327
					}
-
 
328
				}
320
				}
-
 
321
			}
-
 
322
			if (!(schemes.size() == 0)) {
329
 
323
				
330
				size = schemeRepository.selectAllCount();
324
				size = schemeRepository.selectAllCount();
331
				LOGGER.info("schemes" + schemes);
325
				LOGGER.info("schemes" + schemes);
332
				model.addAttribute("schemes", schemes);
326
				model.addAttribute("schemes", schemes);
333
				model.addAttribute("start", offset + 1);
327
				model.addAttribute("start", offset + 1);
334
				model.addAttribute("size", size);
328
				model.addAttribute("size", size);
Line 344... Line 338...
344
			} else {
338
			} else {
345
				throw new ProfitMandiBusinessException("SchemeId", searchTerm, "SchemeId Not Found");
339
				throw new ProfitMandiBusinessException("SchemeId", searchTerm, "SchemeId Not Found");
346
			}
340
			}
347
		} else {
341
		} else {
348
			int itemId = 0;
342
			int itemId = 0;
-
 
343
			TagListing tagListing = null;
-
 
344
			tagListing = tagListingRepository.selectByItemId(itemId);
349
			if (!(searchItem.equals("")) && searchTerm.equals("")) {
345
			if (!searchItem.equals("")) {
350
				itemId = Integer.parseInt(searchItem);
346
				itemId = Integer.parseInt(searchItem);
-
 
347
				tagListing = tagListingRepository.selectByItemId(itemId);
351
			}
348
			}
352
			schemes = schemeService.selectSchemeByPartnerType(partnerType, itemId, isAdmin, offset, limit);
349
			schemes = schemeService.selectSchemeByPartnerType(partnerType, itemId, isAdmin, offset, limit);
353
			TagListing tagListing = tagListingRepository.selectByItemId(itemId);
-
 
354
			for (Scheme scheme : schemes) {
350
			for(Scheme scheme  : schemes) {
355
				if (scheme.getAmountType().equals(AmountType.PERCENTAGE)) {
351
				if(scheme.getAmountType().equals(AmountType.PERCENTAGE)) {
-
 
352
					if(itemId > 0) {
356
					float taxRate = stateGstRateRepository.getIgstTaxRate(Arrays.asList(itemId)).get(itemId);
353
						float taxRate = stateGstRateRepository.getIgstTaxRate(Arrays.asList(itemId)).get(itemId);
357
					float taxableSellingPrice = tagListing.getSellingPrice() / (1 + taxRate / 100);
354
						float taxableSellingPrice = tagListing.getSellingPrice() / (1 + taxRate / 100);
358
					float amount = taxableSellingPrice * scheme.getAmount() / 100;
355
						float amount = taxableSellingPrice * scheme.getAmount() / 100;
-
 
356
						scheme.setAmountModel(FormattingUtils.formatDecimalTwoDigits(amount) +" ("+ scheme.getAmount() + "%)");
-
 
357
					} else {
359
					scheme.setAmountModel(amount + " (" + scheme.getAmount() + "%)");
358
						scheme.setAmountModel(scheme.getAmount() + "%");
-
 
359
					}
360
				} else {
360
				} else {
361
					scheme.setAmountModel(scheme.getAmount() + "");
361
					scheme.setAmountModel(scheme.getAmount() + "");
362
				}
362
				}
363
			}
363
			}
364
			size = schemeService.selectSchemeCount(partnerType, itemId, isAdmin);
364
			size = schemeService.selectSchemeCount(partnerType, itemId, isAdmin);
Line 401... Line 401...
401
		if (partnerType == null) {
401
		if (partnerType == null) {
402
			partnerType = partnerTypeChangeService.getTypeOnDate(loginDetails.getFofoId(), LocalDate.now());
402
			partnerType = partnerTypeChangeService.getTypeOnDate(loginDetails.getFofoId(), LocalDate.now());
403
		}
403
		}
404
		LOGGER.info("partnerType" + partnerType);
404
		LOGGER.info("partnerType" + partnerType);
405
		int itemId = 0;
405
		int itemId = 0;
-
 
406
		TagListing tagListing = null;
406
		if (!(searchItem.equals("")) && searchTerm.equals("")) {
407
		if (!(searchItem.equals(""))) {
407
			itemId = Integer.parseInt(searchItem);
408
			itemId = Integer.parseInt(searchItem);
-
 
409
			tagListing = tagListingRepository.selectByItemId(itemId); 
408
		}
410
		}
409
		schemes = schemeService.selectSchemeByPartnerType(partnerType, itemId, isAdmin, offset, limit);
411
		schemes = schemeService.selectSchemeByPartnerType(partnerType, itemId, isAdmin, offset, limit);
-
 
412
		for(Scheme scheme : schemes) {
-
 
413
			if(scheme.getAmountType().equals(AmountType.PERCENTAGE)) {
-
 
414
				if(itemId > 0) {
-
 
415
					float taxRate = stateGstRateRepository.getIgstTaxRate(Arrays.asList(itemId)).get(itemId);
-
 
416
					float taxableSellingPrice = tagListing.getSellingPrice() / (1 + taxRate / 100);
-
 
417
					float amount = taxableSellingPrice * scheme.getAmount() / 100;
-
 
418
					scheme.setAmountModel(FormattingUtils.formatDecimalTwoDigits(amount) +" ("+ scheme.getAmount() + "%)");
-
 
419
				} else {
-
 
420
					scheme.setAmountModel(scheme.getAmount() + "%");
-
 
421
				}
-
 
422
			} else {
-
 
423
				scheme.setAmountModel("₹" + scheme.getAmount());
-
 
424
			}
-
 
425
		}
410
 
426
 
411
		model.addAttribute("schemes", schemes);
427
		model.addAttribute("schemes", schemes);
412
		model.addAttribute("partnerType", partnerType);
428
		model.addAttribute("partnerType", partnerType);
413
		model.addAttribute("roleType", roleManager.isAdmin(loginDetails.getRoleIds()));
429
		model.addAttribute("roleType", roleManager.isAdmin(loginDetails.getRoleIds()));
414
		return "schemes-paginated";
430
		return "schemes-paginated";
Line 638... Line 654...
638
		model.addAttribute("searchItem", searchItem);
654
		model.addAttribute("searchItem", searchItem);
639
		model.addAttribute("roleType", roleManager.isAdmin(loginDetails.getRoleIds()));
655
		model.addAttribute("roleType", roleManager.isAdmin(loginDetails.getRoleIds()));
640
		return "schemes-paginated";
656
		return "schemes-paginated";
641
 
657
 
642
	}
658
	}
643
 
-
 
644
}
659
}
645
660