public AnteprimaReportEmissioneRate(IList<RataEmissioneDTO> dataSource, CondominioDTO condominio, DatiBancariDTO banca, string note, bool firma, DateTime dataRicevuta, IAziendaService aziendaService) { InitializeComponent(); _dataSource = dataSource; _condominio = condominio; _dataRicevuta = dataRicevuta; _note = note; _firma = firma; _aziendaService = aziendaService; _banca = banca; try { _document = new RicevutaRata(dataSource, note, firma, aziendaService); // ====================================== // Parametri // ====================================== 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}"; SetDataSource(_document, null); } catch (Exception ex) { _log.ErrorFormat("Errore nell'apertura della maschera di anteprima per emissione rate - {0} - condominio:{1} - azienda:{2}", ex, Utility.GetMethodDescription(), _condominio?.ID.ToString() ?? "<NULL>", Login.Instance.CurrentLogin().Azienda); throw; } }
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; } }