Subversion Repositories SmartDukaan

Rev

Rev 32075 | Rev 32383 | 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
 
28493 tejbeer 3
import com.spice.profitmandi.dao.entity.inventory.State;
4
import com.spice.profitmandi.dao.entity.inventory.Vendor;
31238 amit.gupta 5
import com.spice.profitmandi.dao.entity.transaction.Seller;
6
import com.spice.profitmandi.dao.entity.transaction.SellerWarehouse;
7
import com.spice.profitmandi.dao.entity.transaction.WarehouseAddressMapping;
8
import com.spice.profitmandi.dao.entity.transaction.WarehouseAddressMaster;
28300 tejbeer 9
import com.spice.profitmandi.dao.entity.warehouse.Supplier;
28493 tejbeer 10
import com.spice.profitmandi.dao.enumuration.inventory.InventoryType;
11
import com.spice.profitmandi.dao.enumuration.inventory.WarehouseType;
12
import com.spice.profitmandi.dao.hrms.CreateNewSupplier;
13
import com.spice.profitmandi.dao.hrms.WarehouseIdPrefixModel;
14
import com.spice.profitmandi.dao.repository.inventory.StateRepository;
15
import com.spice.profitmandi.dao.repository.inventory.VendorRepository;
16
import com.spice.profitmandi.dao.repository.transaction.SellerRepository;
17
import com.spice.profitmandi.dao.repository.transaction.SellerWarehouseRepository;
18
import com.spice.profitmandi.dao.repository.transaction.WareHouseAddressMappingRepository;
31238 amit.gupta 19
import com.spice.profitmandi.dao.repository.transaction.WareHouseAddressMasterRepository;
28300 tejbeer 20
import com.spice.profitmandi.dao.repository.warehouse.SupplierRepository;
28493 tejbeer 21
import com.spice.profitmandi.service.warehouse.WarehouseService;
28300 tejbeer 22
import com.spice.profitmandi.web.util.MVCResponseSender;
31238 amit.gupta 23
import org.apache.logging.log4j.LogManager;
24
import org.apache.logging.log4j.Logger;
25
import org.springframework.beans.factory.annotation.Autowired;
26
import org.springframework.stereotype.Controller;
27
import org.springframework.transaction.annotation.Transactional;
28
import org.springframework.ui.Model;
29
import org.springframework.web.bind.annotation.RequestBody;
30
import org.springframework.web.bind.annotation.RequestMapping;
31
import org.springframework.web.bind.annotation.RequestMethod;
32
import org.springframework.web.bind.annotation.RequestParam;
28300 tejbeer 33
 
31238 amit.gupta 34
import javax.servlet.http.HttpServletRequest;
35
import java.util.HashMap;
36
import java.util.List;
37
import java.util.Map;
38
import java.util.stream.Collectors;
28493 tejbeer 39
 
