示例#1
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);
            }
        }
示例#2
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);
        }