Beispiel #1
0
        /// <summary>
        /// Funzione per il recupero della lista dei ruoli presenti sotto un dato ufficio
        /// </summary>
        /// <param name="filtroRicerca">Filtro con le informazioni sull'ufficio di cui ricavare i ruoli</param>
        /// <param name="userInfo">Informazioni sull'utente</param>
        /// <returns>Lista degli id dei ruoli presenti sotto l'ufficio</returns>
        private string GetRolesList(FiltroRicerca filtroRicerca, InfoUtente userInfo)
        {
            StringBuilder rolesId = new StringBuilder();

            using (Amministrazione amm = new Amministrazione())
            {
                Ruolo[] roles = (Ruolo[])amm.getRuoliUO(new UnitaOrganizzativa()
                {
                    systemId = filtroRicerca.valore, idAmministrazione = userInfo.idAmministrazione
                }).ToArray(typeof(Ruolo));

                foreach (var role in roles)
                {
                    rolesId.AppendFormat("{0},", role.idGruppo);
                }

                // Rimozione dell'ultima virgola
                rolesId = rolesId.Remove(rolesId.Length - 1, 1);
            }

            // Restituzione ruoli
            return(rolesId.ToString());
        }
Beispiel #2
0
        /// <summary>
        /// Metodo per il salvataggio delle informazioni su una ricevuta di conferma di ricezione
        /// </summary>
        /// <param name="senderRecordInfo">Informazioni sul protocollo in uscita</param>
        /// <param name="receiverRecordInfo">Informazioni sul protocollo ricevuto</param>
        /// <param name="receiverUrl">Url del mittente</param>
        /// <returns>Esto dell'aggiornamento</returns>
        public bool SaveReceivedProofData(RecordInfo senderRecordInfo, RecordInfo receiverRecordInfo, String receiverUrl, String receiverCode)
        {
            // Splitting dei codici dei corrispondenti (i codici arrivano come codici di corrispondenti nella loro
            // ultima versione, ma è possibile che da quando è stato creato il documento, il corrispondente abbia subito
            // delle storicizzazioni
            String[] corrs = receiverCode.Split(',');


            Query query = InitQuery.getInstance().getQuery("U_SET_RECEIVED_PROOF_DATA");

            // Recupero dell'id dell'amministrazione mittente
            String administrationId = new Amministrazione().GetIDAmm(senderRecordInfo.AdministrationCode);

            // Costruzione informazioni sul protocollo ricevuto
            String protoRec = String.Format("{0}{1}{2}{1}{3}",
                                            receiverRecordInfo.RecordNumber,
                                            DocsPaDB.Utils.Personalization.getInstance(administrationId).getSepSegnatura(),
                                            receiverRecordInfo.AOOCode,
                                            receiverRecordInfo.RecordDate.Year);

            query.setParam("receiverProtoRec", protoRec);
            query.setParam("receiverProtoDate", receiverRecordInfo.RecordDate.ToString("dd/MM/yyyy HH:mm:ss"));
            query.setParam("senderRecordNumber", senderRecordInfo.RecordNumber);
            query.setParam("senderProtoDate", senderRecordInfo.RecordDate.ToString("dd/MM/yyyy HH:mm:ss"));
            query.setParam("receiverAooCode", receiverRecordInfo.AOOCode);
            query.setParam("receiverAdmCode", receiverRecordInfo.AdministrationCode);
            query.setParam("senderAdmCode", senderRecordInfo.AdministrationCode);
            query.setParam("senderAooCode", senderRecordInfo.AOOCode);
            query.setParam("receiverUrl", receiverUrl);

            if (dbType.ToUpper().Equals("SQL"))
            {
                List <string> idCorr    = new List <string>();
                string        condition = string.Empty;
                DataSet       ds;
                //selezione degli id associati alla storia dei corrispondenti, destinatari di una spedizione
                if (this.ExecuteQuery(out ds, "corr", this.GetCorrUnion(corrs).ToString()))
                {
                    if (ds.Tables["corr"] != null && ds.Tables["corr"].Rows.Count > 0)
                    {
                        foreach (DataRow row in ds.Tables["corr"].Rows)
                        {
                            idCorr.Add(row["SYSTEM_ID"].ToString());
                        }
                        string listSystemId = string.Empty;
                        foreach (string id in idCorr)
                        {
                            listSystemId += string.IsNullOrEmpty(listSystemId) ? " '" + id + "'" : " ,'" + id + "'";
                        }
                        condition = listSystemId;
                        query.setParam("receiverCode", condition);
                    }
                }
            }
            else
            {
                query.setParam("receiverCode", this.GetCorrUnion(corrs));
            }

            logger.Debug(query.getSQL());

            using (DBProvider dbProvider = new DBProvider())
            {
                return(dbProvider.ExecuteNonQuery(query.getSQL()));
            }
        }
