Subversion Repositories SmartDukaan

Rev

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