Ejemplo n.º 1
0
        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();
        }
Ejemplo n.º 2
0
        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);
            }
        }