예제 #1
0
        private static Byte[] GetReportData(string codice, string descrizione)
        {
            string templatePath = AppDomain.CurrentDomain.BaseDirectory + @"report/fascicolo/Fascetta.txt";
            string report       = ReportUtils.stringFile(templatePath);

            codice      = codice.Replace("\\", "\\\\");
            report      = report.Replace("XCODICE", codice);
            descrizione = descrizione.Replace("\\", "\\\\");
            report      = report.Replace("XDESCRIZIONE", descrizione);
            return(ReportUtils.toByteArray(report));
        }
예제 #2
0
        private static DocsPaVO.documento.FileDocumento GetStampaProfiloRTF(DocsPaVO.utente.InfoUtente infoUtente, DocsPaVO.documento.SchedaDocumento schedaDocumento)
        {
            logger.Debug("GetStampaProfiloRTF");

            string reportData = ReportUtils.stringFile(AppDomain.CurrentDomain.BaseDirectory + @"\report\schedaDoc\schedaProfiloDoc.txt");

            reportData = reportData.Replace("XIDDOC", schedaDocumento.docNumber);
            reportData = reportData.Replace("XDTACREAZIONE", schedaDocumento.dataCreazione);
            reportData = reportData.Replace("XOGG", schedaDocumento.oggetto.descrizione);

            string paroleChiavi = string.Empty;

            for (int i = 0; i < schedaDocumento.paroleChiave.Count; i++)
            {
                if (paroleChiavi != string.Empty)
                {
                    paroleChiavi += "; ";
                }

                paroleChiavi += ((DocsPaVO.documento.ParolaChiave)schedaDocumento.paroleChiave[i]).descrizione;
            }

            reportData = reportData.Replace("XPAROLECHIAVI", paroleChiavi);
            reportData = reportData.Replace("XNOTE", BusinessLogic.Note.NoteManager.GetUltimaNotaAsString(infoUtente, new DocsPaVO.Note.AssociazioneNota(DocsPaVO.Note.AssociazioneNota.OggettiAssociazioniNotaEnum.Documento, schedaDocumento.systemId)));

            string tipoAtto = string.Empty;

            if (schedaDocumento.tipologiaAtto != null)
            {
                tipoAtto = schedaDocumento.tipologiaAtto.descrizione;
            }

            reportData = reportData.Replace("XTIPODOC", tipoAtto);

            DocsPaVO.documento.FileDocumento retValue = new DocsPaVO.documento.FileDocumento();

            retValue.content     = ReportUtils.toByteArray(reportData);
            retValue.length      = retValue.content.Length;
            retValue.contentType = "application/rtf";
            retValue.name        = "report.rtf";

            return(retValue);
        }
