private static DocsPaVO.trasmissione.Trasmissione ExecuteTransmission(DocsPaVO.documento.SchedaDocumento schedaDoc, string idGruppoDest, string idPeopleDest, DocsPaVO.utente.InfoUtente infoUtente) { DocsPaVO.trasmissione.Trasmissione trasm = new DocsPaVO.trasmissione.Trasmissione(); DocsPaDB.Query_DocsPAWS.Utenti u = new DocsPaDB.Query_DocsPAWS.Utenti(); trasm.ruolo = u.GetRuoloByIdGruppo(infoUtente.idGruppo); //istanzaProcesso.RuoloProponente; trasm.utente = u.getUtenteById(infoUtente.idPeople); //istanzaProcesso.UtenteProponente; DocsPaDB.Query_DocsPAWS.Documenti doc = new DocsPaDB.Query_DocsPAWS.Documenti(); trasm.infoDocumento = schedaDoc.InfoDocumento; //INSERISCO LA RAGIONE DI TRASMISSIONE DI SISTEMA PER LIBRO FIRMA DocsPaVO.trasmissione.RagioneTrasmissione ragione = getRagioneTrasm(infoUtente.idAmministrazione, "D"); //CREO LA TRASMISSIONE SINGOLA DocsPaVO.trasmissione.TrasmissioneSingola trasmSing = new DocsPaVO.trasmissione.TrasmissioneSingola(); trasmSing.ragione = ragione; trasmSing.tipoTrasm = "S"; DocsPaDB.Query_DocsPAWS.Utenti utenti = new DocsPaDB.Query_DocsPAWS.Utenti(); DocsPaVO.utente.Ruolo ruolo = utenti.GetRuoloByIdGruppo(idGruppoDest); trasmSing.corrispondenteInterno = ruolo; trasmSing.tipoDest = DocsPaVO.trasmissione.TipoDestinatario.RUOLO; System.Collections.ArrayList listaUtenti = new System.Collections.ArrayList(); DocsPaVO.addressbook.QueryCorrispondente qc = new DocsPaVO.addressbook.QueryCorrispondente(); qc.codiceRubrica = ruolo.codiceRubrica; System.Collections.ArrayList registri = ruolo.registri; qc.tipoUtente = DocsPaVO.addressbook.TipoUtente.INTERNO; //qc.idRegistri = registri; qc.idAmministrazione = ruolo.idAmministrazione; qc.getChildren = true; qc.fineValidita = true; listaUtenti = BusinessLogic.Utenti.addressBookManager.listaCorrispondentiIntMethod(qc); System.Collections.ArrayList trasmissioniUt = new System.Collections.ArrayList(); for (int k = 0; k < listaUtenti.Count; k++) { DocsPaVO.trasmissione.TrasmissioneUtente trUt = new DocsPaVO.trasmissione.TrasmissioneUtente(); trUt.utente = (DocsPaVO.utente.Utente)listaUtenti[k]; trUt.daNotificare = (listaUtenti[k] as DocsPaVO.utente.Utente).idPeople.Equals(idPeopleDest); trasmissioniUt.Add(trUt); } trasmSing.trasmissioneUtente = trasmissioniUt; trasm.trasmissioniSingole = new System.Collections.ArrayList() { trasmSing }; return(BusinessLogic.Trasmissioni.ExecTrasmManager.saveExecuteTrasmMethod("", trasm)); }
private static DocsPaVO.trasmissione.Trasmissione addTrasmissioneSingola(DocsPaVO.trasmissione.Trasmissione trasmissione, DocsPaVO.trasmissione.TrasmissioneSingola trasmSingolaTemplate, string idAmministrazione) { DocsPaVO.utente.Corrispondente corr = trasmSingolaTemplate.corrispondenteInterno; if (!Utenti.addressBookManager.isCorrispondenteValido(corr.systemId)) { logger.Debug("Corrispondente: id:" + corr.systemId + " - desc:" + corr.descrizione + " non valido"); return(trasmissione); } DocsPaVO.trasmissione.RagioneTrasmissione ragione = trasmSingolaTemplate.ragione; // Aggiungo la trasmissione singola DocsPaVO.trasmissione.TrasmissioneSingola trasmissioneSingola = new DocsPaVO.trasmissione.TrasmissioneSingola(); trasmissioneSingola.tipoTrasm = "S"; trasmissioneSingola.corrispondenteInterno = corr; trasmissioneSingola.ragione = ragione; // Aggiungo la lista di trasmissioniUtente if (corr.GetType() == typeof(DocsPaVO.utente.Ruolo)) { trasmissioneSingola.tipoDest = DocsPaVO.trasmissione.TipoDestinatario.RUOLO; ArrayList listaUtenti = queryUtenti(corr.codiceRubrica, idAmministrazione); //ciclo per utenti se dest è gruppo o ruolo if (listaUtenti == null || listaUtenti.Count == 0) { return(trasmissione); } for (int i = 0; i < listaUtenti.Count; i++) { DocsPaVO.trasmissione.TrasmissioneUtente trasmissioneUtente = new DocsPaVO.trasmissione.TrasmissioneUtente(); trasmissioneUtente.utente = (DocsPaVO.utente.Utente)listaUtenti[i]; if (ragione.descrizione.Equals("RISPOSTA")) { trasmissioneUtente.idTrasmRispSing = trasmissioneSingola.systemId; } trasmissioneSingola.trasmissioneUtente.Add(trasmissioneUtente); } } else { trasmissioneSingola.tipoDest = DocsPaVO.trasmissione.TipoDestinatario.UTENTE; DocsPaVO.trasmissione.TrasmissioneUtente trasmissioneUtente = new DocsPaVO.trasmissione.TrasmissioneUtente(); trasmissioneUtente.utente = (DocsPaVO.utente.Utente)corr; trasmissioneSingola.trasmissioneUtente.Add(trasmissioneUtente); } trasmissione.trasmissioniSingole.Add(trasmissioneSingola); return(trasmissione); }
private static DocsPaVO.trasmissione.Trasmissione creaTrasmDaModello(DocsPaVO.documento.SchedaDocumento schedaDocumento, DocsPaVO.Modelli_Trasmissioni.ModelloTrasmissione modello, DocsPaVO.utente.InfoUtente infoUtente, DocsPaVO.utente.Ruolo ruolo) { DocsPaVO.trasmissione.Trasmissione trasmissione = new DocsPaVO.trasmissione.Trasmissione(); try { DocsPaVO.documento.InfoDocumento infoDocumento = Documenti.DocManager.getInfoDocumento(schedaDocumento); trasmissione.infoDocumento = infoDocumento; DocsPaVO.utente.Utente utente = Utenti.UserManager.getUtente(infoUtente.idPeople); trasmissione.utente = utente; trasmissione.ruolo = ruolo; trasmissione.tipoOggetto = DocsPaVO.trasmissione.TipoOggetto.DOCUMENTO; trasmissione.noteGenerali = modello.VAR_NOTE_GENERALI; for (int i = 0; i < modello.RAGIONI_DESTINATARI.Count; i++) { DocsPaVO.Modelli_Trasmissioni.RagioneDest ragDest = (DocsPaVO.Modelli_Trasmissioni.RagioneDest)modello.RAGIONI_DESTINATARI[i]; ArrayList destinatari = new ArrayList(ragDest.DESTINATARI); for (int j = 0; j < destinatari.Count; j++) { DocsPaVO.Modelli_Trasmissioni.MittDest mittDest = (DocsPaVO.Modelli_Trasmissioni.MittDest)destinatari[j]; DocsPaVO.trasmissione.RagioneTrasmissione ragione = Trasmissioni.QueryTrasmManager.getRagioneById(mittDest.ID_RAGIONE.ToString()); DocsPaVO.utente.Corrispondente corr = Utenti.UserManager.getCorrispondenteBySystemID(mittDest.ID_CORR_GLOBALI.ToString()); if (corr != null) //corr nullo se non esiste o se è stato disabilitato { // Aggiungo la trasmissione singola DocsPaVO.trasmissione.TrasmissioneSingola trasmissioneSingola = new DocsPaVO.trasmissione.TrasmissioneSingola(); trasmissioneSingola.tipoTrasm = mittDest.CHA_TIPO_TRASM; trasmissioneSingola.corrispondenteInterno = corr; trasmissioneSingola.ragione = ragione; trasmissioneSingola.noteSingole = mittDest.VAR_NOTE_SING; // RUOLO if (corr is DocsPaVO.utente.Ruolo) { trasmissioneSingola.tipoDest = DocsPaVO.trasmissione.TipoDestinatario.RUOLO; ArrayList listaUtenti = queryUtenti(corr, modello.ID_AMM); if (listaUtenti.Count == 0) { trasmissioneSingola = null; } for (int ut = 0; ut < listaUtenti.Count; ut++) { DocsPaVO.trasmissione.TrasmissioneUtente trasmissioneUtente = new DocsPaVO.trasmissione.TrasmissioneUtente(); trasmissioneUtente.utente = (DocsPaVO.utente.Utente)listaUtenti[ut]; trasmissioneUtente.daNotificare = true; trasmissioneSingola.trasmissioneUtente.Add(trasmissioneUtente); } } // UTENTE if (corr is DocsPaVO.utente.Utente) { trasmissioneSingola.tipoDest = DocsPaVO.trasmissione.TipoDestinatario.UTENTE; DocsPaVO.trasmissione.TrasmissioneUtente trasmissioneUtente = new DocsPaVO.trasmissione.TrasmissioneUtente(); trasmissioneUtente.utente = (DocsPaVO.utente.Utente)corr; trasmissioneUtente.daNotificare = true; trasmissioneSingola.trasmissioneUtente.Add(trasmissioneUtente); } if (trasmissioneSingola != null) { trasmissione.trasmissioniSingole.Add(trasmissioneSingola); } } } } } catch { trasmissione = null; } return(trasmissione); }
/// <summary> /// /// </summary> /// <param name="serverName"></param> /// <param name="path"></param> /// <param name="messaggio"></param> /// <param name="infoUtente"></param> /// <param name="ruolo"></param> /// <param name="registro"></param> /// <param name="destinatario"></param> private static void processaMessaggio(string serverName, string path, ZfLib.Message messaggio, DocsPaVO.utente.InfoUtente infoUtente, DocsPaVO.utente.Ruolo ruolo, DocsPaVO.utente.Registro registro, DocsPaVO.utente.Corrispondente destinatario) { logger.Debug("processaMessaggio"); System.IO.FileStream fs = null; bool daAggiornareUffRef = false; bool dbOpen = false; bool fsOpen = false; try { //informazioni sul fax string dataRic = messaggio.GetMsgHistories()[0].Date.ToString(); logger.Debug(" @ dataric = " + dataRic); //accesso al file del fax fs = getFileStream(path + messaggio.GetMsgInfo().Body); //=new System.IO.FileStream(path+messaggio.GetMsgInfo().Body+".G3N",System.IO.FileMode.Open,System.IO.FileAccess.ReadWrite,System.IO.FileShare.ReadWrite); logger.Debug(fs.CanRead.ToString() + "@ OK @"); fsOpen = true; //creazione scheda documento DocsPaVO.documento.SchedaDocumento sd = new DocsPaVO.documento.SchedaDocumento(); sd.idPeople = infoUtente.idPeople; logger.Debug("sd.idPeople = " + sd.idPeople.ToString()); sd.userId = infoUtente.userId; logger.Debug("sd.userId = " + sd.userId.ToString()); DocsPaVO.documento.Oggetto ogg = new DocsPaVO.documento.Oggetto(); ogg.descrizione = "Fax ricevuto in data " + dataRic; //DA COMPLETARE sd.oggetto = ogg; sd.predisponiProtocollazione = true; sd.registro = registro; sd.tipoProto = "A"; sd.typeId = "MAIL"; //aggiunta protocollo entrata DocsPaVO.documento.ProtocolloEntrata protEntr = new DocsPaVO.documento.ProtocolloEntrata(); DocsPaVO.utente.Corrispondente mittente = new DocsPaVO.utente.Corrispondente(); mittente.descrizione = messaggio.GetMsgInfo().Comment; logger.Debug(" @ mittente.descrizione = " + mittente.descrizione); //"QUI SI METTONO INFORMAZIONI"; protEntr.mittente = mittente; sd.protocollo = protEntr; protEntr.dataProtocollazione = System.DateTime.Today.ToString(); sd.appId = "ACROBAT"; sd = BusinessLogic.Documenti.DocSave.addDocGrigia(sd, infoUtente, ruolo); logger.Debug("Salvataggio doc..."); sd = BusinessLogic.Documenti.DocSave.save(infoUtente, sd, false, out daAggiornareUffRef, ruolo); logger.Debug("Salvataggio eseguito"); DocsPaVO.documento.FileDocumento fd = new DocsPaVO.documento.FileDocumento(); byte[] buffer = new byte[fs.Length]; fs.Read(buffer, 0, (int)fs.Length); fd.content = buffer; fd.length = buffer.Length; fd.name = "fax.tif"; BusinessLogic.Documenti.FileManager.putFile((DocsPaVO.documento.FileRequest)sd.documenti[0], fd, infoUtente); logger.Debug("Documento inserito"); fs.Close(); fsOpen = false; //TRASMISSIONE DocsPaVO.trasmissione.Trasmissione trasm = new DocsPaVO.trasmissione.Trasmissione(); trasm.ruolo = ruolo; //db.openConnection(); dbOpen = true; trasm.utente = BusinessLogic.Utenti.UserManager.getUtente(infoUtente.idPeople); DocsPaVO.documento.InfoDocumento infoDoc = new DocsPaVO.documento.InfoDocumento(); infoDoc.idProfile = sd.systemId; infoDoc.docNumber = sd.docNumber; infoDoc.oggetto = sd.oggetto.descrizione; infoDoc.tipoProto = "A"; trasm.infoDocumento = infoDoc; //costruzione singole trasmissioni DocsPaVO.trasmissione.RagioneTrasmissione ragione = getRagioneTrasm(); System.Collections.ArrayList dest = new System.Collections.ArrayList(); dest.Add(destinatario); System.Collections.ArrayList trasmissioniSing = new System.Collections.ArrayList(); for (int i = 0; i < dest.Count; i++) { DocsPaVO.trasmissione.TrasmissioneSingola trSing = new DocsPaVO.trasmissione.TrasmissioneSingola(); trSing.ragione = ragione; logger.Debug(dest[i].GetType().ToString()); if (dest[i].GetType().Equals(typeof(DocsPaVO.utente.Ruolo))) { logger.Debug("ruolo"); trSing.corrispondenteInterno = (DocsPaVO.utente.Ruolo)dest[i]; } else { logger.Debug("utente"); trSing.corrispondenteInterno = (DocsPaVO.utente.Utente)dest[i]; } logger.Debug("ok"); trSing.tipoTrasm = "S"; if (dest[i].GetType().Equals(typeof(DocsPaVO.utente.Ruolo))) { logger.Debug("caso ruolo"); trSing.tipoDest = DocsPaVO.trasmissione.TipoDestinatario.RUOLO; //ricerca degli utenti del ruolo System.Collections.ArrayList utenti = new System.Collections.ArrayList(); DocsPaVO.addressbook.QueryCorrispondente qc = new DocsPaVO.addressbook.QueryCorrispondente(); qc.codiceRubrica = ((DocsPaVO.utente.Ruolo)dest[i]).codiceRubrica; System.Collections.ArrayList registri = new System.Collections.ArrayList(); registri.Add(registro.systemId); qc.idRegistri = registri; qc.idAmministrazione = registro.idAmministrazione; qc.getChildren = true; utenti = BusinessLogic.Utenti.addressBookManager.listaCorrispondentiIntMethod(qc); System.Collections.ArrayList trasmissioniUt = new System.Collections.ArrayList(); for (int k = 0; k < utenti.Count; k++) { DocsPaVO.trasmissione.TrasmissioneUtente trUt = new DocsPaVO.trasmissione.TrasmissioneUtente(); trUt.utente = (DocsPaVO.utente.Utente)utenti[k]; trasmissioniUt.Add(trUt); } trSing.trasmissioneUtente = trasmissioniUt; } else { logger.Debug("Caso utente"); trSing.tipoDest = DocsPaVO.trasmissione.TipoDestinatario.UTENTE; System.Collections.ArrayList trasmissioniUt = new System.Collections.ArrayList(); DocsPaVO.trasmissione.TrasmissioneUtente trUt = new DocsPaVO.trasmissione.TrasmissioneUtente(); trUt.utente = (DocsPaVO.utente.Utente)dest[i]; trasmissioniUt.Add(trUt); trSing.trasmissioneUtente = trasmissioniUt; } trasmissioniSing.Add(trSing); } trasm.trasmissioniSingole = trasmissioniSing; if (infoUtente.delegato != null) { trasm.delegato = ((DocsPaVO.utente.InfoUtente)(infoUtente.delegato)).idPeople; } //BusinessLogic.Trasmissioni.TrasmManager.saveTrasmMethod(trasm); //BusinessLogic.Trasmissioni.ExecTrasmManager.executeTrasmMethod(serverName,trasm); BusinessLogic.Trasmissioni.ExecTrasmManager.saveExecuteTrasmMethod(serverName, trasm); } catch (Exception e) { logger.Debug(e.Message); if (fsOpen) { fs.Close(); } if (dbOpen) { //db.closeConnection(); } logger.Debug("Errore nella gestione dei fax (processaMessaggio)", e); throw e; } }
/// <summary> /// /// </summary> /// <param name="infoUtente"></param> /// <param name="trasmissione"></param> /// <param name="corr"></param> /// <param name="ragione"></param> /// <param name="note"></param> /// <param name="tipoTrasm"></param> /// <param name="scadenza"></param> /// <returns></returns> public static DocsPaVO.trasmissione.Trasmissione addTrasmissioneSingola( DocsPaVO.utente.InfoUtente infoUtente, DocsPaVO.trasmissione.Trasmissione trasmissione, DocsPaVO.utente.Corrispondente corr, DocsPaVO.trasmissione.RagioneTrasmissione ragione, string note, string tipoTrasm, int scadenza) { if (trasmissione.trasmissioniSingole != null) { // controllo se esiste la trasmissione singola associata a corrispondente selezionato foreach (DocsPaVO.trasmissione.TrasmissioneSingola ts in trasmissione.trasmissioniSingole) { if (ts.corrispondenteInterno.systemId.Equals(corr.systemId)) { if (ts.daEliminare) { ts.daEliminare = false; return(trasmissione); } else { return(trasmissione); } } } } // Aggiungo la trasmissione singola DocsPaVO.trasmissione.TrasmissioneSingola trasmissioneSingola = new DocsPaVO.trasmissione.TrasmissioneSingola(); trasmissioneSingola.tipoTrasm = tipoTrasm; trasmissioneSingola.corrispondenteInterno = corr; trasmissioneSingola.ragione = ragione; trasmissioneSingola.noteSingole = note; //Imposto la data di scadenza if (scadenza > 0) { string dataScadenza = ""; System.DateTime data = System.DateTime.Now.AddDays(scadenza); dataScadenza = data.Day + "/" + data.Month + "/" + data.Year; trasmissioneSingola.dataScadenza = dataScadenza; } // Aggiungo la lista di trasmissioniUtente if (corr is DocsPaVO.utente.Ruolo) { trasmissioneSingola.tipoDest = DocsPaVO.trasmissione.TipoDestinatario.RUOLO; DocsPaVO.utente.Corrispondente[] listaUtenti = queryUtenti(infoUtente, corr); if (listaUtenti.Length == 0) { trasmissioneSingola = null; } //ciclo per utenti se dest è gruppo o ruolo for (int i = 0; i < listaUtenti.Length; i++) { DocsPaVO.trasmissione.TrasmissioneUtente trasmissioneUtente = new DocsPaVO.trasmissione.TrasmissioneUtente(); trasmissioneUtente.utente = (DocsPaVO.utente.Utente)listaUtenti[i]; trasmissioneSingola.trasmissioneUtente.Add(trasmissioneUtente); } } if (corr is DocsPaVO.utente.Utente) { trasmissioneSingola.tipoDest = DocsPaVO.trasmissione.TipoDestinatario.UTENTE; DocsPaVO.trasmissione.TrasmissioneUtente trasmissioneUtente = new DocsPaVO.trasmissione.TrasmissioneUtente(); trasmissioneUtente.utente = (DocsPaVO.utente.Utente)corr; trasmissioneSingola.trasmissioneUtente.Add(trasmissioneUtente); } if (corr is DocsPaVO.utente.UnitaOrganizzativa) { DocsPaVO.utente.UnitaOrganizzativa theUo = (DocsPaVO.utente.UnitaOrganizzativa)corr; DocsPaVO.addressbook.QueryCorrispondenteAutorizzato qca = new DocsPaVO.addressbook.QueryCorrispondenteAutorizzato(); qca.ragione = trasmissioneSingola.ragione; qca.ruolo = trasmissione.ruolo; System.Collections.ArrayList ruoli = BusinessLogic.Utenti.addressBookManager.getRuoliRiferimentoAutorizzati(qca, theUo); foreach (DocsPaVO.utente.Ruolo r in ruoli) { trasmissione = addTrasmissioneSingola(infoUtente, trasmissione, r, ragione, note, tipoTrasm, scadenza); } return(trasmissione); } if (trasmissioneSingola != null) { trasmissione.trasmissioniSingole.Add(trasmissioneSingola); } return(trasmissione); }