示例#1
0
        /// <summary>
        /// Selezione del codice IPA Amministrazione tramite l'id
        /// </summary>
        /// <param name="theUO"></param>
        /// <returns></returns>
        private string getCodiceAmmIPA(DocsPaVO.amministrazione.OrgUO theUO)
        {
            string codiceAmmIPA = string.Empty;

            try
            {
                logger.Debug("START getCodiceAmmIPA");
                DocsPaUtils.Query q = DocsPaUtils.InitQuery.getInstance().getQuery("SELECT_VAR_CODICE_AMM_IPA");
                q.setParam("param1", theUO.IDAmministrazione);
                string queryString = q.getSQL();
                logger.Debug("Query per il recupero del codice Amministrazione IPA: " + queryString);

                // Esegue un comando sul database ritornando il primo campo del primo record.
                bool ret = this.ExecuteScalar(out codiceAmmIPA, queryString);

                if (!ret)
                {
                    logger.Debug("Errore nel recupero del codice Amministrazione IPA");
                }
                else
                {
                    logger.Debug("Recupero del codice Amministrazione IPA avvenuto con successo");
                }
            }
            catch (Exception e)
            {
                logger.DebugFormat("Error: Message: {0}, StackTrace: {1}", e.Message, e.StackTrace);
            }

            return(codiceAmmIPA);
        }
示例#2
0
        //---TO DO - DA FINIRE!!!!!
        public DocsPaVO.utente.Amministrazione EliminaUoSysExternal(DocsPaVO.amministrazione.OrgUO theUO, out bool result)
        {
            DocsPaVO.utente.Amministrazione amm = new DocsPaVO.utente.Amministrazione();
            result = false;
            string codiceAmmIPA = string.Empty;
            string codiceAooIPA = string.Empty;

            if (WR != null)
            {
                //Start JOB

                //Query per il recupero delle informazioni che mi servono da passare al servizio web.
                codiceAmmIPA = getCodiceAmmIPA(theUO);
                codiceAooIPA = getCodiceAooIPA(theUO);

                //Devo recuperare anche le informazioni dell'amministrazione da PITRE
                amm = getInfoAmministrazione(theUO.IDAmministrazione);

                amm = WR.AmmEliminaUoSysExternal(theUO, codiceAmmIPA, codiceAooIPA, amm, out result);
            }
            else
            {
                logger.Debug("webReference is null");
            }

            return(amm);
        }
示例#3
0
        /// <summary>
        /// Selezione del codice_classificazione nella DPA_EL_REGISTRI
        /// </summary>
        /// <param name="theUO"></param>
        /// <returns></returns>
        private string getCodiceClassificazione(DocsPaVO.amministrazione.OrgUO theUO)
        {
            string codiceClassificazione = string.Empty;

            try
            {
                logger.Debug("START getCodiceClassificazione");
                DocsPaUtils.Query q = DocsPaUtils.InitQuery.getInstance().getQuery("SELECT_CODICE_CLASSIFICAZIONE_DPA_EL_REGISTRI");
                q.setParam("param1", theUO.IDAmministrazione);
                q.setParam("param2", theUO.CodiceRegistroInterop);
                string queryString = q.getSQL();
                logger.Debug("Query per il recupero del codice classificazione: " + queryString);

                // Esegue un comando sul database ritornando il primo campo del primo record.
                bool ret = this.ExecuteScalar(out codiceClassificazione, queryString);

                if (!ret)
                {
                    logger.Debug("Errore nel recupero del codice classificazione");
                }
                else
                {
                    logger.Debug("Recupero del codice classificazione avvenuto con successo");
                }
            }
            catch (Exception e)
            {
                logger.DebugFormat("Error: Message: {0}, StackTrace: {1}", e.Message, e.StackTrace);
            }

            return(codiceClassificazione);
        }
