//public object ConsultaArquivoPreparado(string key, string password, ArquivoRemessa objModel, string impressora) //{ // try // { // var result = DataHelperProdespPagementoContaDer.Procedure_ConsultaArquivoPreparado(key, password, objModel, impressora); // var resultItem = result.FirstOrDefault(); // if (!string.IsNullOrEmpty(resultItem?.outErro)) // throw new Exception($"Prodesp - {resultItem?.outErro}"); // return resultItem; // } // catch (Exception ex) // { // throw new Exception(ex.Message.Contains("EntradaCICS_Fora") // ? "Erro na comunicação com WebService Prodesp." // : ex.Message); // } //} public object ConsultaArquivoPreparado(string key, string password, ArquivoRemessa objModel, string impressora) { try { var result = DataHelperProdespPagementoContaDer.Procedure_ConsultaArquivoPreparado(key, password, objModel, impressora); var resultItem = result.FirstOrDefault(); string patters = @"^(\w+.{11})\s+(\w+.{21})\s+(\d.+)"; ArquivoRemessa arquivoRemessa = new ArquivoRemessa(); arquivoRemessa.NumeroGeracao = Convert.ToInt32(resultItem.outNGA); arquivoRemessa.Orgao = resultItem.outOrgao; arquivoRemessa.Situacao = resultItem.outSituacao; arquivoRemessa.CodigoConta = Convert.ToInt32(resultItem.outCodConta); arquivoRemessa.Banco = resultItem.outConta.Substring(0, 3); arquivoRemessa.Agencia = resultItem.outConta.Substring(4, 5); arquivoRemessa.NumeroConta = resultItem.outConta.Substring(12, 12); arquivoRemessa.DataPreparacao = Convert.ToDateTime(resultItem.outDataPrepArq); arquivoRemessa.DataPagamento = Convert.ToDateTime(resultItem.outDataPagto); arquivoRemessa.DataGeracao = resultItem.outDataGeracao; arquivoRemessa.dataPrevia = resultItem.outDataRetornoPrevia; arquivoRemessa.ResultadoPrevia = resultItem.outResultadoPrev; arquivoRemessa.dataProcessamento = resultItem.outDataRetornoProces; arquivoRemessa.ResultadoProcessamento = resultItem.outResultadoProces; arquivoRemessa.dataConsolidado = resultItem.outDataRetornoConsol; arquivoRemessa.ResultadoConsolidado = resultItem.outResultadoConsol; arquivoRemessa.QtOpArquivo = Convert.ToInt32(resultItem.outQtdadeOPArq.Replace(",", "").Replace(".", "")); arquivoRemessa.ValorTotal = Convert.ToInt32(resultItem.outValorTotal.Replace(",", "").Replace(".", "")); arquivoRemessa.QtDeposito = Convert.ToInt32(resultItem.outQtdadeDepositos.Replace(",", "").Replace(".", "")); arquivoRemessa.ValorDep = "R$ " + resultItem.outValorDeposito; arquivoRemessa.QtDocTed = Convert.ToInt32(resultItem.outQtdadeDocTed.Replace(",", "").Replace(".", "")); arquivoRemessa.ValorDocTed = "R$ " + resultItem.outValorDocTed; arquivoRemessa.ValorCreditado = "R$ " + resultItem.outValorTotalCreditado; arquivoRemessa.ValorNaoCreditado = "R$ " + resultItem.outValorNaoCreditado; arquivoRemessa.ListOps = new System.Collections.Generic.List <ArquivoRemessaOP>(); foreach (var item in result) { foreach (Match match in Regex.Matches(item.outOP, patters)) { ArquivoRemessaOP arquivoOP = new ArquivoRemessaOP(); arquivoOP.OP = match.Groups[1].Value; arquivoOP.ContaCredito = match.Groups[2].Value; arquivoOP.Valor = match.Groups[3].Value; arquivoRemessa.ListOps.Add(arquivoOP); } } if (!string.IsNullOrEmpty(resultItem?.outErro)) { throw new Exception($"Prodesp - {resultItem?.outErro}"); } return(arquivoRemessa); } catch (Exception ex) { throw new Exception(ex.Message.Contains("EntradaCICS_Fora") ? "Erro na comunicação com WebService Prodesp." : ex.Message); } }
//public object ConsultaArquivoPreparado(string key, string password, ArquivoRemessa objModel, string impressora) //{ // try // { // var result = DataHelperProdespPagementoContaDer.Procedure_ConsultaArquivoPreparado(key, password, objModel, impressora); // var resultItem = result.FirstOrDefault(); // if (!string.IsNullOrEmpty(resultItem?.outErro)) // throw new Exception($"Prodesp - {resultItem?.outErro}"); // return resultItem; // } // catch (Exception ex) // { // throw new Exception(ex.Message.Contains("EntradaCICS_Fora") // ? "Erro na comunicação com WebService Prodesp." // : ex.Message); // } //} public object ConsultaArquivoPreparado(string key, string password, ArquivoRemessa objModel, string impressora) { try { var result = DataHelperProdespPagementoContaDer.Procedure_ConsultaArquivoPreparado(key, password, objModel, impressora); var resultItem = result.FirstOrDefault(); string patters = @"^(\w+.{11})\s+(\w+.{21,22})\s+((\d{1,3}\.?)?(\d{1,3}\.?)?\d{1,3},\d{2})\s?(\w.+)?"; string pattersOP = @"^(\d{5}.{7}.{4})"; string pattersOcorrencia = @"(\w.+)"; ArquivoRemessa arquivoRemessa = new ArquivoRemessa(); arquivoRemessa.NumeroGeracao = !string.IsNullOrEmpty(resultItem.outNGA) ? Convert.ToInt32(resultItem.outNGA) : 0; arquivoRemessa.Orgao = resultItem.outOrgao; arquivoRemessa.Situacao = resultItem.outSituacao; arquivoRemessa.CodigoConta = !string.IsNullOrEmpty(resultItem.outCodConta) ? Convert.ToInt32(resultItem.outCodConta) : 0; arquivoRemessa.Banco = resultItem.outConta.Substring(0, 3); arquivoRemessa.Agencia = resultItem.outConta.Substring(4, 5); arquivoRemessa.NumeroConta = resultItem.outConta.Substring(12, 12); arquivoRemessa.ResultadoPreparacao = resultItem.outDataPrepArq + " " + resultItem.outHoraPrepArq; arquivoRemessa.DataPagamento = !string.IsNullOrEmpty(resultItem.outDataPagto) ? Convert.ToDateTime(resultItem.outDataPagto) : default(DateTime); arquivoRemessa.DataGeracao = resultItem.outDataGeracao + " " + resultItem.outHoraGeracaoArq; arquivoRemessa.dataPrevia = resultItem.outDataRetornoPrevia + " " + resultItem.outHoraRetornoPrevia; arquivoRemessa.ResultadoPrevia = resultItem.outResultadoPrevia; arquivoRemessa.dataProcessamento = resultItem.outDataRetornoProces + " " + resultItem.outHoraRetornoProces; arquivoRemessa.ResultadoProcessamento = resultItem.outResultadoProces; arquivoRemessa.dataConsolidado = resultItem.outDataRetornoConsol + " " + resultItem.outHoraRetornoConsol; arquivoRemessa.ResultadoConsolidado = resultItem.outResultadoConsol; arquivoRemessa.QtOpArquivo = !string.IsNullOrEmpty(resultItem.outQtdadeOPArq) ? Convert.ToInt32(resultItem.outQtdadeOPArq.Replace(",", "").Replace(".", "")) : 0; arquivoRemessa.ValorTotal = !string.IsNullOrEmpty(resultItem.outValorTotal) ? Convert.ToInt32(resultItem.outValorTotal.Replace(",", "").Replace(".", "")) : 0; arquivoRemessa.QtDeposito = !string.IsNullOrEmpty(resultItem.outQtdadeDepositos) ? Convert.ToInt32(resultItem.outQtdadeDepositos.Replace(",", "").Replace(".", "")) : 0; arquivoRemessa.ValorDep = "R$ " + resultItem.outValorDeposito; arquivoRemessa.QtDocTed = !string.IsNullOrEmpty(resultItem.outQtdadeDocTed) ? Convert.ToInt32(resultItem.outQtdadeDocTed.Replace(",", "").Replace(".", "")) : 0; arquivoRemessa.ValorDocTed = "R$ " + resultItem.outValorDocTed; arquivoRemessa.ValorCreditado = "R$ " + resultItem.outValorTotalCreditado; arquivoRemessa.ValorNaoCreditado = "R$ " + resultItem.outValorNaoCreditado; arquivoRemessa.ListOps = new System.Collections.Generic.List <ArquivoRemessaOP>(); ArquivoRemessaOP arquivoOP = new ArquivoRemessaOP(); string valida = "N"; int contador = 0; string op = ""; string conta = ""; string valor = ""; string ocorrencia = ""; foreach (var item in result) { if (Regex.IsMatch(item.outOP, pattersOP)) { if (valida == "S") { ArquivoRemessaOP arquivoOPAUX = new ArquivoRemessaOP(); arquivoOPAUX.OP = op; arquivoOPAUX.ContaCredito = conta; arquivoOPAUX.Valor = valor; arquivoOPAUX.Ocorrencia = ocorrencia; arquivoOPAUX.indice = contador + 1; arquivoRemessa.ListOps.Add(arquivoOPAUX); contador++; } foreach (Match match in Regex.Matches(item.outOP, patters)) { op = match.Groups[1].Value; conta = match.Groups[2].Value; valor = match.Groups[3].Value; ocorrencia = match.Groups[6].Value; valida = "S"; } } else //ocorrencia { foreach (Match match in Regex.Matches(item.outOP, pattersOcorrencia)) { //arquivoOPAUX.Ocorrencia = match.Groups[1].Value; ocorrencia = match.Groups[1].Value; } ArquivoRemessaOP arquivoOPAUX = new ArquivoRemessaOP(); arquivoOPAUX.OP = op; arquivoOPAUX.ContaCredito = conta; arquivoOPAUX.Valor = valor; arquivoOPAUX.Ocorrencia = ocorrencia; arquivoOPAUX.indice = contador + 1; arquivoRemessa.ListOps.Add(arquivoOPAUX); contador++; valida = "N"; } } if (valida == "S") { ArquivoRemessaOP arquivoOPAUX = new ArquivoRemessaOP(); arquivoOPAUX.OP = op; arquivoOPAUX.ContaCredito = conta; arquivoOPAUX.Valor = valor; arquivoOPAUX.Ocorrencia = ocorrencia; arquivoOPAUX.indice = contador + 1; arquivoRemessa.ListOps.Add(arquivoOPAUX); } arquivoRemessa.ListOps = arquivoRemessa.ListOps.OrderBy(c => c.indice).ToList(); if (!string.IsNullOrEmpty(resultItem?.outErro)) { throw new Exception($"Prodesp - {resultItem?.outErro}"); } return(arquivoRemessa); } catch (Exception ex) { throw new Exception(ex.Message.Contains("EntradaCICS_Fora") ? "Erro na comunicação com WebService Prodesp." : ex.Message); } }