/// <summary> /// Ritorna tutti i registri e gli rf associati a un ruolo, o solamente gli RF o solamente i registri /// in base al valore dello string all /// se all="" ritorna tutto (sia registri che rf) /// se all="0" ritorna solo i registri /// se all="1" ritorna solo gli RF /// </summary> /// <param name="all"></param> //private void caricaRegistriDisponibili(string all, string idAooColl) private void caricaRegistriDisponibili() { //il pannello è visibile solo se il ruolo vede almeno un RF DocsPaWR.Registro reg = null; //prendo tutti i registri DocsPaWR.Registro[] listaRegistri = UserManager.getListaRegistri(this); string labelCombo; if (listaRegistri != null && listaRegistri.Length > 0) { //importante. I value della combo dei registri sono formati da terne separate dal carattere "_": //nella prima posizione viene specificata la systemId del registro o dell'RF //nella seconda posizione viene specificato un valore popolato solo per gli RF: // - "" per i registri // - "0" per gli RF abilitati // - "1" per gli RF non abilitati //nella terza posizione viene specificato l'IdAooCollegata (solo per gli RF) #region commento //for (int i = 0; i < listaRF.Length; i++) //{ // this.ddlRegRf.Items.Add((listaRF[i]).codRegistro); // this.ddlRegRf.Items[i].Value = (listaRF[i]).systemId + "_" + listaRF[i].rfDisabled + "_" + listaRF[i].idAOOCollegata; //} #endregion //this.pnlCombo.Visible = true; this.lblCombo.Visible = true; this.ddlRegRf.Visible = true; if (wnd == "proto" || wnd == "protoSempl") // caso di protocollo e protocollo semplificato { if (wnd == "proto") { reg = UserManager.getRegistroSelezionato(this); } else { ProtocollazioneIngresso.Registro.RegistroMng regMng = new ProtocollazioneIngresso.Registro.RegistroMng(this); reg = regMng.GetRegistroCorrente(); } int l = -1; for (int i = 0; i < listaRegistri.Length; i++) { if (listaRegistri[i].systemId == reg.systemId)//aggiungo il registro solo se coincide con quello di protocollo { l++; this.ddlRegRf.Items.Add((listaRegistri[i]).codRegistro); //this.ddlRegRf.Items[l].Value = (listaRegistri[i]).systemId + "_" + listaRegistri[i].rfDisabled + "_" + listaRegistri[i].idAOOCollegata; this.ddlRegRf.Items[l].Value = ""; this.ddlRegRf.Items[l].Selected = true; //prendo gli RF di ciascun registro listaRF = UserManager.getListaRegistriWithRF(this, "1", (listaRegistri[i]).systemId); if (listaRF != null && listaRF.Length > 0) { foreach (DocsPaWR.Registro currReg in listaRF) { string strText = InserisciSpazi(); this.ddlRegRf.Items.Add(strText + currReg.codRegistro); l++; //this.ddlRegRf.Items[l].Text = strText + currReg.codRegistro; this.ddlRegRf.Items[l].Value = currReg.systemId; //this.ddlRegRf.Items[l].Attributes.Add("style", " color:Gray"); } } else { //se non ci sono RF associati al registro di protocollo rendo invisibile il pannello //this.pnlCombo.Visible = false; this.lblCombo.Visible = false; this.ddlRegRf.Visible = false; } } } } else // caso di documenti grigi e ricerche { DocsPaWR.SchedaDocumento schedaDocumento = DocumentManager.getDocumentoInLavorazione(this); int l = -1; int i = 0; for (i = 0; i < listaRegistri.Length; i++) { l++; //carico nella combo tutti i registri che il ruolo può vedere if (!ddlRegRf.Items.Contains(ddlRegRf.Items.FindByValue((listaRegistri[i]).systemId))) { this.ddlRegRf.Items.Add((listaRegistri[i]).codRegistro); this.ddlRegRf.Items[i].Value = (listaRegistri[i]).systemId; } ////prendo gli RF di ciascun registro listaRF = UserManager.getListaRegistriWithRF(this, "1", (listaRegistri[i]).systemId); if (listaRF != null && listaRF.Length > 0) { foreach (DocsPaWR.Registro currReg in listaRF) { string strText = InserisciSpazi(); if (!ddlRegRf.Items.Contains(ddlRegRf.Items.FindByValue(currReg.systemId))) { this.ddlRegRf.Items.Add(strText + currReg.codRegistro); l++; this.ddlRegRf.Items[l].Value = currReg.systemId; //this.ddlRegRf.Items[l].Attributes.Add("style", " color:Gray"); } } } } ListItem item = new ListItem(); item.Text = "TUTTI"; item.Value = ""; if (!ddlRegRf.Items.Contains(ddlRegRf.Items.FindByText("TUTTI"))) { this.ddlRegRf.Items.Add(item); } if (schedaDocumento != null) { if (schedaDocumento.registro == null) { if (ctx.Session["userRegistro"] != null) { ListItem founded = this.ddlRegRf.Items.FindByValue(((Registro)ctx.Session["userRegistro"]).systemId); if (founded != null) { founded.Selected = true; keyWord.ContextKey = founded.Value; } } else { ListItem founded = this.ddlRegRf.Items.FindByValue(listaRegistri[0].systemId); if (founded != null) { founded.Selected = true; keyWord.ContextKey = founded.Value; } } } else { ListItem founded = this.ddlRegRf.Items.FindByValue(((Registro)ctx.Session["userRegistro"]).systemId); if (founded != null) { founded.Selected = true; keyWord.ContextKey = founded.Value; ////prendo gli RF di ciascun registro listaRF = UserManager.getListaRegistriWithRF(this, "1", founded.Value); string[] rf = new string[listaRF.Length]; int j = 0; foreach (Registro regis in listaRF) { rf[j] = regis.systemId; j++; } string[] index = new string[ddlRegRf.Items.Count]; j = 0; for (int z = 0; z < ddlRegRf.Items.Count; z++) { if (!string.IsNullOrEmpty(ddlRegRf.Items[z].Value) && ddlRegRf.Items[z].Value != founded.Value && !rf.Contains(ddlRegRf.Items[z].Value)) { index[j] = ddlRegRf.Items[z].Value; j++; } } foreach (var val in index) { ddlRegRf.Items.Remove(ddlRegRf.Items.FindByValue(val)); } } } } else { if (ctx.Session["userRegistro"] != null) { ListItem founded = this.ddlRegRf.Items.FindByValue(((Registro)ctx.Session["userRegistro"]).systemId); if (founded != null) { founded.Selected = true; keyWord.ContextKey = founded.Value; } } else { ListItem founded = this.ddlRegRf.Items.FindByValue(listaRegistri[0].systemId); if (founded != null) { founded.Selected = true; keyWord.ContextKey = founded.Value; } } } } } else { throw new Exception(); } }
//Valorizzo la descrizione oggetto in base al codice se esiste! protected void txt_cod_oggetto_TextChanged(object sender, EventArgs e) { DocsPAWA.DocsPaWR.Registro[] listaRF; if (CodOggPostBack) { //Recupero la scheda corrente DocsPaWR.SchedaDocumento schedaDoc = DocumentManager.getDocumentoInLavorazione(this.Page); if (schedaDoc == null) { //Valorizzazione della schedaDoc nel caso di protocollazione semplice ProtocollazioneIngresso.Protocollo.ProtocolloMng protoMng = new ProtocollazioneIngresso.Protocollo.ProtocolloMng(this.Page); schedaDoc = protoMng.GetDocumentoCorrente(); } ////Valorizzo il registro corrente string[] listaReg = { "" }; try { //recupero la lista di registri per passarli allo user control oggetto ai fini della ricerca if (wnd == "proto") { //registro in sessione listaReg = UserManager.getListaIdRegistri(this.Page); } else { //se vengo dal protocollo Semplificato if (wnd == "protoSempl") { ProtocollazioneIngresso.Registro.RegistroMng regMng = new ProtocollazioneIngresso.Registro.RegistroMng(this.Page); listaReg = new String[1]; listaReg[0] = regMng.GetRegistroCorrente().systemId; } else { listaReg = null; // ricerche e profilo } } ArrayList aL = new ArrayList(); if (listaReg != null) { for (int i = 0; i < listaReg.Length; i++) { aL.Add(listaReg[i]); listaRF = UserManager.getListaRegistriWithRF(this.Page, "1", listaReg[i]); for (int j = 0; j < listaRF.Length; j++) { aL.Add(listaRF[j].systemId); } } listaReg = new string[aL.Count]; aL.CopyTo(listaReg); } } catch (Exception ex) { throw new Exception("Registro non settato!"); } DocsPaWR.Oggetto[] listaObj; // E' inutile finire nel backend se la casella di testo è vuota (a parte il fatto che // la funzione, in questo caso, restituisce tutto l'oggettario) if (!String.IsNullOrEmpty(this.txt_cod_oggetto.Text.Trim())) { //In questo momento tralascio la descrizione oggetto che metto come stringa vuota listaObj = DocumentManager.getListaOggettiByCod(this.Page, listaReg, "", this.txt_cod_oggetto.Text); } else { listaObj = new DocsPaWR.Oggetto[] { new DocsPaWR.Oggetto() { descrizione = String.Empty, codOggetto = String.Empty } } }; if (listaObj.Length > 0) { this.txt_oggetto.Text = listaObj[0].descrizione; //this.txt_cod_oggetto.Text = listaObj[0].codOggetto; schedaDoc.oggetto.codOggetto = listaObj[0].codOggetto; schedaDoc.oggetto.descrizione = listaObj[0].descrizione; schedaDoc.oggetto.daAggiornare = true; DocumentManager.setDocumentoInLavorazione(schedaDoc); } else { RegisterClientScript("Codice_error", "alert('codice oggetto inesistente!');"); this.txt_oggetto.Text = ""; this.txt_cod_oggetto.Text = ""; //Azzero anche i dati nella scheda corrente in modo che non rimanga in memoria il vecchio //campo e codice oggetto!!! schedaDoc.oggetto.codOggetto = ""; schedaDoc.oggetto.descrizione = ""; DocumentManager.setDocumentoInLavorazione(schedaDoc); } } }
private void btn_aggiungi_Click(object sender, System.EventArgs e) { try { DocsPaWR.Oggetto oggetto = new DocsPAWA.DocsPaWR.Oggetto(); DocsPaWR.Registro registro = new DocsPAWA.DocsPaWR.Registro(); string msg; //controllo sull'inserimento dell'oggetto if (this.ctrl_oggetto.oggetto_text.Equals("") || this.ctrl_oggetto.oggetto_text == null) { msg = "Inserire il valore: oggetto"; Response.Write("<script>alert('" + msg + "');</script>"); return; } //controllo sulla lunghezza dell'oggetto (max 2000 car.) if (this.ctrl_oggetto.oggetto_text.Length > 2000) { msg = "La lunghezza massima del campo oggetto non deve superare i 2000 caratteri."; ctrl_oggetto.oggetto_SetControlFocus(); return; } //replace dell'apice singolo oggetto.descrizione = this.ctrl_oggetto.oggetto_text; //Aggiunta del codice oggetto se esiste!!! if (ctrl_oggetto.cod_oggetto_text != null && ctrl_oggetto.cod_oggetto_text != string.Empty) { oggetto.codOggetto = ctrl_oggetto.cod_oggetto_text; } else { oggetto.codOggetto = ""; } //if (wnd == "proto" || wnd == "protoSempl") //{ if (ddlRegRf.SelectedItem.Value == "") { if (wnd == "proto") // protocollo { registro = UserManager.getRegistroSelezionato(this); } else { if (wnd == "protoSempl") // protocollo semplificato { ProtocollazioneIngresso.Registro.RegistroMng regMng = new ProtocollazioneIngresso.Registro.RegistroMng(this); registro = regMng.GetRegistroCorrente(); } else { registro = null; // ricerche e profilo } } } else { char[] sep = { '_' }; string[] datiSelezione = ddlRegRf.SelectedValue.Split(sep); registro.systemId = datiSelezione[0]; registro.codice = ddlRegRf.SelectedItem.Text; } //DocsPaWR.DocsPaWebService wws = new DocsPaWR.DocsPaWebService(); //DocsPaWR.Registro reg = wws.GetRegistroBySistemId(registro.systemId); if (registro != null && registro.Sospeso) { RegisterClientScriptBlock("alertRegistroSospeso", "alert('Il registro selezionato è sospeso!');"); return; } string errMsg = ""; oggetto = DocumentManager.addOggetto(this, oggetto, registro, ref errMsg); if (oggetto != null) { ricerca(); } else { if (codOgg_enable && ctrl_oggetto.cod_oggetto_text != null && !ctrl_oggetto.cod_oggetto_text.Equals("")) { Response.Write("<script>alert('Oggetto o codice oggetto già presenti');</script>"); } else { Response.Write("<script>alert('Oggetto già presente');</script>"); } } } catch (Exception es) { ErrorManager.redirectToErrorPage(this, es); } }
/// <summary> /// Ritorna tutti i registri e gli rf associati a un ruolo, o solamente gli RF o solamente i registri /// in base al valore dello string all /// se all="" ritorna tutto (sia registri che rf) /// se all="0" ritorna solo i registri /// se all="1" ritorna solo gli RF /// </summary> /// <param name="all"></param> //private void caricaRegistriRFDisponibili(string all, string idAooColl) private void caricaRegistriRFDisponibili() { //il pannello è visibile solo se il ruolo vede almeno un RF DocsPaWR.Registro reg = null; //prendo tutti i registri DocsPaWR.Registro[] listaRegistri = UserManager.getListaRegistriWithRF(this, "0", ""); string labelCombo; if (listaRegistri != null && listaRegistri.Length > 0) { //importante. I value della combo dei registri sono formati da terne separate dal carattere "_": //nella prima posizione viene specificata la systemId del registro o dell'RF //nella seconda posizione viene specificato un valore popolato solo per gli RF: // - "" per i registri // - "0" per gli RF abilitati // - "1" per gli RF non abilitati //nella terza posizione viene specificato l'IdAooCollegata (solo per gli RF) #region commento //for (int i = 0; i < listaRF.Length; i++) //{ // this.ddlRegRf.Items.Add((listaRF[i]).codRegistro); // this.ddlRegRf.Items[i].Value = (listaRF[i]).systemId + "_" + listaRF[i].rfDisabled + "_" + listaRF[i].idAOOCollegata; //} #endregion //this.pnlCombo.Visible = true; this.lblCombo.Visible = true; this.ddlRegRf.Visible = true; if (wnd == "proto" || wnd == "protoSempl") // caso di protocollo e protocollo semplificato { if (wnd == "proto") { reg = UserManager.getRegistroSelezionato(this); } else { ProtocollazioneIngresso.Registro.RegistroMng regMng = new ProtocollazioneIngresso.Registro.RegistroMng(this); reg = regMng.GetRegistroCorrente(); } int l = -1; for (int i = 0; i < listaRegistri.Length; i++) { if (listaRegistri[i].systemId == reg.systemId)//aggiungo il registro solo se coincide con quello di protocollo { l++; this.ddlRegRf.Items.Add((listaRegistri[i]).codRegistro); //this.ddlRegRf.Items[l].Value = (listaRegistri[i]).systemId + "_" + listaRegistri[i].rfDisabled + "_" + listaRegistri[i].idAOOCollegata; this.ddlRegRf.Items[l].Value = ""; this.ddlRegRf.Items[l].Selected = true; //prendo gli RF di ciascun registro listaRF = UserManager.getListaRegistriWithRF(this, "1", (listaRegistri[i]).systemId); if (listaRF != null && listaRF.Length > 0) { foreach (DocsPaWR.Registro currReg in listaRF) { string strText = InserisciSpazi(); this.ddlRegRf.Items.Add(strText + currReg.codRegistro); l++; //this.ddlRegRf.Items[l].Text = strText + currReg.codRegistro; this.ddlRegRf.Items[l].Value = currReg.systemId + "_" + currReg.rfDisabled + "_" + currReg.idAOOCollegata; //this.ddlRegRf.Items[l].Attributes.Add("style", " color:Gray"); } } else { //se non ci sono RF associati al registro di protocollo rendo invisibile il pannello //this.pnlCombo.Visible = false; this.lblCombo.Visible = false; this.ddlRegRf.Visible = false; } } } } else // caso di documenti grigi e ricerche { ListItem item = new ListItem(); item.Text = "TUTTI"; item.Value = ""; item.Selected = true; this.ddlRegRf.Items.Add(item); int l = 0; for (int i = 0; i < listaRegistri.Length; i++) { //carico nella combo tutti i registri che il ruolo può vedere l++; this.ddlRegRf.Items.Add((listaRegistri[i]).codRegistro); this.ddlRegRf.Items[l].Value = (listaRegistri[i]).systemId + "_" + listaRegistri[i].rfDisabled + "_" + listaRegistri[i].idAOOCollegata; //prendo gli RF di ciascun registro listaRF = UserManager.getListaRegistriWithRF(this, "1", (listaRegistri[i]).systemId); if (listaRF != null && listaRF.Length > 0) { foreach (DocsPaWR.Registro currReg in listaRF) { string strText = InserisciSpazi(); this.ddlRegRf.Items.Add(strText + currReg.codRegistro); l++; this.ddlRegRf.Items[l].Value = currReg.systemId + "_" + currReg.rfDisabled + "_" + currReg.idAOOCollegata; //this.ddlRegRf.Items[l].Attributes.Add("style", " color:Gray"); } } } } } else { throw new Exception(); } }
private void ricerca() { DocsPaWR.Ruolo userRuolo = UserManager.getRuolo(this); string[] listaReg = null; if (wnd.StartsWith("proto")) //se vengo da PROTOCOLLO O PROTOCOLLO SEMPLIFICATO { if (ddlRegRf.SelectedValue == "") { if (wnd == "proto") { //registro in sessione listaReg = UserManager.getListaIdRegistri(this); } else { //se vengo dal protocollo Semplificato if (wnd == "protoSempl") { ProtocollazioneIngresso.Registro.RegistroMng regMng = new ProtocollazioneIngresso.Registro.RegistroMng(this); listaReg = new String[1]; listaReg[0] = regMng.GetRegistroCorrente().systemId; } } //se cerco nel registro, cerco anche negli RF associati caricaListaRF(ref listaReg, ddlRegRf, ""); } else { //ho specificato un RF, quindi cerco solo su quello char[] sep = { '_' }; string[] datiSelezione = ddlRegRf.SelectedValue.Split(sep); listaReg = Utils.addToArrayString(listaReg, datiSelezione[0]); //listaReg = Utils.addToArrayString(listaReg, ddlRegRf.SelectedValue.Substring(0, ddlRegRf.SelectedValue.LastIndexOf("_"))); } } else { if (ddlRegRf.SelectedValue == "") { /* * L'UTENTE HA SELEZIONATO LA VOCE "Tutti". In tal caso la ricerca dell'oggetto * verrà effettuata tra: * - tutti gli oggetti associati a tutti gli RF visibili al ruolo; * - tutti gli oggetti associati a tutti i registri visibili al ruolo; * - tra tutti gli oggetti con registro NULL */ //for (int i = 0; i < userRuolo.registri.Length; i++) //{ // listaReg = Utils.addToArrayString(listaReg, userRuolo.registri[i].systemId); //} caricaListaRF(ref listaReg, ddlRegRf, ""); //manca il filtroo su TUTTI listaReg = Utils.addToArrayString(listaReg, ""); } else { /* * L'UTENTE HA SELEZIONATO UNA VOCE DIVERSA DA "Tutti". * * Se è stato selezionato: * * - un registro: si ricerca nel registro e negli RF associati al esso * - un RF: si ricerca nell'RF corrente * */ char[] sep = { '_' }; string[] datiSelezione = ddlRegRf.SelectedValue.Split(sep); //aggiungo la selezione corrente listaReg = Utils.addToArrayString(listaReg, datiSelezione[0]); //se è un registro, devo aggiingere anche gli RF associati al registro if (datiSelezione[1] == string.Empty && datiSelezione[2] == string.Empty) { caricaListaRF(ref listaReg, ddlRegRf, datiSelezione[0]); } } } DocsPaWR.Oggetto[] listaObj; if (ctrl_oggetto.cod_oggetto_text != null && ctrl_oggetto.cod_oggetto_text != string.Empty && codOgg_enable) { //abilito la ricerca con il LIKE aggiungendo i seguenti caratteri speciali $@ listaObj = DocumentManager.getListaOggettiByCod(this, listaReg, this.ctrl_oggetto.oggetto_text, ("$@" + this.ctrl_oggetto.cod_oggetto_text)); } else { listaObj = DocumentManager.getListaOggetti(this, listaReg, this.ctrl_oggetto.oggetto_text); } this.lbl_risultatoRicOgg.Visible = false; //riempo il datagrid if (listaObj != null) { //Costruisco il datagrid Dt_elem = new ArrayList(); for (int i = 0; i < listaObj.Length; i++) { Dt_elem.Add(new Cols(listaObj[i].codOggetto, listaObj[i].descrizione, listaObj[i].systemId, i, listaObj[i].codRegistro)); } if (codOgg_enable) { this.dg_Oggetti.Columns[0].Visible = true; } if (listaObj.Length > 0) { this.dg_Oggetti.DataSource = Dt_elem; this.dg_Oggetti.DataBind(); this.dg_Oggetti.Visible = true; } else { this.dg_Oggetti.Visible = false; this.lbl_risultatoRicOgg.Visible = true; // nessun oggetto presente } } else { this.dg_Oggetti.Visible = false; this.lbl_risultatoRicOgg.Visible = true; // nessun oggetto presente } }