Subversion Repositories SmartDukaan

Rev

Rev 33419 | Rev 33687 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 33419 Rev 33437
Line 182... Line 182...
182
 
182
 
183
 
183
 
184
    @Autowired
184
    @Autowired
185
    PositionRepository positionRepository;
185
    PositionRepository positionRepository;
186
 
186
 
187
    @RequestMapping(value = "/checkplans", method = RequestMethod.GET)
-
 
188
    public String getInsurancePrices(HttpServletRequest request, @RequestParam float price, Model model,
-
 
189
                                     @RequestParam int itemId) throws ProfitMandiBusinessException {
-
 
190
        LOGGER.info("Request received at url : {}", request.getRequestURI());
-
 
191
 
-
 
192
        try {
187
    @Autowired
193
            String response = mvcResponseSender.createResponseString(this.getPlans(price, itemId));
-
 
194
            model.addAttribute("response1", response);
188
    PendingOrderPlanRepository pendingOrderPlanRepository;
195
        } catch (Exception e) {
-
 
196
            // TODO Auto-generated catch block
-
 
197
            LOGGER.info(e.getMessage(), e);
-
 
198
            throw new ProfitMandiBusinessException("Plans", "Plans API", "Error formatting insurance plans");
-
 
199
        }
-
 
200
 
-
 
201
        return "response";
-
 
202
    }
-
 
203
 
189
 
204
    @RequestMapping(value = "/wa-send-invoice", method = RequestMethod.GET)
190
    @RequestMapping(value = "/wa-send-invoice", method = RequestMethod.GET)
205
    public String sendWhatsappMessage(HttpServletRequest request, @RequestParam(name = ProfitMandiConstants.ORDER_ID) int orderId, Model model) {
191
    public String sendWhatsappMessage(HttpServletRequest request, @RequestParam(name = ProfitMandiConstants.ORDER_ID) int orderId, Model model) {
206
        try {
192
        try {
207
            this.sendWhatsappInvoice(fofoOrderRepository.selectByOrderId(orderId));
193
            this.sendWhatsappInvoice(fofoOrderRepository.selectByOrderId(orderId));
Line 513... Line 499...
513
                    paymentOptionTransaction);
499
                    paymentOptionTransaction);
514
        }
500
        }
515
        return paymentOptionIdPaymentOptionTransactionMap;
501
        return paymentOptionIdPaymentOptionTransactionMap;
516
    }
502
    }
517
 
503
 
518
    @RequestMapping(value = "/order")
504
    @RequestMapping(value = "/checkplans", method = RequestMethod.GET)
519
    public String orderIndex(HttpServletRequest request, @RequestParam(name = "cartData") String cartData, Model model)
