Example #1
0
        public string AcquistoCredito(int idAzienda, decimal importo, string descrizione)
        {
            var service = _windsorRepository.GetContainer(idAzienda).Resolve<IConfigurationMessageService>();
            var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda);
            var impostazioni = daoFactory.GetImpostazioniAziendaDao().GetByAzienda(idAzienda);
            if (impostazioni == null)
            {
                impostazioni = new ImpostazioniAzienda(daoFactory.GetAziendaDao().GetById(idAzienda, false));
                daoFactory.GetImpostazioniAziendaDao().SaveOrUpdate(impostazioni);
            }

            return service.AcquistaCredito(impostazioni.UtenteServiziMessaggistica, impostazioni.PasswordServiziMessaggistica, importo, descrizione);
        }
Example #2
0
        private ModuloDTO setDto(Modulo item, ImpostazioniAzienda impostazioni)
        {
            var dto = new ModuloDTO
            {
                Version = item.Version,
                Descrizione = item.Descrizione,
                ID = item.ID,
                Ordine = item.Ordine,
                IsEnableSceltaEsercizio = item.IsEnableSceltaEsercizio,
                Gruppi = new List<GruppiMenuDTO>(item.Gruppi.Count)
            };

            if (impostazioni != null && !impostazioni.SceltaCondominioEsercizio)
                dto.IsEnableSceltaEsercizio = false;

            // Gruppi voci menu
            foreach (var gruppo in item.Gruppi.OrderBy(grp => grp.Ordine))
            {
                var gruppoDTO = new GruppiMenuDTO
                {
                    Descrizione = gruppo.GruppoMenu.Descrizione,
                    NomeAssembly = gruppo.GruppoMenu.NomeAssembly,
                    Ordine = gruppo.Ordine,
                    Version = gruppo.Version,
                    ID = gruppo.ID,
                    CodiceModulo = item.ID,
                    VociMenu = new List<GruppiMenuVoceDTO>(gruppo.VociMenu.Count)
                };

                foreach (ModuloGruppoMenuVoce voce in gruppo.VociMenu)
                {
                    var voceDTO = new GruppiMenuVoceDTO
                    {
                        ID = voce.ID,
                        NomeGruppoPopup = voce.NomeGruppoPopup,
                        VoceKey = voce.VoceKey,
                        CodiceGruppoMenu = gruppo.ID
                    };

                    gruppoDTO.VociMenu.Add(voceDTO);
                }

                dto.Gruppi.Add(gruppoDTO);
            }

            return dto;
        }
