private Certidao_endereco Valida_Endereco(int Numero, int Ano, int Codigo)
        {
            Tributario_bll    tributario_Class = new Tributario_bll("GTIconnection");
            Certidao_endereco dados            = tributario_Class.Retorna_Certidao_Endereco(Ano, Numero, Codigo);

            return(dados);
        }
        private void Exibe_Certidao_Endereco(Certidao_endereco dados)
        {
            lblMsg.Text = "";
            string sComplemento = dados.Li_compl;
            string sQuadras     = string.IsNullOrWhiteSpace(dados.Li_quadras) ? "" : " Quadra: " + dados.Li_quadras.ToString().Trim();
            string sLotes       = string.IsNullOrWhiteSpace(dados.Li_lotes) ? "" : " Lote: " + dados.Li_lotes.ToString().Trim();

            sComplemento += sQuadras + sLotes;
            string sEndereco = dados.Logradouro + ", " + dados.Numero.ToString() + sComplemento;


            ReportDocument crystalReport = new ReportDocument();

            crystalReport.Load(Server.MapPath("~/Report/CertidaoEnderecoValida.rpt"));
            crystalReport.SetParameterValue("NUMCERTIDAO", dados.Numero.ToString("00000") + "/" + dados.Ano.ToString("0000"));
            crystalReport.SetParameterValue("DATAEMISSAO", dados.Data.ToString("dd/MM/yyyy") + " às " + dados.Data.ToString("HH:mm:ss"));
            crystalReport.SetParameterValue("CONTROLE", dados.Numero.ToString("00000") + dados.Ano.ToString("0000") + "/" + dados.Codigo.ToString() + "-EA");
            crystalReport.SetParameterValue("ENDERECO", sEndereco);
            crystalReport.SetParameterValue("CADASTRO", dados.Codigo.ToString("000000"));
            crystalReport.SetParameterValue("NOME", dados.Nomecidadao);
            crystalReport.SetParameterValue("INSCRICAO", dados.Inscricao);
            crystalReport.SetParameterValue("BAIRRO", dados.descbairro);

            HttpContext.Current.Response.Buffer = false;
            HttpContext.Current.Response.ClearContent();
            HttpContext.Current.Response.ClearHeaders();

            try {
                crystalReport.ExportToHttpResponse(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat, HttpContext.Current.Response, true, "comp" + dados.Numero.ToString() + dados.Ano.ToString() + "_EA");
            } catch {
            } finally {
                crystalReport.Close();
                crystalReport.Dispose();
            }
        }
        protected void ValidarButton_Click(object sender, EventArgs e)
        {
            string sCod  = Codigo.Text;
            string sTipo = "";

            lblMsg.Text = "";
            int nPos = 0, nPos2 = 0, nCodigo = 0, nAno = 0, nNumero = 0;

            if (sCod.Trim().Length < 8)
            {
                lblMsg.Text = "Código de validação inválido.";
            }
            else
            {
                nPos = sCod.IndexOf("-");
                if (nPos < 6)
                {
                    lblMsg.Text = "Código de validação inválido.";
                }
                else
                {
                    nPos2 = sCod.IndexOf("/");
                    if (nPos2 < 5 || nPos - nPos2 < 2)
                    {
                        lblMsg.Text = "Código de validação inválido.";
                    }
                    else
                    {
                        nCodigo = Convert.ToInt32(sCod.Substring(nPos2 + 1, nPos - nPos2 - 1));
                        nAno    = Convert.ToInt32(sCod.Substring(nPos2 - 4, 4));
                        nNumero = Convert.ToInt32(sCod.Substring(0, 5));
                        if (nAno < 2010 || nAno > DateTime.Now.Year + 1)
                        {
                            lblMsg.Text = "Código de validação inválido.";
                        }
                        else
                        {
                            sTipo = sCod.Substring(sCod.Length - 2, 2);
                            if (sTipo == "EA")
                            {
                                Certidao_endereco dados = Valida_Endereco(nNumero, nAno, nCodigo);
                                if (dados != null)
                                {
                                    Exibe_Certidao_Endereco(dados);
                                }
                                else
                                {
                                    lblMsg.Text = "Certidão não cadastrada.";
                                }
                            }
                            else
                            {
                                lblMsg.Text = "Código de validação inválido.";
                            }
                        }
                    }
                }
            }
        }
        private void PrintReport(int Codigo)
        {
            Imovel_bll   imovel_Class = new Imovel_bll("GTIconnection");
            ImovelStruct Reg          = imovel_Class.Dados_Imovel(Codigo);
            string       sComplemento = string.IsNullOrWhiteSpace(Reg.Complemento) ? "" : " " + Reg.Complemento.ToString().Trim();
            string       sQuadras     = string.IsNullOrWhiteSpace(Reg.QuadraOriginal) ? "" : " Quadra: " + Reg.QuadraOriginal.ToString().Trim();
            string       sLotes       = string.IsNullOrWhiteSpace(Reg.LoteOriginal) ? "" : " Lote: " + Reg.LoteOriginal.ToString().Trim();

            sComplemento += sQuadras + sLotes;
            string sEndereco  = Reg.NomeLogradouro + ", " + Reg.Numero.ToString() + sComplemento;
            string sBairro    = Reg.NomeBairro;
            string sInscricao = Reg.Distrito.ToString() + "." + Reg.Setor.ToString("00") + "." + Reg.Quadra.ToString("0000") + "." + Reg.Lote.ToString("00000") + "." +
                                Reg.Seq.ToString("00") + "." + Reg.Unidade.ToString("00") + "." + Reg.SubUnidade.ToString("000");
            List <ProprietarioStruct> Lista = imovel_Class.Lista_Proprietario(Codigo, true);
            string sNome = Lista[0].Nome;

            ReportDocument crystalReport = new ReportDocument();

            crystalReport.Load(Server.MapPath("~/Report/CertidaoEndereco.rpt"));

            Tributario_bll tributario_Class = new Tributario_bll("GTIconnection");
            int            _numero_certidao = tributario_Class.Retorna_Codigo_Certidao(modelCore.TipoCertidao.Endereco);
            int            _ano_certidao    = DateTime.Now.Year;

            Certidao_endereco cert = new Certidao_endereco();

            cert.Codigo      = Codigo;
            cert.Ano         = _ano_certidao;
            cert.Numero      = _numero_certidao;
            cert.Data        = DateTime.Now;
            cert.Inscricao   = sInscricao;
            cert.Nomecidadao = sNome;
            cert.Logradouro  = Reg.NomeLogradouro;
            cert.Li_num      = Convert.ToInt32(Reg.Numero);
            cert.Li_compl    = Reg.Complemento;
            cert.descbairro  = sBairro;
            cert.Li_quadras  = Reg.QuadraOriginal;
            cert.Li_lotes    = Reg.LoteOriginal;
            Exception ex = tributario_Class.Insert_Certidao_Endereco(cert);

            if (ex != null)
            {
                throw ex;
            }
            else
            {
                crystalReport.SetParameterValue("NUMCERTIDAO", _numero_certidao.ToString("00000") + "/" + _ano_certidao.ToString("0000"));
                crystalReport.SetParameterValue("DATAEMISSAO", DateTime.Now.ToString("dd/MM/yyyy") + " às " + DateTime.Now.ToString("HH:mm:ss"));
                crystalReport.SetParameterValue("CONTROLE", _numero_certidao.ToString("00000") + _ano_certidao.ToString("0000") + "/" + Codigo.ToString() + "-EA");
                crystalReport.SetParameterValue("ENDERECO", sEndereco);
                crystalReport.SetParameterValue("CADASTRO", Codigo.ToString("000000"));
                crystalReport.SetParameterValue("NOME", sNome);
                crystalReport.SetParameterValue("INSCRICAO", sInscricao);
                crystalReport.SetParameterValue("BAIRRO", sBairro);

                HttpContext.Current.Response.Buffer = false;
                HttpContext.Current.Response.ClearContent();
                HttpContext.Current.Response.ClearHeaders();

                try {
                    crystalReport.ExportToHttpResponse(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat, HttpContext.Current.Response, true, "certidao" + _numero_certidao.ToString() + _ano_certidao.ToString());
                } catch {
                } finally {
                    crystalReport.Close();
                    crystalReport.Dispose();
                }
            }
        }
