Example usage for org.joda.time.format DateTimeFormatter parseLocalDate

List of usage examples for org.joda.time.format DateTimeFormatter parseLocalDate

Introduction

In this page you can find the example usage for org.joda.time.format DateTimeFormatter parseLocalDate.

Prototype

public LocalDate parseLocalDate(String text) 

Source Link

Document

Parses only the local date from the given text, returning a new LocalDate.

Usage

From source file:org.vaadin.addons.tuningdatefield.TuningDateField.java

License:Apache License

/**
 * Initialize the {@link LocalDate} converter for the text field.
 *//*from w ww  . j a  v a 2s.  c om*/
private void initConverter() {

    Converter<String, LocalDate> converter = new Converter<String, LocalDate>() {

        private static final long serialVersionUID = -2161506497954814519L;

        @Override
        public LocalDate convertToModel(String value, Class<? extends LocalDate> targetType, Locale locale)
                throws com.vaadin.data.util.converter.Converter.ConversionException {
            if (value == null) {
                return null;
            }
            LocalDate modelValue = null;
            try {
                DateTimeFormatter dateTimeFormatter;
                if (dateTimeFormatterPattern == null) {
                    dateTimeFormatter = DateTimeFormat.shortDate().withLocale(locale);
                } else {
                    dateTimeFormatter = DateTimeFormat.forPattern(dateTimeFormatterPattern).withLocale(locale);
                }
                modelValue = dateTimeFormatter.parseLocalDate(value);
            } catch (IllegalArgumentException e) {
                throw new ConversionException("Cannot convert to model", e);
            }
            return modelValue;
        }

        @Override
        public String convertToPresentation(LocalDate value, Class<? extends String> targetType, Locale locale)
                throws com.vaadin.data.util.converter.Converter.ConversionException {
            if (value == null) {
                return null;
            }
            String presentationValue = null;
            try {
                DateTimeFormatter dateTimeFormatter;
                if (dateTimeFormatterPattern == null) {
                    dateTimeFormatter = DateTimeFormat.shortDate().withLocale(locale);
                } else {
                    dateTimeFormatter = DateTimeFormat.forPattern(dateTimeFormatterPattern).withLocale(locale);
                }
                presentationValue = dateTimeFormatter.print(value);
            } catch (IllegalArgumentException e) {
                throw new ConversionException("Cannot convert to presentation", e);
            }

            return presentationValue;
        }

        @Override
        public Class<LocalDate> getModelType() {
            return LocalDate.class;
        }

        @Override
        public Class<String> getPresentationType() {
            return String.class;
        }

    };
    setConverter(converter);
}

From source file:org.vaadin.addons.tuningdatefield.TuningDateField.java

License:Apache License

protected void registerRpc() {
    registerRpc(new TuningDateFieldRpc() {

        private static final long serialVersionUID = 3572898507878457932L;

        @Override/*w w  w  .jav a  2  s . c  om*/
        public void onCalendarOpen() {
            TuningDateField.this.onCalendarOpen();

        }

        @Override
        public void onCalendarClosed() {
            calendarOpen = false;
            markAsDirty();
        }

        @Override
        public void calendarItemClicked(Integer itemIndex, Integer relativeDateIndex,
                MouseEventDetails mouseDetails) {
            onCalendarItemClicked(itemIndex, relativeDateIndex, mouseDetails);
        }

        @Override
        public void dateTextChanged(String dateText) {
            try {
                // First try to convert to model in order to check if text is parseable
                if (dateText != null) {
                    DateTimeFormatter dateTimeFormatter;
                    if (dateTimeFormatterPattern == null) {
                        dateTimeFormatter = DateTimeFormat.shortDate().withLocale(getLocale());
                    } else {
                        dateTimeFormatter = DateTimeFormat.forPattern(dateTimeFormatterPattern)
                                .withLocale(getLocale());
                    }
                    dateTimeFormatter.parseLocalDate(dateText);
                }

                // If parsing text is successful, set value
                uiHasValidDateString = true;
                setComponentError(null);
                setValue(dateText);
            } catch (IllegalArgumentException e) {
                // Date is not parseable, keep previous value
                uiHasValidDateString = false;
                markAsDirty();
            }
        }

        @Override
        public void previousControlClicked() {
            if (controlsEnabled) {
                goToPreviousCalendarPage();
            } else {
                // wtf ? should never happen
            }
        }

        @Override
        public void nextControlClicked() {
            if (controlsEnabled) {
                goToNextCalendarPage();
            } else {
                // wtf ? should never happen
            }
        }

        @Override
        public void resolutionControlClicked() {
            if (controlsEnabled) {
                swithToHigherCalendarResolution();
            } else {
                // wtf ? should never happen
            }
        }

    });
}