Beispiel #3
0
        public ArrayList eseguiRicercaCampiComuni(DocsPaVO.utente.InfoUtente infoUtente, DocsPaVO.filtri.FiltroRicerca[][] listaFiltri, int numPage, int pageSize, out int nRec)
        {
            ArrayList listaDocFasc = new ArrayList();

            DocsPaDB.DBProvider dbProvider = new DocsPaDB.DBProvider();

            nRec = getCountDocFasc(infoUtente, listaFiltri);

            if (nRec > 0)
            {
                try
                {
                    //Condizioni security e amministrazione
                    DocsPaUtils.Query queryMng = DocsPaUtils.InitQuery.getInstance().getQuery("S_CAMPI_COMUNI_DOC_FASC");
                    queryMng.setParam("idPeople", infoUtente.idPeople);
                    queryMng.setParam("idGruppo", infoUtente.idGruppo);
                    queryMng.setParam("idAmm", infoUtente.idAmministrazione);

                    string idRuoloPubblico = DocsPaUtils.Configuration.InitConfigurationKeys.GetValue(infoUtente.idAmministrazione, "ENABLE_FASCICOLO_PUBBLICO");
                    if (string.IsNullOrEmpty(idRuoloPubblico))
                    {
                        idRuoloPubblico = "0";
                    }
                    queryMng.setParam("idRuoloPubblico", idRuoloPubblico);

                    //SQL Server
                    int pageSizeSqlServer  = pageSize;
                    int totalRowsSqlServer = (numPage * pageSize);
                    if ((nRec - totalRowsSqlServer) <= 0)
                    {
                        pageSizeSqlServer -= System.Math.Abs(nRec - totalRowsSqlServer);
                        totalRowsSqlServer = nRec;
                    }
                    queryMng.setParam("pageSize", pageSizeSqlServer.ToString());
                    queryMng.setParam("totalRows", totalRowsSqlServer.ToString());

                    //ORACLE
                    int numTotPage = (nRec / pageSize);
                    int startRow   = ((numPage * pageSize) - pageSize) + 1;
                    int endRow     = (startRow - 1) + pageSize;
                    queryMng.setParam("startRow", startRow.ToString());
                    queryMng.setParam("endRow", endRow.ToString());

                    //Condizioni registro
                    Utenti    utenti        = new Utenti();
                    ArrayList registri      = utenti.GetRuoloByIdGruppo(infoUtente.idGruppo).registri;
                    string    paramRegistri = " AND (A.ID_REGISTRO IS NULL OR A.ID_REGISTRO IN (";
                    foreach (DocsPaVO.utente.Registro registro in registri)
                    {
                        paramRegistri += registro.systemId + ",";
                    }
                    paramRegistri = paramRegistri.Substring(0, paramRegistri.Length - 1) + ")) ";
                    queryMng.setParam("condIdRegistri", paramRegistri);

                    //Condizioni titolari
                    Amministrazione amministrazione = new Amministrazione();
                    ArrayList       titolari        = amministrazione.getTitolariUtilizzabili(infoUtente.idAmministrazione);
                    string          paramTitolari   = " AND A.ID_TITOLARIO IN (";
                    foreach (DocsPaVO.amministrazione.OrgTitolario titolario in titolari)
                    {
                        paramTitolari += titolario.ID + ",";
                    }
                    paramTitolari = paramTitolari.Substring(0, paramTitolari.Length - 1) + ") ";
                    queryMng.setParam("condIdTitolari", paramTitolari);

                    //Condizioni profilazione campi comuni
                    for (int i = 0; i < listaFiltri.Length; i++)
                    {
                        for (int j = 0; j < listaFiltri[i].Length; j++)
                        {
                            DocsPaVO.filtri.FiltroRicerca f = listaFiltri[i][j];
                            if (f.valore != null && !f.valore.Equals(""))
                            {
                                switch (f.argomento)
                                {
                                //Condizioni profilazione campi comuni fascicolo
                                case "TEMPLATE_CAMPI_COMUNI_FASC":
                                    DocsPaDB.Query_DocsPAWS.ModelFasc modelFasc = new ModelFasc();
                                    string paramCondProfilazioneFascicoli       = string.Empty;
                                    paramCondProfilazioneFascicoli = modelFasc.getSeriePerRicercaProfilazione(f.template, "");
                                    if (!string.IsNullOrEmpty(paramCondProfilazioneFascicoli))
                                    {
                                        queryMng.setParam("condProfilazioneFascicoli", paramCondProfilazioneFascicoli);
                                    }
                                    else
                                    {
                                        queryMng.setParam("condProfilazioneFascicoli", " ");
                                    }
                                    break;

                                //Condizioni profilazione campi comuni documento
                                case "TEMPLATE_CAMPI_COMUNI_DOC":
                                    DocsPaDB.Query_DocsPAWS.Model model   = new Model();
                                    string paramCondProfilazioneDocumenti = string.Empty;
                                    paramCondProfilazioneDocumenti = model.getSeriePerRicercaProfilazione(f.template, "");
                                    if (!string.IsNullOrEmpty(paramCondProfilazioneDocumenti))
                                    {
                                        queryMng.setParam("condProfilazioneDocumenti", paramCondProfilazioneDocumenti);
                                    }
                                    else
                                    {
                                        queryMng.setParam("condProfilazioneDocumenti", " ");
                                    }
                                    break;
                                }
                            }
                        }
                    }

                    //Condizioni inizio e fine anno (Per il momento viene considerato di default l'anno corrente)
                    string anno = Convert.ToString(System.DateTime.Now.Year);
                    queryMng.setParam("startDateDoc", "01/01/" + anno);
                    queryMng.setParam("endDateDoc", "31/12/" + anno);

                    //Solo per il database SQL Server va effettuata la sostituzione del parametro @dbUser@
                    string dbType = System.Configuration.ConfigurationManager.AppSettings["DBType"];
                    if (dbType.ToUpper() == "SQL")
                    {
                        queryMng.setParam("dbUser", DocsPaDbManagement.Functions.Functions.GetDbUserSession());
                    }

                    string commandText = queryMng.getSQL();
                    System.Diagnostics.Debug.WriteLine("SQL - eseguiRicercaCampiComuni - RicProfCampiComuni.cs - QUERY : " + commandText);
                    logger.Debug("SQL - eseguiRicercaCampiComuni - RicProfCampiComuni.cs - QUERY : " + commandText);
                    DataSet ds = new DataSet();
                    dbProvider.ExecuteQuery(ds, commandText);

                    DocsPaVO.ProfilazioneDinamica.ItemRicCampiComuni itemRicCampiComuni = null;
                    for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
                    {
                        itemRicCampiComuni = new DocsPaVO.ProfilazioneDinamica.ItemRicCampiComuni();
                        setItemRicCampiComuni(ref itemRicCampiComuni, ds, i);
                        listaDocFasc.Add(itemRicCampiComuni);
                    }
                }
                catch (Exception ex)
                {
                    System.Diagnostics.Debug.WriteLine("SQL - eseguiRicercaCampiComuni - RicProfCampiComuni.cs - Eccezione : " + ex.Message);
                    logger.Debug("SQL - eseguiRicercaCampiComuni - RicProfCampiComuni.cs - Eccezione : " + ex.Message);
                    return(null);
                }
                finally
                {
                    dbProvider.Dispose();
                }
            }
            return(listaDocFasc);
        }