Subversion Repositories SmartDukaan

Rev

Rev 36629 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 36629 Rev 36747
Line 524... Line 524...
524
                if (scheme.getExpireTimestamp() == null) {
524
                if (scheme.getExpireTimestamp() == null) {
525
                    if (extendDatetime.isBefore(scheme.getStartDateTime())) {
525
                    if (extendDatetime.isBefore(scheme.getStartDateTime())) {
526
                        throw new ProfitMandiBusinessException(ProfitMandiConstants.END_DATE,
526
                        throw new ProfitMandiBusinessException(ProfitMandiConstants.END_DATE,
527
                                extendDatetime.toString(), "End date cannot be before start date");
527
                                extendDatetime.toString(), "End date cannot be before start date");
528
                    }
528
                    }
-
 
529
                    LocalDateTime originalEndDate = scheme.getEndDateTime();
529
                    scheme.setEndDateTime(extendDatetime);
530
                    scheme.setEndDateTime(extendDatetime);
530
                    schemeRepository.persist(scheme);
531
                    schemeRepository.persist(scheme);
-
 
532
                    propagateEndDateToSchemeItems(scheme.getId(), originalEndDate, extendDatetime);
531
                }
533
                }
532
            }
534
            }
533
            model.addAttribute("response1", mvcResponseSender.createResponseString(true));
535
            model.addAttribute("response1", mvcResponseSender.createResponseString(true));
534
            return "response";
536
            return "response";
535
        }
537
        }
536
        model.addAttribute("response1", mvcResponseSender.createResponseString(false));
538
        model.addAttribute("response1", mvcResponseSender.createResponseString(false));
537
        return "response";
539
        return "response";
538
    }
540
    }
539
 
541
 
-
 
542
    // When a scheme's end date is extended, carry the new end date over to the scheme_item rows
-
 
543
    // that were tracking the scheme window (item end_date == the scheme's previous end date).
-
 
544
    // Items with a custom window (different end_date) are left untouched, matching expireSchemeById.
-
 
545
    private void propagateEndDateToSchemeItems(int schemeId, LocalDateTime originalEndDate, LocalDateTime newEndDate) {
-
 
546
        List<SchemeItem> schemeItems = schemeItemRepository.selectBySchemeId(schemeId);
-
 
547
        for (SchemeItem schemeItem : schemeItems) {
-
 
548
            if (schemeItem.getEndDate() != null && schemeItem.getEndDate().equals(originalEndDate)) {
-
 
549
                schemeItem.setEndDate(newEndDate);
-
 
550
                schemeItemRepository.persist(schemeItem);
-
 
551
            }
-
 
552
        }
-
 
553
    }
-
 
554
 
540
    @RequestMapping(value = "/getCatalogDescriptionByBrands", method = RequestMethod.GET)
555
    @RequestMapping(value = "/getCatalogDescriptionByBrands", method = RequestMethod.GET)
541
    public String getTagListingItemsByBrand(HttpServletRequest request, @RequestParam int categoryId,
556
    public String getTagListingItemsByBrand(HttpServletRequest request, @RequestParam int categoryId,
542
                                            @RequestParam List<String> brands, Model model) throws Exception {
557
                                            @RequestParam List<String> brands, Model model) throws Exception {
543
        Map<Integer, String> catalogIdItemDescriptionMap = inventoryService.getModelDescriptionMap(categoryId, brands);
558
        Map<Integer, String> catalogIdItemDescriptionMap = inventoryService.getModelDescriptionMap(categoryId, brands);
544
        model.addAttribute("catalogIdItemDescriptionMap", catalogIdItemDescriptionMap);
559
        model.addAttribute("catalogIdItemDescriptionMap", catalogIdItemDescriptionMap);
Line 599... Line 614...
599
        if ((!(scheme.getActiveTimestamp() == null)) && scheme.getExpireTimestamp() == null) {
614
        if ((!(scheme.getActiveTimestamp() == null)) && scheme.getExpireTimestamp() == null) {
600
            if (extendDatetime.isBefore(scheme.getStartDateTime())) {
615
            if (extendDatetime.isBefore(scheme.getStartDateTime())) {
601
                throw new ProfitMandiBusinessException(ProfitMandiConstants.END_DATE,
616
                throw new ProfitMandiBusinessException(ProfitMandiConstants.END_DATE,
602
                        extendDatetime.toString(), "End date cannot be before start date");
617
                        extendDatetime.toString(), "End date cannot be before start date");
603
            }
618
            }
-
 
619
            LocalDateTime originalEndDate = scheme.getEndDateTime();
604
            scheme.setEndDateTime(extendDatetime);
620
            scheme.setEndDateTime(extendDatetime);
605
            schemeRepository.persist(scheme);
621
            schemeRepository.persist(scheme);
-
 
622
            propagateEndDateToSchemeItems(scheme.getId(), originalEndDate, extendDatetime);
606
            model.addAttribute("response1", mvcResponseSender.createResponseString(true));
623
            model.addAttribute("response1", mvcResponseSender.createResponseString(true));
607
            return "response";
624
            return "response";
608
        }
625
        }
609
        model.addAttribute("response1", mvcResponseSender.createResponseString(false));
626
        model.addAttribute("response1", mvcResponseSender.createResponseString(false));
610
        return "response";
627
        return "response";