public void Reload(CondominioDTO condominio, EsercizioDTO esercizio)
 {
     _registrazioneSpese.ClearAll();
     _registrazioneSpese.Reload(condominio, esercizio);
     _spesa = null;
     if(_spese != null)
         _spese.Clear();
     spesaDTOBindingSource.Clear();
 }
Ejemplo n.º 2
0
        public GestioneSpesa(SpesaDTO spesa, CondominioDTO condominio, EsercizioDTO esercizio, List<SpesaDTO> spese)
        {
            IsConfirmed = false;
            InitializeComponent();

            _spese = spese;
            _condominio = condominio;
            _esercizio = esercizio;
            LoadSpesa(spesa); 
        }
        public RegistrazioneSpeseAccorpateUI(SpesaDTO spesa, CondominioDTO condominio, EsercizioDTO esercizio, Gipasoft.Windows.Forms.Templates.UpdatableStandardForm formGestione, List<SpesaDTO> spese)
        {
            InitializeComponent();

            _spese = spese;
            _formGestione = formGestione;
            _condominio = condominio;
            _esercizio = esercizio;
            _spesa = spesa;
        }
Ejemplo n.º 4
0
        public SpesaDetrazioneDTO(SpesaDTO dto)
        {
            ID = dto.ID;
            DescrizioneCondominio = dto.DescrizioneCondominio;
            IdentificativoArchiviazioneOttica = dto.IdentificativoArchiviazioneOttica;
            TipoDocumento = dto.TipoDocumento;
            NumeroDocumento = dto.NumeroDocumento;
            DataDocumento = dto.DataDocumento;
            DataInizioCompetenza = dto.DataInizioCompetenza;
            DataFineCompetenza = dto.DataFineCompetenza;
            IsAbilitataArchiviazioneOttica = dto.IsAbilitataArchiviazioneOttica;
            IsPrestazioneQualita = dto.IsPrestazioneQualita;
            IsRipartoPersonalizzato = dto.IsRipartoPersonalizzato;
            ImportoLordo = dto.ImportoLordo;
            ImportoNettoAPagare = dto.ImportoNettoAPagare;
            ImportoPagato = dto.ImportoPagato;
            ImportoIva = dto.ImportoIva;
            Imponibile = dto.Imponibile;
            AliquotaCassaProfessionisti = dto.AliquotaCassaProfessionisti;
            CassaProfessionisti = dto.CassaProfessionisti;
            AliquotaRitenuta = dto.AliquotaRitenuta;
            IsRitenutaCalcoloImponibile = dto.IsRitenutaCalcoloImponibile;
            ImportoRitenuta = dto.ImportoRitenuta;
            AltreSpese = dto.AltreSpese;
            AltreSpeseEsenti = dto.AltreSpeseEsenti;
            SpeseEsentiRitenuta = dto.SpeseEsentiRitenuta;
            Detrazione = dto.Detrazione;
            IsMultiIva = dto.IsMultiIva;
            Contestata = dto.Contestata;
            Sinistro = dto.Sinistro;
            EsclusaRendiconto = dto.EsclusaRendiconto;
            Autorizzata = dto.Autorizzata;
            Note = dto.Note;
            IdFornitore = dto.IdFornitore;
            DisplayFornitore = dto.DisplayFornitore;
            IdEsercizio = dto.IdEsercizio;
            DescrizioneEsercizio = dto.DescrizioneEsercizio;
            StatoSpesa = dto.StatoSpesa;
            IdSpesaRiferimento = dto.IdSpesaRiferimento;
            DescrizioneSpesaRiferimento = dto.DescrizioneSpesaRiferimento;
            Utenza = dto.Utenza;
            DescrizioneBilancio = dto.DescrizioneBilancio;
            DescrizioneSottoconto = dto.DescrizioneSottoconto;
            Dettaglio = dto.Dettaglio;
            NominativoSpesaPersonale = dto.NominativoSpesaPersonale;
            ScaleAddebito = dto.ScaleAddebito;
            DataRegistrazione = dto.DataRegistrazione;
            IdTestata = dto.IdTestata;
            IdAddebitoCompetenze = dto.IdAddebitoCompetenze;
            IdDocumenti = dto.IdDocumenti;
            Dettagli = dto.Dettagli;
            Scadenze = dto.Scadenze;

            RipartizioneDetrazione = new List<RipartizioneSpesaDTO>();
        }
Ejemplo n.º 5
0
        public void LoadSpesa(SpesaDTO spesa)
        {
            BusinessClass = new[] { (BaseDTOOfint)spesa };
            _spesa = spesa;

            //ReadOnly = !_fatturaService.IsAllowUpdate(_spesa);
            ultraToolbarsManagerStandard.Tools["Cancella"].SharedProps.Enabled = !ReadOnly;

            _registrazioneSpese = new RegistrazioneSpeseFiscaleUC(spesa.ID, _condominio, _esercizio);
            ((RegistrazioneSpeseFiscaleUC)_registrazioneSpese).Confirm += registrazioneSpeseConfirm;

            MainStandardForm_Fill_Panel.Controls.Add(_registrazioneSpese);
            _registrazioneSpese.Dock = DockStyle.Fill;
        }
Ejemplo n.º 6
0
        public void LoadSpesa(SpesaDTO spesa)
        {
            _esercizio = getEsercizioService().GetById(spesa.IdEsercizio.GetValueOrDefault());
            _condominio = getCondominioCacheService().GetById(_esercizio.IdCondominio, true);

            ultraToolbarsManagerStandard.Tools["Cancella"].SharedProps.Enabled = !ReadOnly;

            if (spesa.IdSpesaRiferimento > 0)
            {
                _registrazioneSpese = new RegistrazioneSpeseAccorpateUI(spesa, _condominio, _esercizio, this, _spese);
                ((RegistrazioneSpeseAccorpateUI)_registrazioneSpese).Confirm += registrazioneSpeseConfirm;
            }
            else
            {
                _registrazioneSpese = new RegistrazioneSpeseUI(spesa, _condominio, _esercizio, this);
                ((RegistrazioneSpeseUI)_registrazioneSpese).SetLayout();
                if (((RegistrazioneSpeseUI)_registrazioneSpese).GetSpesa() != null)
                    ((RegistrazioneSpeseUI)_registrazioneSpese).Confirm += registrazioneSpeseConfirm;
                else
                {
                    Close();
                    CommonMessages.DisplayWarning("La fattura non è più presente");
                    Dispose();
                }

                spesa = ((RegistrazioneSpeseUI) _registrazioneSpese).GetSpesa();
                BusinessClass = new[] { (BaseDTOOfint)spesa };
                _spesa = spesa;
            }
            
            MainStandardForm_Fill_Panel.Controls.Add(_registrazioneSpese);
            _registrazioneSpese.Dock = DockStyle.Fill;
            base.EnableSaveLayout = false;

            if (!string.IsNullOrEmpty(spesa.IdentificativoArchiviazioneOttica))
            {
                var identificativo = spesa.IdentificativoArchiviazioneOttica.Split('-');
                Text = spesa.TipoDocumento + @" " + identificativo[3] + @"-" + identificativo[2];
            }
        }
Ejemplo n.º 7
0
 private void apriSpesa(SpesaDTO spesa)
 {
     try
     {
         if (spesa != null && spesa.ID > 0)
         {
             var esercizio = getEsercizioService().GetById(spesa.IdEsercizio.GetValueOrDefault());
             var condominio = getCondominioService().GetById(esercizio.IdCondominio, true);
             if (spesa.StatoSpesa == StatoSpesaEnum.PagataAltroAmministratore)
             {
                 var form = getDettaglioSpesaUIService().GetFormDettaglioFiscale(spesa.ID);
                 if (ParentForm != null) form.MdiParent = ParentForm.MdiParent;
                 form.Show();
             }
             else switch (spesa.TipoDocumento)
                 {
                     case "Bolletta":
                         {
                             var form = getDettaglioBollettaUIService().GetFormDettaglio(spesa.ID, condominio, esercizio);
                             if (ParentForm != null) form.MdiParent = ParentForm.MdiParent;
                             form.Show();
                         }
                         break;
                     case "Fatt.Quadr.":
                         {
                             var form = getBilancioAperturaUIService().GetFormDettaglio(condominio, esercizio);
                             if (ParentForm != null) form.MdiParent = ParentForm.MdiParent;
                             form.Show();
                         }
                         break;
                     default:
                         if (spesa.TipoDocumento == "Nota di accredito" && spesa.StatoSpesa == StatoSpesaEnum.Stornata)
                         {
                             var form = getDettaglioSpesaUIService().GetFormNotaAccredito(spesa.ID, condominio, esercizio);
                             if (ParentForm != null) form.MdiParent = ParentForm.MdiParent;
                             form.Show();
                         }
                         else
                         {
                             var form = getDettaglioSpesaUIService().GetFormDettaglio(spesa.ID);
                             if (!form.IsDisposed)
                             {
                                 if (ParentForm != null) form.MdiParent = ParentForm.MdiParent;
                                 form.Show();
                             }
                         }
                         break;
                 }
         }
     }
     catch (Exception ex)
     {
         _log.ErrorFormat("Errore inaspettato nell'apertura di una spesa - {0} - azienda:{1}", ex, Utility.GetMethodDescription(), Security.Login.Instance.CurrentLogin().Azienda);
         throw;
     }
 }
Ejemplo n.º 8
0
 public bool IsAllowCambioEsercizio(SpesaDTO spesa)
 {
     return true;
 }
