Subversion Repositories SmartDukaan

Rev

Rev 24072 | Rev 24078 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
21615 kshitij.so 1
package com.spice.profitmandi.web.controller;
2
 
23568 govind 3
import java.io.IOException;
4
import java.net.URISyntaxException;
23884 amit.gupta 5
import java.util.List;
23568 govind 6
 
22086 amit.gupta 7
import javax.servlet.http.HttpServletRequest;
8
 
23786 amit.gupta 9
import org.apache.logging.log4j.LogManager;
23568 govind 10
import org.apache.logging.log4j.Logger;
22481 ashik.ali 11
import org.springframework.beans.factory.annotation.Autowired;
23379 ashik.ali 12
import org.springframework.beans.factory.annotation.Value;
21615 kshitij.so 13
import org.springframework.stereotype.Controller;
22481 ashik.ali 14
import org.springframework.transaction.annotation.Transactional;
22073 ashik.ali 15
import org.springframework.ui.Model;
21615 kshitij.so 16
import org.springframework.web.bind.annotation.RequestMapping;
17
import org.springframework.web.bind.annotation.RequestMethod;
18
 
22481 ashik.ali 19
import com.spice.profitmandi.common.exception.ProfitMandiBusinessException;
22654 ashik.ali 20
import com.spice.profitmandi.dao.entity.fofo.FofoStore;
23884 amit.gupta 21
import com.spice.profitmandi.dao.entity.transaction.Order;
22481 ashik.ali 22
import com.spice.profitmandi.dao.repository.dtr.FofoStoreRepository;
23951 amit.gupta 23
import com.spice.profitmandi.dao.repository.fofo.PurchaseReturnItemRepository;
23884 amit.gupta 24
import com.spice.profitmandi.dao.repository.transaction.OrderRepository;
23844 amit.gupta 25
import com.spice.profitmandi.service.authentication.RoleManager;
23884 amit.gupta 26
import com.spice.profitmandi.service.inventory.InventoryService;
27
import com.spice.profitmandi.service.transaction.TransactionService;
28
import com.spice.profitmandi.service.wallet.WalletService;
22481 ashik.ali 29
import com.spice.profitmandi.web.model.LoginDetails;
30
import com.spice.profitmandi.web.util.CookiesProcessor;
31
 
