Subversion Repositories SmartDukaan

Rev

Rev 34018 | Rev 34527 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
22981 ashik.ali 1
package com.spice.profitmandi.web.controller;
2
 
23494 ashik.ali 3
import com.spice.profitmandi.common.enumuration.ContentType;
23955 govind 4
import com.spice.profitmandi.common.enumuration.CounterSize;
28825 tejbeer 5
import com.spice.profitmandi.common.enumuration.FofoType;
22981 ashik.ali 6
import com.spice.profitmandi.common.exception.ProfitMandiBusinessException;
30017 amit.gupta 7
import com.spice.profitmandi.common.model.*;
28024 tejbeer 8
import com.spice.profitmandi.common.util.Utils;
23330 ashik.ali 9
import com.spice.profitmandi.common.web.util.ResponseSender;
27231 tejbeer 10
import com.spice.profitmandi.dao.entity.auth.AuthUser;
30017 amit.gupta 11
import com.spice.profitmandi.dao.entity.dtr.*;
12
import com.spice.profitmandi.dao.entity.fofo.*;
24159 tejbeer 13
import com.spice.profitmandi.dao.entity.user.Location;
14
import com.spice.profitmandi.dao.entity.user.Promoter;
24123 tejbeer 15
import com.spice.profitmandi.dao.entity.user.User;
27231 tejbeer 16
import com.spice.profitmandi.dao.repository.auth.AuthRepository;
17
import com.spice.profitmandi.dao.repository.cs.CsService;
28272 tejbeer 18
import com.spice.profitmandi.dao.repository.cs.RetailerBrandsLimitService;
30017 amit.gupta 19
import com.spice.profitmandi.dao.repository.dtr.*;
27797 tejbeer 20
import com.spice.profitmandi.dao.repository.fofo.PartnerTypeChangeRepository;
21
import com.spice.profitmandi.dao.repository.fofo.PartnerTypeChangeService;
28381 tejbeer 22
import com.spice.profitmandi.dao.repository.fofo.PincodePartnerRepository;
24123 tejbeer 23
import com.spice.profitmandi.dao.repository.user.LocationRepository;
24159 tejbeer 24
import com.spice.profitmandi.dao.repository.user.PromoterRepository;
24123 tejbeer 25
import com.spice.profitmandi.dao.repository.user.UserRepository;
33990 tejus.loha 26
import com.spice.profitmandi.dao.repository.warehouse.WarehouseSupplierInvoiceRepository;
24349 amit.gupta 27
import com.spice.profitmandi.service.PartnerInvestmentService;
33814 ranu 28
import com.spice.profitmandi.service.authentication.RoleManager;
32731 ranu 29
import com.spice.profitmandi.service.catalog.BrandsService;
24159 tejbeer 30
import com.spice.profitmandi.service.inventory.InventoryService;
22981 ashik.ali 31
import com.spice.profitmandi.service.user.RetailerService;
28908 tejbeer 32
import com.spice.profitmandi.service.user.StoreTimelineTatService;
25276 amit.gupta 33
import com.spice.profitmandi.web.model.LoginDetails;
34
import com.spice.profitmandi.web.util.CookiesProcessor;
24123 tejbeer 35
import com.spice.profitmandi.web.util.MVCResponseSender;
30017 amit.gupta 36
import org.apache.logging.log4j.LogManager;
37
import org.apache.logging.log4j.Logger;
38
import org.json.JSONObject;
39
import org.springframework.beans.factory.annotation.Autowired;
40
import org.springframework.beans.factory.annotation.Qualifier;
41
import org.springframework.core.io.InputStreamResource;
42
import org.springframework.http.HttpHeaders;
43
import org.springframework.http.HttpStatus;
44
import org.springframework.http.ResponseEntity;
45
import org.springframework.stereotype.Controller;
46
import org.springframework.ui.Model;
47
import org.springframework.web.bind.annotation.*;
22981 ashik.ali 48
 
30017 amit.gupta 49
import javax.servlet.http.HttpServletRequest;
50
import javax.transaction.Transactional;
51
import java.io.File;
52
import java.io.FileInputStream;
53
import java.io.FileNotFoundException;
54
import java.time.LocalDate;
55
import java.time.LocalDateTime;
56
import java.util.*;
57
import java.util.stream.Collectors;
58
 
