private void stampa() { validationStampaLettera.Validate(); if (validationStampaLettera.IsValid) { var datiSubentro = new List<UnitaImmobiliarePersonaDTO>(3); // ============================================================================ // Unità Immobiliare // ============================================================================ UnitaImmobiliareDTO unitaPrincipale = null; var listaUnita = new List<UnitaImmobiliareListaDTO>(); foreach (var subentroUnita in _subentro.UnitaImmobiliari) { var unitaCorrente = _unitaImmobiliareService.GetByID(subentroUnita.IdUnitaImmobiliare); listaUnita.Add(_unitaImmobiliareService.ConvertUnita(unitaCorrente)); if(subentroUnita.Principale) unitaPrincipale = _unitaImmobiliareService.GetByID(subentroUnita.IdUnitaImmobiliare); } // ============================================================================ // Uscente // ============================================================================ var soggettoUscente = _personaService.GetById(_subentro.IdPersonaUscente); var indirizzoUscente = soggettoUscente.IndirizzoResidenza ?? new AddressDTO(); if (unitaPrincipale != null) { var uscente = new UnitaImmobiliarePersonaDTO { Id = soggettoUscente.ID, Cap = indirizzoUscente.Cap, Comune = indirizzoUscente.DescrizioneComune, Indirizzo = indirizzoUscente.Indirizzo, Provincia = indirizzoUscente.CodiceProvincia, Nominativo = soggettoUscente.DisplayName, IdUnitaImmobiliare = unitaPrincipale.ID, DescrizioneUnitaImmobiliare = unitaPrincipale.DisplayName }; if (!string.IsNullOrEmpty(indirizzoUscente.Civico)) uscente.Indirizzo += ", " + indirizzoUscente.Civico; if (!string.IsNullOrEmpty(soggettoUscente.Titolo)) uscente.Titolo = Gipasoft.Library.Decodifica.Instance.GetElement("TitoloPersona", soggettoUscente.Titolo).Descrizione; datiSubentro.Add(uscente); // ============================================================================ // Entrante // ============================================================================ PersonaDTO soggettoEntrante = _personaService.GetById(_subentro.IdPersonaEntrante); var indirizzoEntrante = soggettoEntrante.IndirizzoResidenza; var entrante = new UnitaImmobiliarePersonaDTO { Id = soggettoEntrante.ID, Cap = indirizzoEntrante.Cap, Comune = indirizzoEntrante.DescrizioneComune, Indirizzo = indirizzoEntrante.Indirizzo, Provincia = indirizzoEntrante.CodiceProvincia, Nominativo = soggettoEntrante.DisplayName, Titolo = soggettoEntrante.Titolo, IdUnitaImmobiliare = unitaPrincipale.ID, DescrizioneUnitaImmobiliare = unitaPrincipale.DisplayName }; if (!string.IsNullOrEmpty(indirizzoEntrante.Civico)) entrante.Indirizzo += ", " + indirizzoEntrante.Civico; if (!string.IsNullOrEmpty(soggettoEntrante.Titolo)) entrante.Titolo = Gipasoft.Library.Decodifica.Instance.GetElement("TitoloPersona", soggettoEntrante.Titolo).Descrizione; datiSubentro.Add(entrante); // ==================================================================== // Descrizione del condominio // ==================================================================== var righeCondominio = getCondominio().IndirizzoCompleto.Split('&'); var righeDaPubblicare = new string[4]; for (int i = 0; i < 4; i++) { if (righeCondominio.Length > i) { if (!string.IsNullOrEmpty(righeDaPubblicare[0])) righeDaPubblicare[0] += " "; righeDaPubblicare[0] += righeCondominio[i]; } righeDaPubblicare[i] = string.Empty; } // ==================================================================== // Coordinate Bancarie // ==================================================================== var bancaPrincipale = _condominioService.GetBancaPrincipale(getCondominio()); string coordinateBancarie = string.Empty; if(bancaPrincipale != null) coordinateBancarie = bancaPrincipale.DescrizioneAbi + " " + bancaPrincipale.DescrizioneCab + " - Iban:" + bancaPrincipale.Iban; // ==================================================================== // 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; 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 testoLetteraText = testoLettera.Text; var oggettoLetteraText = oggettoLettera.Text; var descrizioneCondominio = "CONDOMINIO: " + getCondominio().DisplayName; var calcolo = _subentroService.GetCalcoloSubentro(_subentro.ID); _subentro.TestoLettera = testoLetteraText; _subentro.OggettoLettera = oggettoLetteraText; var message = _subentroService.AggiornaSubentro(_subentro); if(!string.IsNullOrEmpty(message)) CommonMessages.DisplayWarning(string.Format("Si sono verificati degli errori nell'aggiornamento dei dati del subentro:{0}{1}", Environment.NewLine, message)); var anteprima = new AnteprimaStampa(datiSubentro, calcolo, _subentroService.GetRiepilogoCalcoloSubentro(_esercizioService.GetById(_subentro.IdEsercizio), _personaService.GetById(_subentro.IdPersonaUscente), _subentro.IdPersonaEntrante, listaUnita, calcolo, _subentro.CompetenzeUscente, _subentro.CompetenzeEntrante, _subentro.SaldoSoggettoUscente), new LetteraSubentroReportParameters ( righeDaPubblicare, string.Empty, intestazioneStudio, viaStudio, capStudio, localitaStudio, comuneLettera, DateTime.Today, oggettoLetteraText, testoLetteraText, Gipasoft.Library.Conversione.RtfToHtml(_note), descrizioneCondominio, uscente.Nominativo, entrante.Nominativo, coordinateBancarie )); anteprima.ShowDialog(); anteprima.Dispose(); } } else validationStampaLettera.ShowErrorSummary(); }
private void btnStampaClick(object sender, EventArgs e) { try { validationStampaLettera.Validate(); if (validationStampaLettera.IsValid && _inserimentoSubentroUC.ValidateDati()) { var datiSubentro = new List<UnitaImmobiliarePersonaDTO>(3); // ============================================================================ // Unità Immobiliare // ============================================================================ var unitaImmobiliari = _inserimentoSubentroUC.GetUnitaImmobiliari(); var unitaCorrente = getUnitaImmobiliareService().GetByID(unitaImmobiliari[0].Id); // ============================================================================ // Uscente // ============================================================================ UnitaImmobiliarePersonaDTO uscente; try { var soggettoUscente = _inserimentoSubentroUC.GetPersonaUscente(); var indirizzoUscente = soggettoUscente.IndirizzoResidenza ?? new AddressDTO(); uscente = new UnitaImmobiliarePersonaDTO { Id = soggettoUscente.ID, Cap = indirizzoUscente.Cap, Comune = indirizzoUscente.DescrizioneComune, Indirizzo = indirizzoUscente.Indirizzo, Provincia = indirizzoUscente.CodiceProvincia, Nominativo = soggettoUscente.DisplayName, IdUnitaImmobiliare = unitaCorrente.ID, DescrizioneUnitaImmobiliare = unitaCorrente.DisplayName }; if (!string.IsNullOrEmpty(indirizzoUscente.Civico)) uscente.Indirizzo += ", " + indirizzoUscente.Civico; if (!string.IsNullOrEmpty(soggettoUscente.Titolo)) uscente.Titolo = Gipasoft.Library.Decodifica.Instance.GetElement("TitoloPersona", soggettoUscente.Titolo).Descrizione; datiSubentro.Add(uscente); } catch (Exception ex) { _log.ErrorFormat("Errore inaspettato nella stampa della lettera di subentro - SOGGETTO USCENTE - {0} - condominio:{1}", ex, Gipasoft.Library.Utility.GetMethodDescription(), _condominio.ID); throw; } // ============================================================================ // Entrante // ============================================================================ UnitaImmobiliarePersonaDTO entrante; try { var soggettoEntrante = _inserimentoSubentroUC.GetPersonaEntrante(); var indirizzoEntrante = soggettoEntrante.IndirizzoResidenza ?? new AddressDTO(); entrante = new UnitaImmobiliarePersonaDTO { Id = soggettoEntrante.ID, Cap = indirizzoEntrante.Cap, Comune = indirizzoEntrante.DescrizioneComune, Indirizzo = indirizzoEntrante.Indirizzo, Provincia = indirizzoEntrante.CodiceProvincia, Nominativo = soggettoEntrante.DisplayName, IdUnitaImmobiliare = unitaCorrente.ID, DescrizioneUnitaImmobiliare = unitaCorrente.DisplayName }; if (!string.IsNullOrEmpty(indirizzoEntrante.Civico)) entrante.Indirizzo += ", " + indirizzoEntrante.Civico; if (!string.IsNullOrEmpty(soggettoEntrante.Titolo)) entrante.Titolo = Gipasoft.Library.Decodifica.Instance.GetElement("TitoloPersona", soggettoEntrante.Titolo).Descrizione; datiSubentro.Add(entrante); } catch (Exception ex) { _log.ErrorFormat("Errore inaspettato nella stampa della lettera di subentro - SOGGETTO ENTRANTE - {0} - condominio:{1}", ex, Gipasoft.Library.Utility.GetMethodDescription(), _condominio.ID); throw; } // ==================================================================== // Descrizione del condominio // ==================================================================== string[] righeDaPubblicare; try { var righeCondominio = getCondominio().IndirizzoCompleto.Split('&'); 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; } } catch (Exception ex) { _log.ErrorFormat("Errore inaspettato nella stampa della lettera di subentro - DESCRIZIONE CONDOMINIO - {0} - condominio:{1}", ex, Gipasoft.Library.Utility.GetMethodDescription(), _condominio.ID); throw; } // ==================================================================== // Coordinate Bancarie // ==================================================================== var coordinateBancarie = string.Empty; try { var bancaPrincipale = getCondominioService().GetBancaPrincipale(getCondominio()); if(bancaPrincipale != null) coordinateBancarie = bancaPrincipale.DescrizioneAbi + " " + bancaPrincipale.DescrizioneCab + " - Iban:" + bancaPrincipale.Iban; } catch (Exception ex) { _log.ErrorFormat("Errore inaspettato nella stampa della lettera di subentro - COORDINATE BANCARIE - {0} - condominio:{1}", ex, Gipasoft.Library.Utility.GetMethodDescription(), _condominio.ID); throw; } // ==================================================================== // Recupero l'intestazione dello studio // ==================================================================== if (entrante != null && uscente != null && righeDaPubblicare != null) { try { 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) { 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 testoLetteraText = testoLettera.Text; var oggettoLetteraText = oggettoLettera.Text; var descrizioneCondominio = "CONDOMINIO: " + getCondominio().DisplayName; var anteprima = new AnteprimaStampa(datiSubentro, _ripartizioneSpesaUC.GetDatiSpese(), _ripartizioneSpesaUC.GetRiepilogoSpese(), new LetteraSubentroReportParameters ( righeDaPubblicare, string.Empty, intestazioneStudio, viaStudio, capStudio, localitaStudio, comuneLettera, DateTime.Today, oggettoLetteraText, testoLetteraText, Gipasoft.Library.Conversione.RtfToHtml(_note), descrizioneCondominio, uscente.Nominativo, entrante.Nominativo, coordinateBancarie )); anteprima.ShowDialog(); anteprima.Dispose(); } catch(Exception ex) { _log.ErrorFormat("Errore inaspettato nella stampa della lettera di subentro - STAMPA LETTERA - {0} - condominio:{1}", ex, Gipasoft.Library.Utility.GetMethodDescription(), _condominio.ID); throw; } } } else validationStampaLettera.ShowErrorSummary(); } catch (Exception ex) { _log.ErrorFormat("Errore inaspettato nella stampa della lettera di subentro - {0} - condominio:{1}", ex, Gipasoft.Library.Utility.GetMethodDescription(), _condominio.ID); } }