From source file:ru.codemine.ccms.converter.StringToLocalDateConverter.java

License:Open Source License

@Override
public LocalDate convert(String s) {
    DateTimeFormatter formatter = DateTimeFormat.forPattern("dd.MM.YYYY");
    return formatter.parseLocalDate(s);
}

From source file:ru.codemine.ccms.router.api.ApiRouter.java

License:Open Source License

@Secured("ROLE_OFFICE")
@RequestMapping(value = "/api/passability", method = RequestMethod.GET)
public @ResponseBody List<PassabilityJson> getPassabilityJson(@RequestParam(required = false) Integer shopid,
        @RequestParam(required = false) String shopname, @RequestParam("startDate") String startDateStr,
        @RequestParam("endDate") String endDateStr, @RequestParam(required = false) String detail) {
    if (shopid == null && shopname == null)
        throw new InvalidParametersException();
    if (shopid != null && shopname != null)
        throw new InvalidParametersException();

    try {/*  ww  w  .jav a 2s  .  com*/
        Shop shop = shopid == null ? shopService.getByName(shopname) : shopService.getById(shopid);

        DateTimeFormatter formatter = DateTimeFormat.forPattern("dd.MM.YYYY");
        List<PassabilityJson> resulList = new ArrayList<>();

        LocalDate startDate = formatter.parseLocalDate(startDateStr);
        LocalDate endDate = formatter.parseLocalDate(endDateStr);

        if (detail == null || "none".equals(detail)) {
            PassabilityJson record = new PassabilityJson();

            record.setStartDate(startDate.toString("dd.MM.YYYY"));
            record.setEndDate(endDate.toString("dd.MM.YYYY"));
            if (shop.isCountersEnabled()) {
                record.setIn(counterService.getInValueByPeriod(shop, startDate, endDate));
                record.setOut(counterService.getOutValueByPeriod(shop, startDate, endDate));
            } else {
                record.setIn(salesService.getPassabilityValueByPeriod(shop, startDate, endDate));
                record.setOut(record.getIn());
            }
            resulList.add(record);
        } else if ("day".equals(detail)) {
            // ? ,  ? 
            List<SalesMeta> smList = salesService.getByPeriod(shop, startDate.withDayOfMonth(1),
                    endDate.dayOfMonth().withMaximumValue());
            List<Sales> allSales = salesService.getAllSalesFromMetaList(smList, startDate, endDate);

            for (Sales s : allSales) {
                PassabilityJson record = new PassabilityJson();

                record.setStartDate(s.getDate().toString("dd.MM.YYYY"));
                record.setEndDate(s.getDate().toString("dd.MM.YYYY"));
                record.setIn(shop.isCountersEnabled()
                        ? counterService.getInValueByPeriod(shop, s.getDate(), s.getDate())
                        : s.getPassability());
                record.setOut(shop.isCountersEnabled()
                        ? counterService.getOutValueByPeriod(shop, s.getDate(), s.getDate())
                        : s.getPassability());

                resulList.add(record);
            }
        } else if ("month".equals(detail)) {
            startDate = startDate.withDayOfMonth(1);
            endDate = endDate.dayOfMonth().withMaximumValue();

            List<SalesMeta> smList = salesService.getByPeriod(shop, startDate, endDate);
            for (SalesMeta sm : smList) {
                PassabilityJson record = new PassabilityJson();

                record.setStartDate(sm.getStartDate().toString("dd.MM.YYYY"));
                record.setEndDate(sm.getEndDate().toString("dd.MM.YYYY"));
                record.setIn(shop.isCountersEnabled()
                        ? counterService.getInValueByPeriod(shop, sm.getStartDate(), sm.getEndDate())
                        : sm.getPassabilityTotal());
                record.setOut(shop.isCountersEnabled()
                        ? counterService.getOutValueByPeriod(shop, sm.getStartDate(), sm.getEndDate())
                        : sm.getPassabilityTotal());

                resulList.add(record);
            }
        }

        return resulList;
    } catch (Exception e) {
        log.warn(" ?  API (?) - "
                + e.getLocalizedMessage());
        return new ArrayList<>();
    }
}

From source file:ru.codemine.ccms.router.ExpencesRouter.java

License:Open Source License