예제 #3
0
        /// <summary></summary>
        /// <param name="schedaDoc"></param>
        /// <returns></returns>
        public static DocsPaVO.documento.FileDocumento getRicevutaProtocolloRtf(DocsPaVO.utente.InfoUtente infoUtente, DocsPaVO.documento.SchedaDocumento schedaDoc)
        {
            DocsPaVO.documento.FileDocumento result = new DocsPaVO.documento.FileDocumento();
            string path = AppDomain.CurrentDomain.BaseDirectory + "report";

            try
            {
                logger.Debug("Generazione report");
                //string report = ReportUtils.stringFile(path + "\\ricevuta\\ricevuta.txt");
                string modelRootPath = System.Configuration.ConfigurationManager.AppSettings["MODELS_ROOT_PATH"];

                string report = ReportUtils.stringFile(string.Concat(modelRootPath, string.Format(@"\Modelli\{0}\Ricevute\{1}\Ricevuta.{2}", schedaDoc.registro.codAmministrazione, schedaDoc.registro.codRegistro, "rtf")));

                report = Regex.Replace(report, "#Amministrazione#", BusinessLogic.Amministrazione.AmministraManager.AmmGetInfoAmmCorrente(infoUtente.idAmministrazione).Descrizione, RegexOptions.IgnoreCase);
                report = Regex.Replace(report, "#Data ora protocollo#", BusinessLogic.Documenti.ProtoManager.getDataOraProtocollo(schedaDoc.docNumber), RegexOptions.IgnoreCase);
                report = Regex.Replace(report, "#Data protocollo#", schedaDoc.protocollo.dataProtocollazione, RegexOptions.IgnoreCase);
                report = Regex.Replace(report, "#Numero protocollo#", schedaDoc.protocollo.numero, RegexOptions.IgnoreCase);
                report = Regex.Replace(report, "#Segnatura#", schedaDoc.protocollo.segnatura, RegexOptions.IgnoreCase);
                report = Regex.Replace(report, "#Oggetto#", schedaDoc.oggetto.descrizione.Replace("\n", @" \par "), RegexOptions.IgnoreCase);

                if (schedaDoc.protocollatore != null)
                {
                    Corrispondente corr = new Corrispondente();
                    DocsPaDB.Query_DocsPAWS.Utenti obj = new DocsPaDB.Query_DocsPAWS.Utenti();
                    // PROTOCOLLATORE
                    if (schedaDoc.protocollatore.utente_idPeople != null && schedaDoc.protocollatore.utente_idPeople != string.Empty)
                    {
                        corr   = obj.GetCorrispondenteBySystemID(obj.GetIDUtCorr(schedaDoc.protocollatore.utente_idPeople));
                        report = Regex.Replace(report, "#Protocollatore#", corr.descrizione, RegexOptions.IgnoreCase);
                    }

                    // RUOLO PROTOCOLLATORE
                    if (schedaDoc.protocollatore.ruolo_idCorrGlobali != null && schedaDoc.protocollatore.ruolo_idCorrGlobali != string.Empty)
                    {
                        corr   = obj.GetCorrispondenteBySystemID(schedaDoc.protocollatore.ruolo_idCorrGlobali);
                        report = Regex.Replace(report, "#Ruolo protocollatore#", corr.descrizione, RegexOptions.IgnoreCase);
                    }

                    // UO PROTOCOLLATORE
                    if (schedaDoc.protocollatore.uo_idCorrGlobali != null && schedaDoc.protocollatore.uo_idCorrGlobali != string.Empty)
                    {
                        //descrizione
                        corr   = obj.GetCorrispondenteBySystemID(schedaDoc.protocollatore.uo_idCorrGlobali);
                        report = Regex.Replace(report, "#Uo protocollatore#", corr.descrizione, RegexOptions.IgnoreCase);
                    }
                }

                // NOTE
                // Reperimento dell'ultima nota visibile a tutti
                string testoNote = string.Empty;

                foreach (DocsPaVO.Note.InfoNota nota in BusinessLogic.Note.NoteManager.GetNote(infoUtente, new DocsPaVO.Note.AssociazioneNota(DocsPaVO.Note.AssociazioneNota.OggettiAssociazioniNotaEnum.Documento, schedaDoc.systemId), null))
                {
                    if (nota.TipoVisibilita == DocsPaVO.Note.TipiVisibilitaNotaEnum.Tutti)
                    {
                        testoNote = nota.Testo;
                        break;
                    }
                }

                report = Regex.Replace(report, "#Note#", testoNote, RegexOptions.IgnoreCase);


                //report custom pat momentaneo
                if (schedaDoc.creatoreDocumento != null && !string.IsNullOrEmpty(schedaDoc.creatoreDocumento.idCorrGlob_UO))
                {
                    Corrispondente corr = BusinessLogic.Utenti.UserManager.getCorrispondenteBySystemIDDisabled(schedaDoc.creatoreDocumento.idCorrGlob_UO);
                    report = Regex.Replace(report, "#Uo creatore#", corr.descrizione, RegexOptions.IgnoreCase);
                }
                else
                {
                    report = Regex.Replace(report, "#Uo creatore#", "", RegexOptions.IgnoreCase);
                }

                if (schedaDoc.protocollo.GetType() == typeof(DocsPaVO.documento.ProtocolloEntrata))
                {
                    report = Regex.Replace(report, "#Mittente#", ((DocsPaVO.documento.ProtocolloEntrata)schedaDoc.protocollo).mittente.descrizione, RegexOptions.IgnoreCase);
                }
                else if (schedaDoc.protocollo.GetType() == typeof(DocsPaVO.documento.ProtocolloUscita))
                {
                    report = Regex.Replace(report, "#Mittente#", ((DocsPaVO.documento.ProtocolloUscita)schedaDoc.protocollo).mittente.descrizione, RegexOptions.IgnoreCase);
                }
                else if (schedaDoc.protocollo.GetType() == typeof(DocsPaVO.documento.ProtocolloInterno))
                {
                    report = Regex.Replace(report, "#Mittente#", ((DocsPaVO.documento.ProtocolloInterno)schedaDoc.protocollo).mittente.descrizione, RegexOptions.IgnoreCase);
                }

                report = Regex.Replace(report, "#Numero Allegati#", schedaDoc.allegati.Count.ToString(), RegexOptions.IgnoreCase);

                logger.Debug("Generazione fileDocumento");
                logger.Debug("Creazione content");
                result.content = ReportUtils.toByteArray(report);
                logger.Debug("Content creato");
                result.length      = result.content.Length;
                result.contentType = "application/rtf";
                result.name        = "ricevuta.rtf";
                logger.Debug("fileDocumento generato");
            }
            catch (Exception e)
            {
                logger.Debug("Errore nella gestione di Report (getRicevutaProtocolloRtf)", e);
                throw e;
            }
            return(result);
        }
