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); } }