/// <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); } }
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); }