Ejemplo n.º 9
0
 public AuthorizationMessages IsAllowDelete(SpesaDTO spesa)
 {
     var result = GetServiceClient().IsAllowDeleteSpesa(spesa.ID, GetUserInfo());
     CloseService();
     return result;
 }
Ejemplo n.º 10
0
        private void executeNew()
        {
            btnConferma.Enabled = false;
            btnPagamento.Visible = true;
            btnAnnullaPagamento.Visible = false;

            if (_esercizio != null)
            {
                _spesa = _fatturaService.GetNew(_spesaRiferimento, _condominio);
                _spesa.IdEsercizio = _esercizio.ID;
                bindScadenze();
            }

            if (!_speseAccorpate)
            {
                sceltaFornitore.Reset();
                clearDettaglioFields();
            }
            else
            {
                imponibileDettaglio.ValueObject = null;
                importoDettaglioIva.ValueObject = null;
                importoDettaglioSpesa.ValueObject = null;
                clearDescrizioneMovimenti();
            }

            scadenzaBindingSource.Clear();
            scadenze.PerformAction(UltraGridAction.FirstRowInBand);
        }
Ejemplo n.º 11
0
        public RegistrazioneSpeseUI(SpesaDTO spesa, CondominioDTO condominio, EsercizioDTO esercizio, UpdatableStandardForm formGestione)
        {
            try
            {
                Dirty = false;
                InitializeComponent();
                _isInserimento = false;

                inizializza();

                _formGestione = formGestione;
                _condominio = condominio;
                _esercizio = esercizio;
                _spesa = _fatturaService.GetSingleInstance(spesa);

                if (_spesa != null)
                {
                    var prop = new CustomControlProperties { AlwaysEnable = true };
                    btnDocumento.Tag = prop;

                    // Imposto layout pagamento
                    _pagamentoImmediato = false;
                    btnPagamento.Text = @"Pagamento";

                    if (_spesa.StatoSpesa != StatoSpesaEnum.Inserita)
                    {
                        btnPagamento.Visible = false;
                        if (_spesa.StatoSpesa == StatoSpesaEnum.Pagata || _spesa.StatoSpesa == StatoSpesaEnum.ParzialmentePagata)
                            btnAnnullaPagamento.Visible = true;
                    }

                    if (_spesa.IdSpesaRiferimento != null && _spesa.IdSpesaRiferimento > 0)
                    {
                        _speseAccorpate = true;
                        _spesaRiferimento = _fatturaService.GetById(_spesa.IdSpesaRiferimento.Value);
                    }

                    if (_spesa.Dettagli.Count > 1)
                    {
                        altreSpeseDettaglio.Visible = false;
                        altreSpeseEsenti.Visible = false;
                        speseEsentiRitenuta.Visible = false;
                        lblAltreSpeseDettaglio.Visible = false;
                        lblAltreSpese.Visible = false;
                        lblAltreSpeseEsenti.Visible = false;
                        getMovimentoContabileService().IsMultiSpesa = true;
                    }
                }

            }
            catch (Exception ex)
            {
                var idCondominio = "<NULL>";
                if (condominio != null)
                    idCondominio = condominio.ID.ToString();

                var idEsercizio = "<NULL>";
                if (esercizio != null)
                    idEsercizio = esercizio.ID.ToString();

                
                _log.Error("Errore nel costruttore - " + Utility.GetMethodDescription() + " - spesa:" + getIdSpesa().GetValueOrDefault() + " - condominio:" + idCondominio + " - esercizio:" + idEsercizio + " - azienda:" + Security.Login.Instance.CurrentLogin().Azienda, ex);

                throw;
            }

        }
Ejemplo n.º 12
0
 public bool IsAllowUpdate(SpesaDTO spesa, EsercizioDTO esercizio)
 {
     if (esercizio.StatoEsercizio == StatoEsercizioEnum.Aperto)
         return true;
     return false;
 }
Ejemplo n.º 13
0
        private DocumentoDTO setDocumento(SpesaDTO spesa, DocumentoDTO documento)
        {
            documento.IdSpesa = spesa.ID;
            documento.Tipo = "Fattura";
            documento.IdFornitore = spesa.IdFornitore;

            return documento;
        }
Ejemplo n.º 14
0
 public ResultSpesa ManageDomainEntity(SpesaDTO spesaDto, bool isMultiIva)
 {
     try
     {
         return manageSpesa(spesaDto, isMultiIva);
     }
     catch (Exception ex)
     {
         _log.ErrorFormat("Errore nella gestione delle Fatture/Spese - {0} - id:{1}", ex, Utility.GetMethodDescription(), spesaDto.ID);
         throw;
     }
 }
