Subversion Repositories SmartDukaan

Rev

Rev 28501 | Rev 28989 | Go to most recent revision | Details | Compare with Previous | 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.LocalDateTime;
4
import java.util.ArrayList;
5
import java.util.HashMap;
6
import java.util.List;
7
import java.util.Map;
8
import java.util.stream.Collectors;
9
 
10
import javax.servlet.http.HttpServletRequest;
11
 
12
import org.apache.logging.log4j.LogManager;
13
import org.apache.logging.log4j.Logger;
14
import org.springframework.beans.factory.annotation.Autowired;
15
import org.springframework.stereotype.Controller;
16
import org.springframework.transaction.annotation.Transactional;
17
import org.springframework.ui.Model;
18
import org.springframework.web.bind.annotation.RequestMapping;
19
import org.springframework.web.bind.annotation.RequestMethod;
20
import org.springframework.web.bind.annotation.RequestParam;
21
 
28499 amit.gupta 22
import com.spice.profitmandi.dao.entity.inventory.State;
23
import com.spice.profitmandi.dao.entity.inventory.Warehouse;
24
import com.spice.profitmandi.dao.entity.transaction.Seller;
25
import com.spice.profitmandi.dao.entity.transaction.SellerWarehouse;
26
import com.spice.profitmandi.dao.entity.transaction.WarehouseAddressMapping;
27
import com.spice.profitmandi.dao.entity.transaction.WarehouseAddressMaster;
28
import com.spice.profitmandi.dao.enumuration.inventory.InventoryType;
29
import com.spice.profitmandi.dao.enumuration.inventory.WarehouseType;
30
import com.spice.profitmandi.dao.repository.inventory.StateRepository;
28493 tejbeer 31
import com.spice.profitmandi.dao.repository.inventory.WarehouseRepository;
28300 tejbeer 32
import com.spice.profitmandi.dao.repository.transaction.SellerRepository;
33
import com.spice.profitmandi.dao.repository.transaction.SellerWarehouseRepository;
34
import com.spice.profitmandi.dao.repository.transaction.WareHouseAddressMappingRepository;
35
import com.spice.profitmandi.dao.repository.transaction.WareHouseAddressMasterRepository;
36
 
28499 amit.gupta 37
 
