/// <summary>
        /// Crea uno Stabile valido
        /// </summary>
        public FunzioneApplicazioneContoPatrimoniale(FunzioneApplicazione funzione, PianoConti conto)
        {
            Funzione = funzione;
            Conto = conto;

            if (Funzione != null)
                Funzione.ContiPatrimoniali.Add(this);
        }
Пример #2
0
 /// <summary>
 /// Crea un conto comune a tutti i piani dei conti condominiali
 /// </summary>
 public PianoContiSottoConto(string codice, string descrizione, PianoConti contoRiferimento)
 {
     Descrizione = descrizione;
     Codice = codice;
     ContoRiferimento = contoRiferimento;
 }
Пример #3
0
        public string UpdatePianoConti(IList<ContoListaDTO> conti)
        {
            try
            {
                var message = new StringBuilder();
                var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda);

                foreach (var contoDto in conti)
                {
                    try
                    {
                        PianoConti conto;
                        if (contoDto.ID > 0)
                        {
                            conto = daoFactory.GetPianoContiDao().GetById(contoDto.ID, false);
                            conto.Descrizione = contoDto.Descrizione;
                        }
                        else
                        {
                            conto = new PianoConti(contoDto.Codice, contoDto.Descrizione, contoDto.Tipo, false, contoDto.UtilizzabileRegistrazioneSpese, contoDto.UtilizzabileVersamentoCondomini, daoFactory.GetAziendaDao().GetById(_info.Azienda, false)) { CustomField = true };
                            daoFactory.GetPianoContiDao().SaveOrUpdate(conto);
                        }

                        conto.Codice = contoDto.Codice;
                        conto.Ordine = contoDto.Ordine;
                        conto.UtilizzabileRegistrazioneSpese = contoDto.UtilizzabileRegistrazioneSpese;
                        conto.UtilizzabileVersamentoCondomini = contoDto.UtilizzabileVersamentoCondomini;
                        conto.IsLiquido = contoDto.IsLiquido;
                        conto.IsArrotondamento = contoDto.IsArrotondamento;

                        if (!string.IsNullOrEmpty(contoDto.TipoLiquidita))
                        {
                            TipoLiquidita tipoLiquidita;
                            if (Enum.TryParse(contoDto.TipoLiquidita, true, out tipoLiquidita))
                                conto.TipoLiquidita = tipoLiquidita;
                        }

                        if (conto.Tipo == TipoContoEconomicoEnum.Undefined)
                            conto.Tipo = TipoContoEconomicoEnum.Economico;

                        if (conto.Tipo == TipoContoEconomicoEnum.Economico)
                        {
                            conto.PercentualeProprieta = contoDto.PercentualeProprieta;
                            conto.IsSpesePersonali = contoDto.IsSpesePersonali;
                            conto.IsRipartoLetture = contoDto.IsRipartoLetture;
                            conto.DescrizioneBilancio = contoDto.DescrizioneBilancio;
                            conto.Ripartizione = true;
                            conto.PresenteBilancio = true;
                        }

                        if(conto.Tipo == TipoContoEconomicoEnum.Patrimoniale)
                            conto.UtilizzabileVersamentoCondomini = contoDto.UtilizzabileVersamentoCondomini;

                        // =====================================================================
                        // Sotto Conti
                        // =====================================================================
                        const int index = 0;
                        foreach (var sottoContoDto in contoDto.SottoConti)
                        {
                            PianoContiSottoConto sottoConto;
                            if (sottoContoDto.ID > 0)
                            {
                                sottoConto = daoFactory.GetPianoContiSottoContoDao().GetById(sottoContoDto.ID, false);
                                sottoConto.Descrizione = sottoContoDto.Descrizione;
                            }
                            else
                            {
                                sottoConto = new PianoContiSottoConto(sottoContoDto.Codice, sottoContoDto.Descrizione, conto) {CustomField = true};
                                daoFactory.GetPianoContiSottoContoDao().SaveOrUpdate(sottoConto);
                            }

                            sottoConto.Codice = sottoContoDto.Codice;

                            // -------------------------------------
                            //  Aggiorno il codice dei sottoconti
                            // -------------------------------------
                            if (!string.IsNullOrEmpty(sottoConto.Codice))
                            {
                                if (sottoConto.Codice.Contains('.'))
                                    sottoConto.Codice = conto.Codice + sottoConto.Codice.Substring(sottoConto.Codice.IndexOf('.'));
                            }
                            else
                                sottoConto.Codice = conto.Codice + "." + index.ToString(CultureInfo.InvariantCulture).PadLeft(3, '0');
                        }
                    }

                    catch (Exception ex)
                    {
                        _log.ErrorFormat("Errore nell'update di uno specifico conto del piano dei conti - {0} - id:{1} - {2}", ex, Utility.GetMethodDescription(), contoDto.ID, contoDto.Descrizione);
                        throw;
                    }
                }

                return message.ToString();
            }
            catch (Exception ex)
            {
                _log.ErrorFormat("Errore nell'update del piano dei conti - {0}", ex, Utility.GetMethodDescription());
                throw;
            }
        }
Пример #4
0
        private ContoDTO setPianoContiDto(PianoConti conto)
        {
            var dto = new ContoDTO
            {
                Codice = conto.Codice,
                Ordine = conto.Ordine,
                Tipo = conto.Tipo,
                Descrizione = conto.Descrizione,
                DescrizioneBilancio = conto.DescrizioneBilancio,
                DescrizioneCompleta = conto.Codice + " - " + conto.Descrizione,
                PercentualeProprieta = conto.PercentualeProprieta,
                CustomField = conto.CustomField,
                Ripartizione = conto.Ripartizione,
                PresenteBilancio = conto.PresenteBilancio,
                IsSpesePersonali = conto.IsSpesePersonali,
                IsRipartoLetture = conto.IsRipartoLetture,
                IsLiquido = conto.IsLiquido,
                IsArrotondamento = conto.IsArrotondamento,
                TipoLiquidita = conto.TipoLiquidita.ToString(),
                UtilizzabileRegistrazioneSpese = conto.UtilizzabileRegistrazioneSpese,
                UtilizzabileVersamentoCondomini = conto.UtilizzabileVersamentoCondomini,
                UtilizzabilePagamentoFornitori = conto.UtilizzabilePagamentoFornitori,
                DettaglioMovimentiContabili = conto.DettaglioMovimentiContabili,
                IsDeleteAllow = conto.Azienda != null
            };

            if (string.IsNullOrEmpty(dto.DescrizioneBilancio))
                dto.DescrizioneBilancio = dto.Descrizione;
            //--------------------------------------------------------
            // Sottoconti
            //--------------------------------------------------------
            var sottoConti = new List<SottoContoDTO>(conto.SottoConti.Count);
            sottoConti.AddRange(conto.SottoConti.OrderBy(item => item.Descrizione).Select(setPianoContiSottoContoDto));
            dto.SottoConti = sottoConti;

            dto.ID = conto.ID;
            dto.Version = conto.Version;

            return dto;
        }