Beispiel #1
0
 private void apriSpesa(MovimentoContabileListaDTO movimento)
 {
     if (movimento != null && movimento.IsAllowOpenDettaglio)
     {
         if (movimento.IdSpesa > 0)
         {
             if (movimento.StatoSpesa == StatoSpesaEnum.PagataAltroAmministratore)
             {
                 var form = getDettaglioSpesaService().GetFormDettaglioFiscale(movimento.IdSpesa.GetValueOrDefault());
                 if (ParentForm != null) 
                     form.MdiParent = ParentForm.MdiParent;
                 form.Show();
             }
             else if (movimento.TipoDocumentoSpesa.ToUpper() == "BOLLETTA")
             {
                 var form = getDettaglioBollettaUIService().GetFormDettaglio(movimento.IdSpesa.GetValueOrDefault(), _condominio, _esercizio);
                 if (ParentForm != null) 
                     form.MdiParent = ParentForm.MdiParent;
                 form.Show();
             }
             else if (movimento.TipoDocumentoSpesa.ToUpper() == "FATBILAPP")
             {
                 var form = getBilancioAperturaUIService().GetFormDettaglio(_condominio, _esercizio);
                 if (ParentForm != null)
                     form.MdiParent = ParentForm.MdiParent;
                 form.Show();
             }
             else if (movimento.TipoDocumentoSpesa.ToUpper() == "NOTACC" && movimento.StatoSpesa == StatoSpesaEnum.Stornata)
             {
                 var form = getDettaglioSpesaService().GetFormNotaAccredito(movimento.IdSpesa.GetValueOrDefault(), _condominio, _esercizio);
                 getDettaglioSpesaService().Confirm += listaMovimentiUCConfirm;
                 if (ParentForm != null)
                     form.MdiParent = ParentForm.MdiParent;
                 form.Show();
             }
             else
             {
                 var form = getDettaglioSpesaService().GetFormDettaglio(movimento.IdSpesa.GetValueOrDefault());
                 getDettaglioSpesaService().Confirm += listaMovimentiUCConfirm;
                 if (!form.IsDisposed)
                 {
                     if (ParentForm != null) 
                         form.MdiParent = ParentForm.MdiParent;
                     form.Show();
                 }
             }
         }
         else
         {
             var testata = getMovimentoContabileService().GetTestataById(movimento.IdTestata);
             if (testata != null)
             {
                 var esercizio = getEsercizioService().GetById(testata.IdEsercizio.GetValueOrDefault());
                 var form = getMovimentiContabiliUIService().GetGestioneMovimentoContabile(testata, esercizio);
                 form.ShowDialog();
                 getMovimentiContabiliUIService().DisposeGestioneMovimentoContabile();
             }
             else
                 CommonMessages.DisplayWarning("Il movimento non è più presente.");
         }
     }
 }
        private MovimentoContabileListaDTO setListaDto(MovimentoContabile item, bool importiNegativi, IArchiviazioneOtticaService archiviazioneService)
        {
            try
            {
                var dto = new MovimentoContabileListaDTO
                {
                    ID = item.ID,
                    IdTestata = item.Testata.ID,
                    Data = item.Testata.DataRegistrazione.GetValueOrDefault(),
                    Causale = item.Causale.DescrizioneCompleta,
                    IdCondominio = item.Testata.EsercizioRiferimento.CondominioRiferimento.ID,
                    Condominio = item.Testata.EsercizioRiferimento.CondominioRiferimento.DisplayName,
                    IdEsercizio = item.Testata.EsercizioRiferimento.ID,
                    Esercizio = item.Testata.EsercizioRiferimento.DisplayName,
                    IdConto = item.ContoRiferimento.ID,
                    Conto = item.ContoRiferimento.Descrizione,
                    TipoConto = item.ContoRiferimento.Tipo.ToString(),
                    Descrizione = item.GetDescrizione(),
                    Importo = !importiNegativi ? item.GetImportoSenzaSegno() : item.GetImportoConSegno(),
                    ImportoResiduoEvasione = item.GetImportoSenzaSegno(),
                    Stato = item.Stato
                };

                if(item.ImportoEvasioneTransitorio != null)
                    dto.ImportoResiduoEvasione -= item.ImportoEvasioneTransitorio;

                dto.Segno = item.Segno;

                dto.Note = item.Note;
                dto.NumeroRegistrazione = item.NumeroRegistrazione;
                dto.NumeroAssegno = item.NumeroAssegno;
                dto.NumeroRiga = item.NumeroRiga;

                if (item.EvasioneBancaria != null)
                    dto.IdEvasioneBancaria = item.EvasioneBancaria.ID;

                if (item.FornitoreRiferimento != null)
                {
                    dto.IdFornitore = item.FornitoreRiferimento.ID;
                    dto.Nominativo = item.FornitoreRiferimento.DisplayName;
                }

                if (item.CondominoRiferimento != null)
                {
                    dto.IdCondomino = item.CondominoRiferimento.ID;
                    dto.Nominativo = item.CondominoRiferimento.Persona.DisplayName;
                }

                if(item.DettaglioRiferimento != null)
                    dto.IdDettaglio = item.DettaglioRiferimento.ID;
                if (item.SottoContoRiferimento != null)
                {
                    dto.IdSottoConto = item.SottoContoRiferimento.ID;
                    dto.SottoConto = item.SottoContoRiferimento.GetDescrizione(item.Testata.EsercizioRiferimento, null, item);
                }
                else if (item.ContoRiferimento.Codice == getPianoContiService().GetCodiceContoBancario() && item.ContoCorrenteBancario != null)
                {
                    dto.IdSottoConto = item.ContoCorrenteBancario.ID * -1;
                    dto.SottoConto = item.ContoCorrenteBancario.DisplayName;
                }
                else if (item.ContoRiferimento.Codice == getPianoContiService().GetCodiceContoFornitori() && item.FornitoreRiferimento != null)
                {
                    dto.IdSottoConto = item.FornitoreRiferimento.ID * -1;
                    dto.SottoConto = item.FornitoreRiferimento.DisplayName;
                }

                var spesaRiferimento = item.Testata.SpesaRiferimento;
                if (spesaRiferimento == null && item.DettaglioRiferimento != null)
                    spesaRiferimento = item.DettaglioRiferimento.SpesaRiferimento;

                // =============================================================================================
                //  Commentato rendeva troppo lenta la ricerca dei movimenti - bugid#2967
                // =============================================================================================
                //if(spesaRiferimento == null)
                //{
                //    Pagamento pagamento = null;
                //    if(pagamenti == null)
                //        pagamento = daoFactory.GetPagamentoDao().GetByMovimentoContabile(item);
                //    else
                //        pagamento = pagamenti.FirstOrDefault(itemPagamento => itemPagamento.MovimentoContabile != null && itemPagamento.MovimentoContabile.ID == item.ID);
                //    if (pagamento != null)
                //        spesaRiferimento = pagamento.ScadenzaRiferimento.SpesaRiferimento;
                //}
                // =============================================================================================

                if (spesaRiferimento != null)
                {
                    dto.IdSpesa = spesaRiferimento.ID;
                    dto.NumeroProtocollo = spesaRiferimento.NumeroProtocollo;
                    dto.IdentificativoArchiviazioneOttica = archiviazioneService.GetIdentificativoArchiviazione(spesaRiferimento, true);
                    dto.StatoSpesa = spesaRiferimento.Stato;
                    dto.TipoDocumentoSpesa = spesaRiferimento.TipoDocumento;
                }
                else
                {
                    dto.NumeroProtocollo = item.Testata.NumeroProtocollo;
                    if (dto.NumeroProtocollo > 0)
                        dto.IdentificativoArchiviazioneOttica = archiviazioneService.GetIdentificativoArchiviazione(item.Testata);
                    else if (item.DettaglioRiferimento != null && item.DettaglioRiferimento.SpesaRiferimento != null)
                        dto.IdentificativoArchiviazioneOttica = archiviazioneService.GetIdentificativoArchiviazione(item.DettaglioRiferimento.SpesaRiferimento, true);
                }
                
                dto.IsAllowOpenDettaglio = item.Testata.NumeroProtocollo > 0 || dto.IdSpesa > 0;

                return dto;
            }
            catch (Exception ex)
            {
                if (item != null)
                {
                    
                    _log.Error("Errore nel caricamento del Movimento Contabile: " + Utility.GetMethodDescription() + " - id:" + item.ID, ex);
                }
                else
                {
                    
                    _log.Error("Errore nel caricamento del Movimento Contabile: " + Utility.GetMethodDescription() + " - Movimento --> null", ex);
                }
                throw;
            }
        }