Ejemplo n.º 15
0
        public SpesaInfoDTO Salva(SpesaDTO spesaDto, IDictionary<DettaglioSpesaDTO, RipartizioneSpeseDTO> listaRipartizione, bool isMultiIva)
        {
            try
            {
                var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda);
                var movimentoContabileService = _windsorRepository.GetContainer(_info.Azienda).Resolve<IMovimentiContabiliService>();
                var ripartizioneSpeseService = _windsorRepository.GetContainer(_info.Azienda).Resolve<IRipartizioneSpeseService>();
                var protocolloService = _windsorRepository.GetContainer(_info.Azienda).Resolve<IProtocolloService>();
                var ripartizioneSpesa = new RipartizioneSpeseRepository(_info, _windsorRepository);

                // ------------------------------------------------------------
                // Verifico se il fornitore è presente
                // ------------------------------------------------------------
                var fornitore = daoFactory.GetFornitoreDao().Find(spesaDto.IdFornitore.GetValueOrDefault(), false);
                if (fornitore == null)
                {
                    return new SpesaInfoDTO { Id = 0, IdentificativoArchiviazione = null, NumeroProtocollo = 0, StampaEtichettaArchiviazione = false, Message = "Il fornitore non è più presente in archivio." };
                }

                // ------------------------------------------------------------
                // Prima di ogni modifica recupero i movimenti secondari
                // ------------------------------------------------------------
                IList<MovimentoContabile> movimentiSecondari = null;
                if (spesaDto.ID > 0)
                {
                    var spesa = daoFactory.GetSpesaDao().Find(spesaDto.ID, false);
                    if(spesa != null)
                        movimentiSecondari = ripartizioneSpeseService.GetMovimentiSecondari(spesa);
                }

                // ------------------------------------------------------------
                // Creo la ripartizione per ogni movimento
                // ------------------------------------------------------------
                foreach (var dettaglioDto in spesaDto.Dettagli)
                {
                    RipartizioneSpeseDTO ripartizione = null;
                    var dettaglio = ripartizioneSpesa.GetDettaglioDto(listaRipartizione, dettaglioDto.NumeroRiga.GetValueOrDefault());
                    if (dettaglio != null)
                    {
                        if (listaRipartizione.ContainsKey(dettaglio))
                            ripartizione = listaRipartizione[dettaglio];
                    }
                    if (ripartizione == null || ripartizione.UnitaImmobiliari == null)
                    {
                        var oldRipartizione = ripartizione;
                        ripartizione = new RipartizioneSpeseDTO();
                        if(oldRipartizione != null)
                        {
                            ripartizione.Descrizione = oldRipartizione.Descrizione;
                            ripartizione.DescrizioneVoceSpesa = oldRipartizione.DescrizioneVoceSpesa;
                            ripartizione.NomeModello = oldRipartizione.NomeModello;
                        }
                    }
                    foreach (var movimentoDto in dettaglioDto.Movimenti)
                    {
                        if (movimentoDto.ID > 0)
                        {
                            var movimento = daoFactory.GetMovimentoContabileDao().Find(movimentoDto.ID, false);
                            if (movimento?.MovimentoStorno != null)
                            {
                                try
                                {
                                    movimentoDto.IdMovimentoStorno = movimento.MovimentoStorno.ID;
                                }
                                catch (Exception ex)
                                {
                                    _log.ErrorFormat("Errore nella lettura dell'id del movimento di storno - {0} - spesa:{1} - movimento:{2}", ex, Utility.GetMethodDescription(), spesaDto.ID, movimento.ID);
                                }
                                finally
                                {
                                    movimento.MovimentoStorno = null;
                                }
                            }
                        }

                        movimentoDto.ID = 0;
                        if(dettaglioDto.IdModelloRipartizione == null)
                            ripartizioneSpesa.GetRipartizioneByMovimento(movimentoDto, spesaDto.IdEsercizio.GetValueOrDefault(), ripartizione);
                    }

                }

                // --------------------------------
                // Aggiungo le ripartizioni tra le diverse unità immobiliari
                // --------------------------------
                ripartizioneSpesa.AddMovimentiRipartizione(listaRipartizione, spesaDto);

                // --------------------------------
                // Salvataggio della spesa
                // --------------------------------
                if(spesaDto.StatoSpesa == StatoSpesaEnum.Undefined)
                    spesaDto.StatoSpesa = StatoSpesaEnum.Inserita;
                
                var resultSpesa = ManageDomainEntity(spesaDto, isMultiIva);
                if (resultSpesa.Spesa != null)
                {
                    var spesa = resultSpesa.Spesa;

                    // ripartizione di default
                    // TODO: Dato che la ripartizione ora viene ricalcolata quando serve (stampa riparto bilancio ecc....) 
                    // probabilmente NON è più necessaria la chiamata a questo metodo
                    //ripartizioneSpesa.AddDefaultRipartizione(listaRipartizione, spesa);

                    // --------------------------------
                    // Movimenti contabili secondari
                    // --------------------------------
                    // Eliminazione della vecchia testata
                    if (spesaDto.IdTestata > 0)
                    {
                        var testata = daoFactory.GetTestataMovimentoContabileDao().Find(spesaDto.IdTestata, false);

                        // bugid#4168
                        if(testata != null)
                            deleteTestata(testata, daoFactory);
                    }

                    // Creazione dei nuovi movimenti contabili
                    movimentoContabileService.SetMovimentiInserimentoSpesa(spesa, null, spesaDto.DataRegistrazione);

                    // --------------------------------
                    // Modello registrazione contabile
                    // --------------------------------
                    if (listaRipartizione.Count > 0)
                    {
                        foreach (var dettaglio in spesa.Dettagli)
                        {
                            var kvpRipartizione = getDettaglioDto(listaRipartizione, dettaglio.NumeroRiga.GetValueOrDefault());
                            if (kvpRipartizione != null)
                            {
                                var listaMovimenti = new List<MovimentoContabileDTO>(kvpRipartizione.GetValueOrDefault().Key.Movimenti.Length);
                                listaMovimenti.AddRange(kvpRipartizione.GetValueOrDefault().Key.Movimenti);

                                var modello = ripartizioneSpesa.SalvaModelloRipartizioneContabile(kvpRipartizione.GetValueOrDefault().Value, dettaglio, listaMovimenti, dettaglio.ImportoLordo.GetValueOrDefault());
                                if (modello != null)
                                {
                                    if (kvpRipartizione.GetValueOrDefault().Value.AssociatoFornitore)
                                    {
                                        var modelloContabileFornitore = new ModelloContabileFornitore(spesa.FornitoreRiferimento, modello, null);
                                        daoFactory.GetModelloContabileFornitoreDao().SaveOrUpdate(modelloContabileFornitore);
                                    }

                                    dettaglio.ModelloRipartizione = modello;
                                }
                            }
                        }
                    }

                    // ----------------------------------------------------------------------------------------------------------------------------------------------------------------
                    // Aggiorno eventuali movimenti secondari collegati.
                    // ----------------------------------------------------------------------------------------------------------------------------------------------------------------
                    if (movimentiSecondari != null)
                        ripartizioneSpeseService.UpdateMovimentiSecondari(spesa, movimentiSecondari);
                    // ----------------------------------------------------------------------------------------------------------------------------------------------------------------

                    // ----------------------------------------------------------------------------------------------------------------------------------------------------------------
                    // Aggiorno i documenti
                    // ----------------------------------------------------------------------------------------------------------------------------------------------------------------
                    if (spesaDto.IdDocumenti.Count > 0)
                    {
                        foreach (var idDoc in spesaDto.IdDocumenti)
                        {
                            var documento = daoFactory.GetDocumentoDao().Find(idDoc, false);
                            if(documento != null)
                                documento.SpesaRiferimento = spesa;
                        }
                    }

                    // ======================================================================================
                    //  Registro gli eventuali pagamenti immediati
                    // ======================================================================================
                    var pagamentoService = _windsorRepository.GetContainer(_info.Azienda).Resolve<IPagamentoService>();
                    pagamentoService.CreatePagamentiImmediati(spesa.ID, spesaDto.Scadenze, null);

                    // ======================================================================================
                    //  Recupero il numero di protocollo e l'identificativo di archiviazione
                    // ======================================================================================
                    if (spesa.NumeroProtocollo == null)
                    {
                        var progressivo = protocolloService.GetProgressivo(TipoProtocollo.Fattura, spesa.EsercizioRiferimento.DataApertura.GetValueOrDefault().Year, spesa.EsercizioRiferimento.CondominioRiferimento);
                        if (progressivo.Progressivo != null)
                        {
                            spesa.NumeroProtocollo = progressivo.Progressivo;
                            spesa.AnnoArchiviazioneOttica = spesa.EsercizioRiferimento.DataApertura.GetValueOrDefault().Year;
                        }
                        else
                            return new SpesaInfoDTO { Id = 0, IdentificativoArchiviazione = null, NumeroProtocollo = 0, StampaEtichettaArchiviazione = false, Message = progressivo.Message };
                    }

                    var identificativoArchiviazione = getArchiviazioneOtticaService().GetIdentificativoArchiviazione(spesa);

                    var impostazioni = daoFactory.GetImpostazioniAziendaDao().GetByAzienda(spesa.EsercizioRiferimento.CondominioRiferimento.Azienda.ID);
                    if (impostazioni == null)
                    {
                        impostazioni = new ImpostazioniAzienda(daoFactory.GetAziendaDao().GetById(spesa.EsercizioRiferimento.CondominioRiferimento.Azienda.ID, false));
                        daoFactory.GetImpostazioniAziendaDao().SaveOrUpdate(impostazioni);
                    }

                    var stampaEtichetta = impostazioni.UtilizzoEtichettatriceArchiviazioneOtticaFatture && spesa.IsAbilitataArchiviazioneOttica && spesaDto.ID == 0;
                    var etichettatrice = impostazioni.EtichettatriceArchiviazioneOttica;
                    var tipoEtichetta = impostazioni.TipoEtichettaArchiviazioneOttica;
                    var trayEtichettatriceAttivazioneOttica = impostazioni.TrayEtichettatriceAttivazioneOttica;

                    // ======================================================================================
                    //  Aggiorno eventuali movimenti per interessi e sanzioni pagati in ritardo
                    // ======================================================================================
                    movimentoContabileService.SetMovimentiInteressiSanzioni(spesa);

                    return new SpesaInfoDTO { Id = spesa.ID, NumeroProtocollo = spesa.NumeroProtocollo.GetValueOrDefault(), IdentificativoArchiviazione = identificativoArchiviazione, StampaEtichettaArchiviazione = stampaEtichetta, EtichettatriceArchiviazione = etichettatrice, TipoEtichettaArchiviazione = tipoEtichetta, TrayEtichettatriceAttivazioneOttica = trayEtichettatriceAttivazioneOttica };
                }

                return new SpesaInfoDTO { Id = 0, NumeroProtocollo = 0, IdentificativoArchiviazione = null, StampaEtichettaArchiviazione = false, EtichettatriceArchiviazione = string.Empty, TipoEtichettaArchiviazione = "Testo", Message = resultSpesa.Message };
            }
            catch (Exception ex)
            {
                _log.ErrorFormat("Errore nel salvataggio della spesa - {0} - numeroDocumento:{1} - dataDocumento:{2} - dataRegistrazione:{3}", ex, Utility.GetMethodDescription(), spesaDto.NumeroDocumento, spesaDto.DataDocumento, spesaDto.DataRegistrazione);
                throw;
            }
        }
Ejemplo n.º 16
0
        private string update(SpesaDTO dto, bool isMultiIva, out Spesa item)
        {
            var result = string.Empty;
            item = null;
            var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda);

            try
            {
                item = daoFactory.GetSpesaDao().Find(dto.ID, false);
                if(item != null)
                {
                    // Condizione necessaria per il controllo del fatto che sul DB ho una versione uguale o più vecchia
                    if (dto.Version == item.Version)
                    {
                        item.AliquotaRitenuta = dto.AliquotaRitenuta;
                        item.IsRitenutaCalcoloImponibile = dto.IsRitenutaCalcoloImponibile;
                        item.AltreSpese = dto.AltreSpese;
                        item.AltreSpeseEsenti = dto.AltreSpeseEsenti;
                        item.SpeseEsentiRitenuta = dto.SpeseEsentiRitenuta;
                        item.AliquotaCassaProfessionisti = dto.AliquotaCassaProfessionisti;
                        item.CassaProfessionisti = dto.CassaProfessionisti;
                        item.DataDocumento = dto.DataDocumento;
                        item.DataInizioCompetenza = dto.DataInizioCompetenza;
                        item.DataFineCompetenza = dto.DataFineCompetenza;
                        item.Detrazione = dto.Detrazione;
                        item.ImportoRitenuta = dto.ImportoRitenuta;
                        item.Note = dto.Note;
                        item.NumeroDocumento = dto.NumeroDocumento;
                        item.IsAbilitataArchiviazioneOttica = dto.IsAbilitataArchiviazioneOttica;
                        item.IsPrestazioneQualita = dto.IsPrestazioneQualita;
                        item.Stato = dto.StatoSpesa;
                        item.TipoDocumento = dto.TipoDocumento;
                        item.IsMultiIva = dto.IsMultiIva;
                        item.Contestata = dto.Contestata;
                        item.EsclusaRendiconto = dto.EsclusaRendiconto;
                        item.IsRipartoPersonalizzato = dto.IsRipartoPersonalizzato;
                        item.Autorizzata = dto.Autorizzata;
                        item.EsenteRegimeMinimo = dto.EsenteRegimeMinimo;

                        if (dto.Sinistro)
                            item.Sinistro = 1;

                        item.EsercizioRiferimento = daoFactory.GetEsercizioDao().GetById(dto.IdEsercizio.GetValueOrDefault(), false);
                        item.FornitoreRiferimento = daoFactory.GetFornitoreDao().GetById(dto.IdFornitore.GetValueOrDefault(), false);

                        // ------------------------------------------
                        // Dettagli
                        // ------------------------------------------
                        item.Dettagli.Clear();
                        DettaglioSpesa dettaglioMultiIva = null;
                        for (var i = 0; i < dto.Dettagli.Length; i++)
                        {
                            dto.Dettagli[i].IdSpesaRiferimento = item.ID;
                            if (dto.IdSpesaRiferimento != null && dto.IdSpesaRiferimento > 0)
                            {
                                var spesaRiferimento = daoFactory.GetSpesaDao().GetById(dto.IdSpesaRiferimento.Value, false);
                                dettaglioMultiIva = IesiGenericCollections<DettaglioSpesa>.GetByIndex(spesaRiferimento.Dettagli, i);
                            }

                            int? id = dto.Dettagli[i].ID;
                            if ((dto.Dettagli[i].Stato == "U") || (dto.Dettagli[i].Stato == "I"))
                            {
                                var resultDettaglio = ManageDettaglioDomainEntity(dto.Dettagli[i], dettaglioMultiIva);
                                if (resultDettaglio.Dettaglio != null)
                                    id = resultDettaglio.Dettaglio.ID;
                                else
                                    return resultDettaglio.Message;
                            }

                            var dett = daoFactory.GetDettaglioSpesaDao().GetById(id.Value, false);
                            item.Dettagli.Add(dett);
                            dett.SpesaRiferimento = item;

                            if (i == 0 && isMultiIva)
                                dettaglioMultiIva = dett;
                        }

                        // ------------------------------------------
                        // Scadenze
                        // ------------------------------------------
                        item.Scadenze.Clear();
                        foreach (var t in dto.Scadenze)
                        {
                            t.IdSpesa = item.ID;

                            int? id = t.ID;
                            if ((t.Stato == "U") || (t.Stato == "I"))
                                id = getScadenzaRepository().ManageDomainEntity(t);

                            var scad = daoFactory.GetScadenzaFatturaDao().GetById(id.GetValueOrDefault(), false);
                            item.Scadenze.Add(scad);
                            scad.SpesaRiferimento = item;
                        }
                    }
                    else
                    {
                        // Eccezione: Sul db c'è qualche cosa di più nuovo.
                        _log.ErrorFormat("Errore nel salvataggio dei dettagli delle Fatture/Spese id:{0} - il dato sul db è più recente di quello che si vuole salvare", dto.ID);
                        result = "Errore nel salvataggio dei dettagli delle Fatture/Spese id:" + dto.ID + " - il dato sul db è più recente di quello che si vuole salvare";
                    }
                }

            }
            catch (Exception ex)
            {
                _log.ErrorFormat("Errore nel salvataggio della gestione dei dettagli delle Fatture/Spese - {0} - id:{1}", ex, Utility.GetMethodDescription(), dto.ID);
                throw;
            }

            return result;
        }
