private void addebitoCompetenzeUCLoad(object sender, EventArgs e) { validationSummary1.Validators.Add(movimentiCustomValidator); _addebito = getCompetenzeService().GetById(_idAddebito); addebitoCompetenzaDTOBindingSource.DataSource = _addebito; if (listaMovimenti.DisplayLayout != null) { listaMovimenti.DisplayLayout.ValueLists.Clear(); var conti = getPianoContiService().GetAllByEsercizio(_addebito.IdEsercizio, false); listaMovimenti.DisplayLayout.ValueLists.Add(DataSourceHelper.GetValueList(conti, "ID", "Descrizione", "Conti")); listaMovimenti.DisplayLayout.Bands[0].Columns["IdConto"].ValueList = listaMovimenti.DisplayLayout.ValueLists["Conti"]; var soggetti = getSoggettoService().GetByEsercizioId(_addebito.IdEsercizio); listaMovimenti.DisplayLayout.ValueLists.Add(DataSourceHelper.GetValueList(soggetti, "ID", "DisplayNominativo", "Soggetti")); listaMovimenti.DisplayLayout.Bands[0].Columns["IdCondomino"].ValueList = listaMovimenti.DisplayLayout.ValueLists["Soggetti"]; DataGridHelper.AddSummary(listaMovimenti.DisplayLayout.Bands[0], "Importo", "c"); } causaleContabileDTOBindingSource.DataSource = getTabelleContabiliService().GetAllCausali(); if (ParentForm != null) ParentForm.Text = @"Addebito competenze"; }
public TestataMovimentoContabile SetMovimentiAddebitoCompetenze(AddebitoCompetenzaDTO addebito) { try { // se la testata è automatica non è possibile aggiornare gli importi nel dettaglio, se manuale è possibile l'aggiornamento. // per ora la testata viene inserita come manuale. TestataMovimentoContabile testata; var esercizio = _daoFactory.GetEsercizioDao().Find(addebito.IdEsercizio, false); var dataRegistrazione = addebito.DataRegistrazioneMovimentoContabile; // controllo data registrazione var messageData = IsAllowDataRegistrazione(new List<int> { esercizio.CondominioRiferimento.ID }, esercizio, dataRegistrazione); if (messageData.Count == 0) { testata = new TestataMovimentoContabile(esercizio, dataRegistrazione, TipoTestataMovimentoContabileEnum.Manuale, null) {Descrizione = addebito.Descrizione, IsAllowUpdate = true}; var causale = _daoFactory.GetCausaleContabileDao().Find(addebito.IdCausale, false) ?? _daoFactory.GetCausaleContabileDao().GetByCodice("IA"); var numeroRiga = 0; // Contropartita numeroRiga++; var contoContropartita = _daoFactory.GetContoDao().GetByCodice(esercizio.ID, esercizio.CondominioRiferimento.ID, "913"); new MovimentoContabile(testata, causale, numeroRiga, contoContropartita, addebito.Dettaglio.Sum(item => item.Importo), "A") {Descrizione = addebito.Descrizione}; foreach (var item in addebito.Dettaglio) { try { if (item.Importo != 0) { numeroRiga++; var conto = _daoFactory.GetContoDao().Find(item.IdConto, false); if (conto != null) { SottoConto sottoConto = null; if (item.IdSottoConto != null) sottoConto = _daoFactory.GetSottoContoDao().GetById(item.IdSottoConto.Value, false); var soggetto = _daoFactory.GetSoggettoCondominioDao().Find(item.IdCondomino.GetValueOrDefault(), false); if (soggetto != null) { var movimento = new MovimentoContabile(testata, causale, numeroRiga, conto, item.Importo, "D") { SottoContoRiferimento = sottoConto, Descrizione = item.DescrizioneMovimentoContabile, CondominoRiferimento = soggetto }; switch (soggetto.Tipo) { case TipoSoggetto.Proprietario: movimento.PercentualeProprieta = 1; break; case TipoSoggetto.Conduttore: movimento.PercentualeProprieta = 0; break; } movimento.IsRipartoPersonalizzato = true; new SpeseUnita(item.Importo, null, soggetto, movimento); var dettaglio = _daoFactory.GetDettaglioAddebitoCompetenzaDao().Find(item.ID, false); if (dettaglio != null) { dettaglio.MovimentoContabile = movimento; dettaglio.Soggetto = soggetto; } } } } } catch (Exception ex) { _log.Fatal( "Errore inaspettato nella creazione del movimento di addebito competenze per sollecito - SINGOLO SOGGETTO - " + Utility.GetMethodDescription() + " - id:" + item.ID + " - importo:" + item.Importo + " - soggetto:" + item.IdCondomino + " - conto:" + item.IdConto + " - sottoconto:" + item.IdSottoConto.GetValueOrDefault() + " - addebito:" + addebito.ID + " - IdEsercizio:" + addebito.IdEsercizio, ex); throw; } } var addebitoItem = _daoFactory.GetAddebitoCompetenzaDao().Find(addebito.ID, false); if (addebitoItem != null) addebitoItem.TestataMovimento = testata; _daoFactory.GetTestataMovimentoContabileDao().SaveOrUpdate(testata); } else { var ex = new InvalidDataException(string.Format("La data di registrazione {0} non è valida", dataRegistrazione)); _log.Fatal("Data di registrazione non valida - " + Utility.GetMethodDescription() + " - data:" + dataRegistrazione + " - addebito:" + addebito.ID + " - IdEsercizio:" + addebito.IdEsercizio, ex); throw ex; } return testata; } catch (Exception ex) { _log.Fatal("Errore inaspettato nella creazione del movimento di addebito competenze per sollecito - " + Utility.GetMethodDescription() + " - addebito:" + addebito.ID + " - IdEsercizio:" + addebito.IdEsercizio, ex); throw; } }
public string Update(AddebitoCompetenzaDTO addebito) { var result = GetServiceClient().UpdateAddebitoCompetenze(addebito, GetUserInfo()); CloseService(); return result; }
public AddebitoCompetenzaDTO GetById(int id) { try { AddebitoCompetenza addebito = _daoFactory.GetAddebitoCompetenzaDao().Find(id, false); var dto = new AddebitoCompetenzaDTO(); if (addebito != null) { dto = new AddebitoCompetenzaDTO { ID = addebito.ID, Descrizione = addebito.Descrizione, IdTestataMovimentoContabile = addebito.TestataMovimento.ID, DataRegistrazioneMovimentoContabile = addebito.TestataMovimento.DataRegistrazione.GetValueOrDefault(), IdEsercizio = addebito.Esercizio.ID, IdCondominio = addebito.Esercizio.CondominioRiferimento.ID, IdentificativoArchiviazioneOttica = _archiviazioneOtticaService.GetIdentificativoArchiviazione(addebito.TestataMovimento), NumeroProtocollo = addebito.TestataMovimento.NumeroProtocollo }; var singoloDettaglio = addebito.Dettaglio.FirstOrDefault(); if(singoloDettaglio != null) dto.IdCausale = singoloDettaglio.MovimentoContabile.Causale.ID; dto.Dettaglio = new List<DettaglioAddebitoCompetenzaDTO>(addebito.Dettaglio.Count); foreach (var dettaglio in addebito.Dettaglio) { try { var dettaglioDto = new DettaglioAddebitoCompetenzaDTO { ID = dettaglio.ID, Condominio = addebito.Esercizio.CondominioRiferimento.Descrizione, IdCondominio = addebito.Esercizio.CondominioRiferimento.ID, Esercizio = addebito.Esercizio.DisplayName, IdEsercizio = addebito.Esercizio.ID, Conto = dettaglio.MovimentoContabile.ContoRiferimento.Descrizione, IdConto = dettaglio.MovimentoContabile.ContoRiferimento.ID, IdMovimentoContabile = dettaglio.MovimentoContabile.ID, DescrizioneMovimentoContabile = dettaglio.MovimentoContabile.Descrizione, Importo = dettaglio.MovimentoContabile.Importo, Segno = dettaglio.MovimentoContabile.Segno, Note = dettaglio.MovimentoContabile.Testata.Note, NumeroRegistrazione = dettaglio.MovimentoContabile.NumeroRegistrazione }; if (dettaglio.MovimentoContabile.CondominoRiferimento != null) { dettaglioDto.IdCondomino = dettaglio.MovimentoContabile.CondominoRiferimento.ID; dettaglioDto.Nominativo = dettaglio.MovimentoContabile.CondominoRiferimento.DisplayName; } else { _log.Warn("NON trovato condomino per addebito competenze - " + Library.Utility.GetMethodDescription() + " - id:" + id + " - dettaglio:" + dettaglio.ID); } if (dettaglio.MovimentoContabile.SottoContoRiferimento != null) { dettaglioDto.IdSottoConto = dettaglio.MovimentoContabile.SottoContoRiferimento.ID; dettaglioDto.SottoConto = dettaglio.MovimentoContabile.SottoContoRiferimento.GetDescrizione(addebito.Esercizio, null, dettaglio.MovimentoContabile); } dto.Dettaglio.Add(dettaglioDto); } catch (Exception ex) { _log.Error("Errore inaspettato nella lettura dell'addebito delle competenze - SINGOLO DETTAGLIO - " + Library.Utility.GetMethodDescription() + " - id:" + id, ex); throw; } } } return dto; } catch (Exception ex) { _log.Fatal("Errore inaspettato nella lettura dell'addebito delle competenze - " + Library.Utility.GetMethodDescription() + " - id:" + id, ex); throw; } }
public string Update(AddebitoCompetenzaDTO addebitoDto) { try { var message = string.Empty; var addebito = _daoFactory.GetAddebitoCompetenzaDao().Find(addebitoDto.ID, false); if(addebito != null) { foreach (var dettaglioAddebitoCompetenza in addebito.Dettaglio) { if(!addebitoDto.Dettaglio.Any(item => item.ID == dettaglioAddebitoCompetenza.ID)) _daoFactory.GetDettaglioAddebitoCompetenzaDao().Delete(dettaglioAddebitoCompetenza); else { var dettaglioDto = addebitoDto.Dettaglio.FirstOrDefault(item => item.ID == dettaglioAddebitoCompetenza.ID); if(dettaglioDto != null && dettaglioDto.Importo.GetValueOrDefault() <= 0) _daoFactory.GetDettaglioAddebitoCompetenzaDao().Delete(dettaglioAddebitoCompetenza); } } addebito.Dettaglio.Clear(); var testata = addebito.TestataMovimento; var numeroProtocollo = testata.NumeroProtocollo; var annoArchiviazione = testata.AnnoArchiviazioneOttica; addebito.TestataMovimento = null; _daoFactory.GetTestataMovimentoContabileDao().Delete(testata); addebito.Descrizione = addebitoDto.Descrizione; addebito.Data = addebitoDto.DataRegistrazioneMovimentoContabile; foreach (var dettaglioDto in addebitoDto.Dettaglio) { try { var dettaglio = _daoFactory.GetDettaglioAddebitoCompetenzaDao().Find(dettaglioDto.ID, false); if (dettaglio != null) { dettaglio.Importo = dettaglioDto.Importo.GetValueOrDefault(); dettaglio.Addebito = addebito; addebito.Dettaglio.Add(dettaglio); } } catch (Exception ex) { _log.Fatal("Errore inaspettato durante l'aggiornamento degli addebiti per competenze - SINGOLO SOGGETTO - " + Library.Utility.GetMethodDescription() + " - id:" + dettaglioDto.ID + " - importo:" + dettaglioDto.Importo + " - soggetto:" + dettaglioDto.IdCondomino + " - conto:" + dettaglioDto.IdConto + " - sottoconto:" + dettaglioDto.IdSottoConto.GetValueOrDefault() + " - addebito:" + addebitoDto.ID, ex); throw; } } var testataNew = _movimentiContabiliService.SetMovimentiAddebitoCompetenze(addebitoDto); testataNew.NumeroProtocollo = numeroProtocollo; testataNew.AnnoArchiviazioneOttica = annoArchiviazione; } return message; } catch (Exception ex) { _log.Fatal("Errore inaspettato durante l'aggiornamento degli addebiti per competenze - " + Library.Utility.GetMethodDescription() + " - addebito:" + addebitoDto.ID, ex); throw; } }
public string UpdateAddebitoCompetenze(AddebitoCompetenzaDTO addebito, UserInfo userinfo) { var retryCount = 10; var success = false; var windsorRep = new WindsorConfigRepository(); string item = null; while (retryCount >= 0 && !success) { try { windsorRep.BeginTransaction(userinfo); var service = windsorRep.GetContainer(userinfo.Azienda).Resolve<ICompetenzeService>(); item = service.Update(addebito); windsorRep.Commit(); success = true; } catch (Exception ex) { _log.Error("Errore durante l'aggiornamento dell'addebito delle competenze - TENTATIVO:" + (11 - retryCount) + " - " + Utility.GetMethodDescription() + " - id:" + addebito.ID + " - azienda:" + userinfo.Azienda + " - number:" + getExceptionId(ex), ex); windsorRep.Rollback(); if (!isRetryException(ex)) throw; // Add delay here if you wish. System.Threading.Thread.Sleep(1000 * (11 - retryCount)); retryCount--; _log.Info("Aggiornamento dell'addebito delle competenze - INIZIO TENTATIVO:" + (11 - retryCount) + " - " + Utility.GetMethodDescription() + " - id:" + addebito.ID + " - azienda:" + userinfo.Azienda); } } if (!success) windsorRep.Rollback(); return item; }