/**
   * Удаляет отчет по id. В случае если текущий авторизованный пользователь является руководителем
   * сотрудника, добавившего отчет.
   *
   * @param id
   * @return OK или Error
   */
  @RequestMapping(value = "/timesheetDel/{id}", method = RequestMethod.POST)
  public String delTimeSheet(@PathVariable("id") Integer id, HttpServletRequest httpRequest) {
    TimeSheetUser securityUser = securityService.getSecurityPrincipal();
    if (securityUser == null) {
      throw new SecurityException("Не найден пользователь в контексте безопасности.");
    }

    TimeSheet timeSheet = timeSheetService.find(id);

    logger.info(
        "Удаляется отчет " + timeSheet + ". Инициатор: " + securityUser.getEmployee().getName());
    timeSheetService.delete(timeSheet);

    sendMailService.performTimeSheetDeletedMailing(timeSheet);

    return "redirect:" + httpRequest.getHeader("Referer");
  }
  @RequestMapping(value = "/timesheet", method = RequestMethod.GET)
  public ModelAndView showMainForm(
      @RequestParam(value = "date", required = false) String date,
      @RequestParam(value = "id", required = false) Integer id) {
    logger.info(">>>>>>>>>>>>>>>>>>>>>>>>>>>>");
    logger.info("Showing Time Sheet main page!");
    ModelAndView mav = new ModelAndView();
    mav.setViewName("timesheet");

    TimeSheetForm tsForm = new TimeSheetForm();

    TimeSheetUser securityUser = securityService.getSecurityPrincipal();

    if (id != null) {
      tsForm.setDivisionId(employeeService.find(id).getDivision().getId());
      tsForm.setEmployeeId(id);
    } else if (securityUser != null) {
      tsForm.setDivisionId(securityUser.getEmployee().getDivision().getId());
      tsForm.setEmployeeId(securityUser.getEmployee().getId());
    }

    if (date != null) {
      tsForm.setCalDate(date);
      mav.addObject(
          "selectedCalDateJson", getSelectedCalDateJson(tsForm)); // выставляем дату для DateTextBox
    } else {
      mav.addObject("selectedCalDateJson", "''");
    }
    mav.addObject("timeSheetForm", tsForm); // command object
    mav.addObject("selectedProjectRolesJson", "[{row:'0', role:''}]");
    mav.addObject("selectedProjectTasksJson", "[{row:'0', task:''}]");
    mav.addObject("selectedProjectsJson", "[{row:'0', project:''}]");
    mav.addObject("selectedWorkplaceJson", "[{row:'0', workplace:''}]");
    mav.addObject("selectedActCategoriesJson", "[{row:'0', actCat:''}]");
    mav.addObject("selectedLongVacationIllnessJson", getSelectedLongVacationIllnessJson(tsForm));
    mav.addObject("getDateByDefault", getDateByDefault(tsForm.getEmployeeId()));
    mav.addObject("getFirstWorkDate", getEmployeeFirstWorkDay(tsForm.getEmployeeId()));

    mav.addAllObjects(getListsToMAV());
    return mav;
  }