Ejemplo n.º 17
0
        private ResultSpesa manageSpesa(SpesaDTO spesaDto, bool isMultiIva)
        {
            Spesa spesa = null;
            var message = string.Empty;

            // Controllo sullo stato U, D, I
            switch (spesaDto.Stato.ToUpper())
            {
                case "U":
                    message = update(spesaDto, isMultiIva, out spesa);
                    break;
                case "I":
                    message = insert(spesaDto, isMultiIva, out spesa);
                    break;
            }

            if (!string.IsNullOrEmpty(message))
                spesa = null;

            return new ResultSpesa(spesa, message);
        }
Ejemplo n.º 18
0
        public SpesaDTO GetNew(SpesaDTO spesaOriginale, CondominioDTO condominio)
        {
            try
            {
                var aziendaDTO = _aziendaService.GetAzienda();
                var spesa = new SpesaDTO
                {
                    Autorizzata = !aziendaDTO.AutorizzazioneScadenze,
                    IsAbilitataArchiviazioneOttica = _condominioService.GetById(condominio.ID, true).IsAbilitataArchiviazioneOtticaPassivi,
                    Dettagli = new List<DettaglioSpesaDTO>()
                };

                if (spesaOriginale != null)
                {
                    spesa.AliquotaRitenuta = spesaOriginale.AliquotaRitenuta;
                    spesa.Detrazione = spesaOriginale.Detrazione;
                    spesa.DisplayFornitore = spesaOriginale.DisplayFornitore;
                    spesa.DisplayName = spesaOriginale.DisplayName;
                    spesa.IdEsercizio = spesaOriginale.IdEsercizio;
                    spesa.IdFornitore = spesaOriginale.IdFornitore;
                    spesa.TipoDocumento = spesaOriginale.TipoDocumento;
                    spesa.Contestata = spesaOriginale.Contestata;
                    spesa.Sinistro = spesaOriginale.Sinistro;

                    foreach (var dettaglio in spesaOriginale.Dettagli)
                    {
                        var dettaglioNew = new DettaglioSpesaDTO
                        {
                            AliquotaIva = dettaglio.AliquotaIva,
                            Descrizione = dettaglio.Descrizione,
                            DisplayName = dettaglio.DisplayName,
                            ID = 0,
                            IdModelloRipartizione = dettaglio.IdModelloRipartizione,
                            Note = dettaglio.Note,
                            NumeroRiga = dettaglio.NumeroRiga,
                            SoggettoRitenutaAcconto = dettaglio.SoggettoRitenutaAcconto,
                            Movimenti = new List<MovimentoContabileDTO>()
                        };

                        foreach (var movimento in dettaglio.Movimenti)
                        {
                            var movimentoNew = new MovimentoContabileDTO
                            {
                                Causale = movimento.Causale,
                                Descrizione = movimento.Descrizione,
                                DisplayName = movimento.DisplayName,
                                ID = 0,
                                IdCondomino = movimento.IdCondomino,
                                IdConto = movimento.IdConto,
                                IdFornitore = movimento.IdFornitore,
                                NumeroRiga = movimento.NumeroRiga,
                                IdNumeroRigaMovimentoMultiIvaPrincipale = movimento.NumeroRiga,
                                IdSottoConto = movimento.IdSottoConto
                            };
                            dettaglioNew.Movimenti.Add(movimentoNew);
                        }

                        spesa.Dettagli.Add(dettaglioNew);
                    }
                }
                else
                    spesa.TipoDocumento = "FATTURA";

                spesa.Scadenze = new List<ScadenzaFatturaDTO>();
                spesa.StatoSpesa = StatoSpesaEnum.Inserita;

                return spesa;
            }
            catch (Exception ex)
            {
                _log.ErrorFormat("Errore nella lettura della nuova spesa - {0} - spesa:{1} - condominio:{2}", ex, Gipasoft.Library.Utility.GetMethodDescription(), spesaOriginale != null ? spesaOriginale.ID.ToString() : "<NULL>", condominio != null ? condominio.ID.ToString() : "<NULL>");
                throw;
            }
        }
Ejemplo n.º 19
0
        public decimal? GetImportoRitenuta(SpesaDTO spesa, decimal? importo, decimal importoCorrenteRitenuta)
        {
            decimal? importoReturn = null;
            if (spesa.StatoSpesa == StatoSpesaEnum.Inserita || spesa.StatoSpesa == StatoSpesaEnum.Autorizzata)
            {
                var divisore = spesa.ImportoLordo - spesa.ImportoRitenuta;
                if (importo != null && divisore > 0)
                    importoReturn = ((importo - spesa.AltreSpeseEsenti.GetValueOrDefault()) / divisore) * spesa.ImportoRitenuta.GetValueOrDefault();
            }
            else if(spesa.ImportoRitenuta != null && spesa.ImportoRitenuta != 0)
                importoReturn = spesa.ImportoRitenuta.GetValueOrDefault() - spesa.Scadenze.Sum(item => item.ImportoRitenuta) + importoCorrenteRitenuta;

            return importoReturn;
        }
Ejemplo n.º 20
0
 public SpesaDTO GetSingleInstance(SpesaDTO fattura)
 {
     if (fattura != null && fattura.ID > 0)
         return GetById(fattura.ID);
     return fattura;
 }
Ejemplo n.º 21
0
 public string ShowDocumento(SpesaDTO spesa)
 {
     var esercizio = _esercizioService.GetById(spesa.IdEsercizio.GetValueOrDefault());
     return _archiviazioneService.ShowDocumento(null, TipoDocumento.FatturaPassiva, esercizio.DataApertura.GetValueOrDefault().Year, spesa.IdentificativoArchiviazioneOttica);
 }        
Ejemplo n.º 22
0
 public List<DocumentoDTO> GetDocumenti(SpesaDTO spesa)
 {
     return spesa != null ? _documentoService.GetBySpesa(spesa) : new List<DocumentoDTO>();
 }