Example #3
0
        public string CreateUtente(int idAzienda, string email, string password)
        {
            var service = _windsorRepository.GetContainer(idAzienda).Resolve<IConfigurationMessageService>();
            var result = service.CreateUtente(idAzienda, email, password);
            if (string.IsNullOrEmpty(result.Message))
            { 
                var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda);
                var impostazioni = daoFactory.GetImpostazioniAziendaDao().GetByAzienda(idAzienda);
                if (impostazioni == null)
                {
                    impostazioni = new ImpostazioniAzienda(daoFactory.GetAziendaDao().GetById(idAzienda, false));
                    daoFactory.GetImpostazioniAziendaDao().SaveOrUpdate(impostazioni);
                }

                impostazioni.CodiceUtenteMessaggistica = result.Codice;
                impostazioni.UtenteServiziMessaggistica = email;
                impostazioni.PasswordServiziMessaggistica = password;
            }
            return result.Message;
        }
        public SpesaInfoDTO SalvaMovimento(RipartizioneSpeseDTO ripartizione, MovimentoContabileDTO movimentoAvere, List<MovimentoContabileDTO> movimentiDare, int? idMovimentoBancario)
        {
            var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda);
            var movimentoContabileService = _windsorRepository.GetContainer(_info.Azienda).Resolve<IMovimentiContabiliService>();
            var ripartizioneSpeseService = _windsorRepository.GetContainer(_info.Azienda).Resolve<IRipartizioneSpeseService>();
            var protocolloService = _windsorRepository.GetContainer(_info.Azienda).Resolve<IProtocolloService>();
            var archiviazioneService = _windsorRepository.GetContainer(_info.Azienda).Resolve<IArchiviazioneOtticaService>();
            var persistenceContextService = _windsorRepository.GetContainer(_info.Azienda).Resolve<Data.IPersistenceContext>();

            var index = 0;
            movimentoAvere.NumeroRiga = index+1;
            movimentoAvere.Descrizione = ripartizione.Descrizione;

            if (movimentoAvere.Importo > 0)
                movimentoAvere.Segno = "A";
            else
            {
                movimentoAvere.Segno = "D";
                movimentoAvere.Importo = movimentoAvere.Importo * -1;
            }

            int? idEsercizio = null;
            try
            {
                var esercizio = daoFactory.GetEsercizioDao().GetById(ripartizione.Testata.IdEsercizio.GetValueOrDefault(), true);

                if (esercizio.Stato == StatoEsercizioEnum.Aperto)
                {
                    idEsercizio = esercizio.ID;
                    var numeroRegistrazione = esercizio.ProgressivoRegistrazioneContabile;
                    ripartizione.Testata.Movimenti = new MovimentoContabileDTO[movimentiDare.Count + 1];
                    ripartizione.Testata.Movimenti[0] = movimentoAvere;
                    numeroRegistrazione++;
                    movimentoAvere.NumeroRegistrazione = numeroRegistrazione;

                    // Salvo eventuali valori del movimento patrimoniale originale
                    if(movimentoAvere.ID > 0)
                    {
                        var movimento = daoFactory.GetMovimentoContabileDao().Find(movimentoAvere.ID, false);
                        if (movimento?.EvasioneBancaria != null)
                            movimentoAvere.IdEvasione = movimento.EvasioneBancaria.ID;
                    }

                    if (!(ripartizione.Testata.IdModelloRipartizione > 0))
                    {
                        foreach (var movimentoEconomico in movimentiDare)
                        {
                            index++;
                            numeroRegistrazione++;

                            if (movimentoEconomico.Importo < 0)
                            {
                                movimentoEconomico.Importo = movimentoEconomico.Importo*-1;
                                movimentoEconomico.Segno = "A";
                            }
                            else
                                movimentoEconomico.Segno = "D";

                            movimentoEconomico.IsMovimentoEconomico = true;
                            movimentoEconomico.NumeroRegistrazione = numeroRegistrazione;
                            movimentoEconomico.Causale = movimentoAvere.Causale;
                            movimentoEconomico.IdFornitore = movimentoAvere.IdFornitore;
                            if (string.IsNullOrEmpty(movimentoEconomico.Descrizione) && !esercizio.CondominioRiferimento.DescrizioneSpeseAutomatica)
                                movimentoEconomico.Descrizione = ripartizione.Descrizione;
                            movimentoEconomico.IdTestata = ripartizione.Testata.ID;
                            ripartizione.Testata.Movimenti[index] = movimentoEconomico;

                            // ---------------------------------------------------------------------
                            // Aggiorno addebiti per lotto, stabile o scala
                            // ---------------------------------------------------------------------
                            var spesePersonali = false;
                            if (movimentoEconomico.ID > 0)
                            {
                                var movimento = daoFactory.GetMovimentoContabileDao().Find(movimentoEconomico.ID, false);
                                if (movimento != null)
                                {
                                    movimentoEconomico.LottiAddebito = movimento.LottiAddebito;
                                    movimentoEconomico.StabiliAddebito = movimento.StabiliAddebito;
                                    movimentoEconomico.GruppiAddebito = movimento.GruppiAddebito;
                                    spesePersonali = movimento.ContoRiferimento.IsSpesePersonali;
                                }
                            }

                            // ---------------------------------------------------------------------
                            //  Verifico se è stata eseguita una ripartizione personalizzata
                            // ---------------------------------------------------------------------
                            var key = ripartizioneSpeseService.GetKey(movimentoEconomico);

                            movimentoEconomico.IsRipartoPersonalizzato = false;

                            // Lasciare la valorizzazione di NumeroRiga DOPO il GetKey altrimenti la chiave NON viene trovata per i movimenti con più di 1 conto economico
                            movimentoEconomico.NumeroRiga = index + 1;

                            if (ripartizione.UnitaImmobiliari != null && ripartizione.UnitaImmobiliari.ContainsKey(key))
                            {
                                movimentoEconomico.LottiAddebito = getLottiAddebito(ripartizione, key);
                                movimentoEconomico.StabiliAddebito = getStabiliAddebito(ripartizione, key);
                                movimentoEconomico.GruppiAddebito = getGruppiAddebito(ripartizione, key);

                                var unita = ripartizione.UnitaImmobiliari[key];
                                var isPersonalizzato = unita.Count(item => item.Selezionato) < unita.Length;

                                // Considero il movimento come ripartito personalmente se non sono presenti specifici riparti per lotto, stabile o scala e non si tratta di un conto di spese personali
                                if (isPersonalizzato && !spesePersonali && string.IsNullOrEmpty(movimentoEconomico.LottiAddebito) && string.IsNullOrEmpty(movimentoEconomico.StabiliAddebito) && string.IsNullOrEmpty(movimentoEconomico.GruppiAddebito))
                                    movimentoEconomico.IsRipartoPersonalizzato = true;
      
                                var conto = daoFactory.GetContoDao().GetById(movimentoEconomico.IdConto.Value, false);
                                if (conto.IsSpesePersonali || movimentoEconomico.IsRipartoPersonalizzato)
                                {
                                    movimentoEconomico.DettaglioRipartizione = new SpeseUnitaDTO[unita.Length];

                                    // -----------------------------------------------------------
                                    // Per le unità ricalcolo gli importi
                                    // -----------------------------------------------------------
                                    var instanceModificata = getInstanceModificata(ripartizione, key);
                                    if (!string.IsNullOrEmpty(instanceModificata) && instanceModificata != "U")
                                        GetRipartizioneByMovimento(movimentoEconomico, esercizio.ID, ripartizione);
                                    else
                                    {
                                        movimentoEconomico.DettaglioRipartizione = new SpeseUnitaDTO[movimentoEconomico.DettaglioRipartizione.Length];
                                        var unitaSelected = ripartizione.UnitaImmobiliari[key];
                                        for (var i = 0; i < unitaSelected.Length; i++)
                                        {
                                            if (unitaSelected[i].Selezionato)
                                            {
                                                var spesaUnitaDto = new SpeseUnitaDTO { ID = 0, IdMovimentoRiferimento = movimentoEconomico.ID, Importo = unitaSelected[i].Importo };
                                                if (unitaSelected[i].IdSoggettoCondominio > 0)
                                                    spesaUnitaDto.IdSoggetto = unitaSelected[i].IdSoggettoCondominio;
                                                else
                                                    spesaUnitaDto.IdUnitaRiferimento = unitaSelected[i].ID;
                                                movimentoEconomico.DettaglioRipartizione[i] = spesaUnitaDto;
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }

                    // -------------------------------------------
                    // Elimino vecchia testata
                    // -------------------------------------------
                    int? oldProtocollo = null;
                    int? oldAnnoArchiviazione = null;
                    var oldTipoTestata = TipoTestataMovimentoContabileEnum.Undefined;
                    AddebitoCompetenza addebito = null;
                    var testataOld = daoFactory.GetTestataMovimentoContabileDao().Find(ripartizione.Testata.ID, false);
                    if (testataOld != null)
                    {
                        if (testataOld.AddebitoCompetenze.Count > 0)
                            addebito = Library.IesiGenericCollections<AddebitoCompetenza>.GetByIndex(testataOld.AddebitoCompetenze, 0);

                        oldProtocollo = testataOld.NumeroProtocollo;
                        oldAnnoArchiviazione = testataOld.AnnoArchiviazioneOttica;
                        testataOld.EsercizioRiferimento = null;

                        // ------------------------------------------------------------------------
                        //  Nel caso si tratti di un movimento generato automaticamente dalla procedura solleciti
                        //  elimino la relazione tra sollecito e movimento contabile.
                        //  Solo per le vecchie versioni di addebito competenze solleciti
                        // ------------------------------------------------------------------------
                        if (testataOld.Tipo == TipoTestataMovimentoContabileEnum.Automatica)
                        {
                            oldTipoTestata = testataOld.Tipo;

                            // per impostare correttamente la descrizione della testata
                            movimentoAvere.Descrizione = testataOld.Descrizione;

                            var solleciti = daoFactory.GetSollecitoDao().GetByTestataMovimentoContabile(testataOld.ID);
                            foreach (var sollecito in solleciti)
                                sollecito.MovimentoEconomico = null;

                            ripartizione.Testata.Tipo = testataOld.Tipo;
                        }

                        daoFactory.GetTestataMovimentoContabileDao().Delete(testataOld);

                        ripartizione.Testata.ID = 0;
                        foreach (var movDto in ripartizione.Testata.Movimenti)
                        {
                            if (movDto != null)
                                movDto.ID = 0;
                        }
                    }

                    // -------------------------------------------
                    // Creo nuova testata
                    // -------------------------------------------
                    var rep = new TestataMovimentoContabileRepository(_info, _windsorRepository, null);
                    var testata = rep.ManageDomainEntity(ripartizione.Testata);
                    if (testata == null || movimentoAvere == null)
                    {
                        if (testata == null)
                        {
                            _log.ErrorFormat("Errore inaspettato nel salvataggio (UPDATE) del movimento - TESTATA NULL - {0} - esercizio:{1} - azienda:{2}", Library.Utility.GetMethodDescription(), idEsercizio.GetValueOrDefault(), _info.Azienda);
                            persistenceContextService.RollbackAndCloseSession(Security.Login.Instance.CurrentLogin().LoginName);
                            persistenceContextService.BeginTransaction(Security.Login.Instance.CurrentLogin().LoginName, IsolationLevel.ReadUncommitted);
                            return new SpesaInfoDTO { Id = 0, NumeroProtocollo = 0, IdentificativoArchiviazione = null, StampaEtichettaArchiviazione = false, Message = "Errore inaspettato nel salvataggio del movimento, si prega di riprovare." };
                        }

                        if (movimentoAvere == null)
                        {
                            _log.ErrorFormat("Errore inaspettato nel salvataggio (UPDATE) del movimento - MOVIMENTO AVERE NULL - {0} - esercizio:{1} - azienda:{2}", Library.Utility.GetMethodDescription(), idEsercizio.GetValueOrDefault(), _info.Azienda);
                            persistenceContextService.RollbackAndCloseSession(Security.Login.Instance.CurrentLogin().LoginName);
                            persistenceContextService.BeginTransaction(Security.Login.Instance.CurrentLogin().LoginName, IsolationLevel.ReadUncommitted);
                            return new SpesaInfoDTO { Id = 0, NumeroProtocollo = 0, IdentificativoArchiviazione = null, StampaEtichettaArchiviazione = false, Message = "Errore inaspettato nel salvataggio del movimento, si prega di riprovare." };
                        }
                    }

                    testata.Descrizione = movimentoAvere.Descrizione;
                    if (oldProtocollo != null)
                        testata.NumeroProtocollo = oldProtocollo;
                    if (oldAnnoArchiviazione != null)
                        testata.AnnoArchiviazioneOttica = oldAnnoArchiviazione;
                    if (oldTipoTestata != TipoTestataMovimentoContabileEnum.Undefined)
                        testata.Tipo = oldTipoTestata;

                    // Aggiorno eventuali addebiti di competenze esistenti
                    if (addebito != null)
                    {
                        addebito.TestataMovimento = testata;
                        IList<MovimentoContabile> movimentiEconomici = testata.Movimenti.Where(item => item.IsEconomico()).ToList();
                        IList<DettaglioAddebitoCompetenza> dettagliAddebito = addebito.Dettaglio.ToList();
                        if (movimentiEconomici.Count == dettagliAddebito.Count)
                        {
                            for (var i = 0; i < dettagliAddebito.Count; i++)
                                dettagliAddebito[i].MovimentoContabile = movimentiEconomici[i];
                        }
                        else
                        {
                            throw new InvalidDataException("Non è possibile aggiornare direttamente un movimento contabile generato da un addebito di competenze");
                            //foreach (var dettaglioAddebito in addebito.Dettaglio)
                            //    dettaglioAddebito.MovimentoContabile = null;
                        }
                    }

                    // ======================================================================================
                    //  Evasione Movimenti
                    // ======================================================================================
                    if (idMovimentoBancario != null)
                    {
                        IList<MovimentoContabile> movimentiContabili = (from movimento in testata.Movimenti where !movimento.IsEconomico() select movimento).ToList();
                        IList<int> idMovimentiBancari = new List<int> {idMovimentoBancario.GetValueOrDefault()};
                        movimentoContabileService.EvadiMovimento($"Evasione automatica registrazione movimento contabile del {ripartizione.Testata.DataRegistrazione.GetValueOrDefault():d}", movimentiContabili, idMovimentiBancari, null, null);
                    }

                    // =====================================================================================================
                    //  Se presente applico il modello di ripartizione, altrimenti ricalcolo valori o l'intera ripartizione
                    // =====================================================================================================
                    if (ripartizione.Testata.IdModelloRipartizione > 0)
                    {
                        var tipo = TipoMovimentoEnum.Spesa;
                        if (movimentoAvere.Segno == "D")
                            tipo = TipoMovimentoEnum.Accredito;

                        // NON VIENE PIù RICALCOLATA LE RIPARTIZIONE, SARA' CALCOLATA IN FASE DI BILANCIO
                        ripartizioneSpeseService.ApplyModello(testata, ripartizione.Testata.IdModelloRipartizione.Value, movimentoAvere.Importo.Value, tipo, false);

                        // Ripristino le descrizioni precedenti se presenti
                        foreach (var dto in movimentiDare)
                        {
                            if (!string.IsNullOrEmpty(dto.Descrizione))
                            {
                                var movimento = (from item in testata.Movimenti
                                                 where item.NumeroRiga == dto.NumeroRiga
                                                 select item).SingleOrDefault();
                                if (movimento != null)
                                    movimento.Descrizione = dto.Descrizione;
                            }
                        }
                    }
                    else
                    {
                        // Salvataggio modello
                        testata.ModelloRipartizione = SalvaModelloRipartizioneContabile(ripartizione, testata, movimentiDare, movimentoAvere.Importo.Value);
                    }

                    // =====================================================================================================
                    // Salvataggio progressivo registrazione
                    // =====================================================================================================
                    esercizio.ProgressivoRegistrazioneContabile = numeroRegistrazione;

                    // =====================================================================================================
                    // Registrazione dell'eventuale arrotondamento
                    // =====================================================================================================
                    if (testata.Movimenti.FirstOrDefault() != null)
                        movimentoContabileService.SetMovimentoArrotondamento(null, testata, testata.Movimenti.FirstOrDefault().Causale, null);

                    // ======================================================================================
                    //  Recupero il numero di protocollo e l'identificativo di archiviazione
                    // ======================================================================================
                    int protocollo;
                    if (testata.NumeroProtocollo.GetValueOrDefault() == 0)
                    {
                        {
                            var progressivo = protocolloService.GetProgressivo(TipoProtocollo.Fattura,
                                esercizio.DataApertura.GetValueOrDefault().Year,
                                testata.EsercizioRiferimento.CondominioRiferimento);
                            if (progressivo.Progressivo != null)
                            {
                                protocollo = progressivo.Progressivo.Value;
                                testata.NumeroProtocollo = protocollo;
                                testata.AnnoArchiviazioneOttica = esercizio.DataApertura.GetValueOrDefault().Year;
                            }
                            else
                                return new SpesaInfoDTO
                                {
                                    Id = 0,
                                    IdentificativoArchiviazione = null,
                                    NumeroProtocollo = 0,
                                    StampaEtichettaArchiviazione = false,
                                    Message = progressivo.Message
                                };
                        }
                    }
                    else
                    {
                        protocollo = testata.NumeroProtocollo.Value;
                    }

                    var identificativoArchiviazione = archiviazioneService.GetIdentificativoArchiviazione(testata);

                    var movimentoPatrimoniale = (from item in testata.Movimenti
                                                 where item.NumeroRiga == movimentoAvere.NumeroRiga
                                                 select item).FirstOrDefault();
                    var idMovimentoPatrimoniale = 0;
                    if (movimentoPatrimoniale != null)
                        idMovimentoPatrimoniale = movimentoPatrimoniale.ID;

                    var impostazioni = daoFactory.GetImpostazioniAziendaDao().GetByAzienda(esercizio.CondominioRiferimento.Azienda.ID);
                    if (impostazioni == null)
                    {
                        impostazioni = new ImpostazioniAzienda(daoFactory.GetAziendaDao().GetById(esercizio.CondominioRiferimento.Azienda.ID, false));
                        daoFactory.GetImpostazioniAziendaDao().SaveOrUpdate(impostazioni);
                    }

                    var stampaEtichetta = false;
                    var etichettatrice = string.Empty;
                    var tipoEichetta = "Testo";
                    int? trayEtichettatriceAttivazioneOttica = null;
                    if (impostazioni != null)
                    {
                        stampaEtichetta = impostazioni.UtilizzoEtichettatriceArchiviazioneOtticaMovimenti && testata.IsAbilitataArchiviazioneOttica;
                        etichettatrice = impostazioni.EtichettatriceArchiviazioneOttica;
                        tipoEichetta = impostazioni.TipoEtichettaArchiviazioneOttica;
                        trayEtichettatriceAttivazioneOttica = impostazioni.TrayEtichettatriceAttivazioneOttica;
                    }

                    return new SpesaInfoDTO
                    {
                        Id = idMovimentoPatrimoniale,
                        NumeroProtocollo = testata.NumeroProtocollo.Value,
                        IdentificativoArchiviazione = identificativoArchiviazione,
                        StampaEtichettaArchiviazione = stampaEtichetta,
                        EtichettatriceArchiviazione = etichettatrice,
                        TipoEtichettaArchiviazione = tipoEichetta,
                        TrayEtichettatriceAttivazioneOttica = trayEtichettatriceAttivazioneOttica
                    };
                }
                return new SpesaInfoDTO
                {
                    Id = 0,
                    NumeroProtocollo = 0,
                    IdentificativoArchiviazione = null,
                    StampaEtichettaArchiviazione = false,
                    Message = "La registrazione non è possibile perchè relativo ad un esercizio chiuso."
                };
            }
            catch (Exception ex)
            {
                var message = ex.ToString().StartsWith("NHibernate.StaleObjectStateException") ? "Un altro utente ha confermato un movimento." : "Errore inaspettato nell'attribuzione del numero di registrazione, probabilmente determinato da un conflitto di aggiornamento";
                
                _log.ErrorFormat("Errore inaspettato nel salvataggio (UPDATE) del movimento - {0} - idMovimentoAvere:{1} - esercizio:{2} - azienda:{3}", ex, Library.Utility.GetMethodDescription(), movimentoAvere.ID, idEsercizio.GetValueOrDefault(), _info.Azienda);
                persistenceContextService.RollbackAndCloseSession(Security.Login.Instance.CurrentLogin().LoginName);
                persistenceContextService.BeginTransaction(Security.Login.Instance.CurrentLogin().LoginName, IsolationLevel.ReadUncommitted);
                return new SpesaInfoDTO { Id = 0, NumeroProtocollo = 0, IdentificativoArchiviazione = null, StampaEtichettaArchiviazione = false, Message = message };
            }

        }
Example #5
0
        private void setIndirizzo(PersonaContattoDTO dto, Persona persona, TipoIndirizzo? tipoIndirizzo, ImpostazioniAzienda impostazioni)
        {
            try
            {
                // ==================================================================
                // Indirizzo
                // ==================================================================
                if (tipoIndirizzo == null)
                    tipoIndirizzo = impostazioni.TipoIndirizzoComunicazioni;

                dto.Indirizzo = new AddressComunicazioneDTO { RecapitoResidenza = tipoIndirizzo.GetValueOrDefault() };

                if (persona.IndirizzoResidenza != null)
                {
                    dto.Indirizzo.CapResidenza = persona.IndirizzoResidenza.Cap;
                    dto.Indirizzo.LocalitaResidenza = persona.IndirizzoResidenza.Localita;
                    dto.Indirizzo.PressoResidenza = persona.IndirizzoResidenza.Presso;
                    // Località per ora viene stampata com campo singolo
                    //                                personaDto.Indirizzo.ComuneResidenza = soggetto.Persona.IndirizzoResidenza.Localita;
                    if (persona.IndirizzoResidenza.Comune != null)
                    {
                        if (!string.IsNullOrEmpty(dto.Indirizzo.ComuneResidenza))
                            dto.Indirizzo.ComuneResidenza += " - ";
                        dto.Indirizzo.ComuneResidenza += persona.IndirizzoResidenza.Comune.Descrizione + " " + persona.IndirizzoResidenza.Comune.ProvinciaAppartenenza.Codice;
                    }
                    dto.Indirizzo.ViaCivicoResidenza = persona.IndirizzoResidenza.Indirizzo + " " + persona.IndirizzoResidenza.Civico;
                    //if (!string.IsNullOrEmpty(persona.IndirizzoResidenza.Presso))
                    //    dto.Indirizzo.ViaCivicoResidenza += " - c/o:" + persona.IndirizzoResidenza.Presso;
                }

                if (persona.Recapito != null)
                {
                    dto.Indirizzo.CapRecapito = persona.Recapito.Cap;
                    dto.Indirizzo.LocalitaRecapito = persona.Recapito.Localita;
                    dto.Indirizzo.PressoRecapito = persona.Recapito.Presso;
                    // Località per ora viene stampata com campo singolo
                    //                                personaDto.Indirizzo.ComuneRecapito = soggetto.Persona.Recapito.Localita;
                    if (persona.Recapito.Comune != null)
                    {
                        if (!string.IsNullOrEmpty(dto.Indirizzo.ComuneRecapito))
                            dto.Indirizzo.ComuneRecapito += " - ";
                        dto.Indirizzo.ComuneRecapito += persona.Recapito.Comune.Descrizione + " " + persona.Recapito.Comune.ProvinciaAppartenenza.Codice;
                    }
                    dto.Indirizzo.ViaCivicoRecapito = persona.Recapito.Indirizzo + " " + persona.Recapito.Civico;
                    //if (!string.IsNullOrEmpty(persona.Recapito.Presso))
                    //    dto.Indirizzo.ViaCivicoRecapito += " - c/o:" + persona.Recapito.Presso;
                }
                else
                {
                    dto.Indirizzo.ViaCivicoRecapito = dto.Indirizzo.ViaCivicoResidenza;
                    dto.Indirizzo.CapRecapito = dto.Indirizzo.CapResidenza;
                    dto.Indirizzo.ComuneRecapito = dto.Indirizzo.ComuneResidenza;
                    dto.Indirizzo.PressoRecapito = dto.Indirizzo.PressoResidenza;
                    dto.Indirizzo.LocalitaRecapito = dto.Indirizzo.LocalitaResidenza;
                }

                dto.ViaCivico = dto.Indirizzo.ViaCivicoRecapito;
                dto.Cap = dto.Indirizzo.CapRecapito;
                dto.Comune = dto.Indirizzo.ComuneRecapito;
                dto.Localita = dto.Indirizzo.LocalitaRecapito;
                dto.Presso = dto.Indirizzo.PressoRecapito;
                // ==================================================================

            }
            catch (Exception ex)
            {
                _log.ErrorFormat("Errore nella lettura dell'indirizzo - {0} - id:{1}", ex, Utility.GetMethodDescription(), persona.ID);
                throw;
            }

        }
Example #6
0
        public string IsAllowEmissioneRate(int idEsercizio, List<int> lista)
        {
            var result = string.Empty;

            // Controllo condominio
            var esercizio =_daoFactory.GetEsercizioDao().GetById(idEsercizio, false);

            _impostazioniAzienda = _daoFactory.GetImpostazioniAziendaDao().GetByAzienda(esercizio.CondominioRiferimento.Azienda.ID) ?? new ImpostazioniAzienda(esercizio.CondominioRiferimento.Azienda) { TipoIndirizzoComunicazioni = TipoIndirizzo.Residenza };

            if (string.IsNullOrEmpty(esercizio.CondominioRiferimento.CodiceSIA))
                result = "Non è presente il codice SIA per il condominio: " + esercizio.CondominioRiferimento.DisplayName + Environment.NewLine + Environment.NewLine;
            if (string.IsNullOrEmpty(esercizio.CondominioRiferimento.CodiceFiscale))
                result = "Non è presente il codice fiscale per il condominio: " + esercizio.CondominioRiferimento.DisplayName + Environment.NewLine + Environment.NewLine;
            if(esercizio.CondominioRiferimento.DatiBancariPrincipale == null)
                result = "Non sono presenti le coordinate bancarie per il condominio: " + esercizio.CondominioRiferimento.DisplayName + Environment.NewLine + Environment.NewLine;
            else if (string.IsNullOrEmpty(esercizio.CondominioRiferimento.DatiBancariPrincipale.Abi))
                result = "Non è presente il codice ABI del condominio: " + esercizio.CondominioRiferimento.DisplayName + Environment.NewLine + Environment.NewLine;
            
            if (esercizio.CondominioRiferimento.Indirizzo == null)
                result = "Non è presente l'indirizzo per il condominio: " + esercizio.CondominioRiferimento.DisplayName + Environment.NewLine + Environment.NewLine;
            else if (esercizio.CondominioRiferimento.Indirizzo.Comune == null)
                result = "Non è presente il comune per il condominio: " + esercizio.CondominioRiferimento.DisplayName + Environment.NewLine + Environment.NewLine;

            const string hql = "FROM SoggettoCondominio S WHERE S.ID IN (:lista)";
            var soggetti =_daoFactory.GetSoggettoCondominioDao().GetByQuery(hql, new QueryParam("lista", lista));

            return soggetti.Select(checkCondominoForEmissione).Where(checkCondomino => !string.IsNullOrEmpty(checkCondomino)).Aggregate(result, (current, checkCondomino) => current + checkCondomino);
        }
        private RiepilogoRataSoggettoDTO getItemTemplate(Persona persona, ImpostazioniAzienda impostazioni)
        {

            var riepilogo = new RiepilogoRataSoggettoDTO
            {
                ID = persona.ID,
                IdPersona = persona.ID,
                Nominativo = persona.DisplayName,
                TipoSoggettoCondominio = TipoSoggetto.Proprietario,
                SelectColumn = true
            };

            var contatti = new ContattoCollection(persona.Contatti);
            var contattoEmail = contatti.GetFirstContatto<Email>();
            if (contattoEmail != null)
                riepilogo.Email = contattoEmail.Valore;
            var contattoEmailCertificato = contatti.GetFirstContatto<EmailCertificata>();
            if (contattoEmailCertificato != null)
                riepilogo.EmailCertificata = contattoEmailCertificato.Valore;

            var contattoCellulare = contatti.GetFirstContatto<Cellulare>();
            if (contattoCellulare != null)
                riepilogo.Cellulare = contattoCellulare.Valore;

            var contattoFax = contatti.GetFirstContatto<Fax>();
            if (contattoFax != null)
                riepilogo.Fax = contattoFax.Valore;

            setIndirizzo(riepilogo, persona, impostazioni);

            return riepilogo;
        }
Example #8
0
        public ResultDocumentoDTO SalvaDocumentoFascicolo(int idFascicolo, string descrizione, int idCondominio, DateTime? data, int? idFornitore, bool visibileCondomino)
        {
            var fascicoloService = _windsorRepository.GetContainer(_info.Azienda).Resolve<IFascicoloService>();
            var result = fascicoloService.SaveDocument(idFascicolo, idCondominio, descrizione, data, idFornitore, visibileCondomino);

            ResultDocumentoDTO item;
            if (result.Documento != null)
            {
                var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda);
                var impostazioni = daoFactory.GetImpostazioniAziendaDao().GetByAzienda(_info.Azienda);
                if (impostazioni == null)
                {
                    impostazioni = new ImpostazioniAzienda(daoFactory.GetAziendaDao().GetById(_info.Azienda, false));
                    daoFactory.GetImpostazioniAziendaDao().SaveOrUpdate(impostazioni);
                }

                var stampaEtichette = impostazioni.UtilizzoEtichettatriceArchiviazioneOtticaContratti && daoFactory.GetCondominioDao().GetById(idCondominio, false).IsAbilitataArchiviazioneOtticaContratti.GetValueOrDefault();
                var etichettatrice = impostazioni.EtichettatriceArchiviazioneOttica;
                var tipoEtichetta = impostazioni.TipoEtichettaArchiviazioneOttica;
                var trayEtichettatriceAttivazioneOttica = impostazioni.TrayEtichettatriceAttivazioneOttica;

                item = new ResultDocumentoDTO(GetByDomainEntity(result.Documento), result.Message, stampaEtichette, etichettatrice, tipoEtichetta, trayEtichettatriceAttivazioneOttica);
            }
            else
                item = new ResultDocumentoDTO(null, result.Message, false, string.Empty, "Testo", null);

            return item;
        }
Example #9
0
        public CredenzialiArchiviazioneOttica GetCredenzialiArchiviazioneOttica(int idAzienda)
        {
            try
            {
                var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda);
                var impostazioni = daoFactory.GetImpostazioniAziendaDao().GetByAzienda(idAzienda);
                if (impostazioni == null)
                {
                    impostazioni = new ImpostazioniAzienda(daoFactory.GetAziendaDao().GetById(idAzienda, false));
                    daoFactory.GetImpostazioniAziendaDao().SaveOrUpdate(impostazioni);
                }

                return new CredenzialiArchiviazioneOttica(impostazioni.UtenteArchiviazioneOttica, impostazioni.PasswordArchiviazioneOttica, impostazioni.NomeApplicazioneArchiviazioneOttica, impostazioni.IndiceContrattiArchiviazioneOttica, impostazioni.IndiceFattureArchiviazioneOttica);
            }
            catch (Exception ex)
            {
                _log.ErrorFormat("Errore nella lettura delle credenziali di autenticazione per archiviazione ottica - {0} - idAzienda:{1}", ex, Utility.GetMethodDescription(), idAzienda);
                throw;
            }
        }
Example #10
0
        public string GetCausaleEmissioneRate(int idAzienda)
        {
            try
            {
                var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda);
                var impostazioni = daoFactory.GetImpostazioniAziendaDao().GetByAzienda(idAzienda);
                if (impostazioni == null)
                {
                    impostazioni = new ImpostazioniAzienda(daoFactory.GetAziendaDao().GetById(idAzienda, false));
                    daoFactory.GetImpostazioniAziendaDao().SaveOrUpdate(impostazioni);
                }

                return impostazioni.CausaleEmissioneRate;
            }
            catch (Exception ex)
            {
                _log.ErrorFormat("Errore nella lettura della causale di emissione rate - {0} - azienda:{1}", ex, Utility.GetMethodDescription(), idAzienda);
                throw;
            }
        }
Example #11
0
        public bool GetInversioneSaldiCondomini(int idAzienda)
        {
            try
            {
                var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda);
                var impostazioni = daoFactory.GetImpostazioniAziendaDao().GetByAzienda(idAzienda);
                if (impostazioni == null)
                {
                    impostazioni = new ImpostazioniAzienda(daoFactory.GetAziendaDao().GetById(idAzienda, false));
                    daoFactory.GetImpostazioniAziendaDao().SaveOrUpdate(impostazioni);
                }

                return impostazioni.InversioneSaldiRate;
            }
            catch (Exception ex)
            {
                _log.ErrorFormat("Errore nella lettura del flag di inversione dei saldi dei condomini - {0} - azienda:{1}", ex, Utility.GetMethodDescription(), idAzienda);
                throw;
            }
        }
Example #12
0
        public bool GetRicaricamentoElencoSpeseDisabilitato(int idAzienda)
        {
            try
            {
                var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda);
                var impostazioni = daoFactory.GetImpostazioniAziendaDao().GetByAzienda(idAzienda);
                if (impostazioni == null)
                {
                    impostazioni = new ImpostazioniAzienda(daoFactory.GetAziendaDao().GetById(idAzienda, false));
                    daoFactory.GetImpostazioniAziendaDao().SaveOrUpdate(impostazioni);
                }

                return impostazioni.RicaricamentoElencoSpeseDisabilitato;
            }
            catch (Exception ex)
            {
                _log.ErrorFormat("Errore nella lettura del flag di ricaricamento elenco spese - {0} - azienda:{1}", ex, Utility.GetMethodDescription(), idAzienda);
                throw;
            }
        }
