/// <summary> /// </summary> /// <param name="idRegistro"></param> /// <returns></returns> public static DocsPaVO.utente.Registro getRegistro(string idRegistro) { DocsPaVO.utente.Registro reg = null; if (!(idRegistro != null && !idRegistro.Equals(""))) { return(reg); } DocsPaDB.Query_DocsPAWS.Utenti utenti = new DocsPaDB.Query_DocsPAWS.Utenti(); utenti.GetRegistro(idRegistro, ref reg); #region Codice Commentato /*string queryString = * "SELECT A.SYSTEM_ID, A.VAR_CODICE, A.NUM_RIF, A.VAR_DESC_REGISTRO, " + * "A.VAR_EMAIL_REGISTRO, A.CHA_STATO, A.ID_AMM, " + * DocsPaWS.Utils.dbControl.toChar("A.DTA_OPEN",false) + " AS DTA_OPEN, " + * DocsPaWS.Utils.dbControl.toChar("A.DTA_CLOSE",false) + " AS DTA_CLOSE, " + * DocsPaWS.Utils.dbControl.toChar("A.DTA_ULTIMO_PROTO",false) + " AS DTA_ULTIMO_PROTO " + * "FROM DPA_EL_REGISTRI A WHERE A.SYSTEM_ID=" + idRegistro; * logger.Debug(queryString); * * IDataReader dr = db.executeReader(queryString); * * if(dr.Read()){ * reg = new DocsPaVO.utente.Registro(); * * reg.systemId = dr.GetValue(0).ToString(); * reg.codRegistro = dr.GetValue(1).ToString(); * reg.codice = dr.GetValue(2).ToString(); * reg.descrizione = dr.GetValue(3).ToString(); * reg.email = dr.GetValue(4).ToString(); * reg.stato = dr.GetValue(5).ToString(); * reg.idAmministrazione = dr.GetValue(6).ToString(); * reg.codAmministrazione = DocsPaDB.Utils.Personalization.getInstance(reg.idAmministrazione).getCodiceAmministrazione(); * reg.dataApertura = dr.GetValue(7).ToString(); * reg.dataChiusura = dr.GetValue(8).ToString(); * reg.dataUltimoProtocollo = dr.GetValue(9).ToString(); * } * dr.Close();*/ #endregion return(reg); }
public string Protocolla(ArrayList listaCampi, ArrayList listaDati, out int numProto, out string segnatura) { string err = string.Empty; numProto = 0; segnatura = string.Empty; // CAMPI string userID = listaCampi[0].ToString(); string pwd = listaCampi[1].ToString(); string idCorrRuolo = listaCampi[2].ToString(); string idGruppo = listaCampi[3].ToString(); string livelloRuolo = listaCampi[4].ToString(); string idUO = listaCampi[5].ToString(); string codUO = listaCampi[6].ToString(); string descUO = listaCampi[7].ToString(); string idAmm = listaCampi[8].ToString(); string idRegistro = listaCampi[9].ToString(); string nomeUtenteProt = listaCampi[10].ToString(); string cognomeUtenteProt = listaCampi[11].ToString(); // DATI string dataProtoEme = listaDati[0].ToString(); string numProtoEme = listaDati[1].ToString(); string protoEme = listaDati[2].ToString(); string tipoProtocollo = listaDati[3].ToString(); string oggetto = listaDati[4].ToString(); string corrispondenti = listaDati[5].ToString(); string corrispondentiCC = listaDati[6].ToString(); string dataProtoMitt = listaDati[7].ToString(); string numProtoMitt = listaDati[8].ToString(); string dataArrivo = listaDati[9].ToString(); string codClassifica = listaDati[10].ToString(); string note = listaDati[11].ToString(); string systemIdRF = listaDati[12].ToString(); try { this.canaleWSAperto(); // login err = Login(userID, pwd, idAmm); if (err != null && err != string.Empty) { return("ERRORE: " + err); } // ruolo this._ruolo = new DocsPaVO.utente.Ruolo(); this._ruolo.systemId = idCorrRuolo; this._ruolo.idGruppo = idGruppo; DocsPaVO.utente.UnitaOrganizzativa uo = new DocsPaVO.utente.UnitaOrganizzativa(); uo.codice = codUO; uo.descrizione = descUO; uo.idAmministrazione = idAmm; uo.systemId = idUO; this._ruolo.uo = uo; this._ruolo.livello = livelloRuolo; this._ruolo.registri = new ArrayList(); this._ruolo.registri.Add(this._ws.GetRegistroBySistemId(idRegistro)); // utente DocsPaVO.utente.InfoUtente infoUtente = this.getInfoUtente(); DocsPaVO.utente.Corrispondente corr = null; DocsPaVO.documento.SchedaDocumento schedaDoc = new DocsPaVO.documento.SchedaDocumento();; // Tipologia Protocollo if (tipoProtocollo == "P") { DocsPaVO.documento.ProtocolloUscita protoOUT = new DocsPaVO.documento.ProtocolloUscita(); // un solo mittente = struttura del protocollista corr = new DocsPaVO.utente.Corrispondente(); corr.systemId = idUO; corr.codiceCorrispondente = codUO; corr.descrizione = descUO; corr.tipoIE = "I"; corr.idAmministrazione = idAmm; corr.dettagli = false; protoOUT.mittente = corr; // uno o più destinatari if (protoOUT.destinatari == null) { protoOUT.destinatari = new ArrayList(); } string[] lstCorrEst = corrispondenti.Split(';'); foreach (string corrEst in lstCorrEst) { protoOUT.destinatari.Add(corrDestOcc(corrEst.Trim(), idAmm)); } if (!string.IsNullOrEmpty(corrispondentiCC.Trim())) { // uno o più destinatari in conoscenza if (protoOUT.destinatariConoscenza == null) { protoOUT.destinatariConoscenza = new ArrayList(); } string[] lstCorrEstCC = corrispondentiCC.Split(';'); foreach (string corrEstCC in lstCorrEstCC) { protoOUT.destinatariConoscenza.Add(corrDestOcc(corrEstCC.Trim(), idAmm)); } } schedaDoc.protocollo = protoOUT; schedaDoc.tipoProto = "P"; } // protocollo in arrivo if (tipoProtocollo == "A") { DocsPaVO.documento.ProtocolloEntrata protoIN = new DocsPaVO.documento.ProtocolloEntrata(); // un solo mittente = struttura del protocollista //corr = new DocsPaVO.utente.Corrispondente(); //corr.systemId = idUO; //corr.codiceCorrispondente = codUO; //corr.descrizione = descUO; //corr.tipoIE = "I"; //corr.idAmministrazione = idAmm; //corr.dettagli = false; //protoIN.mittente = corr; string corrispondente = string.Empty; if (!string.IsNullOrEmpty(corrispondenti.Trim())) { if (corrispondenti.Contains(";")) { corrispondente = corrispondenti.Substring(0, corrispondenti.IndexOf(";") + 1); } else { corrispondente = corrispondenti; } } DocsPaVO.utente.Corrispondente corr2 = new DocsPaVO.utente.Corrispondente(); corr2.descrizione = corrispondente; corr2.tipoCorrispondente = "O"; corr2.tipoIE = "E"; corr2.idAmministrazione = idAmm; corr2.dettagli = false; protoIN.mittente = corr2; // protocollo mittente if (dataProtoMitt != null && dataProtoMitt != string.Empty) { protoIN.dataProtocolloMittente = dataProtoMitt; } if (numProtoMitt != null && numProtoMitt != string.Empty) { protoIN.descrizioneProtocolloMittente = numProtoMitt; } // data arrivo if (dataArrivo != null && dataArrivo != string.Empty) { DocsPaVO.documento.Documento doc = new DocsPaVO.documento.Documento(); doc.dataArrivo = dataArrivo; schedaDoc.documenti = new ArrayList(); schedaDoc.documenti.Add(doc); } schedaDoc.protocollo = protoIN; schedaDoc.tipoProto = "A"; } schedaDoc = this.creaSchedaDocumento(idRegistro, oggetto, note, schedaDoc); // esegue il tutto solo se il registro non è chiuso if (!schedaDoc.registro.stato.Equals("C")) { // dati di emergenza schedaDoc.datiEmergenza = new DocsPaVO.documento.DatiEmergenza(); schedaDoc.datiEmergenza.dataProtocollazioneEmergenza = dataProtoEme; schedaDoc.datiEmergenza.protocolloEmergenza = protoEme; schedaDoc.datiEmergenza.cognomeProtocollatoreEmergenza = cognomeUtenteProt; schedaDoc.datiEmergenza.nomeProtocollatoreEmergenza = nomeUtenteProt; // protocollatore schedaDoc.protocollatore = new DocsPaVO.documento.Protocollatore(infoUtente.idPeople, idCorrRuolo, idUO, codUO); // creatore del documento schedaDoc.creatoreDocumento = new DocsPaVO.documento.CreatoreDocumento(infoUtente.idPeople, idCorrRuolo, idUO); // controllo su univocità RF nel caso di RF presente nella segnatura // questo codice prevede la presenza della chiave del web config nel WS //if (ConfigurationManager.AppSettings["ENABLE_CODBIS_SEGNATURA"] != null && ConfigurationManager.AppSettings["ENABLE_CODBIS_SEGNATURA"] == "1") //{ //DocsPaDB.Query_DocsPAWS.Amministrazione amm = new DocsPaDB.Query_DocsPAWS.Amministrazione(); //DocsPaVO.amministrazione.InfoAmministrazione infoAmm = amm.AmmGetInfoAmmCorrente(infoUtente.idAmministrazione); //if (infoAmm.Segnatura.Contains("COD_RF_PROT")) //{ // // se ci sono uno o più RF associati al registro // DocsPaDB.Query_DocsPAWS.Utenti utenti = new DocsPaDB.Query_DocsPAWS.Utenti(); // ArrayList listaRF = new ArrayList(); // listaRF = utenti.GetListaRegistriRfRuolo(idCorrRuolo, "1", idRegistro); // if (listaRF != null && listaRF.Count == 1) //se un solo RF non apro popup, ma selec direttamente. // { // DocsPaVO.utente.Registro reg = (DocsPaVO.utente.Registro)listaRF[0]; // schedaDoc.id_rf_prot = reg.systemId; // schedaDoc.cod_rf_prot = reg.codRegistro; // } //} //} //verifico se è stato inserito il codice RF da foglio excel if (!string.IsNullOrEmpty(systemIdRF)) { DocsPaDB.Query_DocsPAWS.Utenti utenti = new DocsPaDB.Query_DocsPAWS.Utenti(); DocsPaVO.utente.Registro reg = new DocsPaVO.utente.Registro(); utenti.GetRegistro(systemIdRF, ref reg); if (reg != null && !string.IsNullOrEmpty(reg.systemId) && !string.IsNullOrEmpty(reg.codRegistro)) { schedaDoc.id_rf_prot = reg.systemId; schedaDoc.cod_rf_prot = reg.codRegistro; } } DocsPaVO.documento.ResultProtocollazione risultatoProtocollazione; DocsPaVO.documento.SchedaDocumento schedaResult = this._ws.DocumentoProtocolla(schedaDoc, infoUtente, this._ruolo, out risultatoProtocollazione); if (schedaResult != null) { this.putinfoCorr(schedaResult); numProto = Int32.Parse(schedaResult.protocollo.numero); segnatura = schedaResult.protocollo.segnatura; string idProfile = schedaResult.docNumber; err = "Ok - "; // classificazione if (codClassifica != null && codClassifica != string.Empty) { DocsPaVO.fascicolazione.Fascicolo fascicolo = this._ws.FascicolazioneGetFascicoloDaCodice(infoUtente, codClassifica, schedaDoc.registro, false, false); if (fascicolo != null) { // recupera il folder DocsPaVO.fascicolazione.Folder folder = this._ws.FascicolazioneGetFolder(infoUtente.idPeople, idGruppo, fascicolo); if (folder != null) { bool outValue = false; string msg = string.Empty; // classifica outValue = this._ws.FascicolazioneAddDocFolder(infoUtente, idProfile, folder, fascicolo.descrizione, out msg); if (outValue) { err += " - Classificato su: " + codClassifica; } else { err += " - Classificazione fallita!"; } } else { err += " - Classificazione fallita!"; } } else { err += " - Classificazione fallita!"; } } err += " Nuova segnatura: " + segnatura; } else { err = "Errore: protocollazione fallita!"; } } else { err = "registro chiuso"; } } catch (Exception ex) { err = "Errore: protocollazione fallita! - " + ex.ToString(); } finally { this.Logoff(); this.chiudiCanaleWS(); } return(err); }