22981 ashik.ali 59
@Controller
25277 amit.gupta 60
@Transactional(rollbackOn = Throwable.class)
22981 ashik.ali 61
public class RetailerController {
62
 
33990 tejus.loha 63
    private static final Logger LOGGER = LogManager.getLogger(RetailerController.class);
64
    private static final List<String> CHANGE_PARTNER_CATEGORY_PERMISSIONS = Arrays.asList("tarun.verma@smartdukaan.com", "kamini.sharma@smartdukaan.com", "shankar.mushra@smartdukaan.com");
65
    @Autowired
66
    PartnerOnBoardingPanelRepository partnerOnBoardingPanelRepository;
67
    @Autowired
68
    BrandsService brandsService;
69
    @Autowired
70
    private RetailerService retailerService;
71
    @Autowired
72
    private RetailerRepository retailerRepository;
73
    @Autowired
74
    private PincodePartnerRepository pincodePartnerRepository;
75
    @Autowired
76
    private BrandLimitRepository brandLimitRepository;
77
    @Autowired
78
    private RetailerBrandsLimitService retailerBrandsLimitService;
79
    @Autowired
80
    private RetailerBrandsLimitRepository retailerBrandsLimitRepository;
81
    @Autowired
82
    private ShopRepository shopRepository;
83
    @Autowired
84
    private RetailerBlockBrandsRepository retailerBlockBrandsRepository;
85
    @Autowired
86
    private FofoStoreRepository fofoStoreRepository;
87
    @Autowired
88
    private DocumentRepository documentRepository;
89
    @Autowired
90
    private CookiesProcessor cookiesProcessor;
91
    @Autowired
92
    @Qualifier("userUserRepository")
93
    private UserRepository userRepository;
94
    @Autowired
95
    private AuthRepository authRepository;
96
    @Autowired
97
    private CsService csService;
98
    @Autowired
99
    private LocationRepository locationRepository;
100
    @Autowired
101
    private ResponseSender<?> responseSender;
102
    @Autowired
103
    private MVCResponseSender mvcResponseSender;
104
    @Autowired
105
    private InventoryService inventoryService;
106
    @Autowired
107
    private PromoterRepository promoterRepository;
108
    @Autowired
109
    private PartnerInvestmentService partnerInvestmentService;
110
    @Autowired
111
    private Mongo mongoClient;
112
    @Autowired
113
    private PartnerTypeChangeService partnerTypeChangeService;
114
    @Autowired
115
    private PartnerTypeChangeRepository partnerTypeChangeRepository;
116
    @Autowired
117
    private StoreTimelineTatService storeTimelineTatService;
118
    @Autowired
119
    private RoleManager roleManager;
120
    @Autowired
121
    private RetailerContactRepository retailerContactRepository;
122
    @Autowired
123
    private WarehouseSupplierInvoiceRepository warehouseSupplierInvoiceRepository;
24124 govind 124
 
33990 tejus.loha 125
    @RequestMapping(value = "/retailerDetails", method = RequestMethod.GET)
126
    public String retailerInfoByEmailIdOrMobileNumber(HttpServletRequest request,
127
                                                      @RequestParam(name = ProfitMandiConstants.EMAIL_ID_OR_MOBILE_NUMBER) String emailIdOrMobileNumber,
128
                                                      Model model) throws ProfitMandiBusinessException {
129
        LOGGER.info("Request Received at url {} with emailIdOrMobileNumber {}", request.getRequestURI(),
130
                emailIdOrMobileNumber);
24124 govind 131
 
33990 tejus.loha 132
        Map<String, Object> map = retailerService.getByEmailIdOrMobileNumber(emailIdOrMobileNumber);
32667 raveendra. 133
 
33990 tejus.loha 134
        model.addAllAttributes(map);
28832 tejbeer 135
 
33990 tejus.loha 136
        model.addAttribute("counterSizes", CounterSize.values());
137
        Map<Integer, String> warehouseMap = ProfitMandiConstants.WAREHOUSE_MAP;
28832 tejbeer 138
 
33990 tejus.loha 139
        LOGGER.info("warehouseMap", warehouseMap);
140
        model.addAttribute("warehouses", warehouseMap);
141
        model.addAttribute("fofoTypes", FofoType.values());
142
        if (map.containsKey("retailer")) {
143
            Retailer retailer = (Retailer) map.get("retailer");
144
            User user = userRepository.selectById(retailer.getId());
145
            if (user.getLocation() != null) {
146
                Location location = locationRepository.selectById(user.getLocation());
147
                model.addAttribute("locationdetail", location);
148
                LOGGER.info("location" + location);
149
            }
150
        }
151
        return "retailer-details";
152
    }
28272 tejbeer 153
 
33990 tejus.loha 154
    @RequestMapping(value = "/retailerDetails", method = RequestMethod.PUT)
155
    public String updateRetailerDetails(HttpServletRequest request,
156
                                        @RequestBody UpdateRetailerRequest updateRetailerRequest, Model model) throws ProfitMandiBusinessException {
157
        LOGGER.info("Request Received at url {} with body {}", request.getRequestURI(), updateRetailerRequest);
158
        Map<String, Object> map = retailerService.updateRetailerDetails(updateRetailerRequest);
159
        //retailerService.up
28272 tejbeer 160
 
33990 tejus.loha 161
        model.addAllAttributes(map);
162
        model.addAttribute("counterSizes", CounterSize.values());
163
        Map<Integer, String> warehouseMap = ProfitMandiConstants.WAREHOUSE_MAP;
164
        LOGGER.info("warehouseMap", warehouseMap);
165
        model.addAttribute("warehouses", warehouseMap);
166
        model.addAttribute("fofoTypes", FofoType.values());
167
        return "retailer-details";
168
    }
28272 tejbeer 169
 
33990 tejus.loha 170
    @RequestMapping(value = "/retailer/update-email", method = RequestMethod.POST)
171
    public String updateRetailerEmail(@RequestParam("newEmail") String newEmail, @RequestParam("fofoID") int fofoID) throws ProfitMandiBusinessException {
172
        retailerService.updateRetailerEmail(fofoID, newEmail);
173
        return "retailer-details";
174
    }
24124 govind 175
 
33990 tejus.loha 176
    @RequestMapping(value = "/retailerInfo", method = RequestMethod.GET)
177
    public String retailerInfo(HttpServletRequest request) throws Exception {
178
        return "retailer-info";
179
    }
28024 tejbeer 180
 
33990 tejus.loha 181
    @RequestMapping(value = "/district/all/stateName", method = RequestMethod.GET)
182
    public ResponseEntity<?> getAllDistrict(@RequestParam(name = "stateName") String stateName) {
183
        return responseSender.ok(retailerService.getAllDistrictMaster(stateName));
184
    }
24124 govind 185
 
33990 tejus.loha 186
    @RequestMapping(value = "/retailerDocument/documentId", method = RequestMethod.GET)
187
    public ResponseEntity<?> retailerDocumentById(HttpServletRequest request,
188
                                                  @RequestParam(name = ProfitMandiConstants.DOCUMENT_ID) int documentId,
189
                                                  @RequestParam(name = ProfitMandiConstants.RETAILER_ID) int retailerId) throws ProfitMandiBusinessException {
190
        Document document = documentRepository.selectById(documentId);
191
        Retailer retailer = retailerRepository.selectById(retailerId);
24124 govind 192
 
33990 tejus.loha 193
        if (retailer.getDocumentId() == null) {
194
            throw new ProfitMandiBusinessException(ProfitMandiConstants.RETAILER_ID, retailer.getId(), "RTLR_1012");
195
        }
196
        if (retailer.getDocumentId() != documentId) {
197
            throw new ProfitMandiBusinessException(ProfitMandiConstants.DOCUMENT_ID, documentId, "RTLR_1014");
198
        }
199
        return responseSender.ok(document);
200
    }
25276 amit.gupta 201
 
33990 tejus.loha 202
    @RequestMapping(value = "/retailerDocument/download", method = RequestMethod.GET)
203
    public ResponseEntity<?> downloadRetailerDocument(HttpServletRequest request,
204
                                                      @RequestParam(name = ProfitMandiConstants.RETAILER_ID) int retailerId, Model model)
205
            throws ProfitMandiBusinessException {
24124 govind 206
 
33990 tejus.loha 207
        Retailer retailer = retailerRepository.selectById(retailerId);
27231 tejbeer 208
 
33990 tejus.loha 209
        if (retailer.getDocumentId() == null) {
210
            throw new ProfitMandiBusinessException(ProfitMandiConstants.RETAILER_ID, retailer.getId(), "RTLR_1012");
211
        }
27231 tejbeer 212
 
33990 tejus.loha 213
        Document document = documentRepository.selectById(retailer.getDocumentId());
24124 govind 214
 
33990 tejus.loha 215
        FileInputStream file = null;
216
        try {
217
            file = new FileInputStream(document.getPath() + File.separator + document.getName());
218
        } catch (FileNotFoundException e) {
219
            LOGGER.error("Retailer Document file not found : ", e);
220
            throw new ProfitMandiBusinessException(ProfitMandiConstants.DOCUMENT_ID, document.getId(), "RTLR_1013");
221
        }
222
        // ByteArrayOutputStream byteArrayOutputStream = new
223
        // ByteArrayOutputStream();
224
        // ExcelUtils.writeSchemeModels(schemeModels, byteArrayOutputStream);
24124 govind 225
 
33990 tejus.loha 226
        final HttpHeaders headers = new HttpHeaders();
227
        String contentType = "";
228
        if (document.getContentType() == ContentType.JPEG) {
229
            contentType = "image/jpeg";
230
        } else if (document.getContentType() == ContentType.PNG) {
231
            contentType = "image/png";
232
        } else if (document.getContentType() == ContentType.PDF) {
233
            contentType = "application/pdf";
234
        }
235
        headers.set("Content-Type", contentType);
236
        headers.set("Content-disposition", "inline; filename=" + document.getName());
237
        headers.setContentLength(document.getSize());
238
        final InputStreamResource inputStreamResource = new InputStreamResource(file);
239
        return new ResponseEntity<InputStreamResource>(inputStreamResource, headers, HttpStatus.OK);
24124 govind 240
 
33990 tejus.loha 241
        // return
242
        // responseSender.ok(ResponseCodeHolder.getMessage("ITM_AGNG_OK_1000"));
243
    }
24159 tejbeer 244
 
33990 tejus.loha 245
    @RequestMapping(value = "/retailerShopDocument/shopId", method = RequestMethod.GET)
246
    public ResponseEntity<?> retailerShopDocumentById(HttpServletRequest request,
247
                                                      @RequestParam(name = ProfitMandiConstants.SHOP_ID) int shopId,
248
                                                      @RequestParam(name = ProfitMandiConstants.RETAILER_ID) int retailerId) throws ProfitMandiBusinessException {
249
        Shop shop = shopRepository.selectById(shopId);
24159 tejbeer 250
 
33990 tejus.loha 251
        if (shop.getRetailerId() != retailerId) {
252
            throw new ProfitMandiBusinessException(ProfitMandiConstants.SHOP_ID, shop.getId(), "SHP_1004");
253
        }
24349 amit.gupta 254
 
33990 tejus.loha 255
        if (shop.getDocumentId() == null) {
256
            throw new ProfitMandiBusinessException(ProfitMandiConstants.RETAILER_ID, shop.getId(), "SHP_1005");
257
        }
24159 tejbeer 258
 
33990 tejus.loha 259
        Document document = documentRepository.selectById(shop.getDocumentId());
260
        return responseSender.ok(document);
261
    }
27797 tejbeer 262
 
33990 tejus.loha 263
    @RequestMapping(value = "/retailerShopDocument/download", method = RequestMethod.GET)
264
    public ResponseEntity<?> downloadRetailerShopDocument(HttpServletRequest request,
265
                                                          @RequestParam(name = ProfitMandiConstants.SHOP_ID) int shopId,
266
                                                          @RequestParam(name = ProfitMandiConstants.RETAILER_ID) int retailerId, Model model)
267
            throws ProfitMandiBusinessException {
27797 tejbeer 268
 
33990 tejus.loha 269
        Shop shop = shopRepository.selectById(shopId);
28908 tejbeer 270
 
33990 tejus.loha 271
        if (shop.getRetailerId() != retailerId) {
272
            throw new ProfitMandiBusinessException(ProfitMandiConstants.SHOP_ID, shop.getId(), "SHP_1004");
273
        }
28908 tejbeer 274
 
33990 tejus.loha 275
        if (shop.getDocumentId() == null) {
276
            throw new ProfitMandiBusinessException(ProfitMandiConstants.RETAILER_ID, shop.getId(), "SHP_1005");
277
        }
33814 ranu 278
 
33990 tejus.loha 279
        Document document = documentRepository.selectById(shop.getDocumentId());
33814 ranu 280
 
33990 tejus.loha 281
        FileInputStream file = null;
282
        try {
283
            file = new FileInputStream(document.getPath() + File.separator + document.getName());
284
        } catch (FileNotFoundException e) {
285
            LOGGER.error("Retailer Document file not found : ", e);
286
            throw new ProfitMandiBusinessException(ProfitMandiConstants.DOCUMENT_ID, document.getId(), "RTLR_1013");
287
        }
288
        // ByteArrayOutputStream byteArrayOutputStream = new
289
        // ByteArrayOutputStream();
290
        // ExcelUtils.writeSchemeModels(schemeModels, byteArrayOutputStream);
28071 tejbeer 291
 
33990 tejus.loha 292
        final HttpHeaders headers = new HttpHeaders();
293
        String contentType = "";
294
        if (document.getContentType() == ContentType.JPEG) {
295
            contentType = "image/jpeg";
296
        } else if (document.getContentType() == ContentType.PNG) {
297
            contentType = "image/png";
298
        } else if (document.getContentType() == ContentType.PDF) {
299
            contentType = "application/pdf";
300
        }
301
        headers.set("Content-Type", contentType);
302
        headers.set("Content-disposition", "inline; filename=" + document.getName());
303
        headers.setContentLength(document.getSize());
304
        final InputStreamResource inputStreamResource = new InputStreamResource(file);
305
        return new ResponseEntity<InputStreamResource>(inputStreamResource, headers, HttpStatus.OK);
28071 tejbeer 306
 
33990 tejus.loha 307
        // return
308
        // responseSender.ok(ResponseCodeHolder.getMessage("ITM_AGNG_OK_1000"));
309
    }
28071 tejbeer 310
 
33990 tejus.loha 311
    @GetMapping(value = "/getstore")
33247 ranu 312
    public String getstore(HttpServletRequest request, Model model) throws ProfitMandiBusinessException {
30017 amit.gupta 313
 
33990 tejus.loha 314
        List<Integer> fofoIds = fofoStoreRepository.selectAll().stream().map(x -> x.getId())
315
                .collect(Collectors.toList());
30426 tejbeer 316
 
33990 tejus.loha 317
        Map<Integer, CustomRetailer> customRetailerMap = retailerService.getAllFofoRetailers();
30426 tejbeer 318
 
33990 tejus.loha 319
        Map<Integer, CustomRetailer> fofoIdsAndCustomRetailer = fofoIds.stream().map(x -> customRetailerMap.get(x))
320
                .filter(x -> x != null).collect(Collectors.toList()).stream()
321
                .collect(Collectors.toMap(x -> x.getPartnerId(), x -> x));
30426 tejbeer 322
 
33990 tejus.loha 323
        //LOGGER.info("fofoIds" + fofoIds);
324
        model.addAttribute("fofoIdsAndCustomRetailer", fofoIdsAndCustomRetailer);
325
        //LOGGER.info("fofoIdsAndCustomRetailer" + fofoIdsAndCustomRetailer);
326
        model.addAttribute("fofoIds", fofoIds);
24124 govind 327
 
33990 tejus.loha 328
        return "store";
29267 manish 329
 
33990 tejus.loha 330
    }
30017 amit.gupta 331
 
33990 tejus.loha 332
    @RequestMapping(value = "/getPartnerinfo")
333
    public String getPartnerinfo(HttpServletRequest request, @RequestBody SelectStorePartnerInfo selectStorePartnerInfo,
334
                                 Model model) throws ProfitMandiBusinessException {
335
        LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
336
        //LOGGER.info("selectStorePartnerInfo" + selectStorePartnerInfo.getUserIds());
337
        List<FofoStore> fofoStores = fofoStoreRepository.selectByRetailerIds(selectStorePartnerInfo.getUserIds());
338
        //LOGGER.info("fofoStoresInfo" + fofoStores);
339
        Map<Integer, Boolean> investments = new HashMap<>();
32207 amit.gupta 340
 
33990 tejus.loha 341
        for (FofoStore fofoStore : fofoStores) {
342
            boolean isOk = false;
343
            if (fofoStore.getGraceDate() != null && fofoStore.getGraceDate().isAfter(LocalDate.now())) {
344
                isOk = true;
345
            } else {
346
                try {
347
                    isOk = partnerInvestmentService.isInvestmentOk(fofoStore.getId(), ProfitMandiConstants.MIN_INVESTMENT_PERCENTAGE,
348
                            ProfitMandiConstants.CUTOFF_INVESTMENT);
349
                    if (fofoStore.getGraceCount() > 0) {
350
                        fofoStore.setGraceDate(null);
351
                        fofoStore.setGraceCount(0);
352
                    }
353
                } catch (ProfitMandiBusinessException e) {
354
                }
355
            }
356
            investments.put(fofoStore.getId(), isOk);
357
        }
29267 manish 358
 
33990 tejus.loha 359
        Map<Integer, CustomRetailer> customRetailers = retailerService.getFofoRetailers(false);
360
        model.addAttribute("fofoStores", fofoStores);
361
        model.addAttribute("investments", investments);
362
        model.addAttribute("customRetailers", customRetailers);
363
        boolean canChangeCategory = CHANGE_PARTNER_CATEGORY_PERMISSIONS.contains(loginDetails.getEmailId());
364
        model.addAttribute("canChangeCategory", canChangeCategory);
29267 manish 365
 
33990 tejus.loha 366
        return "store-investment";
29267 manish 367
 
33990 tejus.loha 368
    }
29267 manish 369
 
33990 tejus.loha 370
    @GetMapping(value = "/getAllStores")
371
    public String getAllStores(HttpServletRequest request, Model model) throws Exception {
30017 amit.gupta 372
 
33990 tejus.loha 373
        List<FofoStore> fofoStores = fofoStoreRepository.selectAll().stream().filter(x -> x.isActive())
374
                .collect(Collectors.toList());
375
        Map<Integer, Boolean> investments = new HashMap<>();
24124 govind 376
 
33990 tejus.loha 377
        for (FofoStore fofoStore : fofoStores) {
378
            boolean isOk = false;
379
            if (fofoStore.getGraceDate() != null && fofoStore.getGraceDate().isAfter(LocalDate.now())) {
380
                isOk = true;
381
            } else {
382
                try {
383
                    isOk = partnerInvestmentService.isInvestmentOk(fofoStore.getId(), ProfitMandiConstants.MIN_INVESTMENT_PERCENTAGE,
384
                            ProfitMandiConstants.CUTOFF_INVESTMENT);
385
                    if (fofoStore.getGraceCount() > 0) {
386
                        fofoStore.setGraceDate(null);
387
                        fofoStore.setGraceCount(0);
388
                    }
389
                } catch (ProfitMandiBusinessException e) {
390
                }
391
            }
392
            investments.put(fofoStore.getId(), isOk);
393
        }
24124 govind 394
 
33990 tejus.loha 395
        Map<Integer, CustomRetailer> customRetailers = retailerService.getFofoRetailers(false);
396
        model.addAttribute("fofoStores", fofoStores);
397
        model.addAttribute("investments", investments);
398
        model.addAttribute("customRetailers", customRetailers);
24124 govind 399
 
33990 tejus.loha 400
        LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
401
        boolean canChangeCategory = CHANGE_PARTNER_CATEGORY_PERMISSIONS.contains(loginDetails.getEmailId());
402
        model.addAttribute("canChangeCategory", canChangeCategory);
24124 govind 403
 
33990 tejus.loha 404
        return "store-investment";
32207 amit.gupta 405
 
33990 tejus.loha 406
    }
24124 govind 407
 
33990 tejus.loha 408
    @GetMapping(value = "/getPartnerCategory")
33247 ranu 409
    public String getPartnerCategory(HttpServletRequest request, @RequestParam int fofoId, Model model) throws ProfitMandiBusinessException {
27797 tejbeer 410
 
33990 tejus.loha 411
        PartnerType partnerType = partnerTypeChangeService.getTypeOnDate(fofoId, LocalDate.now());
412
        List<PartnerType> partnerTypes = partnerType.nextPartnerTypes();
413
        LOGGER.info("partnerType" + partnerTypes);
414
        model.addAttribute("partnerTypes", partnerTypes);
415
        model.addAttribute("fofoId", fofoId);
416
        return "partner-category";
417
    }
27797 tejbeer 418
 
33990 tejus.loha 419
    @PostMapping(value = "/updatePartnerCategory")
420
    public String updatePartnerCategory(HttpServletRequest request, @RequestParam(name = "fofoId") int fofoId,
421
                                        @RequestParam(name = "partnerType") PartnerType partnerType, Model model) throws Exception {
27797 tejbeer 422
 
33990 tejus.loha 423
        PartnerTypeChange ptc = new PartnerTypeChange();
424
        ptc.setFofoId(fofoId);
425
        ptc.setPartnerType(partnerType);
426
        ptc.setCreateTimestamp(LocalDate.now().atStartOfDay().plusDays(1));
427
        partnerTypeChangeRepository.persist(ptc);
428
        model.addAttribute("response1", mvcResponseSender.createResponseString(true));
27797 tejbeer 429
 
33990 tejus.loha 430
        return "response";
431
    }
27797 tejbeer 432
 
33990 tejus.loha 433
    @GetMapping(value = "/partners")
434
    public String getStoreName(HttpServletRequest request, Model model, @RequestParam String query) throws Exception {
435
        model.addAttribute("response1",
436
                mvcResponseSender.createResponseString(retailerService.getFofoRetailers(false).values().stream()
437
                        .filter(x -> x.getDisplayName().toLowerCase().matches(".*?" + query.toLowerCase() + ".*?"))
438
                        .collect(Collectors.toList())));
439
        return "response";
440
    }
24349 amit.gupta 441
 
33990 tejus.loha 442
    @PostMapping(value = "/deactivateStore")
443
    public String deActivateStore(HttpServletRequest request,
444
                                  @RequestParam(name = ProfitMandiConstants.FOFO_ID) int fofoId, Model model) throws Exception {
445
        FofoStore fofoStore = fofoStoreRepository.selectByRetailerId(fofoId);
446
        LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
447
        if (!Arrays
448
                .asList("kamini.sharma@smartdukaan.com", "tarun.verma@smartdukaan.com", "amit.gupta@smartdukaan.com",
34211 vikas.jang 449
                        "rahul.katyal@smartdukaan.com", "vikas.jangra@smartdukaan.com", "sm@smartdukaan.com")
33990 tejus.loha 450
                .contains(loginDetails.getEmailId())) {
451
            throw new ProfitMandiBusinessException("Access Denied", "Unauthorised Access",
452
                    "You are not authorise to deactivate retailer");
453
        }
454
        fofoStore.setActive(false);
455
        LOGGER.info("inserted into InActiveFofoStore successfully");
456
        model.addAttribute("response1", mvcResponseSender.createResponseString(true));
457
        return "response";
458
    }
28825 tejbeer 459
 
33990 tejus.loha 460
    @PostMapping(value = "/activateStoreForever")
461
    public String activateStoreForever(HttpServletRequest request,
462
                                       @RequestParam(name = ProfitMandiConstants.FOFO_ID) int fofoId, Model model) throws Exception {
463
        FofoStore fofoStore = fofoStoreRepository.selectByRetailerId(fofoId);
464
        LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
465
        if (!Arrays.asList("kamini.sharma@smartdukaan.com", "tarun.verma@smartdukaan.com", "amit.gupta@smartdukaan.com",
466
                "rahul.katyal@smartdukaan.com", "sm@smartdukaan.com").contains(loginDetails.getEmailId())) {
467
            throw new ProfitMandiBusinessException("Access Denied", "Unauthorised Access",
468
                    "You are not authorise to activate retailer");
469
        }
470
        fofoStore.setActive(true);
471
        LOGGER.info("inserted into ActiveFofoStore successfully");
472
        model.addAttribute("response1", mvcResponseSender.createResponseString(true));
473
        return "response";
474
    }
28825 tejbeer 475
 
33990 tejus.loha 476
    @PostMapping(value = "/activateStoreTemporary")
477
    public String activateStoreTemporary(HttpServletRequest request,
478
                                         @RequestParam(name = ProfitMandiConstants.FOFO_ID) int fofoId,
479
                                         @RequestParam(name = "days", required = true) int days, Model model) throws Exception {
28825 tejbeer 480
 
33990 tejus.loha 481
        FofoStore fofoStore = fofoStoreRepository.selectByRetailerId(fofoId);
482
        LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
483
        if (!Arrays.asList("kamini.sharma@smartdukaan.com", "tarun.verma@smartdukaan.com", "amit.gupta@smartdukaan.com",
484
                "rahul.katyal@smartdukaan.com", "sm@smartdukaan.com").contains(loginDetails.getEmailId())) {
485
            throw new ProfitMandiBusinessException("Access Denied", "Unauthorised Access",
486
                    "You are not authorise to deactivate retailer");
487
        }
28825 tejbeer 488
 
33990 tejus.loha 489
        LocalDateTime currentDate = LocalDate.now().atStartOfDay();
28825 tejbeer 490
 
33990 tejus.loha 491
        LocalDateTime EndDate = currentDate.plusDays(days);
492
        fofoStore.setActiveTimeStamp(EndDate);
28825 tejbeer 493
 
33990 tejus.loha 494
        LOGGER.info("EndDate" + EndDate);
495
        LOGGER.info("getActiveTimeStamp" + fofoStore.getActiveTimeStamp());
28825 tejbeer 496
 
33990 tejus.loha 497
        if (currentDate.isBefore(fofoStore.getActiveTimeStamp())) {
498
            fofoStore.setActive(true);
499
            LOGGER.info("inserted into InActiveFofoStore successfully");
500
        }
28825 tejbeer 501
 
33990 tejus.loha 502
        model.addAttribute("response1", mvcResponseSender.createResponseString(true));
503
        return "response";
504
    }
25276 amit.gupta 505
 
33990 tejus.loha 506
    @GetMapping(value = "/getAllInactiveStores")
33247 ranu 507
    public String getInactiveStores(HttpServletRequest request, Model model) throws ProfitMandiBusinessException {
33990 tejus.loha 508
        List<FofoStore> inActiveFofoStores = fofoStoreRepository.selectInActiveStore();
30426 tejbeer 509
 
33990 tejus.loha 510
        LOGGER.info("inActiveFofoStores {}", inActiveFofoStores);
511
        Map<Integer, CustomRetailer> customRetailerMap = retailerService.getAllFofoRetailers();
30426 tejbeer 512
 
33990 tejus.loha 513
        List<Integer> fofoIds = inActiveFofoStores.stream().map(x -> x.getId()).collect(Collectors.toList());
30431 tejbeer 514
 
33990 tejus.loha 515
        Map<Integer, CustomRetailer> customRetailers = fofoIds.stream().map(x -> customRetailerMap.get(x))
516
                .filter(x -> x != null).collect(Collectors.toList()).stream()
517
                .collect(Collectors.toMap(x -> x.getPartnerId(), x -> x));
518
        LOGGER.info("customRetailers {}", customRetailers);
30426 tejbeer 519
 
33990 tejus.loha 520
        model.addAttribute("inActiveFofoStores", inActiveFofoStores);
521
        model.addAttribute("customRetailers", customRetailers);
522
        return "inactive-stores";
523
    }
25276 amit.gupta 524
 
33990 tejus.loha 525
    // Extend billing for 2 days
526
    @PostMapping(value = "/extendBilling")
527
    public String extendBilling(HttpServletRequest request,
528
                                @RequestParam(name = ProfitMandiConstants.FOFO_ID) int fofoId, Model model) throws Exception {
529
        FofoStore fofoStore = fofoStoreRepository.selectByRetailerId(fofoId);
530
        LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
531
        if (Arrays.asList("kamini.sharma@smartdukaan.com", "tarun.verma@smartdukaan.com", "amit.gupta@smartdukaan.com",
532
                "rahul.katyal@smartdukaan.com", "sm@smartdukaan.com", "mohit.gulati@smartdukaan.com", "chiranjib.sarkar@smartdukaan.com").contains(loginDetails.getEmailId())) {
533
            fofoStore.setGraceDate(LocalDate.now().plusDays(2));
534
            fofoStore.setGraceCount(fofoStore.getGraceCount() + 1);
535
            model.addAttribute("response1", mvcResponseSender.createResponseString(fofoStore.getGraceCount()));
536
        } else {
537
            throw new ProfitMandiBusinessException("Access Denied", "Unauthorised Access",
538
                    "You are not authorise to extend billing");
539
        }
540
        return "response";
25276 amit.gupta 541
 
33990 tejus.loha 542
    }
24124 govind 543
 
33990 tejus.loha 544
    @RequestMapping(value = "/getPromoterInfo", method = RequestMethod.GET)
32887 shampa 545
 
33990 tejus.loha 546
    public String getShowPromoterInfo(HttpServletRequest request,
547
                                      @RequestParam(name = "offset", defaultValue = "0") int offset,
548
                                      @RequestParam(name = "limit", defaultValue = "10") int limit,
549
                                      @RequestParam(name = "fofoId", required = false, defaultValue = "0") int fofoId, Model model)
550
            throws Exception {
551
        //LOGGER.info("requested url : " + request.getRequestURL().toString());
552
        List<Promoter> promoterInfo = null;
553
        long size = 0;
24159 tejbeer 554
 
33990 tejus.loha 555
        List<Integer> fofoIds = fofoStoreRepository.selectAll().stream().map(x -> x.getId())
556
                .collect(Collectors.toList());
32887 shampa 557
 
33990 tejus.loha 558
        Map<Integer, CustomRetailer> customRetailerMap = retailerService.getAllFofoRetailers();
32887 shampa 559
 
33990 tejus.loha 560
        Map<Integer, CustomRetailer> customRetailersMap = fofoIds.stream().map(x -> customRetailerMap.get(x))
561
                .filter(x -> x != null).collect(Collectors.toList()).stream()
562
                .collect(Collectors.toMap(x -> x.getPartnerId(), x -> x));
563
        String customRetailers = JSONObject.valueToString(customRetailersMap.values());
564
        Set<String> brands = inventoryService.getAllTagListingBrands(ProfitMandiConstants.MOBILE_CATEGORY_ID);
565
        brands.add("Airtel");
566
        brands.add("Vodafone");
567
        brands.add("Idea");
568
        LOGGER.info("brands" + brands);
569
        model.addAttribute("customRetailers", customRetailers);
570
        model.addAttribute("brands", brands);
32887 shampa 571
 
33990 tejus.loha 572
        if (fofoId != 0) {
573
            promoterInfo = promoterRepository.selectAllPromoterByFofoIdStatus(fofoId, offset, limit, true);
32887 shampa 574
 
33990 tejus.loha 575
            //size = promoterRepository.selectPromoterCount(fofoId);
576
            size = promoterInfo.size();
577
        } else {
578
            //rkb
579
            promoterInfo = promoterRepository.selectAllPromoterStatus(offset, limit, true);
32887 shampa 580
 
33990 tejus.loha 581
            //size = promoterRepository.selectAllCount();
582
            size = promoterInfo.size();
583
        }
584
        if (!promoterInfo.isEmpty()) {
585
            Set<Integer> partnerIds = new HashSet<>();
32887 shampa 586
 
33990 tejus.loha 587
            for (Promoter promoterdetail : promoterInfo) {
588
                partnerIds.add(promoterdetail.getRetailerId());
589
            }
590
            Map<Integer, CustomRetailer> partnersMap = null;
591
            if (!partnerIds.equals(null)) {
592
                LOGGER.info("partnerIds" + partnerIds);
32887 shampa 593
 
33990 tejus.loha 594
                partnersMap = partnerIds.stream().map(x -> customRetailerMap.get(x)).filter(x -> x != null)
595
                        .collect(Collectors.toList()).stream().collect(Collectors.toMap(x -> x.getPartnerId(), x -> x));
32887 shampa 596
 
33990 tejus.loha 597
            }
32887 shampa 598
 
33990 tejus.loha 599
            LOGGER.info("partnerIds" + partnersMap);
600
            model.addAttribute("promoterInfo", promoterInfo);
601
            model.addAttribute("partnersMap", partnersMap);
602
            model.addAttribute("start", offset + 1);
603
            model.addAttribute("size", size);
604
            model.addAttribute("url", "/getPaginatedPromoterInfo");
32887 shampa 605
 
33990 tejus.loha 606
            if (promoterInfo.size() < limit) {
607
                model.addAttribute("end", offset + promoterInfo.size());
608
            } else {
609
                model.addAttribute("end", offset + limit);
610
            }
611
        } else {
612
            model.addAttribute("promoterInfo", promoterInfo);
613
            model.addAttribute("size", size);
614
        }
615
        return "promoter-info";
32887 shampa 616
 
33990 tejus.loha 617
    }
32887 shampa 618
 
33990 tejus.loha 619
    @RequestMapping(value = "/getPromoterInactive", method = RequestMethod.GET)
32887 shampa 620
 
33990 tejus.loha 621
    public String getShowPromoterInactiveInfo(HttpServletRequest request,
622
                                              @RequestParam(name = "offset", defaultValue = "0") int offset,
623
                                              @RequestParam(name = "limit", defaultValue = "10") int limit,
624
                                              @RequestParam(name = "fofoId", required = false, defaultValue = "0") int fofoId, Model model)
625
            throws Exception {
626
        //LOGGER.info("requested url : " + request.getRequestURL().toString());
627
        List<Promoter> promoterInfo = null;
628
        long size = 0;
32887 shampa 629
 
33990 tejus.loha 630
        List<Integer> fofoIds = fofoStoreRepository.selectAll().stream().map(x -> x.getId())
631
                .collect(Collectors.toList());
32887 shampa 632
 
33990 tejus.loha 633
        Map<Integer, CustomRetailer> customRetailerMap = retailerService.getAllFofoRetailers();
27489 tejbeer 634
 
33990 tejus.loha 635
        Map<Integer, CustomRetailer> customRetailersMap = fofoIds.stream().map(x -> customRetailerMap.get(x))
636
                .filter(x -> x != null).collect(Collectors.toList()).stream()
637
                .collect(Collectors.toMap(x -> x.getPartnerId(), x -> x));
638
        String customRetailers = JSONObject.valueToString(customRetailersMap.values());
639
        Set<String> brands = inventoryService.getAllTagListingBrands(ProfitMandiConstants.MOBILE_CATEGORY_ID);
640
        brands.add("Airtel");
641
        brands.add("Vodafone");
642
        brands.add("Idea");
643
        LOGGER.info("brands" + brands);
644
        model.addAttribute("customRetailers", customRetailers);
645
        model.addAttribute("brands", brands);
30426 tejbeer 646
 
33990 tejus.loha 647
        if (fofoId != 0) {
648
            promoterInfo = promoterRepository.selectAllPromoterByFofoIdStatus(fofoId, offset, limit, false);
30426 tejbeer 649
 
33990 tejus.loha 650
            //size = promoterRepository.selectPromoterCount(fofoId);
651
            size = promoterInfo.size();
24159 tejbeer 652
 
33990 tejus.loha 653
        } else {
654
            //rkb
655
            promoterInfo = promoterRepository.selectAllPromoterStatus(offset, limit, false);
24159 tejbeer 656
 
33990 tejus.loha 657
            //size = promoterRepository.selectAllCount();
658
            size = promoterInfo.size();
27489 tejbeer 659
 
33990 tejus.loha 660
        }
661
        if (!promoterInfo.isEmpty()) {
662
            Set<Integer> partnerIds = new HashSet<>();
27489 tejbeer 663
 
33990 tejus.loha 664
            for (Promoter promoterdetail : promoterInfo) {
665
                partnerIds.add(promoterdetail.getRetailerId());
666
            }
667
            Map<Integer, CustomRetailer> partnersMap = null;
668
            if (!partnerIds.equals(null)) {
669
                LOGGER.info("partnerIds" + partnerIds);
27489 tejbeer 670
 
33990 tejus.loha 671
                partnersMap = partnerIds.stream().map(x -> customRetailerMap.get(x)).filter(x -> x != null)
672
                        .collect(Collectors.toList()).stream().collect(Collectors.toMap(x -> x.getPartnerId(), x -> x));
24159 tejbeer 673
 
33990 tejus.loha 674
            }
30426 tejbeer 675
 
33990 tejus.loha 676
            LOGGER.info("partnerIds" + partnersMap);
677
            model.addAttribute("promoterInfo", promoterInfo);
678
            model.addAttribute("partnersMap", partnersMap);
679
            model.addAttribute("start", offset + 1);
680
            model.addAttribute("size", size);
681
            model.addAttribute("url", "/getPaginatedPromoterInactiveInfo");
30426 tejbeer 682
 
33990 tejus.loha 683
            if (promoterInfo.size() < limit) {
684
                model.addAttribute("end", offset + promoterInfo.size());
685
            } else {
686
                model.addAttribute("end", offset + limit);
687
            }
688
        } else {
689
            model.addAttribute("promoterInfo", promoterInfo);
690
            model.addAttribute("size", size);
691
        }
692
        return "promoter-inactive";
24349 amit.gupta 693
 
33990 tejus.loha 694
    }
24159 tejbeer 695
 
33990 tejus.loha 696
    @RequestMapping(value = "/getPaginatedPromoterInfo", method = RequestMethod.GET)
697
    public String getPaginatedPromoterInfo(HttpServletRequest request,
698
                                           @RequestParam(name = "offset", defaultValue = "0") int offset,
699
                                           @RequestParam(name = "limit", defaultValue = "10") int limit,
700
                                           @RequestParam(name = "fofoId", required = false, defaultValue = "0") int fofoId, Model model)
701
            throws ProfitMandiBusinessException {
702
        LOGGER.info("requested offset=[{}], limit = [{}]", offset, limit);
703
        List<Promoter> promoterInfo = null;
704
        if (fofoId != 0) {
705
            promoterInfo = promoterRepository.selectAllPromoterByFofoIdStatus(fofoId, offset, limit, true);
706
        } else {
707
            promoterInfo = promoterRepository.selectAllPromoterStatus(offset, limit, true);
708
        }
709
        LOGGER.info("promoterInfo" + promoterInfo);
710
        if (!promoterInfo.isEmpty()) {
711
            Set<Integer> partnerIds = new HashSet<>();
24159 tejbeer 712
 
33990 tejus.loha 713
            for (Promoter promoterdetail : promoterInfo) {
714
                partnerIds.add(promoterdetail.getRetailerId());
715
            }
716
            Map<Integer, CustomRetailer> partnersMap = null;
717
            if (!partnerIds.equals(null)) {
718
                LOGGER.info("partnerIds" + partnerIds);
24349 amit.gupta 719
 
33990 tejus.loha 720
                Map<Integer, CustomRetailer> customRetailerMap = retailerService.getAllFofoRetailers();
32887 shampa 721
 
33990 tejus.loha 722
                partnersMap = partnerIds.stream().map(x -> customRetailerMap.get(x)).filter(x -> x != null)
723
                        .collect(Collectors.toList()).stream().collect(Collectors.toMap(x -> x.getPartnerId(), x -> x));
24159 tejbeer 724
 
33990 tejus.loha 725
            }
30426 tejbeer 726
 
33990 tejus.loha 727
            LOGGER.info("partnerIds" + partnersMap);
728
            model.addAttribute("promoterInfo", promoterInfo);
729
            model.addAttribute("partnersMap", partnersMap);
730
            model.addAttribute("url", "/getPaginatedPromoterInfo");
731
        } else {
732
            model.addAttribute("promoterInfo", promoterInfo);
30426 tejbeer 733
 
33990 tejus.loha 734
        }
30426 tejbeer 735
 
33990 tejus.loha 736
        return "promoter-info-paginated";
737
    }
24349 amit.gupta 738
 
33990 tejus.loha 739
    @RequestMapping(value = "/getPaginatedPromoterInactiveInfo", method = RequestMethod.GET)
740
    public String getPaginatedPromoterInactiveInfo(HttpServletRequest request,
741
                                                   @RequestParam(name = "offset", defaultValue = "0") int offset,
742
                                                   @RequestParam(name = "limit", defaultValue = "10") int limit,
743
                                                   @RequestParam(name = "fofoId", required = false, defaultValue = "0") int fofoId, Model model)
744
            throws ProfitMandiBusinessException {
745
        LOGGER.info("requested offset=[{}], limit = [{}]", offset, limit);
746
        List<Promoter> promoterInfo = null;
747
        if (fofoId != 0) {
748
            promoterInfo = promoterRepository.selectAllPromoterByFofoIdStatus(fofoId, offset, limit, false);
749
        } else {
750
            promoterInfo = promoterRepository.selectAllPromoterStatus(offset, limit, false);
751
        }
752
        LOGGER.info("promoterInfo" + promoterInfo);
753
        if (!promoterInfo.isEmpty()) {
754
            Set<Integer> partnerIds = new HashSet<>();
24159 tejbeer 755
 
33990 tejus.loha 756
            for (Promoter promoterdetail : promoterInfo) {
757
                partnerIds.add(promoterdetail.getRetailerId());
758
            }
759
            Map<Integer, CustomRetailer> partnersMap = null;
760
            if (!partnerIds.equals(null)) {
761
                LOGGER.info("partnerIds" + partnerIds);
24159 tejbeer 762
 
33990 tejus.loha 763
                Map<Integer, CustomRetailer> customRetailerMap = retailerService.getAllFofoRetailers();
24159 tejbeer 764
 
33990 tejus.loha 765
                partnersMap = partnerIds.stream().map(x -> customRetailerMap.get(x)).filter(x -> x != null)
766
                        .collect(Collectors.toList()).stream().collect(Collectors.toMap(x -> x.getPartnerId(), x -> x));
32887 shampa 767
 
33990 tejus.loha 768
            }
32887 shampa 769
 
33990 tejus.loha 770
            LOGGER.info("partnerIds" + partnersMap);
771
            model.addAttribute("promoterInfo", promoterInfo);
772
            model.addAttribute("partnersMap", partnersMap);
773
            model.addAttribute("url", "/getPaginatedPromoterInactiveInfo");
774
        } else {
775
            model.addAttribute("promoterInfo", promoterInfo);
32887 shampa 776
 
33990 tejus.loha 777
        }
32887 shampa 778
 
33990 tejus.loha 779
        return "promoter-inactive-info-paginated";
780
    }
32887 shampa 781
 
33990 tejus.loha 782
    @RequestMapping(value = "/createPromoter", method = RequestMethod.POST)
783
    public String createPromoter(HttpServletRequest request, @RequestBody PromoterDetailModel promoterdetailModel,
784
                                 Model model) throws Exception {
785
        LOGGER.info("requested url : " + request.getRequestURL().toString());
786
        LOGGER.info("requested url : " + promoterdetailModel);
787
        Promoter promoter = promoterRepository.selectById(promoterdetailModel.getId());
788
        if (promoter == null) {
789
            promoter = new Promoter();
790
            promoter.setBrand(promoterdetailModel.getBrand());
791
            promoter.setRetailerId(promoterdetailModel.getRetailerId());
792
            promoter.setCreatedTimestamp(LocalDateTime.now());
793
            promoter.setEmail(promoterdetailModel.getEmail());
794
            promoter.setName(promoterdetailModel.getName());
795
            promoter.setMobile(promoterdetailModel.getMobile());
796
            promoter.setSdPortalAccess(promoterdetailModel.isSdPortalAccess());
797
            promoter.setStatus(promoterdetailModel.isStatus());
798
            promoterRepository.persist(promoter);
32887 shampa 799
 
33990 tejus.loha 800
            List<Promoter> promoters = promoterRepository.selectAllByRetailer(promoterdetailModel.getRetailerId());
801
            if (!promoters.isEmpty()) {
802
                FofoStore fs = fofoStoreRepository.selectByRetailerId(promoterdetailModel.getRetailerId());
803
                PartnerOnBoardingPanel pobp = partnerOnBoardingPanelRepository.selectByCode(fs.getCode());
804
                if (pobp != null) {
805
                    storeTimelineTatService.promoterComplete(pobp.getId());
806
                }
807
            }
32887 shampa 808
 
33990 tejus.loha 809
        } else {
810
            promoter.setEmail(promoterdetailModel.getEmail());
811
            promoter.setName(promoterdetailModel.getName());
812
            promoter.setMobile(promoterdetailModel.getMobile());
813
            promoter.setSdPortalAccess(promoterdetailModel.isSdPortalAccess());
814
            promoter.setStatus(promoterdetailModel.isStatus());
815
        }
816
        LOGGER.info("sdport" + promoterdetailModel.isStatus());
26131 tejbeer 817
 
33990 tejus.loha 818
        model.addAttribute("response1", mvcResponseSender.createResponseString(true));
28908 tejbeer 819
 
33990 tejus.loha 820
        return "response";
24159 tejbeer 821
 
33990 tejus.loha 822
    }
24159 tejbeer 823
 
33990 tejus.loha 824
    @RequestMapping(value = "/setPromoterInActive", method = RequestMethod.POST)
825
    public String PromoterInActive(HttpServletRequest request, @RequestParam(name = "id", required = true, defaultValue = "0") int id, Model model) throws Exception {
24159 tejbeer 826
 
33990 tejus.loha 827
        Promoter promoter = promoterRepository.selectById(id);
24159 tejbeer 828
 
33990 tejus.loha 829
        promoter.setStatus(false);
32887 shampa 830
 
33990 tejus.loha 831
        model.addAttribute("response1", mvcResponseSender.createResponseString(true));
32887 shampa 832
 
33990 tejus.loha 833
        return "response";
834
    }
32887 shampa 835
 
33990 tejus.loha 836
    @RequestMapping(value = "/removePromoterfromPartnerStore", method = RequestMethod.POST)
837
    public String removePromoterfromPartnerStore(HttpServletRequest request,
838
                                                 @RequestParam(name = "id", defaultValue = "0") int id, Model model) throws Exception {
32887 shampa 839
 
33990 tejus.loha 840
        Promoter promoter = promoterRepository.selectById(id);
841
        promoter.setStatus(false);
842
        model.addAttribute("response1", mvcResponseSender.createResponseString(true));
32887 shampa 843
 
33990 tejus.loha 844
        return "response";
845
    }
24159 tejbeer 846
 
33990 tejus.loha 847
    @RequestMapping(value = "/activePromoterfromPartnerStore", method = RequestMethod.POST)
848
    public String activePromoterfromPartnerStore(HttpServletRequest request,
849
                                                 @RequestParam(name = "id", defaultValue = "0") int id, Model model) throws Exception {
24159 tejbeer 850
 
33990 tejus.loha 851
        Promoter promoter = promoterRepository.selectById(id);
852
        promoter.setStatus(true);
853
        model.addAttribute("response1", mvcResponseSender.createResponseString(true));
32887 shampa 854
 
33990 tejus.loha 855
        return "response";
856
    }
24159 tejbeer 857
 
33990 tejus.loha 858
    @RequestMapping(value = "/addLocation", method = RequestMethod.POST)
859
    public String addLocation(HttpServletRequest request, @RequestBody AddLocationModel addLocationModel, Model model)
860
            throws Exception {
24159 tejbeer 861
 
33990 tejus.loha 862
        Location location = new Location();
863
        location.setName(addLocationModel.getName());
864
        location.setLine1(addLocationModel.getLine1());
865
        location.setLine2(addLocationModel.getLine2());
866
        location.setCity(addLocationModel.getCity());
867
        location.setState(addLocationModel.getState());
868
        location.setPin(addLocationModel.getPin());
24159 tejbeer 869
 
33990 tejus.loha 870
        LOGGER.info("PostLocation" + location);
871
        locationRepository.persist(location);
24159 tejbeer 872
 
33990 tejus.loha 873
        User user = userRepository.selectById(addLocationModel.getUserId());
874
        user.setLocation(location.getId());
875
        userRepository.persist(user);
24159 tejbeer 876
 
33990 tejus.loha 877
        model.addAttribute("response1", mvcResponseSender.createResponseString(true));
878
        return "response";
24159 tejbeer 879
 
33990 tejus.loha 880
    }
24159 tejbeer 881
 
33990 tejus.loha 882
    @RequestMapping(value = "/updateLocation", method = RequestMethod.POST)
883
    public String updateLocation(HttpServletRequest request, @RequestBody AddLocationModel addLocationModel,
884
                                 Model model) throws Exception {
24159 tejbeer 885
 
33990 tejus.loha 886
        Location userlocation = locationRepository.selectById(addLocationModel.getUserId());
24159 tejbeer 887
 
33990 tejus.loha 888
        userlocation.setName(addLocationModel.getName());
889
        userlocation.setCity(addLocationModel.getCity());
890
        userlocation.setLine1(addLocationModel.getLine1());
891
        userlocation.setLine2(addLocationModel.getLine2());
892
        userlocation.setPin(addLocationModel.getPin());
893
        userlocation.setState(addLocationModel.getState());
24159 tejbeer 894
 
33990 tejus.loha 895
        locationRepository.persist(userlocation);
24159 tejbeer 896
 
33990 tejus.loha 897
        model.addAttribute("response1", mvcResponseSender.createResponseString(true));
898
        return "response";
24159 tejbeer 899
 
33990 tejus.loha 900
    }
24159 tejbeer 901
 
33990 tejus.loha 902
    @RequestMapping(value = "/getPartnerReadonlyInfo")
903
    public String getPartnerReadonlyInfo(HttpServletRequest request, Model model) throws Exception {
24159 tejbeer 904
 
33990 tejus.loha 905
        LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
906
        AuthUser authUser = authRepository.selectByEmailOrMobile(loginDetails.getEmailId());
27231 tejbeer 907
 
33990 tejus.loha 908
        Map<Integer, List<Integer>> pp = csService.getAuthUserIdPartnerIdMapping();
27231 tejbeer 909
 
33990 tejus.loha 910
        Set<Integer> fofoIds = new HashSet<>(pp.get(authUser.getId()));
27231 tejbeer 911
 
33990 tejus.loha 912
        Map<Integer, CustomRetailer> customRetailersMap = fofoIds.stream().map(x -> {
913
            try {
914
                return retailerService.getFofoRetailer(x);
915
            } catch (ProfitMandiBusinessException e) {
916
                // TODO Auto-generated catch block
917
                return null;
918
            }
919
        }).filter(x -> x != null).collect(Collectors.toMap(x -> x.getPartnerId(), x -> x));
27231 tejbeer 920
 
33990 tejus.loha 921
        model.addAttribute("customRetailersMap", customRetailersMap);
27231 tejbeer 922
 
33990 tejus.loha 923
        return "partner-readonly-info";
27243 tejbeer 924
 
33990 tejus.loha 925
    }
27231 tejbeer 926
 
33990 tejus.loha 927
    @RequestMapping(value = "/getBlockBrandMapping")
928
    public String getBlockBrandMapping(HttpServletRequest request, Model model) throws Exception {
27231 tejbeer 929
 
33990 tejus.loha 930
        int fofoId = Utils.SYSTEM_PARTNER_ID;
931
        Set<String> brands = null;
28071 tejbeer 932
 
33990 tejus.loha 933
        brands = mongoClient.getMongoBrands(fofoId, null, 3).stream().map(x -> (String) x.get("name"))
934
                .collect(Collectors.toSet());
28071 tejbeer 935
 
33990 tejus.loha 936
        LOGGER.info("brands" + brands);
937
        model.addAttribute("brands", brands);
28071 tejbeer 938
 
33990 tejus.loha 939
        return "block-brand-mapping";
28071 tejbeer 940
 
33990 tejus.loha 941
    }
28071 tejbeer 942
 
33990 tejus.loha 943
    @RequestMapping(value = "/getBlockBrand")
944
    public String getBlockBrand(HttpServletRequest request,
945
                                @RequestParam(name = "brand", required = true, defaultValue = "0") String brand, Model model)
946
            throws Exception {
28071 tejbeer 947
 
33990 tejus.loha 948
        List<RetailerBlockBrands> retailerBlockBrands = retailerBlockBrandsRepository.selectAllByBrands(brand);
28071 tejbeer 949
 
33990 tejus.loha 950
        List<Integer> blockBrandPartners = retailerBlockBrands.stream().map(x -> x.getFofoId())
951
                .collect(Collectors.toList());
952
        Map<Integer, CustomRetailer> customRetailers = retailerService.getFofoRetailers(true);
28071 tejbeer 953
 
33990 tejus.loha 954
        LOGGER.info("retailerBlockBrands" + retailerBlockBrands);
955
        model.addAttribute("blockBrandPartners", blockBrandPartners);
956
        model.addAttribute("retailerBlockBrands", retailerBlockBrands);
957
        model.addAttribute("customRetailers", customRetailers);
28272 tejbeer 958
 
33990 tejus.loha 959
        return "retailer-block-brand";
28071 tejbeer 960
 
33990 tejus.loha 961
    }
28071 tejbeer 962
 
33990 tejus.loha 963
    @RequestMapping(value = "/getRetailerBlockBrandMappping", method = RequestMethod.POST)
964
    public String getBlockBrandMappping(HttpServletRequest request,
965
                                        @RequestParam(name = "brand", required = true, defaultValue = "0") String brand,
966
                                        @RequestParam(name = "fofoIds", required = true, defaultValue = "0") List<Integer> fofoIds, Model model)
967
            throws Exception {
968
        List<RetailerBlockBrands> retailerBlockBrands = retailerBlockBrandsRepository.selectAllByBrands(brand);
969
        if (!retailerBlockBrands.isEmpty()) {
970
            retailerBlockBrandsRepository.deleteAllbyBrands(brand);
971
        }
28071 tejbeer 972
 
33990 tejus.loha 973
        for (int id : fofoIds) {
974
            RetailerBlockBrands retailerBlockBrand = new RetailerBlockBrands();
975
            retailerBlockBrand.setFofoId(id);
976
            retailerBlockBrand.setBlockBrands(brand);
977
            retailerBlockBrandsRepository.persist(retailerBlockBrand);
28071 tejbeer 978
 
33990 tejus.loha 979
        }
980
        model.addAttribute("response1", mvcResponseSender.createResponseString(true));
28071 tejbeer 981
 
33990 tejus.loha 982
        return "response";
983
    }
28071 tejbeer 984
 
33990 tejus.loha 985
    @RequestMapping(value = "/getBrandslimit", method = RequestMethod.GET)
986
    public String getBrandslimit(HttpServletRequest request, Model model) throws Exception {
28071 tejbeer 987
 
33990 tejus.loha 988
        int fofoId = Utils.SYSTEM_PARTNER_ID;
32731 ranu 989
 
33990 tejus.loha 990
        List<String> brands = brandsService.getBrandsToDisplay(3).stream().map(x -> x.getName()).collect(Collectors.toList());
991
        model.addAttribute("brands", brands);
28272 tejbeer 992
 
33990 tejus.loha 993
        return "brands-limit";
28272 tejbeer 994
 
33990 tejus.loha 995
    }
28272 tejbeer 996
 
33990 tejus.loha 997
    @RequestMapping(value = "/setUpdateLimit", method = RequestMethod.POST)
998
    public String getUpdateLimit(HttpServletRequest request,
999
                                 @RequestParam(name = "brand", required = true, defaultValue = "0") String brand,
1000
                                 @RequestParam(name = "fofoId", required = true, defaultValue = "0") int fofoId,
1001
                                 @RequestParam(name = "limit", required = true, defaultValue = "0") float limit,
1002
                                 @RequestParam(name = "minStockLimit", required = true, defaultValue = "0") float minStockLimit,
1003
                                 @RequestParam(name = "preLimit", required = true, defaultValue = "0") float preLimit,
1004
                                 @RequestParam(name = "preStockLimit", required = true, defaultValue = "0") float preStockLimit, Model model)
1005
            throws Exception {
28272 tejbeer 1006
 
33990 tejus.loha 1007
        CustomRetailer cr = retailerService.getFofoRetailer(fofoId);
28272 tejbeer 1008
 
33990 tejus.loha 1009
        Map.Entry<Integer, CustomRetailer> customRetailers = new AbstractMap.SimpleEntry(cr.getPartnerId(), cr);
28272 tejbeer 1010
 
33990 tejus.loha 1011
        // Map<Integer, CustomRetailer> customRetailers =
1012
        // retailerService.getFofoRetailers(true);
28277 tejbeer 1013
 
33990 tejus.loha 1014
        RetailerBrandsLimit retailerBrands = retailerBrandsLimitRepository.selectLimitByBrandAndFofoId(fofoId, brand);
28277 tejbeer 1015
 
33990 tejus.loha 1016
        if (retailerBrands == null) {
1017
            retailerBrands = new RetailerBrandsLimit();
1018
            retailerBrands.setMinStockLimit(minStockLimit);
1019
            retailerBrands.setBrandLimit(limit);
1020
            retailerBrands.setIsUpdate(1);
1021
            retailerBrands.setCreatedTimestamp(LocalDateTime.now());
1022
            retailerBrands.setPartnerId(fofoId);
1023
            retailerBrands.setBrandName(brand);
1024
            retailerBrands.setUpdatedTimestamp(LocalDateTime.now());
1025
            retailerBrandsLimitRepository.persist(retailerBrands);
1026
        } else {
1027
            retailerBrands.setMinStockLimit(minStockLimit);
1028
            retailerBrands.setBrandLimit(limit);
1029
            retailerBrands.setIsUpdate(1);
1030
            retailerBrands.setUpdatedTimestamp(LocalDateTime.now());
1031
            retailerBrandsLimitRepository.persist(retailerBrands);
30028 manish 1032
 
33990 tejus.loha 1033
        }
1034
        retailerBrands = retailerBrandsLimitRepository.selectLimitByBrandAndFofoId(fofoId, brand);
28277 tejbeer 1035
 
33990 tejus.loha 1036
        Map<Integer, RetailerBrandsLimit> retailerBrandsLimitMap = new HashMap<>();
28272 tejbeer 1037
 
33990 tejus.loha 1038
        retailerBrandsLimitMap.put(retailerBrands.getPartnerId(), retailerBrands);
28272 tejbeer 1039
 
33990 tejus.loha 1040
        BrandLimit brandLimit = brandLimitRepository.setLimitByBrands(brand);
28272 tejbeer 1041
 
33990 tejus.loha 1042
        model.addAttribute("retailerBrandsLimitMap", retailerBrandsLimitMap);
1043
        model.addAttribute("brandLimit", brandLimit);
1044
        model.addAttribute("customRetailers", customRetailers);
28272 tejbeer 1045
 
33990 tejus.loha 1046
        model.addAttribute("brand", brand);
1047
        return "brands-limit-row-mapping";
28272 tejbeer 1048
 
33990 tejus.loha 1049
    }
28277 tejbeer 1050
 
33990 tejus.loha 1051
    @RequestMapping(value = "/getRetailerBrandslimitMapping", method = RequestMethod.GET)
1052
    public String getRetailerBrandslimit(HttpServletRequest request,
1053
                                         @RequestParam(name = "brand", required = true, defaultValue = "0") String brand, Model model)
1054
            throws Exception {
28272 tejbeer 1055
 
33990 tejus.loha 1056
        Map<Integer, CustomRetailer> customRetailers = retailerService.getFofoRetailers(true);
1057
        List<RetailerBrandsLimit> retailerBrandsLimit = retailerBrandsLimitRepository.setAllLimitByBrand(brand);
1058
        Map<Integer, RetailerBrandsLimit> retailerBrandsLimitMap = retailerBrandsLimit.stream()
1059
                .collect(Collectors.toMap(x -> x.getPartnerId(), x -> x));
28272 tejbeer 1060
 
33990 tejus.loha 1061
        model.addAttribute("customRetailers", customRetailers);
1062
        model.addAttribute("brand", brand);
1063
        model.addAttribute("retailerBrandsLimitMap", retailerBrandsLimitMap);
28272 tejbeer 1064
 
33990 tejus.loha 1065
        BrandLimit brandLimit = brandLimitRepository.setLimitByBrands(brand);
28272 tejbeer 1066
 
33990 tejus.loha 1067
        model.addAttribute("brandLimit", brandLimit);
28272 tejbeer 1068
 
33990 tejus.loha 1069
        return "brands-limit-mapping";
28272 tejbeer 1070
 
33990 tejus.loha 1071
    }
28272 tejbeer 1072
 
33990 tejus.loha 1073
    @RequestMapping(value = "/setBrandWiseLimit", method = RequestMethod.POST)
1074
    public String brandwiseLimit(HttpServletRequest request,
1075
                                 @RequestParam(name = "brands", required = true, defaultValue = "") String brands,
1076
                                 @RequestParam(name = "limit", required = true, defaultValue = "") float limit, Model model)
1077
            throws Exception {
28272 tejbeer 1078
 
33990 tejus.loha 1079
        LOGGER.info("limit" + limit);
30426 tejbeer 1080
 
33990 tejus.loha 1081
        BrandLimit brandLimit = brandLimitRepository.setLimitByBrands(brands);
28272 tejbeer 1082
 
33990 tejus.loha 1083
        List<RetailerBrandsLimit> retailerBrandsLimit = retailerBrandsLimitRepository.setAllLimitByBrand(brands);
28272 tejbeer 1084
 
33990 tejus.loha 1085
        Map<Integer, RetailerBrandsLimit> retailerBrandsLimitMap = retailerBrandsLimit.stream()
1086
                .collect(Collectors.toMap(x -> x.getPartnerId(), x -> x));
28272 tejbeer 1087
 
33990 tejus.loha 1088
        Map<Integer, CustomRetailer> customRetailers = retailerService.getFofoRetailers(true);
28272 tejbeer 1089
 
33990 tejus.loha 1090
        if (brandLimit == null) {
28272 tejbeer 1091
 
33990 tejus.loha 1092
            brandLimit = new BrandLimit();
1093
            brandLimit.setBrandLimit(limit);
1094
            brandLimit.setBrandName(brands);
1095
            brandLimit.setCreatedTimestamp(LocalDateTime.now());
1096
            brandLimit.setUpdatedTimestamp(LocalDateTime.now());
1097
            brandLimitRepository.persist(brandLimit);
28272 tejbeer 1098
 
33990 tejus.loha 1099
        } else {
1100
            brandLimit.setBrandLimit(limit);
28272 tejbeer 1101
 
33990 tejus.loha 1102
            brandLimit.setUpdatedTimestamp(LocalDateTime.now());
1103
            brandLimitRepository.persist(brandLimit);
28272 tejbeer 1104
 
33990 tejus.loha 1105
        }
1106
        brandLimit = brandLimitRepository.setLimitByBrands(brands);
30028 manish 1107
 
33990 tejus.loha 1108
        LOGGER.info("brandLimit" + brandLimit);
1109
        model.addAttribute("brand", brands);
1110
        model.addAttribute("brandLimit", brandLimit);
1111
        model.addAttribute("customRetailers", customRetailers);
1112
        model.addAttribute("retailerBrandsLimitMap", retailerBrandsLimitMap);
1113
        return "brands-limit-mapping";
28272 tejbeer 1114
 
33990 tejus.loha 1115
    }
28272 tejbeer 1116
 
33990 tejus.loha 1117
    @RequestMapping(value = "/setBrandWiseStockLimit", method = RequestMethod.POST)
1118
    public String setBrandWiseStockLimit(HttpServletRequest request,
1119
                                         @RequestParam(name = "brands", required = true, defaultValue = "") String brands,
1120
                                         @RequestParam(name = "stockLimit", required = true, defaultValue = "") float stockLimit, Model model)
1121
            throws Exception {
28272 tejbeer 1122
 
33990 tejus.loha 1123
        LOGGER.info("limit" + stockLimit);
28272 tejbeer 1124
 
33990 tejus.loha 1125
        BrandLimit brandLimit = brandLimitRepository.setLimitByBrands(brands);
28825 tejbeer 1126
 
33990 tejus.loha 1127
        List<RetailerBrandsLimit> retailerBrandsLimit = retailerBrandsLimitRepository.setAllLimitByBrand(brands);
30028 manish 1128
 
33990 tejus.loha 1129
        Map<Integer, RetailerBrandsLimit> retailerBrandsLimitMap = retailerBrandsLimit.stream()
1130
                .collect(Collectors.toMap(x -> x.getPartnerId(), x -> x));
30028 manish 1131
 
33990 tejus.loha 1132
        Map<Integer, CustomRetailer> customRetailers = retailerService.getFofoRetailers(true);
30028 manish 1133
 
33990 tejus.loha 1134
        if (brandLimit == null) {
30028 manish 1135
 
33990 tejus.loha 1136
            brandLimit = new BrandLimit();
1137
            brandLimit.setBrandLimit(0);
1138
            brandLimit.setBrandName(brands);
1139
            brandLimit.setStockLimit(stockLimit);
1140
            brandLimit.setCreatedTimestamp(LocalDateTime.now());
1141
            brandLimit.setUpdatedTimestamp(LocalDateTime.now());
1142
            brandLimitRepository.persist(brandLimit);
30028 manish 1143
 
33990 tejus.loha 1144
        } else {
1145
            brandLimit.setStockLimit(stockLimit);
30028 manish 1146
 
33990 tejus.loha 1147
            brandLimit.setUpdatedTimestamp(LocalDateTime.now());
1148
            brandLimitRepository.persist(brandLimit);
30028 manish 1149
 
33990 tejus.loha 1150
        }
1151
        brandLimit = brandLimitRepository.setLimitByBrands(brands);
30028 manish 1152
 
33990 tejus.loha 1153
        model.addAttribute("brand", brands);
1154
        model.addAttribute("brandLimit", brandLimit);
1155
        model.addAttribute("customRetailers", customRetailers);
1156
        model.addAttribute("retailerBrandsLimitMap", retailerBrandsLimitMap);
1157
        return "brands-limit-mapping";
30028 manish 1158
 
33990 tejus.loha 1159
    }
30028 manish 1160
 
33990 tejus.loha 1161
    @RequestMapping(value = "/setPartnerPincode", method = RequestMethod.POST)
1162
    public String setPartnerPincode(HttpServletRequest request,
1163
                                    @RequestParam(name = "pincode", required = true, defaultValue = "") String pincode,
1164
                                    @RequestParam(name = "fofoId", required = true, defaultValue = "") int fofoId, Model model)
1165
            throws Exception {
30028 manish 1166
 
33990 tejus.loha 1167
        if (!pincode.equals("")) {
1168
            PincodePartner pinPartner = new PincodePartner();
1169
            pinPartner.setFofoId(fofoId);
1170
            pinPartner.setPincode(pincode);
1171
            pincodePartnerRepository.perist(pinPartner);
1172
        }
30028 manish 1173
 
33990 tejus.loha 1174
        List<PincodePartner> partnerPincodeList = pincodePartnerRepository.selectByPartnerId(fofoId);
30028 manish 1175
 
33990 tejus.loha 1176
        LOGGER.info("partnerPincodeList" + partnerPincodeList);
30028 manish 1177
 
33990 tejus.loha 1178
        model.addAttribute("partnerPincodeList", partnerPincodeList);
1179
        return "pincode-partner-index";
28272 tejbeer 1180
 
33990 tejus.loha 1181
    }
28381 tejbeer 1182
 
33990 tejus.loha 1183
    @RequestMapping(value = "/removePartnerPincode", method = RequestMethod.POST)
1184
    public String removePartnerPincode(HttpServletRequest request, @RequestParam int id,
1185
                                       @RequestParam(name = "fofoId", required = true, defaultValue = "") int fofoId, Model model)
1186
            throws Exception {
28825 tejbeer 1187
 
33990 tejus.loha 1188
        pincodePartnerRepository.delete(id);
28825 tejbeer 1189
 
33990 tejus.loha 1190
        List<PincodePartner> partnerPincodeList = pincodePartnerRepository.selectByPartnerId(fofoId);
28381 tejbeer 1191
 
33990 tejus.loha 1192
        LOGGER.info("partnerPincodeList" + partnerPincodeList);
28825 tejbeer 1193
 
33990 tejus.loha 1194
        model.addAttribute("partnerPincodeList", partnerPincodeList);
28381 tejbeer 1195
 
33990 tejus.loha 1196
        return "pincode-partner-index";
28381 tejbeer 1197
 
33990 tejus.loha 1198
    }
28825 tejbeer 1199
 
33990 tejus.loha 1200
    @RequestMapping(value = "/removeSearchPincode", method = RequestMethod.POST)
1201
    public String removeSearchPincode(HttpServletRequest request, @RequestParam int id,
1202
                                      @RequestParam(name = "pin", required = true, defaultValue = "") String pin,
1203
                                      @RequestParam(name = "fofoId", required = true, defaultValue = "") int fofoId, Model model)
1204
            throws Exception {
28825 tejbeer 1205
 
33990 tejus.loha 1206
        pincodePartnerRepository.delete(id);
28825 tejbeer 1207
 
33990 tejus.loha 1208
        List<PincodePartner> partnerPincodeList = pincodePartnerRepository.selectPartnersByPincode(pin);
28381 tejbeer 1209
 
33990 tejus.loha 1210
        Map<Integer, CustomRetailer> customRetailerMap = retailerService.getFofoRetailers(true);
28825 tejbeer 1211
 
33990 tejus.loha 1212
        model.addAttribute("customRetailerMap", customRetailerMap);
28381 tejbeer 1213
 
33990 tejus.loha 1214
        model.addAttribute("partnerPincodeList", partnerPincodeList);
28381 tejbeer 1215
 
33990 tejus.loha 1216
        return "search-pincode-partner";
28381 tejbeer 1217
 
33990 tejus.loha 1218
    }
28825 tejbeer 1219
 
33990 tejus.loha 1220
    @RequestMapping(value = "/searchPincodePartner", method = RequestMethod.GET)
1221
    public String searchPincodePartner(HttpServletRequest request,
1222
                                       @RequestParam(name = "pincode", required = true, defaultValue = "") String pincode, Model model)
1223
            throws Exception {
28825 tejbeer 1224
 
33990 tejus.loha 1225
        List<PincodePartner> partnerPincodeList = pincodePartnerRepository.selectPartnersByPincode(pincode);
28825 tejbeer 1226
 
33990 tejus.loha 1227
        Map<Integer, CustomRetailer> customRetailerMap = retailerService.getFofoRetailers(true);
28381 tejbeer 1228
 
33990 tejus.loha 1229
        model.addAttribute("customRetailerMap", customRetailerMap);
28825 tejbeer 1230
 
33990 tejus.loha 1231
        model.addAttribute("partnerPincodeList", partnerPincodeList);
28381 tejbeer 1232
 
33990 tejus.loha 1233
        return "search-pincode-partner";
28825 tejbeer 1234
 
33990 tejus.loha 1235
    }
28381 tejbeer 1236
 
33990 tejus.loha 1237
    @RequestMapping(value = "/showPartnerPincode", method = RequestMethod.GET)
1238
    public String showPartnerPincode(HttpServletRequest request,
1239
                                     @RequestParam(name = "partnerId", required = true, defaultValue = "") int partnerId, Model model)
1240
            throws Exception {
28825 tejbeer 1241
 
33990 tejus.loha 1242
        List<PincodePartner> partnerPincodeList = pincodePartnerRepository.selectByPartnerId(partnerId);
28825 tejbeer 1243
 
33990 tejus.loha 1244
        model.addAttribute("partnerPincodeList", partnerPincodeList);
28825 tejbeer 1245
 
33990 tejus.loha 1246
        return "pincode-partner-index";
28825 tejbeer 1247
 
33990 tejus.loha 1248
    }
28381 tejbeer 1249
 
33990 tejus.loha 1250
    @RequestMapping(value = "/getAllPartnerPincode", method = RequestMethod.GET)
1251
    public String getAllPartnerPincode(HttpServletRequest request, Model model) throws Exception {
1252
        return "add-partner-pincode";
1253
    }
28825 tejbeer 1254
 
33990 tejus.loha 1255
    @RequestMapping(value = "/alternateRetailerContacts", method = RequestMethod.GET)
1256
    public String alternateRetailerContacts(HttpServletRequest request, Model model) throws Exception {
1257
        LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
1258
        boolean isAdmin = roleManager.isAdmin(loginDetails.getRoleIds());
28825 tejbeer 1259
 
33990 tejus.loha 1260
        model.addAttribute("isAdmin", isAdmin);
1261
        return "retailer-contacts";
1262
    }
28825 tejbeer 1263
 
33990 tejus.loha 1264
    @RequestMapping(value = "/retailer-contact-list", method = RequestMethod.GET)
1265
    public String getRetailerContactList(HttpServletRequest request, Model model, @RequestParam(defaultValue = "0") int fofoId)
1266
            throws Exception {
28825 tejbeer 1267
 
33990 tejus.loha 1268
        List<RetailerContact> retailerContacts = retailerContactRepository.selectAllByRetailerId(fofoId);
32629 amit.gupta 1269
 
33990 tejus.loha 1270
        model.addAttribute("retailerContacts", retailerContacts);
32667 raveendra. 1271
 
33990 tejus.loha 1272
        return "retailer-contact-list";
33814 ranu 1273
 
33990 tejus.loha 1274
    }
33814 ranu 1275
 
33990 tejus.loha 1276
    @RequestMapping(value = "/add-retailer-contact-list", method = RequestMethod.GET)
1277
    public String updateRetailerContactList(HttpServletRequest request, Model model,
1278
                                            @RequestParam(defaultValue = "0") int fofoId,
1279
                                            @RequestParam String contactName,
1280
                                            @RequestParam String contactNumber) throws Exception {
1281
        RetailerContact retailerContact = new RetailerContact();
1282
        retailerContact.setFofoId(fofoId);
1283
        retailerContact.setName(contactName);
1284
        retailerContact.setMobile(contactNumber);
1285
        retailerContact.setActive(true);
1286
        retailerContact.setCreatedAt(LocalDateTime.now());
1287
        retailerContactRepository.persist(retailerContact);
33814 ranu 1288
 
33990 tejus.loha 1289
        List<RetailerContact> retailerContacts = retailerContactRepository.selectAllByRetailerId(fofoId);
33814 ranu 1290
 
33990 tejus.loha 1291
        model.addAttribute("retailerContacts", retailerContacts);
33814 ranu 1292
 
33990 tejus.loha 1293
        return "retailer-contact-list";
33814 ranu 1294
 
33990 tejus.loha 1295
    }
33814 ranu 1296
 
33990 tejus.loha 1297
    @RequestMapping(value = "/update-contact-status", method = RequestMethod.GET)
1298
    public String updateRetailerContactStatus(HttpServletRequest request, Model model,
1299
                                              @RequestParam(defaultValue = "0") int fofoId,
1300
                                              @RequestParam(defaultValue = "0") int contactId,
1301
                                              @RequestParam boolean active) throws Exception {
33814 ranu 1302
 
33990 tejus.loha 1303
        RetailerContact retailerContact = retailerContactRepository.selectById(contactId);
1304
        retailerContact.setActive(active);
33814 ranu 1305
 
33990 tejus.loha 1306
        List<RetailerContact> retailerContacts = retailerContactRepository.selectAllByRetailerId(fofoId);
33814 ranu 1307
 
33990 tejus.loha 1308
        model.addAttribute("retailerContacts", retailerContacts);
33814 ranu 1309
 
33990 tejus.loha 1310
        return "retailer-contact-list";
33814 ranu 1311
 
33990 tejus.loha 1312
    }
33814 ranu 1313
 
1314
 
28272 tejbeer 1315
}