示例#1
0
        private bool filtra_ruoli_utenti_smistamento(DocsPAWA.DocsPaWR.ElementoRubrica er)
        {
            string pcode = null;

            DocsPaWR.Corrispondente rcorr = UserManager.GetCorrispondenteInterno(_page, er.codice, true);
            if (rcorr == null)
            {
                return(false);
            }

            if (er.tipo == "R")
            {
                pcode = ((DocsPAWA.DocsPaWR.Ruolo)rcorr).uo.codiceRubrica;
                if (IsInSmistamento(pcode))
                {
                    return(false);
                }
            }
            else
            {
                DocsPaWR.Ruolo[] ruoli = ((DocsPAWA.DocsPaWR.Utente)rcorr).ruoli;
                if (ruoli == null || ruoli.Length == 0)
                {
                    return(false);
                }

                foreach (Ruolo r in ruoli)
                {
                    DocsPaWR.ElementoRubrica err = new ElementoRubrica();
                    err.codice       = r.codiceRubrica;
                    err.interno      = true;
                    err.tipo         = "R";
                    err.descrizione  = "";
                    err.has_children = false;
                    bool filtra = filtra_ruoli_utenti_smistamento(err);
                    if (filtra)
                    {
                        return(true);
                    }
                }
                return(false);
            }
            bool result = filtra_smistamento(pcode);

            return(result);
        }
示例#2
0
        private bool filterRuoliUtentiSelectedAllowed(ref ElementoRubrica[] a, DocsPAWA.DocsPaWR.ElementoRubrica er, string tipoIESelected)
        {
            string codiceCorr = null;
            bool   retValue   = true;

            DocsPaWR.Corrispondente corr = UserManager.GetCorrispondenteInternoOrganigramma(_page, er.codice, true);
            if (corr == null)
            {
                retValue = false;
                return(retValue);
            }

            if (er.tipo == "R")
            {
                if (((DocsPAWA.DocsPaWR.Ruolo)corr).uo != null)
                {
                    codiceCorr = ((DocsPAWA.DocsPaWR.Ruolo)corr).uo.codiceRubrica;
                    if (check_uo(codiceCorr))
                    {
                        er.isVisibile = true;
                        a             = DocsPAWA.Utils.addToArrayElementoRubrica(a, er);
                    }
                    else
                    {
                        if (tipoIESelected.Equals("I"))
                        {
                            er.isVisibile = false;
                            a             = DocsPAWA.Utils.addToArrayElementoRubrica(a, er);
                        }
                        else
                        {
                            er.isVisibile = true;
                            a             = DocsPAWA.Utils.addToArrayElementoRubrica(a, er);
                        }
//
//						er.isVisibile = false;
//						a = DocsPAWA.Utils.addToArrayElementoRubrica(a,er);
                    }
                }
                else                 //se il ruolo non appartiene a nessuna UO, di dafault non lo rendo selezionabile
                {
                    er.isVisibile = false;
                    DocsPAWA.Utils.addToArrayElementoRubrica(a, er);
                }
            }
            else             // caso utente
            {
                DocsPaWR.Ruolo[] ruoli = ((DocsPAWA.DocsPaWR.Utente)corr).ruoli;

                if (ruoli != null && ruoli.Length > 0)
                {
                    foreach (Ruolo r in ruoli)
                    {
                        codiceCorr = (((DocsPAWA.DocsPaWR.Ruolo)r).uo).codiceRubrica;
                        if (check_uo(codiceCorr))
                        {
                            er.isVisibile = true;
                            a             = DocsPAWA.Utils.addToArrayElementoRubrica(a, er);
                        }
                        else
                        {
                            if (tipoIESelected.Equals("I"))
                            {
                                er.isVisibile = false;
                                a             = DocsPAWA.Utils.addToArrayElementoRubrica(a, er);
                            }
                            else
                            {
                                er.isVisibile = true;
                                a             = DocsPAWA.Utils.addToArrayElementoRubrica(a, er);
                            }
                        }
                    }
                }
                else                 //se l'utente non ha ruoli di default mettiamo il check a invisible
                {
                    er.isVisibile = false;
                    a             = DocsPAWA.Utils.addToArrayElementoRubrica(a, er);
                }
            }
            return(retValue);
        }