Exemplo n.º 5
0
        private void ImprimirButton_Click(object sender, EventArgs e)
        {
            if (Nome.Text == "")
            {
                MessageBox.Show("Carregue os dados de um contribuinte para poder imprimir a certidão.", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            Tributario_bll tributario_Class = new Tributario_bll(_connection);
            int            _userId = gtiCore.UserId;
            int            _ano_certidao = DateTime.Now.Year, _numero_certidao = 0, _codigo = Convert.ToInt32(Codigo.Text), _ano_isencao = DateTime.Now.Year;
            decimal        _percisencao = 0, SomaArea = 0;
            DateTime?      _data_processo_isencao = null;
            Report_Data    _dados = null;
            string         _nomeReport = "", _controle = "", _numero_processo = "";

            if (_tipo_certidao == TipoCertidao.Endereco)
            {
                _nomeReport      = "CertidaoEndereco";
                _numero_certidao = tributario_Class.Retorna_Codigo_Certidao(modelCore.TipoCertidao.Endereco);
                _controle        = _numero_certidao.ToString("00000") + _ano_certidao.ToString("0000") + "/" + _codigo.ToString() + "-EA";
                Certidao_endereco cert = new Certidao_endereco {
                    Codigo      = Convert.ToInt32(_codigo),
                    Ano         = _ano_certidao,
                    Numero      = _numero_certidao,
                    Data        = DateTime.Now,
                    Inscricao   = Inscricao.Text,
                    Nomecidadao = Nome.Text,
                    Logradouro  = Endereco.Text,
                    descbairro  = Bairro.Text,
                    Li_quadras  = Quadra.Text,
                    Li_lotes    = Lote.Text
                };
                Exception ex = tributario_Class.Insert_Certidao_Endereco(cert);
                if (ex != null)
                {
                    throw ex;
                }
            }
            else
            {
                if (_tipo_certidao == TipoCertidao.Isencao)
                {
                    Imovel_bll imovel_Class = new Imovel_bll(_connection);
                    bool       bImune       = imovel_Class.Verifica_Imunidade(_codigo);
                    _numero_certidao = tributario_Class.Retorna_Codigo_Certidao(modelCore.TipoCertidao.Isencao);
                    _controle        = _numero_certidao.ToString("00000") + _ano_certidao.ToString("0000") + "/" + _codigo.ToString() + "-CI";

                    if (bImune)
                    {
                        _percisencao = 100;
                        _nomeReport  = "CertidaoImunidade";
                    }
                    else
                    {
                        bool bIsentoProcesso = false;
                        List <IsencaoStruct> ListaIsencao = null;
                        ListaIsencao = imovel_Class.Lista_Imovel_Isencao(_codigo, DateTime.Now.Year);
                        if (ListaIsencao.Count > 0)
                        {
                            bIsentoProcesso = true;
                        }
                        if (bIsentoProcesso)
                        {
                            _nomeReport            = "CertidaoIsencaoProcesso";
                            _percisencao           = (decimal)ListaIsencao[0].Percisencao;
                            _numero_processo       = ListaIsencao[0].Numprocesso;
                            _data_processo_isencao = Convert.ToDateTime(ListaIsencao[0].dataprocesso);
                        }
                        else
                        {
                            SomaArea = imovel_Class.Soma_Area(_codigo);
                            if (SomaArea < 65)
                            {
                                //Se tiver área < 65m² mas tiver mais de 1 imóvel, perde a isenção.
                                int nQtdeImovel = imovel_Class.Qtde_Imovel_Cidadao(_codigo);
                                if (nQtdeImovel > 1)
                                {
                                    MessageBox.Show("Este imóvel não esta isento da cobrança de IPTU no ano atual.", "ERRO", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                    return;
                                }
                                _nomeReport = "CertidaoIsencao65";
                            }
                        }
                    }

                    Certidao_isencao cert = new Certidao_isencao {
                        Codigo       = _codigo,
                        Ano          = _ano_certidao,
                        Numero       = _numero_certidao,
                        Data         = DateTime.Now,
                        Inscricao    = Inscricao.Text,
                        Nomecidadao  = Nome.Text,
                        Logradouro   = Endereco.Text,
                        Descbairro   = Bairro.Text,
                        Li_quadras   = Quadra.Text,
                        Li_lotes     = Lote.Text,
                        Area         = SomaArea,
                        Percisencao  = _percisencao,
                        Numprocesso  = _numero_processo,
                        Dataprocesso = _data_processo_isencao
                    };
                    Exception ex = tributario_Class.Insert_Certidao_Isencao(cert);
                    if (ex != null)
                    {
                        throw ex;
                    }
                }
                else
                {
                    if (_tipo_certidao == TipoCertidao.ValorVenal)
                    {
                        _nomeReport      = "CertidaoValorVenal";
                        _numero_certidao = tributario_Class.Retorna_Codigo_Certidao(modelCore.TipoCertidao.ValorVenal);
                        _controle        = _numero_certidao.ToString("00000") + _ano_certidao.ToString("0000") + "/" + _codigo.ToString() + "-VV";
                        Certidao_valor_venal cert = new Certidao_valor_venal {
                            Codigo      = Convert.ToInt32(_codigo),
                            Ano         = _ano_certidao,
                            Numero      = _numero_certidao,
                            Data        = DateTime.Now,
                            Inscricao   = Inscricao.Text,
                            Nomecidadao = Nome.Text,
                            Logradouro  = Endereco.Text,
                            Descbairro  = Bairro.Text,
                            Li_quadras  = Quadra.Text,
                            Li_lotes    = Lote.Text
                        };
                        Exception ex = tributario_Class.Insert_Certidao_ValorVenal(cert);
                        if (ex != null)
                        {
                            throw ex;
                        }
                    }
                    else
                    {
                        if (_tipo_certidao == TipoCertidao.Debito)
                        {
                            //***Verifica débito
                            Certidao_debito_detalhe dadosCertidao = tributario_Class.Certidao_Debito(_codigo);
                            if (dadosCertidao.Tipo_Retorno == RetornoCertidaoDebito.Negativa)
                            {
                                sTipoCertidao = "NEGATIVA";
                                sNao          = "não ";
                                nRet          = 3;
                                sSufixo       = "CN";
                                if (_tipo_cadastro == TipoCadastro.Imovel)
                                {
                                    _nomeReport = "CertidaoDebitoImovel";
                                }
                                else
                                {
                                    if (_tipo_cadastro == TipoCadastro.Empresa)
                                    {
                                        _nomeReport = "CertidaoDebitoEmpresa";
                                    }
                                }
                            }
                            else
                            {
                                if (dadosCertidao.Tipo_Retorno == RetornoCertidaoDebito.Positiva)
                                {
                                    sTipoCertidao = "POSITIVA";
                                    nRet          = 4;
                                    sSufixo       = "CP";
                                    if (_tipo_cadastro == TipoCadastro.Imovel)
                                    {
                                        _nomeReport = "CertidaoDebitoImovel";
                                    }
                                    else
                                    {
                                        if (_tipo_cadastro == TipoCadastro.Empresa)
                                        {
                                            _nomeReport = "CertidaoDebitoEmpresa";
                                        }
                                    }
                                }
                                else
                                {
                                    if (dadosCertidao.Tipo_Retorno == RetornoCertidaoDebito.NegativaPositiva)
                                    {
                                        sTipoCertidao = "POSITIVA COM EFEITO NEGATIVA";
                                        nRet          = 5;
                                        sSufixo       = "PN";
                                        if (_tipo_cadastro == TipoCadastro.Imovel)
                                        {
                                            _nomeReport = "CertidaoDebitoImovelPN";
                                        }
                                        else
                                        {
                                            if (_tipo_cadastro == TipoCadastro.Empresa)
                                            {
                                                _nomeReport = "CertidaoDebitoEmpresaPN";
                                            }
                                        }
                                    }
                                }
                            }
                            sTributo = dadosCertidao.Descricao_Lancamentos;

                            _numero_certidao = tributario_Class.Retorna_Codigo_Certidao(modelCore.TipoCertidao.Debito);
                            _controle        = _numero_certidao.ToString("00000") + _ano_certidao.ToString("0000") + "/" + _codigo.ToString() + "-" + sSufixo;
                            Certidao_debito cert = new Certidao_debito {
                                Codigo       = Convert.ToInt32(_codigo),
                                Ano          = (short)_ano_certidao,
                                Ret          = nRet,
                                Numero       = _numero_certidao,
                                Datagravada  = DateTime.Now,
                                Inscricao    = Inscricao.Text,
                                Nome         = Nome.Text,
                                Logradouro   = Endereco.Text,
                                Bairro       = Bairro.Text,
                                Cidade       = Cidade.Text,
                                Processo     = Processo.Text,
                                Dataprocesso = _data_processo,
                                Atendente    = gtiCore.LastUser,
                                Cpf          = sCPF,
                                Cnpj         = sCNPJ,
                                Atividade    = Atividade.Text,
                                Lancamento   = dadosCertidao.Descricao_Lancamentos
                            };
                            Exception ex = tributario_Class.Insert_Certidao_Debito(cert);
                            if (ex != null)
                            {
                                throw ex;
                            }
                        }
                    }
                }

                if (_numero_certidao > 0)
                {
                    _dados = new Report_Data()
                    {
                        Codigo                = Convert.ToInt32(Codigo.Text),
                        Inscricao             = Inscricao.Text,
                        Nome                  = Nome.Text,
                        Cpf_cnpj              = Doc.Text,
                        Endereco              = Endereco.Text,
                        Nome_bairro           = Bairro.Text,
                        Quadra_original       = Quadra.Text,
                        Lote_original         = Lote.Text,
                        Nome_cidade           = Cidade.Text,
                        Cep                   = Cep.Text,
                        Numero_Certidao       = _numero_certidao.ToString("000000") + "/" + _ano_certidao.ToString(),
                        Controle              = _controle,
                        Assinatura_Hide       = Assinatura.Checked,
                        Processo              = Processo.Text,
                        Data_Processo         = _data_processo,
                        UserId                = _userId,
                        Perc_Isencao          = _percisencao,
                        Data_Processo_Isencao = _data_processo_isencao,
                        Processo_Isencao      = _numero_processo,
                        AnoIsencao            = _ano_isencao,
                        Area                  = SomaArea,
                        Nao                   = sNao,
                        TipoCertidao          = sTipoCertidao,
                        Tributos              = sTributo,
                        Atividade             = sAtividade
                    };
                    //ReportCR fRpt = new ReportCR(_nomeReport, _dados,null);
                    //fRpt.ShowDialog();
                    ClearFields();
                }
            }
        }
Exemplo n.º 6
0
        public IActionResult Certidao_Endereco(CertidaoViewModel model)
        {
            int  _codigo    = 0;
            int  _numero    = tributarioRepository.Retorna_Codigo_Certidao(Functions.TipoCertidao.Endereco);
            bool _existeCod = false;
            CertidaoViewModel certidaoViewModel = new CertidaoViewModel();

            ViewBag.Result = "";

            if (model.Inscricao != null)
            {
                _codigo = Convert.ToInt32(model.Inscricao);
                if (_codigo < 100000)
                {
                    _existeCod = _imovelRepository.Existe_Imovel(_codigo);
                }
            }

            if (!Captcha.ValidateCaptchaCode(model.CaptchaCode, HttpContext))
            {
                ViewBag.Result = "Código de verificação inválido.";
                return(View(certidaoViewModel));
            }

            if (!_existeCod)
            {
                ViewBag.Result = "Imóvel não cadastrado.";
                return(View(certidaoViewModel));
            }

            List <Certidao>           certidao  = new List <Certidao>();
            List <ProprietarioStruct> listaProp = _imovelRepository.Lista_Proprietario(_codigo, true);
            ImovelStruct _dados = _imovelRepository.Dados_Imovel(_codigo);
            Certidao     reg    = new Certidao()
            {
                Codigo               = _dados.Codigo,
                Inscricao            = _dados.Inscricao,
                Endereco             = _dados.NomeLogradouro,
                Endereco_Numero      = (int)_dados.Numero,
                Endereco_Complemento = _dados.Complemento,
                Bairro               = _dados.NomeBairro ?? "",
                Nome_Requerente      = listaProp[0].Nome,
                Ano             = DateTime.Now.Year,
                Numero          = _numero,
                Quadra_Original = _dados.QuadraOriginal ?? "",
                Lote_Original   = _dados.LoteOriginal ?? "",
                Controle        = _numero.ToString("00000") + DateTime.Now.Year.ToString("0000") + "/" + _codigo.ToString() + "-EA"
            };

            reg.Numero_Ano = reg.Numero.ToString("00000") + "/" + reg.Ano;
            certidao.Add(reg);

            Models.Certidao_endereco regCert = new Certidao_endereco()
            {
                Ano         = reg.Ano,
                Codigo      = reg.Codigo,
                Data        = DateTime.Now,
                descbairro  = reg.Bairro,
                Inscricao   = reg.Inscricao,
                Logradouro  = reg.Endereco,
                Nomecidadao = reg.Nome_Requerente,
                Li_lotes    = reg.Lote_Original,
                Li_compl    = reg.Endereco_Complemento,
                Li_num      = reg.Endereco_Numero,
                Li_quadras  = reg.Quadra_Original,
                Numero      = reg.Numero
            };
            Exception ex = tributarioRepository.Insert_Certidao_Endereco(regCert);

            if (ex != null)
            {
                ViewBag.Result = "Ocorreu um erro no processamento das informações.";
                return(View(certidaoViewModel));
            }

            ReportDocument rd = new ReportDocument();

            rd.Load(hostingEnvironment.ContentRootPath + "\\Reports\\Certidao_Endereco.rpt");

            try {
                rd.SetDataSource(certidao);
                Stream stream = rd.ExportToStream(ExportFormatType.PortableDocFormat);
                return(File(stream, "application/pdf", "Certidao_Endereco.pdf"));
            } catch {
                throw;
            }
        }
Exemplo n.º 7
0
        public IActionResult Validate_CE(CertidaoViewModel model)
        {
            int    _codigo, _ano, _numero;
            string _chave = model.Chave;

            if (model.Chave != null)
            {
                Certidao        reg          = new Certidao();
                List <Certidao> certidao     = new List <Certidao>();
                chaveStruct     _chaveStruct = tributarioRepository.Valida_Certidao(_chave);
                if (!_chaveStruct.Valido)
                {
                    ViewBag.Result = "Chave de autenticação da certidão inválida.";
                    return(View("Certidao_Endereco", model));
                }
                else
                {
                    _codigo = _chaveStruct.Codigo;
                    _numero = _chaveStruct.Numero;
                    _ano    = _chaveStruct.Ano;

                    Certidao_endereco certidaoGerada = tributarioRepository.Retorna_Certidao_Endereco(_ano, _numero, _codigo);
                    if (certidaoGerada != null)
                    {
                        reg.Codigo               = _codigo;
                        reg.Ano                  = _ano;
                        reg.Numero               = _numero;
                        reg.Endereco             = certidaoGerada.Logradouro;
                        reg.Endereco_Numero      = certidaoGerada.Li_num;
                        reg.Endereco_Complemento = certidaoGerada.Li_compl ?? "";
                        reg.Bairro               = certidaoGerada.descbairro;
                        reg.Nome_Requerente      = certidaoGerada.Nomecidadao;
                        reg.Data_Geracao         = certidaoGerada.Data;
                        reg.Inscricao            = certidaoGerada.Inscricao;
                        reg.Numero_Ano           = reg.Numero.ToString("00000") + "/" + reg.Ano;
                    }
                    else
                    {
                        ViewBag.Result = "Ocorreu um erro ao processar as informações.";
                        return(View("Certidao_Endereco", model));
                    }
                };

                certidao.Add(reg);

                ReportDocument rd = new ReportDocument();
                rd.Load(hostingEnvironment.ContentRootPath + "\\Reports\\Certidao_Endereco_Valida.rpt");

                try {
                    rd.SetDataSource(certidao);
                    Stream stream = rd.ExportToStream(ExportFormatType.PortableDocFormat);
                    return(File(stream, "application/pdf", "Certidao_Endereco.pdf"));
                } catch {
                    throw;
                }
            }
            else
            {
                ViewBag.Result = "Chave de validação inválida.";
                return(View("Certidao_Endereço", model));
            }
        }
Exemplo n.º 8
0
        public ActionResult Checkgticd(CertidaoViewModel model, string c)
        {
            int    _codigo, _ano, _numero;
            string _tipo, _chave = c, _pdfFileName = "";

            if (c != null)
            {
                Tributario_bll  tributarioRepository = new Tributario_bll(_connection);
                Certidao        reg          = new Certidao();
                List <Certidao> certidao     = new List <Certidao>();
                chaveStruct     _chaveStruct = tributarioRepository.Valida_Certidao(_chave);
                _codigo = _chaveStruct.Codigo;
                _numero = _chaveStruct.Numero;
                _ano    = _chaveStruct.Ano;
                _tipo   = _chaveStruct.Tipo;
                if (_numero == 0)
                {
                    return(null);
                }
                ReportDocument rd = new ReportDocument();
                switch (_tipo)
                {
                case "EA": {
                    //####################Certidão endereço####################################
                    Certidao_endereco certidaoGerada = tributarioRepository.Retorna_Certidao_Endereco(_ano, _numero, _codigo);
                    reg.Codigo               = _codigo;
                    reg.Ano                  = _ano;
                    reg.Numero               = _numero;
                    reg.Endereco             = certidaoGerada.Logradouro;
                    reg.Endereco_Numero      = certidaoGerada.Li_num;
                    reg.Endereco_Complemento = certidaoGerada.Li_compl ?? "";
                    reg.Bairro               = certidaoGerada.descbairro;
                    reg.Nome_Requerente      = certidaoGerada.Nomecidadao;
                    reg.Data_Geracao         = certidaoGerada.Data;
                    reg.Inscricao            = certidaoGerada.Inscricao;
                    reg.Numero_Ano           = reg.Numero.ToString("00000") + "/" + reg.Ano;
                    certidao.Add(reg);

                    rd.Load(System.Web.HttpContext.Current.Server.MapPath("~/Reports/Certidao_Endereco_Valida.rpt"));
                    rd.SetDataSource(certidao);
                    _pdfFileName = "Certidao_Endereco.pdf";
                    break;
                }

                //#################################################################################
                case "IN":
                case "IP":
                case "IS":
                case "CN":
                case "CP":
                case "PN": {
                    //##########################Certidão débito####################################
                    Certidao_debito_doc _dados = tributarioRepository.Retorna_Certidao_Debito_Doc(_chave);
                    Certidao            regdeb = new Certidao()
                    {
                        Codigo          = _codigo,
                        Nome_Requerente = _dados.Nome,
                        Ano             = _ano,
                        Numero          = _numero,
                        Numero_Ano      = _dados.Numero.ToString("00000") + "/" + _dados.Ano.ToString(),
                        Controle        = _chave,
                        Tributo         = _dados.Ret == 3?"N/A": _dados.Tributo,
                        Cpf_Cnpj        = _dados.Cpf_cnpj,
                        Data_Geracao    = _dados.Data_emissao,
                        Tipo_Certidao   = _dados.Ret == 3 ? "Negativa" : _dados.Ret == 4 ? "Positiva" : "Positiva com Efeito Negativa"
                    };
                    certidao.Add(regdeb);
                    rd.Load(System.Web.HttpContext.Current.Server.MapPath("~/Reports/CertidaoDebitoDocValida.rpt"));
                    rd.SetDataSource(certidao);
                    _pdfFileName = "Certidao_Debito.pdf";
                    break;
                }

                //#################################################################################
                case "CQ": {
                    List <Imunidade_Issqn> certidaoIM    = new List <Imunidade_Issqn>();
                    Imunidade_Issqn        certidaoImune = tributarioRepository.Retorna_Certidao_Imunidade_Issqn(_chave);
                    Imunidade_Issqn        regIm         = new Imunidade_Issqn()
                    {
                        Codigo       = _codigo,
                        Razao_social = certidaoImune.Razao_social,
                        Ano          = _ano,
                        Numero       = _numero,
                        Controle     = _chave,
                        Endereco     = certidaoImune.Endereco,
                        Documento    = certidaoImune.Documento,
                        Data_Gravada = certidaoImune.Data_Gravada,
                    };
                    certidaoIM.Add(regIm);
                    rd.Load(System.Web.HttpContext.Current.Server.MapPath("~/Reports/Imunidade_issqn_valida.rpt"));
                    rd.SetDataSource(certidaoIM);
                    _pdfFileName = "Certidao_Imunidade_Valida.pdf";
                    break;
                }

                //#################################################################################
                case "AF":
                case "AN": {
                    //#########################Alvará de Funcionamento#############################
                    _codigo = _chaveStruct.Codigo;
                    _numero = _chaveStruct.Numero;
                    _ano    = _chaveStruct.Ano;
                    Empresa_bll          empresaRepository = new Empresa_bll(_connection);
                    Alvara_funcionamento _dadosalvara      = empresaRepository.Alvara_Funcionamento_gravado(_chave);
                    if (_dadosalvara != null)
                    {
                        Certidao regAlvara = new Certidao()
                        {
                            Codigo            = _codigo,
                            Razao_Social      = _dadosalvara.Razao_social,
                            Endereco          = _dadosalvara.Endereco + ", " + _dadosalvara.Numero,
                            Bairro            = _dadosalvara.Bairro ?? "",
                            Ano               = _ano,
                            Numero            = _numero,
                            Controle          = _chave,
                            Atividade_Extenso = _dadosalvara.Atividade,
                            Cpf_Cnpj          = _dadosalvara.Documento,
                            Horario           = _dadosalvara.Horario
                        };
                        certidao.Add(regAlvara);
                    }
                    rd.Load(System.Web.HttpContext.Current.Server.MapPath("~/Reports/Alvara_Funcionamento_Valida.rpt"));
                    rd.SetDataSource(certidao);
                    _pdfFileName = "AlvaraValida.pdf";
                    break;
                }

                //#################################################################################
                case "IE":
                case "XE":
                case "XA":
                    break;

                case "CI":
                    break;

                case "VV": {
                    //#########################Certidão Valor Venal############################
                    Certidao_valor_venal certidaoGerada = tributarioRepository.Retorna_Certidao_ValorVenal(_ano, _numero, _codigo);
                    if (certidaoGerada != null)
                    {
                        reg.Codigo               = _codigo;
                        reg.Ano                  = _ano;
                        reg.Numero               = _numero;
                        reg.Endereco             = certidaoGerada.Logradouro;
                        reg.Endereco_Numero      = certidaoGerada.Li_num;
                        reg.Endereco_Complemento = certidaoGerada.Li_compl ?? "";
                        reg.Bairro               = certidaoGerada.Descbairro;
                        reg.Nome_Requerente      = certidaoGerada.Nomecidadao;
                        reg.Data_Geracao         = certidaoGerada.Data;
                        reg.Inscricao            = certidaoGerada.Inscricao;
                        reg.Area                 = certidaoGerada.Areaterreno;
                        reg.VVT                  = certidaoGerada.Vvt;
                        reg.VVP                  = certidaoGerada.Vvp;
                        reg.VVI                  = certidaoGerada.Vvi;
                        reg.Numero_Ano           = reg.Numero.ToString("00000") + "/" + reg.Ano;
                    }
                    else
                    {
                        ViewBag.Result = "Ocorreu um erro ao processar as informações.";
                        return(View("Certidao_Valor_Venal", model));
                    }

                    certidao.Add(reg);
                    rd.Load(System.Web.HttpContext.Current.Server.MapPath("~/Reports/Certidao_Valor_venal_Valida.rpt"));
                    rd.SetDataSource(certidao);
                    _pdfFileName = "Certidao_ValorVenal.pdf";
                    break;
                }

                //#################################################################################
                default:
                    break;
                }

                try {
                    Stream stream = rd.ExportToStream(ExportFormatType.PortableDocFormat);
                    return(File(stream, "application/pdf", _pdfFileName));
                } catch {
                    throw;
                }
            }

            return(null);
        }