コード例 #1
0
        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";
        }
コード例 #2
0
        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;
            }
        }
コード例 #3
0
 public string Update(AddebitoCompetenzaDTO addebito)
 {
     var result = GetServiceClient().UpdateAddebitoCompetenze(addebito, GetUserInfo());
     CloseService();
     return result;
 }
コード例 #4
0
ファイル: CompetenzeService.cs プロジェクト: gipasoft/Sfera
        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;
            }
        }
コード例 #5
0
ファイル: CompetenzeService.cs プロジェクト: gipasoft/Sfera
        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;
            }
        }
コード例 #6
0
ファイル: SferaService.cs プロジェクト: gipasoft/Sfera
        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;
        }