Example #1
0
        public bool RiceviComunicazioniSDI(string id_sdi, string fileName, byte[] fileRicevuta, BusinessLogic.Fatturazione.FatturazioneManager.TrasmissioneFattureRicevutaType comunicationType)
        {
            bool retVal = false;

            try
            {
                string docNumber            = string.Empty;
                DocsPaVO.utente.Ruolo ruolo = null;
                DocsPaVO.DiagrammaStato.DiagrammaStato diagramma = null;

                DocsPaVO.utente.Utente utente = BusinessLogic.Fatturazione.FatturazioneManager.GetUtenteOwner(id_sdi, out ruolo, out docNumber, out diagramma);

                DocsPaVO.utente.InfoUtente infoUtente = new DocsPaVO.utente.InfoUtente(utente, ruolo);
                SetUserId(infoUtente);

                retVal = BusinessLogic.Fatturazione.FatturazioneManager.Add_Notifica_SDI(infoUtente, docNumber, fileName, fileRicevuta, comunicationType, diagramma);
            }
            catch (Exception exception)
            {
                logger.Debug("Errore nel metodo WS RiceviComunicazioniSDI: ", exception);
                retVal = false;
            }

            return(retVal);
        }
Example #2
0
        public static Dictionary <string, double> DurataMediaFasiProcedimento(List <DettaglioProcedimento> istanze, string idTipoFasc, string idAmm)
        {
            Dictionary <string, double> conteggioPerFasi = new Dictionary <string, double>();

            Dictionary <string, double>  conteggioPerStati = new Dictionary <string, double>();
            List <DettaglioProcedimento> istanzeChiuse     = istanze.Where(i => i.Stati.Last().StatoFinale).ToList();

            if (istanzeChiuse.Count > 0)
            {
                // Recupero diagramma di stati
                DocsPaVO.DiagrammaStato.DiagrammaStato diagramma = BusinessLogic.DiagrammiStato.DiagrammiStato.getDgByIdTipoFasc(idTipoFasc, idAmm);

                // Costruisco
                foreach (DocsPaVO.DiagrammaStato.Stato stato in diagramma.STATI)
                {
                    conteggioPerStati.Add(stato.SYSTEM_ID.ToString(), 0);
                }

                foreach (DettaglioProcedimento procedimento in istanzeChiuse)
                {
                    for (int i = 0; i < procedimento.Stati.Count(); i++)
                    {
                        double val;
                        if (conteggioPerStati.TryGetValue(procedimento.Stati[i].IdStato, out val))
                        {
                            if (i < procedimento.Stati.Count() - 1)
                            {
                                conteggioPerStati[procedimento.Stati[i].IdStato] += (procedimento.Stati[i + 1].DataStato - procedimento.Stati[i].DataStato).Days;
                            }
                        }
                    }
                }

                List <DocsPaVO.DiagrammaStato.AvanzamentoDiagramma.AssPhaseStatoDiagramma> assStatiDiagrammi = BusinessLogic.DiagrammiStato.DiagrammiStato.GetFasiStatiDiagramma(diagramma.SYSTEM_ID.ToString(), null);

                // Aggrego i conteggi per stato in conteggi per fase
                foreach (DocsPaVO.DiagrammaStato.AvanzamentoDiagramma.AssPhaseStatoDiagramma statoDiagramma in assStatiDiagrammi)
                {
                    if (!conteggioPerFasi.ContainsKey(statoDiagramma.PHASE.DESCRIZIONE))
                    {
                        conteggioPerFasi.Add(statoDiagramma.PHASE.DESCRIZIONE, 0f);
                    }

                    conteggioPerFasi[statoDiagramma.PHASE.DESCRIZIONE] += conteggioPerStati[statoDiagramma.STATO.SYSTEM_ID.ToString()];
                }

                // Calcolo le medie
                List <KeyValuePair <string, double> > fasi = new List <KeyValuePair <string, double> >(conteggioPerFasi);
                foreach (KeyValuePair <string, double> kvp in fasi)
                {
                    conteggioPerFasi[kvp.Key] = kvp.Value / (double)istanzeChiuse.Count;
                }
            }



            return(conteggioPerFasi);
        }