Example #13
0
        private bool insert(AziendaDTO dto, out Azienda item)
        {
            var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda);

            try
            {
                item = new Azienda(string.Empty, dto.Descrizione)
                {
                    Descrizione = dto.Descrizione,
                    NomeUtente = dto.NomeUtente,
                    PercorsoDocumenti = dto.PercorsoDocumenti,
                    CodiceFiscale = dto.CodiceFiscale,
                    PartitaIva = dto.PartitaIva,
                    PercorsoCacheDocumenti = dto.PercorsoCacheDocumenti,
                    GiornoInizioRiscaldamento = dto.GiornoInizioRiscaldamento,
                    MeseInizioRiscaldamento = dto.MeseInizioRiscaldamento,
                    GiornoFineRiscaldamento = dto.GiornoFineRiscaldamento,
                    MeseFineRiscaldamento = dto.MeseFineRiscaldamento,
                    CodiceSIA = dto.CodiceSIA,
                    CodiceCUC = dto.CodiceCUC,
                    CodiceSedeEntratel = dto.CodiceSedeEntratel
                };

                // Dati per CBI
                if (!string.IsNullOrEmpty(dto.CodiceAbiBancaRitenuta) && !string.IsNullOrEmpty(dto.CodiceCabBancaRitenuta))
                    item.BancaRiferimentoRitenuta = daoFactory.GetAbiCabDao().GetByAbiCab(dto.CodiceAbiBancaRitenuta, dto.CodiceCabBancaRitenuta);

                // Responsabili
                if (dto.CodiceAmministratore > 0)
                    item.Amministratore = daoFactory.GetReferenteDao().GetById(dto.CodiceAmministratore, false);
                if (dto.CodiceResponsabileAssicurazioni > 0)
                    item.ResponsabileAssicurazioni = daoFactory.GetReferenteDao().GetById(dto.CodiceResponsabileAssicurazioni.GetValueOrDefault(), false);
                if (dto.CodiceResponsabilePremiAssicurativi > 0)
                    item.ResponsabilePremiAssicurativi = daoFactory.GetReferenteDao().GetById(dto.CodiceResponsabilePremiAssicurativi.GetValueOrDefault(), false);

                // Indirizzo
                if (dto.IndirizzoSede != null)
                {
                    if(item.IndirizzoSede == null)
                        item.IndirizzoSede = new Address();
                    item.IndirizzoSede.Indirizzo = dto.IndirizzoSede.Indirizzo;
                    item.IndirizzoSede.Localita = dto.IndirizzoSede.Localita;
                    item.IndirizzoSede.Presso = dto.IndirizzoSede.Presso;
                    item.IndirizzoSede.Cap = dto.IndirizzoSede.Cap;
                    item.IndirizzoSede.Civico = dto.IndirizzoSede.Civico;
                    if(!string.IsNullOrEmpty(dto.IndirizzoSede.CodiceComune))
                        item.IndirizzoSede.Comune = daoFactory.GetComuneDao().GetById(dto.IndirizzoSede.CodiceComune, false);
                }

                // Parametri Messaggistica
                var impostazioni = new ImpostazioniAzienda(item)
                {
                    AutorizzazioneScadenze = dto.AutorizzazioneScadenze,
                    SceltaCondominioEsercizio = dto.SceltaCondominioEsercizio,
                    UtenteServiziMessaggistica = dto.UtenteServiziMessaggistica,
                    PasswordServiziMessaggistica = dto.PasswordServiziMessaggistica,
                    EmailRapportiniInvio = dto.EmailRapportiniInvio,
                    ControlloRapportinoMessaggistica = dto.ControlloRapportinoMessaggistica,
                    EmailControlloRapportinoMessaggistica = dto.EmailControlloRapportinoMessaggistica,
                    NomeFaxHeader = dto.NomeFaxHeader,
                    NumeroFaxHeader = dto.NumeroFaxHeader,
                    NomeSmsHeader = dto.NomeSmsHeader,
                    MittenteEmailAzienda = dto.MittenteEmailAzienda,
                    DescrizioneAddebitoInteressiRitenuta = dto.DescrizioneAddebitoInteressiRitenuta,
                    DescrizioneAddebitoSanzioniRitenuta = dto.DescrizioneAddebitoSanzioniRitenuta,
                    CausaleEmissioneRate = dto.CausaleEmissioneRate,
                    UtilizzoEtichettatriceArchiviazioneOtticaFatture = dto.UtilizzoEtichettatriceArchiviazioneOtticaFatture,
                    UtilizzoEtichettatriceArchiviazioneOtticaMovimenti = dto.UtilizzoEtichettatriceArchiviazioneOtticaMovimenti,
                    UtilizzoEtichettatriceArchiviazioneOtticaContratti = dto.UtilizzoEtichettatriceArchiviazioneOtticaContratti,
                    TipoIndirizzoComunicazioni = dto.TipoIndirizzoComunicazioni,
                    EtichettatriceArchiviazioneOttica = dto.EtichettatriceArchiviazioneOttica,
                    TipoEtichettaArchiviazioneOttica = dto.TipoEtichettaArchiviazioneOttica,
                    TrayEtichettatriceAttivazioneOttica = dto.TrayEtichettatriceAttivazioneOttica,
                    InversioneSaldiRate = dto.InversioneSaldiRate,
                    StampaAutomaticaLetteraPagamentoManuale = dto.StampaLetteraPagamentoManuale,
                    StampaNomeAmministratoreReport = dto.StampaNomeAmministratoreReport,
                    RicaricamentoElencoSpeseDisabilitato = dto.RicaricamentoElencoSpeseDisabilitato,
                    DescrizioneAutomaticaPagamentoManuale = dto.CausalePagamentoManuale,
                    IntestazioneMAV = dto.IntestazioneMAV,
                    DescrizioneSpeseAutomatica = dto.DescrizioneSpeseAutomatica,
                    CodiceCalcoloTariffaAcqua = dto.CodiceCalcoloTariffaAcqua,
                    FormatoNomeProprietario = dto.FormatoNomeProprietario,
                    FormatoNomeConduttore = dto.FormatoNomeConduttore,
                    FontNameMessaggistica = dto.FontNameMessaggistica,
                    FontSizeMessaggistica = dto.FontSizeMessaggistica,
                    TipoVersamentoDopoChiusura = dto.TipoVersamentoDopoChiusura,
                    TipoVersamentoPrimaApertura = dto.TipoVersamentoPrimaApertura,
                    ModalitaConvocazione = dto.ModalitaConvocazione,
                    VersamentoMav = dto.VersamentoMAV,
                    AlertAttivitaAbilitato = dto.AlertAttivitaAbilitato,
                    AlertScadenzaContrattoAbilitato = dto.AlertScadenzaContrattoAbilitato,
                    AlertScadenzaPremioContrattoAbilitato = dto.AlertScadenzaPremioContrattoAbilitato,
                    TemplateDescrizioneUnitaImmobiliare = dto.TemplateDescrizioneUnitaImmobiliare
                };

                TipoAperturaDocumentoEnum aperturaPdf;
                if (Enum.TryParse(dto.AperturaDocumentoPdf, out aperturaPdf))
                    impostazioni.AperturaDocumentoPdf = aperturaPdf;

                TipoAperturaDocumentoEnum aperturaMessaggistica;
                if (Enum.TryParse(dto.AperturaDocumentoMessaggistica, out aperturaMessaggistica))
                    impostazioni.AperturaDocumentoMessaggistica = aperturaMessaggistica;

                // GeoReferenziazione
                var geoService = _windsorRepository.GetContainer(item.ID).Resolve<IGeoLocationService>();
                var coordinate = geoService.GetLatLong(item.IndirizzoSede.GetGeoLocationAddress());
                if (coordinate != null)
                {
                    item.GeoReferenziazione = new GeoReference
                    {
                        Longitude = coordinate.Value.Longitude,
                        Latitude = coordinate.Value.Latitude
                    };
                }

                daoFactory.GetAziendaDao().SaveOrUpdate(item);
                daoFactory.GetImpostazioniAziendaDao().SaveOrUpdate(impostazioni);
            }
            catch (Exception ex)
            {
                
                _log.Error("Errore nell'inserimento dell'azienda - " + Utility.GetMethodDescription() + " - id:" + dto.ID, ex);
                throw;
            }
            return true;
        }