Ejemplo n.º 23
0
        private string insert(SpesaDTO dto, bool isMultiIva, out Spesa item)
        {
            string result = string.Empty;
            item = null;
            try
            {
                var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda);
                item = new Spesa(daoFactory.GetFornitoreDao().GetById(dto.IdFornitore.GetValueOrDefault(), false), daoFactory.GetEsercizioDao().GetById(dto.IdEsercizio.GetValueOrDefault(), false), null)
                {
                    AliquotaRitenuta = dto.AliquotaRitenuta,
                    IsRitenutaCalcoloImponibile = dto.IsRitenutaCalcoloImponibile,
                    AltreSpese = dto.AltreSpese,
                    AltreSpeseEsenti = dto.AltreSpeseEsenti,
                    SpeseEsentiRitenuta = dto.SpeseEsentiRitenuta,
                    AliquotaCassaProfessionisti = dto.AliquotaCassaProfessionisti,
                    CassaProfessionisti = dto.CassaProfessionisti,
                    DataDocumento = dto.DataDocumento,
                    DataInizioCompetenza = dto.DataInizioCompetenza,
                    DataFineCompetenza = dto.DataFineCompetenza,
                    Detrazione = dto.Detrazione,
                    ImportoRitenuta = dto.ImportoRitenuta,
                    Note = dto.Note,
                    NumeroDocumento = dto.NumeroDocumento,
                    IsAbilitataArchiviazioneOttica = dto.IsAbilitataArchiviazioneOttica,
                    IsPrestazioneQualita = dto.IsPrestazioneQualita,
                    Stato = dto.StatoSpesa,
                    TipoDocumento = dto.TipoDocumento,
                    IsMultiIva = dto.IsMultiIva,
                    Contestata = dto.Contestata,
                    EsclusaRendiconto = dto.EsclusaRendiconto,
                    IsRipartoPersonalizzato = dto.IsRipartoPersonalizzato,
                    Autorizzata = dto.Autorizzata,
                    EsenteRegimeMinimo = dto.EsenteRegimeMinimo
                };


                if (dto.Sinistro)
                    item.Sinistro = 1;

                if (dto.IdSpesaRiferimento != null && dto.IdSpesaRiferimento > 0)
                    item.SpesaRiferimento = daoFactory.GetSpesaDao().GetById(dto.IdSpesaRiferimento.Value, false);

                daoFactory.GetSpesaDao().SaveOrUpdate(item);

                // ------------------------------------------
                // Dettagli
                // ------------------------------------------
                item.Dettagli.Clear();
                DettaglioSpesa dettaglioMultiIva = null;
                for (var i = 0; i < dto.Dettagli.Length; i++)
                {
                    dto.Dettagli[i].IdSpesaRiferimento = item.ID;
                    if (dto.IdSpesaRiferimento != null && dto.IdSpesaRiferimento > 0)
                    {
                        var spesaRiferimento = daoFactory.GetSpesaDao().GetById(dto.IdSpesaRiferimento.Value, false);
                        dettaglioMultiIva = IesiGenericCollections<DettaglioSpesa>.GetByIndex(spesaRiferimento.Dettagli, i);
                    }

                    int? id = dto.Dettagli[i].ID;
                    if ((dto.Dettagli[i].Stato == "U") || (dto.Dettagli[i].Stato == "I"))
                    {
                        var resultDettaglio = ManageDettaglioDomainEntity(dto.Dettagli[i], dettaglioMultiIva);
                        if (resultDettaglio.Dettaglio != null)
                            id = resultDettaglio.Dettaglio.ID;
                        else
                            return resultDettaglio.Message;
                    }

                    var dett = daoFactory.GetDettaglioSpesaDao().GetById(id.Value, false);
                    item.Dettagli.Add(dett);
                    dett.SpesaRiferimento = item;

                    if (i == 0 && isMultiIva && dettaglioMultiIva == null)
                        dettaglioMultiIva = dett;
                }

                // ------------------------------------------
                // Scadenze
                // ------------------------------------------
                item.Scadenze.Clear();
                foreach (var t in dto.Scadenze)
                {
                    if (t.Importo > 0)
                    {
                        t.IdSpesa = item.ID;
                        t.StatoScadenza = item.Stato;

                        int? id = t.ID;
                        if ((t.Stato == "U") || (t.Stato == "I"))
                            id = getScadenzaRepository().ManageDomainEntity(t);

                        if (id != null)
                            t.ID = id.Value;

                        var scad = daoFactory.GetScadenzaFatturaDao().GetById(id.GetValueOrDefault(), false);
                        item.Scadenze.Add(scad);
                        scad.SpesaRiferimento = item;
                    }
                }
            }
            catch (Exception ex)
            {
                _log.Error("Errore nell'inserimento del riparto delle unità: " + Utility.GetMethodDescription(), ex);
                result = "Errore nell'inserimento del riparto delle unità: " + Utility.GetMethodDescription();
            }

            return result;
        }
Ejemplo n.º 24
0
        public List<DocumentoDTO> GetBySpesa(SpesaDTO spesa)
        {
            try
            {
                if (spesa != null)
                {
                    var result = GetServiceClient().GetDocumentiBySpesa(spesa.ID, GetUserInfo());
                    CloseService();
                    return result;
                }
            }
            catch (CommunicationObjectAbortedException ex)
            {
                _log.DebugFormat("Errore nella chiamata al servizio - {0} - azienda:{1}", ex, Utility.GetMethodDescription(), Login.Instance.CurrentLogin().Azienda);
            }
            catch (CommunicationObjectFaultedException ex)
            {
                _log.DebugFormat("Errore nella chiamata al servizio - {0} - azienda:{1}", ex, Utility.GetMethodDescription(), Login.Instance.CurrentLogin().Azienda);
            }
            catch (CommunicationException ex)
            {
                _log.DebugFormat("Errore nella chiamata al servizio - {0} - azienda:{1}", ex, Utility.GetMethodDescription(), Login.Instance.CurrentLogin().Azienda);
            }
            catch (IOException ex)
            {
                _log.DebugFormat("Errore nella chiamata al servizio - {0} - azienda:{1}", ex, Utility.GetMethodDescription(), Login.Instance.CurrentLogin().Azienda);
            }
            catch (ObjectDisposedException ex)
            {
                _log.DebugFormat("Errore nella chiamata al servizio - {0} - azienda:{1}", ex, Utility.GetMethodDescription(), Login.Instance.CurrentLogin().Azienda);
            }
            catch (Exception ex)
            {
                _log.ErrorFormat("Errore nella chiamata al servizio - {0} - spesa:{1} - azienda:{2}", ex, Utility.GetMethodDescription(), spesa?.ID.ToString() ?? "<NULL>", Login.Instance.CurrentLogin().Azienda);
                return new List<DocumentoDTO>();
            }

            return new List<DocumentoDTO>();
        }
Ejemplo n.º 25
0
        private SpesaDTO convertTestataToDto(TestataMovimentoContabile item)
        {
            try
            {
                var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda);

                var movimentiNumeroUno = item.Movimenti.Where(mov => mov.NumeroRiga == 1).ToList();
                if(movimentiNumeroUno.Count > 1)
                    _log.WarnFormat("Trovato più di un movimento con numero riga 1 per una testata di movimento contabile - {0} - id:{1} - azienda:{2}", Utility.GetMethodDescription(), item.ID, _info.Azienda);

                var primoMovimento = movimentiNumeroUno.FirstOrDefault();
                var importo = item.GetImportoSpesa();

                var dto = new SpesaDTO
                {
                    IdEsercizio = item.EsercizioRiferimento.ID,
                    DescrizioneEsercizio = item.EsercizioRiferimento.DisplayName,
                    DescrizioneCondominio = item.EsercizioRiferimento.CondominioRiferimento.DisplayName,
                    IsAbilitataArchiviazioneOttica = item.IsAbilitataArchiviazioneOttica
                };

                if (item.SpesaRiferimento == null)
                {
                    if (primoMovimento != null && primoMovimento.FornitoreRiferimento != null)
                    {
                        dto.IdFornitore = primoMovimento.FornitoreRiferimento.ID;
                        dto.DisplayFornitore = primoMovimento.FornitoreRiferimento.DisplayName;
                    }
                }
                else
                {
                    dto.IdFornitore = item.SpesaRiferimento.FornitoreRiferimento.ID;
                    dto.DisplayFornitore = item.SpesaRiferimento.FornitoreRiferimento.DisplayName;
                    dto.NumeroDocumento = item.SpesaRiferimento.NumeroDocumento;
                    dto.DataDocumento = item.SpesaRiferimento.DataDocumento;
                }

                dto.IdTestata = item.ID;
                if (importo != null)
                {
                    dto.Imponibile = importo.Value;
                    dto.ImportoLordo = importo.Value;
                }

                dto.TipoDocumento = "Movimento";
                
                dto.StatoSpesa = StatoSpesaEnum.Pagata;
                if (item.Movimenti.Any(mov => mov.Stato == StatoMovimentoContabileEnum.Evaso))
                    dto.StatoSpesa = StatoSpesaEnum.Evasa;

                dto.DisplayName = item.Descrizione;
                dto.IdentificativoArchiviazioneOttica = getArchiviazioneOtticaService().GetIdentificativoArchiviazione(item);
                dto.DataRegistrazione = item.DataRegistrazione.GetValueOrDefault();
                dto.IsRipartoPersonalizzato = item.Movimenti.Any(mov => mov.IsRipartoPersonalizzato);

                if (item.AddebitoCompetenze.Count > 0)
                {
                    var firstOrDefault = item.AddebitoCompetenze.FirstOrDefault();
                    if (firstOrDefault != null)
                        dto.IdAddebitoCompetenze = firstOrDefault.ID;
                }

                // ------------------------------------------
                // Nominativo Spesa Personale
                // ------------------------------------------
                var nominativoSpesaPersonale = string.Empty;
                var movimentiPersonali = from mov in item.Movimenti
                                         where mov.ContoRiferimento.IsSpesePersonali
                                         select mov;
                foreach (var mov in movimentiPersonali)
                {
                    foreach (var spesaUnita in mov.DettaglioRipartizione)
                    {
                        if (spesaUnita.Importo.GetValueOrDefault() != 0)
                        {
                            if (!string.IsNullOrEmpty(nominativoSpesaPersonale))
                            {
                                if (!nominativoSpesaPersonale.Contains("<br/>"))
                                    nominativoSpesaPersonale = "<b>" + nominativoSpesaPersonale + "</b><br/>";
                                else
                                    nominativoSpesaPersonale += "<br/>";
                            }

                            if (spesaUnita.UnitaRiferimento != null)
                            {
                                if (mov.ContoRiferimento.PercentualeProprieta == 1)
                                {
                                    var proprietario = spesaUnita.UnitaRiferimento.GetProprietarioPrincipale(item.EsercizioRiferimento.DataChiusura);
                                    if(proprietario != null)
                                        nominativoSpesaPersonale += proprietario.DisplayName;
                                }
                                else
                                {
                                    var conduttore = spesaUnita.UnitaRiferimento.GetConduttorePrincipale(item.EsercizioRiferimento.DataChiusura);
                                    if (conduttore != null)
                                        nominativoSpesaPersonale += conduttore.DisplayName;
                                    else
                                    {
                                        var proprietario = spesaUnita.UnitaRiferimento.GetProprietarioPrincipale(item.EsercizioRiferimento.DataChiusura);
                                        if(proprietario != null)
                                            nominativoSpesaPersonale += proprietario.DisplayName;
                                    }
                                }
                            }
                            else
                                nominativoSpesaPersonale += spesaUnita.SoggettoCondominio.DisplayName;
                        }
                    }
                }

                dto.NominativoSpesaPersonale = nominativoSpesaPersonale;

                // ------------------------------------------
                // Scale Addebito
                // ------------------------------------------
                var scaleElaborate = new List<int>();
                var movimenti = from itemScala in item.Movimenti
                                where !string.IsNullOrEmpty(itemScala.GruppiAddebito)
                                select itemScala;
                dto.ScaleAddebito = getScaleAddebito(movimenti, scaleElaborate, daoFactory);

                // ------------------------------------------
                // Conti - Sottoconti Addebito
                // ------------------------------------------
                var descrizioniConti = new List<string>();
                var descrizioniSottoConti = new List<string>();
                var movimentiConti = from itemConto in item.Movimenti
                                     select itemConto;
                var descrizioni = getContiSottocontiDettagliAddebito(movimentiConti, descrizioniConti, descrizioniSottoConti, null, true, false, item.EsercizioRiferimento);
                dto.DescrizioneBilancio = descrizioni[0];
                dto.DescrizioneSottoconto = descrizioni[1];

                return dto;
            }
            catch (Exception ex)
            {
                _log.ErrorFormat("Errore inaspettato nella creazione dell'istanza DTO per una testata di movimento contabile - {0} - id:{1}", ex, Utility.GetMethodDescription(), item.ID);
                throw;
            }

        }
