List of usage examples for org.joda.time LocalDate dayOfMonth
public Property dayOfMonth()
From source file:org.libreplan.web.calendars.BaseCalendarEditionController.java
License:Open Source License
private Map<String, List<Integer>> getDaysCurrentMonthByColor() { LocalDate currentDate = baseCalendarModel.getSelectedDay(); LocalDate minDate = currentDate.dayOfMonth().withMinimumValue(); LocalDate maxDate = currentDate.dayOfMonth().withMaximumValue(); Map<String, List<Integer>> colorsMap = new HashMap<>(); BaseCalendar calendar = baseCalendarModel.getBaseCalendar(); if (calendar == null) { return colorsMap; }/*from w w w .java 2 s .c o m*/ for (LocalDate date = minDate; date.compareTo(maxDate) <= 0; date = date.plusDays(1)) { CalendarExceptionType calendarExceptionType = calendar.getExceptionType(date); if (calendarExceptionType != null) { if (calendar.getOwnExceptionDay(date) != null) { addDayToColor(colorsMap, calendarExceptionType.getColor().getColorOwnException(), date.getDayOfMonth()); } else { addDayToColor(colorsMap, calendarExceptionType.getColor().getColorDerivedException(), date.getDayOfMonth()); } } else { if (calendar.getCapacityOn(PartialDay.wholeDay(date)).isZero()) { addDayToColor(colorsMap, BACKGROUND_COLOR_ZERO_HOURS_DAY, date.getDayOfMonth()); } } } return colorsMap; }
From source file:ru.codemine.ccms.entity.SalesMeta.java
License:Open Source License
public SalesMeta(Shop shop, LocalDate startDate, LocalDate endDate) { this.shop = shop; this.description = ""; this.startDate = startDate; this.endDate = endDate; this.plan = 0.0; this.passabilityTotal = 0; this.chequeCountTotal = 0; this.valueTotal = 0.0; this.cashbackTotal = 0.0; this.salesTotal = 0.0; this.expencesTotal = 0.0; this.expences = new TreeMap<>(); this.sales = new TreeSet<>(); for (int i = 1; i <= startDate.dayOfMonth().getMaximumValue(); i++) { this.sales.add(new Sales(shop, startDate.withDayOfMonth(i))); }//from w w w .ja v a 2 s.com }
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 {//www. j a v a2 s. c o m 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/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 . co m*/ } } return "{\"result\": \"success\"}"; }
From source file:ru.codemine.ccms.router.SalesRouter.java
License:Open Source License
@Secured("ROLE_USER") @RequestMapping(value = "/sales", method = RequestMethod.GET) public String getSalesPage(@RequestParam Integer shopid, @RequestParam(required = false) String dateMonth, @RequestParam(required = false) String dateYear, ModelMap model) { Shop shop = shopService.getById(shopid); model.addAllAttributes(utils.prepareModel(dateMonth, dateYear)); LocalDate selectedStartDate; LocalDate selectedEndDate;//from w ww . jav a 2 s . c o m DateTimeFormatter formatter = DateTimeFormat.forPattern("dd MMMM YYYY"); if (dateMonth != null && dateYear != null) // { selectedStartDate = formatter.parseLocalDate("01 " + dateMonth + " " + dateYear); selectedEndDate = selectedStartDate.dayOfMonth().withMaximumValue(); } else // - ??, { selectedStartDate = LocalDate.now().withDayOfMonth(1); selectedEndDate = selectedStartDate.dayOfMonth().withMaximumValue(); } SalesMeta salesMeta = salesService.getByShopAndDate(shop, selectedStartDate, selectedEndDate); if (shop.isCountersEnabled()) { for (Sales s : salesMeta.getSales()) { Counter counter = counterService.getByShopAndDate(shop, s.getDate().toDateTime(LocalTime.MIDNIGHT)); s.setPassability(counter == null ? 0 : counter.getIn()); } } model.addAttribute("salesMeta", salesMeta); model.addAttribute("shop", shop); return "pages/shops/sales"; }
From source file:ru.codemine.ccms.router.SalesRouter.java
License:Open Source License
@Secured("ROLE_OFFICE") @RequestMapping(value = "/reports/sales-pass", method = RequestMethod.GET) public String getSalesPassReport(@RequestParam(required = false) String dateStartStr, @RequestParam(required = false) String dateEndStr, @RequestParam(required = false) String mode, ModelMap model) {/*from w w w .j a va2s . c o m*/ model.addAllAttributes(utils.prepareModel()); DateTimeFormatter formatter = DateTimeFormat.forPattern("dd.MM.YYYY"); LocalDate dateStart = dateStartStr == null ? LocalDate.now().withDayOfMonth(1) : formatter.parseLocalDate(dateStartStr).withDayOfMonth(1); LocalDate dateEnd = dateEndStr == null ? LocalDate.now().dayOfMonth().withMaximumValue() : formatter.parseLocalDate(dateEndStr).dayOfMonth().withMaximumValue(); if (dateEnd.isBefore(dateStart)) dateEnd = dateStart.dayOfMonth().withMaximumValue(); model.addAttribute("dateStartStr", dateStart.toString("dd.MM.YYYY")); model.addAttribute("dateEndStr", dateEnd.toString("dd.MM.YYYY")); List<String> subgridColNames = new ArrayList<>(); subgridColNames.add("?"); if (dateStart.getMonthOfYear() == dateEnd.getMonthOfYear()) { for (int i = 1; i <= dateEnd.getDayOfMonth(); i++) { subgridColNames.add(String.valueOf(i) + dateStart.toString(".MM.YY")); } } else { LocalDate printDate = dateStart; while (printDate.isBefore(dateEnd)) { subgridColNames.add(printDate.toString("MMM YYYY")); printDate = printDate.plusMonths(1); } } subgridColNames.add(""); model.addAttribute("subgridColNames", subgridColNames); return "print".equals(mode) ? "printforms/reports/salesAllFrm" : "reports/sales-pass"; }
From source file:ru.codemine.ccms.router.SalesRouter.java
License:Open Source License
@Secured("ROLE_OFFICE") @RequestMapping(value = "/reports/sales-pass/data") public @ResponseBody List<Map<String, Object>> getSalesPassReportData( @RequestParam(required = false) String dateStartStr, @RequestParam(required = false) String dateEndStr, ModelMap model) {/*from w w w .jav a 2 s .c o m*/ List<Map<String, Object>> recordsList = new ArrayList<>(); DateTimeFormatter formatter = DateTimeFormat.forPattern("dd.MM.YYYY"); LocalDate dateStart = dateStartStr == null ? LocalDate.now().withDayOfMonth(1) : formatter.parseLocalDate(dateStartStr).withDayOfMonth(1); LocalDate dateEnd = dateEndStr == null ? LocalDate.now().dayOfMonth().withMaximumValue() : formatter.parseLocalDate(dateEndStr).dayOfMonth().withMaximumValue(); if (dateEnd.isBefore(dateStart)) dateEnd = dateStart.dayOfMonth().withMaximumValue(); List<Shop> shopList = shopService.getAllOpen(); for (Shop shop : shopList) { Map<String, Object> record = new HashMap(); record.put("shopname", shop.getName()); record.put("passability", salesService.getPassabilityValueByPeriod(shop, dateStart, dateEnd)); record.put("cheque", salesService.getCqcountValueByPeriod(shop, dateStart, dateEnd)); record.put("value", salesService.getValueByPeriod(shop, dateStart, dateEnd)); record.put("cashback", salesService.getCashbackValueByPeriod(shop, dateStart, dateEnd)); record.put("periodtotal", salesService.getSalesValueByPeriod(shop, dateStart, dateEnd)); record.put("midPrice", salesService.getMidPriceValueByPeriod(shop, dateStart, dateEnd)); record.put("plan", salesService.getPlan(shop, dateStart, dateEnd)); record.put("plancoverage", salesService.getPlanCoverage(shop, dateStart, dateEnd)); recordsList.add(record); } return recordsList; }
From source file:ru.codemine.ccms.router.SalesRouter.java
License:Open Source License
@Secured("ROLE_OFFICE") @RequestMapping(value = "/reports/sales-pass/details") public @ResponseBody List<Map<String, Object>> getSalesPassReportDetails(@RequestParam String dateStartStr, @RequestParam String dateEndStr, @RequestParam String shopname, ModelMap model) { List<Map<String, Object>> recordsList = new ArrayList<>(); DateTimeFormatter formatter = DateTimeFormat.forPattern("dd.MM.YYYY"); LocalDate dateStart = formatter.parseLocalDate(dateStartStr).withDayOfMonth(1); LocalDate dateEnd = formatter.parseLocalDate(dateEndStr).dayOfMonth().withMaximumValue(); if (dateEnd.isBefore(dateStart)) dateEnd = dateStart.dayOfMonth().withMaximumValue(); Integer daysCount = dateEnd.getDayOfMonth(); Integer counterTotals = 0;/*from w ww . j a v a 2s. c o m*/ List<String> recordNames = new ArrayList<>(); recordNames.add("?"); recordNames.add("- "); recordNames.add(" "); recordNames.add(""); recordNames.add(""); recordNames.add(" "); Shop shop = shopService.getByName(shopname); if (dateStart.getMonthOfYear() == dateEnd.getMonthOfYear()) { SalesMeta salesMeta = salesService.getByShopAndDate(shop, dateStart, dateEnd); for (int row = 1; row <= recordNames.size(); row++) { Map<String, Object> record = new HashMap(); record.put("info", recordNames.get(row - 1)); for (int cell = 1; cell <= daysCount; cell++) { String cellname = "c" + String.valueOf(cell); Sales sale = salesMeta.getByDate(dateStart.withDayOfMonth(cell)); switch (row) { case 1: //? if (shop.isCountersEnabled()) { Counter counter = counterService.getByShopAndDate(shop, dateStart.withDayOfMonth(cell).toDateTime(LocalTime.MIDNIGHT)); Integer counterValue = counter == null ? 0 : counter.getIn(); record.put(cellname, counterValue); counterTotals += counterValue; if (cell == daysCount) record.put("totals", counterTotals); } else { record.put(cellname, sale.getPassability()); counterTotals += sale.getPassability(); if (cell == daysCount) record.put("totals", counterTotals); } break; case 2: //- record.put(cellname, sale.getChequeCount()); if (cell == daysCount) record.put("totals", salesMeta.getChequeCountTotal()); break; case 3: // record.put(cellname, sale.getValue()); if (cell == daysCount) record.put("totals", salesMeta.getValueTotal()); break; case 4: // record.put(cellname, sale.getCashback()); if (cell == daysCount) record.put("totals", salesMeta.getCashbackTotal()); break; case 5: // record.put(cellname, sale.getDayTotal()); if (cell == daysCount) record.put("totals", salesMeta.getSalesTotal()); break; case 6: // Integer chequeCount = sale.getChequeCount(); Double midPrice = chequeCount == 0 ? 0 : sale.getMidPrice(); record.put(cellname, midPrice); if (cell == daysCount) record.put("totals", salesMeta.getPeriodMidPrice()); break; } } recordsList.add(record); } } else // ?? { List<SalesMeta> smList = new ArrayList<>(); LocalDate tempStartDate = dateStart; while (tempStartDate.isBefore(dateEnd)) { smList.add(salesService.getByShopAndDate(shop, tempStartDate, tempStartDate.dayOfMonth().withMaximumValue())); tempStartDate = tempStartDate.plusMonths(1); } for (int row = 1; row <= recordNames.size(); row++) { Map<String, Object> record = new HashMap(); record.put("info", recordNames.get(row - 1)); for (int cell = 1; cell <= smList.size(); cell++) { String cellname = "c" + String.valueOf(cell); SalesMeta sm = smList.get(cell - 1); switch (row) { case 1: //? if (shop.isCountersEnabled()) { record.put(cellname, counterService.getPassabilityValueByPeriod(shop, sm.getStartDate(), sm.getEndDate())); if (cell == smList.size()) record.put("totals", counterService.getPassabilityValueByPeriod(shop, dateStart, dateEnd)); } else { record.put(cellname, sm.getPassabilityTotal()); if (cell == smList.size()) record.put("totals", salesService.getPassabilityValueByPeriod(shop, dateStart, dateEnd)); } break; case 2: //- record.put(cellname, sm.getChequeCountTotal()); if (cell == smList.size()) record.put("totals", salesService.getCqcountValueByPeriod(shop, dateStart, dateEnd)); break; case 3: // record.put(cellname, sm.getValueTotal()); if (cell == smList.size()) record.put("totals", salesService.getValueByPeriod(shop, dateStart, dateEnd)); break; case 4: // record.put(cellname, sm.getCashbackTotal()); if (cell == smList.size()) record.put("totals", salesService.getCashbackValueByPeriod(shop, dateStart, dateEnd)); break; case 5: // record.put(cellname, sm.getSalesTotal()); if (cell == smList.size()) record.put("totals", salesService.getSalesValueByPeriod(shop, dateStart, dateEnd)); break; case 6: // record.put(cellname, sm.getPeriodMidPrice()); if (cell == smList.size()) record.put("totals", salesService.getMidPriceValueByPeriod(shop, dateStart, dateEnd)); break; } } recordsList.add(record); } } return recordsList; }
From source file:ru.codemine.ccms.router.SalesRouter.java
License:Open Source License
@Secured("ROLE_OFFICE") @RequestMapping(value = "/reports/graph/sales-pass", method = RequestMethod.GET) public String getSalesPassGraph(@RequestParam(required = false) String dateStartStr, @RequestParam(required = false) String dateEndStr, @RequestParam(required = false) Integer shopid, ModelMap model) {//from w w w.ja v a2 s .c o m model.addAllAttributes(utils.prepareModel()); List<Shop> shopList = shopService.getAllOpen(); List<String> graphDataDayTotal = new ArrayList<>(); List<String> graphDataPassability = new ArrayList<>(); Shop shop = shopid == null ? shopList.get(0) : shopService.getById(shopid); model.addAttribute("shop", shop); model.addAttribute("shopList", shopList); DateTimeFormatter formatter = DateTimeFormat.forPattern("dd.MM.YYYY"); LocalDate dateStart = dateStartStr == null ? LocalDate.now().withDayOfMonth(1) : formatter.parseLocalDate(dateStartStr).withDayOfMonth(1); LocalDate dateEnd = dateEndStr == null ? LocalDate.now().dayOfMonth().withMaximumValue() : formatter.parseLocalDate(dateEndStr).dayOfMonth().withMaximumValue(); if (dateEnd.isBefore(dateStart)) dateEnd = dateStart.dayOfMonth().withMaximumValue(); model.addAttribute("dateStartStr", dateStart.toString("dd.MM.YYYY")); model.addAttribute("dateEndStr", dateEnd.toString("dd.MM.YYYY")); List<SalesMeta> smList = salesService.getByPeriod(shop, dateStart, dateEnd); for (Sales sales : salesService.getAllSalesFromMetaList(smList)) { if (shop.isCountersEnabled()) { Counter counter = counterService.getByShopAndDate(shop, sales.getDate().toDateTime(LocalTime.MIDNIGHT)); if (sales.getPassability() == 0) sales.setPassability(counter == null ? 0 : counter.getIn()); } graphDataDayTotal.add(sales.getGraphDataDayTotal()); graphDataPassability.add(sales.getGraphDataPassability()); } model.addAttribute("graphDataDayTotal", graphDataDayTotal); model.addAttribute("graphDataPassability", graphDataPassability); return "reports/sales-pass-graph"; }
From source file:ru.codemine.ccms.router.SalesRouter.java
License:Open Source License
@Secured("ROLE_OFFICE") @RequestMapping(value = "/management/setPlanCustom", method = RequestMethod.POST) public @ResponseBody String setPlanCustom(@RequestParam String dateMonth, @RequestParam String dateYear, @RequestBody List<SalesPlanForm> salesPlanForms) { String resultStr;//from w w w. j a va 2s . co m DateTimeFormatter formatter = DateTimeFormat.forPattern("dd MMMM YYYY"); LocalDate selectedStartDate = formatter.parseLocalDate("01 " + dateMonth + " " + dateYear); LocalDate selectedEndDate = selectedStartDate.dayOfMonth().withMaximumValue(); for (SalesPlanForm spf : salesPlanForms) { Shop shop = shopService.getByName(spf.getShopname()); SalesMeta salesMeta = salesService.getByShopAndDate(shop, selectedStartDate, selectedEndDate); if (!salesMeta.getPlan().equals(spf.getPlan())) { salesMeta.setPlan(spf.getPlan()); salesService.update(salesMeta); } } resultStr = "{\"result\": \"success\"}"; return resultStr; }