Example #14
0
        private bool update(AziendaDTO dto, out Azienda item)
        {
            bool result;
            item = null;
            var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda);

            try
            {
                item = daoFactory.GetAziendaDao().GetById(dto.ID, false);

                // Condizione necessare per il controllo del fatto che sul DB ho una versione uguale o più vecchia
                // Per ora non viene eseguito il controllo
                if (dto.Version == item.Version || true)
                {
                    item.Descrizione = dto.Descrizione;
                    item.NomeUtente = dto.NomeUtente;
                    item.PercorsoDocumenti = dto.PercorsoDocumenti;
                    item.CodiceFiscale = dto.CodiceFiscale;
                    item.PartitaIva = dto.PartitaIva;
                    item.PercorsoCacheDocumenti = dto.PercorsoCacheDocumenti;
                    item.CodiceSedeEntratel = dto.CodiceSedeEntratel;

                    // Periodi Riscaldamento
                    item.GiornoInizioRiscaldamento = dto.GiornoInizioRiscaldamento;
                    item.MeseInizioRiscaldamento = dto.MeseInizioRiscaldamento;
                    item.GiornoFineRiscaldamento = dto.GiornoFineRiscaldamento;
                    item.MeseFineRiscaldamento = dto.MeseFineRiscaldamento;

                    // Dati per CBI
                    item.CodiceCUC = dto.CodiceCUC;
                    item.CodiceSIA = dto.CodiceSIA;
                    if (!string.IsNullOrEmpty(dto.CodiceAbiBancaRitenuta) && !string.IsNullOrEmpty(dto.CodiceCabBancaRitenuta))
                        item.BancaRiferimentoRitenuta = daoFactory.GetAbiCabDao().GetByAbiCab(dto.CodiceAbiBancaRitenuta, dto.CodiceCabBancaRitenuta);

                    // Responsabili
                    if (dto.CodiceAmministratore > 0)
                        item.Amministratore = daoFactory.GetReferenteDao().GetById(dto.CodiceAmministratore, false);
                    if (dto.CodiceResponsabileAssicurazioni > 0)
                        item.ResponsabileAssicurazioni = daoFactory.GetReferenteDao().GetById(dto.CodiceResponsabileAssicurazioni.GetValueOrDefault(), false);
                    if (dto.CodiceResponsabilePremiAssicurativi > 0)
                        item.ResponsabilePremiAssicurativi = daoFactory.GetReferenteDao().GetById(dto.CodiceResponsabilePremiAssicurativi.GetValueOrDefault(), false);

                    // Indirizzo
                    if (dto.IndirizzoSede != null)
                    {
                        if (item.IndirizzoSede == null)
                            item.IndirizzoSede = new Address();
                        item.IndirizzoSede.Indirizzo = dto.IndirizzoSede.Indirizzo;
                        item.IndirizzoSede.Localita = dto.IndirizzoSede.Localita;
                        item.IndirizzoSede.Presso = dto.IndirizzoSede.Presso;
                        item.IndirizzoSede.Cap = dto.IndirizzoSede.Cap;
                        item.IndirizzoSede.Civico = dto.IndirizzoSede.Civico;
                        if (!string.IsNullOrEmpty(dto.IndirizzoSede.CodiceComune))
                            item.IndirizzoSede.Comune = daoFactory.GetComuneDao().GetById(dto.IndirizzoSede.CodiceComune, false);
                    }

                    // GeoReferenziazione
                    var geoService = _windsorRepository.GetContainer(item.ID).Resolve<IGeoLocationService>();
                    var coordinate = geoService.GetLatLong(item.IndirizzoSede.GetGeoLocationAddress());
                    if (coordinate != null)
                    {
                        item.GeoReferenziazione = new GeoReference
                        {
                            Longitude = coordinate.Value.Longitude,
                            Latitude = coordinate.Value.Latitude,
                            AddedDate = DateTime.Now,
                            AddressUsed = item.IndirizzoSede.GetGeoLocationAddress()
                        };
                    }

                    // Parametri Messaggistica
                    var impostazioni = daoFactory.GetImpostazioniAziendaDao().GetByAzienda(dto.ID);
                    if (impostazioni == null)
                    {
                        impostazioni = new ImpostazioniAzienda(item);
                        daoFactory.GetImpostazioniAziendaDao().SaveOrUpdate(impostazioni);
                    }

                    impostazioni.AutorizzazioneScadenze = dto.AutorizzazioneScadenze;
                    impostazioni.SceltaCondominioEsercizio = dto.SceltaCondominioEsercizio;
                    impostazioni.UtenteServiziMessaggistica = dto.UtenteServiziMessaggistica.Truncate(50);
                    impostazioni.PasswordServiziMessaggistica = dto.PasswordServiziMessaggistica;
                    impostazioni.EmailRapportiniInvio = dto.EmailRapportiniInvio.Truncate(50);
                    impostazioni.ControlloRapportinoMessaggistica = dto.ControlloRapportinoMessaggistica;
                    impostazioni.EmailControlloRapportinoMessaggistica = dto.EmailControlloRapportinoMessaggistica.Truncate(50);
                    impostazioni.NomeFaxHeader = dto.NomeFaxHeader.Truncate(50);
                    impostazioni.NumeroFaxHeader = dto.NumeroFaxHeader.Truncate(50);
                    impostazioni.NomeSmsHeader = dto.NomeSmsHeader.Truncate(16);
                    impostazioni.MittenteEmailAzienda = dto.MittenteEmailAzienda.Truncate(50);
                    impostazioni.DescrizioneAddebitoInteressiRitenuta = dto.DescrizioneAddebitoInteressiRitenuta.Truncate(50);
                    impostazioni.DescrizioneAddebitoSanzioniRitenuta = dto.DescrizioneAddebitoSanzioniRitenuta.Truncate(50);
                    impostazioni.CausaleEmissioneRate = dto.CausaleEmissioneRate.Truncate(85);
                    impostazioni.UtilizzoEtichettatriceArchiviazioneOtticaFatture = dto.UtilizzoEtichettatriceArchiviazioneOtticaFatture;
                    impostazioni.UtilizzoEtichettatriceArchiviazioneOtticaMovimenti = dto.UtilizzoEtichettatriceArchiviazioneOtticaMovimenti;
                    impostazioni.UtilizzoEtichettatriceArchiviazioneOtticaContratti = dto.UtilizzoEtichettatriceArchiviazioneOtticaContratti;
                    impostazioni.TipoIndirizzoComunicazioni = dto.TipoIndirizzoComunicazioni;
                    impostazioni.EtichettatriceArchiviazioneOttica = dto.EtichettatriceArchiviazioneOttica.Truncate(50);
                    impostazioni.TipoEtichettaArchiviazioneOttica = dto.TipoEtichettaArchiviazioneOttica.Truncate(50);
                    impostazioni.TrayEtichettatriceAttivazioneOttica = dto.TrayEtichettatriceAttivazioneOttica;
                    impostazioni.VisualizzaAutomaticamenteSaldiBancari = dto.VisualizzaAutomaticamenteSaldiBancari;
                    impostazioni.DescrizioneSpeseAutomatica = dto.DescrizioneSpeseAutomatica;
                    impostazioni.CodiceCalcoloTariffaAcqua = dto.CodiceCalcoloTariffaAcqua;
                    impostazioni.AperturaDocumentoArchiviazioneOttica = (TipoAperturaDocumentoArchiviazioneEnum)Enum.Parse(typeof(TipoAperturaDocumentoArchiviazioneEnum), dto.AperturaDocumentoArchiviazioneOttica);
                    impostazioni.AperturaDocumentoPdf = (TipoAperturaDocumentoEnum)Enum.Parse(typeof(TipoAperturaDocumentoEnum), dto.AperturaDocumentoPdf);
                    impostazioni.AperturaDocumentoMessaggistica = (TipoAperturaDocumentoEnum)Enum.Parse(typeof(TipoAperturaDocumentoEnum), dto.AperturaDocumentoMessaggistica);
                    impostazioni.RicaricamentoElencoSpeseDisabilitato = dto.RicaricamentoElencoSpeseDisabilitato;
                    impostazioni.FontNameMessaggistica = dto.FontNameMessaggistica.Truncate(50);
                    impostazioni.FontSizeMessaggistica = dto.FontSizeMessaggistica;
                    impostazioni.TipoVersamentoDopoChiusura = dto.TipoVersamentoDopoChiusura;
                    impostazioni.TipoVersamentoPrimaApertura = dto.TipoVersamentoPrimaApertura;
                    impostazioni.ModalitaConvocazione = dto.ModalitaConvocazione;
                    impostazioni.VersamentoMav = dto.VersamentoMAV;
                    impostazioni.AlertAttivitaAbilitato = dto.AlertAttivitaAbilitato;
                    impostazioni.AlertScadenzaContrattoAbilitato = dto.AlertScadenzaContrattoAbilitato;
                    impostazioni.AlertScadenzaPremioContrattoAbilitato = dto.AlertScadenzaPremioContrattoAbilitato;
                    impostazioni.TemplateDescrizioneUnitaImmobiliare = dto.TemplateDescrizioneUnitaImmobiliare;

                    // Segno Importi
                    impostazioni.InversioneSaldiRate = dto.InversioneSaldiRate;

                    // Pagamento Manuale
                    impostazioni.StampaAutomaticaLetteraPagamentoManuale = dto.StampaLetteraPagamentoManuale;
                    impostazioni.StampaNomeAmministratoreReport = dto.StampaNomeAmministratoreReport;
                    impostazioni.DescrizioneAutomaticaPagamentoManuale = dto.CausalePagamentoManuale;

                    // MAV
                    impostazioni.IntestazioneMAV = dto.IntestazioneMAV.Truncate(30);

                    // Formato nome
                    impostazioni.FormatoNomeConduttore = dto.FormatoNomeConduttore;
                    impostazioni.FormatoNomeProprietario = dto.FormatoNomeProprietario;

                    result = true;
                }
                else
                {
                    // Eccezione: Sul db c'è qualche cosa di più nuovo.
                    
                    _log.Error("Errore nel salvataggio dell'azienda: id:" + dto.ID + " - il dato sul db è più recente di quello che si vuole salvare");
                    result = false;
                }
            }
            catch (Exception ex)
            {
                _log.ErrorFormat("Errore nel salvataggio dell'azienda - {0} - id:{1}", ex, Utility.GetMethodDescription(), dto.ID);
                throw;
            }

            return result;
        }