28300 tejbeer 38
@Controller
39
@Transactional(rollbackFor = Throwable.class)
40
public class SellerController {
41
 
42
	@Autowired
43
	private SellerRepository sellerRepository;
28822 amit.gupta 44
 
28300 tejbeer 45
	@Autowired
28499 amit.gupta 46
	private StateRepository stateRepository;
47
 
48
 
49
	@Autowired
28493 tejbeer 50
	WarehouseRepository warehouseRepository;
51
 
52
	@Autowired
28300 tejbeer 53
	WareHouseAddressMasterRepository wareHouseAddressMasterRepository;
54
 
55
	@Autowired
56
	private SellerWarehouseRepository sellerWarehouseRepository;
57
 
58
	@Autowired
59
	private WareHouseAddressMappingRepository wareHouseAddressMappingRepository;
60
 
61
	private static final Logger LOGGER = LogManager.getLogger(SellerController.class);
62
 
63
	@RequestMapping(value = "/createNewWarehouse", method = RequestMethod.POST)
64
	public String getViewOurSales(HttpServletRequest request,
65
			@RequestParam(name = "address", required = true, defaultValue = "0") int address,
66
			@RequestParam(name = "prefix", required = true, defaultValue = "0") String prefix,
67
			@RequestParam(name = "sellerId", required = true, defaultValue = "0") int sellerId,
28493 tejbeer 68
			@RequestParam(name = "warehouseName", required = true, defaultValue = "0") String warehouseName,
28501 amit.gupta 69
			@RequestParam(name = "pin", required = true, defaultValue = "0") String pinCode, Model model)
28300 tejbeer 70
 
71
			throws Exception {
72
 
28493 tejbeer 73
		Seller seller = sellerRepository.sellerSelectById(sellerId);
28501 amit.gupta 74
		WarehouseAddressMaster wam = wareHouseAddressMasterRepository.selectByAddressId(address);
28493 tejbeer 75
 
76
		Warehouse warehouse = new Warehouse();
77
		warehouse.setDisplayName(warehouseName);
28501 amit.gupta 78
		warehouse.setLocation(wam.getAddress());
28493 tejbeer 79
		warehouse.setGstin(seller.getGstin());
80
		warehouse.setStateId(seller.getStateId());
81
		warehouse.setStatus(3);
82
		warehouse.setAddedOn(LocalDateTime.now());
83
		warehouse.setLastCheckedOn(LocalDateTime.now());
84
		warehouse.setTinNumber(null);
85
    	warehouse.setPincode(pinCode);
86
		warehouse.setLogisticsLocation(0);
87
		warehouse.setVendor(1);
28822 amit.gupta 88
		warehouse.setBillingType(0);
28493 tejbeer 89
		warehouse.setInventoryType(InventoryType.GOOD);
28822 amit.gupta 90
		warehouse.setWarehouseType(WarehouseType.OURS);
28493 tejbeer 91
		warehouse.setIsAvailabilityMonitored(1);
92
		warehouse.setSource(0);
93
		warehouseRepository.persist(warehouse);
28501 amit.gupta 94
		warehouse.setBillingWarehouseId(warehouse.getId());
95
		warehouse.setShippingWarehouseId(warehouse.getId());
28493 tejbeer 96
 
97
		LOGGER.info("warehouseId" + warehouse.getId());
98
 
28300 tejbeer 99
		SellerWarehouse sellerWarehouse = new SellerWarehouse();
100
		sellerWarehouse.setActive(true);
28493 tejbeer 101
		sellerWarehouse.setWarehouseId(warehouse.getId());
28300 tejbeer 102
		sellerWarehouse.setChallanSequence(0);
103
		sellerWarehouse.setCreateTimestamp(LocalDateTime.now());
104
		sellerWarehouse.setInvoiceSequence(0);
105
		sellerWarehouse.setPrefix(prefix);
106
		sellerWarehouse.setOrderType(0);
107
		sellerWarehouse.setSellerId(sellerId);
108
		sellerWarehouseRepository.persist(sellerWarehouse);
109
 
110
		WarehouseAddressMapping warehouseAddressMapping = new WarehouseAddressMapping();
111
		warehouseAddressMapping.setAddressId(address);
112
		warehouseAddressMapping.setCreated(LocalDateTime.now());
113
		warehouseAddressMapping.setUpdated(null);
28493 tejbeer 114
		warehouseAddressMapping.setWarehouseId(warehouse.getId());
28300 tejbeer 115
		warehouseAddressMapping.setAddressId(address);
116
		wareHouseAddressMappingRepository.persist(warehouseAddressMapping);
117
 
28493 tejbeer 118
 
28300 tejbeer 119
		return "seller";
120
 
121
	}
122
 
123
	@RequestMapping(value = "/createNewSeller", method = RequestMethod.POST)
124
	public String getNewSeller(HttpServletRequest request,
125
			@RequestParam(name = "label", required = true, defaultValue = "0") String label,
126
			@RequestParam(name = "address", required = true, defaultValue = "0") String address,
127
			@RequestParam(name = "gst", required = true, defaultValue = "0") String gst,
128
			@RequestParam(name = "state", required = true, defaultValue = "0") int state, Model model)
129
			throws Exception {
130
 
131
		Seller seller = new Seller();
132
 
133
		seller.setAddress(address);
134
		seller.setLabel(label);
135
		seller.setGstin(gst);
136
		seller.setStateId(state);
137
		seller.setOrganisationId(7);
138
		sellerRepository.persist(seller);
139
 
140
		return "seller";
141
 
142
	}
143
 
144
	@RequestMapping(value = "/createNewAddress", method = RequestMethod.POST)
145
	public String getNewSeller(HttpServletRequest request,
146
			@RequestParam(name = "newAddress", required = true, defaultValue = "0") String address,
147
			@RequestParam(name = "pin", required = true, defaultValue = "0") String pin,
148
			@RequestParam(name = "stateId", required = true, defaultValue = "0") int stateId, Model model)
149
			throws Exception {
150
 
151
		WarehouseAddressMaster wham = new WarehouseAddressMaster();
152
		wham.setAddress(address);
153
		wham.setPin(pin);
154
		wham.setStateId(stateId);
155
		wham.setContacNumber("18002700273");
156
		wham.setContactPerson("Customer Care");
157
		wham.setCreated(LocalDateTime.now());
158
		wareHouseAddressMasterRepository.persist(wham);
159
 
160
		return "seller";
161
 
162
	}
163
 
164
	@RequestMapping(value = "/getAllSeller", method = RequestMethod.GET)
165
	public String getAllSeller(HttpServletRequest request, Model model) throws Exception {
166
 
28499 amit.gupta 167
		List<Seller> sellers = sellerRepository.selectAllSeller().stream().filter(x->x.getOrganisationId()==7).collect(Collectors.toList());
28300 tejbeer 168
 
169
		List<WarehouseAddressMaster> warehouseAddressMaster = sellerRepository.selectAllWarehouseAddressMaster();
170
 
28499 amit.gupta 171
		List<State> state = stateRepository.selectAll();
28300 tejbeer 172
		LOGGER.info("statemaster" + state);
173
		model.addAttribute("state", state);
174
 
28499 amit.gupta 175
		LOGGER.info("sellerLabel" + sellers);
28300 tejbeer 176
		LOGGER.info("warehouseAddressMaster" + warehouseAddressMaster);
28499 amit.gupta 177
		model.addAttribute("sellerLabel", sellers);
28300 tejbeer 178
		model.addAttribute("warehouseAddressMaster", warehouseAddressMaster);
179
 
180
		return "seller";
181
	}
182
 
183
	@RequestMapping(value = "/getSellerWareHouse", method = RequestMethod.GET)
184
	public String getSellerWareHouse(HttpServletRequest request,
185
			@RequestParam(name = "sellerId", required = true, defaultValue = "0") int sellerId, Model model)
186
			throws Exception {
187
 
188
		List<SellerWarehouse> sellerWarehouse = sellerWarehouseRepository.selectBySellerId(sellerId);
189
 
190
		List<WarehouseAddressMaster> allWarehouseAddressMaster = sellerRepository.selectAllWarehouseAddressMaster();
191
 
28499 amit.gupta 192
		Map<Integer, Seller> sellersMap = sellerRepository.selectById(sellerId).stream()
28300 tejbeer 193
				.collect(Collectors.toMap(x -> x.getId(), x -> x));
194
 
195
 
28500 amit.gupta 196
		List<Integer> sellerwarehouseIds = sellerWarehouse.stream().map(x -> x.getWarehouseId())
28300 tejbeer 197
				.collect(Collectors.toList());
198
 
28500 amit.gupta 199
		Map<Integer, WarehouseAddressMaster> wam = null;
200
		if(sellerwarehouseIds.size() > 0) {
201
			List<WarehouseAddressMapping> warehouseAddressMapping = wareHouseAddressMappingRepository
202
					.selectAllByIds(sellerwarehouseIds);
203
			wam = mapWarhouseIdAndAddress(warehouseAddressMapping);
204
		} else {
205
			wam = new HashMap<>();
206
		}
28300 tejbeer 207
 
208
		model.addAttribute("allWhm", allWarehouseAddressMaster);
209
 
210
		model.addAttribute("wam", wam);
28499 amit.gupta 211
		model.addAttribute("seller", sellersMap);
28300 tejbeer 212
		model.addAttribute("sellerId", sellerId);
213
		model.addAttribute("sellerWarehouse", sellerWarehouse);
214
		return "seller-warehouse-container";
215
	}
216
 
217
	private Map<Integer, WarehouseAddressMaster> mapWarhouseIdAndAddress(
218
			List<WarehouseAddressMapping> warehouseAddressMapping) {
219
		Map<Integer, WarehouseAddressMaster> wam = new HashMap<>();
220
		for (WarehouseAddressMapping wa : warehouseAddressMapping) {
221
			WarehouseAddressMaster wm = wareHouseAddressMasterRepository.selectByAddressId(wa.getAddressId());
222
			wam.put(wa.getWarehouseId(), wm);
223
		}
224
 
225
		return wam;
226
	}
227
 
228
}