Beispiel #3
0
 private void listaMouseUp(object sender, MouseEventArgs e)
 {
     _movimentoClick = null;
     if (e.Button == MouseButtons.Right)
     {
         _movimentoClick = DataGridHelper.GetCellEvent<MovimentoContabileListaDTO>(listaMovimenti, e);
         if (_movimentoClick != null)
             contextMenuStrip1.Show(listaMovimenti, e.X, e.Y);
     }
 }
        private void btnRicevutaClick(object sender, EventArgs e)
        {
            try
            {
                var condominio = sceltaCondominioCombo1.CondominioSelected;

                if (condominio != null)
                {
                    // ====================================================================
                    // Descrizione del condominio
                    // ====================================================================
                    var righeDaPubblicare = new string[4];
                    if (!string.IsNullOrEmpty(condominio.IndirizzoCompleto))
                    {
                        var righeCondominio = condominio.IndirizzoCompleto.Split('&');
                        for (var i = 0; i < 4; i++)
                        {
                            if (righeCondominio.Length > i)
                            {
                                if (!string.IsNullOrEmpty(righeDaPubblicare[0]))
                                    righeDaPubblicare[0] += " ";
                                righeDaPubblicare[0] += righeCondominio[i];
                            }
                            righeDaPubblicare[i] = string.Empty;
                        }
                    }

                    // ====================================================================
                    // Recupero l'intestazione dello studio
                    // ====================================================================
                    var azienda = getAziendaService().GetAzienda();
                    var intestazioneStudio = azienda.Descrizione;
                    var viaStudio = string.Empty;
                    var capStudio = string.Empty;
                    var localitaStudio = string.Empty;
                    var comuneLettera = string.Empty;
                    if (azienda.IndirizzoSede != null && !string.IsNullOrEmpty(azienda.IndirizzoSede.DescrizioneComune))
                    {
                        viaStudio = azienda.IndirizzoSede.Indirizzo + " n. " + azienda.IndirizzoSede.Civico;
                        capStudio = azienda.IndirizzoSede.Cap;
                        localitaStudio = azienda.IndirizzoSede.DescrizioneComune + " " + azienda.IndirizzoSede.CodiceProvincia;
                        comuneLettera = azienda.IndirizzoSede.DescrizioneComune.Substring(0, 1).ToUpper() + azienda.IndirizzoSede.DescrizioneComune.Substring(1).ToLower();

                        // Collasso diverse informazioni nel campo viaStudio
                        viaStudio += " - " + capStudio + " " + localitaStudio;
                    }

                    var nominativoFornitore = string.Empty;
                    if (sceltaFornitoreSottocontoCombo.SelectedFornitore != null)
                        nominativoFornitore = sceltaFornitoreSottocontoCombo.SelectedFornitore.DisplayNominativo;

                    var numeroRiferimento = numeroProtocollo.Text;
                    var descrizioneCondominio = "CONDOMINIO: " + condominio.DisplayName;

                    // Conversione lista movimenti
                    IList<MovimentoContabileDTO> movimentiDto;
                    if (_testata != null && _testata.Movimenti != null && _testata.Movimenti.Count > 0)
                        movimentiDto = _testata.Movimenti.Where(item => item.NumeroRiga > 1).ToList();
                    else
                        movimentiDto = _movimentiDare;

                    var movimenti = new List<MovimentoContabileListaDTO>(movimentiDto.Count());
                    foreach (var movimento in movimentiDto)
                    {
                        try
                        {
                            if (movimento.IdConto.GetValueOrDefault() > 0)
                            {
                                var descrizioneConto = string.Empty;
                                SottoContoDTO sottoConto = null;
                                if (_esercizio != null)
                                {
                                    var conto = getPianoContiService().GetById(movimento.IdConto.GetValueOrDefault(), _esercizio.ID);
                                    descrizioneConto = conto.Descrizione;

                                    if (movimento.IdSottoConto != null)
                                        sottoConto = conto.SottoConti.SingleOrDefault(item => item.ID == movimento.IdSottoConto.GetValueOrDefault());
                                    if (sottoConto != null)
                                        descrizioneConto += " - " + sottoConto.Descrizione;
                                }

                                var movimentoLista = new MovimentoContabileListaDTO
                                {
                                    ID = movimento.ID,
                                    Descrizione = getMovimentoContabileService().GetDescrizioneMovimento(movimento, sceltaCondominioCombo1.CondominioSelected, descrizioneDettaglio.Text, (DateTime?)dataInizioCompetenza.Value, (DateTime?)dataFineCompetenza.Value),
                                    IdConto = movimento.IdConto.GetValueOrDefault(),
                                    Conto = descrizioneConto,
                                    IdSottoConto = movimento.IdSottoConto,
                                    SottoConto = (sottoConto != null) ? sottoConto.Descrizione : string.Empty,
                                    Importo = movimento.Importo
                                };
                                movimenti.Add(movimentoLista);
                            }

                        }
                        catch (Exception ex)
                        {
                            _log.ErrorFormat("Errore non previsto nella stampa della ricevuta del movimento economico - SINGOLO MOVIMENTO - {0} - movimento:{1} - azienda:{2}", ex, Utility.GetMethodDescription(), movimento != null ? movimento.ID.ToString() : "<NULL>", Login.Instance.CurrentLogin().Azienda);
                            throw;
                        }
                    }

                    if(movimentiDto.Count > 0)
                    {
                        var identificativoArchiviazioneOttica = "<NON DISPONIBILE>";
                        if (_testata != null)
                            identificativoArchiviazioneOttica = _testata.IdentificativoArchiviazioneOttica;

                        var addebitiPersonali = getMovimentoContabileService().GetAddebitiPersonaliByMovimenti(movimentiDto.Select(item => item.ID).ToList());

                        var anteprima = new AnteprimaStampa(movimenti, addebitiPersonali,
                                new RicevutaSpesaReportParameters
                                    (
                                        righeDaPubblicare,
                                        string.Empty,
                                        intestazioneStudio,
                                        viaStudio,
                                        capStudio,
                                        localitaStudio,
                                        comuneLettera,
                                        dataRegistrazione.DateTime,
                                        nominativoFornitore,
                                        numeroRiferimento,
                                        identificativoArchiviazioneOttica,
                                        descrizioneCondominio,
                                        addebitiPersonali.Count > 0
                                    ));

                        anteprima.ShowDialog();
                        anteprima.Dispose();
                    }

                }

            }
            catch (Exception ex)
            {
                _log.ErrorFormat("Errore non previsto nella stampa della ricevuta del movimento economico - {0} - movimento:{1} - azienda:{2}", ex, Utility.GetMethodDescription(), _movimentoAvere != null ? _movimentoAvere.ID.ToString() : "<NULL>", Login.Instance.CurrentLogin().Azienda);
            }
        }
        public Form GetStampaRicevutaSpesa(int idTestata, CondominioDTO condominio, EsercizioDTO esercizio)
        {
            try
            {
                Form form = null;
                var testata = _movimentoContabileService.GetTestataById(idTestata);

                if (condominio != null && testata != null && testata.Movimenti.Count > 0)
                {
                    // ====================================================================
                    // Descrizione del condominio
                    // ====================================================================
                    var righeCondominio = condominio.IndirizzoCompleto.Split('&');
                    var righeDaPubblicare = new string[4];
                    for (var i = 0; i < 4; i++)
                    {
                        if (righeCondominio.Length > i)
                        {
                            if (!string.IsNullOrEmpty(righeDaPubblicare[0]))
                                righeDaPubblicare[0] += " ";
                            righeDaPubblicare[0] += righeCondominio[i];
                        }
                        righeDaPubblicare[i] = string.Empty;
                    }

                    // ====================================================================
                    // Recupero l'intestazione dello studio
                    // ====================================================================
                    var azienda = _aziendaService.GetAzienda();
                    var intestazioneStudio = azienda.Descrizione;
                    var viaStudio = string.Empty;
                    var capStudio = string.Empty;
                    var localitaStudio = string.Empty;
                    var comuneLettera = string.Empty;
                    if (azienda.IndirizzoSede != null)
                    {
                        viaStudio = azienda.IndirizzoSede.Indirizzo + " n. " + azienda.IndirizzoSede.Civico;
                        capStudio = azienda.IndirizzoSede.Cap;

                        if (!string.IsNullOrEmpty(azienda.IndirizzoSede.DescrizioneComune))
                        {
                            localitaStudio = azienda.IndirizzoSede.DescrizioneComune + " " + azienda.IndirizzoSede.CodiceProvincia;
                            comuneLettera = azienda.IndirizzoSede.DescrizioneComune.Substring(0, 1).ToUpper() + azienda.IndirizzoSede.DescrizioneComune.Substring(1).ToLower();
                        }

                        // Collasso diverse informazioni nel campo viaStudio
                        viaStudio += " - " + capStudio + " " + localitaStudio;
                    }

                    var nominativoFornitore = string.Empty;
                    var movimentoAvere = _movimentoContabileService.GetMovimentoSingolo(testata);
                    if (movimentoAvere.IdFornitore > 0)
                        nominativoFornitore = _fornitoreService.GetById(movimentoAvere.IdFornitore.GetValueOrDefault()).DisplayNominativo;

                    var numeroRiferimento = testata.NumeroProtocollo.ToString();
                    var descrizioneCondominio = "CONDOMINIO: " + condominio.DisplayName;

                    // Conversione lista movimenti
                    var movimentiDto = _movimentoContabileService.GetMovimentiLista(testata);

                    var movimenti = new List<MovimentoContabileListaDTO>(movimentiDto.Count());
                    foreach (var movimento in movimentiDto)
                    {
                        int? idEsercizio = null;
                        if (esercizio != null)
                            idEsercizio = esercizio.ID;
                        var conto = _pianoContiService.GetById(movimento.IdConto.GetValueOrDefault(), idEsercizio);
                        if (conto != null)
                        {
                            SottoContoDTO sottoConto = null;
                            if (movimento.IdSottoConto != null)
                                sottoConto = conto.SottoConti.SingleOrDefault(item => item.ID == movimento.IdSottoConto.GetValueOrDefault());

                            var descrizioneConto = conto.Descrizione;
                            if (sottoConto != null)
                                descrizioneConto += " - " + sottoConto.Descrizione;

                            var movimentoLista = new MovimentoContabileListaDTO
                            {
                                ID = movimento.ID,
                                Descrizione = _movimentoContabileService.GetDescrizioneMovimento(movimento, condominio, testata.Descrizione, testata.DataInizioCompetenza, testata.DataFineCompetenza),
                                IdConto = movimento.IdConto.GetValueOrDefault(),
                                Conto = descrizioneConto,
                                IdSottoConto = movimento.IdSottoConto,
                                SottoConto = (sottoConto != null) ? sottoConto.Descrizione : string.Empty,
                                Importo = movimento.Importo
                            };
                            movimenti.Add(movimentoLista);
                        }
                    }

                    if(movimentiDto.Count > 0)
                    {
                        var addebitiPersonali = _movimentoContabileService.GetAddebitiPersonaliByMovimenti(movimentiDto.Select(item => item.ID).ToList());

                        form = new AnteprimaStampa(movimenti, addebitiPersonali,
                            new RicevutaSpesaReportParameters
                                (
                                    righeDaPubblicare,
                                    string.Empty,
                                    intestazioneStudio,
                                    viaStudio,
                                    capStudio,
                                    localitaStudio,
                                    comuneLettera,
                                    testata.DataRegistrazione.GetValueOrDefault(),
                                    nominativoFornitore,
                                    numeroRiferimento,
                                    testata.IdentificativoArchiviazioneOttica,
                                    descrizioneCondominio,
                                    addebitiPersonali.Count > 0
                                ));
                    }
                }

                return form;

            }
            catch (Exception ex)
            {
                var idEsercizio = string.Empty;
                if (esercizio != null)
                    idEsercizio = esercizio.ID.ToString();

                var idCondominio = string.Empty;
                if (condominio != null)
                    idCondominio = condominio.ID.ToString();
                
                _log.ErrorFormat("Errore nella stampa della ricevuta - {0} - testata:{1} - esercizio:{2} - condominio:{3}", ex, Gipasoft.Library.Utility.GetMethodDescription(), idTestata, idEsercizio, idCondominio);

                throw;
            }
        }
 public string DeleteMovimento(MovimentoContabileListaDTO movimento)
 {
     var result = GetServiceClient().DeleteMovimentoContabile(movimento.ID.GetValueOrDefault(), GetUserInfo());
     CloseService();
     return result;
 }
        public string AnnullaEvasione(MovimentoContabileListaDTO movimento)
        {
            var message = string.Empty;
            if (movimento.IdEvasioneBancaria != null)
                message = _movimentoBancarioService.AnnullaEvasione(new MovimentiBancariDTO { CodiceEvasioneBancaria = movimento.IdEvasioneBancaria.Value });
            else if (movimento.Stato == StatoMovimentoContabileEnum.Evaso)
                message = _movimentoBancarioService.AnnullaEvasioneManualeContabile(movimento.ID.GetValueOrDefault());

            return message;
        }