示例#4
0
        /// <summary>
        /// Selezione del SystemID nella DPA_TIPO_ATTO
        /// </summary>
        /// <param name="theUO"></param>
        /// <returns></returns>
        private string getIsFatturazione(DocsPaVO.amministrazione.OrgUO theUO)
        {
            string isFatturazione = string.Empty;

            try
            {
                logger.Debug("START getIsFatturazione");
                DocsPaUtils.Query q = DocsPaUtils.InitQuery.getInstance().getQuery("SELECT_SYSTEM_ID_DPA_TIPO_ATTO");
                q.setParam("param1", theUO.IDAmministrazione);
                string queryString = q.getSQL();
                logger.Debug("Query per il recupero del SystemID: " + queryString);

                // Esegue un comando sul database ritornando il primo campo del primo record.
                bool ret = this.ExecuteScalar(out isFatturazione, queryString);

                if (!ret)
                {
                    logger.Debug("Errore nel recupero del SystemID");
                }
                else
                {
                    logger.Debug("Recupero del SystemID avvenuto con successo");
                }
            }
            catch (Exception e)
            {
                logger.DebugFormat("Error: Message: {0}, StackTrace: {1}", e.Message, e.StackTrace);
            }

            return(isFatturazione);
        }
示例#5
0
        /// <summary>
        /// Imposta livelli delle UO nella funzionalità "spostamento UO"
        /// </summary>
        /// <param name="uoDaSpostare"></param>
        /// <param name="uoPadre"></param>
        /// <returns></returns>
        public static DocsPaVO.amministrazione.EsitoOperazione ImpostaLivelloUO(DocsPaVO.amministrazione.OrgUO uoDaSpostare, DocsPaVO.amministrazione.OrgUO uoPadre)
        {
            string segno = string.Empty;
            int    delta = 0;
            int    rowsAffected;
            string commandText = string.Empty;

            DocsPaUtils.Query   queryDef   = null;
            DocsPaDB.DBProvider dbProvider = new DocsPaDB.DBProvider();
            DocsPaVO.amministrazione.EsitoOperazione esito = new DocsPaVO.amministrazione.EsitoOperazione();

            int livelloUoDaSpostare = Convert.ToInt16(uoDaSpostare.Livello);
            int livelloDaAcquisire  = Convert.ToInt16(uoPadre.Livello) + 1;

            if (!livelloUoDaSpostare.Equals(livelloDaAcquisire))
            {
                // spostamento verso l'alto
                if (livelloUoDaSpostare < livelloDaAcquisire)
                {
                    segno = "+";
                    delta = livelloDaAcquisire - livelloUoDaSpostare;
                }
                // spostamento verso il basso
                if (livelloUoDaSpostare > livelloDaAcquisire)
                {
                    segno = "-";
                    delta = livelloUoDaSpostare - livelloDaAcquisire;
                }

                // aggiorna livello UO da spostare
                queryDef = DocsPaUtils.InitQuery.getInstance().getQuery("U_DPACorrGlobali");
                queryDef.setParam("param1", "NUM_LIVELLO = " + Convert.ToString((Convert.ToInt16(uoPadre.Livello) + 1)));
                queryDef.setParam("param2", "SYSTEM_ID = " + uoDaSpostare.IDCorrGlobale);

                commandText = queryDef.getSQL();
                logger.Debug(commandText);

                dbProvider.ExecuteNonQuery(commandText, out rowsAffected);

                if (rowsAffected == 0)
                {
                    esito.Codice      = 2;
                    esito.Descrizione = "fallito aggiornamento della tabella dei corrispondenti";
                }
                else
                {
                    //re-imposta tutti i livelli delle UO figlie alla UO da spostare
                    if (delta > 0)
                    {
                        esito = ImpostaLivelloSottoUO(uoDaSpostare, segno, delta);
                    }
                }
            }

            return(esito);
        }
