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