@Secured("ROLE_OFFICE")
@RequestMapping(value = "/expences", method = RequestMethod.GET)
public String getExpencesPage(@RequestParam(required = false) Integer shopid,
        @RequestParam(required = false) String dateYear, @RequestParam(required = false) String mode,
        ModelMap model) {// w ww  .j  a  v  a 2s .c om
    if (dateYear == null)
        dateYear = LocalDate.now().toString("YYYY");
    if (shopid == null)
        shopid = shopService.getAll().get(0).getId();

    DateTimeFormatter formatter = DateTimeFormat.forPattern("dd.MM.YYYY");
    LocalDate startDate = formatter.parseLocalDate("01.01." + dateYear);
    LocalDate endDate = formatter.parseLocalDate("31.12." + dateYear);

    Shop shop = shopService.getById(shopid);
    List<Shop> shopList = shopService.getAllOpen();

    List<ExpenceType> allExpTypes = expenceTypeService.getAll();
    Set<ExpenceType> addedExpTypes = salesService.getExpenceTypesByPeriod(shop, startDate, endDate);

    model.addAllAttributes(utils.prepareModel());
    model.addAttribute("shop", shop);
    model.addAttribute("shopList", shopList);
    model.addAttribute("selectedYear", dateYear);
    model.addAttribute("yearList", utils.getYearStrings());
    model.addAttribute("allExpTypes", allExpTypes);
    model.addAttribute("addedExpTypes", addedExpTypes);
    model.addAttribute("expenceTypesForm", new ExpenceTypesForm());

    return "print".equals(mode) ? "printforms/expences" : "pages/shops/expences";
}

From source file:ru.codemine.ccms.router.ExpencesRouter.java

License:Open Source License

@Secured("ROLE_OFFICE")
@RequestMapping(value = "/expences/data", method = RequestMethod.GET)
public @ResponseBody List<Map<String, Object>> getExpencesData(@RequestParam Integer shopid,
        @RequestParam String dateYear) {
    List<Map<String, Object>> records = new ArrayList<>();
    Shop shop = shopService.getById(shopid);

    DateTimeFormatter formatter = DateTimeFormat.forPattern("dd.MM.YYYY");
    LocalDate startDate = formatter.parseLocalDate("01.01." + dateYear);
    LocalDate endDate = formatter.parseLocalDate("31.12." + dateYear);

    List<SalesMeta> smList = salesService.getByPeriod(shop, startDate, endDate);
    Set<ExpenceType> expenceTypes = salesService.getExpenceTypesByPeriod(shop, startDate, endDate);

    for (ExpenceType type : expenceTypes) {
        Map<String, Object> record = new HashMap<>();
        for (SalesMeta sm : smList) {
            Double val = sm.getExpences().get(type);
            String month = sm.getStartDate().toString("M");
            record.put("c" + month, val);
        }//ww  w  .j  ava  2 s  .c  om
        record.put("expencetype", type.getName());
        record.put("expencenote", type.getComment());
        record.put("totals", salesService.getTotalExpenceValueForPeriod(shop, startDate, endDate, type));
        records.add(record);
    }

    return records;
}

From source file:ru.codemine.ccms.router.ExpencesRouter.java

License:Open Source License

@Secured("ROLE_OFFICE")
@RequestMapping(value = "/expences/addtype", method = RequestMethod.POST)
public String addExpenceTypeToShop(@RequestParam Integer shopid, @RequestParam String dateYear,
        @ModelAttribute ExpenceTypesForm expenceTypesForm) {
    Shop shop = shopService.getById(shopid);

    DateTimeFormatter formatter = DateTimeFormat.forPattern("dd.MM.YYYY");
    LocalDate startDate = formatter.parseLocalDate("01.01." + dateYear);
    LocalDate endDate = formatter.parseLocalDate("31.01." + dateYear);

    SalesMeta januarySalesMeta = salesService.getByShopAndDate(shop, startDate, endDate);

    for (ExpenceType type : expenceTypesForm.getTypes()) {
        if (!januarySalesMeta.getExpences().containsKey(type))
            januarySalesMeta.getExpences().put(type, 0.0);
    }//from w ww .  java  2  s .co m

    salesService.update(januarySalesMeta);

    return "redirect:/expences?shopid=" + shop.getId() + "&dateYear=" + dateYear;
}

From source file:ru.codemine.ccms.router.ExpencesRouter.java

License:Open Source License

@Secured("ROLE_OFFICE")
@RequestMapping(value = "/expences/savecell", method = RequestMethod.POST)
public @ResponseBody String expencesSavecell(HttpServletRequest request, @RequestParam Integer shopid,
        @RequestParam String dateYear) {
    Shop shop = shopService.getById(shopid);

    String expenceTypeName = request.getParameterMap().get("extypename")[0];
    if (expenceTypeName == null)
        return "{\"result\": \"error\"}";

    ExpenceType expenceType = expenceTypeService.getByName(expenceTypeName);
    if (expenceType == null)
        return "{\"result\": \"error\"}";

    DateTimeFormatter formatter = DateTimeFormat.forPattern("dd.M.YYYY");

    for (Map.Entry<String, String[]> entry : request.getParameterMap().entrySet()) {
        if (entry.getKey().startsWith("c")) {
            String cellname = entry.getKey();
            String cellval = entry.getValue()[0];
            if (cellval == null)
                return "{\"result\": \"error\"}";

            LocalDate startDate = formatter.parseLocalDate("01." + cellname.substring(1) + "." + dateYear);
            LocalDate endDate = startDate.dayOfMonth().withMaximumValue();

            Double value = Double.parseDouble(cellval);

            SalesMeta sm = salesService.getByShopAndDate(shop, startDate, endDate);
            sm.getExpences().put(expenceType, value);
            salesService.update(sm);/*from  ww w . ja  v a 2  s . c o m*/
        }
    }

    return "{\"result\": \"success\"}";
}