示例#6
0
        public static DocsPaVO.amministrazione.EsitoOperazione ImpostaLivelloSottoUO(DocsPaVO.amministrazione.OrgUO currentUO, string segno, int delta)
        {
            int    rowsAffected;
            string commandText       = string.Empty;
            string condizioneLivello = string.Empty;

            DocsPaUtils.Query       queryDef    = null;
            DocsPaDB.DBProvider     dbProvider  = new DocsPaDB.DBProvider();
            DocsPaDB.DBProvider     dbProvider2 = new DocsPaDB.DBProvider();
            System.Data.IDataReader reader      = null;

            DocsPaVO.amministrazione.EsitoOperazione esito   = new DocsPaVO.amministrazione.EsitoOperazione();
            DocsPaVO.amministrazione.OrgUO           sottoUO = null;

            // prende tutte le sotto UO
            queryDef = DocsPaUtils.InitQuery.getInstance().getQuery("S_CORR_GLOB_GENERIC");
            queryDef.setParam("param1", "SYSTEM_ID, NUM_LIVELLO");
            queryDef.setParam("param2", "ID_PARENT = " + currentUO.IDCorrGlobale);

            commandText = queryDef.getSQL();
            logger.Debug(commandText);

            reader = dbProvider.ExecuteReader(commandText);

            while (reader.Read())
            {
                sottoUO = new DocsPaVO.amministrazione.OrgUO();
                sottoUO.IDCorrGlobale = reader.GetValue(reader.GetOrdinal("SYSTEM_ID")).ToString();
                sottoUO.Livello       = reader.GetValue(reader.GetOrdinal("NUM_LIVELLO")).ToString();

                condizioneLivello = segno + Convert.ToString(delta);

                // aggiorna livello sotto UO
                queryDef = DocsPaUtils.InitQuery.getInstance().getQuery("U_DPACorrGlobali");
                queryDef.setParam("param1", "NUM_LIVELLO = NUM_LIVELLO " + condizioneLivello);
                queryDef.setParam("param2", "SYSTEM_ID = " + sottoUO.IDCorrGlobale);

                commandText = queryDef.getSQL();
                logger.Debug(commandText);

                dbProvider2.ExecuteNonQuery(commandText, out rowsAffected);

                if (rowsAffected == 0)
                {
                    esito.Codice      = 3;
                    esito.Descrizione = "fallito aggiornamento del livello della UO con ID: " + sottoUO.IDCorrGlobale;
                    break;
                }
                else
                {
                    esito = ImpostaLivelloSottoUO(sottoUO, segno, delta);
                }
            }

            return(esito);
        }
