예제 #1
0
        internal bool ValidarDadosWebServiceDua(DUA dua, string numero, string cpfCnpj, string tipo, int ptvId)
        {
            if (dua == null)
            {
                Validacao.Add(Mensagem.PTV.DuaNaoEncontrado);
                return(Validacao.EhValido);
            }

            if (dua.PagamentoCodigo != "2" /*Pago e Consolidado*/ && dua.PagamentoCodigo != "1" /*Pago e não Consolidado*/)
            {
                Validacao.Add(Mensagem.PTV.DuaInvalido(numero));
            }

            float valorUnitario = _da.ObterValorUnitarioDua(dua.ReferenciaData);

            float quantidadeDuaPagos = dua.ReceitaValor / valorUnitario;

            int quantidadeDuaEmitido = _da.ObterQuantidadeDuaEmitidos(numero, cpfCnpj, ptvId);

            if (quantidadeDuaPagos <= quantidadeDuaEmitido)
            {
                Validacao.Add(Mensagem.PTV.DuaSemSaldo(numero));
            }

            return(Validacao.EhValido);
        }
예제 #2
0
        public void VerificarDua(string numero, string cpfCnpj, string tipo, int ptvId)
        {
            try
            {
                if (!_validar.ValidarDuaInicio(numero, cpfCnpj, tipo))
                {
                    return;
                }

                WSDUA wsDua = new WSDUA();
                DUA   dua   = null;

                if (tipo == "1")
                {
                    dua = wsDua.ObterDUAPF(numero, cpfCnpj);
                }
                else
                {
                    dua = wsDua.ObterDUAPJ(numero, cpfCnpj);
                }

                _validar.ValidarDadosWebServiceDua(dua, numero, cpfCnpj, tipo, ptvId);
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }
        }
예제 #3
0
        public void VerificarDUA(int filaID, string numero, string cpfCnpj, string tipo, int ptvId)
        {
            try
            {
                DUA dua = new DUA();

                var duaRequisicao = _da.BuscarRespostaConsultaDUA(filaID);

                if (duaRequisicao == null)
                {
                    return;
                }

                if (!duaRequisicao.Sucesso)
                {
                    Validacao.Add(Mensagem.PTV.ErroAoConsultarDua);
                    return;
                }

                var xser = new XmlSerializer(typeof(RespostaConsultaDua));

                RespostaConsultaDua xml = null;

                try
                {
                    xml = (RespostaConsultaDua)xser.Deserialize(new StringReader(duaRequisicao.Resultado));
                }
                catch
                {
                    Validacao.Add(Mensagem.PTV.ErroAoConsultarDua);
                    return;
                }

                if (xml.Body.DuaConsultaResponse.DuaConsultaResult.RetConsDua.Dua == null)
                {
                    Validacao.Add(Mensagem.PTV.ErroSefaz(xml.Body.DuaConsultaResponse.DuaConsultaResult.RetConsDua.XMotivo));
                    return;
                }

                dua.OrgaoSigla    = xml.Body.DuaConsultaResponse.DuaConsultaResult.RetConsDua.Dua.InfDUAe.Orgao.XSigla;
                dua.ServicoCodigo = xml.Body.DuaConsultaResponse.DuaConsultaResult.RetConsDua.Dua.InfDUAe.Area.CArea;

                dua.ReferenciaData = xml.Body.DuaConsultaResponse.DuaConsultaResult.RetConsDua.Dua.InfDUAe.Data.DRef;
                dua.CPF            = xml.Body.DuaConsultaResponse.DuaConsultaResult.RetConsDua.Dua.InfDUAe.Contri.Cpf;
                dua.CNPJ           = xml.Body.DuaConsultaResponse.DuaConsultaResult.RetConsDua.Dua.InfDUAe.Contri.Cnpj;

                dua.ReceitaValor    = (float)xml.Body.DuaConsultaResponse.DuaConsultaResult.RetConsDua.Dua.InfDUAe.Rece.VRece;
                dua.PagamentoCodigo = xml.Body.DuaConsultaResponse.DuaConsultaResult.RetConsDua.Dua.InfDUAe.Pgto.CPgto;

                _validar.ValidarDadosWebServiceDua(dua, numero, cpfCnpj, tipo, ptvId);
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }
        }
