/// <summary> /// Metodo per la verifica delle condizioni per l'avvio di una stampa. Attualmente le condizioni sono che /// il registro sia chiuso e che ci siano numeri da stampare. /// </summary> /// <param name="counterId"></param> /// <param name="registryId"></param> /// <param name="rfId"></param> /// <param name="checkError"></param> /// <returns>False se almeno una delle condizioni fallisce</returns> public bool CheckPrintCondition(String counterId, String registryId, String rfId /*, out String lastPrintedNumber, out String lastNumberToPrint*/, out String checkError) { // Il repertorio deve essere chiuso RegistriRepertorioPrintManager manager = new RegistriRepertorioPrintManager(); RegistroRepertorioSingleSettings.RepertorioState state = manager.GetState(counterId, registryId, rfId);//, out lastPrintedNumber, out lastNumberToPrint); // Ci potrebbero essere dei documenti repertoriati modificati dopo l'ultima stampa //bool modified = manager.ExistsModifiedDocsAfterLastPrint(counterId, registryId, rfId); bool retVal = true; checkError = String.Empty; if (state == RegistroRepertorioSingleSettings.RepertorioState.O) { retVal = false; checkError = "Il registro di repertorio deve essere chiuso"; } else // Se l'ultimo numero stampato è uguale all'ultimo numero staccato e se non // esistono documenti modificati dopo la data dell'ultima stampa, significa che non // ci sono documenti da stampare //if ((lastPrintedNumber == lastNumberToPrint)) /*&& !modified)*/ if (!manager.ExistsRepertoriToPrint(counterId, registryId, rfId)) { retVal = false; checkError = "Non ci sono repertori da stampare"; } return(retVal); }
/// <summary> /// Metodo per il cambio dello stato di un repertorio /// </summary> /// <param name="counterId"></param> /// <param name="registryId"></param> /// <param name="rfId"></param> /// <param name="idAmm"></param> /// <returns></returns> public static bool ChangeRepertorioState(String counterId, String registryId, String rfId, String idAmm) { bool retVal = true; DocsPaDB.Query_DocsPAWS.RegistriRepertorioPrintManager manager = new DocsPaDB.Query_DocsPAWS.RegistriRepertorioPrintManager(); //String lastPrintedNumber, lastNumberToPrint; // Recupero dello stato attuale del contatore RegistroRepertorioSingleSettings.RepertorioState state = manager.GetState(counterId, registryId, rfId);//, out lastPrintedNumber, out lastNumberToPrint); // Recupero dell'id della tipologia associata al contatore String tipology = manager.GetCounterTypology(counterId); // Cambio dello stato if (state == RegistroRepertorioSingleSettings.RepertorioState.O) { state = RegistroRepertorioSingleSettings.RepertorioState.C; } else { state = RegistroRepertorioSingleSettings.RepertorioState.O; } // Salvataggio del nuovo stato e sospensione / attivazione della tipologia Templates template = new Templates() { SYSTEM_ID = Convert.ToInt32(tipology) }; using (DocsPaDB.TransactionContext transactionContext = new DocsPaDB.TransactionContext()) { // Salvataggio nuovo stato del registro retVal = manager.SaveCounterState(counterId, rfId, registryId, state); // Abilitazione / disabilitazione tipologia if (state == RegistroRepertorioSingleSettings.RepertorioState.O) { template.IN_ESERCIZIO = "NO"; } else { template.IN_ESERCIZIO = "SI"; } ProfilazioneDocumenti.messaInEsercizioTemplate(template, idAmm); transactionContext.Complete(); } return(retVal); }
/// <summary> /// Metodo per l'aggiornamento delle impostazioni relative ad una particolare istanza di contatore /// </summary> /// <param name="counterId">Id del contatore da salvare</param> /// <param name="tipologyKind"></param> /// <param name="settingsType">Tipologia di impostazioni richiesta (Singola o Globale)</param> /// <param name="settings">Impostazioni da salvare</param> /// <param name="idAmm">Id dell'amministrazione</param> /// <param name="validationResult">Risultato della validazione delle impostazioni</param> /// <returns>Esito dell'operazione di aggiornamento</returns> public static bool SaveRegisterSettings(String counterId, RegistroRepertorio.SettingsType settingsType, RegistroRepertorio.TipologyKind tipologyKind, RegistroRepertorioSingleSettings settings, String idAmm, out ValidationResultInfo validationResult) { bool retVal = true; ValidationResultInfo validation = new ValidationResultInfo(); // Prima di proseguire, validazione dei dati se è stata impostata una frequenza di stampa diversa da N if (settings.PrintFrequency != RegistroRepertorioSingleSettings.Frequency.N) { validation = ValidateSettingsData(settings); retVal = validation.Value; } // Se la validazione è passata, salvataggio dei dati if (validation.Value) { // Calcolo della data prevista per la prossima stampa settings.DateNextAutomaticPrint = GetNextAutomaticPrintDate(DateTime.Now.GetMaxDate(settings.DateAutomaticPrintStart), settings.PrintFrequency); DocsPaDB.Query_DocsPAWS.RegistriRepertorioPrintManager manager = new DocsPaDB.Query_DocsPAWS.RegistriRepertorioPrintManager(); // Recupero dello stato del repertorio prima di modificare //String lastPrintedNumber, lastNumberToPrint; RegistroRepertorioSingleSettings.RepertorioState state = manager.GetState(counterId, settings.RegistryId, settings.RFId);//, out lastPrintedNumber, out lastNumberToPrint); // Se è cambiato lo stato, viene cambiato lo stato del repertorio if (state != settings.CounterState) { ChangeRepertorioState(counterId, settings.RegistryId, settings.RFId, idAmm); } retVal = manager.SaveRegisterSettings(counterId, settingsType, tipologyKind, settings); } validationResult = validation; return(retVal); }