예제 #4
0
        /// <summary></summary>
        /// <param name="schedaDoc"></param>
        /// <returns></returns>
        public static DocsPaVO.documento.FileDocumento getBustaReport(DocsPaVO.documento.SchedaDocumento schedaDoc)
        {
            DocsPaVO.documento.FileDocumento result = new DocsPaVO.documento.FileDocumento();
            //string path = ReportUtils.getPathName();
            //string path = DocsPaUtils.Functions.Functions.GetReportsPath();
            string path = AppDomain.CurrentDomain.BaseDirectory + "report";

            try
            {
                logger.Debug("Generazione report");
                string report = ReportUtils.stringFile(path + "\\busta\\headerBusta.txt");
                System.Collections.ArrayList dest = ((DocsPaVO.documento.ProtocolloUscita)schedaDoc.protocollo).destinatari;

                for (int i = 0; i < ((DocsPaVO.documento.ProtocolloUscita)schedaDoc.protocollo).destinatari.Count; i++)
                {
                    string body = ReportUtils.stringFile(path + "\\busta\\bodyBusta.txt");
                    logger.Debug("Sostituzione campi destinatario " + i);
                    body = body.Replace("XNOME_REG", schedaDoc.registro.descrizione);
                    logger.Debug("Ricerca dettagli destinatario " + i);
                    DocsPaVO.addressbook.QueryCorrispondente qco = new DocsPaVO.addressbook.QueryCorrispondente();
                    qco.systemId = ((DocsPaVO.utente.Corrispondente)dest[i]).systemId;
                    DocsPaVO.addressbook.DettagliCorrispondente dettDest = BusinessLogic.Utenti.addressBookManager.dettagliCorrispondenteMethod(qco);
                    body = body.Replace("XNOME_DEST", ((DocsPaVO.utente.Corrispondente)dest[i]).descrizione);
                    body = body.Replace("XINDIRIZZO_DEST", dettDest.Corrispondente[0].indirizzo);
                    string citta = "";
                    if (dettDest.Corrispondente[0].cap != null)
                    {
                        citta = citta + dettDest.Corrispondente[0].cap + "   ";
                    }
                    ;
                    if (dettDest.Corrispondente[0].citta != null)
                    {
                        citta = citta + dettDest.Corrispondente[0].citta + "   ";
                    }
                    ;
                    if (dettDest.Corrispondente[0].nazione != null)
                    {
                        citta = citta + "(" + dettDest.Corrispondente[0].nazione + ")";
                    }
                    ;
                    body = body.Replace("XCITTA_DEST", citta);
                    if (i != 0)
                    {
                        body = body.Replace("XNEW_PAGE", "{\\b0\\lang1040\\langfe1033\\langnp1040 \\page }");
                    }
                    else
                    {
                        body = body.Replace("XNEW_PAGE", "");
                    }
                    report = report + body;
                }

                string bottom = ReportUtils.stringFile(path + "\\busta\\bottomBusta.txt");
                report = report + bottom;
                logger.Debug("Generazione fileDocumento");
                logger.Debug("Creazione content");
                result.content = ReportUtils.toByteArray(report);
                logger.Debug("Content creato");
                result.length      = result.content.Length;
                result.contentType = "application/rtf";
                result.name        = "report.rtf";
                logger.Debug("fileDocumento generato");
            }
            catch (Exception e)
            {
                logger.Debug("Errore nella gestione di Report (getBustaReport)", e);
                throw e;
            }
            return(result);
        }