Ejemplo n.º 26
0
        public bool Conferma()
        {
            var result = true;

            btnConferma.Focus();
            setValidators(true);
            spesaValidationSummary.Validate();
            if (spesaValidationSummary.IsValid)
            {
                // --------------------------------------------
                // Controllo Data Registrazione
                // --------------------------------------------
                var messageDataList = getMovimentoContabileService().IsAllowDataRegistrazione(new List<int>(1) {_condominio.ID}, _esercizio.ID, dataRegistrazione.DateTime);
                if(messageDataList.Count > 0)
                {
                    var messageData = "La data di registrazione " + dataRegistrazione.DateTime + " non è ammessa:" + Environment.NewLine;
                    messageData = messageDataList.Aggregate(messageData, (current, mess) => current + (mess + Environment.NewLine));
                    CommonMessages.DisplayWarning(messageData);
                    return false;
                }

                // --------------------------------------------
                // Controllo Data Scadenza se pagamento immediato
                // --------------------------------------------
                if (_pagamentoImmediato)
                {
                    var messaggiDataPagamento = new List<string>();
                    foreach (var scadenzaFatturaDTO in _spesa.Scadenze)
                    {
                        if (scadenzaFatturaDTO != null)
                        {
                            var messageData = getMovimentoContabileService().IsAllowDataPagamento(_condominio.ID, scadenzaFatturaDTO.Scadenza.GetValueOrDefault());
                            if (!string.IsNullOrEmpty(messageData))
                                messaggiDataPagamento.Add(messageData);
                        }                        
                    }

                    if (messaggiDataPagamento.Count > 0)
                    {
                        var messageDataStr = messaggiDataPagamento.Aggregate(string.Empty, (current, mess) => current + (mess + Environment.NewLine));
                        CommonMessages.DisplayWarning(messageDataStr);
                        return false;
                    }
                }

                // --------------------------------------------
                // Controllo sul numero fattura
                // --------------------------------------------
                var messageAuth = _fatturaService.IsAllowNumeroFattura(_spesa);
                if (string.IsNullOrEmpty(messageAuth.FatalMessage))
                {
                    var resultNumeroFattura = DialogResult.Yes;
                    if (!string.IsNullOrEmpty(messageAuth.WarnMessage))
                        resultNumeroFattura = CommonMessages.DisplayConfirm("ATTENZIONE il controllo sul numero fattura ha dato i seguenti risultati:" + Environment.NewLine + Environment.NewLine + messageAuth.WarnMessage + Environment.NewLine + Environment.NewLine + "Vuoi confermare l'inserimento della spesa?");

                    if (resultNumeroFattura == DialogResult.Yes)
                    {
                        RipartizioneSpeseDTO ripartizione;
                        if (importoDettaglioSpesa.Value != 0)
                        {
                            _spesa.AltreSpese = altreSpeseDettaglio.Value;
                            _spesa.AltreSpeseEsenti = altreSpeseEsenti.Value;
                            _spesa.SpeseEsentiRitenuta = speseEsentiRitenuta.Value;
                            _spesa.AliquotaRitenuta = (decimal?)aliquotaRitenuta.Value;
                            _spesa.AliquotaCassaProfessionisti = (decimal?)cassaProfessionistiDettaglio.Value;
                            _spesa.IsRitenutaCalcoloImponibile = ritenutaCalcolataImponibile.Checked;
                            ripartizione = getCurrentRipartizione();
                            if (_isInserimento && modelloRipartizione.Value == null && ripartizioneDettaglio.Rows.Count > 1 && (ripartizione == null || string.IsNullOrEmpty(getCurrentRipartizione().NomeModello)))
                            {
                                var form = new SalvataggioModelloRegistrazioneContabile((List<ModelloRegistrazioneContabileDTO>)modelliContabiliBindingSource.DataSource, modelloRipartizione.Text, descrizioneDettaglio.Text);
                                if (form.ShowDialog() != DialogResult.Cancel)
                                {
                                    if (ripartizione == null)
                                    {
                                        ripartizione = new RipartizioneSpeseDTO
                                        {
                                            Testata = new TestataMovimentoContabileDTO {IdEsercizio = _esercizio.ID}
                                        };
                                        setCurrentRipartizione(ripartizione);
                                    }
                                    ripartizione.NomeModello = form.Nome;
                                    ripartizione.DescrizioneVoceSpesa = form.DescrizioneVoceSpesa;
                                    ripartizione.AssociatoFornitore = form.AssociatoFornitore;
                                }

                                form.Dispose();
                            }

                            // Se non sono ancora state caricate creo le scadenze
                            if (scadenze.Rows.Count == 0)
                                loadScadenzeTab();
                        }

                        // Salvo i valori a video nell'oggetto DTO
                        setDettaglioDataSource((DettaglioSpesaDTO)dettagliSpesa.ActiveTab.Tag, null);

                        _spesa.IdFornitore = sceltaFornitore.SelectedFornitore.ID;
                        _spesa.TipoDocumento = tipoDocumento.SelectedItem.DataValue.ToString();
                        _spesa.DataRegistrazione = dataRegistrazione.DateTime;

                        if (_spesaRiferimento != null)
                            _spesa.IdSpesaRiferimento = _spesaRiferimento.ID;

                        SpesaInfoDTO spesaInfo =null;
                        try
                        {
                            if (_spesa != null)
                            {
                                //spesaInfo = _fatturaService.Salva(_spesa, _ripartizione, getMovimentoContabileService().IsMultiSpesa);

                                var form = new ExecuteLoadDataObjectAsync<SpesaInfoDTO>("Salvataggio della fattura in corso ....." + Environment.NewLine + "Si prega di attendere.");
                                Func<SpesaInfoDTO> loadDati = () => _fatturaService.Salva(_spesa, _ripartizione, getMovimentoContabileService().IsMultiSpesa);
                                form.LoadData(loadDati);
                                form.ShowDialog();
                                spesaInfo = form.DataSourceObject;
                                form.Dispose();
                            }
                        }
                        catch (Exception ex)
                        {
                            
                            _log.Error("Errore non previsto nell'inserimento della spesa - " + Utility.GetMethodDescription() + " - spesa:" + getIdSpesa().GetValueOrDefault(), ex);
                            spesaInfo = new SpesaInfoDTO { Message = "Errore imprevisto nell'inserimento della spesa" };            
                        }

                        if (spesaInfo != null && string.IsNullOrEmpty(spesaInfo.Message))
                        {
                            _spesa.ID = spesaInfo.Id;

                            _spesa.DisplayName = _spesa.Dettagli[0].Descrizione;
                            if (_speseAccorpate && _isFirstSpesa && _spesaRiferimento == null)
                            {
                                _spesaRiferimento = _spesa;
                                _isFirstSpesa = false;
                                _fatturaService.SetSpesaRiferimento(_spesaRiferimento.ID, _spesaRiferimento.ID);
                            }

                            if (modelloFornitore.Checked)
                                getModelloContabileService().AssociaFornitore((ModelloRegistrazioneContabileDTO)modelloRipartizione.SelectedItem.ListObject, sceltaFornitore.SelectedFornitore);

                            // Se è stato richiesto il salvataggio del modello devo ricaricare la cache dei modelli
                            if (importoDettaglioSpesa.Value != 0)
                            {
                                ripartizione = getCurrentRipartizione();
                                if (!string.IsNullOrEmpty(ripartizione?.NomeModello))
                                    getModelloContabileService().Reload(_esercizio);
                            }

                            if (_isInserimento)
                                CommonMessages.DisplayComplete("La spesa è stata correttamente inserita." + Environment.NewLine + "Sul documento deve essere riportato: " + spesaInfo.IdentificativoArchiviazione);
                            else
                                CommonMessages.DisplayComplete("La spesa è stata correttamente aggiornata." + Environment.NewLine + "Sul documento deve essere riportato: " + spesaInfo.IdentificativoArchiviazione);
                            Dirty = false;

                            OnConfirm(new ConfirmArgs(_spesa));

                            if (_formGestione == null || !_formGestione.IsDisposed)
                            {
                                if (_isInserimento)
                                    Reload(_condominio, _esercizio);
                                Dirty = false;
                            }
                        }
                        else
                        {
                            if (spesaInfo != null)
                                CommonMessages.DisplayWarning("Si sono verificati dei problemi nell'aggiornamento della spesa:" + Environment.NewLine + spesaInfo.Message + Environment.NewLine + "Si prega di riprovare.");
                            result = false;
                        }
                    }
                }
                else
                {
                    CommonMessages.DisplayWarning("Si sono verificati i seguenti errori nel controllo del numero di fattura:" + Environment.NewLine + messageAuth.FatalMessage + Environment.NewLine + "Si prega di riprovare.");
                    return false;
                }
            }
            else
            {
                spesaValidationSummary.ShowErrorSummary();
                result = false;
            }

            setValidators(false);
            return result;
        }
