// [SB0004] - Gerar Histórico de Instalação do Hidrômetro
  //
  // Método responsável por setar os dados do hidrômetro instalação histórico
  // de acordo com os dados selecionados pelo usuário e pelas exigências do
  // caso de uso
  public HidrometroInstalacaoHistorico setDadosHidrometroInstalacaoHistorico(
      HidrometroInstalacaoHistorico hidrometroInstalacaoHistorico,
      EfetuarRestabelecimentoLigacaoAguaComInstalacaoHidrometroActionForm
          efetuarRestabelecimentoLigacaoAguaComInstalacaoHidrometroActionForm) {

    Fachada fachada = Fachada.getInstancia();

    String numeroHidrometro =
        efetuarRestabelecimentoLigacaoAguaComInstalacaoHidrometroActionForm.getNumeroHidrometro();

    if (numeroHidrometro != null) {
      // Pesquisa o Hidrômetro
      Hidrometro hidrometro = fachada.pesquisarHidrometroPeloNumero(numeroHidrometro);

      if (hidrometro == null) {
        throw new ActionServletException("atencao.hidrometro_inexistente");
      }

      hidrometroInstalacaoHistorico.setHidrometro(hidrometro);
    }

    // Data instalação
    if (efetuarRestabelecimentoLigacaoAguaComInstalacaoHidrometroActionForm.getDataInstalacao()
            != null
        && !efetuarRestabelecimentoLigacaoAguaComInstalacaoHidrometroActionForm
            .getDataInstalacao()
            .equals("")) {

      hidrometroInstalacaoHistorico.setDataInstalacao(
          Util.converteStringParaDate(
              efetuarRestabelecimentoLigacaoAguaComInstalacaoHidrometroActionForm
                  .getDataInstalacao()));
    }

    // Medição tipo
    MedicaoTipo medicaoTipo = new MedicaoTipo();
    medicaoTipo.setId(MedicaoTipo.LIGACAO_AGUA);
    hidrometroInstalacaoHistorico.setMedicaoTipo(medicaoTipo);

    // hidrômetro local instalação
    HidrometroLocalInstalacao hidrometroLocalInstalacao = new HidrometroLocalInstalacao();
    hidrometroLocalInstalacao.setId(
        Integer.parseInt(
            efetuarRestabelecimentoLigacaoAguaComInstalacaoHidrometroActionForm
                .getLocalInstalacao()));
    hidrometroInstalacaoHistorico.setHidrometroLocalInstalacao(hidrometroLocalInstalacao);

    // proteção
    HidrometroProtecao hidrometroProtecao = new HidrometroProtecao();
    hidrometroProtecao.setId(
        Integer.parseInt(
            efetuarRestabelecimentoLigacaoAguaComInstalacaoHidrometroActionForm.getProtecao()));
    hidrometroInstalacaoHistorico.setHidrometroProtecao(hidrometroProtecao);

    // leitura instalação
    if (efetuarRestabelecimentoLigacaoAguaComInstalacaoHidrometroActionForm.getLeituraInstalacao()
            != null
        && !efetuarRestabelecimentoLigacaoAguaComInstalacaoHidrometroActionForm
            .getLeituraInstalacao()
            .trim()
            .equals("")) {
      hidrometroInstalacaoHistorico.setNumeroLeituraInstalacao(
          Integer.parseInt(
              efetuarRestabelecimentoLigacaoAguaComInstalacaoHidrometroActionForm
                  .getLeituraInstalacao()));
    } else {
      hidrometroInstalacaoHistorico.setNumeroLeituraInstalacao(0);
    }

    // cavalete
    hidrometroInstalacaoHistorico.setIndicadorExistenciaCavalete(
        Short.parseShort(
            efetuarRestabelecimentoLigacaoAguaComInstalacaoHidrometroActionForm
                .getSituacaoCavalete()));

    /*
     * Campos opcionais
     */

    // data da retirada
    hidrometroInstalacaoHistorico.setDataRetirada(null);
    // leitura retirada
    hidrometroInstalacaoHistorico.setNumeroLeituraRetirada(null);
    // leitura corte
    hidrometroInstalacaoHistorico.setNumeroLeituraCorte(null);
    // leitura supressão
    hidrometroInstalacaoHistorico.setNumeroLeituraSupressao(null);
    // numero selo
    if (efetuarRestabelecimentoLigacaoAguaComInstalacaoHidrometroActionForm.getNumeroSelo() != null
        && !efetuarRestabelecimentoLigacaoAguaComInstalacaoHidrometroActionForm
            .getNumeroSelo()
            .equals("")) {
      hidrometroInstalacaoHistorico.setNumeroSelo(
          efetuarRestabelecimentoLigacaoAguaComInstalacaoHidrometroActionForm.getNumeroSelo());
    } else {
      hidrometroInstalacaoHistorico.setNumeroSelo(null);
    }
    // tipo de rateio
    hidrometroInstalacaoHistorico.setRateioTipo(null);
    hidrometroInstalacaoHistorico.setDataImplantacaoSistema(new Date());

    // indicador instalação substituição
    hidrometroInstalacaoHistorico.setIndicadorInstalcaoSubstituicao(new Short("1"));

    // data última alteração
    hidrometroInstalacaoHistorico.setUltimaAlteracao(new Date());

    return hidrometroInstalacaoHistorico;
  }