Example #1
0
        private bool TransmitirProdesp(ConfirmacaoPagamento entity, int recursoId)
        {
            var cicsmo = new ChaveCicsmo();

            var    todosTransmitidos     = true;
            string verificaNumeroGerador = string.Empty;

            try
            {
                cicsmo = _chave.ObterChave(recursoId);

                var itens = entity.Items.OrderBy(p => p.NumeroDocumentoGerador);

                if (!itens.Any())
                {
                    todosTransmitidos = false;
                }

                Model.Entity.Seguranca.Regional orgao = new Model.Entity.Seguranca.Regional();

                if (string.IsNullOrWhiteSpace(entity.FonteLista)) // separa itens de totalizadores
                {
                    foreach (var item in itens)
                    {
                        TransmitirConfirmacaoProdesp(entity, cicsmo, ref todosTransmitidos, ref verificaNumeroGerador, orgao, item);
                    }
                }
            }
            catch (Exception ex)
            {
                throw SaveLog(ex, (short)EnumAcao.Transmitir, recursoId);
            }
            finally
            {
                _chave.LiberarChave(cicsmo.Codigo);

                if (todosTransmitidos)
                {
                    entity.StatusProdesp          = "S";
                    entity.TransmitidoProdesp     = true;
                    entity.DataTransmitidoProdesp = DateTime.Now;
                    entity.MensagemServicoProdesp = null;

                    this.Salvar(entity, recursoId);
                }
            }

            return(todosTransmitidos);
        }
        private void TransmitirProdesp(ConfirmacaoPagamento entity, int recursoId)
        {
            string verificaNumeroGerador = string.Empty;

            try
            {
                var itens = entity.Items.OrderBy(p => p.NumeroDocumentoGerador);

                //Transmitir confirmação Prodesp
                Model.Entity.Seguranca.Regional orgao = new Model.Entity.Seguranca.Regional();

                foreach (var item in itens)
                {
                    if (string.IsNullOrWhiteSpace(entity.FonteLista)) // remover, não necessita quando usamos o selecionar
                    {
                        if (item.NumeroDocumentoGerador.Substring(0, 17) != verificaNumeroGerador)
                        {
                            ConfirmacaoPagamento confirmarPagamentoUnico = new ConfirmacaoPagamento();
                            confirmarPagamentoUnico.Senha           = entity.Senha;
                            confirmarPagamentoUnico.Chave           = entity.Chave;
                            confirmarPagamentoUnico.DataConfirmacao = entity.DataConfirmacao;
                            confirmarPagamentoUnico.AnoReferencia   = entity.AnoReferencia;
                            confirmarPagamentoUnico.IdTipoDocumento = Convert.ToInt16(item.NumeroDocumentoGerador.Substring(0, 2));
                            confirmarPagamentoUnico.NumeroOP        = item.NumeroOp;
                            confirmarPagamentoUnico.TipoPagamento   = entity.TipoPagamento;
                            orgao.Id = Convert.ToInt16(item.NumeroOp.Substring(2, 2));

                            var result = DataHelperProdespPagamentoContaUnica.Procedure_ConfirmacaoPagtoOPApoio(entity.Chave, entity.Senha, confirmarPagamentoUnico, orgao);

                            verificaNumeroGerador = item.NumeroDocumentoGerador.Substring(0, 17);


                            if (result[0].outErro == "" || result[0].outErro == null)
                            {
                                confirmarPagamentoUnico.DataTransmitidoProdesp   = DateTime.Now;
                                confirmarPagamentoUnico.StatusProdesp            = "S";
                                confirmarPagamentoUnico.TransmitidoProdesp       = true;
                                confirmarPagamentoUnico.NumeroDocumento          = entity.NumeroDocumento;
                                confirmarPagamentoUnico.id_confirmacao_pagamento = entity.Id;
                                confirmarPagamentoUnico.NumeroDocumentoItem      = item.NumeroDocumentoGerador;
                            }
                            else
                            {
                                confirmarPagamentoUnico.DataTransmitidoProdesp   = DateTime.Now;
                                confirmarPagamentoUnico.StatusProdesp            = "E";
                                confirmarPagamentoUnico.TransmitidoProdesp       = false;
                                confirmarPagamentoUnico.NumeroDocumento          = item.NumeroNlDocumento;
                                confirmarPagamentoUnico.id_confirmacao_pagamento = entity.Id;
                                confirmarPagamentoUnico.MensagemServicoProdesp   = result[0].outErro;

                                confirmarPagamentoUnico.NumeroDocumentoItem = item.NumeroDocumentoGerador;
                            }

                            var update = this.AtualizarPagamento(confirmarPagamentoUnico);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                throw SaveLog(ex, (short)EnumAcao.Transmitir, recursoId);
            }
        }