示例#7
0
        /// <summary>
        /// Non Utilizzabile - Siamo nel servizio esterno che punta ad un altro DB.
        /// </summary>
        /// <param name="system_id"></param>
        /// <returns></returns>
        //private DocsPaVO.utente.Amministrazione _getInfoAmministrazione(string system_id)
        //{
        //    DocsPaVO.utente.Amministrazione ammin = new DocsPaVO.utente.Amministrazione();
        //    DocsPaDB.DBProvider dbp = new DocsPaDB.DBProvider();
        //    DocsPaUtils.Query q = DocsPaUtils.InitQuery.getInstance().getQuery("S_GET_INFO_AMMINISTRAZIONE_BY_ID");
        //    q.setParam("param1", system_id);
        //    logger.Debug(q.getSQL());
        //    string commandText = q.getSQL();
        //    DataSet ds = new DataSet();
        //    try
        //    {
        //        if (dbp.ExecuteQuery(out ds, "mail", commandText))
        //        {
        //            if (ds.Tables["mail"].Rows.Count >= 1)
        //            {
        //                ammin.codice = ds.Tables[0].Rows[0]["VAR_CODICE_AMM"].ToString();
        //                ammin.descrizione = ds.Tables[0].Rows[0]["VAR_DESC_AMM"].ToString();
        //                ammin.email = ds.Tables[0].Rows[0]["VAR_EMAIL_RES_IPA"].ToString();
        //            }
        //        }
        //    }
        //    catch (Exception e)
        //    {
        //        logger.Debug("Errore nella ricerca delle informazioni dell'amministrazione ", e);
        //        return null;
        //    }
        //    return ammin;
        //}

        /// <summary>
        /// Metodo interno per l'eliminazione della entry nella DPA_DATI_FATT
        /// </summary>
        /// <param name="theUO"></param>
        /// <param name="result"></param>
        /// <returns></returns>
        private DocsPaVO.utente.Amministrazione _AmmEliminaUoSysExternal(DocsPaVO.amministrazione.OrgUO theUO, string codiceAmmIPA, string codiceAooIPA, DocsPaVO.utente.Amministrazione amm, out bool result)
        {
            int affectedRows = 0;

            DocsPaDB.DBProvider             dbp   = new DocsPaDB.DBProvider();
            DocsPaVO.utente.Amministrazione ammin = new DocsPaVO.utente.Amministrazione();

            DocsPaUtils.Query q = DocsPaUtils.InitQuery.getInstance().getQuery("DELETE_UO_SYSEXTERNAL");

            q.setParam("param1", "'" + theUO.Codice + "'");
            q.setParam("param2", "'" + codiceAmmIPA + "'");
            q.setParam("param3", "'" + codiceAooIPA + "'");

            logger.Debug(q.getSQL());
            string queryString = q.getSQL();

            try
            {
                dbp.ExecuteNonQuery(queryString, out affectedRows);
            }
            catch (Exception e)
            {
                logger.Debug("Errore nell'eliminazione della UO in DPA_DATI_FATTURAZIONE ", e);
                result = false;
                ammin  = null;
                return(ammin);
            }
            if (affectedRows > 0)
            {
                result = true;
                ammin  = amm;
            }
            else
            {
                result = false;
                ammin  = null;
            }

            return(ammin);
        }
示例#8
0
 public DocsPaVO.utente.Amministrazione AmmModificaUoSysExternal(string oldCodiceUO, DocsPaVO.amministrazione.OrgUO theUO, string codiceAmmIPA, string codiceAooIPA, string isFatturazione, string codiceUAC, string codiceClassificazione, DocsPaVO.utente.Amministrazione amm, out bool result)
 {
     /*3 CASI:
      * INSERIMENTO NELLA TABELLA SysExternal:
      *  - accedo alla tabella SysExternal tramite codice_ipa_amm, codice_ipa_aoo e codice UO
      *  - se non lo trova invio email al referente dell'amministrazione e job
      *  - altrimenti modifica l'intero record
      * MODIFICA:
      *  - accedo alla tabella SysExternal tramite codice_ipa_amm, codice_ipa_aoo e codice UO
      *  - individuato il record aggiorno il codice UO
      */
     return(_AmmModificaUoSysExternal(oldCodiceUO, theUO, codiceAmmIPA, codiceAooIPA, isFatturazione, codiceUAC, codiceClassificazione, amm, out result));
 }
示例#9
0
 public DocsPaVO.utente.Amministrazione AmmEliminaUoSysExternal(DocsPaVO.amministrazione.OrgUO theUO, string codiceAmmIPA, string codiceAooIPA, DocsPaVO.utente.Amministrazione amm, out bool result)
 {
     return(_AmmEliminaUoSysExternal(theUO, codiceAmmIPA, codiceAooIPA, amm, out result));
 }
