Subversion Repositories SmartDukaan

Rev

Rev 32539 | Rev 34329 | 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
 
32539 amit.gupta 3
import com.spice.profitmandi.common.model.ProfitMandiConstants;
28493 tejbeer 4
import com.spice.profitmandi.dao.entity.inventory.State;
5
import com.spice.profitmandi.dao.entity.inventory.Vendor;
31238 amit.gupta 6
import com.spice.profitmandi.dao.entity.transaction.Seller;
7
import com.spice.profitmandi.dao.entity.transaction.SellerWarehouse;
8
import com.spice.profitmandi.dao.entity.transaction.WarehouseAddressMapping;
9
import com.spice.profitmandi.dao.entity.transaction.WarehouseAddressMaster;
28300 tejbeer 10
import com.spice.profitmandi.dao.entity.warehouse.Supplier;
28493 tejbeer 11
import com.spice.profitmandi.dao.enumuration.inventory.InventoryType;
12
import com.spice.profitmandi.dao.enumuration.inventory.WarehouseType;
13
import com.spice.profitmandi.dao.hrms.CreateNewSupplier;
14
import com.spice.profitmandi.dao.hrms.WarehouseIdPrefixModel;
15
import com.spice.profitmandi.dao.repository.inventory.StateRepository;
16
import com.spice.profitmandi.dao.repository.inventory.VendorRepository;
17
import com.spice.profitmandi.dao.repository.transaction.SellerRepository;
18
import com.spice.profitmandi.dao.repository.transaction.SellerWarehouseRepository;
32383 amit.gupta 19
import com.spice.profitmandi.dao.repository.transaction.WarehouseAddressMappingRepository;
20
import com.spice.profitmandi.dao.repository.transaction.WarehouseAddressMasterRepository;
28300 tejbeer 21
import com.spice.profitmandi.dao.repository.warehouse.SupplierRepository;
28493 tejbeer 22
import com.spice.profitmandi.service.warehouse.WarehouseService;
28300 tejbeer 23
import com.spice.profitmandi.web.util.MVCResponseSender;
31238 amit.gupta 24
import org.apache.logging.log4j.LogManager;
25
import org.apache.logging.log4j.Logger;
26
import org.springframework.beans.factory.annotation.Autowired;
27
import org.springframework.stereotype.Controller;
28
import org.springframework.transaction.annotation.Transactional;
29
import org.springframework.ui.Model;
32565 tejbeer 30
import org.springframework.web.bind.annotation.*;
28300 tejbeer 31
 
31238 amit.gupta 32
import javax.servlet.http.HttpServletRequest;
33
import java.util.HashMap;
34
import java.util.List;
35
import java.util.Map;
36
import java.util.stream.Collectors;
28493 tejbeer 37
 