示例#3
0
        protected void txt_Codice_TextChanged(object sender, EventArgs e)
        {
            bool eseguiRicerca = true;

            if (Session["dictionaryCorrispondente"] != null)
            {
                dic_Corr = (Dictionary <string, DocsPAWA.DocsPaWR.Corrispondente>)Session["dictionaryCorrispondente"];
                if (dic_Corr.ContainsKey(this.ID))
                {
                    DocsPAWA.DocsPaWR.Corrispondente corr_saved = dic_Corr[this.ID];
                    if (dic_Corr[this.ID] != null && corr_saved.codiceRubrica.ToUpper().Equals(txt_Codice.Text.ToUpper()))
                    {
                        eseguiRicerca = false;
                    }
                    if (eseguiRicerca && Session["noRicercaCodice"] != null)
                    {
                        eseguiRicerca = false;
                        Session.Remove("noRicercaCodice");
                    }
                }
            }
            else
            {
                dic_Corr = new Dictionary <string, DocsPaWR.Corrispondente>();
            }

            if (Session["noDoppiaRicerca"] == null)
            {
                //caso di annullamento dei dati inseriti
                if (txt_Codice.Text.Equals("") && eseguiRicerca)
                {
                    eseguiRicerca     = false;
                    dic_Corr[this.ID] = null;
                    Session["dictionaryCorrispondente"] = dic_Corr;
                    txt_Descrizione.Text = "";
                    //Session.Add("resetCorrispondente", true);
                }

                if (Session["rubrica.campoCorrispondente"] == null && eseguiRicerca)
                {
                    ElementoRubrica[] listaCorr = null;

                    //In questo caso il campo è readOnly.
                    //Controllo solo il codice perchè la descrizione è sempre readOnly,
                    //l'apertura della rubrica è quindi inutile in quanto non si può
                    //modificare il valore di questo userControl
                    if (sCodiceReadOnly)
                    {
                        return;
                    }

                    DocsPAWA.DocsPaWR.Ruolo ruoloSelezionato = UserManager.getRuolo();

                    DocsPaWR.Registro[] regAll = UserManager.getListaRegistriWithRF(ruoloSelezionato.systemId, "", "");
                    string condRegistri        = string.Empty;
                    if (regAll != null && regAll.Length > 0)
                    {
                        condRegistri = " and (id_registro in (";
                        foreach (DocsPaWR.Registro reg in regAll)
                        {
                            condRegistri += reg.systemId + ",";
                        }
                        condRegistri  = condRegistri.Substring(0, condRegistri.Length - 1);
                        condRegistri += ") OR id_registro is null)";
                    }

                    //Se in sessione c'è un ruolo, vuol dire che sono sul frontend e quindi la
                    //rubrica puo' funzionare, in quanto preleva da sessione il registro, il ruolo e
                    //l'utente che la vorrebbero utilizzando.
                    //In caso contrario, vuol dire che sto chiamando l'apertura della rubrica
                    //dall'amministrazione, in particolare da una delle due anteprime di profilazione.
                    //In questo caso non essendoci nessun registro, nè ruolo nè utente in sessione,
                    //l'apertura della rubrica viene inibita, ma non è un problema in quanto essendo
                    //un antemprima, serve solo per determinare una veste grafica gradevole per tipo
                    //di documento o di fascicolo che si sta creando.
                    if (ruoloSelezionato != null)
                    {
                        if ((sCodice != null && sCodice != "") || (txt_Codice.Text != null && txt_Codice.Text != ""))
                        {
                            listaCorr = UserManager.getElementiRubricaMultipli(this.Page, txt_Codice.Text, RubricaCallType.CALLTYPE_RICERCA_CORRISPONDENTE, !this.cbx_storicizzato.Checked);

                            if (listaCorr == null || (listaCorr != null && listaCorr.Length == 0))
                            {
                                this.TIPO = "";
                                this.ID_CORRISPONDENTE = "";
                                sCodice           = txt_Codice.Text;
                                sDescrizione      = null;
                                dic_Corr[this.ID] = null;
                                Session.Add("dictionaryCorrispondente", dic_Corr);
                                Page.ClientScript.RegisterStartupScript(this.GetType(), "noCorr", String.Format("alert('Nessun corrispondente individuato con il codice {0}');", this.txt_Codice.Text), true);
                            }
                            else
                            {
                                if (listaCorr != null && listaCorr.Length > 1)
                                {
                                    dic_Corr[this.ID] = null;
                                    Page.ClientScript.RegisterStartupScript(this.GetType(), "multiCorr", "ApriFinestraMultiCorrispondenti('" + this.txt_Codice.ClientID + "','" + this.txt_Descrizione.ClientID + "', '" + this.ID + "');", true);
                                    Session.Add("multiCorr", listaCorr);
                                    Session["noRicercaDesc"] = true;
                                    Session["idCorrMulti"]   = Convert.ToInt32(this.ID);
                                    return;
                                }
                                else
                                {
                                    if (listaCorr != null && listaCorr.Length == 1) // && !this.cbx_storicizzato.Checked)
                                    {
                                        DocsPAWA.DocsPaWR.ElementoRubrica er = listaCorr[0];
                                        if (this.cbx_storicizzato.Checked)
                                        {
                                            dic_Corr[this.ID] = UserManager.getCorrispondenteBySystemIDDisabled(this.Page, er.systemId);
                                        }
                                        else
                                        {
                                            dic_Corr[this.ID] = UserManager.getCorrispondenteByCodRubricaIENotdisabled(this.Page, er.codice, AddressbookTipoUtente.GLOBALE);
                                        }
                                        this.TIPO = er.tipo;
                                        if (dic_Corr[this.ID] != null)
                                        {
                                            this.ID_CORRISPONDENTE = er.systemId;
                                            txt_Descrizione.Text   = er.descrizione;
                                            sDescrizione           = er.descrizione;
                                            txt_Codice.Text        = er.codice;
                                            sCodice = er.codice;
                                        }
                                        else
                                        {
                                            this.ID_CORRISPONDENTE = string.Empty;
                                            txt_Descrizione.Text   = string.Empty;
                                            sDescrizione           = string.Empty;
                                            txt_Codice.Text        = string.Empty;
                                            sCodice = string.Empty;
                                        }
                                        Session.Add("dictionaryCorrispondente", dic_Corr);
                                        Session["noRicercaDesc"] = true;
                                    }
                                }
                            }
                        }
                    }
                }
            }
            else
            {
                Session.Remove("noDoppiaRicerca");
            }

            if (Session["countCorr"] != null && Convert.ToInt32(Session["countCorr"]) > 1)
            {
                Session.Remove("whichCorr");
            }

            if (isRiprodotto)
            {
                Session.Remove("CorrSelezionatoDaMulti");
                Session.Remove("rubrica.campoCorrispondente");
            }
        }