Subversion Repositories SmartDukaan

Rev

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