Subversion Repositories SmartDukaan

Rev

Rev 28493 | Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
28300 tejbeer 1
package com.spice.profitmandi.web.controller;
2
 
3
import java.time.LocalDate;
4
import java.time.LocalDateTime;
5
import java.util.ArrayList;
6
import java.util.HashMap;
7
import java.util.List;
8
import java.util.Map;
9
import java.util.stream.Collectors;
10
 
11
import javax.servlet.http.HttpServletRequest;
12
 
13
import org.apache.logging.log4j.LogManager;
14
import org.apache.logging.log4j.Logger;
15
import org.springframework.beans.factory.annotation.Autowired;
16
import org.springframework.stereotype.Controller;
17
import org.springframework.transaction.annotation.Transactional;
18
import org.springframework.ui.Model;
19
import org.springframework.web.bind.annotation.RequestMapping;
20
import org.springframework.web.bind.annotation.RequestMethod;
21
import org.springframework.web.bind.annotation.RequestParam;
22
 
23
import com.spice.profitmandi.dao.repository.transaction.SellerRepository;
24
import com.spice.profitmandi.dao.repository.transaction.SellerWarehouseRepository;
25
import com.spice.profitmandi.dao.repository.transaction.WareHouseAddressMappingRepository;
26
import com.spice.profitmandi.dao.repository.transaction.WareHouseAddressMasterRepository;
27
import com.spice.profitmandi.web.util.MVCResponseSender;
28
import com.spice.profitmandi.dao.entity.inventory.State;
29
import com.spice.profitmandi.dao.entity.transaction.*;
30
 