21615 kshitij.so 32
@Controller
22481 ashik.ali 33
@Transactional(rollbackFor = Throwable.class)
21615 kshitij.so 34
public class DashboardController {
23923 amit.gupta 35
 
23379 ashik.ali 36
	@Value("${web.api.host}")
37
	private String webApiHost;
23923 amit.gupta 38
 
24072 amit.gupta 39
	@Value("${web.api.scheme}")
40
	private String webApiScheme;
41
 
23379 ashik.ali 42
	@Value("${web.api.port}")
43
	private int webApiPort;
21615 kshitij.so 44
 
24077 amit.gupta 45
	@Value("${web.api.root}")
46
	private int webApiRoot;
47
 
22481 ashik.ali 48
	@Autowired
22927 ashik.ali 49
	private CookiesProcessor cookiesProcessor;
23923 amit.gupta 50
 
23568 govind 51
	@Autowired
23786 amit.gupta 52
	private RoleManager roleManager;
23923 amit.gupta 53
 
23838 ashik.ali 54
	@Autowired
55
	private FofoStoreRepository fofoStoreRepository;
23884 amit.gupta 56
 
57
	@Autowired
58
	private WalletService walletService;
23923 amit.gupta 59
 
23884 amit.gupta 60
	@Autowired
61
	private InventoryService inventoryService;
23923 amit.gupta 62
 
23884 amit.gupta 63
	@Autowired
64
	private OrderRepository orderRepository;
23951 amit.gupta 65
 
66
	@Autowired
67
	private PurchaseReturnItemRepository purchaseReturnItemRepository;
23884 amit.gupta 68
 
23923 amit.gupta 69
	/*
70
	 * @Autowired private ScanRepository scanRepository;
71
	 */
72
 
23884 amit.gupta 73
	@Autowired
74
	private TransactionService transactionService;
23923 amit.gupta 75
 
23568 govind 76
	private static final Logger LOGGER = LogManager.getLogger(DashboardController.class);
23923 amit.gupta 77
 
21615 kshitij.so 78
	@RequestMapping(value = "/dashboard", method = RequestMethod.GET)
23923 amit.gupta 79
	public String dashboard(HttpServletRequest request, Model model)
80
			throws ProfitMandiBusinessException, URISyntaxException, IOException {
81
		// LOGGER.info("scanRepository.selectScansByInventoryItemId(1)",
82
		// scanRepository.selectScansByInventoryItemId(1));
23884 amit.gupta 83
		LOGGER.info("In Dashboard");
22927 ashik.ali 84
		LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
23923 amit.gupta 85
 
22481 ashik.ali 86
		FofoStore fofoStore = null;
87
		try {
22927 ashik.ali 88
			fofoStore = fofoStoreRepository.selectByRetailerId(loginDetails.getFofoId());
22481 ashik.ali 89
		} catch (ProfitMandiBusinessException e) {
22927 ashik.ali 90
			LOGGER.error("FofoStore Code not found of fofoId {}", loginDetails.getFofoId());
22481 ashik.ali 91
		}
23884 amit.gupta 92
 
23923 amit.gupta 93
		float walletAmount = 0;
94
		float inStockAmount = 0;
95
		float unbilledStockAmount = 0;
96
		float grnPendingStockAmount = 0;
97
		float shortPercentage = 100;
98
		float totalInvestedAmount = 0;
23936 tejbeer 99
		float minimumInvestment = 0;
23951 amit.gupta 100
		float returnedStockInTransit=0;
23923 amit.gupta 101
		if (roleManager.isAdmin(loginDetails.getRoleIds())) {
102
			model.addAttribute("showAlert", false);
103
		} else if (roleManager.isPartner(loginDetails.getRoleIds())) {
104
			walletAmount = walletService.getUserWallet(loginDetails.getFofoId()).getAmount();
105
			inStockAmount = inventoryService.getTotalAmountInStock(loginDetails.getFofoId());
106
 
23884 amit.gupta 107
			List<Order> unbilledOrders = transactionService.getInTransitOrders(loginDetails.getFofoId());
23923 amit.gupta 108
			for (Order unBilledOrder : unbilledOrders) {
23884 amit.gupta 109
				unbilledStockAmount += unBilledOrder.getTotalAmount();
110
			}
111
 
23904 amit.gupta 112
			List<Order> grnPendingOrders = orderRepository.selectPendingGrnOrders(loginDetails.getFofoId());
23923 amit.gupta 113
			for (Order grnPendingOrder : grnPendingOrders) {
23884 amit.gupta 114
				grnPendingStockAmount += grnPendingOrder.getTotalAmount();
115
			}
23923 amit.gupta 116
			totalInvestedAmount = walletAmount + inStockAmount + unbilledStockAmount + grnPendingStockAmount;
117
			shortPercentage = ((fofoStore.getMinimumInvestment() - totalInvestedAmount)
118
					/ fofoStore.getMinimumInvestment()) * 100;
23944 amit.gupta 119
			model.addAttribute("showAlert", shortPercentage > 10);
23936 tejbeer 120
			minimumInvestment = fofoStore.getMinimumInvestment();
23951 amit.gupta 121
 
122
			//debitNoteRepository.se
23884 amit.gupta 123
		}
23923 amit.gupta 124
		model.addAttribute("walletAmount", walletAmount);
125
		model.addAttribute("inStockAmount", inStockAmount);
126
		model.addAttribute("unbilledStockAmount", unbilledStockAmount);
127
		model.addAttribute("grnPendingStockAmount", grnPendingStockAmount);
128
		model.addAttribute("shortPercentage", shortPercentage);
129
		model.addAttribute("totalInvestedAmount", totalInvestedAmount);
23936 tejbeer 130
		model.addAttribute("minimumInvestmentAmount", minimumInvestment);
23951 amit.gupta 131
		model.addAttribute("returnedStockInTransit", returnedStockInTransit);
23923 amit.gupta 132
 
23848 ashik.ali 133
		model.addAttribute("fofoStore", fofoStore);
23918 amit.gupta 134
		model.addAttribute("walletAmount");
22086 amit.gupta 135
		model.addAttribute("appContextPath", request.getContextPath());
23796 amit.gupta 136
		model.addAttribute("isAdmin", roleManager.isAdmin(loginDetails.getRoleIds()));
23379 ashik.ali 137
		model.addAttribute("webApiHost", webApiHost);
138
		model.addAttribute("webApiPort", webApiPort);
24072 amit.gupta 139
		model.addAttribute("webApiScheme", webApiScheme);
24077 amit.gupta 140
		model.addAttribute("webApiRoot", webApiRoot);
23923 amit.gupta 141
		// LOGGER.info("loginDetails.getFofoId()"+loginDetails.getFofoId());
142
		// inventoryService.prebookingAvailabilitySendMessage(loginDetails.getFofoId());
21615 kshitij.so 143
		return "dashboard";
144
	}
23923 amit.gupta 145
 
22354 ashik.ali 146
	@RequestMapping(value = "/contactUs", method = RequestMethod.GET)
23923 amit.gupta 147
	public String contactUs(HttpServletRequest request, Model model) throws Throwable {
22354 ashik.ali 148
		model.addAttribute("appContextPath", request.getContextPath());
149
		return "contact-us";
150
	}
23923 amit.gupta 151
 
152
	/*
153
	 * private List<PaymentOption> getPaymentOptions(int fofoId){ List<Integer>
154
	 * paymentOptionIds =
155
	 * fofoPartnerPaymentOptionRepository.selectPaymentOptionIdsByFofoId(fofoId);
156
	 * if(paymentOptionIds.isEmpty()){ return new ArrayList<>(); } return
157
	 * paymentOptionRepository.selectByIds(new HashSet<>(paymentOptionIds)); }
158
	 */
159
 
21615 kshitij.so 160
}