505
    public String getInsurancePrices(HttpServletRequest request, @RequestParam float price, Model model,
520
            throws ProfitMandiBusinessException {
-
 
521
        LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
-
 
522
 
-
 
523
        int addressId = retailerRegisteredAddressRepository.selectAddressIdByRetailerId(loginDetails.getFofoId());
506
                                     @RequestParam int itemId, @RequestParam int poiId) throws ProfitMandiBusinessException {
524
        Address address = addressRepository.selectById(addressId);
-
 
525
 
-
 
526
        List<CartFofo> cartItems = orderService.cartCheckout(cartData);
-
 
527
        Set<Integer> itemIds = new HashSet<>();
-
 
528
        List<Integer> poIds = new ArrayList<>();
-
 
529
        List<Integer> poItemIds = new ArrayList<>();
-
 
530
        for (CartFofo cartFofo : cartItems) {
-
 
531
            itemIds.add(cartFofo.getItemId());
-
 
532
            if (cartFofo.getPoId() != 0) {
-
 
533
                poIds.add(cartFofo.getPoId());
-
 
534
                poItemIds.add(cartFofo.getPoItemId());
-
 
535
            }
-
 
536
        }
-
 
537
 
-
 
538
        PendingOrder po = null;
-
 
539
        Customer customer = null;
-
 
540
        PendingOrderItem poi = null;
-
 
541
        Map<Integer, PriceModel> mopPriceMap = pricingService.getPurchasePriceMopPriceNotFound(itemIds,
-
 
542
                loginDetails.getFofoId());
-
 
543
        List<Integer> paymentOptionIds = fofoPartnerPaymentOptionRepository
-
 
544
                .selectPaymentOptionIdsByFofoId(loginDetails.getFofoId());
-
 
545
 
-
 
546
        if (!poIds.isEmpty()) {
-
 
547
            po = pendingOrderRepository.selectById(poIds.get(0));
-
 
548
            customer = customerRepository.selectById(po.getCustomerId());
507
        LOGGER.info("Request received at url : {}", request.getRequestURI());
549
            if (!offlineOrders.contains(po.getPayMethod())) {
-
 
550
                paymentOptionIds.add(23);
-
 
551
            }
-
 
552
        }
-
 
553
 
-
 
554
        if (!poItemIds.isEmpty()) {
-
 
555
            poi = pendingOrderItemRepository.selectById(poItemIds.get(0));
-
 
556
        }
-
 
557
 
-
 
558
        // List<PaymentOption> paymentOptions = paymentOptionRepository.selectByIds(new
-
 
559
        // HashSet<>(paymentOptionIds));
-
 
560
 
-
 
561
        List<PaymentOption> paymentOptions = paymentOptionRepository.selectActiveOption();
-
 
562
 
-
 
563
        LOGGER.info("pendingOrder" + po);
-
 
564
        LOGGER.info("pendingOrderItem" + poi);
-
 
565
 
-
 
566
        int onlineSellingPrice = 0;
-
 
567
        Map<Integer, PendingOrderItem> itemIdAndPoiMap = new HashMap<>();
-
 
568
        if (po != null) {
-
 
569
            List<PendingOrderItem> pendingOrderItems = pendingOrderItemRepository.selectByOrderId(po.getId());
-
 
570
            for (PendingOrderItem poItem : pendingOrderItems) {
-
 
571
                onlineSellingPrice += poItem.getSellingPrice();
-
 
572
            }
-
 
573
 
508
 
-
 
509
        try {
574
            itemIdAndPoiMap = pendingOrderItems.stream().collect(Collectors.toMap(x -> x.getItemId(), x -> pendingOrderItemRepository.selectById(x.getId())));
510
            String response = mvcResponseSender.createResponseString(this.getPlans(price, itemId, poiId));
-
 
511
            model.addAttribute("response1", response);
-
 
512
        } catch (Exception e) {
-
 
513
            // TODO Auto-generated catch block
-
 
514
            LOGGER.info(e.getMessage(), e);
-
 
515
            throw new ProfitMandiBusinessException("Plans", "Plans API", "Error formatting insurance plans");
575
        }
516
        }
576
 
517
 
577
        LOGGER.info("itemIdAndPoiMap {}", itemIdAndPoiMap);
-
 
578
        LOGGER.info("mopPriceMap {}", mopPriceMap);
-
 
579
        model.addAttribute("stateNames",
-
 
580
                stateRepository.selectAll().stream().map(x -> x.getName()).collect(Collectors.toList()));
-
 
581
        model.addAttribute("retailerStateName", address.getState());
-
 
582
        model.addAttribute("pendingPOCustomer", gson.toJson(customer));
-
 
583
        model.addAttribute("pendingPO", gson.toJson(po));
-
 
584
 
-
 
585
        model.addAttribute("cartItems", cartItems);
-
 
586
        model.addAttribute("pendingOrder", po);
-
 
587
        model.addAttribute("pendingOrderItem", poi);
-
 
588
        model.addAttribute("itemIdAndPoiMap", itemIdAndPoiMap);
-
 
589
        model.addAttribute("onlineSellingPrice", onlineSellingPrice);
-
 
590
 
-
 
591
        model.addAttribute("mopPriceMap", mopPriceMap);
-
 
592
        model.addAttribute("paymentOptions", paymentOptions);
-
 
593
        model.addAttribute("accessoriesDeals", accessoriesDeals);
-
 
594
        return "order-index";
518
        return "response";
595
    }
519
    }
596
 
520
 
597
    private void sendWhatsappInvoice(FofoOrder fofoOrder) throws Exception {
521
    private void sendWhatsappInvoice(FofoOrder fofoOrder) throws Exception {
598
        Customer customer = customerRepository.selectById(fofoOrder.getCustomerId());
522
        Customer customer = customerRepository.selectById(fofoOrder.getCustomerId());
599
        CustomRetailer retailer = retailerService.getFofoRetailer(fofoOrder.getFofoId());
523
        CustomRetailer retailer = retailerService.getFofoRetailer(fofoOrder.getFofoId());
Line 929... Line 853...
929
 
853
 
930
        return "response";
854
        return "response";
931
 
855
 
932
    }
856
    }
933
 
857
 
-
 
858
    @RequestMapping(value = "/order")
-
 
859
    public String orderIndex(HttpServletRequest request, @RequestParam(name = "cartData") String cartData, Model model)
-
 
