public String salvaControlliMassivi(
      Long idUtente,
      String numeroRendicontazione,
      String meseRendicontazione,
      String annoRendicontazione,
      String nominativoControllore,
      String dataControllo,
      String idEsitoSelected,
      String noteEsito,
      String autorita)
      throws Exception {
    PonControlliAffidamentiManager caManager =
        (PonControlliAffidamentiManager)
            ServiceLocator.getManager(
                springContext, ManagersNames.PONATAS_CONTROLLI_AFFIDAMENTI_MANAGER);

    return caManager.salvaControlliMassivi(
        idUtente,
        numeroRendicontazione,
        meseRendicontazione,
        annoRendicontazione,
        nominativoControllore,
        dataControllo,
        idEsitoSelected,
        noteEsito,
        autorita);
  }
  public double calcolaSommaDettagliControlli(List listaPojoDettagli) throws Exception {
    PonControlliAffidamentiManager caManager =
        (PonControlliAffidamentiManager)
            ServiceLocator.getManager(
                springContext, ManagersNames.PONATAS_CONTROLLI_AFFIDAMENTI_MANAGER);

    return caManager.calcolaSommaDettagliControlli(listaPojoDettagli);
  }
  public ArrayList findCLPbyidDocumentoRendicontato(Long idDocumentoRendicontato) {
    PonControlliAffidamentiManager caManager =
        (PonControlliAffidamentiManager)
            ServiceLocator.getManager(
                springContext, ManagersNames.PONATAS_CONTROLLI_AFFIDAMENTI_MANAGER);

    return caManager.findCLPbyidDocumentoRendicontato(idDocumentoRendicontato);
  }
  public ArrayList findListDettaglioControlliAffidamentiTutto(
      CriteriRicercaControlliAffidamenti criteriRicerca) throws Exception {
    PonControlliAffidamentiManager caManager =
        (PonControlliAffidamentiManager)
            ServiceLocator.getManager(
                springContext, ManagersNames.PONATAS_CONTROLLI_AFFIDAMENTI_MANAGER);

    return caManager.findListDettaglioControlliAffidamentiTutto(criteriRicerca);
  }
  public void deleteCheckListContratti(NpgCheckListContratti clc) throws Exception {
    getLogger().beginMethod("delete della classe " + this.getClass().getName());

    PonControlliAffidamentiManager caManager =
        (PonControlliAffidamentiManager)
            ServiceLocator.getManager(
                springContext, ManagersNames.PONATAS_CONTROLLI_AFFIDAMENTI_MANAGER);

    caManager.deleteCheckListContratti(clc);

    getLogger().endMethod("delete " + this.getClass().getName());
  }
  public CrtTipoAutorita findTipoAutorita(Long id) {
    getLogger().beginMethod("loadCombo della classe " + this.getClass().getName());

    PonControlliAffidamentiManager caManager =
        (PonControlliAffidamentiManager)
            ServiceLocator.getManager(
                springContext, ManagersNames.PONATAS_CONTROLLI_AFFIDAMENTI_MANAGER);

    getLogger().endMethod("loadCombo " + this.getClass().getName());

    return caManager.findTipoAutorita(id);
  }
  public ArrayList loadCombo() throws ApplicationException {
    getLogger().beginMethod("loadCombo della classe " + this.getClass().getName());

    PonControlliAffidamentiManager caManager =
        (PonControlliAffidamentiManager)
            ServiceLocator.getManager(
                springContext, ManagersNames.PONATAS_CONTROLLI_AFFIDAMENTI_MANAGER);

    getLogger().endMethod("loadCombo " + this.getClass().getName());

    return caManager.loadCombo();
  }
  public NpgDocumentiRendicontati findDocumentoRendicontato(Long idDocumentoRendicontato) {
    getLogger().beginMethod("findDocumentoRendicontato della classe " + this.getClass().getName());

    PonControlliAffidamentiManager caManager =
        (PonControlliAffidamentiManager)
            ServiceLocator.getManager(
                springContext, ManagersNames.PONATAS_CONTROLLI_AFFIDAMENTI_MANAGER);

    getLogger().endMethod("findDocumentoRendicontato " + this.getClass().getName());

    return caManager.findDocumentoRendicontato(idDocumentoRendicontato);
  }
  public void chiudiControlloAffidamento(NpgCheckListContratti clcSelected, Utenti utente)
      throws Exception {
    getLogger().beginMethod("chiudiControlloAffidamento della classe " + this.getClass().getName());

    PonControlliAffidamentiManager caManager =
        (PonControlliAffidamentiManager)
            ServiceLocator.getManager(
                springContext, ManagersNames.PONATAS_CONTROLLI_AFFIDAMENTI_MANAGER);

    caManager.chiudiControlloAffidamento(clcSelected, utente);

    getLogger().endMethod("chiudiControlloAffidamento " + this.getClass().getName());
  }
  public NpgContratti findContrattoById(String idContratto)
      throws NumberFormatException, Exception {
    getLogger().beginMethod("findContrattoById della classe " + this.getClass().getName());

    PonControlliAffidamentiManager caManager =
        (PonControlliAffidamentiManager)
            ServiceLocator.getManager(
                springContext, ManagersNames.PONATAS_CONTROLLI_AFFIDAMENTI_MANAGER);

    getLogger().endMethod("findContrattoById " + this.getClass().getName());

    return caManager.findContrattoById(idContratto);
  }
  public void salvaSingolo(
      NpgCheckListPagamenti clp,
      double importoRegolare,
      double importoIrregolare,
      double importoRinviato,
      ControlliAffidamentoPojo caPojo)
      throws Exception {
    PonControlliAffidamentiManager caManager =
        (PonControlliAffidamentiManager)
            ServiceLocator.getManager(
                springContext, ManagersNames.PONATAS_CONTROLLI_AFFIDAMENTI_MANAGER);

    caManager.salvaSingolo(clp, importoRegolare, importoIrregolare, importoRinviato, caPojo);
  }
  public Soggetti findSoggettoByContratto(Long idContratto) {
    getLogger().beginMethod("findSoggettoByContratto della classe " + this.getClass().getName());

    PonControlliAffidamentiManager caManager =
        (PonControlliAffidamentiManager)
            ServiceLocator.getManager(
                springContext, ManagersNames.PONATAS_CONTROLLI_AFFIDAMENTI_MANAGER);

    ArrayList result = caManager.findSoggettoByContratto(idContratto);

    getLogger().endMethod("findSoggettoByContratto " + this.getClass().getName());

    return (Soggetti) result.get(0);
  }
  public InteseTO findListControlliAffidamenti(CriteriRicercaControlliAffidamenti criteriRicerca)
      throws Exception {
    getLogger()
        .beginMethod("findListControlliAffidamenti della classe " + this.getClass().getName());

    PonControlliAffidamentiManager caManager =
        (PonControlliAffidamentiManager)
            ServiceLocator.getManager(
                springContext, ManagersNames.PONATAS_CONTROLLI_AFFIDAMENTI_MANAGER);

    InteseTO inteseTO = caManager.findListControlliAffidamenti(criteriRicerca);

    getLogger().endMethod("findListControlliAffidamenti " + this.getClass().getName());

    return inteseTO;
  }
  private boolean abilitaInBaseAllaVoceMenuAndRuolo(
      CriteriRicercaControlliAffidamenti criteriRicerca,
      PonControlliAffidamentiManager ponatasManager) {
    Long idLivelloUtente = ponatasManager.findIdLivelloUtente(criteriRicerca.getIdUtenteLoggato());

    String voceMenu = criteriRicerca.getVoceMenuAutorita();
    boolean abilitaLink;
    if (idLivelloUtente.intValue() == Livelli.RESPONSABILE_INTERVENTO
        && voceMenu.equalsIgnoreCase("BEN")) abilitaLink = true;
    else if (idLivelloUtente.intValue() == Livelli.RESPONSABILE_STRUMENTO
        && voceMenu.equalsIgnoreCase("UCO")) abilitaLink = true;
    else if (idLivelloUtente.intValue() == Livelli.MANAGER_STRUMENTO
        && voceMenu.equalsIgnoreCase("ADG")) abilitaLink = true;
    else if (idLivelloUtente.intValue() == Livelli.AUTORITA_CERTIFICAZIONE
        && voceMenu.equalsIgnoreCase("ADC")) abilitaLink = true;
    else if (idLivelloUtente.intValue() == Livelli.AUTORITA_AUDIT
        && voceMenu.equalsIgnoreCase("AUD")) abilitaLink = true;
    else if (idLivelloUtente.intValue() == Livelli.MANAGER_APPLICAZIONE) abilitaLink = true;
    else abilitaLink = false;
    return abilitaLink;
  }