Example #15
0
        private AziendaDTO setDto(Azienda item)
        {
            var dto = new AziendaDTO
            {
                ID = item.ID,
                Descrizione = item.Descrizione,
                Codice = item.Codice,
                NomeUtente = item.NomeUtente,
                PercorsoDocumenti = item.PercorsoDocumenti,
                PercorsoCacheDocumenti = item.PercorsoCacheDocumenti,
                CodiceFiscale = item.CodiceFiscale,
                PartitaIva = item.PartitaIva,
                DefaultCulture = item.DefaultCulture,
                AffiliatoSinteg = item.AffiliatoSinteg,
                CodiceSedeEntratel = item.CodiceSedeEntratel,
                IndirizzoSede = new AddressDTO()
            };

            if (item.SmtpConfig != null)
            {
                dto.SmtpServer = item.SmtpConfig.SmtpServer;
                dto.SmtpUserName = item.SmtpConfig.SmtpUserName;
                dto.SmtpPassword = item.SmtpConfig.SmtpPassword;
                dto.SmtpPort = item.SmtpConfig.SmtpPort;
                dto.UseSsl = item.SmtpConfig.UseSsl;
            }

            // Indirizzo
            if (item.IndirizzoSede != null)
            {
                dto.IndirizzoSede = getLocalitaRepository().GetAddressByDomainEntity(item.IndirizzoSede);
                dto.IndirizzoGeoReferenziato = item.IndirizzoSede.GetGeoLocationAddress();
                if (item.IndirizzoSede.Comune != null)
                    dto.StatoEstero = item.IndirizzoSede.Comune.ProvinciaAppartenenza.StatoEstero;
            }


            // Dati per CBI
            dto.CodiceCUC = item.CodiceCUC;
            dto.CodiceSIA = item.CodiceSIA;
            if (item.BancaRiferimentoRitenuta != null)
            {
                dto.CodiceAbiBancaRitenuta = item.BancaRiferimentoRitenuta.ID.Abi;
                dto.CodiceCabBancaRitenuta = item.BancaRiferimentoRitenuta.ID.Cab;
            }

            // Responsabili
            if (item.Amministratore != null)
            {
                try
                {
                    dto.CodiceAmministratore = item.Amministratore.ID;
                }
                catch (Exception ex)
                {
                    _log.ErrorFormat("Errore nel caricamento dell'amministratore - {0} - azienda:{1}", ex, Utility.GetMethodDescription(), item.ID);                    
                }
            }
            if (item.ResponsabileAssicurazioni != null)
            {
                try
                {
                    dto.CodiceResponsabileAssicurazioni = item.ResponsabileAssicurazioni.ID;
                }
                catch (Exception ex)
                {
                    _log.ErrorFormat("Errore nel caricamento del responsabile assicurazioni - {0} - azienda:{1}", ex, Utility.GetMethodDescription(), item.ID);
                }
            }
            if (item.ResponsabilePremiAssicurativi != null)
            {
                try
                {
                    dto.CodiceResponsabilePremiAssicurativi = item.ResponsabilePremiAssicurativi.ID;
                }
                catch (Exception ex)
                {
                    _log.ErrorFormat("Errore nel caricamento del responsabile premi assicurativi - {0} - azienda:{1}", ex, Utility.GetMethodDescription(), item.ID);
                }
            }

            // Periodi Riscaldamento
            dto.GiornoInizioRiscaldamento = item.GiornoInizioRiscaldamento;
            dto.MeseInizioRiscaldamento = item.MeseInizioRiscaldamento;
            dto.GiornoFineRiscaldamento = item.GiornoFineRiscaldamento;
            dto.MeseFineRiscaldamento = item.MeseFineRiscaldamento;

            if (item.GeoReferenziazione != null)
            {
                dto.Latitude = item.GeoReferenziazione.Latitude;
                dto.Longitude = item.GeoReferenziazione.Longitude;
            }

            var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda);
            var impostazioni = daoFactory.GetImpostazioniAziendaDao().GetByAzienda(item.ID);
            if (impostazioni == null)
            {
                impostazioni = new ImpostazioniAzienda(item);
                daoFactory.GetImpostazioniAziendaDao().SaveOrUpdate(impostazioni);
            }

            dto.AutorizzazioneScadenze = impostazioni.AutorizzazioneScadenze;
            dto.SceltaCondominioEsercizio = impostazioni.SceltaCondominioEsercizio;
            dto.UtenteServiziMessaggistica = impostazioni.UtenteServiziMessaggistica;
            dto.PasswordServiziMessaggistica = impostazioni.PasswordServiziMessaggistica;
            dto.NomeFaxHeader = impostazioni.NomeFaxHeader;
            dto.NumeroFaxHeader = impostazioni.NumeroFaxHeader;
            dto.EmailRapportiniInvio = impostazioni.EmailRapportiniInvio;
            dto.ControlloRapportinoMessaggistica = impostazioni.ControlloRapportinoMessaggistica;
            dto.EmailControlloRapportinoMessaggistica = impostazioni.EmailControlloRapportinoMessaggistica;
            dto.NomeSmsHeader = impostazioni.NomeSmsHeader;
            dto.MittenteEmailAzienda = impostazioni.MittenteEmailAzienda;
            dto.InversioneSaldiRate = impostazioni.InversioneSaldiRate;
            dto.StampaLetteraPagamentoManuale = impostazioni.StampaAutomaticaLetteraPagamentoManuale;
            dto.StampaNomeAmministratoreReport = impostazioni.StampaNomeAmministratoreReport;
            dto.CausalePagamentoManuale = impostazioni.DescrizioneAutomaticaPagamentoManuale;
            dto.DescrizioneAddebitoInteressiRitenuta = impostazioni.DescrizioneAddebitoInteressiRitenuta;
            dto.DescrizioneAddebitoSanzioniRitenuta = impostazioni.DescrizioneAddebitoSanzioniRitenuta;
            dto.CausaleEmissioneRate = impostazioni.CausaleEmissioneRate;
            dto.AperturaDocumentoArchiviazioneOttica = impostazioni.AperturaDocumentoArchiviazioneOttica.ToString();
            dto.AperturaDocumentoPdf = impostazioni.AperturaDocumentoPdf.ToString();
            dto.AperturaDocumentoMessaggistica = impostazioni.AperturaDocumentoMessaggistica.ToString();
            dto.RicaricamentoElencoSpeseDisabilitato = impostazioni.RicaricamentoElencoSpeseDisabilitato;
            dto.UtilizzoEtichettatriceArchiviazioneOtticaFatture = impostazioni.UtilizzoEtichettatriceArchiviazioneOtticaFatture;
            dto.UtilizzoEtichettatriceArchiviazioneOtticaMovimenti = impostazioni.UtilizzoEtichettatriceArchiviazioneOtticaMovimenti;
            dto.UtilizzoEtichettatriceArchiviazioneOtticaContratti = impostazioni.UtilizzoEtichettatriceArchiviazioneOtticaContratti;
            dto.TipoIndirizzoComunicazioni = impostazioni.TipoIndirizzoComunicazioni;
            dto.EtichettatriceArchiviazioneOttica = impostazioni.EtichettatriceArchiviazioneOttica;
            dto.TipoEtichettaArchiviazioneOttica = impostazioni.TipoEtichettaArchiviazioneOttica;
            dto.TrayEtichettatriceAttivazioneOttica = impostazioni.TrayEtichettatriceAttivazioneOttica;
            dto.VisualizzaAutomaticamenteSaldiBancari = impostazioni.VisualizzaAutomaticamenteSaldiBancari;
            dto.IntestazioneMAV = impostazioni.IntestazioneMAV;
            dto.DescrizioneSpeseAutomatica = impostazioni.DescrizioneSpeseAutomatica;
            dto.CodiceCalcoloTariffaAcqua = impostazioni.CodiceCalcoloTariffaAcqua;
            dto.FormatoNomeConduttore = impostazioni.FormatoNomeConduttore;
            dto.FormatoNomeProprietario = impostazioni.FormatoNomeProprietario;
            dto.FontNameMessaggistica = impostazioni.FontNameMessaggistica;
            dto.FontSizeMessaggistica = impostazioni.FontSizeMessaggistica;
            dto.TipoVersamentoDopoChiusura = impostazioni.TipoVersamentoDopoChiusura;
            dto.TipoVersamentoPrimaApertura = impostazioni.TipoVersamentoPrimaApertura;
            dto.ModalitaConvocazione = impostazioni.ModalitaConvocazione;
            dto.VersamentoMAV = impostazioni.VersamentoMav;
            dto.AlertAttivitaAbilitato = impostazioni.AlertAttivitaAbilitato;
            dto.AlertScadenzaContrattoAbilitato = impostazioni.AlertScadenzaContrattoAbilitato;
            dto.AlertScadenzaPremioContrattoAbilitato = impostazioni.AlertScadenzaPremioContrattoAbilitato;
            dto.TemplateDescrizioneUnitaImmobiliare = impostazioni.TemplateDescrizioneUnitaImmobiliare;

            dto.Version = item.Version;

            return dto;
        }
Example #16
0
        public string GetTipoEtichettaArchiviazioneOttica(int idAzienda)
        {
            try
            {
                var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda);
                var impostazioni = daoFactory.GetImpostazioniAziendaDao().GetByAzienda(idAzienda);
                if (impostazioni == null)
                {
                    impostazioni = new ImpostazioniAzienda(daoFactory.GetAziendaDao().GetById(idAzienda, false)) { AperturaDocumentoPdf = TipoAperturaDocumentoEnum.DefaultViewer };
                    daoFactory.GetImpostazioniAziendaDao().SaveOrUpdate(impostazioni);
                }

                return impostazioni.TipoEtichettaArchiviazioneOttica;
            }
            catch (Exception ex)
            {
                _log.ErrorFormat("Errore nella lettura del tipo di etichette attivo della etichettatrice corrente - {0} - azienda:{1}", ex, Utility.GetMethodDescription(), idAzienda);
                throw;
            }
        } 