示例#10
0
        /// <summary>
        /// Metodo interno per la Stored Procedure Modify
        /// </summary>
        /// <param name="oldCodiceUO"></param>
        /// <param name="theUO"></param>
        /// <param name="codiceAmmIPA"></param>
        /// <param name="codiceAooIPA"></param>
        /// <param name="isFatturazione"></param>
        /// <param name="codiceUAC"></param>
        /// <param name="codiceClassificazione"></param>
        /// <param name="amm"></param>
        /// <param name="result"></param>
        /// <returns></returns>
        public DocsPaVO.utente.Amministrazione _AmmModificaUoSysExternal(string oldCodiceUO, DocsPaVO.amministrazione.OrgUO theUO, string codiceAmmIPA, string codiceAooIPA, string isFatturazione, string codiceUAC, string codiceClassificazione, DocsPaVO.utente.Amministrazione amm, out bool result)
        {
            logger.Debug("modificaUoSysExternal");
            DocsPaDB.DBProvider dbp        = new DocsPaDB.DBProvider();
            ArrayList           parameters = new ArrayList();

            DocsPaVO.utente.Amministrazione ammin = new DocsPaVO.utente.Amministrazione();
            if (string.IsNullOrEmpty(oldCodiceUO))
            {
                parameters.Add(this.CreateParameter("oldCodiceUO", "0"));
            }
            else
            {
                parameters.Add(this.CreateParameter("oldCodiceUO", "0"));
            }
            logger.Debug("oldCodiceUO: " + oldCodiceUO);
            parameters.Add(this.CreateParameter("newCodiceUO", theUO.Codice));
            logger.Debug("newCodiceUO: " + theUO.Codice);
            parameters.Add(this.CreateParameter("idAmm", Convert.ToInt32(theUO.IDAmministrazione)));
            logger.Debug("idAmm: " + theUO.IDAmministrazione);
            parameters.Add(this.CreateParameter("codiceAoo", theUO.CodiceRegistroInterop));
            logger.Debug("codiceAoo: " + theUO.CodiceRegistroInterop);

            //Aggiunta degli altri parametri
            //codiceAmmIPA, codiceAooIPA, isFatturazione, codiceUAC, codiceClassificazione, codiceAmmPITRE
            parameters.Add(this.CreateParameter("codiceAmmIPA", codiceAmmIPA));
            logger.Debug("codiceAmmIPA: " + codiceAmmIPA);
            parameters.Add(this.CreateParameter("codiceAooIPA", codiceAooIPA));
            logger.Debug("codiceAooIPA: " + codiceAooIPA);
            if (string.IsNullOrEmpty(isFatturazione))
            {
                parameters.Add(this.CreateParameter("isFatturazione", DBNull.Value));
            }
            else
            {
                parameters.Add(this.CreateParameter("isFatturazione", isFatturazione));
            }
            logger.Debug("isFatturazione: " + isFatturazione);
            parameters.Add(this.CreateParameter("codiceUAC", codiceUAC));
            logger.Debug("codiceUAC: " + codiceUAC);
            parameters.Add(this.CreateParameter("codiceClassificazione", codiceClassificazione));
            logger.Debug("codiceClassificazione: " + codiceClassificazione);
            parameters.Add(this.CreateParameter("codiceAmmPITRE", amm.codice));
            logger.Debug("codiceAmmPITRE: " + amm.codice);
            //Unico valore da controllare è isFatturazione
            //End parametri aggiuntivi

            int    rowsAffected = 0;
            string queryString  = string.Empty;

            // provo a non usare la store ma a fare direttamente insert o update
            if (!string.IsNullOrEmpty(oldCodiceUO))
            {
                // caso update
                queryString = "UPDATE DPA_DATI_FATTURAZIONE SET codice_uo = '" + theUO.Codice + "'" +
                              " WHERE UPPER(Codice_Amm_Ipa) = UPPER('" + codiceAmmIPA + "') AND UPPER(Codice_Aoo_Ipa) = UPPER('" + codiceAooIPA + "') AND UPPER(codice_uo) = UPPER('" + oldCodiceUO + "')";
            }
            else
            {
                // caso insert
                //queryString = "INSERT INTO DPA_DATI_FATTURAZIONE " +
                //    "(system_id, codice_amm, codice_aoo, codice_uo, codice_uac, codice_classificazione, var_utente_proprietario, var_tipologia_documento, var_ragione_trasmissione) " +
                //    " VALUES(SEQ_DATI_FATTURAZIONE.Nextval, '" + codiceAmmIPA + "', '" + codiceAooIPA + "', '" + theUO.Codice + "', '" + codiceUAC + "', '" + codiceClassificazione + "', 'TIBCO', 'Fattura elettronica', 'Ricevimento fattura')";
                queryString = "Insert Into Dpa_Dati_Fatturazione " +
                              "(System_Id, Codice_Amm_Ipa, Codice_Aoo_Ipa, Codice_Uo, Codice_Uac, Codice_Classificazione, Var_Utente_Proprietario, Id_Tipologia_Documento, Var_Ragione_Trasmissione " +
                              ",Codice_Amm_Pitre,Codice_AOO_Pitre) " +
                              "Values(Seq_Dati_Fatturazione.Nextval, '" + codiceAmmIPA + "', '" + codiceAooIPA + "', '" + theUO.Codice + "', '" + codiceUAC + "', '" + codiceClassificazione + "', 'TIBCO', '" + isFatturazione + "', 'RICEVIMENTO_FATTURA' " +
                              ",'" + amm.codice + "','" + theUO.CodiceRegistroInterop + "')";
            }


            // Parametro di output relativo all'eventuale aggiornamento
            try
            {
                logger.Debug("DBPProvider: " + dbp.ToString());
                logger.Debug("queryString: " + queryString);
                //rowsAffected = dbp.ExecuteStoreProcedure("SP_MODIFY_UO_FATTURAZIONE", parameters);
                dbp.ExecuteNonQuery(queryString, out rowsAffected);
            }
            catch (Exception e)
            {
                logger.Debug("Errore nella modifica della UO in DPA_DATI_FATTURAZIONE ", e);
                result = false;
                ammin  = null;
                return(ammin);
            }

            //logger.Debug("Chiamata SP 'SP_MODIFY_UO_FATTURAZIONE'. Esito: " + Convert.ToString(rowsAffected));

            if (rowsAffected == 1)
            {
                result = true;
                //Imposto la amministrazione passata come parametro
                ammin = amm;
                //Estraggo l'email da dpa_amministra per informare il referente che è stata effettuata una modifica o non inserimento del codice della UO
                //ammin = _getInfoAmministrazione(theUO.IDAmministrazione);
            }
            else
            {
                // ritorna false per indicare che non è stato effettuato nessun aggiornamento (e quindi non serve notificare)
                // oppure, in caso di inserimento della UO in PITRE, è stato trovato il record corrsipondente nella tabella SysExternal
                // e quindi non è necessario notificare
                result = false;
                ammin  = null;
            }
            return(ammin);
        }