Example #3
0
        /// <summary>
        /// Lo stato del fascicolo viene impostato al primo passo impostato dall'eventuale diagramma di stato associato
        /// </summary>
        /// <param name="fascicolo"></param>
        /// <param name="infoUtente"></param>
        public static void SetOnFirstWorkflowStep(
            DocsPaVO.utente.InfoUtente infoUtente,
            DocsPaVO.fascicolazione.Fascicolo fascicolo)
        {
            // Reperimento diagramma
            DocsPaVO.DiagrammaStato.DiagrammaStato workflow = BusinessLogic.DiagrammiStato.DiagrammiStato.getDgByIdTipoFasc(fascicolo.template.SYSTEM_ID.ToString(), infoUtente.idAmministrazione);

            if (workflow != null && workflow.PASSI != null && workflow.PASSI.Count > 0)
            {
                DocsPaVO.DiagrammaStato.Passo firstStep = (DocsPaVO.DiagrammaStato.Passo)workflow.PASSI[0];

                string idStato = firstStep.STATO_PADRE.SYSTEM_ID.ToString();

                BusinessLogic.DiagrammiStato.DiagrammiStato.salvaModificaStatoFasc(fascicolo.systemID,
                                                                                   idStato,
                                                                                   workflow,
                                                                                   infoUtente.userId,
                                                                                   infoUtente,
                                                                                   fascicolo.template.SCADENZA);

                // Esecuzione delle eventuali trasmissioni associate al primo stato del fascicolo
                DocsPaTxServiceHelper.ExecuteStateTx(infoUtente, fascicolo, idStato);
            }
        }
