Ejemplo n.º 1
0
        private string GetFormatiDocumento(string id)
        {
            string result = string.Empty;

            DocsPaDB.Query_DocsPAWS.Conservazione c = new DocsPaDB.Query_DocsPAWS.Conservazione();
            List <DocsPaVO.FormatiDocumento.SupportedFileType> lista = new List <DocsPaVO.FormatiDocumento.SupportedFileType>();

            lista = c.GetFormatiDocumentoPolicy(id);

            if (lista != null && lista.Count > 0)
            {
                for (int i = 0; i < lista.Count; i++)
                {
                    DocsPaVO.FormatiDocumento.SupportedFileType file = lista[i];
                    result = result + file.FileExtension.ToUpper();
                    if (i < lista.Count - 1)
                    {
                        result = result + ", ";
                    }
                }
            }
            else
            {
                result = "Tutti";
            }

            return(result);
        }
Ejemplo n.º 2
0
        private string GetCampiProfilati(string idPolicy, string idTemplate)
        {
            string result = string.Empty;

            if (!string.IsNullOrEmpty(idTemplate) && !idTemplate.Equals("0"))
            {
                DocsPaDB.Query_DocsPAWS.Conservazione   c        = new DocsPaDB.Query_DocsPAWS.Conservazione();
                DocsPaVO.ProfilazioneDinamica.Templates template = c.GetTemplateDocumento(idPolicy, idTemplate);

                for (int i = 0; i < template.ELENCO_OGGETTI.Count; i++)
                {
                    DocsPaVO.ProfilazioneDinamica.OggettoCustom ogg = (DocsPaVO.ProfilazioneDinamica.OggettoCustom)template.ELENCO_OGGETTI[i];
                    if (!string.IsNullOrEmpty(ogg.VALORE_DATABASE) || ogg.TIPO.DESCRIZIONE_TIPO.Equals("CasellaDiSelezione"))
                    {
                        string valore = ogg.VALORE_DATABASE;
                        switch (ogg.TIPO.DESCRIZIONE_TIPO)
                        {
                        case "CasellaDiSelezione":
                            valore = string.Empty;
                            foreach (string v in ogg.VALORI_SELEZIONATI)
                            {
                                if (!string.IsNullOrEmpty(v))
                                {
                                    valore = valore + v + ",";
                                }
                            }
                            if (valore.EndsWith(","))
                            {
                                valore = valore.Remove(valore.Length - 1);
                            }
                            break;

                        case "Contatore":
                        case "Data":
                            valore = ogg.VALORE_DATABASE.Replace("@", "-");
                            break;

                        case "Corrispondente":
                            if (!string.IsNullOrEmpty(ogg.VALORE_DATABASE))
                            {
                                valore = BusinessLogic.Utenti.UserManager.getCorrispondenteBySystemID(ogg.VALORE_DATABASE).descrizione;
                            }
                            break;
                        }
                        if (!string.IsNullOrEmpty(result))
                        {
                            result = result + "; ";
                        }
                        if (!string.IsNullOrEmpty(valore))
                        {
                            result = result + ogg.DESCRIZIONE + "=" + valore;
                        }
                    }
                }
            }
            return(result);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Costruisce il summary relativo all'istanza o documento in oggetto
        /// </summary>
        /// </summary>
        /// <param name="request"></param>
        /// <param name="context">distingue tra summary istanza/documento</param>
        /// <param name="idIstanza">id istanza attuale</param>
        /// <param name="idDoc">id documento (se richiesto)</param>
        /// <returns></returns>
        private string GetSummary(PrintReportRequest request, string context, string idIstanza, string idDoc)
        {
            string summary = string.Empty;
            RegistroConservazionePrintManager manager = new RegistroConservazionePrintManager();


            //costruzione del summary nei due casi
            if (context == "istanza")
            {
                RegistroConservazioneSummary summaryData = manager.GetSummaryDataIst(idIstanza);

                string creationDate = summaryData.creationDate.Equals(DateTime.MinValue) ? string.Empty : summaryData.creationDate.ToString("dd/MM/yyyy");
                string invioDate    = summaryData.invioDate.Equals(DateTime.MinValue) ? string.Empty : summaryData.invioDate.ToString("dd/MM/yyyy");

                summary = "ISTANZA - ID istanza: " + idIstanza + "\n\n";

                summary += "Descrizione istanza: " + summaryData.descrizione + "\n";
                summary += "Data di apertura: " + creationDate + "\n";
                summary += "Data di invio al CS: " + invioDate + "\n";
                summary += "Numero documenti: " + summaryData.numDoc + "\n";
                summary += "Dimensioni complessive: " + manager.ConvertDocSize(summaryData.fileDim) + "\n";

                logger.Debug(summary);
            }
            else if (context == "documento")
            {
                RegistroConservazioneSummary summaryData = manager.GetSummaryDataDoc(idDoc);

                string segnatura    = new DocsPaDB.Query_DocsPAWS.Conservazione().getSegnatura_Id(idDoc);
                string creationDate = summaryData.creationDate.Equals(DateTime.MinValue) ? string.Empty : summaryData.creationDate.ToString("dd/MM/yyyy");

                summary = "DOCUMENTO - ID/Segnatura documento: " + segnatura + "\n\n";

                summary += "ID istanza: " + idIstanza + "\n";
                summary += "Data creazione/protocollazione: " + creationDate + "\n";
                summary += "Oggetto: " + summaryData.descrizione + "\n";
                summary += "Codice fascicolo: " + summaryData.codiceFascicolo + "\n";
                summary += "N. allegati: " + summaryData.numDoc + "\n";
                summary += "Tipo file: " + summaryData.tipoFile + "\n";
                summary += "Dimensioni file: " + manager.ConvertDocSize(summaryData.fileDim) + "\n";

                logger.Debug(summary);
            }


            return(summary);
        }
Ejemplo n.º 4
0
        public string GeneratePrintByRanges(string anno, string counterId, string numRepStart, string numRepEnd, string idRegistro, string dataStampa, bool ultimastampa)
        {
            string retVal = "";

            logger.Info("START");
            DocsPaDB.Query_DocsPAWS.Conservazione dbCons = new DocsPaDB.Query_DocsPAWS.Conservazione();

            // uguale al metodo precedente tranne che per questo pezzo.
            //DocsPaVO.areaConservazione.StampaRegistro stReg = dbCons.getInfoStampaReperiorio(idDoc);

            DocsPaVO.areaConservazione.StampaRegistro stReg = new DocsPaVO.areaConservazione.StampaRegistro();

            stReg.anno          = anno;
            stReg.idRepertorio  = counterId;
            stReg.numProtoStart = numRepStart;
            if (!string.IsNullOrEmpty(numRepEnd))
            {
                stReg.numProtoEnd = numRepEnd;
            }
            stReg.idRegistro           = idRegistro;
            stReg.dtaStampaTruncString = dataStampa;

            DocsPaDB.Query_DocsPAWS.RegistriRepertorioPrintManager manager = new DocsPaDB.Query_DocsPAWS.RegistriRepertorioPrintManager();

            List <RegistroRepertorioPrint> reg1 = manager.GetRegistersToPrintByCounter(stReg.idRepertorio);

            foreach (RegistroRepertorioPrint print in reg1)
            {
                if (print.RegistryId == stReg.idRegistro || print.RFId == stReg.idRegistro)
                {
                    logger.DebugFormat("Stampa del repertorio {0} della tipologia {5}, per l'anno {1}, su registro {2} o RF {3}, responsabile {4}",
                                       print.CounterDescription, stReg.anno, print.RegistryId, print.RFId, print.PrinterUser.userId, print.TipologyDescription);

                    InfoUtente userInfo = new InfoUtente()
                    {
                        idAmministrazione = print.PrinterUser.idAmministrazione,
                        idCorrGlobali     = print.PrinterUser.systemId,
                        idGruppo          = print.PrinterRole.idGruppo,
                        idPeople          = print.PrinterUser.idPeople,
                        userId            = print.PrinterUser.userId
                    };

                    //RepertorioPrintRange rpr = manager.GetRepertoriPrintRangesByYear(counterId, print.RegistryId, print.RFId, year);
                    // Generazione filtri per la stampa
                    List <FiltroRicerca> filters = null;
                    string minX = stReg.numProtoStart;
                    if (!ultimastampa)
                    {
                        string maxX = stReg.numProtoEnd;
                        logger.DebugFormat("Limite inferiore {0}, superiore {1}", minX, maxX);

                        filters = new List <FiltroRicerca>()
                        {
                            new FiltroRicerca()
                            {
                                argomento = "idCounter", valore = stReg.idRepertorio
                            },
                            new FiltroRicerca()
                            {
                                argomento = "idRegistry", valore = print.RegistryId
                            },
                            new FiltroRicerca()
                            {
                                argomento = "idRf", valore = print.RFId
                            },
                            new FiltroRicerca()
                            {
                                argomento = "year", valore = stReg.anno
                            },
                            new FiltroRicerca()
                            {
                                argomento = "lastPrintedNumber", valore = minX
                            },
                            new FiltroRicerca()
                            {
                                argomento = "lastNumberToPrint", valore = maxX
                            },
                            new FiltroRicerca()
                            {
                                argomento = "RECUPERO_evitaMod", valore = "true"
                            }
                        };
                    }
                    else
                    {
                        logger.DebugFormat("Limite inferiore {0}", minX);

                        filters = new List <FiltroRicerca>()
                        {
                            new FiltroRicerca()
                            {
                                argomento = "idCounter", valore = stReg.idRepertorio
                            },
                            new FiltroRicerca()
                            {
                                argomento = "idRegistry", valore = print.RegistryId
                            },
                            new FiltroRicerca()
                            {
                                argomento = "idRf", valore = print.RFId
                            },
                            new FiltroRicerca()
                            {
                                argomento = "year", valore = stReg.anno
                            },
                            new FiltroRicerca()
                            {
                                argomento = "lastPrintedNumber", valore = minX
                            }
                        };
                    }

                    // Creazione della stampa
                    FileDocumento fileDocument = BusinessLogic.Reporting.ReportGeneratorCommand.GetReport(
                        new DocsPaVO.Report.PrintReportRequest()
                    {
                        UserInfo              = userInfo,
                        SearchFilters         = filters,
                        ReportType            = DocsPaVO.Report.ReportTypeEnum.PDF,
                        ReportKey             = "StampaRegistriRepertori",
                        ContextName           = "StampaRegistriRepertori",
                        AdditionalInformation = String.Format(" Stampa del repertorio per l'anno {0} dal n. {1} al n. {2} - stampa di recupero del giorno {3}. La presente stampa riporta tutte le registrazioni giornaliere di repertorio nell'intervallo indicato. Si è resa necessaria in quanto problematiche tecniche del sistema avevano inizialmente impedito la corretta stampa.", stReg.anno, minX, numRepEnd, dataStampa)
                    }).Document;

                    using (DocsPaDB.TransactionContext transactionContext = new DocsPaDB.TransactionContext())
                    {
                        if (userInfo != null && string.IsNullOrEmpty(userInfo.dst))
                        {
                            userInfo.dst = BusinessLogic.Utenti.UserManager.getSuperUserAuthenticationToken();
                        }

                        // Reperimento del nome della tipologia
                        string tipologia = manager.GetNomeTipologia(stReg.idRepertorio);

                        // Creazione della scheda documento
                        SchedaDocumento document = InitializeDocument(userInfo, print.RegistryId, print.RFId, stReg.anno, minX, numRepEnd, tipologia);
                        document.oggetto.descrizione += " - RECUPERO";

                        Ruolo[] roles = new Ruolo[] { };
                        // Salvataggio del documento
                        String docNumber = this.SaveDocument(userInfo, print.PrinterRole, document, fileDocument, out roles);

                        if (String.IsNullOrEmpty(docNumber))
                        {
                            throw new Exception("Errore durante la creazione della stampa");
                        }

                        retVal = docNumber;

                        // Aggiornamento del registro delle stampe e del prossimo numero da stampare
                        if (!manager.UpdatePrinterManager(stReg.idRepertorio, minX, numRepEnd, docNumber, print.RegistryId, print.RFId, stReg.anno))
                        {
                            throw new Exception("Errore durante l'aggiornamento dell'anagrafica delle stampe effettuate");
                        }

                        int rights = 0;
                        // Assegnazione della visibilità della stampa al responsabile di repertorio (se impostato)
                        if (!BusinessLogic.utenti.RegistriRepertorioPrintManager.AssignDocumentVisibilityToResponsable(userInfo, docNumber, stReg.idRepertorio, print.RFId, print.RegistryId, out rights))
                        {
                            throw new Exception("Errore assegnazione visiblità a ruolo responsabile");
                        }

                        // Se ci sono ruoli superiori, viene assegnata la visibilità
                        foreach (Ruolo r in roles)
                        {
                            if (!BusinessLogic.utenti.RegistriRepertorioPrintManager.AssignDocumentVisibilityToRole(userInfo, docNumber, stReg.idRepertorio, print.RFId, print.RegistryId, r.idGruppo, rights))
                            {
                                throw new Exception(String.Format("Errore assegnazione visiblità al ruolo {0}", r.codice));
                            }
                        }

                        //assegnazione visibilità nel caso di repertori di tipologia/RF
                        if ((string.IsNullOrEmpty(print.RFId) && string.IsNullOrEmpty(print.RegistryId)) ||
                            (!string.IsNullOrEmpty(print.RFId)))
                        {
                            DocsPaDB.Utils.Gerarchia gerarchia = new DocsPaDB.Utils.Gerarchia();
                            object[] supRolePrinter            = gerarchia.getGerarchiaSup(print.PrinterRole, ((DocsPaVO.utente.Registro)print.PrinterRole.registri[0]).systemId, null, DocsPaVO.trasmissione.TipoOggetto.DOCUMENTO).ToArray();
                            foreach (Ruolo r in supRolePrinter)
                            {
                                if (!BusinessLogic.utenti.RegistriRepertorioPrintManager.AssignDocumentVisibilityToRole(userInfo, docNumber, stReg.idRepertorio, print.RFId, print.RegistryId, r.idGruppo, rights))
                                {
                                    throw new Exception(String.Format("Errore assegnazione visiblità al ruolo {0}", r.codice));
                                }
                            }
                        }

                        // Completamento transazione
                        transactionContext.Complete();
                    }

                    if (!string.IsNullOrEmpty(retVal))
                    {
                        DocsPaDB.Query_DocsPAWS.Report dbreport = new DocsPaDB.Query_DocsPAWS.Report();
                        dbreport.UpdStampaExp(retVal, stReg.dtaStampaTruncString);
                    }
                }
            }
            return(retVal);
        }