@Override
  public void save() {

    logger.trace(
        MessageUtils.PRINT_LINE_STAR() + "Save Report : {}",
        REPORT_014 + MessageUtils.PRINT_LINE_STAR());

    calSum();

    report014.setReport014DetailList(report014Details);
    report014.setCreatedDate(new Date());
    report014.setCreatedUser(super.getUserAuthen().getUserId());
    report014.setFlowStatusId(EctFlowStatus.FlowStatus.DRAFF.getStatus());
    report014.setReportDesc(ectConfManager.getReportName(REPORT_014));
    report014.setReportCode(REPORT_014);
    report014.setCreatedUserGroup(getUserAuthen().getUserGroupId());

    if (!validateBeforeSave()) {
      return;
    }

    try {

      reportGennericService.create(report014);

      logger.trace("Save Success !! ");

      JsfUtil.alertJavaScript(MessageUtils.SAVE_SUCCESS());

      goToClose();

    } catch (Exception ex) {

      JsfUtil.alertJavaScript(MessageUtils.SAVE_NOT_SUCCESS() + " ข้อผิดพลาด :" + MDC.get("reqId"));

      logger.error("Cannot Save Data : ", ex);

    } finally {

      logger.trace("Save... {} ", report014);
      resetForm();
    }
  }