Subversion Repositories SmartDukaan

Rev

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