860
            throws ProfitMandiBusinessException {
-
 
861
        LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
-
 
862
 
-
 
863
        int addressId = retailerRegisteredAddressRepository.selectAddressIdByRetailerId(loginDetails.getFofoId());
-
 
864
        Address address = addressRepository.selectById(addressId);
-
 
865
 
-
 
866
        List<CartFofo> cartItems = orderService.cartCheckout(cartData);
-
 
867
        Set<Integer> itemIds = new HashSet<>();
-
 
868
        List<Integer> poIds = new ArrayList<>();
-
 
869
        List<Integer> poItemIds = new ArrayList<>();
-
 
870
        for (CartFofo cartFofo : cartItems) {
-
 
871
            itemIds.add(cartFofo.getItemId());
-
 
872
            if (cartFofo.getPoId() != 0) {
-
 
873
                poIds.add(cartFofo.getPoId());
-
 
874
                poItemIds.add(cartFofo.getPoItemId());
-
 
875
            }
-
 
876
        }
-
 
877
 
-
 
878
        PendingOrder po = null;
-
 
879
        Customer customer = null;
-
 
880
        PendingOrderItem poi = null;
-
 
881
        Map<Integer, PriceModel> mopPriceMap = pricingService.getPurchasePriceMopPriceNotFound(itemIds,
-
 
882
                loginDetails.getFofoId());
-
 
883
        List<Integer> paymentOptionIds = fofoPartnerPaymentOptionRepository
-
 
884
                .selectPaymentOptionIdsByFofoId(loginDetails.getFofoId());
-
 
885
 
-
 
886
        if (!poIds.isEmpty()) {
-
 
887
            po = pendingOrderRepository.selectById(poIds.get(0));
-
 
888
            customer = customerRepository.selectById(po.getCustomerId());
-
 
889
            if (!offlineOrders.contains(po.getPayMethod())) {
-
 
890
                paymentOptionIds.add(23);
-
 
891
            }
-
 
892
        }
-
 
893
 
-
 
894
        if (!poItemIds.isEmpty()) {
-
 
895
            poi = pendingOrderItemRepository.selectById(poItemIds.get(0));
-
 
896
        }
-
 
897
 
-
 
898
        // List<PaymentOption> paymentOptions = paymentOptionRepository.selectByIds(new
-
 
899
        // HashSet<>(paymentOptionIds));
-
 
900
 
-
 
901
        List<PaymentOption> paymentOptions = paymentOptionRepository.selectActiveOption();
-
 
902
 
-
 
903
        LOGGER.info("pendingOrder" + po);
-
 
904
        LOGGER.info("pendingOrderItem" + poi);
-
 
905
 
-
 
906
        int onlineSellingPrice = 0;
-
 
907
        Map<Integer, PendingOrderItem> itemIdAndPoiMap = new HashMap<>();
-
 
908
 
-
 
909
        if (po != null) {
-
 
910
            List<PendingOrderItem> pendingOrderItems = pendingOrderItemRepository.selectByOrderId(po.getId());
-
 
911
            if (!(po.getPayMethod().equals("EMIOD") || po.getPayMethod().equals("POD"))) {
-
 
912
                for (CartFofo cartItem : cartItems) {
-
 
913
                    PendingOrderItem pendingOItem = pendingOrderItemRepository.selectById(cartItem.getPoItemId());
-
 
914
                    PendingOrderPlan pendingOrderPlan = pendingOrderPlanRepository.selectByPoid(cartItem.getPoItemId());
-
 
915
                    if (pendingOrderPlan != null) {
-
 
916
                        onlineSellingPrice += pendingOItem.getSellingPrice() * pendingOItem.getQuantity() + pendingOrderPlan.getPremiumPrice() * pendingOItem.getQuantity();
-
 
917
                    } else {
-
 
918
                        onlineSellingPrice += pendingOItem.getSellingPrice() * pendingOItem.getQuantity();
-
 
919
                    }
-
 
920
                }
-
 
921
            }
-
 
922
 
-
 
923
            itemIdAndPoiMap = pendingOrderItems.stream().collect(Collectors.toMap(x -> x.getItemId(), x -> pendingOrderItemRepository.selectById(x.getId())));
-
 
924
        }
-
 
925
 
-
 
926
        LOGGER.info("itemIdAndPoiMap {}", itemIdAndPoiMap);
-
 
927
        LOGGER.info("mopPriceMap {}", mopPriceMap);
-
 
928
        model.addAttribute("stateNames",
-
 
929
                stateRepository.selectAll().stream().map(x -> x.getName()).collect(Collectors.toList()));
-
 
930
        model.addAttribute("retailerStateName", address.getState());
-
 
931
        model.addAttribute("pendingPOCustomer", gson.toJson(customer));
-
 
932
        model.addAttribute("pendingPO", gson.toJson(po));
-
 
933
 
-
 
934
        model.addAttribute("cartItems", cartItems);
-
 
935
        model.addAttribute("pendingOrder", po);
-
 
936
        model.addAttribute("pendingOrderItem", poi);
-
 
937
        model.addAttribute("itemIdAndPoiMap", itemIdAndPoiMap);
-
 
938
        model.addAttribute("onlineSellingPrice", onlineSellingPrice);
-
 
939
 
-
 
940
        model.addAttribute("mopPriceMap", mopPriceMap);
-
 
941
        model.addAttribute("paymentOptions", paymentOptions);
-
 
942
        model.addAttribute("accessoriesDeals", accessoriesDeals);
-
 
943
        return "order-index";
-
 
944
    }