示例#11
0
        //---TO DO: Da inserire la SP lato DB
        public DocsPaVO.utente.Amministrazione ModificaUoSysExternal(string oldCodiceUO, DocsPaVO.amministrazione.OrgUO theUO, out bool result)
        {
            DocsPaVO.utente.Amministrazione amm = new DocsPaVO.utente.Amministrazione();
            result = false;
            string codiceAmmIPA          = string.Empty;
            string codiceAooIPA          = string.Empty;
            string isFatturazione        = string.Empty;
            string codiceUAC             = string.Empty;
            string codiceClassificazione = string.Empty;

            if (WR != null)
            {
                //Start JOB

                //Query per il recupero delle informazioni che mi servono da passare al servizio web.
                codiceAmmIPA          = getCodiceAmmIPA(theUO);
                codiceAooIPA          = getCodiceAooIPA(theUO);
                isFatturazione        = getIsFatturazione(theUO);
                codiceUAC             = getCodiceUAC(theUO);
                codiceClassificazione = getCodiceClassificazione(theUO);
                //Devo recuperare anche le informazioni dell'amministrazione da PITRE
                amm = getInfoAmministrazione(theUO.IDAmministrazione);

                //Ho tutti i parametri impostati: Passare i parametri nella firma del metodo per fare la Stored Procedure
                //Il metodo avvia la Stored Procedure
                amm = WR.AmmModificaUoSysExternal(oldCodiceUO, theUO, codiceAmmIPA, codiceAooIPA, isFatturazione, codiceUAC, codiceClassificazione, amm, out result);
            }
            else
            {
                logger.Debug("webReference is null");
            }

            return(amm);
        }