Example #17
0
        public string GetCodiceCalcoloTariffaAcqua(int idAzienda)
        {
            try
            {
                var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda);
                var impostazioni = daoFactory.GetImpostazioniAziendaDao().GetByAzienda(idAzienda);
                if (impostazioni == null)
                {
                    impostazioni = new ImpostazioniAzienda(daoFactory.GetAziendaDao().GetById(idAzienda, false));
                    daoFactory.GetImpostazioniAziendaDao().SaveOrUpdate(impostazioni);
                }

                return impostazioni.CodiceCalcoloTariffaAcqua;
            }
            catch (Exception ex)
            {
                _log.ErrorFormat("Errore nella lettura del codice calcolo tariffa acqua - {0} - azienda:{1}", ex, Utility.GetMethodDescription(), idAzienda);
                throw;
            }
        }
Example #18
0
        public FontDTO GetDefaultFont(int idAzienda)
        {
            try
            {
                var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda);
                var impostazioni = daoFactory.GetImpostazioniAziendaDao().GetByAzienda(idAzienda);
                if (impostazioni == null)
                {
                    impostazioni = new ImpostazioniAzienda(daoFactory.GetAziendaDao().GetById(idAzienda, false));
                    daoFactory.GetImpostazioniAziendaDao().SaveOrUpdate(impostazioni);
                }

                return new FontDTO
                {
                    FontName = impostazioni.FontNameMessaggistica,
                    FontSize = impostazioni.FontSizeMessaggistica
                };
            }
            catch (Exception ex)
            {
                _log.ErrorFormat("Errore nella lettura del font di default per messaggistica - {0} - azienda:{1}", ex, Utility.GetMethodDescription(), idAzienda);
                throw;
            }
        }
Example #19
0
        public TipoVersamentoPrimaAperturaEnum? GetRichiestoMovimentoVersamentoCondominoPrecedenteApertura(int idAzienda)
        {
            try
            {
                var daoFactory = _windsorRepository.GetContainer(_info.Azienda).Resolve<IDaoFactory>();
                var impostazioni = daoFactory.GetImpostazioniAziendaDao().GetByAzienda(idAzienda);
                if (impostazioni == null)
                {
                    impostazioni = new ImpostazioniAzienda(daoFactory.GetAziendaDao().GetById(idAzienda, false));
                    daoFactory.GetImpostazioniAziendaDao().SaveOrUpdate(impostazioni);
                }

                return impostazioni.TipoVersamentoPrimaApertura;
            }
            catch (Exception ex)
            {
                _log.ErrorFormat("Errore nella lettura del flag per richiesta di movimenti per versamento condomino precedenti alla apertura - {0} - azienda:{1}", ex, Utility.GetMethodDescription(), idAzienda);
                throw;
            }
        }
Example #20
0
        public TipoModalitaConvocazione GetTipoModalitaConvocazione(int idAzienda)
        {
            try
            {
                var daoFactory = _windsorRepository.GetContainer(_info.Azienda).Resolve<IDaoFactory>();
                var impostazioni = daoFactory.GetImpostazioniAziendaDao().GetByAzienda(idAzienda);
                if (impostazioni == null)
                {
                    impostazioni = new ImpostazioniAzienda(daoFactory.GetAziendaDao().GetById(idAzienda, false));
                    daoFactory.GetImpostazioniAziendaDao().SaveOrUpdate(impostazioni);
                }

                return impostazioni.ModalitaConvocazione.GetValueOrDefault();
            }
            catch (Exception ex)
            {
                _log.ErrorFormat("Errore nella lettura del flag per tipo modalità convocazione - {0} - azienda:{1}", ex, Utility.GetMethodDescription(), idAzienda);
                throw;
            }
        }
Example #21
0
        public string GetIntestazioneMAVAzienda(int idAzienda)
        {
            try
            {
                var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda);
                var impostazioni = daoFactory.GetImpostazioniAziendaDao().GetByAzienda(idAzienda);
                if (impostazioni == null)
                {
                    impostazioni = new ImpostazioniAzienda(daoFactory.GetAziendaDao().GetById(idAzienda, false));
                    daoFactory.GetImpostazioniAziendaDao().SaveOrUpdate(impostazioni);
                }

                return impostazioni.IntestazioneMAV;
            }
            catch (Exception ex)
            {
                _log.ErrorFormat("Errore nella descrizione della intestazione azienda per l'emissione dei MAV - {0} - idAzienda:{1}", ex, Utility.GetMethodDescription(), idAzienda);
                throw;
            }
        }
        private void setIndirizzo(RiepilogoRataSoggettoDTO dto, Persona persona, ImpostazioniAzienda impostazioni)
        {
            // ==================================================================
            // Indirizzo
            // ==================================================================
            dto.Indirizzo = new AddressComunicazioneDTO { RecapitoResidenza = impostazioni.TipoIndirizzoComunicazioni };

            if (persona.IndirizzoResidenza != null)
            {
                dto.Indirizzo.CapResidenza = persona.IndirizzoResidenza.Cap;
                dto.Indirizzo.LocalitaResidenza = persona.IndirizzoResidenza.Localita;
                // Località per ora viene stampata com campo singolo
                //                                personaDto.Indirizzo.ComuneResidenza = soggetto.Persona.IndirizzoResidenza.Localita;
                if (persona.IndirizzoResidenza.Comune != null)
                {
                    if (!string.IsNullOrEmpty(dto.Indirizzo.ComuneResidenza))
                        dto.Indirizzo.ComuneResidenza += " - ";
                    dto.Indirizzo.ComuneResidenza += persona.IndirizzoResidenza.Comune.Descrizione + " " + persona.IndirizzoResidenza.Comune.ProvinciaAppartenenza.Codice;
                }
                dto.Indirizzo.ViaCivicoResidenza = persona.IndirizzoResidenza.Indirizzo + " " + persona.IndirizzoResidenza.Civico;
                if (!string.IsNullOrEmpty(persona.IndirizzoResidenza.Presso))
                    dto.Indirizzo.ViaCivicoResidenza += " - c/o:" + persona.IndirizzoResidenza.Presso;
            }

            if (persona.Recapito != null)
            {
                dto.Indirizzo.CapRecapito = persona.Recapito.Cap;
                dto.Indirizzo.LocalitaRecapito = persona.Recapito.Localita;
                // Località per ora viene stampata com campo singolo
                //                                personaDto.Indirizzo.ComuneRecapito = soggetto.Persona.Recapito.Localita;
                if (persona.Recapito.Comune != null)
                {
                    if (!string.IsNullOrEmpty(dto.Indirizzo.ComuneRecapito))
                        dto.Indirizzo.ComuneRecapito += " - ";
                    dto.Indirizzo.ComuneRecapito += persona.Recapito.Comune.Descrizione + " " + persona.Recapito.Comune.ProvinciaAppartenenza.Codice;
                }
                dto.Indirizzo.ViaCivicoRecapito = persona.Recapito.Indirizzo + " " + persona.Recapito.Civico;
                if (!string.IsNullOrEmpty(persona.Recapito.Presso))
                    dto.Indirizzo.ViaCivicoRecapito += " - c/o:" + persona.Recapito.Presso;
            }
            else
            {
                dto.Indirizzo.ViaCivicoRecapito = dto.Indirizzo.ViaCivicoResidenza;
                dto.Indirizzo.CapRecapito = dto.Indirizzo.CapResidenza;
                dto.Indirizzo.ComuneRecapito = dto.Indirizzo.ComuneResidenza;
            }

            dto.ViaCivico = dto.Indirizzo.ViaCivicoRecapito;
            dto.Cap = dto.Indirizzo.CapRecapito;
            dto.Comune = dto.Indirizzo.ComuneRecapito;
            dto.Localita = dto.Indirizzo.LocalitaRecapito;
            // ==================================================================
        }
Example #23
0
        public bool GetVisualizzazioneAutomaticaSaldiBancari(int idAzienda)
        {
            try
            {
                var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda);
                var impostazioni = daoFactory.GetImpostazioniAziendaDao().GetByAzienda(idAzienda);
                if (impostazioni == null)
                {
                    impostazioni = new ImpostazioniAzienda(daoFactory.GetAziendaDao().GetById(idAzienda, false));
                    daoFactory.GetImpostazioniAziendaDao().SaveOrUpdate(impostazioni);
                }

                return impostazioni.VisualizzaAutomaticamenteSaldiBancari;
            }
            catch (Exception ex)
            {
                _log.ErrorFormat("Errore nella lettura del flag per la visualizzazione automatica dei saldi bancari - {0} - idAzienda:{1}", ex, Utility.GetMethodDescription(), idAzienda);
                throw;
            }
        }
        private RiepilogoRataSoggettoDTO getItemTemplate(SoggettoCondominio soggetto, ImpostazioniAzienda impostazioni, DateTime data)
        {
            var riepilogo = new RiepilogoRataSoggettoDTO
            {
                ID = soggetto.ID,
                TipoSoggettoCondominio = soggetto.Tipo,
                DescrizioneUnitaImmobiliare = soggetto.UnitaImmobiliare.Descrizione,
                IdPersona = soggetto.Persona.ID,
                IdSoggettoCondominio = soggetto.ID,
                IdUnitaImmobiliare = soggetto.UnitaImmobiliare.ID,
                IdStabile = soggetto.UnitaImmobiliare.GruppoStabileRiferimento.PalazzinaRiferimento.ID,
                IdGruppoStabile = soggetto.UnitaImmobiliare.GruppoStabileRiferimento.ID,
                Stabile = soggetto.UnitaImmobiliare.GruppoStabileRiferimento.PalazzinaRiferimento.Descrizione,
                GruppoStabile = soggetto.UnitaImmobiliare.GruppoStabileRiferimento.Descrizione,
                Nominativo = soggetto.DisplayName,
                Ordine = soggetto.UnitaImmobiliare.Ordine.GetValueOrDefault(),
                Interno = soggetto.UnitaImmobiliare.InternoCompleto,
                Piano = soggetto.UnitaImmobiliare.Piano,
                IdCondominio = soggetto.UnitaImmobiliare.GruppoStabileRiferimento.PalazzinaRiferimento.CondominioRiferimento.ID,
                DescrizioneCondominio = soggetto.UnitaImmobiliare.GruppoStabileRiferimento.PalazzinaRiferimento.CondominioRiferimento.DisplayName,
                SelectColumn = true
            };

            var contatti = new ContattoCollection(soggetto.Persona.Contatti);
            var contattoEmail = contatti.GetFirstContatto<Email>();
            if (contattoEmail != null)
                riepilogo.Email = contattoEmail.Valore;
            var contattoEmailCertificato = contatti.GetFirstContatto<EmailCertificata>();
            if (contattoEmailCertificato != null)
                riepilogo.EmailCertificata = contattoEmailCertificato.Valore;

            var contattoCellulare = contatti.GetFirstContatto<Cellulare>();
            if (contattoCellulare != null)
                riepilogo.Cellulare = contattoCellulare.Valore;

            var contattoFax = contatti.GetFirstContatto<Fax>();
            if (contattoFax != null)
                riepilogo.Fax = contattoFax.Valore;

            setIndirizzo(riepilogo, soggetto.Persona, impostazioni);

            return riepilogo;
        }
Example #25
0
        public bool GetDescrizioneAutomaticaPagamentoManuale(int idAzienda)
        {
            try
            {
                var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda);
                var impostazioni = daoFactory.GetImpostazioniAziendaDao().GetByAzienda(idAzienda);
                if (impostazioni == null)
                {
                    impostazioni = new ImpostazioniAzienda(daoFactory.GetAziendaDao().GetById(idAzienda, false));
                    daoFactory.GetImpostazioniAziendaDao().SaveOrUpdate(impostazioni);
                }

                return impostazioni.DescrizioneAutomaticaPagamentoManuale;
            }
            catch (Exception ex)
            {
                _log.ErrorFormat("Errore nella lettura del flag di descrizione automatica nel pagamento manuale - {0} - idAzienda:{1}", ex, Utility.GetMethodDescription(), idAzienda);
                throw;
            }
        }