예제 #5
0
        /// <summary></summary>
        /// <param name="schedaDoc"></param>
        /// <param name="infoUtente"></param>
        /// <returns></returns>
        public static DocsPaVO.documento.FileDocumento getSchedaDocReport(DocsPaVO.utente.InfoUtente infoUtente, DocsPaVO.documento.SchedaDocumento schedaDoc, string mittDest_Indirizzo)
        {
            DocsPaVO.documento.FileDocumento result = null;

            if (schedaDoc.protocollo == null)
            {
                result = GetStampaProfiloRTF(infoUtente, schedaDoc);
            }
            else
            {
                result = new DocsPaVO.documento.FileDocumento();

                string path        = AppDomain.CurrentDomain.BaseDirectory;
                string report      = string.Empty;
                bool   existUffRef = false;

                try
                {
                    existUffRef = ExistUfficioReferente(schedaDoc);

                    logger.Debug("Generazione report");

                    if (existUffRef)
                    {
                        report = ReportUtils.stringFile(path + "\\report\\schedaDoc\\SchedaDoc_UffRef.rtf");
                    }
                    else
                    {
                        report = ReportUtils.stringFile(path + "\\report\\schedaDoc\\SchedaDoc.rtf");
                    }
                    if (schedaDoc.registro != null)
                    {
                        report = report.Replace("XNOME_REGISTRO", schedaDoc.registro.descrizione);
                        report = report.Replace("XCODICE_REGISTRO", schedaDoc.registro.codRegistro);
                    }
                    else
                    {
                        report = report.Replace("XNOME_REGISTRO", string.Empty);
                        report = report.Replace("XCODICE_REGISTRO", string.Empty);
                    }
                    report = report.Replace("XNUM_PR", schedaDoc.protocollo.numero);
                    report = report.Replace("XDTA_PR", schedaDoc.protocollo.dataProtocollazione);
                    report = report.Replace("XA/P", schedaDoc.tipoProto);

                    string mittDest = "";
                    string protMitt = "";
                    string uffRef   = "";                       // Ufficio referente

                    DocsPaDB.Query_DocsPAWS.Documenti doc = new DocsPaDB.Query_DocsPAWS.Documenti();


                    if (schedaDoc.protocollo.GetType().Equals(typeof(DocsPaVO.documento.ProtocolloEntrata)))
                    {
                        if (mittDest_Indirizzo.ToUpper() == "FALSE")
                        {
                            mittDest = ((DocsPaVO.documento.ProtocolloEntrata)schedaDoc.protocollo).mittente.descrizione;
                        }
                        else
                        if (mittDest_Indirizzo.ToUpper() == "TRUE")
                        {
                            mittDest = doc.GetIndirizzoMittDest(schedaDoc.systemId, schedaDoc.tipoProto);
                        }
                        protMitt = ((DocsPaVO.documento.ProtocolloEntrata)schedaDoc.protocollo).dataProtocolloMittente + ((DocsPaVO.documento.ProtocolloEntrata)schedaDoc.protocollo).descrizioneProtocolloMittente;

                        // Ufficio referente
                        if (existUffRef)
                        {
                            uffRef = ((DocsPaVO.documento.ProtocolloEntrata)schedaDoc.protocollo).ufficioReferente.descrizione;
                        }
                    }
                    else
                    {
                        // Ufficio referente
                        if (existUffRef)
                        {
                            uffRef = ((DocsPaVO.documento.ProtocolloUscita)schedaDoc.protocollo).ufficioReferente.descrizione;
                        }

                        if (mittDest_Indirizzo.ToUpper() == "FALSE")
                        {
                            System.Collections.ArrayList dest = ((DocsPaVO.documento.ProtocolloUscita)schedaDoc.protocollo).destinatari;
                            for (int i = 0; i < dest.Count; i++)
                            {
                                mittDest = mittDest + ((DocsPaVO.utente.Corrispondente)dest[i]).descrizione;
                                if (i < (dest.Count - 1))
                                {
                                    mittDest = mittDest + " \\par ";
                                }
                            }
                            System.Collections.ArrayList destCC = ((DocsPaVO.documento.ProtocolloUscita)schedaDoc.protocollo).destinatariConoscenza;
                            if (destCC != null && destCC.Count > 0)
                            {
                                mittDest = mittDest + " \\par ";
                                for (int i = 0; i < destCC.Count; i++)
                                {
                                    mittDest = mittDest + ((DocsPaVO.utente.Corrispondente)destCC[i]).descrizione;
                                    if (i < (destCC.Count - 1))
                                    {
                                        mittDest = mittDest + " \\par ";
                                    }
                                }
                            }
                        }
                        else
                        if (mittDest_Indirizzo.ToUpper() == "TRUE")
                        {
                            mittDest = doc.GetIndirizzoMittDest(schedaDoc.systemId, schedaDoc.tipoProto);
                        }
                    }

                    report = report.Replace("XMITT/DEST", mittDest);
                    report = report.Replace("XPROT_MITT", protMitt);

                    //classifica
                    DocsPaVO.documento.InfoDocumento infoDoc   = new DocsPaVO.documento.InfoDocumento(schedaDoc);
                    System.Collections.ArrayList     fascicoli = BusinessLogic.Fascicoli.FascicoloManager.getFascicoliDaDoc(infoUtente, infoDoc.idProfile);
                    string classifica = "";
                    string codice     = "";
                    for (int i = 0; i < fascicoli.Count; i++)
                    {
                        //questo serve in caso nel codice fascicolo sia utilizzato come separatore il back slash "\", solo così è stampato nel file rtf...
                        codice     = ((DocsPaVO.fascicolazione.Fascicolo)fascicoli[i]).codice.Replace(@"\", @"{\rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs20\lang1040\langfe1033\langnp1040\insrsid4612691 \\}");
                        classifica = classifica + " " + codice;
                        if (i < (fascicoli.Count - 1))
                        {
                            classifica = classifica + " \\par";
                        }
                    }
                    report = report.Replace("XCLASSIFICA", classifica);

                    report = report.Replace("XRISPOSTA", "");
                    report = report.Replace("XOGGETTO", schedaDoc.oggetto.descrizione);
                    report = report.Replace("XNOTE", BusinessLogic.Note.NoteManager.GetUltimaNotaAsString(infoUtente, new DocsPaVO.Note.AssociazioneNota(DocsPaVO.Note.AssociazioneNota.OggettiAssociazioniNotaEnum.Documento, schedaDoc.systemId)));

                    if (existUffRef)
                    {
                        report = report.Replace("XUFFREF", uffRef);
                    }

                    result.content     = ReportUtils.toByteArray(report);
                    result.length      = result.content.Length;
                    result.contentType = "application/rtf";
                    result.name        = "report.rtf";
                    logger.Debug("fileDocumento generato");
                }
                catch (Exception e)
                {
                    logger.Debug("Errore nella gestione di Report (getSchedaDocReport)", e);
                    throw e;
                }
            }

            return(result);
        }