28300 tejbeer 40
@Controller
41
@Transactional(rollbackFor = Throwable.class)
42
public class SupplierController {
28493 tejbeer 43
 
32075 tejbeer 44
    @Autowired
45
    private SupplierRepository supplierRepository;
28300 tejbeer 46
 
32075 tejbeer 47
    @Autowired
48
    private MVCResponseSender mvcResponseSender;
28300 tejbeer 49
 
28493 tejbeer 50
 
32075 tejbeer 51
    @Autowired
52
    private SellerRepository sellerRepository;
28493 tejbeer 53
 
32075 tejbeer 54
    @Autowired
55
    private WarehouseService warehouseService;
28493 tejbeer 56
 
32075 tejbeer 57
    @Autowired
58
    private SellerWarehouseRepository sellerWarehouseRepository;
28493 tejbeer 59
 
32075 tejbeer 60
    @Autowired
61
    private VendorRepository vendorRepository;
28493 tejbeer 62
 
32075 tejbeer 63
    @Autowired
64
    private WareHouseAddressMappingRepository wareHouseAddressMappingRepository;
28493 tejbeer 65
 
32075 tejbeer 66
    @Autowired
67
    private WareHouseAddressMasterRepository WareHouseAddressMasterRepository;
28493 tejbeer 68
 
32075 tejbeer 69
    @Autowired
70
    private StateRepository stateRepository;
28493 tejbeer 71
 
32075 tejbeer 72
    private static final Logger LOGGER = LogManager.getLogger(SupplierController.class);
28493 tejbeer 73
 
32075 tejbeer 74
    @RequestMapping(value = "/getAllSupplier", method = RequestMethod.GET)
75
    public String getShowSupplier(HttpServletRequest request, Model model) throws Exception {
28493 tejbeer 76
 
32075 tejbeer 77
        List<Supplier> supplierAcvtives = supplierRepository.selectByStatus(true);
28493 tejbeer 78
 
32075 tejbeer 79
        List<SellerWarehouse> sellerWarehouses = sellerWarehouseRepository.selectAll();
80
        List<Integer> sellerwarehouseIds = sellerWarehouses.stream().map(x -> x.getWarehouseId()).collect(Collectors.toList());
81
        LOGGER.info("sellerWarehouses" + sellerWarehouses);
82
        Map<Integer, WarehouseIdPrefixModel> warehouseIdAndState = new HashMap<>();
28493 tejbeer 83
 
32075 tejbeer 84
        for (SellerWarehouse sw : sellerWarehouses) {
28493 tejbeer 85
 
32075 tejbeer 86
            WarehouseAddressMapping warehouseAddressMapping = wareHouseAddressMappingRepository.selectByWarehouseId(sw.getWarehouseId());
87
            LOGGER.info("warehouseAddressMapping" + warehouseAddressMapping);
88
            if (warehouseAddressMapping != null) {
89
                WarehouseAddressMaster WarehouseAddressMaster = WareHouseAddressMasterRepository.selectById(warehouseAddressMapping.getAddressId());
90
                LOGGER.info("warehouseAddressMappingAddreesId" + warehouseAddressMapping.getAddressId());
91
                LOGGER.info("WarehouseAddressMaster" + WarehouseAddressMaster);
92
                State state = stateRepository.selectById(WarehouseAddressMaster.getStateId());
93
                WarehouseIdPrefixModel wp = new WarehouseIdPrefixModel();
94
                wp.setPrefix(sw.getPrefix());
95
                wp.setStateName(state.getName());
96
                warehouseIdAndState.put(sw.getWarehouseId(), wp);
97
                LOGGER.info("state" + state);
98
            }
99
        }
100
        LOGGER.info("warehouseIdAndState" + warehouseIdAndState);
101
        model.addAttribute("warehouseIdAndState", warehouseIdAndState);
28493 tejbeer 102
 
32075 tejbeer 103
        List<State> state = stateRepository.selectAll();
28493 tejbeer 104
 
32075 tejbeer 105
        model.addAttribute("suppliers", supplierAcvtives);
106
        model.addAttribute("state", state);
28300 tejbeer 107
 
32075 tejbeer 108
        return "supplier";
28493 tejbeer 109
 
32075 tejbeer 110
    }
28493 tejbeer 111
 
32075 tejbeer 112
    @RequestMapping(value = "/getAllInActiveSupplier", method = RequestMethod.GET)
113
    public String getShowInActiveSupplier(HttpServletRequest request, Model model) throws Exception {
28493 tejbeer 114
 
32075 tejbeer 115
        List<Supplier> supplierInactives = supplierRepository.selectByStatus(false);
28493 tejbeer 116
 
32075 tejbeer 117
        model.addAttribute("supplierInactives", supplierInactives);
28493 tejbeer 118
 
32075 tejbeer 119
        LOGGER.info("supplierInactives" + supplierInactives);
28300 tejbeer 120
 
32075 tejbeer 121
        return "supplier-in-active";
28300 tejbeer 122
 
32075 tejbeer 123
    }
28493 tejbeer 124
 
32075 tejbeer 125
    @RequestMapping(value = "/getCreateNewSupplier", method = RequestMethod.GET)
126
    public String getCreateNewSupplier(HttpServletRequest request, Model model) throws Exception {
28493 tejbeer 127
 
32075 tejbeer 128
        List<SellerWarehouse> sellerWarehouses = sellerWarehouseRepository.selectAll();
129
        List<Integer> sellerwarehouseIds = sellerWarehouses.stream().map(x -> x.getWarehouseId()).collect(Collectors.toList());
130
        LOGGER.info("sellerWarehouses" + sellerWarehouses);
131
        Map<Integer, WarehouseIdPrefixModel> warehouseIdAndState = new HashMap<>();
28493 tejbeer 132
 
32075 tejbeer 133
        for (SellerWarehouse sw : sellerWarehouses) {
28493 tejbeer 134
 
32075 tejbeer 135
            WarehouseAddressMapping warehouseAddressMapping = wareHouseAddressMappingRepository.selectByWarehouseId(sw.getWarehouseId());
136
            LOGGER.info("warehouseAddressMapping" + warehouseAddressMapping);
137
            if (warehouseAddressMapping != null) {
138
                WarehouseAddressMaster WarehouseAddressMaster = WareHouseAddressMasterRepository.selectById(warehouseAddressMapping.getAddressId());
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
 
32075 tejbeer 212
        List<WarehouseAddressMapping> warehouseAddressMappings = wareHouseAddressMappingRepository.selectAllByIds(createNewSupplier.getWarehouseId());
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
 
32075 tejbeer 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
}