From source file:ru.codemine.ccms.router.ExpencesRouter.java

License:Open Source License

@Secured("ROLE_OFFICE")
@RequestMapping(value = "/reports/expences/data", method = RequestMethod.GET)
public @ResponseBody List<Map<String, Object>> getExpencesReportData(@RequestParam String dateYear) {
    DateTimeFormatter formatter = DateTimeFormat.forPattern("dd.MM.YYYY");
    LocalDate startDate = formatter.parseLocalDate("01.01." + dateYear);
    LocalDate endDate = formatter.parseLocalDate("31.12." + dateYear);

    List<Shop> shopList = shopService.getAllOpen();
    List<Map<String, Object>> recordList = new ArrayList<>();

    for (Shop shop : shopList) {
        Map<String, Object> record = new HashMap<>();

        Double sales = salesService.getSalesValueByPeriod(shop, startDate, endDate);
        Double expences = salesService.getTotalExpenceValueForPeriod(shop, startDate, endDate);
        Double cleanSales = (sales == null || expences == null) ? 0 : sales - expences;
        Double midExpences = salesService.getMidExpences(shop, 6);
        Double midCleanSales = salesService.getMidCleanSales(shop, 6);

        record.put("shopname", shop.getName());
        record.put("sales", sales);
        record.put("expences", expences);
        record.put("cleanSales", cleanSales);
        record.put("midExpences", midExpences);
        record.put("midCleanSales", midCleanSales);

        recordList.add(record);//from  w  w  w . j ava  2  s  .  c o m
    }

    return recordList;
}

From source file:ru.codemine.ccms.router.ExpencesRouter.java

License:Open Source License

@Secured("ROLE_OFFICE")
@RequestMapping(value = "/reports/expences/details", method = RequestMethod.GET)
public @ResponseBody List<Map<String, Object>> getExpencesReportDetails(@RequestParam String dateYear,
        @RequestParam String shopname) {
    List<Map<String, Object>> records = new ArrayList<>();
    Shop shop = shopService.getByName(shopname);

    DateTimeFormatter formatter = DateTimeFormat.forPattern("dd.MM.YYYY");
    LocalDate startDate = formatter.parseLocalDate("01.01." + dateYear);
    LocalDate endDate = formatter.parseLocalDate("31.12." + dateYear);

    List<SalesMeta> smList = salesService.getByPeriod(shop, startDate, endDate);
    Set<ExpenceType> expenceTypes = salesService.getExpenceTypesByPeriod(shop, startDate, endDate);

    Map<String, Object> totalExpences = new HashMap<>();
    Map<String, Object> totalSales = new HashMap<>();
    Map<String, Object> totalCleanSales = new HashMap<>();

    for (ExpenceType type : expenceTypes) {
        Map<String, Object> record = new HashMap<>();
        for (SalesMeta sm : smList) {
            Double val = sm.getExpences().get(type);
            String month = sm.getStartDate().toString("M");
            record.put("c" + month, val);

            totalExpences.put("c" + month, sm.getExpencesTotal());
            totalSales.put("c" + month, sm.getSalesTotal());
            totalCleanSales.put("c" + month, sm.getSalesTotal() - sm.getExpencesTotal());
        }/*www  . j a v a 2 s. co  m*/
        record.put("expencetype", type.getName());
        record.put("expencenote", type.getComment());
        record.put("totals", salesService.getTotalExpenceValueForPeriod(shop, startDate, endDate, type));
        records.add(record);
    }

    totalExpences.put("expencetype", ":");
    totalSales.put("expencetype", "");
    totalCleanSales.put("expencetype", "?? ");

    Double totalExpencesValue = salesService.getTotalExpenceValueForPeriod(shop, startDate, endDate);
    Double totalSalesValue = salesService.getSalesValueByPeriod(shop, startDate, endDate);
    totalExpences.put("totals", totalExpencesValue);
    totalSales.put("totals", totalSalesValue);
    totalCleanSales.put("totals", totalSalesValue - totalExpencesValue);

    records.add(totalExpences);
    records.add(totalSales);
    records.add(totalCleanSales);

    return records;
}