Subversion Repositories SmartDukaan

Rev

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