Subversion Repositories SmartDukaan

Rev

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