28300 tejbeer 38
@Controller
39
@Transactional(rollbackFor = Throwable.class)
40
public class SupplierController {
28493 tejbeer 41
 
32075 tejbeer 42
    @Autowired
43
    private SupplierRepository supplierRepository;
28300 tejbeer 44
 
32075 tejbeer 45
    @Autowired
46
    private MVCResponseSender mvcResponseSender;
28300 tejbeer 47
 
28493 tejbeer 48
 
32075 tejbeer 49
    @Autowired
50
    private SellerRepository sellerRepository;
28493 tejbeer 51
 
32075 tejbeer 52
    @Autowired
53
    private WarehouseService warehouseService;
28493 tejbeer 54
 
32075 tejbeer 55
    @Autowired
56
    private SellerWarehouseRepository sellerWarehouseRepository;
28493 tejbeer 57
 
32075 tejbeer 58
    @Autowired
59
    private VendorRepository vendorRepository;
28493 tejbeer 60
 
32075 tejbeer 61
    @Autowired
32383 amit.gupta 62
    private WarehouseAddressMappingRepository warehouseAddressMappingRepository;
28493 tejbeer 63
 
32075 tejbeer 64
    @Autowired
32383 amit.gupta 65
    private WarehouseAddressMasterRepository warehouseAddressMasterRepository;
28493 tejbeer 66
 
32075 tejbeer 67
    @Autowired
68
    private StateRepository stateRepository;
28493 tejbeer 69
 
32075 tejbeer 70
    private static final Logger LOGGER = LogManager.getLogger(SupplierController.class);
28493 tejbeer 71
 
32075 tejbeer 72
    @RequestMapping(value = "/getAllSupplier", method = RequestMethod.GET)
73
    public String getShowSupplier(HttpServletRequest request, Model model) throws Exception {
28493 tejbeer 74
 
32075 tejbeer 75
        List<Supplier> supplierAcvtives = supplierRepository.selectByStatus(true);
28493 tejbeer 76
 
32075 tejbeer 77
        List<SellerWarehouse> sellerWarehouses = sellerWarehouseRepository.selectAll();
78
        List<Integer> sellerwarehouseIds = sellerWarehouses.stream().map(x -> x.getWarehouseId()).collect(Collectors.toList());
79
        LOGGER.info("sellerWarehouses" + sellerWarehouses);
80
        Map<Integer, WarehouseIdPrefixModel> warehouseIdAndState = new HashMap<>();
28493 tejbeer 81
 
32075 tejbeer 82
        for (SellerWarehouse sw : sellerWarehouses) {
28493 tejbeer 83
 
32383 amit.gupta 84
            WarehouseAddressMapping warehouseAddressMapping = warehouseAddressMappingRepository.selectByWarehouseId(sw.getWarehouseId());
32075 tejbeer 85
            LOGGER.info("warehouseAddressMapping" + warehouseAddressMapping);
86
            if (warehouseAddressMapping != null) {
32383 amit.gupta 87
                WarehouseAddressMaster WarehouseAddressMaster = warehouseAddressMasterRepository.selectById(warehouseAddressMapping.getAddressId());
32075 tejbeer 88
                LOGGER.info("warehouseAddressMappingAddreesId" + warehouseAddressMapping.getAddressId());
89
                LOGGER.info("WarehouseAddressMaster" + WarehouseAddressMaster);
90
                State state = stateRepository.selectById(WarehouseAddressMaster.getStateId());
91
                WarehouseIdPrefixModel wp = new WarehouseIdPrefixModel();
92
                wp.setPrefix(sw.getPrefix());
93
                wp.setStateName(state.getName());
94
                warehouseIdAndState.put(sw.getWarehouseId(), wp);
95
                LOGGER.info("state" + state);
96
            }
97
        }
98
        LOGGER.info("warehouseIdAndState" + warehouseIdAndState);
99
        model.addAttribute("warehouseIdAndState", warehouseIdAndState);
28493 tejbeer 100
 
32075 tejbeer 101
        List<State> state = stateRepository.selectAll();
28493 tejbeer 102
 
32075 tejbeer 103
        model.addAttribute("suppliers", supplierAcvtives);
104
        model.addAttribute("state", state);
28300 tejbeer 105
 
32075 tejbeer 106
        return "supplier";
28493 tejbeer 107
 
32075 tejbeer 108
    }
28493 tejbeer 109
 
32075 tejbeer 110
    @RequestMapping(value = "/getAllInActiveSupplier", method = RequestMethod.GET)
111
    public String getShowInActiveSupplier(HttpServletRequest request, Model model) throws Exception {
28493 tejbeer 112
 
32075 tejbeer 113
        List<Supplier> supplierInactives = supplierRepository.selectByStatus(false);
28493 tejbeer 114
 
32075 tejbeer 115
        model.addAttribute("supplierInactives", supplierInactives);
28493 tejbeer 116
 
32075 tejbeer 117
        LOGGER.info("supplierInactives" + supplierInactives);
28300 tejbeer 118
 
32075 tejbeer 119
        return "supplier-in-active";
28300 tejbeer 120
 
32075 tejbeer 121
    }
28493 tejbeer 122
 
32565 tejbeer 123
    /*@RequestMapping(value = "/supplier/edit/{supplierId}", method = RequestMethod.GET)
124
    public String getEditSupplier(HttpServletRequest request, Model model, @PathVariable int supplierId) throws Exception {
125
        Supplier supplier  = supplierRepository.selectById(supplierId);
126
        List<SellerWarehouse> sellerWarehouses = sellerWarehouseRepository.selectAll();
127
        List<Integer> sellerwarehouseIds = sellerWarehouses.stream().map(x -> x.getWarehouseId()).collect(Collectors.toList());
128
        LOGGER.info("sellerWarehouses" + sellerWarehouses);
129
        Map<Integer, WarehouseIdPrefixModel> warehouseIdAndState = new HashMap<>();
130
 
131
        for (SellerWarehouse sw : sellerWarehouses) {
132
 
133
            WarehouseAddressMapping warehouseAddressMapping = warehouseAddressMappingRepository.selectByWarehouseId(sw.getWarehouseId());
134
            LOGGER.info("warehouseAddressMapping" + warehouseAddressMapping);
135
            if (warehouseAddressMapping != null) {
136
                WarehouseAddressMaster WarehouseAddressMaster = warehouseAddressMasterRepository.selectById(warehouseAddressMapping.getAddressId());
137
                LOGGER.info("warehouseAddressMappingAddreesId" + warehouseAddressMapping.getAddressId());
138
                LOGGER.info("WarehouseAddressMaster" + WarehouseAddressMaster);
139
                State state = stateRepository.selectById(WarehouseAddressMaster.getStateId());
140
                WarehouseIdPrefixModel wp = new WarehouseIdPrefixModel();
141
                wp.setPrefix(sw.getPrefix());
142
                wp.setStateName(state.getName());
143
                warehouseIdAndState.put(sw.getWarehouseId(), wp);
144
                LOGGER.info("state" + state);
145
            }
146
        }
147
        LOGGER.info("warehouseIdAndState" + warehouseIdAndState);
148
        model.addAttribute("warehouseIdAndState", warehouseIdAndState);
149
 
150
        List<State> state = stateRepository.selectAll();
151
 
152
        model.addAttribute("state", state);
153
        model.addAttribute("warehouseMap", ProfitMandiConstants.WAREHOUSE_MAP);
154
        model.addAttribute("supplier", supplier);
155
        return "edit-supplier";
156
    }
157
*/
158
 
32075 tejbeer 159
    @RequestMapping(value = "/getCreateNewSupplier", method = RequestMethod.GET)
160
    public String getCreateNewSupplier(HttpServletRequest request, Model model) throws Exception {
32539 amit.gupta 161
        List<SellerWarehouse> sellerWarehouses = sellerWarehouseRepository.selectAll();
162
        Map<Integer, String> warehouseMap = ProfitMandiConstants.WAREHOUSE_MAP;
163
        sellerWarehouses = sellerWarehouses.stream().filter(x -> warehouseMap.containsKey(x.getWarehouseId())).collect(Collectors.toList());
28493 tejbeer 164
 
32075 tejbeer 165
        Map<Integer, WarehouseIdPrefixModel> warehouseIdAndState = new HashMap<>();
28493 tejbeer 166
 
32075 tejbeer 167
        for (SellerWarehouse sw : sellerWarehouses) {
32383 amit.gupta 168
            WarehouseAddressMapping warehouseAddressMapping = warehouseAddressMappingRepository.selectByWarehouseId(sw.getWarehouseId());
32075 tejbeer 169
            LOGGER.info("warehouseAddressMapping" + warehouseAddressMapping);
170
            if (warehouseAddressMapping != null) {
32383 amit.gupta 171
                WarehouseAddressMaster WarehouseAddressMaster = warehouseAddressMasterRepository.selectById(warehouseAddressMapping.getAddressId());
32075 tejbeer 172
                LOGGER.info("warehouseAddressMappingAddreesId" + warehouseAddressMapping.getAddressId());
173
                LOGGER.info("WarehouseAddressMaster" + WarehouseAddressMaster);
174
                State state = stateRepository.selectById(WarehouseAddressMaster.getStateId());
175
                WarehouseIdPrefixModel wp = new WarehouseIdPrefixModel();
176
                wp.setPrefix(sw.getPrefix());
177
                wp.setStateName(state.getName());
178
                warehouseIdAndState.put(sw.getWarehouseId(), wp);
179
                LOGGER.info("state" + state);
180
            }
181
        }
182
        LOGGER.info("warehouseIdAndState" + warehouseIdAndState);
183
        model.addAttribute("warehouseIdAndState", warehouseIdAndState);
28493 tejbeer 184
 
32075 tejbeer 185
        List<State> state = stateRepository.selectAll();
28493 tejbeer 186
 
32075 tejbeer 187
        model.addAttribute("state", state);
32565 tejbeer 188
        model.addAttribute("warehouseMap", ProfitMandiConstants.WAREHOUSE_MAP);
28493 tejbeer 189
 
32075 tejbeer 190
        return "new-supplier";
191
    }
28493 tejbeer 192
 
32075 tejbeer 193
    @RequestMapping(value = "/setStatusInActive", method = RequestMethod.POST)
194
    public String setInActiveSupplier(HttpServletRequest request, @RequestParam(name = "id", required = true, defaultValue = "0") int id, Model model) throws Exception {
28493 tejbeer 195
 
32075 tejbeer 196
        Supplier supplier = supplierRepository.selectById(id);
28493 tejbeer 197
 
32075 tejbeer 198
        supplier.setStatus(false);
28493 tejbeer 199
 
32075 tejbeer 200
        model.addAttribute("response1", mvcResponseSender.createResponseString(true));
28493 tejbeer 201
 
32075 tejbeer 202
        return "response";
203
    }
28493 tejbeer 204
 
32075 tejbeer 205
    @RequestMapping(value = "/setStatusActive", method = RequestMethod.POST)
206
    public String setActiveSupplier(HttpServletRequest request, @RequestParam(name = "id", required = true, defaultValue = "0") int id, Model model) throws Exception {
28493 tejbeer 207
 
32075 tejbeer 208
        Supplier supplier = supplierRepository.selectById(id);
28493 tejbeer 209
 
32075 tejbeer 210
        supplier.setStatus(true);
28493 tejbeer 211
 
32075 tejbeer 212
        model.addAttribute("response1", mvcResponseSender.createResponseString(true));
28493 tejbeer 213
 
32075 tejbeer 214
        return "response";
28493 tejbeer 215
 
32075 tejbeer 216
    }
28493 tejbeer 217
 
32075 tejbeer 218
    @RequestMapping(value = "/submitNewSupplier", method = RequestMethod.POST)
219
    public String getCreateNewSupplier(HttpServletRequest request, @RequestBody CreateNewSupplier createNewSupplier, Model model) throws Exception {
28493 tejbeer 220
 
32075 tejbeer 221
        Supplier supplier = new Supplier();
28493 tejbeer 222
 
32075 tejbeer 223
        supplier.setName(createNewSupplier.getName());
224
        supplier.setCommunicationAddress(createNewSupplier.getCommunicationAddress());
225
        supplier.setContactEmail(createNewSupplier.getContactEmail());
226
        supplier.setContactFax(createNewSupplier.getContactFax());
227
        supplier.setContactName(createNewSupplier.getContactPerson());
32565 tejbeer 228
 
229
        supplier.setContactPhone(createNewSupplier.getContactPhone());
32075 tejbeer 230
        supplier.setGstin(createNewSupplier.getGst());
231
        supplier.setHeadDesignation(createNewSupplier.getHeadDesign());
232
        supplier.setHeadEmail(createNewSupplier.getHeadEmail());
233
        supplier.setHeadName(createNewSupplier.getHeadName());
234
        supplier.setPan(createNewSupplier.getPan());
235
        supplier.setPhone(createNewSupplier.getPhone());
236
        supplier.setPoValidityLimit(createNewSupplier.getpOValidityLimit());
237
        supplier.setRegisteredAddress(createNewSupplier.getRegisteredAddress());
238
        supplier.setStateId(createNewSupplier.getState());
32565 tejbeer 239
        supplier.setInternalWarehouseId(createNewSupplier.getInternalWarehouseId());
32075 tejbeer 240
        supplierRepository.persist(supplier);
28493 tejbeer 241
 
32075 tejbeer 242
        Vendor vendor = new Vendor();
243
        vendor.setName(supplier.getName());
244
        vendor.setId(supplier.getId());
245
        vendorRepository.persist(vendor);
246
        LOGGER.info("supplierId" + supplier.getId());
247
        LOGGER.info("vendorId" + vendor.getId());
28493 tejbeer 248
 
32383 amit.gupta 249
        List<WarehouseAddressMapping> warehouseAddressMappings = warehouseAddressMappingRepository.selectAllByIds(createNewSupplier.getWarehouseId());
32075 tejbeer 250
        LOGGER.info("warehouseAddressMappings" + warehouseAddressMappings);
28493 tejbeer 251
 
32075 tejbeer 252
        for (WarehouseAddressMapping wamp : warehouseAddressMappings) {
253
            List<SellerWarehouse> sellerWarehouse = sellerWarehouseRepository.selectBywarehouseId(wamp.getWarehouseId());
254
            for (SellerWarehouse sw : sellerWarehouse) {
255
                Seller seller = sellerRepository.selectById(sw.getSellerId());
28493 tejbeer 256
 
32383 amit.gupta 257
                WarehouseAddressMaster wam = warehouseAddressMasterRepository.selectById(wamp.getAddressId());
28493 tejbeer 258
 
32075 tejbeer 259
                // GOOD - WarehouseType.OURS, InventoryType.GOOD
260
                warehouseService.createVendorWarehouse(WarehouseType.OURS, InventoryType.GOOD, seller.getLabel(), wamp.getWarehouseId(), wam, vendor.getId());
28493 tejbeer 261
 
32075 tejbeer 262
                // BAD - WarehouseType.OURS, InventoryType.BAD
263
                warehouseService.createVendorWarehouse(WarehouseType.OURS, InventoryType.BAD, seller.getLabel(), wamp.getWarehouseId(), wam, vendor.getId());
28493 tejbeer 264
 
32075 tejbeer 265
                // VIRTUAL - WarehouseType.THIRD_PARTY, InventoryType.GOOD
32371 amit.gupta 266
                warehouseService.createVendorWarehouse(WarehouseType.THIRD_PARTY, InventoryType.GOOD, seller.getLabel(), wamp.getWarehouseId(), wam, vendor.getId());
28493 tejbeer 267
 
32075 tejbeer 268
            }
28493 tejbeer 269
 
32075 tejbeer 270
        }
28493 tejbeer 271
 
32565 tejbeer 272
        //model.addAttribute("response1", mvcResponseSender.createResponseString(true));
32075 tejbeer 273
 
32565 tejbeer 274
        return getShowInActiveSupplier(request, model);
275
 
32075 tejbeer 276
    }
28300 tejbeer 277
}