Example #4
0
        public static void CambioStatoProcedimento(string idFascicolo, string tipoEvento, string idOggetto, DocsPaVO.utente.InfoUtente utente)
        {
            logger.Debug("BEGIN");
            DocsPaDB.Query_DocsPAWS.Procedimenti proc = new DocsPaDB.Query_DocsPAWS.Procedimenti();
            string idStato = proc.GetIdPerCambioStato(tipoEvento, idOggetto);

            if (!string.IsNullOrEmpty(idStato))
            {
                logger.Debug("Stato: " + idStato);
                DocsPaVO.ProfilazioneDinamica.Templates template = BusinessLogic.ProfilazioneDinamica.ProfilazioneFascicoli.getTemplateFascDettagli(idFascicolo);
                if (template != null)
                {
                    int idDiagram = BusinessLogic.DiagrammiStato.DiagrammiStato.getDiagrammaAssociatoFasc(template.ID_TIPO_FASC);
                    if (idDiagram != 0)
                    {
                        DocsPaVO.DiagrammaStato.DiagrammaStato stateDiagram = BusinessLogic.DiagrammiStato.DiagrammiStato.getDiagrammaById(idDiagram.ToString());
                        if (stateDiagram != null)
                        {
                            logger.DebugFormat("Trovato evento per cambio stato - stato={0} fascicolo={1} tipoevento={2}", idStato, idFascicolo, tipoEvento);
                            BusinessLogic.DiagrammiStato.DiagrammiStato.salvaModificaStatoFasc(idFascicolo, idStato, stateDiagram, utente.idPeople, utente, string.Empty);

                            // CABLATURA PER DEMO 21/11
                            if (tipoEvento.ToUpper() == "ACCETTAZIONE")
                            {
                                DocsPaVO.trasmissione.RagioneTrasmissione ragTrasm = BusinessLogic.Trasmissioni.RagioniManager.getRagione(idOggetto);
                                if (ragTrasm != null)
                                {
                                    if (template.ELENCO_OGGETTI != null && template.ELENCO_OGGETTI.Count > 0)
                                    {
                                        bool toUpdate = false;
                                        foreach (DocsPaVO.ProfilazioneDinamica.OggettoCustom ogg in template.ELENCO_OGGETTI)
                                        {
                                            if (ogg.DESCRIZIONE.ToUpper() == "RUOLO ASSEGNATARIO")
                                            {
                                                logger.Debug("Ruolo assegnatario - ID=" + utente.idCorrGlobali);
                                                ogg.VALORE_DATABASE = utente.idCorrGlobali;
                                                toUpdate            = true;
                                            }
                                            if (ogg.DESCRIZIONE.ToUpper() == "UTENTE ASSEGNATARIO")
                                            {
                                                DocsPaVO.utente.Corrispondente corr = BusinessLogic.Utenti.UserManager.getCorrispondenteByIdPeople(utente.idPeople, DocsPaVO.addressbook.TipoUtente.INTERNO, utente);
                                                if (corr != null)
                                                {
                                                    logger.Debug("Utente assegnatario - idPeople=" + utente.idPeople + " - idCorrGlobali=" + corr.systemId);
                                                    ogg.VALORE_DATABASE = corr.systemId;
                                                    toUpdate            = true;
                                                }
                                            }
                                        }
                                        if (toUpdate)
                                        {
                                            BusinessLogic.ProfilazioneDinamica.ProfilazioneFascicoli.salvaInserimentoUtenteProfDimFasc(template, idFascicolo);
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }

            logger.Debug("END");
        }
Example #5
0
        public virtual bool BACHECA_cambiaStatoDoc(string idDoc, string statoDest, string idAmm, string idPeople, string idGruppo)
        {
            bool retVal = false;

            try
            {
                Utente     utente     = BusinessLogic.Utenti.UserManager.getUtenteById(idPeople);
                Ruolo      ruolo      = BusinessLogic.Utenti.UserManager.getRuoloByIdGruppo(idGruppo);
                InfoUtente infoUtente = new InfoUtente(utente, ruolo);

                DocsPaVO.documento.SchedaDocumento documento = BusinessLogic.Documenti.DocManager.getDettaglio(infoUtente, idDoc, idDoc);
                if (documento != null)
                {
                    if (documento.template != null)
                    {
                        int idDiagramma = 0;
                        DocsPaVO.DiagrammaStato.DiagrammaStato diagramma    = null;
                        DocsPaVO.DiagrammaStato.Stato          statoAttuale = null;
                        idDiagramma = BusinessLogic.DiagrammiStato.DiagrammiStato.getDiagrammaAssociato(documento.template.SYSTEM_ID.ToString());
                        if (idDiagramma != 0)
                        {
                            diagramma = BusinessLogic.DiagrammiStato.DiagrammiStato.getDiagrammaById(idDiagramma.ToString());
                            if (diagramma != null)
                            {
                                if (diagramma.STATI != null && diagramma.STATI.Count > 0)
                                {
                                    statoAttuale = BusinessLogic.DiagrammiStato.DiagrammiStato.getStatoDoc(documento.docNumber);

                                    if (statoAttuale == null)
                                    {
                                        foreach (DocsPaVO.DiagrammaStato.Stato stato in diagramma.STATI)
                                        {
                                            if (stato.DESCRIZIONE.ToUpper().Equals(statoDest.ToUpper()))
                                            {
                                                BusinessLogic.DiagrammiStato.DiagrammiStato.salvaModificaStato(documento.docNumber, stato.SYSTEM_ID.ToString(), diagramma, infoUtente.idPeople, infoUtente, string.Empty);
                                                retVal = true;
                                                break;
                                            }
                                        }
                                    }
                                    else
                                    {
                                        for (int i = 0; i < diagramma.PASSI.Count; i++)
                                        {
                                            DocsPaVO.DiagrammaStato.Passo step = (DocsPaVO.DiagrammaStato.Passo)diagramma.PASSI[i];
                                            if (step.STATO_PADRE.SYSTEM_ID == statoAttuale.SYSTEM_ID)
                                            {
                                                for (int j = 0; j < step.SUCCESSIVI.Count; j++)
                                                {
                                                    if (((DocsPaVO.DiagrammaStato.Stato)step.SUCCESSIVI[j]).DESCRIZIONE.ToUpper().Equals(statoDest.ToUpper()))
                                                    {
                                                        BusinessLogic.DiagrammiStato.DiagrammiStato.salvaModificaStato(documento.docNumber, ((DocsPaVO.DiagrammaStato.Stato)step.SUCCESSIVI[j]).SYSTEM_ID.ToString(), diagramma, infoUtente.idPeople, infoUtente, string.Empty);
                                                        retVal = true;
                                                        break;
                                                    }
                                                }
                                            }
                                        }
                                    }
                                    if (!retVal)
                                    {
                                        throw new Exception("Stato del diagramma non trovato");
                                    }
                                }
                            }
                        }
                        else
                        {
                            throw new Exception("Diagramma di stato non trovato");
                        }
                    }
                    else
                    {
                        throw new Exception("Tipologia non trovata");
                    }
                }
                else
                {
                    throw new Exception("Documento non trovato");
                }
            }
            catch (Exception ex)
            {
                logger.Error(ex.Message);
            }
            return(retVal);
        }