-
 
945
 
934
    private Map<String, List<MobileInsurancePlan>> getPlans(float sellingPrice, int itemId)
946
    private Map<String, List<MobileInsurancePlan>> getPlans(float sellingPrice, int itemId, int poiId)
935
            throws ProfitMandiBusinessException {
947
            throws ProfitMandiBusinessException {
936
        try {
948
        try {
937
            Map<String, List<MobileInsurancePlan>> productDurationPlans = insuranceService.getAllPlans(itemId,
949
            Map<String, List<MobileInsurancePlan>> productDurationPlans = new HashMap<>();
-
 
950
            PendingOrderPlan pendingOrderPlan = null;
-
 
951
            if (poiId > 0) {
-
 
952
                pendingOrderPlan = pendingOrderPlanRepository.selectByPoid(poiId);
-
 
953
            }
-
 
954
            if (pendingOrderPlan != null) {
-
 
955
                LOGGER.info("String.valueOf(pendingOrderPlanid {}", String.valueOf(pendingOrderPlan.getPlanId()));
-
 
956
                MobileInsurancePlan productDurationPlan = insuranceService.getPlanById(String.valueOf(pendingOrderPlan.getPlanId()), (float) pendingOrderPlan.getPremiumPrice());
-
 
957
                productDurationPlans.put(pendingOrderPlan.getPlanName(), Collections.singletonList(productDurationPlan));
-
 
958
 
-
 
959
            } else {
-
 
960
                productDurationPlans = insuranceService.getAllPlans(itemId,
938
                    sellingPrice);
961
                        sellingPrice, false);
-
 
962
            }
-
 
963
 
939
            return productDurationPlans;
964
            return productDurationPlans;
940
        } catch (Exception e) {
965
        } catch (Exception e) {
941
            LOGGER.info(e, e);
966
            LOGGER.info(e, e);
942
            throw new ProfitMandiBusinessException("Fetch Insurance Plans", "Insurance",
967
            throw new ProfitMandiBusinessException("Fetch Insurance Plans", "Insurance",
943
                    "Could not fetch insurance Plans");
968
                    "Could not fetch insurance Plans");
Line 1022... Line 1047...
1022
        }
1047
        }
1023
 
1048
 
1024
        List<PendingOrderItem> pendingOrderItems = pendingOrderItemRepository.selectOrderItemByStatusAndFofoId(OrderStatus.PROCESSING,
1049
        List<PendingOrderItem> pendingOrderItems = pendingOrderItemRepository.selectOrderItemByStatusAndFofoId(OrderStatus.PROCESSING,
1025
                loginDetails.getFofoId());
1050
                loginDetails.getFofoId());
1026
 
1051
 
-
 
1052
        Map<Integer, List<PendingOrderPlan>> pendingOrderPlansMap = pendingOrderPlanRepository.selectAll().stream()
-
 
1053
                .collect(Collectors.groupingBy(PendingOrderPlan::getPendingOrderItemId));
1027
        Map<String, Object> map = pendingOrderService.getItemOrders(pendingOrderItems, loginDetails.getFofoId());
1054
        Map<String, Object> map = pendingOrderService.getItemOrders(pendingOrderItems, loginDetails.getFofoId());
1028
        model.addAttribute("inventoryMap", map.get("inventoryMap"));
1055
        model.addAttribute("inventoryMap", map.get("inventoryMap"));
-
 
1056
        model.addAttribute("pendingOrderPlansMap", pendingOrderPlansMap);
1029
        model.addAttribute("pendingOrderItems", (List<PendingOrderItem>) map.get("pendingOrderItems"));
1057
        model.addAttribute("pendingOrderItems", (List<PendingOrderItem>) map.get("pendingOrderItems"));
1030
 
1058
 
1031
        model.addAttribute("isAdmin", isAdmin);
1059
        model.addAttribute("isAdmin", isAdmin);
1032
        return "pending_fofo_order";
1060
        return "pending_fofo_order";
1033
 
1061
 
Line 1382... Line 1410...
1382
    public String getAllOrdersByStatus(HttpServletRequest request, @RequestParam OrderStatus status,
1410
    public String getAllOrdersByStatus(HttpServletRequest request, @RequestParam OrderStatus status,
1383
                                       @RequestParam(required = false) LocalDateTime startTime,
1411
                                       @RequestParam(required = false) LocalDateTime startTime,
1384
                                       @RequestParam(required = false) LocalDateTime endTime, Model model) throws ProfitMandiBusinessException {
1412
                                       @RequestParam(required = false) LocalDateTime endTime, Model model) throws ProfitMandiBusinessException {
1385
        LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
1413
        LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
1386
        boolean isAdmin = roleManager.isAdmin(loginDetails.getRoleIds());
1414
        boolean isAdmin = roleManager.isAdmin(loginDetails.getRoleIds());
1387
        boolean isAccountsL2 = false;
1415
        boolean isAccountsL2AndL3 = false;
1388
        if (isAdmin) {
1416
        if (isAdmin) {
1389
            AuthUser authUser = authRepository.selectByEmailOrMobile(loginDetails.getEmailId());
1417
            AuthUser authUser = authRepository.selectByEmailOrMobile(loginDetails.getEmailId());
1390
            List<Position> positions = positionRepository.selectPositionByAuthId(authUser.getId());
1418
            List<Position> positions = positionRepository.selectPositionByAuthId(authUser.getId());
1391
            for (Position position : positions) {
1419
            for (Position position : positions) {
1392
                if ((position.getEscalationType().equals(EscalationType.L2)
1420
                if (((position.getEscalationType().equals(EscalationType.L2) || position.getEscalationType().equals(EscalationType.L3))
1393
                        && position.getCategoryId() == ProfitMandiConstants.TICKET_CATEGORY_ACCOUNTS)) {
1421
                        && position.getCategoryId() == ProfitMandiConstants.TICKET_CATEGORY_ACCOUNTS)) {
1394
                    isAccountsL2 = true;
1422
                    isAccountsL2AndL3 = true;
1395
                    break;
1423
                    break;
1396
                }
1424
                }
1397
            }
1425
            }
1398
 
-
 
1399
            LOGGER.info("positions {}", positions);
-
 
1400
        }
1426
        }
1401
 
1427
 
1402
 
-
 
1403
 
-
 
1404
 
-
 
1405
        LOGGER.info("startTime {}", startTime);
1428
        LOGGER.info("startTime {}", startTime);
1406
        LOGGER.info("endTime {}", endTime);
1429
        LOGGER.info("endTime {}", endTime);
1407
 
1430
 
1408
        List<PendingOrderItem> pendingOrderItems;
1431
        List<PendingOrderItem> pendingOrderItems;
1409
        if (startTime == null) {
1432
        if (startTime == null) {
Line 1444... Line 1467...
1444
 
1467
 
1445
        model.addAttribute("pendingOrderItems", (List<PendingOrderItem>) map.get("pendingOrderItems"));
1468
        model.addAttribute("pendingOrderItems", (List<PendingOrderItem>) map.get("pendingOrderItems"));
1446
        model.addAttribute("partnerInventoryMap", map.get("partnerInventoryMap"));
1469
        model.addAttribute("partnerInventoryMap", map.get("partnerInventoryMap"));
1447
 
1470
 
1448
        model.addAttribute("isAdmin", isAdmin);
1471
        model.addAttribute("isAdmin", isAdmin);
1449
        model.addAttribute("isAccountsL2", isAccountsL2);
1472
        model.addAttribute("isAccountsL2AndL3", isAccountsL2AndL3);
1450
        return "online-order-item";
1473
        return "online-order-item";
1451
    }
1474
    }
1452
 
1475
 
1453
    @RequestMapping(value = "/onlinePaymentAddToPartnerWallet", method = RequestMethod.POST)
1476
    @RequestMapping(value = "/onlinePaymentAddToPartnerWallet", method = RequestMethod.POST)
1454
    public String onlinePaymentAddToPartnerWallet(HttpServletRequest request, @RequestParam int id,
1477
    public String onlinePaymentAddToPartnerWallet(HttpServletRequest request, @RequestParam int id,