Example #26
0
        public IEnumerable<PersonaContattoDTO> SetContattoDto(Persona item, TipoNominativo? tipoNominativo, DateTime? dataRiferimento, TipoIndirizzo? tipoIndirizzo, ImpostazioniAzienda impostazioniAzienda)
        {
            try
            {
                var listaDto = new List<PersonaContattoDTO>();
                var mainDTO = new PersonaContattoDTO
                {
                    ID = item.ID,
                    Azienda = item.AziendaID.GetValueOrDefault(),
                    Iban = item.Iban,
                    CodiceFiscale = item.CodiceFiscale,
                    Cognome = item.Cognome,
                    DataNascita = item.DataNascita,
                    DisplayName = item.DisplayName,
                    Nome = item.Nome,
                    Note = item.Note,
                    PartitaIva = item.PartitaIva,
                    RagioneSociale = item.RagioneSociale,
                    Sesso = item.Sesso,
                    TipoPersona = item.TipoPersona,
                    Titolo = item.Titolo,
                    IsDeleteAllow = false,
                    Username = item.DatiAutenticazione?.Username,
                    Password = item.DatiAutenticazione?.Password,
                    Barcode = item.GetBarcode(),
                    Version = item.Version
                };

                if (string.IsNullOrEmpty(mainDTO.Cognome) && string.IsNullOrEmpty(mainDTO.Nome))
                    mainDTO.Cognome = mainDTO.RagioneSociale;

                var gruppi = string.Empty;
                foreach (var personaGruppo in item.Gruppi)
                {
                    if (!string.IsNullOrEmpty(gruppi))
                        gruppi += ", ";
                    gruppi += personaGruppo.Gruppo.DescrizioneBreve;
                }
                mainDTO.Gruppi = gruppi;

                if (item.ComuneNascita != null)
                {
                    try
                    {
                        mainDTO.ComuneNascita = item.ComuneNascita.Descrizione;
                    }
                    catch (Exception ex)
                    {
                        _log.WarnFormat("Errore nel caricamento delle persone - COMUNE NASCITA - {0} - id:{1}", ex, Utility.GetMethodDescription(), item.ID);
                    }

                }

                // Indirizzi
                setIndirizzo(mainDTO, item, tipoIndirizzo, impostazioniAzienda);
                //if ((tipoIndirizzo == TipoIndirizzo.Residenza && item.IndirizzoResidenza != null) || (tipoIndirizzo == TipoIndirizzo.Recapito && item.Recapito == null))
                //{
                //    var indirizzo = _locRep.GetAddressByDomainEntity(item.IndirizzoResidenza);
                //    mainDTO.Indirizzo = indirizzo.DisplayName;
                //    mainDTO.Comune = indirizzo.DescrizioneComune + " " + indirizzo.CodiceProvincia;
                //    mainDTO.Localita = indirizzo.Localita;
                //    mainDTO.Cap = indirizzo.Cap;
                //    mainDTO.Presso = indirizzo.Presso;
                //}
                //else if (item.Recapito != null)
                //{
                //    var recapito = _locRep.GetAddressByDomainEntity(item.Recapito);
                //    mainDTO.Recapito = recapito.DisplayName;
                //    mainDTO.Indirizzo = recapito.DisplayName;
                //    mainDTO.Comune = recapito.DescrizioneComune + " " + recapito.CodiceProvincia;
                //    mainDTO.Localita = recapito.Localita;
                //    mainDTO.Cap = recapito.Cap;
                //    mainDTO.Presso = recapito.Presso;
                //}

                // Contatti
                var contatti = new ContattoCollection(item.Contatti);
                var tel = contatti.GetFirstContatto<Telefono>();
                if (tel != null)
                {
                    mainDTO.Telefono = tel.Valore;
                    if(!string.IsNullOrEmpty(tel.Descrizione))
                        mainDTO.Telefono += " (" + tel.Descrizione + ")";
                }
                
                var cell = contatti.GetFirstContatto<Cellulare>();
                if (cell != null)
                {
                    mainDTO.Cellulare = cell.Valore;
                    if (!string.IsNullOrEmpty(cell.Descrizione))
                        mainDTO.Cellulare += " (" + cell.Descrizione + ")";
                }
                
                var mail = contatti.GetFirstContatto<Email>();
                if (mail != null)
                {
                    mainDTO.Email = mail.Valore;
                    if (!string.IsNullOrEmpty(mail.Descrizione))
                        mainDTO.Email += " (" + mail.Descrizione + ")";
                }

                var mailCertificata = contatti.GetFirstContatto<EmailCertificata>();
                if (mailCertificata != null)
                {
                    mainDTO.EmailCertificata = mailCertificata.Valore;
                    if (!string.IsNullOrEmpty(mailCertificata.Descrizione))
                        mainDTO.EmailCertificata += " (" + mailCertificata.Descrizione + ")";
                }
                
                var fax = contatti.GetFirstContatto<Fax>();
                if (fax != null)
                {
                    mainDTO.Fax = fax.Valore;
                    if (!string.IsNullOrEmpty(fax.Descrizione))
                        mainDTO.Fax += " (" + fax.Descrizione + ")";
                }

                // Dati condominio
                if (item.SoggettiCondominio.Count > 0)
                {
                    SoggettoCondominio soggetto = null;
                    if(item.SoggettiCondominio.Count(soggettoItem => soggettoItem.DataFine == null) == 1)
                        soggetto = item.SoggettiCondominio.Where(soggettoItem => soggettoItem.DataFine == null).OrderBy(pers => pers.Tipo).FirstOrDefault();
                    if(soggetto == null)
                        soggetto = item.SoggettiCondominio.OrderBy(soggettoItem => soggettoItem.Tipo).ThenByDescending(soggettoItem => soggettoItem.DataFine).ThenByDescending(soggettoItem => soggettoItem.DataInizio).ThenBy(soggettoItem => soggettoItem.UnitaImmobiliare.Ordine.GetValueOrDefault()).FirstOrDefault();
                    if(soggetto != null)
                    {
                        if (soggetto.UnitaImmobiliare != null)
                        {
                            if (tipoNominativo.GetValueOrDefault() != TipoNominativo.CondominoAttivo || dataRiferimento == null || soggetto.DataFine == null || soggetto.DataFine.GetValueOrDefault() > dataRiferimento.GetValueOrDefault())
                            {
                                var dto = mainDTO.Clone() as PersonaContattoDTO;
                                if (dto != null)
                                {
                                    dto.IdUnitaImmobiliare = soggetto.UnitaImmobiliare.ID;
                                    dto.IdSoggetto = soggetto.ID;
                                    dto.DescrizioneUnitaImmobiliare = soggetto.UnitaImmobiliare.Descrizione;
                                    dto.OrdineUnitaImmobiliare = soggetto.UnitaImmobiliare.Ordine.GetValueOrDefault();
                                    dto.Interno = soggetto.UnitaImmobiliare.InternoCompleto;
                                    dto.TipoCondomino = soggetto.Tipo.ToString();
                                    dto.TipoSoggetto = TipoNominativo.Condomino;
                                    dto.DescrizioneSoggetto = soggetto.DescrizioneAggiuntiva;
                                    dto.IsResidente = soggetto.IsResidente;
                                    dto.IsConsigliere = soggetto.Consigliere;
                                    dto.SoggettoAccorpamento = soggetto.GetDescrizioneAccorpamento();
                                    dto.ModalitaConvocazione = soggetto.ModalitaConvocazione;
                                    dto.FoglioCatastale = soggetto.UnitaImmobiliare.FoglioCatastale;
                                    dto.Mappale = soggetto.UnitaImmobiliare.Mappale;
                                    dto.Subalterno = soggetto.UnitaImmobiliare.Subalterno;

                                    if(soggetto.FrazionePossesso != null)
                                        dto.Possesso = soggetto.FrazionePossesso.ToString();

                                    if (soggetto.UnitaImmobiliare.GruppoStabileRiferimento != null)
                                    {
                                        dto.IdGruppoStabile = soggetto.UnitaImmobiliare.GruppoStabileRiferimento.ID;
                                        dto.DescrizioneGruppoStabile = soggetto.UnitaImmobiliare.GruppoStabileRiferimento.Descrizione;
                                        dto.IdStabile = soggetto.UnitaImmobiliare.GruppoStabileRiferimento.PalazzinaRiferimento.ID;
                                        dto.DescrizioneStabile = soggetto.UnitaImmobiliare.GruppoStabileRiferimento.PalazzinaRiferimento.Descrizione;
                                        dto.IdCondominio = soggetto.UnitaImmobiliare.GruppoStabileRiferimento.PalazzinaRiferimento.CondominioRiferimento.ID;
                                        dto.DescrizioneCondominio = soggetto.UnitaImmobiliare.GruppoStabileRiferimento.PalazzinaRiferimento.CondominioRiferimento.DisplayName;
                                    }

                                    listaDto.Add(dto);
                                }
                            }
                        }
                        else
                        {
                            _log.WarnFormat("Attenzione presente soggetto condominio senza unità immobiliare - {0} - soggetto:{1} - persona:{2}", Utility.GetMethodDescription(), soggetto.ID, item.ID);
                        }
                    }
                }

                // Dati Fornitore
                if (item.Fornitori.Count > 0)
                {
                    foreach (var fornitore in item.Fornitori)
                    {
                        var dto = mainDTO.Clone() as PersonaContattoDTO;
                        if (dto != null)
                        {
                            dto.IdFornitore = fornitore.ID;
                            dto.TipoFornitore = fornitore.Tipo?.Descrizione;
                            dto.TipoSoggetto = TipoNominativo.Fornitore;
                            listaDto.Add(dto);
                        }
                    }
                }

                // Dati Referente
                if (item.Referenti.Count > 0)
                {
                    foreach (var dto in item.Referenti.Select(referente => mainDTO.Clone()).OfType<PersonaContattoDTO>())
                    {
                        dto.TipoSoggetto = TipoNominativo.Referente;
                        listaDto.Add(dto);
                    }
                }

                if (listaDto.Count == 0 && tipoNominativo.GetValueOrDefault() != TipoNominativo.CondominoAttivo)
                {
                    if (item.Attivita.Count == 0)
                        mainDTO.IsDeleteAllow = true;
                    mainDTO.TipoSoggetto = TipoNominativo.Contatto;
                    listaDto.Add(mainDTO);
                }

                return listaDto;
            }
            catch (Exception ex)
            {
                _log.ErrorFormat("Errore nel caricamento delle persone - {0} - id:{1}", ex, Utility.GetMethodDescription(), item.ID);
                throw;
            }
        }
Example #27
0
        public TipoAperturaDocumentoEnum GetAperturaDocumentoMessaggistica(int idAzienda)
        {
            try
            {
                var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda);
                var impostazioni = daoFactory.GetImpostazioniAziendaDao().GetByAzienda(idAzienda);
                if (impostazioni == null)
                {
                    impostazioni = new ImpostazioniAzienda(daoFactory.GetAziendaDao().GetById(idAzienda, false)) { AperturaDocumentoMessaggistica = TipoAperturaDocumentoEnum.DefaultViewer };
                    daoFactory.GetImpostazioniAziendaDao().SaveOrUpdate(impostazioni);
                }

                return impostazioni.AperturaDocumentoMessaggistica != TipoAperturaDocumentoEnum.Undefined ? impostazioni.AperturaDocumentoMessaggistica : TipoAperturaDocumentoEnum.DefaultViewer;
            }
            catch (Exception ex)
            {
                _log.ErrorFormat("Errore nella lettura del tipo di apertura del documento messaggistica - {0} - azienda:{1}", ex, Utility.GetMethodDescription(), idAzienda);
                throw;
            }
        }
