protected override void Execute(string itemClicked, AutomazioneParameters parameters, IList<PersonaContattoDTO> personeSelezionate) { var document = new BilancioAnnuale(_dataSource, _condominio, _esercizio, _parameters, _impostazioneReportDTO, _reportKey); switch (itemClicked) { case "PDF": var fileName = string.Format(@"{0}\{1} - {2}.pdf", parameters.SelectedPath, _condominio.Codice, Conversione.ToFileName(_condominio.Descrizione)); try { document.ExportToPdf(fileName); } catch (IOException ex) { fileName = string.Format(@"{0}\{1} - {2}_{3}.pdf", parameters.SelectedPath, _condominio.Codice, Conversione.ToFileName(_condominio.Descrizione), Guid.NewGuid()); document.ExportToPdf(fileName); throw; } break; case "Messaggio": PersoneMessaggio = new List<PersonaMessaggioDTO>(personeSelezionate.Count); foreach (var persona in personeSelezionate) { var stream = new MemoryStream(); document.ExportToPdf(stream); var personaMessaggio = new PersonaMessaggioDTO { ID = persona.ID, NomeMessaggio = string.Format("RipartoConsuntivo_{0}", DateTime.Now.ToString("dd-mm-yyyy")), OggettoMessaggio = parameters.OggettoMessaggio, DocumentoMessaggio = stream.ToArray(), TestoMessaggio = parameters.TestoMessaggio, TipoIndirizzo = TipoIndirizzo.Recapito, Contatti = new List<ContattoDTO>() }; var email = persona.EmailCertificata; if (string.IsNullOrEmpty(email)) email = persona.Email; personaMessaggio.Contatti.Add(new ContattoDTO { SelectColumn = true, TipoContatto = "Email", Valore = email }); personaMessaggio.Contatti.Add(new ContattoDTO { SelectColumn = true, TipoContatto = "Fax", Valore = persona.Fax }); personaMessaggio.Contatti.Add(new ContattoDTO { SelectColumn = true, TipoContatto = "Cellulare", Valore = persona.Cellulare }); PersoneMessaggio.Add(personaMessaggio); } break; } }
protected override void Execute(string itemClicked, AutomazioneParameters parameters, IList<PersonaContattoDTO> personeSelezionate) { var document = new RipartoMerge(_dataSource, _condominio, _esercizio, _parameters, _impostazioneReportDTO, _importoTotale, _importoPreventivo); switch (itemClicked) { case "PDF": var fileName = $@"{parameters.SelectedPath}\{_condominio.Codice} - {Conversione.ToFileName(_condominio.Descrizione)}.pdf"; document.ExportToPdf(fileName); break; case "Messaggio": var stream = new MemoryStream(); document.ExportToPdf(stream); PersoneMessaggio = new List<PersonaMessaggioDTO>(personeSelezionate.Count); foreach (var persona in personeSelezionate) { var personaMessaggio = new PersonaMessaggioDTO { ID = persona.ID, NomeMessaggio = $"RipartoConsuntivo_{DateTime.Now.ToString("dd-mm-yyyy")}", OggettoMessaggio = parameters.OggettoMessaggio, DocumentoMessaggio = stream.ToArray(), TestoMessaggio = parameters.TestoMessaggio, TipoIndirizzo = TipoIndirizzo.Recapito, Contatti = new List<ContattoDTO>() }; var email = persona.EmailCertificata; if (string.IsNullOrEmpty(email)) email = persona.Email; personaMessaggio.Contatti.Add(new ContattoDTO { SelectColumn = true, TipoContatto = "Email", Valore = email }); personaMessaggio.Contatti.Add(new ContattoDTO { SelectColumn = true, TipoContatto = "Fax", Valore = persona.Fax }); personaMessaggio.Contatti.Add(new ContattoDTO { SelectColumn = true, TipoContatto = "Cellulare", Valore = persona.Cellulare }); PersoneMessaggio.Add(personaMessaggio); } break; } }
protected virtual void Execute(string itemClicked, AutomazioneParameters parameters) { }
protected override void Execute(string itemClicked, AutomazioneParameters parameters) { var dataSource = reportViewer1.LocalReport.DataSources[0].Value; switch (itemClicked) { case "PDF": foreach (var itemDataSource in _datiSituazioneContabile) { loadReportDataSource(new List<SituazioneCondominoContabileDTO> { itemDataSource }); var pdf = SetPDF(); var fileName = parameters.SelectedPath + $@"\{itemDataSource.OrdinePersona} - {itemDataSource.NominativoPersona}.pdf"; try { File.WriteAllBytes(fileName, pdf); } catch (DirectoryNotFoundException) { CommonMessages.DisplayWarning("Non è possibile l'esportazione pdf perchè la cartella selezionata non è valida"); } catch (Exception ex) { _log.ErrorFormat("Errore nell'esportazione pdf - {0} - azienda:{1}", ex, Gipasoft.Library.Utility.GetMethodDescription(), Security.Login.Instance.CurrentLogin().Azienda); CommonMessages.DisplayWarning($"Errore nell'esportazione pdf.{Environment.NewLine}Si prega di riprovare"); } } break; case "Messaggio": PersoneMessaggio = new List<PersonaMessaggioDTO>(_datiSituazioneContabile.Count); foreach (var persona in _persone) { var datiSituazioneContabilePersona = _datiSituazioneContabile.Where(item => item.IdPersona == persona.ID).ToList(); loadReportDataSource(datiSituazioneContabilePersona); var pdf = SetPDF(); var personaMessaggio = new PersonaMessaggioDTO { ID = persona.ID, NomeMessaggio = $"SituazionePersonale_{DateTime.Now.ToString("dd-mm-yyyy")}", OggettoMessaggio = parameters.OggettoMessaggio, DocumentoMessaggio = pdf, TestoMessaggio = parameters.TestoMessaggio, TipoIndirizzo = persona.Indirizzo.RecapitoResidenza, Importo = datiSituazioneContabilePersona.Sum(item => item.ImportoDare.GetValueOrDefault() + item.ImportoAvere.GetValueOrDefault()), Contatti = new List<ContattoDTO>() }; // var email = persona.EmailCertificata; var email = string.Empty; if (string.IsNullOrEmpty(email)) email = persona.Email; personaMessaggio.Contatti.Add(new ContattoDTO { SelectColumn = true, TipoContatto = "Email", Valore = email }); personaMessaggio.Contatti.Add(new ContattoDTO { SelectColumn = true, TipoContatto = "Fax", Valore = persona.Fax }); personaMessaggio.Contatti.Add(new ContattoDTO { SelectColumn = true, TipoContatto = "Cellulare", Valore = persona.Cellulare }); PersoneMessaggio.Add(personaMessaggio); } break; } loadReportDataSource((IEnumerable<SituazioneCondominoContabileDTO>)dataSource); }
protected override void Execute(string itemClicked, AutomazioneParameters parameters) { var dataSource = reportViewer1.LocalReport.DataSources[0].Value; switch (itemClicked) { case "PDF": foreach (var certificazioneDataSource in _datiCertificazione) { try { loadReportDataSource(new List<DatiCertificazioneDTO> { certificazioneDataSource }); var pdf = SetPDF(); var fileName = parameters.SelectedPath + @"\" + Conversione.ToFileName(string.Format(@"{0} - {1}.pdf", certificazioneDataSource.IdCondominio.ToString().PadLeft(6, '0'), certificazioneDataSource.IdFornitore.ToString().PadLeft(6, '0'))); File.WriteAllBytes(fileName, pdf); } catch (Exception ex) { _log.ErrorFormat("Errore durante la suddivisione in singoli PDF della lettera di sollecito - {0} - condominio:{1} - fornitore:{2} - azienda:{3}", ex, Utility.GetMethodDescription(), certificazioneDataSource.IdCondominio, certificazioneDataSource.IdFornitore, Security.Login.Instance.CurrentLogin().Azienda); throw; } } break; case "Messaggio": PersoneMessaggio = new List<PersonaMessaggioDTO>(_datiCertificazione.Count); foreach (var itemDataSource in _datiCertificazione) { loadReportDataSource(new List<DatiCertificazioneDTO> { itemDataSource }); var pdf = SetPDF(); var personaMessaggio = new PersonaMessaggioDTO { ID = itemDataSource.IdPersona, NomeMessaggio = string.Format("Certificazione_{0}", DateTime.Now.ToString("dd-mm-yyyy")), OggettoMessaggio = parameters.OggettoMessaggio, DocumentoMessaggio = pdf, TestoMessaggio = parameters.TestoMessaggio, TipoIndirizzo = TipoIndirizzo.Recapito , Importo = itemDataSource.Dettaglio.Sum(item => item.ImportoRitenuta), Contatti = new List<ContattoDTO>() }; var persona = _personaService.GetCacheById(itemDataSource.IdPersona); if (persona != null) { var mail = persona.EmailCertificata; if (string.IsNullOrEmpty(mail)) mail = persona.Email; personaMessaggio.Contatti.Add(new ContattoDTO { SelectColumn = true, TipoContatto = "Email", Valore = mail }); personaMessaggio.Contatti.Add(new ContattoDTO { SelectColumn = true, TipoContatto = "Fax", Valore = persona.Fax }); personaMessaggio.Contatti.Add(new ContattoDTO { SelectColumn = true, TipoContatto = "Cellulare", Valore = persona.Cellulare }); } PersoneMessaggio.Add(personaMessaggio); } break; } loadReportDataSource((IEnumerable<DatiCertificazioneDTO>)dataSource); }
protected override void Execute(string itemClicked, AutomazioneParameters parameters) { var dataSource = reportViewer1.LocalReport.DataSources[0].Value; switch (itemClicked) { case "PDF": foreach (var itemDataSource in _datiSituazioneContabile) { loadReportDataSource(new List<SituazioneSoggettoCondominioDTO> { itemDataSource }); var pdf = SetPDF(); var fileName = parameters.SelectedPath + $@"\{itemDataSource.OrdineUnitaImmobiliare} - {Gipasoft.Library.Conversione.ToFileName(itemDataSource.DisplayNominativo)}.pdf"; try { File.WriteAllBytes(fileName, pdf); } catch (DirectoryNotFoundException ex) { CommonMessages.DisplayWarning($"Non è possibile creare il file pdf nella cartella selezionata.{Environment.NewLine}Verificare che la cartela sia ancora esistente"); } catch (Exception ex) { _log.ErrorFormat("Errore nella creazione del pdf - {0} - azienda:{1}", ex, Gipasoft.Library.Utility.GetMethodDescription(), Security.Login.Instance.CurrentLogin().Azienda); CommonMessages.DisplayWarning($"Errore nella creazione del file pdf.{Environment.NewLine}Verificare che il percorso selezionato sia corretto"); } } break; case "Messaggio": PersoneMessaggio = new List<PersonaMessaggioDTO>(_datiSituazioneContabile.Count); foreach (var itemDataSource in _datiSituazioneContabile) { var source = itemDataSource; var datiRatePersona = _datiRate.Where(item => item.IdPersona == source.IdPersona); var datiVersamentiPersona = _datiVersamenti.Where(item => item.IdPersona == source.IdPersona); var importo = datiRatePersona.Sum(item => item.Importo) - datiVersamentiPersona.Sum(item => item.Importo); loadReportDataSource(new List<SituazioneSoggettoCondominioDTO> { itemDataSource }); var pdf = SetPDF(); var personaMessaggio = new PersonaMessaggioDTO { ID = itemDataSource.IdPersona, NomeMessaggio = $"SituazioneCondomino_{DateTime.Now.ToString("dd-mm-yyyy")}", OggettoMessaggio = parameters.OggettoMessaggio, DocumentoMessaggio = pdf, TestoMessaggio = parameters.TestoMessaggio, TipoIndirizzo = TipoIndirizzo.Recapito, Importo = importo, Contatti = new List<ContattoDTO>() }; var persona = getPersonaService().GetCacheById(itemDataSource.IdPersona); if (persona != null) { var email = persona.EmailCertificata; if (string.IsNullOrEmpty(email)) email = persona.Email; personaMessaggio.Contatti.Add(new ContattoDTO { SelectColumn = true, TipoContatto = "Email", Valore = email }); personaMessaggio.Contatti.Add(new ContattoDTO { SelectColumn = true, TipoContatto = "Fax", Valore = persona.Fax }); personaMessaggio.Contatti.Add(new ContattoDTO { SelectColumn = true, TipoContatto = "Cellulare", Valore = persona.Cellulare }); } PersoneMessaggio.Add(personaMessaggio); } break; } loadReportDataSource((IEnumerable<SituazioneSoggettoCondominioDTO>)dataSource); }
protected override void Execute(string itemClicked, AutomazioneParameters parameters) { var dataSource = reportViewer1.LocalReport.DataSources[0].Value; switch (itemClicked) { case "PDF": foreach (var singleDataSource in _dataSource) { try { loadReportDataSource(new List<ImportiPersonaDTO> { singleDataSource }); var pdf = SetPDF(); var fileName = parameters.SelectedPath + @"\" + Conversione.ToFileName($@"{_condominio.ID.ToString().PadLeft(6, '0')} - {singleDataSource.ID.ToString().PadLeft(6, '0')}.pdf"); try { File.WriteAllBytes(fileName, pdf); } catch (DirectoryNotFoundException ex) { CommonMessages.DisplayWarning($"Attenzione la cartella {fileName} non è stata trovata.{Environment.NewLine}Si prega di correggere l'errore e di riprovare"); } catch (Exception ex) { CommonMessages.DisplayWarning(string.Format("Attenzione si è verificato un errore inaspettato:{1}{0}{1}Si prega di correggere l'errore e di riprovare", ex.Message, Environment.NewLine)); } } catch (Exception ex) { _log.ErrorFormat("Errore durante la suddivisione in singoli PDF della lettera di sollecito - {0} - condominio:{1} - persona:{2} - azienda:{3}", ex, Utility.GetMethodDescription(), _condominio.ID, singleDataSource.ID, Security.Login.Instance.CurrentLogin().Azienda); throw; } } break; case "Messaggio": PersoneMessaggio = new List<PersonaMessaggioDTO>(_dataSource.Count); foreach (var itemDataSource in _dataSource) { var persona = _personaService.GetCacheById(itemDataSource.ID); if (persona != null) { loadReportDataSource(new List<ImportiPersonaDTO> { itemDataSource }); var pdf = SetPDF(); var personaMessaggio = new PersonaMessaggioDTO { ID = persona.ID, NomeMessaggio = $"LetteraDetrazione_{DateTime.Now.ToString("dd-mm-yyyy")}", OggettoMessaggio = parameters.OggettoMessaggio, DocumentoMessaggio = pdf, TestoMessaggio = parameters.TestoMessaggio, TipoIndirizzo = TipoIndirizzo.Recapito, Importo = itemDataSource.Importo, Contatti = new List<ContattoDTO>() }; var mail = persona.EmailCertificata; if (string.IsNullOrEmpty(mail)) mail = persona.Email; personaMessaggio.Contatti.Add(new ContattoDTO { SelectColumn = true, TipoContatto = "Email", Valore = mail }); personaMessaggio.Contatti.Add(new ContattoDTO { SelectColumn = true, TipoContatto = "Fax", Valore = persona.Fax }); personaMessaggio.Contatti.Add(new ContattoDTO { SelectColumn = true, TipoContatto = "Cellulare", Valore = persona.Cellulare }); PersoneMessaggio.Add(personaMessaggio); } } break; } loadReportDataSource((IEnumerable<ImportiPersonaDTO>)dataSource); }
protected override void Execute(string itemClicked, AutomazioneParameters parameters) { try { var dataSource = reportViewer1.LocalReport.DataSources[0].Value; switch (itemClicked) { case "PDF": foreach (var sollecitoDataSource in _datiSollecito) { try { loadReportDataSource(new List<TestataSollecitoDTO> {sollecitoDataSource}); var pdf = SetPDF(); var fileName = parameters.SelectedPath + @"\" + Conversione.ToFileName(string.Format(@"{0} - {1}.pdf", sollecitoDataSource.Ordine, sollecitoDataSource.Nominativo)); File.WriteAllBytes(fileName, pdf); } catch (IOException ex) { _log.ErrorFormat("Errore durante la suddivisione in singoli PDF della lettera di sollecito - {0} - sollecito:{1} - azienda:{2}", ex, Utility.GetMethodDescription(), sollecitoDataSource.Id, Security.Login.Instance.CurrentLogin().Azienda); CommonMessages.DisplayWarning("Errore nella creazione dei file pdf, verificare che la cartella selezionata sia ancora accessibile e riprovare."); return; } catch (Exception ex) { _log.ErrorFormat("Errore durante la suddivisione in singoli PDF della lettera di sollecito - {0} - sollecito:{1} - azienda:{2}", ex, Utility.GetMethodDescription(), sollecitoDataSource.Id, Security.Login.Instance.CurrentLogin().Azienda); throw; } } break; case "Messaggio": PersoneMessaggio = new List<PersonaMessaggioDTO>(_datiSollecito.Count); foreach (var sollecitoDataSource in _datiSollecito) { loadReportDataSource(new List<TestataSollecitoDTO> { sollecitoDataSource }); var pdf = SetPDF(); var personaMessaggio = new PersonaMessaggioDTO { ID = sollecitoDataSource.IdPersona, NomeMessaggio = string.Format("Promemoria_{0}", DateTime.Now.ToString("dd-MM-yyyy")), OggettoMessaggio = parameters.OggettoMessaggio, DocumentoMessaggio = pdf, TestoMessaggio = parameters.TestoMessaggio, TipoIndirizzo = sollecitoDataSource.TipoIndirizzo, Importo = sollecitoDataSource.ImportoTotaleDaVersare, Contatti = new List<ContattoDTO>() }; if (_condominiDaSollecitare != null) { var personaDaSollecitare = _condominiDaSollecitare.FirstOrDefault(item => item != null && item.IdPersona == sollecitoDataSource.IdPersona); if (personaDaSollecitare != null) { var email = personaDaSollecitare.EmailCertificata; if (string.IsNullOrEmpty(email)) email = personaDaSollecitare.Email; personaMessaggio.Contatti.Add(new ContattoDTO { SelectColumn = true, TipoContatto = "Email", Valore = email }); personaMessaggio.Contatti.Add(new ContattoDTO { SelectColumn = true, TipoContatto = "Fax", Valore = personaDaSollecitare.Fax }); personaMessaggio.Contatti.Add(new ContattoDTO { SelectColumn = true, TipoContatto = "Cellulare", Valore = personaDaSollecitare.Cellulare }); } PersoneMessaggio.Add(personaMessaggio); } else { _log.DebugFormat("Condomini da sollecitare a null - {0} - itemClicked:{1} - condominio:{2} - azienda:{3}", Utility.GetMethodDescription(), itemClicked, _condominio != null ? _condominio.ID.ToString() : "<NULL>", Security.Login.Instance.CurrentLogin().Azienda); } } break; } loadReportDataSource((IEnumerable<TestataSollecitoDTO>)dataSource); } catch (Exception ex) { _log.ErrorFormat("Errore nell'esecuzione della stampa - {0} - itemClicked:{1} - condominio:{2} - azienda:{3}", ex, Utility.GetMethodDescription(), itemClicked, _condominio != null ? _condominio.ID.ToString() : "<NULL>", Security.Login.Instance.CurrentLogin().Azienda); throw; } }
protected virtual void Execute(string itemClicked, AutomazioneParameters parameters, IList<PersonaContattoDTO> personeSelezionate) { }
protected override void Execute(string itemClicked, AutomazioneParameters parameters, IList<PersonaContattoDTO> personeSelezionate) { var document = new RicevutaRata(_note, _firma, _aziendaService); if (_banca != null) { document.Parameters["banca"].Value = _banca.Descrizione; document.Parameters["coordinateBancarie"].Value = _banca.Iban; } document.Parameters["dataRicevuta"].Value = _dataRicevuta; var amministratore = _aziendaService.GetAmministratore(); if (amministratore != null) document.Parameters["nomeAmministratore"].Value = $"{amministratore.Nome} {amministratore.Cognome}"; switch (itemClicked) { case "PDF": foreach (var itemDataSource in _dataSource) { document.DataSource = new List<RataEmissioneDTO> { itemDataSource }; document.CreateDocument(); var fileName = $@"{parameters.SelectedPath}\{itemDataSource.OrdineUnitaImmobiliare} - {itemDataSource.ID.ToString().PadLeft(8, '0')} - {Conversione.ToFileName(itemDataSource.DescrizioneSoggettoCondominio)}.pdf"; document.ExportToPdf(fileName); } break; case "Messaggio": PersoneMessaggio = new List<PersonaMessaggioDTO>(_dataSource.Count); foreach (var persona in personeSelezionate) { var itemDataSource = _dataSource.Where(item => item.IdPersona == persona.ID).ToList(); if (itemDataSource.Any()) { document.DataSource = itemDataSource; document.CreateDocument(); var stream = new MemoryStream(); document.ExportToPdf(stream); var personaMessaggio = new PersonaMessaggioDTO { ID = itemDataSource.FirstOrDefault().IdPersona, NomeMessaggio = $"RicevutaRata_{DateTime.Now.ToString("dd-mm-yyyy")}", OggettoMessaggio = parameters.OggettoMessaggio, DocumentoMessaggio = stream.ToArray(), TestoMessaggio = parameters.TestoMessaggio, TipoIndirizzo = TipoIndirizzo.Recapito, Importo = itemDataSource.Sum(item => item.Importo), Contatti = new List<ContattoDTO>() }; if (persona != null) { var email = persona.EmailCertificata; if (string.IsNullOrEmpty(email)) email = persona.Email; personaMessaggio.Contatti.Add(new ContattoDTO { SelectColumn = true, TipoContatto = "Email", Valore = email }); personaMessaggio.Contatti.Add(new ContattoDTO { SelectColumn = true, TipoContatto = "Fax", Valore = persona.Fax }); personaMessaggio.Contatti.Add(new ContattoDTO { SelectColumn = true, TipoContatto = "Cellulare", Valore = persona.Cellulare }); } PersoneMessaggio.Add(personaMessaggio); } } break; } }