Subversion Repositories SmartDukaan

Rev

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

Rev 25894 Rev 25895
Line 668... Line 668...
668
		}
668
		}
669
 
669
 
670
	}
670
	}
671
 
671
 
672
	public void sendPartnerInvestmentDetails(List<String> sendTo) throws Exception {
672
	public void sendPartnerInvestmentDetails(List<String> sendTo) throws Exception {
673
		if (sendTo == null) {
-
 
674
			sendTo = Arrays.asList("tarun.verma@smartdukaan.com", "kamini.sharma@smartdukaan.com",
-
 
675
					"prakash.rai@smartdukaan.com", "amit.gupta@shop2020.in", "amod.sen@smartdukaan.com");
-
 
676
		}
-
 
677
		LocalDate yesterDay = LocalDate.now().minusDays(1);
673
		LocalDate yesterDay = LocalDate.now().minusDays(1);
678
		List<FofoStore> fofoStores = fofoStoreRepository.selectActiveStores();
674
		List<FofoStore> fofoStores = fofoStoreRepository.selectActiveStores();
679
		Map<Integer, CustomRetailer> customRetailerMap = retailerService
675
		Map<Integer, CustomRetailer> customRetailerMap = retailerService
680
				.getFofoRetailers(fofoStores.stream().map(x -> x.getId()).collect(Collectors.toList()));
676
				.getFofoRetailers(fofoStores.stream().map(x -> x.getId()).collect(Collectors.toList()));
681
 
677
 
682
		List<String> headers = Arrays.asList("Code", "Firm Name", "Store Name", "State Manager", "Teritory/Team Lead",
678
		List<String> headers = Arrays.asList("Code", "Firm Name", "Store Name", "State Manager", "Teritory/Team Lead",
683
				"Wallet Amount", "In Stock Amount", "Return In Transit Stock", "Unbilled Amount", "Grn Pending Amount",
679
				"Wallet Amount", "In Stock Amount", "Return In Transit Stock", "Unbilled Amount", "Grn Pending Amount",
684
				"Min Investment", "Investment Amount", "Investment Short", "Unbilled Qty");
680
				"Min Investment", "Investment Amount", "Investment Short", "Unbilled Qty");
685
		List<List<?>> rows = new ArrayList<>();
681
		List<List<?>> rows = new ArrayList<>();
686
		Map<Integer, List<? extends Serializable>> partnerRowsMap = new HashMap<>();
682
		Map<Integer, List<?>> partnerRowsMap = new HashMap<>();
687
 
683
 
688
		Map<Integer, List<Serializable>> partnerIdSalesHeaderMap = this.getPartnerIdSalesHeaders();
684
		Map<Integer, List<Serializable>> partnerIdSalesHeaderMap = this.getPartnerIdSalesHeaders();
689
 
685
 
690
		for (FofoStore fofoStore : fofoStores) {
686
		for (FofoStore fofoStore : fofoStores) {
691
			PartnerDailyInvestment partnerDailyInvestment = partnerInvestmentService.getInvestment(fofoStore.getId(),
687
			PartnerDailyInvestment partnerDailyInvestment = partnerInvestmentService.getInvestment(fofoStore.getId(),
Line 701... Line 697...
701
			if (retailer == null || partnerIdSalesHeaderMap.get(fofoStore.getId()) == null) {
697
			if (retailer == null || partnerIdSalesHeaderMap.get(fofoStore.getId()) == null) {
702
				LOGGER.info("Could not find retailer with retailer Id {}", fofoStore.getId());
698
				LOGGER.info("Could not find retailer with retailer Id {}", fofoStore.getId());
703
				continue;
699
				continue;
704
			}
700
			}
705
			List<Serializable> row = partnerIdSalesHeaderMap.get(fofoStore.getId());
701
			List<Serializable> row = partnerIdSalesHeaderMap.get(fofoStore.getId());
-
 
702
 			row.addAll(Arrays.asList(partnerDailyInvestment.getWalletAmount(), partnerDailyInvestment.getInStockAmount(), 0,
-
 
703
					partnerDailyInvestment.getUnbilledAmount(), partnerDailyInvestment.getGrnPendingAmount(),
-
 
704
					partnerDailyInvestment.getMinInvestment(), partnerDailyInvestment.getTotalInvestment(),
-
 
705
					partnerDailyInvestment.getShortInvestment(), partnerDailyInvestment.getUnbilledQty()));
706
			partnerRowsMap.put(fofoStore.getId(), row);
706
			partnerRowsMap.put(fofoStore.getId(), row);
707
			rows.add(row);
707
			rows.add(row);
708
 
708
 
709
		}
709
		}
710
 
710
 
711
		String fileName = "InvestmentSummary-" + FormattingUtils.formatDate(LocalDateTime.now()) + ".csv";
711
		String fileName = "InvestmentSummary-" + FormattingUtils.formatDate(LocalDateTime.now()) + ".csv";
712
 
712
 
-
 
713
		if(sendTo==null) {
713
		for (Map.Entry<String, Set<Integer>> storeGuyEntry : csService.getAuthUserPartnerIdMapping().entrySet()) {
714
			for (Map.Entry<String, Set<Integer>> storeGuyEntry : csService.getAuthUserPartnerIdMapping().entrySet()) {
714
			List<List<?>> filteredRows = storeGuyEntry.getValue().stream().map(x -> partnerRowsMap.get(x))
715
				List<List<?>> filteredRows = storeGuyEntry.getValue().stream().map(x -> partnerRowsMap.get(x))
715
					.filter(x -> x != null).collect(Collectors.toList());
716
						.filter(x -> x != null).collect(Collectors.toList());
716
			ByteArrayOutputStream baos = FileUtil.getCSVByteStream(headers, filteredRows);
717
				ByteArrayOutputStream baos = FileUtil.getCSVByteStream(headers, filteredRows);
717
			String[] sendToArray = new String[] { storeGuyEntry.getKey() };
718
				String[] sendToArray = new String[] { storeGuyEntry.getKey() };
718
			Utils.sendMailWithAttachment(googleMailSender, sendToArray, null, "Franchise Investment Summary", "PFA",
719
				Utils.sendMailWithAttachment(googleMailSender, sendToArray, null, "Franchise Investment Summary", "PFA",
719
					fileName, new ByteArrayResource(baos.toByteArray()));
720
						fileName, new ByteArrayResource(baos.toByteArray()));
-
 
721
			}
-
 
722
			sendTo = Arrays.asList("tarun.verma@smartdukaan.com", "kamini.sharma@smartdukaan.com",
-
 
723
					"prakash.rai@smartdukaan.com", "amit.gupta@shop2020.in", "amod.sen@smartdukaan.com");
720
		}
724
		}
-
 
725
		
721
 
726
 
722
		ByteArrayOutputStream baos = FileUtil.getCSVByteStream(headers, rows);
727
		ByteArrayOutputStream baos = FileUtil.getCSVByteStream(headers, rows);
723
		String[] sendToArray = sendTo.toArray(new String[sendTo.size()]);
728
		String[] sendToArray = sendTo.toArray(new String[sendTo.size()]);
724
		Utils.sendMailWithAttachment(googleMailSender, sendToArray, null, "Franchise Investment Summary", "PFA",
729
		Utils.sendMailWithAttachment(googleMailSender, sendToArray, null, "Franchise Investment Summary", "PFA",
725
				fileName, new ByteArrayResource(baos.toByteArray()));
730
				fileName, new ByteArrayResource(baos.toByteArray()));