31
@Controller
32
@Transactional(rollbackFor = Throwable.class)
33
public class SellerController {
34
 
35
	@Autowired
36
	private SellerRepository sellerRepository;
37
 
38
	@Autowired
39
	WareHouseAddressMasterRepository wareHouseAddressMasterRepository;
40
 
41
	@Autowired
42
	private SellerWarehouseRepository sellerWarehouseRepository;
43
 
44
	@Autowired
45
	private WareHouseAddressMappingRepository wareHouseAddressMappingRepository;
46
 
47
	@Autowired
48
	private MVCResponseSender mvcResponseSender;
49
 
50
	private static final Logger LOGGER = LogManager.getLogger(SellerController.class);
51
 
52
	@RequestMapping(value = "/createNewWarehouse", method = RequestMethod.POST)
53
	public String getViewOurSales(HttpServletRequest request,
54
			@RequestParam(name = "address", required = true, defaultValue = "0") int address,
55
			@RequestParam(name = "prefix", required = true, defaultValue = "0") String prefix,
56
			@RequestParam(name = "sellerId", required = true, defaultValue = "0") int sellerId,
57
			@RequestParam(name = "warehouseId", required = true, defaultValue = "0") int warehouseId, Model model)
58
 
59
			throws Exception {
60
 
61
		LOGGER.info("warehouseId" + warehouseId);
62
		SellerWarehouse sellerWarehouse = new SellerWarehouse();
63
		sellerWarehouse.setActive(true);
64
		sellerWarehouse.setWarehouseId(warehouseId);
65
		sellerWarehouse.setChallanSequence(0);
66
		sellerWarehouse.setCreateTimestamp(LocalDateTime.now());
67
		sellerWarehouse.setInvoiceSequence(0);
68
		sellerWarehouse.setPrefix(prefix);
69
		sellerWarehouse.setOrderType(0);
70
		sellerWarehouse.setSellerId(sellerId);
71
		sellerWarehouseRepository.persist(sellerWarehouse);
72
 
73
		WarehouseAddressMapping warehouseAddressMapping = new WarehouseAddressMapping();
74
		warehouseAddressMapping.setAddressId(address);
75
		warehouseAddressMapping.setCreated(LocalDateTime.now());
76
		warehouseAddressMapping.setUpdated(null);
77
		warehouseAddressMapping.setWarehouseId(warehouseId);
78
		warehouseAddressMapping.setAddressId(address);
79
		wareHouseAddressMappingRepository.persist(warehouseAddressMapping);
80
 
81
		return "seller";
82
 
83
	}
84
 
85
	@RequestMapping(value = "/createNewSeller", method = RequestMethod.POST)
86
	public String getNewSeller(HttpServletRequest request,
87
			@RequestParam(name = "label", required = true, defaultValue = "0") String label,
88
			@RequestParam(name = "address", required = true, defaultValue = "0") String address,
89
			@RequestParam(name = "gst", required = true, defaultValue = "0") String gst,
90
			@RequestParam(name = "state", required = true, defaultValue = "0") int state, Model model)
91
			throws Exception {
92
 
93
		Seller seller = new Seller();
94
 
95
		seller.setAddress(address);
96
		seller.setLabel(label);
97
		seller.setGstin(gst);
98
		seller.setStateId(state);
99
		seller.setOrganisationId(7);
100
		sellerRepository.persist(seller);
101
 
102
		return "seller";
103
 
104
	}
105
 
106
	@RequestMapping(value = "/createNewAddress", method = RequestMethod.POST)
107
	public String getNewSeller(HttpServletRequest request,
108
			@RequestParam(name = "newAddress", required = true, defaultValue = "0") String address,
109
			@RequestParam(name = "pin", required = true, defaultValue = "0") String pin,
110
			@RequestParam(name = "stateId", required = true, defaultValue = "0") int stateId, Model model)
111
			throws Exception {
112
 
113
		WarehouseAddressMaster wham = new WarehouseAddressMaster();
114
		wham.setAddress(address);
115
		wham.setPin(pin);
116
		wham.setStateId(stateId);
117
		wham.setContacNumber("18002700273");
118
		wham.setContactPerson("Customer Care");
119
		wham.setCreated(LocalDateTime.now());
120
		wareHouseAddressMasterRepository.persist(wham);
121
 
122
		return "seller";
123
 
124
	}
125
 
126
	@RequestMapping(value = "/getAllSeller", method = RequestMethod.GET)
127
	public String getAllSeller(HttpServletRequest request, Model model) throws Exception {
128
 
129
		List<Seller> seller = sellerRepository.selectAllSeller();
130
 
131
		List<WarehouseAddressMaster> warehouseAddressMaster = sellerRepository.selectAllWarehouseAddressMaster();
132
 
133
		List<Seller> sellerLabel = new ArrayList<Seller>();
134
 
135
		for (Seller sellers : seller) {
136
 
137
			if (sellers.getId() == 10 || sellers.getId() == 13 || sellers.getId() == 16 || sellers.getId() == 17)
138
 
139
			{
140
				sellerLabel.add(sellers);
141
 
142
			}
143
		}
144
		List<State> state = sellerRepository.selectByIdStateMaster();
145
		LOGGER.info("statemaster" + state);
146
		model.addAttribute("state", state);
147
 
148
		LOGGER.info("sellerLabel" + sellerLabel);
149
		LOGGER.info("warehouseAddressMaster" + warehouseAddressMaster);
150
		model.addAttribute("sellerLabel", sellerLabel);
151
		model.addAttribute("warehouseAddressMaster", warehouseAddressMaster);
152
 
153
		return "seller";
154
	}
155
 
156
	@RequestMapping(value = "/getSellerWareHouse", method = RequestMethod.GET)
157
	public String getSellerWareHouse(HttpServletRequest request,
158
			@RequestParam(name = "sellerId", required = true, defaultValue = "0") int sellerId, Model model)
159
			throws Exception {
160
 
161
		List<SellerWarehouse> sellerWarehouse = sellerWarehouseRepository.selectBySellerId(sellerId);
162
 
163
		List<WarehouseAddressMaster> allWarehouseAddressMaster = sellerRepository.selectAllWarehouseAddressMaster();
164
 
165
		Map<Integer, Seller> seller = sellerRepository.selectById(sellerId).stream()
166
				.collect(Collectors.toMap(x -> x.getId(), x -> x));
167
 
168
		LOGGER.info("seller" + seller);
169
 
170
		List<Integer> sellerwarehouseID = sellerWarehouse.stream().map(x -> x.getWarehouseId())
171
				.collect(Collectors.toList());
172
 
173
		List<WarehouseAddressMapping> warehouseAddressMapping = wareHouseAddressMappingRepository
174
				.selectAllByIds(sellerwarehouseID);
175
		Map<Integer, WarehouseAddressMaster> wam = mapWarhouseIdAndAddress(warehouseAddressMapping);
176
 
177
		model.addAttribute("allWhm", allWarehouseAddressMaster);
178
 
179
		model.addAttribute("wam", wam);
180
		model.addAttribute("seller", seller);
181
		model.addAttribute("sellerId", sellerId);
182
		model.addAttribute("sellerWarehouse", sellerWarehouse);
183
		return "seller-warehouse-container";
184
	}
185
 
186
	private Map<Integer, WarehouseAddressMaster> mapWarhouseIdAndAddress(
187
			List<WarehouseAddressMapping> warehouseAddressMapping) {
188
		Map<Integer, WarehouseAddressMaster> wam = new HashMap<>();
189
		for (WarehouseAddressMapping wa : warehouseAddressMapping) {
190
			WarehouseAddressMaster wm = wareHouseAddressMasterRepository.selectByAddressId(wa.getAddressId());
191
			wam.put(wa.getWarehouseId(), wm);
192
		}
193
 
194
		return wam;
195
	}
196
 
197
}