Ejemplo n.º 27
0
        public SpesaDTO[] GetAllAperteByEsercizio(int idEsercizio)
        {
            try
            {
                var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda);
                var lista = daoFactory.GetSpesaDao().GetAperteByEsercizio(daoFactory.GetEsercizioDao().GetById(idEsercizio, false));
                var listaDto = new SpesaDTO[lista.Count];

                int index = 0;
                foreach (var item in lista)
                {
                    listaDto[index] = setDto(item, false, false, null, null);
                    index++;
                }

                return listaDto;
            }
            catch (Exception ex)
            {
                
                _log.Error("Errore nel caricamento delle scadenze delle fatture: " + Utility.GetMethodDescription() + " - id:" + idEsercizio.ToString(), ex);
                throw;
            }
        }
Ejemplo n.º 28
0
 public void ClearAll()
 {
     _spesaRiferimento = null;
     clearAllFields();
     sceltaFornitore.Reset();
     clearDettaglioFields();
     _isFirstSpesa = true;
 }
Ejemplo n.º 29
0
        private SpesaDTO setDto(Spesa spesa, bool includeDettagli, bool includeDettaglioMovimenti, int? anno, int? detrazione)
        {
            try
            {
                SpesaDTO dto = null;

                if (spesa != null)
                {
                    spesa.SetStato();
                    var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda);

                    dto = new SpesaDTO
                    {
                        ID = spesa.ID,
                        AliquotaRitenuta = spesa.AliquotaRitenuta,
                        IsRitenutaCalcoloImponibile = spesa.IsRitenutaCalcoloImponibile,
                        AltreSpese = spesa.AltreSpese,
                        AltreSpeseEsenti = spesa.AltreSpeseEsenti,
                        SpeseEsentiRitenuta = spesa.SpeseEsentiRitenuta,
                        AliquotaCassaProfessionisti = spesa.AliquotaCassaProfessionisti,
                        CassaProfessionisti = spesa.CassaProfessionisti,
                        DataDocumento = spesa.DataDocumento,
                        DataInizioCompetenza = spesa.DataInizioCompetenza,
                        DataFineCompetenza = spesa.DataFineCompetenza,
                        IsAbilitataArchiviazioneOttica = spesa.IsAbilitataArchiviazioneOttica,
                        IsPrestazioneQualita = spesa.IsPrestazioneQualita,
                        Detrazione = spesa.Detrazione,
                        Contestata = spesa.Contestata,
                        EsclusaRendiconto = spesa.EsclusaRendiconto,
                        IdEsercizio = spesa.EsercizioRiferimento.ID,
                        DescrizioneEsercizio = spesa.EsercizioRiferimento.DisplayName,
                        DescrizioneCondominio = spesa.EsercizioRiferimento.CondominioRiferimento.DisplayName,
                        Sinistro = spesa.Sinistro > 0,
                        Autorizzata = spesa.Autorizzata,
                        EsenteRegimeMinimo = spesa.EsenteRegimeMinimo
                    };

                    if (spesa.Imponibile != 0)
                        dto.Imponibile = spesa.Imponibile;
                    dto.ImportoIva = spesa.ImportoIva;
                    dto.ImportoLordo = spesa.ImportoBolletta ?? spesa.ImportoLordo + spesa.AltreSpeseEsenti.GetValueOrDefault();
                    dto.ImportoRitenuta = spesa.ImportoRitenuta;

                    //if (spesa.TipoDocumento == "NOTACC")
                    //{
                    //    dto.ImportoLordo = dto.ImportoLordo*-1;
                    //    dto.ImportoRitenuta = dto.ImportoRitenuta*-1;
                    //}

                    if (spesa.FornitoreRiferimento != null)
                    {
                        dto.IdFornitore = spesa.FornitoreRiferimento.ID;
                        dto.DisplayFornitore = spesa.FornitoreRiferimento.DisplayName;
                    }

                    dto.ImportoNettoAPagare = dto.ImportoLordo.GetValueOrDefault() - dto.ImportoRitenuta.GetValueOrDefault();
                    dto.Note = spesa.Note;
                    dto.NumeroDocumento = spesa.NumeroDocumento;

                    if (!string.IsNullOrEmpty(spesa.NumeroDocumento) && spesa.DataDocumento != null && spesa.NumeroProtocollo != null)
                        dto.IdentificativoArchiviazioneOttica = getArchiviazioneOtticaService().GetIdentificativoArchiviazione(spesa);

                    dto.TipoDocumento = Decodifica.Instance.GetElement("TipoDocumentoContabile", spesa.TipoDocumento).Descrizione;
                    dto.IsMultiIva = spesa.IsMultiIva;
                    dto.StatoSpesa = spesa.Stato;
                    if (spesa.SpesaRiferimento != null)
                    {
                        dto.IdSpesaRiferimento = spesa.SpesaRiferimento.ID;
                        dto.DescrizioneSpesaRiferimento = spesa.SpesaRiferimento.ID.ToString();
                        if (!string.IsNullOrEmpty(spesa.SpesaRiferimento.NumeroDocumento))
                            dto.DescrizioneSpesaRiferimento += " - N. " + spesa.SpesaRiferimento.NumeroDocumento;
                        if (spesa.SpesaRiferimento.DataDocumento != null)
                            dto.DescrizioneSpesaRiferimento += " del " + spesa.SpesaRiferimento.DataDocumento.GetValueOrDefault().ToShortDateString();
                        foreach (var dettaglio in spesa.SpesaRiferimento.Dettagli)
                        {
                            dto.DescrizioneSpesaRiferimento += " - " + dettaglio.GetDescrizione();
                            break;
                        }
                    }

                    if (spesa.Utenza != null)
                    {
                        var rep = new UtenzaRepository(_info, _windsorRepository);
                        dto.Utenza = rep.GetDisplayName(spesa.Utenza);
                    }

                    dto.Version = spesa.Version;
                    DettaglioSpesa dettaglioPrincipale = null;
                    if (spesa.Dettagli.Count > 0)
                        dettaglioPrincipale = spesa.Dettagli.FirstOrDefault();
                    if (spesa.TipoDocumento == "BOLLETTA")
                    {
                        if (spesa.TestateMovimenti.Count > 0)
                        {
                            var testata = spesa.TestateMovimenti.FirstOrDefault();
                            if (testata != null)
                            {
                                dto.DisplayName = testata.GetDescrizione();
                                dto.IdTestata = testata.ID;
                            }
                        }
                    }
                    else
                    {
                        if (dettaglioPrincipale != null)
                            dto.DisplayName = dettaglioPrincipale.GetDescrizione();
                    }

                    // ------------------------------------------
                    // Nominativo Spesa Personale
                    // ------------------------------------------
                    // Solo per la lista (includeDettagli == false)
                    if (!includeDettagli)
                    {
                        var nominativoSpesaPersonale = string.Empty;
                        var movimentiPersonali = spesa.Dettagli.Where(item => item.Movimenti.Any(mov => mov.ContoRiferimento.IsSpesePersonali)).Select(item => item.Movimenti.ToList());

                        var personeElaborate = new List<string>();
                        foreach (var lista in movimentiPersonali)
                        {
                            foreach (var item in lista)
                            {
                                foreach (var spesaUnita in item.DettaglioRipartizione)
                                {
                                    if (spesaUnita.Importo.GetValueOrDefault() != 0)
                                    {
                                        if (!string.IsNullOrEmpty(nominativoSpesaPersonale))
                                        {
                                            if (!nominativoSpesaPersonale.Contains("<br/>"))
                                                nominativoSpesaPersonale = "<b>" + nominativoSpesaPersonale.Replace('&', 'e') + "</b><br/>";
                                            else if (!nominativoSpesaPersonale.EndsWith("<br/>"))
                                                nominativoSpesaPersonale += "<br/>";
                                        }

                                        // -------------------------------------------------
                                        // Dettaglio riferito ad una unità immobiliare
                                        // -------------------------------------------------
                                        if (spesaUnita.UnitaRiferimento != null)
                                        {
                                            if (item.ContoRiferimento.PercentualeProprieta == 1)
                                            {
                                                var nominativo = spesaUnita.UnitaRiferimento.GetProprietarioPrincipale(spesa.EsercizioRiferimento.DataChiusura).DisplayName;
                                                if (!personeElaborate.Contains(nominativo))
                                                {
                                                    nominativoSpesaPersonale += nominativo;
                                                    personeElaborate.Add(nominativo);
                                                }
                                            }
                                            else
                                            {
                                                var conduttore = spesaUnita.UnitaRiferimento.GetConduttorePrincipale(spesa.EsercizioRiferimento.DataChiusura);
                                                var nominativo = conduttore != null ? conduttore.DisplayName : spesaUnita.UnitaRiferimento.GetProprietarioPrincipale(spesa.EsercizioRiferimento.DataChiusura).DisplayName;
                                                if (!string.IsNullOrEmpty(nominativo) && !personeElaborate.Contains(nominativo))
                                                {
                                                    nominativoSpesaPersonale += nominativo;
                                                    personeElaborate.Add(nominativo);
                                                }
                                            }
                                            
                                        }

                                        // -------------------------------------------------
                                        // Dettaglio riferito direttamente ad un condomino
                                        // -------------------------------------------------
                                        if (spesaUnita.SoggettoCondominio != null)
                                        {
                                            var nominativo = spesaUnita.SoggettoCondominio.DisplayName;
                                            if (!personeElaborate.Contains(nominativo))
                                            {
                                                nominativoSpesaPersonale += nominativo;
                                                personeElaborate.Add(nominativo);
                                            }
                                        }
                                    }
                                }
                            }
                        }
                        dto.NominativoSpesaPersonale = nominativoSpesaPersonale;

                        // ------------------------------------------
                        // Scale Addebito
                        // ------------------------------------------
                        var scaleElaborate = new List<int>();
                        if (spesa.TipoDocumento != "BOLLETTA")
                        {
                            var scaleAddebito = string.Empty;
                            var movimenti = (from item in spesa.Dettagli
                                             where item.Movimenti.Any(mov => !string.IsNullOrEmpty(mov.GruppiAddebito))
                                             select item.Movimenti.ToList()).ToList();

                            scaleAddebito = movimenti.Cast<IList<MovimentoContabile>>().Aggregate(scaleAddebito, (current, lista) => current + getScaleAddebito(lista, scaleElaborate, daoFactory));
                            dto.ScaleAddebito = scaleAddebito;
                        }
                        else
                        {
                            var movimenti = from item in spesa.MovimentiBollette
                                            where !string.IsNullOrEmpty(item.GruppiAddebito)
                                            select item;
                            dto.ScaleAddebito = getScaleAddebito(movimenti, scaleElaborate, daoFactory);
                        }

                        // ------------------------------------------
                        // Conti - Sottoconti - Dettaglio Addebito
                        // ------------------------------------------
                        var descrizioniConti = new List<string>();
                        var descrizioniSottoConti = new List<string>();
                        var dettagli = new List<string>();
                        if (spesa.TipoDocumento != "BOLLETTA")
                        {
                            var contiAddebito = string.Empty;
                            var sottoContiAddebito = string.Empty;
                            var dettagliAddebito = string.Empty;
                            var movimenti = (spesa.Dettagli.Select(item => item.Movimenti.ToList())).ToList();

                            foreach (IList<MovimentoContabile> lista in movimenti)
                            {
                                var descrizioni = getContiSottocontiDettagliAddebito(lista, descrizioniConti, descrizioniSottoConti, dettagli, false, detrazione != null, spesa.EsercizioRiferimento);
                                contiAddebito += descrizioni[0];
                                sottoContiAddebito += descrizioni[1];
                                dettagliAddebito += descrizioni[2];
                            }

                            dto.DescrizioneBilancio = contiAddebito;
                            dto.DescrizioneSottoconto = sottoContiAddebito;
                            dto.Dettaglio = dettagliAddebito;
                        }
                        else
                        {
                            var movimenti = spesa.MovimentiBollette.Select(item => item);
                            var descrizioni = getContiSottocontiDettagliAddebito(movimenti, descrizioniConti, descrizioniSottoConti, dettagli, false, detrazione != null, spesa.EsercizioRiferimento);
                            dto.DescrizioneBilancio = descrizioni[0];
                            dto.DescrizioneSottoconto = descrizioni[1];
                            dto.Dettaglio = descrizioni[2];
                        }

                        // ------------------------------------------
                        // Riparto personalizzato
                        // ------------------------------------------
                        dto.IsRipartoPersonalizzato = spesa.TipoDocumento == "BOLLETTA" ? spesa.IsRipartoPersonalizzato : spesa.Dettagli.Any(item => item.Movimenti.Any(item2 => item2.IsRipartoPersonalizzato));
                    }

                    // ------------------------------------------
                    // Dettagli
                    // ------------------------------------------
                    if (includeDettagli || includeDettaglioMovimenti)
                    {
                        var indexDettaglio = 0;
                        dto.Dettagli = new DettaglioSpesaDTO[spesa.Dettagli.Count];
                        foreach (var dettaglio in spesa.Dettagli)
                        {
                            var dettDto = setDettaglioDto(dettaglio, includeDettaglioMovimenti, detrazione != null);
                            dto.Dettagli[indexDettaglio] = dettDto;
                            indexDettaglio++;
                        }

                        // ------------------------------------------
                        // Scadenze
                        // ------------------------------------------
                        if (includeDettagli)
                        {
                            var indexScadenze = 0;
                            dto.Scadenze = new ScadenzaFatturaDTO[spesa.Scadenze.Count];
                            foreach (var scadenza in spesa.Scadenze)
                            {
                                var scadDto = getScadenzaRepository().GetByDomainEntity(scadenza);
                                dto.Scadenze[indexScadenze] = scadDto;
                                indexScadenze++;
                            }

                            var statoSpesa = spesa.Stato;
                            if (spesa.Scadenze.Any(item => item.Stato == StatoSpesaEnum.Stornata))
                                statoSpesa = StatoSpesaEnum.Stornata;
                            dto.StatoSpesa = statoSpesa;
                        }
                    }

                    // ------------------------------------------
                    // Testata Contabile
                    // ------------------------------------------
                    if (dettaglioPrincipale != null && dettaglioPrincipale.Movimenti.Count > 0)
                    {
                        var movimentoEconomico = IesiGenericCollections<MovimentoContabile>.GetByIndex(dettaglioPrincipale.Movimenti, 0);

                        if (movimentoEconomico != null)
                        {
                            if (movimentoEconomico.Testata != null)
                                dto.IdTestata = movimentoEconomico.Testata.ID;
                            else
                            {
                                _log.ErrorFormat("Trovato movimento economico senza testata - {0} - movimento:{1} - spesa:{2}", Utility.GetMethodDescription(), movimentoEconomico.ID, spesa.ID);
                            }
                        }
                        else
                        {
                            _log.WarnFormat("Trovato dettagli spesa senza movimenti associati - {0} - id:{1}", Utility.GetMethodDescription(), spesa.ID);
                        }
                    }

                    // ------------------------------------------
                    // Data Registrazione
                    // ------------------------------------------
                    if (spesa.Dettagli.Count > 0 && IesiGenericCollections<DettaglioSpesa>.GetByIndex(spesa.Dettagli, 0).Movimenti.Count > 0)
                    {
                        var dettaglio = IesiGenericCollections<DettaglioSpesa>.GetByIndex(spesa.Dettagli, 0);
                        var movimento = IesiGenericCollections<MovimentoContabile>.GetByIndex(dettaglio.Movimenti, 0);
                        if (movimento.Testata != null)
                            dto.DataRegistrazione = movimento.Testata.DataRegistrazione.GetValueOrDefault();
                    }
                    else if (spesa.TestateMovimenti != null)
                    {
                        var testata = spesa.TestateMovimenti.FirstOrDefault();
                        if(testata != null)
                            dto.DataRegistrazione = testata.DataRegistrazione.GetValueOrDefault();
                    }

                    // ------------------------------------------
                    // Importo Pagato (PER REPORT DETRAZIONI)
                    // ------------------------------------------
                    if (anno != null && detrazione != null)
                    {
                        if (spesa.Pagamenti.Any())
                            dto.ImportoPagato = spesa.GetImportoPagato(anno.GetValueOrDefault(), detrazione.GetValueOrDefault());
                        // Se non sono presenti pagamenti ma solo riscossioni (nota accredito) deve essere considerato l'intero importo bugid#6618
                        else if (spesa.Riscossioni.Count > 0)
                        {
                            dto.ImportoPagato = spesa.ImportoLordo;
                        }
                    }
                }

                return dto;
            }
            catch (Exception ex)
            {
                _log.ErrorFormat("Errore inaspettato nella creazione dell'istanza DTO per una spesa - {0} - id:{1}", ex, Utility.GetMethodDescription(), spesa.ID);
                throw;
            }
        }
Ejemplo n.º 30
0
 public string Delete(SpesaDTO spesa)
 {
     var result = GetServiceClient().DeleteSpesa(spesa.ID, GetUserInfo());
     CloseService();
     return result;
 }