Exemple #1
0
        //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);
            }
        }