/// <summary> /// Crea uno Stabile valido /// </summary> public FunzioneApplicazioneContoPatrimoniale(FunzioneApplicazione funzione, PianoConti conto) { Funzione = funzione; Conto = conto; if (Funzione != null) Funzione.ContiPatrimoniali.Add(this); }
/// <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; }
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; } }
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; }