public SpesaInfoDTO AddebitoCompetenze(int idEsercizio, DateTime data, string descrizione, ContoDTO conto, SottoContoDTO sottoConto, IList<ImportiDTO> importi) { int? idSottoConto = null; if (sottoConto != null) idSottoConto = sottoConto.ID; var result = GetServiceClient().AddebitoCompetenze(idEsercizio, data, descrizione, conto.ID, idSottoConto, new List<ImportiDTO>(importi), GetUserInfo()); if (result.StampaEtichettaArchiviazione) { var workerStampaEtichetta = new BackgroundWorker(); workerStampaEtichetta.DoWork += workerStampaEtichettaDoWork; workerStampaEtichetta.RunWorkerAsync(new object[] { result.IdentificativoArchiviazione, result.TrayEtichettatriceAttivazioneOttica }); } CloseService(); return result; }
private SottoContoDTO convertSoggettoToSottoconto(SoggettoCondominioDTO soggetto) { var sottoConto = new SottoContoDTO { ID = soggetto.ID * -1, Descrizione = soggetto.DisplayName, Codice = string.Format("{0}.{1}", GetCodiceContoVersamentiCondomini(), soggetto.ID.ToString(CultureInfo.InvariantCulture).PadLeft(7, '0')) }; return sottoConto; }
private List<SottoContoDTO> convertFornitoriToSottoconti(ContoDTO conto) { var sottoConti = new List<SottoContoDTO>(); foreach (var fornitore in _fornitoreService.GetAll(true)) { var sottoConto = new SottoContoDTO { ID = fornitore.ID * -1, Descrizione = fornitore.DisplayName, DescrizioneCompleta = fornitore.DisplayName, Codice = conto.Codice + "." + fornitore.ID.ToString(CultureInfo.InvariantCulture).PadLeft(7, '0'), DescrizioneContoRiferimento = conto.Descrizione, IdContoRiferimento = conto.ID }; sottoConti.Add(sottoConto); } return sottoConti; }
public virtual void DeleteSottoConto(SottoContoDTO sottoconto, EsercizioDTO esercizio) { // ======================================================= // Elimino dalla cache i conti che sto per aggiornare // ======================================================= if (esercizio != null) { var cache = CacheFactory.GetCacheManager(); var contiCache = (Dictionary<int, List<ContoDTO>>) cache.GetData("PianoConti"); if (contiCache != null) { if (contiCache.ContainsKey(esercizio.ID)) contiCache.Remove(esercizio.ID); cache.Remove("PianoConti"); cache.Add("PianoConti", contiCache); } GetServiceClient().DeleteSottoConto(sottoconto.ID, GetUserInfo()); return; } _log.WarnFormat("Ripristina sottoconto con esericizo NULL - {0} - sottoconto:{1}", Utility.GetMethodDescription(), sottoconto != null ? sottoconto.ID.ToString(CultureInfo.InvariantCulture) : "<NULL>", Login.Instance.CurrentLogin().Azienda); }
public SottoContoDTO SaveSottoConto(SottoContoDTO sottoconto) { sottoconto.Stato = "U"; sottoconto.ID = GetServiceClient().SetSottoConto(sottoconto, GetUserInfo()).GetValueOrDefault(); sottoconto = GetServiceClient().GetSottoContoContabileById(sottoconto.ID, GetUserInfo()); CloseService(); return sottoconto; }
public int? ManageSottoContoDomainEntity(SottoContoDTO sottoconto) { try { return manageSottoconto(sottoconto).ID; } catch (Exception ex) { _log.ErrorFormat("Errore nella gestione dei sotto conti - {0} - id:{1} - azienda:{2}", ex, Utility.GetMethodDescription(), sottoconto?.ID.ToString(CultureInfo.InvariantCulture) ?? "<NULL>", _info.Azienda); throw; } }
public SottoContoDTO[] GetSottoContoAll() { try { var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda); IList<SottoConto> lista = daoFactory.GetSottoContoDao().GetAll(); var conti = new SottoContoDTO[lista.Count]; var index = 0; foreach (var conto in lista) { conti[index] = setSottoContoDto(conto, false); index++; } return conti; } catch (Exception ex) { _log.ErrorFormat("Errore nel caricamento delle sottoconti - {0}", ex, Utility.GetMethodDescription()); throw; } }
public override void DeleteSottoConto(SottoContoDTO sottoconto, EsercizioDTO esercizio) { // ======================================================= // Elimino dalla cache l'esercizio che sto per aggiornare // ======================================================= var contiCache = (Dictionary<int, List<ContoDTO>>)_cache.GetData("PianoConti"); if (contiCache.ContainsKey(esercizio.ID)) contiCache.Remove(esercizio.ID); _cache.Remove("PianoConti"); _cache.Add("PianoConti", contiCache); base.DeleteSottoConto(sottoconto, esercizio); }
private bool insertSottoconto(SottoContoDTO dto, out SottoConto item) { var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda); try { item = new SottoConto(daoFactory.GetContoDao().GetById(dto.IdContoRiferimento, false), dto.Descrizione) {Codice = dto.Codice, PercentualeProprieta = dto.PercentualeProprieta, AddebitoCompetenze = dto.AddebitoCompetenze, IsInteressiSanzioni = dto.IsInteressiSanzioni, DettaglioMovimentiContabili = dto.DettaglioMovimentiContabili, CustomField = true}; daoFactory.GetSottoContoDao().SaveOrUpdate(item); } catch (Exception ex) { _log.ErrorFormat("Errore nell'inserimento del Sotto Conto - {0} - id:{1}", ex, Utility.GetMethodDescription(), dto.ID); throw; } return true; }
private void updateSottoconto(SottoContoDTO dto, out SottoConto item) { item = null; var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda); try { item = daoFactory.GetSottoContoDao().GetById(dto.ID, false); // Condizione necessare per il controllo del fatto che sul DB ho una versione uguale o più vecchia if (dto.Version == item.Version) { item.Codice = dto.Codice; item.PercentualeProprieta = dto.PercentualeProprieta; item.ContoRiferimento = daoFactory.GetContoDao().GetById(dto.IdContoRiferimento, false); item.Descrizione = dto.Descrizione; item.Version = dto.Version; item.AddebitoCompetenze = dto.AddebitoCompetenze; item.IsInteressiSanzioni = dto.IsInteressiSanzioni; } else { // Eccezione: Sul db c'è qualche cosa di più nuovo. _log.ErrorFormat("Errore nel salvataggio dei sottoconti - id:{0} - il dato sul db è più recente di quello che si vuole salvare", dto.ID); } } catch (Exception ex) { _log.ErrorFormat("Errore nel salvataggio dei conti - {0} - id:{1}", ex, Utility.GetMethodDescription(), dto.ID); throw; } }
private SottoConto manageSottoconto(SottoContoDTO dto) { SottoConto item = null; // Controllo sullo stato U, I switch (dto.Stato.ToUpper()) { case "U": updateSottoconto(dto, out item); if (item == null) throw new Exception("Il dato sul database è più recente di quello utilizzato"); break; case "I": var result = insertSottoconto(dto, out item); if (!result) throw new Exception("Impossibile scrivere sul database"); break; } return item; }
private SottoContoDTO setPianoContiSottoContoDto(PianoContiSottoConto sottoConto) { var dto = new SottoContoDTO { IdContoRiferimento = sottoConto.ContoRiferimento.ID, DescrizioneContoRiferimento = sottoConto.ContoRiferimento.Descrizione, ID = sottoConto.ID, Descrizione = sottoConto.Descrizione, IsDeleteAllow = sottoConto.CustomField, Codice = sottoConto.Codice, DescrizioneCompleta = $"{sottoConto.Codice} - {sottoConto.Descrizione}", DisplayName = $"{sottoConto.Codice} - {sottoConto.Descrizione}", Version = sottoConto.Version }; return dto; }
private SottoContoDTO setSottoContoDto(SottoConto sottoConto, bool gestione) { var dto = new SottoContoDTO { IdContoRiferimento = sottoConto.ContoRiferimento.ID, DescrizioneContoRiferimento = sottoConto.ContoRiferimento.Descrizione, ID = sottoConto.ID, IsDeleteAllow = true, Codice = sottoConto.Codice, PercentualeProprieta = sottoConto.PercentualeProprieta, AddebitoCompetenze = sottoConto.AddebitoCompetenze, IsInteressiSanzioni = sottoConto.IsInteressiSanzioni, DettaglioMovimentiContabili = sottoConto.DettaglioMovimentiContabili, DisplayName = $"{sottoConto.ContoRiferimento.Codice} - {sottoConto.ContoRiferimento.Descrizione} - {sottoConto.GetDescrizione(null, sottoConto.ContoRiferimento.CondominioRiferimento, null)}", DescrizioneCompleta = $"{sottoConto.Codice} - {sottoConto.Descrizione}", Version = sottoConto.Version, Descrizione = gestione ? sottoConto.Descrizione : sottoConto.GetDescrizione(null, sottoConto.ContoRiferimento.CondominioRiferimento, null) }; return dto; }
private ContoDTO setContoDto(Conto conto, int? idEsercizio, bool gestione, IEnumerable<FornitoreListaDTO> fornitori, bool codiceContabile) { if (conto != null) { 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, IdCondominio = conto.CondominioRiferimento.ID, CustomField = conto.CustomField, Ripartizione = conto.Ripartizione, PresenteBilancio = conto.PresenteBilancio, IsSpesePersonali = conto.IsSpesePersonali, IsRipartoLetture = conto.IsRipartoLetture, TipoCompetenza = conto.TipoCompetenza, DataInizioCompetenza = conto.DataInizioCompetenza, DataFineCompetenza = conto.DataFineCompetenza, UtilizzabileRegistrazioneSpese = conto.UtilizzabileRegistrazioneSpese, UtilizzabileVersamentoCondomini = conto.UtilizzabileVersamentoCondomini, UtilizzabilePagamentoFornitori = conto.UtilizzabilePagamentoFornitori, IsTransitorio = conto.IsTransitorio, IsAccantonamentoFondi = conto.IsAccantonamentoFondi, IsMillesimiProprieta = conto.IsMillesimiProprieta, DettaglioMovimentiContabili = conto.DettaglioMovimentiContabili, IsLiquido = conto.IsLiquido, IsArrotondamento = conto.IsArrotondamento, TipoLiquidita = conto.TipoLiquidita.ToString(), Note = conto.Note }; if (string.IsNullOrEmpty(conto.Deleted) || conto.Deleted != "Y") dto.Deleted = false; else dto.Deleted = true; if (conto.ContatoreRiferimento != null) { try { dto.IdContatore = conto.ContatoreRiferimento.ID; } catch (Exception ex) { _log.WarnFormat("Errore nella lettura del contatore legato al conto - {0} - id:{1}", ex, Utility.GetMethodDescription(), dto.ID); dto.IdContatore = null; } } else dto.IdContatore = null; if (string.IsNullOrEmpty(dto.DescrizioneBilancio)) dto.DescrizioneBilancio = dto.Descrizione; if (conto.EsercizioRiferimento != null) { try { dto.IdEsercizio = conto.EsercizioRiferimento.ID; } catch (Exception ex) { _log.WarnFormat("Errore nella lettura dell'esercizio legato al conto - {0} - id:{1}", ex, Utility.GetMethodDescription(), dto.ID); dto.IdEsercizio = null; } } //-------------------------------------------------------- // Sottoconti //-------------------------------------------------------- var sottoConti = new List<SottoContoDTO>(conto.SottoConti.Count); sottoConti.AddRange(from sottoConto in conto.SottoConti.OrderBy(item => item.GetDescrizione(null, conto.CondominioRiferimento, null)) where string.IsNullOrEmpty(sottoConto.Deleted) select setSottoContoDto(sottoConto, gestione)); dto.SottoConti = sottoConti; var pianoContiService = _windsorRepository.GetContainer(_info.Azienda).Resolve<IPianoContiService>(); var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda); var dataApertura = DateTime.MinValue; if(idEsercizio > 0) { var esercizio = daoFactory.GetEsercizioDao().Find(idEsercizio.Value, false); if(esercizio != null) dataApertura = esercizio.DataApertura.GetValueOrDefault(); } // Aggiungo i conti correnti bancari come sottoconti del conto banca if (!gestione && conto.Codice == pianoContiService.GetCodiceContoBancario()) { foreach (var banca in conto.CondominioRiferimento.DatiBancari) { if (banca.DataValidita == null || banca.DataValidita > dataApertura) { string displayName; if (!codiceContabile) { displayName = $"{banca.Abi} - {banca.Cab} - c/c: {banca.ContoCorrente}"; if (banca.DataValidita != null) displayName += $" - fino al {banca.DataValidita.GetValueOrDefault():d}"; } else { displayName = $"B{banca.ID}"; } var sottoconto = new SottoContoDTO { ID = banca.ID*-1, Codice = !codiceContabile ? $"F{banca.ID}" : $"{conto.Codice}.{banca.ID.ToString(CultureInfo.InvariantCulture).PadLeft(7, '0')}", Descrizione = "c/c: " + banca.ContoCorrente, DescrizioneContoRiferimento = conto.Descrizione, IdContoRiferimento = conto.ID, DisplayName = displayName, IsNotValid = banca.DataValidita != null, FrequentlyAccessed = banca.Principale.GetValueOrDefault() }; sottoconto.DescrizioneCompleta = sottoconto.Descrizione; dto.SottoConti.Add(sottoconto); } } } // Aggiungo i fornitori come sottoconti del conto fornitori if (!gestione && conto.Codice == pianoContiService.GetCodiceContoFornitori() && fornitori != null) { foreach (var fornitore in fornitori) { var sottoconto = new SottoContoDTO { ID = fornitore.ID*-1, Codice = !codiceContabile ? $"F{fornitore.ID}" : $"{conto.Codice}.{fornitore.ID.ToString(CultureInfo.InvariantCulture).PadLeft(7, '0')}", Descrizione = fornitore.DisplayName, DescrizioneContoRiferimento = conto.Descrizione, IdContoRiferimento = conto.ID, DisplayName = !codiceContabile ? fornitore.DisplayName : $"F{fornitore.ID}" }; sottoconto.DescrizioneCompleta = sottoconto.Descrizione; dto.SottoConti.Add(sottoconto); } } dto.ID = conto.ID; dto.Version = conto.Version; return dto; } return null; }
public virtual void DeletePianoContiSottoConto(SottoContoDTO sottoconto) { GetServiceClient().DeletePianoContiSottoConto(sottoconto.ID, GetUserInfo()); }
public List<ContoDTO> GetContiPartitarioByCondominio(int idCondominio) { try { var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda); var fornitori = daoFactory.GetFornitoreDao().GetIdNominativoByCondominio(idCondominio); var condomini = daoFactory.GetSoggettoCondominioDao().GetIdNominativoByCondominio(idCondominio); // ====================================== // Elaboro lista Fornitori // ====================================== var listaFornitori = new List<FornitoreListaDTO>(fornitori.Count); foreach (var nameValueDTO in fornitori) { var nominativo = nameValueDTO.Name.Split('¥'); var fornitore = new FornitoreListaDTO {ID = nameValueDTO.Value}; var ragioneSociale = nominativo[2]; if (string.IsNullOrEmpty(ragioneSociale)) { fornitore.Nome = nominativo[0]; fornitore.Cognome = nominativo[1]; } else fornitore.Cognome = ragioneSociale; fornitore.DisplayName = fornitore.Nome; if (!string.IsNullOrEmpty(fornitore.Nome)) fornitore.DisplayName += " "; fornitore.DisplayName += fornitore.Cognome; if (!string.IsNullOrEmpty(fornitore.DisplayName)) fornitore.DisplayName = fornitore.DisplayName.Trim(); listaFornitori.Add(fornitore); } listaFornitori = listaFornitori.OrderBy(item => item.DisplayName).ToList(); // ====================================== // Elaboro lista Condomini // ====================================== var listaCondomini = new List<PersonaListaDTO>(condomini.Count); foreach (var nameValueDTO in condomini) { var nominativo = nameValueDTO.Name.Split('¥'); var persona = new PersonaListaDTO{ ID = nameValueDTO.Value}; var ragioneSociale = nominativo[2]; if (string.IsNullOrEmpty(ragioneSociale)) { persona.Nome = nominativo[0]; persona.Cognome = nominativo[1]; } else persona.Cognome = ragioneSociale; persona.DisplayName = persona.Nome; if (!string.IsNullOrEmpty(persona.Nome)) persona.DisplayName += " "; persona.DisplayName += persona.Cognome; if (!string.IsNullOrEmpty(persona.DisplayName)) persona.DisplayName = persona.DisplayName.Trim(); listaCondomini.Add(persona); } listaCondomini = listaCondomini.OrderBy(item => item.DisplayName).ToList(); // ====================================== // Recupero lista conti // ====================================== var conti = GetContiByCondominio(idCondominio, false, listaFornitori, true); // ====================================== // Aggiungo sottoconto condomini // ====================================== var pianoContiService = _windsorRepository.GetContainer(_info.Azienda).Resolve<IPianoContiService>(); foreach (var contoDTO in conti) { if (contoDTO.Codice == pianoContiService.GetCodiceContoVersamentiCondomini()) { foreach (var persona in listaCondomini) { var sottoconto = new SottoContoDTO { ID = persona.ID, Codice = $"{contoDTO.Codice}.{persona.ID.ToString(CultureInfo.InvariantCulture).PadLeft(7, '0')}", DisplayName = $"C{persona.ID}", Descrizione = persona.DisplayName }; sottoconto.DescrizioneCompleta = $"{sottoconto.Codice} - {sottoconto.Descrizione}"; contoDTO.SottoConti.Add(sottoconto); } } else if(contoDTO.SottoConti.Count > 0) { var sottoconto = new SottoContoDTO { Codice = $"{contoDTO.Codice}.000", Descrizione = contoDTO.Descrizione }; sottoconto.DescrizioneCompleta = $"{sottoconto.Codice} - {sottoconto.Descrizione}"; contoDTO.SottoConti.Insert(0, sottoconto); } } return conti; } catch (Exception ex) { _log.ErrorFormat("Errore nel caricamento dei conti per partitario - {0} - condominio:{1}", ex, Utility.GetMethodDescription(), idCondominio); throw; } }
public int? SetSottoConto(SottoContoDTO sottoconto, UserInfo userinfo) { var windsorRep = new WindsorConfigRepository(); try { windsorRep.BeginTransaction(userinfo); var repo = new ContabilitaRepository(userinfo, windsorRep); int? item = repo.ManageSottoContoDomainEntity(sottoconto); windsorRep.Commit(); return item; } catch (Exception ex) { _log.ErrorFormat("Errore nel salvataggio del sotto conto contabile - {0} - id:{1} - azienda:{2}", ex, Utility.GetMethodDescription(), sottoconto.ID, userinfo.Azienda); windsorRep.Rollback(); throw; } }