Example #28
0
        public SpesaInfoDTO Salva(SpesaDTO spesaDto, IDictionary<DettaglioSpesaDTO, RipartizioneSpeseDTO> listaRipartizione, bool isMultiIva)
        {
            try
            {
                var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda);
                var movimentoContabileService = _windsorRepository.GetContainer(_info.Azienda).Resolve<IMovimentiContabiliService>();
                var ripartizioneSpeseService = _windsorRepository.GetContainer(_info.Azienda).Resolve<IRipartizioneSpeseService>();
                var protocolloService = _windsorRepository.GetContainer(_info.Azienda).Resolve<IProtocolloService>();
                var ripartizioneSpesa = new RipartizioneSpeseRepository(_info, _windsorRepository);

                // ------------------------------------------------------------
                // Verifico se il fornitore è presente
                // ------------------------------------------------------------
                var fornitore = daoFactory.GetFornitoreDao().Find(spesaDto.IdFornitore.GetValueOrDefault(), false);
                if (fornitore == null)
                {
                    return new SpesaInfoDTO { Id = 0, IdentificativoArchiviazione = null, NumeroProtocollo = 0, StampaEtichettaArchiviazione = false, Message = "Il fornitore non è più presente in archivio." };
                }

                // ------------------------------------------------------------
                // Prima di ogni modifica recupero i movimenti secondari
                // ------------------------------------------------------------
                IList<MovimentoContabile> movimentiSecondari = null;
                if (spesaDto.ID > 0)
                {
                    var spesa = daoFactory.GetSpesaDao().Find(spesaDto.ID, false);
                    if(spesa != null)
                        movimentiSecondari = ripartizioneSpeseService.GetMovimentiSecondari(spesa);
                }

                // ------------------------------------------------------------
                // Creo la ripartizione per ogni movimento
                // ------------------------------------------------------------
                foreach (var dettaglioDto in spesaDto.Dettagli)
                {
                    RipartizioneSpeseDTO ripartizione = null;
                    var dettaglio = ripartizioneSpesa.GetDettaglioDto(listaRipartizione, dettaglioDto.NumeroRiga.GetValueOrDefault());
                    if (dettaglio != null)
                    {
                        if (listaRipartizione.ContainsKey(dettaglio))
                            ripartizione = listaRipartizione[dettaglio];
                    }
                    if (ripartizione == null || ripartizione.UnitaImmobiliari == null)
                    {
                        var oldRipartizione = ripartizione;
                        ripartizione = new RipartizioneSpeseDTO();
                        if(oldRipartizione != null)
                        {
                            ripartizione.Descrizione = oldRipartizione.Descrizione;
                            ripartizione.DescrizioneVoceSpesa = oldRipartizione.DescrizioneVoceSpesa;
                            ripartizione.NomeModello = oldRipartizione.NomeModello;
                        }
                    }
                    foreach (var movimentoDto in dettaglioDto.Movimenti)
                    {
                        if (movimentoDto.ID > 0)
                        {
                            var movimento = daoFactory.GetMovimentoContabileDao().Find(movimentoDto.ID, false);
                            if (movimento?.MovimentoStorno != null)
                            {
                                try
                                {
                                    movimentoDto.IdMovimentoStorno = movimento.MovimentoStorno.ID;
                                }
                                catch (Exception ex)
                                {
                                    _log.ErrorFormat("Errore nella lettura dell'id del movimento di storno - {0} - spesa:{1} - movimento:{2}", ex, Utility.GetMethodDescription(), spesaDto.ID, movimento.ID);
                                }
                                finally
                                {
                                    movimento.MovimentoStorno = null;
                                }
                            }
                        }

                        movimentoDto.ID = 0;
                        if(dettaglioDto.IdModelloRipartizione == null)
                            ripartizioneSpesa.GetRipartizioneByMovimento(movimentoDto, spesaDto.IdEsercizio.GetValueOrDefault(), ripartizione);
                    }

                }

                // --------------------------------
                // Aggiungo le ripartizioni tra le diverse unità immobiliari
                // --------------------------------
                ripartizioneSpesa.AddMovimentiRipartizione(listaRipartizione, spesaDto);

                // --------------------------------
                // Salvataggio della spesa
                // --------------------------------
                if(spesaDto.StatoSpesa == StatoSpesaEnum.Undefined)
                    spesaDto.StatoSpesa = StatoSpesaEnum.Inserita;
                
                var resultSpesa = ManageDomainEntity(spesaDto, isMultiIva);
                if (resultSpesa.Spesa != null)
                {
                    var spesa = resultSpesa.Spesa;

                    // ripartizione di default
                    // TODO: Dato che la ripartizione ora viene ricalcolata quando serve (stampa riparto bilancio ecc....) 
                    // probabilmente NON è più necessaria la chiamata a questo metodo
                    //ripartizioneSpesa.AddDefaultRipartizione(listaRipartizione, spesa);

                    // --------------------------------
                    // Movimenti contabili secondari
                    // --------------------------------
                    // Eliminazione della vecchia testata
                    if (spesaDto.IdTestata > 0)
                    {
                        var testata = daoFactory.GetTestataMovimentoContabileDao().Find(spesaDto.IdTestata, false);

                        // bugid#4168
                        if(testata != null)
                            deleteTestata(testata, daoFactory);
                    }

                    // Creazione dei nuovi movimenti contabili
                    movimentoContabileService.SetMovimentiInserimentoSpesa(spesa, null, spesaDto.DataRegistrazione);

                    // --------------------------------
                    // Modello registrazione contabile
                    // --------------------------------
                    if (listaRipartizione.Count > 0)
                    {
                        foreach (var dettaglio in spesa.Dettagli)
                        {
                            var kvpRipartizione = getDettaglioDto(listaRipartizione, dettaglio.NumeroRiga.GetValueOrDefault());
                            if (kvpRipartizione != null)
                            {
                                var listaMovimenti = new List<MovimentoContabileDTO>(kvpRipartizione.GetValueOrDefault().Key.Movimenti.Length);
                                listaMovimenti.AddRange(kvpRipartizione.GetValueOrDefault().Key.Movimenti);

                                var modello = ripartizioneSpesa.SalvaModelloRipartizioneContabile(kvpRipartizione.GetValueOrDefault().Value, dettaglio, listaMovimenti, dettaglio.ImportoLordo.GetValueOrDefault());
                                if (modello != null)
                                {
                                    if (kvpRipartizione.GetValueOrDefault().Value.AssociatoFornitore)
                                    {
                                        var modelloContabileFornitore = new ModelloContabileFornitore(spesa.FornitoreRiferimento, modello, null);
                                        daoFactory.GetModelloContabileFornitoreDao().SaveOrUpdate(modelloContabileFornitore);
                                    }

                                    dettaglio.ModelloRipartizione = modello;
                                }
                            }
                        }
                    }

                    // ----------------------------------------------------------------------------------------------------------------------------------------------------------------
                    // Aggiorno eventuali movimenti secondari collegati.
                    // ----------------------------------------------------------------------------------------------------------------------------------------------------------------
                    if (movimentiSecondari != null)
                        ripartizioneSpeseService.UpdateMovimentiSecondari(spesa, movimentiSecondari);
                    // ----------------------------------------------------------------------------------------------------------------------------------------------------------------

                    // ----------------------------------------------------------------------------------------------------------------------------------------------------------------
                    // Aggiorno i documenti
                    // ----------------------------------------------------------------------------------------------------------------------------------------------------------------
                    if (spesaDto.IdDocumenti.Count > 0)
                    {
                        foreach (var idDoc in spesaDto.IdDocumenti)
                        {
                            var documento = daoFactory.GetDocumentoDao().Find(idDoc, false);
                            if(documento != null)
                                documento.SpesaRiferimento = spesa;
                        }
                    }

                    // ======================================================================================
                    //  Registro gli eventuali pagamenti immediati
                    // ======================================================================================
                    var pagamentoService = _windsorRepository.GetContainer(_info.Azienda).Resolve<IPagamentoService>();
                    pagamentoService.CreatePagamentiImmediati(spesa.ID, spesaDto.Scadenze, null);

                    // ======================================================================================
                    //  Recupero il numero di protocollo e l'identificativo di archiviazione
                    // ======================================================================================
                    if (spesa.NumeroProtocollo == null)
                    {
                        var progressivo = protocolloService.GetProgressivo(TipoProtocollo.Fattura, spesa.EsercizioRiferimento.DataApertura.GetValueOrDefault().Year, spesa.EsercizioRiferimento.CondominioRiferimento);
                        if (progressivo.Progressivo != null)
                        {
                            spesa.NumeroProtocollo = progressivo.Progressivo;
                            spesa.AnnoArchiviazioneOttica = spesa.EsercizioRiferimento.DataApertura.GetValueOrDefault().Year;
                        }
                        else
                            return new SpesaInfoDTO { Id = 0, IdentificativoArchiviazione = null, NumeroProtocollo = 0, StampaEtichettaArchiviazione = false, Message = progressivo.Message };
                    }

                    var identificativoArchiviazione = getArchiviazioneOtticaService().GetIdentificativoArchiviazione(spesa);

                    var impostazioni = daoFactory.GetImpostazioniAziendaDao().GetByAzienda(spesa.EsercizioRiferimento.CondominioRiferimento.Azienda.ID);
                    if (impostazioni == null)
                    {
                        impostazioni = new ImpostazioniAzienda(daoFactory.GetAziendaDao().GetById(spesa.EsercizioRiferimento.CondominioRiferimento.Azienda.ID, false));
                        daoFactory.GetImpostazioniAziendaDao().SaveOrUpdate(impostazioni);
                    }

                    var stampaEtichetta = impostazioni.UtilizzoEtichettatriceArchiviazioneOtticaFatture && spesa.IsAbilitataArchiviazioneOttica && spesaDto.ID == 0;
                    var etichettatrice = impostazioni.EtichettatriceArchiviazioneOttica;
                    var tipoEtichetta = impostazioni.TipoEtichettaArchiviazioneOttica;
                    var trayEtichettatriceAttivazioneOttica = impostazioni.TrayEtichettatriceAttivazioneOttica;

                    // ======================================================================================
                    //  Aggiorno eventuali movimenti per interessi e sanzioni pagati in ritardo
                    // ======================================================================================
                    movimentoContabileService.SetMovimentiInteressiSanzioni(spesa);

                    return new SpesaInfoDTO { Id = spesa.ID, NumeroProtocollo = spesa.NumeroProtocollo.GetValueOrDefault(), IdentificativoArchiviazione = identificativoArchiviazione, StampaEtichettaArchiviazione = stampaEtichetta, EtichettatriceArchiviazione = etichettatrice, TipoEtichettaArchiviazione = tipoEtichetta, TrayEtichettatriceAttivazioneOttica = trayEtichettatriceAttivazioneOttica };
                }

                return new SpesaInfoDTO { Id = 0, NumeroProtocollo = 0, IdentificativoArchiviazione = null, StampaEtichettaArchiviazione = false, EtichettatriceArchiviazione = string.Empty, TipoEtichettaArchiviazione = "Testo", Message = resultSpesa.Message };
            }
            catch (Exception ex)
            {
                _log.ErrorFormat("Errore nel salvataggio della spesa - {0} - numeroDocumento:{1} - dataDocumento:{2} - dataRegistrazione:{3}", ex, Utility.GetMethodDescription(), spesaDto.NumeroDocumento, spesaDto.DataDocumento, spesaDto.DataRegistrazione);
                throw;
            }
        }
Example #29
0
        // =======================================================================================================================
        //  Azienda Mittente --> Condominio
        //  Banca Assuntrice --> Banca del Condominio che deve ricevere i pagamenti e a cui devovo essere inviare le disposizioni
        //  Destinatario     --> Banca del Fornitore (beneficiario)
        // =======================================================================================================================
        public byte[] EmissioneMav(EmissioneRate testataEmissione, DatiBancariCondomini banca, string intestazioneAzienda)
        {
            _testata = testataEmissione;
            byte[] bytes = null; 
            StreamWriter sw = null;
            try
            {
                _impostazioniAzienda = _daoFactory.GetImpostazioniAziendaDao().GetByAzienda(testataEmissione.Esercizio.CondominioRiferimento.Azienda.ID) ?? new ImpostazioniAzienda(testataEmissione.Esercizio.CondominioRiferimento.Azienda) { TipoIndirizzoComunicazioni = TipoIndirizzo.Residenza};
                if(_impostazioniAzienda == null)
                    _log.ErrorFormat("Non sono definite le impostazioni dell'azienda - {0} - azienda:{1}", Utility.GetMethodDescription(), testataEmissione.Esercizio.CondominioRiferimento.Azienda.ID);

                var fileName = Path.GetTempPath() + "\\" + Guid.NewGuid();
                if (ApplicationDeployment.IsNetworkDeployed)
                    fileName = ApplicationDeployment.CurrentDeployment.DataDirectory + "\\" + Guid.NewGuid();
                if (File.Exists(fileName))
                    File.Delete(fileName);

                // =============================================================================================
                // Creo il file
                // =============================================================================================
                using (sw = File.CreateText(fileName))
                {
                    // Creo le riga di testa
                    writeTestataIM(testataEmissione.Esercizio, banca, sw);

                    decimal importoTotale = 0;
                    var numeroRighe = 1;

                    var numeroDisposizione = 0;
                    foreach (var rata in testataEmissione.Rate)
                    {
                        try
                        {
                            var rataPrincipale = rata.RateCollegate.FirstOrDefault(item => item.Soggetto.SoggettoPrincipale == null);
                            if (rataPrincipale == null)
                            {
                                rataPrincipale = rata.RateCollegate.FirstOrDefault();
                                _log.WarnFormat("Non trovata nessun rata principale - {0} - rata:{1}", Utility.GetMethodDescription(), rata.ID);                    
                            }

                            importoTotale += rata.RateCollegate.Sum(rt => rt.Importo);
                            numeroDisposizione++;

                            numeroRighe++;
                            writeMovimento14(rata, banca, sw, numeroDisposizione);
                            numeroRighe++;
                            writeMovimento16(rataPrincipale, banca, sw, numeroDisposizione);
                            numeroRighe++;
                            writeMovimento20(rataPrincipale, sw, numeroDisposizione, intestazioneAzienda);
                            numeroRighe++;
                            writeMovimento30(rataPrincipale, sw, numeroDisposizione);
                            numeroRighe++;
                            writeMovimento40(rataPrincipale, sw, numeroDisposizione);
                            numeroRighe++;
                            writeMovimento50(rataPrincipale, testataEmissione, sw, numeroDisposizione);
                            numeroRighe++;
                            writeMovimento51(rata, sw, numeroDisposizione);
                            numeroRighe++;
                            writeMovimento70(sw, numeroDisposizione);
                        }
                        catch (Exception ex)
                        {
                            _log.ErrorFormat("Errore inaspettato durante la elaborazione di una singola riga per la creazione del file CBI dei MAV - {0} - rata:{1}", ex, Utility.GetMethodDescription(), rata.ID);
                            throw;
                        }
                    }

                    numeroRighe++;
                    writeCodaEF(testataEmissione.Esercizio, banca, sw, numeroDisposizione, importoTotale, numeroRighe);
                }

                _notifier.Notify("Il file dei MAV è stato correttamente creato.");

                var infile = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.Read);
                bytes = new byte[infile.Length];
                infile.Read(bytes, 0, bytes.Length);

                testataEmissione.File = Conversione.ToString(bytes);

                return bytes;
            }
            catch (Exception ex)
            {
                _log.ErrorFormat("Errore inaspettato durante la creazione del file CBI dei MAV - {0}", ex, Utility.GetMethodDescription());
                _notifier.Notify("Si sono verificati problemi inaspettati durante la creazione del file CBI dei MAV." + Environment.NewLine + "Controllare il log per ulteriori dettagli.");
                return bytes;
            }
            finally
            {
                if (sw != null)
                {
                    sw.Close();
                    sw.Dispose();
                }
            }
        }