Subversion Repositories SmartDukaan

Rev

Rev 31238 | Rev 32371 | 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.inventory.WarehouseRepository;
17
import com.spice.profitmandi.dao.repository.transaction.SellerRepository;
18
import com.spice.profitmandi.dao.repository.transaction.SellerWarehouseRepository;
19
import com.spice.profitmandi.dao.repository.transaction.WareHouseAddressMappingRepository;
31238 amit.gupta 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
65
    private WareHouseAddressMappingRepository wareHouseAddressMappingRepository;
28493 tejbeer 66
 
32075 tejbeer 67
    @Autowired
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
 
32075 tejbeer 87
            WarehouseAddressMapping warehouseAddressMapping = wareHouseAddressMappingRepository.selectByWarehouseId(sw.getWarehouseId());
88
            LOGGER.info("warehouseAddressMapping" + warehouseAddressMapping);
89
            if (warehouseAddressMapping != null) {
90
                WarehouseAddressMaster WarehouseAddressMaster = WareHouseAddressMasterRepository.selectById(warehouseAddressMapping.getAddressId());
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 {
28493 tejbeer 128
 
32075 tejbeer 129
        List<SellerWarehouse> sellerWarehouses = sellerWarehouseRepository.selectAll();
130
        List<Integer> sellerwarehouseIds = sellerWarehouses.stream().map(x -> x.getWarehouseId()).collect(Collectors.toList());
131
        LOGGER.info("sellerWarehouses" + sellerWarehouses);
132
        Map<Integer, WarehouseIdPrefixModel> warehouseIdAndState = new HashMap<>();
28493 tejbeer 133
 
32075 tejbeer 134
        for (SellerWarehouse sw : sellerWarehouses) {
28493 tejbeer 135
 
32075 tejbeer 136
            WarehouseAddressMapping warehouseAddressMapping = wareHouseAddressMappingRepository.selectByWarehouseId(sw.getWarehouseId());
137
            LOGGER.info("warehouseAddressMapping" + warehouseAddressMapping);
138
            if (warehouseAddressMapping != null) {
139
                WarehouseAddressMaster WarehouseAddressMaster = WareHouseAddressMasterRepository.selectById(warehouseAddressMapping.getAddressId());
140
                LOGGER.info("warehouseAddressMappingAddreesId" + warehouseAddressMapping.getAddressId());
141
                LOGGER.info("WarehouseAddressMaster" + WarehouseAddressMaster);
142
                State state = stateRepository.selectById(WarehouseAddressMaster.getStateId());
143
                WarehouseIdPrefixModel wp = new WarehouseIdPrefixModel();
144
                wp.setPrefix(sw.getPrefix());
145
                wp.setStateName(state.getName());
146
                warehouseIdAndState.put(sw.getWarehouseId(), wp);
147
                LOGGER.info("state" + state);
148
            }
149
        }
150
        LOGGER.info("warehouseIdAndState" + warehouseIdAndState);
151
        model.addAttribute("warehouseIdAndState", warehouseIdAndState);
28493 tejbeer 152
 
32075 tejbeer 153
        List<State> state = stateRepository.selectAll();
28493 tejbeer 154
 
32075 tejbeer 155
        model.addAttribute("state", state);
28493 tejbeer 156
 
32075 tejbeer 157
        return "new-supplier";
158
    }
28493 tejbeer 159
 
32075 tejbeer 160
    @RequestMapping(value = "/setStatusInActive", method = RequestMethod.POST)
161
    public String setInActiveSupplier(HttpServletRequest request, @RequestParam(name = "id", required = true, defaultValue = "0") int id, Model model) throws Exception {
28493 tejbeer 162
 
32075 tejbeer 163
        Supplier supplier = supplierRepository.selectById(id);
28493 tejbeer 164
 
32075 tejbeer 165
        supplier.setStatus(false);
28493 tejbeer 166
 
32075 tejbeer 167
        model.addAttribute("response1", mvcResponseSender.createResponseString(true));
28493 tejbeer 168
 
32075 tejbeer 169
        return "response";
170
    }
28493 tejbeer 171
 
32075 tejbeer 172
    @RequestMapping(value = "/setStatusActive", method = RequestMethod.POST)
173
    public String setActiveSupplier(HttpServletRequest request, @RequestParam(name = "id", required = true, defaultValue = "0") int id, Model model) throws Exception {
28493 tejbeer 174
 
32075 tejbeer 175
        Supplier supplier = supplierRepository.selectById(id);
28493 tejbeer 176
 
32075 tejbeer 177
        supplier.setStatus(true);
28493 tejbeer 178
 
32075 tejbeer 179
        model.addAttribute("response1", mvcResponseSender.createResponseString(true));
28493 tejbeer 180
 
32075 tejbeer 181
        return "response";
28493 tejbeer 182
 
32075 tejbeer 183
    }
28493 tejbeer 184
 
32075 tejbeer 185
    @RequestMapping(value = "/submitNewSupplier", method = RequestMethod.POST)
186
    public String getCreateNewSupplier(HttpServletRequest request, @RequestBody CreateNewSupplier createNewSupplier, Model model) throws Exception {
28493 tejbeer 187
 
32075 tejbeer 188
        Supplier supplier = new Supplier();
28493 tejbeer 189
 
32075 tejbeer 190
        supplier.setName(createNewSupplier.getName());
191
        supplier.setCommunicationAddress(createNewSupplier.getCommunicationAddress());
192
        supplier.setContactEmail(createNewSupplier.getContactEmail());
193
        supplier.setContactFax(createNewSupplier.getContactFax());
194
        supplier.setContactName(createNewSupplier.getContactPerson());
195
        supplier.setGstin(createNewSupplier.getGst());
196
        supplier.setHeadDesignation(createNewSupplier.getHeadDesign());
197
        supplier.setHeadEmail(createNewSupplier.getHeadEmail());
198
        supplier.setHeadName(createNewSupplier.getHeadName());
199
        supplier.setPan(createNewSupplier.getPan());
200
        supplier.setPhone(createNewSupplier.getPhone());
201
        supplier.setPoValidityLimit(createNewSupplier.getpOValidityLimit());
202
        supplier.setRegisteredAddress(createNewSupplier.getRegisteredAddress());
203
        supplier.setStateId(createNewSupplier.getState());
204
        supplierRepository.persist(supplier);
28493 tejbeer 205
 
32075 tejbeer 206
        Vendor vendor = new Vendor();
207
        vendor.setName(supplier.getName());
208
        vendor.setId(supplier.getId());
209
        vendorRepository.persist(vendor);
210
        LOGGER.info("supplierId" + supplier.getId());
211
        LOGGER.info("vendorId" + vendor.getId());
28493 tejbeer 212
 
32075 tejbeer 213
        List<WarehouseAddressMapping> warehouseAddressMappings = wareHouseAddressMappingRepository.selectAllByIds(createNewSupplier.getWarehouseId());
214
        LOGGER.info("warehouseAddressMappings" + warehouseAddressMappings);
28493 tejbeer 215
 
32075 tejbeer 216
        for (WarehouseAddressMapping wamp : warehouseAddressMappings) {
217
            List<SellerWarehouse> sellerWarehouse = sellerWarehouseRepository.selectBywarehouseId(wamp.getWarehouseId());
218
            for (SellerWarehouse sw : sellerWarehouse) {
219
                Seller seller = sellerRepository.selectById(sw.getSellerId());
28493 tejbeer 220
 
32075 tejbeer 221
                WarehouseAddressMaster wam = WareHouseAddressMasterRepository.selectById(wamp.getAddressId());
28493 tejbeer 222
 
32075 tejbeer 223
                // GOOD - WarehouseType.OURS, InventoryType.GOOD
224
                warehouseService.createVendorWarehouse(WarehouseType.OURS, InventoryType.GOOD, seller.getLabel(), wamp.getWarehouseId(), wam, vendor.getId());
28493 tejbeer 225
 
32075 tejbeer 226
                // BAD - WarehouseType.OURS, InventoryType.BAD
227
                warehouseService.createVendorWarehouse(WarehouseType.OURS, InventoryType.BAD, seller.getLabel(), wamp.getWarehouseId(), wam, vendor.getId());
28493 tejbeer 228
 
32075 tejbeer 229
                // VIRTUAL - WarehouseType.THIRD_PARTY, InventoryType.GOOD
230
                warehouseService.createVendorWarehouse(WarehouseType.THIRD_PARTY, InventoryType.GOOD, seller.getLabel(), wamp.getWarehouseId(), wam, 0);
28493 tejbeer 231
 
32075 tejbeer 232
            }
28493 tejbeer 233
 
32075 tejbeer 234
        }
28493 tejbeer 235
 
32075 tejbeer 236
        return "new-supplier";
237
 
238
    }
28300 tejbeer 239
}