private void btnRicevutaClick(object sender, EventArgs e) { try { var condominio = sceltaCondominioCombo1.CondominioSelected; if (condominio != null) { // ==================================================================== // Descrizione del condominio // ==================================================================== var righeDaPubblicare = new string[4]; if (!string.IsNullOrEmpty(condominio.IndirizzoCompleto)) { var righeCondominio = condominio.IndirizzoCompleto.Split('&'); for (var i = 0; i < 4; i++) { if (righeCondominio.Length > i) { if (!string.IsNullOrEmpty(righeDaPubblicare[0])) righeDaPubblicare[0] += " "; righeDaPubblicare[0] += righeCondominio[i]; } righeDaPubblicare[i] = string.Empty; } } // ==================================================================== // Recupero l'intestazione dello studio // ==================================================================== var azienda = getAziendaService().GetAzienda(); var intestazioneStudio = azienda.Descrizione; var viaStudio = string.Empty; var capStudio = string.Empty; var localitaStudio = string.Empty; var comuneLettera = string.Empty; if (azienda.IndirizzoSede != null && !string.IsNullOrEmpty(azienda.IndirizzoSede.DescrizioneComune)) { viaStudio = azienda.IndirizzoSede.Indirizzo + " n. " + azienda.IndirizzoSede.Civico; capStudio = azienda.IndirizzoSede.Cap; localitaStudio = azienda.IndirizzoSede.DescrizioneComune + " " + azienda.IndirizzoSede.CodiceProvincia; comuneLettera = azienda.IndirizzoSede.DescrizioneComune.Substring(0, 1).ToUpper() + azienda.IndirizzoSede.DescrizioneComune.Substring(1).ToLower(); // Collasso diverse informazioni nel campo viaStudio viaStudio += " - " + capStudio + " " + localitaStudio; } var nominativoFornitore = string.Empty; if (sceltaFornitoreSottocontoCombo.SelectedFornitore != null) nominativoFornitore = sceltaFornitoreSottocontoCombo.SelectedFornitore.DisplayNominativo; var numeroRiferimento = numeroProtocollo.Text; var descrizioneCondominio = "CONDOMINIO: " + condominio.DisplayName; // Conversione lista movimenti IList<MovimentoContabileDTO> movimentiDto; if (_testata != null && _testata.Movimenti != null && _testata.Movimenti.Count > 0) movimentiDto = _testata.Movimenti.Where(item => item.NumeroRiga > 1).ToList(); else movimentiDto = _movimentiDare; var movimenti = new List<MovimentoContabileListaDTO>(movimentiDto.Count()); foreach (var movimento in movimentiDto) { try { if (movimento.IdConto.GetValueOrDefault() > 0) { var descrizioneConto = string.Empty; SottoContoDTO sottoConto = null; if (_esercizio != null) { var conto = getPianoContiService().GetById(movimento.IdConto.GetValueOrDefault(), _esercizio.ID); descrizioneConto = conto.Descrizione; if (movimento.IdSottoConto != null) sottoConto = conto.SottoConti.SingleOrDefault(item => item.ID == movimento.IdSottoConto.GetValueOrDefault()); if (sottoConto != null) descrizioneConto += " - " + sottoConto.Descrizione; } var movimentoLista = new MovimentoContabileListaDTO { ID = movimento.ID, Descrizione = getMovimentoContabileService().GetDescrizioneMovimento(movimento, sceltaCondominioCombo1.CondominioSelected, descrizioneDettaglio.Text, (DateTime?)dataInizioCompetenza.Value, (DateTime?)dataFineCompetenza.Value), IdConto = movimento.IdConto.GetValueOrDefault(), Conto = descrizioneConto, IdSottoConto = movimento.IdSottoConto, SottoConto = (sottoConto != null) ? sottoConto.Descrizione : string.Empty, Importo = movimento.Importo }; movimenti.Add(movimentoLista); } } catch (Exception ex) { _log.ErrorFormat("Errore non previsto nella stampa della ricevuta del movimento economico - SINGOLO MOVIMENTO - {0} - movimento:{1} - azienda:{2}", ex, Utility.GetMethodDescription(), movimento != null ? movimento.ID.ToString() : "<NULL>", Login.Instance.CurrentLogin().Azienda); throw; } } if(movimentiDto.Count > 0) { var identificativoArchiviazioneOttica = "<NON DISPONIBILE>"; if (_testata != null) identificativoArchiviazioneOttica = _testata.IdentificativoArchiviazioneOttica; var addebitiPersonali = getMovimentoContabileService().GetAddebitiPersonaliByMovimenti(movimentiDto.Select(item => item.ID).ToList()); var anteprima = new AnteprimaStampa(movimenti, addebitiPersonali, new RicevutaSpesaReportParameters ( righeDaPubblicare, string.Empty, intestazioneStudio, viaStudio, capStudio, localitaStudio, comuneLettera, dataRegistrazione.DateTime, nominativoFornitore, numeroRiferimento, identificativoArchiviazioneOttica, descrizioneCondominio, addebitiPersonali.Count > 0 )); anteprima.ShowDialog(); anteprima.Dispose(); } } } catch (Exception ex) { _log.ErrorFormat("Errore non previsto nella stampa della ricevuta del movimento economico - {0} - movimento:{1} - azienda:{2}", ex, Utility.GetMethodDescription(), _movimentoAvere != null ? _movimentoAvere.ID.ToString() : "<NULL>", Login.Instance.CurrentLogin().Azienda); } }
public Form GetStampaRicevutaSpesa(int idTestata, CondominioDTO condominio, EsercizioDTO esercizio) { try { Form form = null; var testata = _movimentoContabileService.GetTestataById(idTestata); if (condominio != null && testata != null && testata.Movimenti.Count > 0) { // ==================================================================== // Descrizione del condominio // ==================================================================== var righeCondominio = condominio.IndirizzoCompleto.Split('&'); var righeDaPubblicare = new string[4]; for (var i = 0; i < 4; i++) { if (righeCondominio.Length > i) { if (!string.IsNullOrEmpty(righeDaPubblicare[0])) righeDaPubblicare[0] += " "; righeDaPubblicare[0] += righeCondominio[i]; } righeDaPubblicare[i] = string.Empty; } // ==================================================================== // Recupero l'intestazione dello studio // ==================================================================== var azienda = _aziendaService.GetAzienda(); var intestazioneStudio = azienda.Descrizione; var viaStudio = string.Empty; var capStudio = string.Empty; var localitaStudio = string.Empty; var comuneLettera = string.Empty; if (azienda.IndirizzoSede != null) { viaStudio = azienda.IndirizzoSede.Indirizzo + " n. " + azienda.IndirizzoSede.Civico; capStudio = azienda.IndirizzoSede.Cap; if (!string.IsNullOrEmpty(azienda.IndirizzoSede.DescrizioneComune)) { localitaStudio = azienda.IndirizzoSede.DescrizioneComune + " " + azienda.IndirizzoSede.CodiceProvincia; comuneLettera = azienda.IndirizzoSede.DescrizioneComune.Substring(0, 1).ToUpper() + azienda.IndirizzoSede.DescrizioneComune.Substring(1).ToLower(); } // Collasso diverse informazioni nel campo viaStudio viaStudio += " - " + capStudio + " " + localitaStudio; } var nominativoFornitore = string.Empty; var movimentoAvere = _movimentoContabileService.GetMovimentoSingolo(testata); if (movimentoAvere.IdFornitore > 0) nominativoFornitore = _fornitoreService.GetById(movimentoAvere.IdFornitore.GetValueOrDefault()).DisplayNominativo; var numeroRiferimento = testata.NumeroProtocollo.ToString(); var descrizioneCondominio = "CONDOMINIO: " + condominio.DisplayName; // Conversione lista movimenti var movimentiDto = _movimentoContabileService.GetMovimentiLista(testata); var movimenti = new List<MovimentoContabileListaDTO>(movimentiDto.Count()); foreach (var movimento in movimentiDto) { int? idEsercizio = null; if (esercizio != null) idEsercizio = esercizio.ID; var conto = _pianoContiService.GetById(movimento.IdConto.GetValueOrDefault(), idEsercizio); if (conto != null) { SottoContoDTO sottoConto = null; if (movimento.IdSottoConto != null) sottoConto = conto.SottoConti.SingleOrDefault(item => item.ID == movimento.IdSottoConto.GetValueOrDefault()); var descrizioneConto = conto.Descrizione; if (sottoConto != null) descrizioneConto += " - " + sottoConto.Descrizione; var movimentoLista = new MovimentoContabileListaDTO { ID = movimento.ID, Descrizione = _movimentoContabileService.GetDescrizioneMovimento(movimento, condominio, testata.Descrizione, testata.DataInizioCompetenza, testata.DataFineCompetenza), IdConto = movimento.IdConto.GetValueOrDefault(), Conto = descrizioneConto, IdSottoConto = movimento.IdSottoConto, SottoConto = (sottoConto != null) ? sottoConto.Descrizione : string.Empty, Importo = movimento.Importo }; movimenti.Add(movimentoLista); } } if(movimentiDto.Count > 0) { var addebitiPersonali = _movimentoContabileService.GetAddebitiPersonaliByMovimenti(movimentiDto.Select(item => item.ID).ToList()); form = new AnteprimaStampa(movimenti, addebitiPersonali, new RicevutaSpesaReportParameters ( righeDaPubblicare, string.Empty, intestazioneStudio, viaStudio, capStudio, localitaStudio, comuneLettera, testata.DataRegistrazione.GetValueOrDefault(), nominativoFornitore, numeroRiferimento, testata.IdentificativoArchiviazioneOttica, descrizioneCondominio, addebitiPersonali.Count > 0 )); } } return form; } catch (Exception ex) { var idEsercizio = string.Empty; if (esercizio != null) idEsercizio = esercizio.ID.ToString(); var idCondominio = string.Empty; if (condominio != null) idCondominio = condominio.ID.ToString(); _log.ErrorFormat("Errore nella stampa della ricevuta - {0} - testata:{1} - esercizio:{2} - condominio:{3}", ex, Gipasoft.Library.Utility.GetMethodDescription(), idTestata, idEsercizio, idCondominio); throw; } }