예제 #4
0
        public DUA ObterDUA(string numeroDUA, string cpfCnpj, eTipoPessoa tipoPessoa = 0)
        {
            try
            {
                string duaSenhaCertificado = _configSys.Obter <String>(ConfiguracaoSistema.KeyDUASenhaCertificado);

                var duaService = new DuaEService(_arquivoCertificado, duaSenhaCertificado);

                if (tipoPessoa == 0)
                {
                    tipoPessoa = cpfCnpj.Contains("/") ? eTipoPessoa.Juridica : eTipoPessoa.Fisica;
                }

                var resultado = duaService.ConsultarDua(numeroDUA, cpfCnpj.Replace(".", "").Replace("-", "").Replace("/", ""), tipoPessoa);

                var xser = new XmlSerializer(typeof(RespostaConsultaDua));

                var xml = (RespostaConsultaDua)xser.Deserialize(new StringReader(resultado));

                if (xml.Body.DuaConsultaResponse.DuaConsultaResult.RetConsDua.Dua == null)
                {
                    Validacao.Add(Mensagem.PTV.ErroSefaz(xml.Body.DuaConsultaResponse.DuaConsultaResult.RetConsDua.XMotivo));
                    Log.Error($"DUA: {numeroDUA} - CPF/CNPJ: {cpfCnpj}", new Exception(xml.Body.DuaConsultaResponse.DuaConsultaResult.RetConsDua.XMotivo));
                    return(null);
                }

                DUA retorno = new DUA();

                retorno.OrgaoSigla       = xml.Body.DuaConsultaResponse.DuaConsultaResult.RetConsDua.Dua.InfDUAe.Orgao.XSigla;
                retorno.ServicoCodigo    = xml.Body.DuaConsultaResponse.DuaConsultaResult.RetConsDua.Dua.InfDUAe.Area.CArea;
                retorno.ReferenciaData   = xml.Body.DuaConsultaResponse.DuaConsultaResult.RetConsDua.Dua.InfDUAe.Data.DRef;
                retorno.CPF              = xml.Body.DuaConsultaResponse.DuaConsultaResult.RetConsDua.Dua.InfDUAe.Contri.Cpf;
                retorno.CNPJ             = xml.Body.DuaConsultaResponse.DuaConsultaResult.RetConsDua.Dua.InfDUAe.Contri.Cnpj;
                retorno.ReceitaValor     = (float)xml.Body.DuaConsultaResponse.DuaConsultaResult.RetConsDua.Dua.InfDUAe.Rece.VRece;
                retorno.PagamentoCodigo  = xml.Body.DuaConsultaResponse.DuaConsultaResult.RetConsDua.Dua.InfDUAe.Pgto.CPgto;
                retorno.ValorTotal       = (float)xml.Body.DuaConsultaResponse.DuaConsultaResult.RetConsDua.Dua.InfDUAe.Valor.VTot;
                retorno.CodigoServicoRef = xml.Body.DuaConsultaResponse.DuaConsultaResult.RetConsDua.Dua.InfDUAe.Serv.CServ;

                return(retorno);
            }
            catch (Exception exc)
            {
                Validacao.Add(Mensagem.PTV.ErroAoConsultarDua);
                Log.Error($"DUA: {numeroDUA} - CPF/CNPJ: {cpfCnpj}", exc);
            }

            return(null);
        }
예제 #5
0
        internal bool ValidarDadosWebServiceDuaCFO(DUA dua, string numero, string cpfCnpj, LiberaracaoNumeroCFOCFOC liberacao = null)
        {
            if (dua == null)
            {
                Validacao.Add(Mensagem.PTV.DuaNaoEncontrado);
                return(Validacao.EhValido);
            }

            if (dua.PagamentoCodigo != "2" /*Pago e Consolidado*/ && dua.PagamentoCodigo != "1" /*Pago e não Consolidado*/)
            {
                Validacao.Add(Mensagem.PTV.DuaInvalido(numero));
            }

            if (dua.CodigoServicoRef != "21213")
            {
                Validacao.Add(Mensagem.LiberacaoNumeroCFOCFOC.CodigoDuaInvalido);
            }

            if (liberacao != null)
            {
                int quantidadeDuaEmitido = _da.ObterQuantidadeDuaEmitidos(numero, cpfCnpj);

                float ValorUnitario = _da.ObterValorUnitarioDua(dua.ReferenciaData);

                int totalPagos = (int)(Math.Round(dua.ValorTotal, 2) / Math.Round(ValorUnitario, 2));

                long totalCfo  = liberacao.NumeroFinalCFO - liberacao.NumeroInicialCFO;
                long totalCfoc = liberacao.NumeroFinalCFOC - liberacao.NumeroInicialCFOC;

                totalCfo += liberacao.QuantidadeDigitalCFO + liberacao.QuantidadeDigitalCFOC;

                if ((totalPagos * 25) < (quantidadeDuaEmitido + totalCfo + totalCfoc))
                {
                    Validacao.Add(Mensagem.PTV.DuaSemSaldo(numero));
                }
            }

            return(Validacao.EhValido);
        }
예제 #6
0
        public DUA ObterDUAPJ(string DUANumero, string DUACNPJ)
        {
            try
            {
                string duaSenhaCertificado = _configSys.Obter <String>(ConfiguracaoSistema.KeyDUASenhaCertificado);

                //var duaService = new DuaEService(HttpContext.Current.Server.MapPath(@"~/Content/_chave/Chaves Pública e Privada.pfx"), duaSenhaCertificado,"http://*****:*****@"~/Content/_chave/Chaves Pública e Privada.pfx"), duaSenhaCertificado);

                var resultado = duaService.ConsultaDuaCNPJ(DUANumero, DUACNPJ.Replace(".", "").Replace("/", "").Replace("-", ""));

                var xser = new XmlSerializer(typeof(RespostaConsultaDua));
                var xml  = (RespostaConsultaDua)xser.Deserialize(new StringReader(resultado));

                if (xml.Body.DuaConsultaResponse.DuaConsultaResult.RetConsDua.Dua == null)
                {
                    return(null);
                }

                DUA retorno = new DUA();

                retorno.OrgaoSigla    = xml.Body.DuaConsultaResponse.DuaConsultaResult.RetConsDua.Dua.InfDUAe.Orgao.XSigla;
                retorno.ServicoCodigo = xml.Body.DuaConsultaResponse.DuaConsultaResult.RetConsDua.Dua.InfDUAe.Area.CArea;

                retorno.ReferenciaData = xml.Body.DuaConsultaResponse.DuaConsultaResult.RetConsDua.Dua.InfDUAe.Data.DRef;
                retorno.CNPJ           = xml.Body.DuaConsultaResponse.DuaConsultaResult.RetConsDua.Dua.InfDUAe.Contri.Cnpj;

                retorno.ReceitaValor    = xml.Body.DuaConsultaResponse.DuaConsultaResult.RetConsDua.Dua.InfDUAe.Rece.VRece;
                retorno.PagamentoCodigo = xml.Body.DuaConsultaResponse.DuaConsultaResult.RetConsDua.Dua.InfDUAe.Pgto.CPgto;

                return(retorno);
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }

            return(null);
        }