Exemplo n.º 1
0
        private Certidao_debito Valida_Dados(int Numero, int Ano, int Codigo)
        {
            Tributario_bll  tributario_Class = new Tributario_bll("GTIconnection");
            Certidao_debito dados            = tributario_Class.Retorna_Certidao_Debito(Ano, Numero, Codigo);

            return(dados);
        }
Exemplo n.º 2
0
        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 == "CN" || sTipo == "CP" || sTipo == "PN")
                            {
                                Certidao_debito dados = Valida_Dados(nNumero, nAno, nCodigo);
                                if (dados != null)
                                {
                                    Exibe_Certidao_Debito(dados);
                                }
                                else
                                {
                                    lblMsg.Text = "Certidão não cadastrada.";
                                }
                            }
                            else
                            {
                                lblMsg.Text = "Código de validação inválido.";
                            }
                        }
                    }
                }
            }
        }
Exemplo n.º 3
0
        private void Exibe_Certidao_Debito(Certidao_debito dados)
        {
            lblMsg.Text = "";
            string sEndereco = dados.Logradouro + ", " + dados.Numero.ToString();
            string sTipo     = "";

            if (dados.Ret == 4)
            {
                sTipo = "CERTDÂO POSITIVA";
            }
            else
            {
                if (dados.Ret == 5)
                {
                    sTipo = "CERTIDÃO POSITIVA EFEITO NEGATIVA";
                }
                else
                {
                    sTipo = "CERTIDÃO NEGATIVA";
                }
            }

            Imovel_bll imovel_Class = new Imovel_bll("GTIconnection");
            string     sProc        = dados.Processo;

            ReportDocument crystalReport = new ReportDocument();

            crystalReport.Load(Server.MapPath("~/Report/CertidaoDebitoValida.rpt"));
            crystalReport.SetParameterValue("NUMCERTIDAO", dados.Numero.ToString("00000") + "/" + dados.Ano.ToString("0000"));
            crystalReport.SetParameterValue("DATAEMISSAO", Convert.ToDateTime(dados.Datagravada).ToString("dd/MM/yyyy") + " às " + Convert.ToDateTime(dados.Datagravada).ToString("HH:mm:ss"));
            crystalReport.SetParameterValue("CONTROLE", dados.Numero.ToString("00000") + dados.Ano.ToString("0000") + "/" + dados.Codigo.ToString() + "-CI");
            crystalReport.SetParameterValue("ENDERECO", sEndereco);
            crystalReport.SetParameterValue("CADASTRO", Convert.ToInt32(dados.Codigo).ToString("000000"));
            crystalReport.SetParameterValue("NOME", dados.Nome);
            crystalReport.SetParameterValue("INSCRICAO", string.IsNullOrWhiteSpace(dados.Inscricao)?"N/A":dados.Inscricao);
            crystalReport.SetParameterValue("BAIRRO", dados.Bairro);
            crystalReport.SetParameterValue("TIPO", sTipo);
            crystalReport.SetParameterValue("PROCESSO", sProc);
            crystalReport.SetParameterValue("ATIVIDADE", string.IsNullOrWhiteSpace(dados.Atividade) ? "N/A" : dados.Atividade);
            crystalReport.SetParameterValue("TRIBUTO", string.IsNullOrWhiteSpace(dados.Lancamento) ? "N/A" : dados.Lancamento);

            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());
            } catch {
            } finally {
                crystalReport.Close();
                crystalReport.Dispose();
            }
        }
Exemplo n.º 4
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.º 5
0
        private void PrintReport(int Codigo, TipoCadastro _tipo_cadastro)
        {
            ReportDocument crystalReport = new ReportDocument();
            string         sComplemento = "", sQuadras = "", sLotes = "", sEndereco = "", sBairro = "", sInscricao = "", sNome = "", sCidade = "", sUF = "", sNumProcesso = "9222-3/2012";
            string         sData = "18/04/2012", sAtendente = "GTI.Web", sCPF = "", sCNPJ = "", sAtividade = "", sTipoCertidao = "", sTributo = "", sSufixo = "", sNao = "", sDoc = "", sCertifica = "";
            short          nNumeroImovel = 0, nRet = 0;
            DateTime       dDataProc = Convert.ToDateTime(sData);

            if (_tipo_cadastro == TipoCadastro.Imovel)
            {
                Imovel_bll   imovel_Class = new Imovel_bll("GTIconnection");
                ImovelStruct Reg          = imovel_Class.Dados_Imovel(Codigo);
                sComplemento  = string.IsNullOrWhiteSpace(Reg.Complemento) ? "" : " " + Reg.Complemento.ToString().Trim();
                sQuadras      = string.IsNullOrWhiteSpace(Reg.QuadraOriginal) ? "" : " Quadra: " + Reg.QuadraOriginal.ToString().Trim();
                sLotes        = string.IsNullOrWhiteSpace(Reg.LoteOriginal) ? "" : " Lote: " + Reg.LoteOriginal.ToString().Trim();
                sComplemento += sQuadras + sLotes;
                sEndereco     = Reg.NomeLogradouro + ", " + Reg.Numero.ToString() + sComplemento;
                nNumeroImovel = (short)Reg.Numero;
                sBairro       = Reg.NomeBairro;
                sCidade       = "JABOTICABAL";
                sUF           = "SP";
                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);
                sNome = Lista[0].Nome;
                sCPF  = Lista[0].CPF;
                sCNPJ = Lista[0].CPF;
            }
            else
            {
                Empresa_bll   empresa_Class = new Empresa_bll("GTIconnection");
                EmpresaStruct Reg           = empresa_Class.Retorna_Empresa(Codigo);
                sComplemento  = string.IsNullOrWhiteSpace(Reg.Complemento) ? "" : " " + Reg.Complemento.ToString().Trim();
                sComplemento += sQuadras + sLotes;
                sEndereco     = Reg.Endereco_nome + ", " + Reg.Numero.ToString() + sComplemento;
                nNumeroImovel = (short)Reg.Numero;
                sBairro       = Reg.Bairro_nome;
                sCidade       = Reg.Cidade_nome;
                sUF           = Reg.UF;
                sNome         = Reg.Razao_social;
                sCPF          = Reg.Cpf;
                sCNPJ         = Reg.Cnpj;
                sDoc          = Reg.Cpf_cnpj;
                sAtividade    = Reg.Atividade_extenso;
            }

            //***Verifica débito

            Tributario_bll          tributario_Class = new Tributario_bll("GTIconnection");
            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)
                {
                    crystalReport.Load(Server.MapPath("~/Report/CertidaoDebitoImovel.rpt"));
                }
                else
                {
                    if (_tipo_cadastro == TipoCadastro.Empresa)
                    {
                        crystalReport.Load(Server.MapPath("~/Report/CertidaoDebitoEmpresa.rpt"));
                    }
                }
            }
            else
            {
                if (dadosCertidao.Tipo_Retorno == RetornoCertidaoDebito.Positiva)
                {
                    sTipoCertidao = "POSITIVA";
                    nRet          = 4;
                    sSufixo       = "CP";
                    if (_tipo_cadastro == TipoCadastro.Imovel)
                    {
                        bool bCertifica = tributario_Class.Parcela_Unica_IPTU_NaoPago(Codigo, DateTime.Now.Year);
                        if (bCertifica)
                        {
                            sCertifica    = " embora conste parcela(s) não paga(s) do IPTU de " + DateTime.Now.Year.ToString() + ", em razão da possibilidade do pagamento integral deste imposto em data futura";
                            nRet          = 3;
                            sTipoCertidao = "NEGATIVA";
                            sSufixo       = "CN";
                            sNao          = "não ";
                        }
                        else
                        {
                            sCertifica = " até a presente data";
                        }
                        crystalReport.Load(Server.MapPath("~/Report/CertidaoDebitoImovel.rpt"));
                    }
                    else
                    {
                        if (_tipo_cadastro == TipoCadastro.Empresa)
                        {
                            crystalReport.Load(Server.MapPath("~/Report/CertidaoDebitoEmpresa.rpt"));
                        }
                    }
                }
                else
                {
                    if (dadosCertidao.Tipo_Retorno == RetornoCertidaoDebito.NegativaPositiva)
                    {
                        sTipoCertidao = "POSITIVA COM EFEITO NEGATIVA";
                        nRet          = 5;
                        sSufixo       = "PN";
                        if (_tipo_cadastro == TipoCadastro.Imovel)
                        {
                            crystalReport.Load(Server.MapPath("~/Report/CertidaoDebitoImovelPN.rpt"));
                        }
                        else
                        {
                            if (_tipo_cadastro == TipoCadastro.Empresa)
                            {
                                crystalReport.Load(Server.MapPath("~/Report/CertidaoDebitoEmpresaPN.rpt"));
                            }
                        }
                    }
                }
            }
            sTributo = dadosCertidao.Descricao_Lancamentos;

            //******************
            int _numero_certidao = tributario_Class.Retorna_Codigo_Certidao(modelCore.TipoCertidao.Debito);
            int _ano_certidao    = DateTime.Now.Year;

            Certidao_debito cert = new Certidao_debito {
                Codigo       = Codigo,
                Ano          = (short)_ano_certidao,
                Ret          = nRet,
                Numero       = _numero_certidao,
                Datagravada  = DateTime.Now,
                Inscricao    = sInscricao,
                Nome         = sNome,
                Logradouro   = sEndereco,
                Numimovel    = nNumeroImovel,
                Bairro       = sBairro,
                Cidade       = sCidade,
                UF           = sUF,
                Processo     = sNumProcesso,
                Dataprocesso = dDataProc,
                Atendente    = sAtendente,
                Cpf          = sCPF,
                Cnpj         = sCNPJ,
                Atividade    = sAtividade,
                Lancamento   = dadosCertidao.Descricao_Lancamentos
            };
            Exception ex = tributario_Class.Insert_Certidao_Debito(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() + "-" + sSufixo);
                crystalReport.SetParameterValue("ENDERECO", sEndereco);
                crystalReport.SetParameterValue("CADASTRO", Codigo.ToString("000000"));
                crystalReport.SetParameterValue("NOME", sNome.Trim());
                crystalReport.SetParameterValue("INSCRICAO", sInscricao);
                crystalReport.SetParameterValue("BAIRRO", sBairro);
                crystalReport.SetParameterValue("TIPOCERTIDAO", sTipoCertidao);
                crystalReport.SetParameterValue("TRIBUTO", sTributo);
                crystalReport.SetParameterValue("NAO", sNao);
                crystalReport.SetParameterValue("DOC", sDoc);
                crystalReport.SetParameterValue("CIDADE", sCidade + "/" + sUF);
                crystalReport.SetParameterValue("ATIVIDADE", sAtividade);
                if (sCertifica != "")
                {
                    crystalReport.SetParameterValue("CERTIFICA", sCertifica);
                }

                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();
                }
            }
        }
        public IActionResult Certidao_Debito_Codigo(CertidaoViewModel model)
        {
            int    _codigo = 0;
            short  _ret = 0;
            int    _numero = tributarioRepository.Retorna_Codigo_Certidao(Functions.TipoCertidao.Debito);
            bool   _existeCod = false;
            string _tipoCertidao = "", _nao = "", _sufixo = "XX", _reportName = "", _numProcesso = "9222-3/2012", _dataProcesso = "18/04/2012", _cpf = "", _cnpj = "";

            Functions.TipoCadastro _tipoCadastro  = new Functions.TipoCadastro();

            CertidaoViewModel certidaoViewModel   = new CertidaoViewModel();

            ViewBag.Result = "";

            if (model.Inscricao != null)
            {
                _codigo = Convert.ToInt32(model.Inscricao);
                if (_codigo < 100000)
                {
                    _existeCod    = imovelRepository.Existe_Imovel(_codigo);
                    _tipoCadastro = Functions.TipoCadastro.Imovel;
                }
                else
                {
                    if (_codigo >= 100000 && _codigo < 500000)
                    {
                        _existeCod    = empresaRepository.Existe_Empresa_Codigo(_codigo);
                        _tipoCadastro = Functions.TipoCadastro.Empresa;
                    }
                    else
                    {
                        _tipoCadastro  = Functions.TipoCadastro.Cidadao;
                        ViewBag.Result = "Inscrição inválida.";
                        return(View(certidaoViewModel));
                    }
                }
            }

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

            if (!_existeCod)
            {
                ViewBag.Result = "Inscrição não cadastrada.";
                return(View(certidaoViewModel));
            }


            //***Verifica débito

            Certidao_debito_detalhe dadosCertidao = tributarioRepository.Certidao_Debito(_codigo);
            string _tributo = dadosCertidao.Descricao_Lancamentos;

            if (dadosCertidao.Tipo_Retorno == Functions.RetornoCertidaoDebito.Negativa)
            {
                _tipoCertidao = "NEGATIVA";
                _nao          = "não ";
                _ret          = 3;
                _sufixo       = "CN";
                if (_tipoCadastro == Functions.TipoCadastro.Imovel)
                {
                    _reportName = "Certidao_Debito_Imovel.rpt";
                }
                else
                {
                    _reportName = "Certidao_Debito_Empresa.rpt";
                }
            }
            //else {
            //    if (dadosCertidao.Tipo_Retorno == RetornoCertidaoDebito.Positiva) {
            //        sTipoCertidao = "POSITIVA";
            //        nRet = 4;
            //        sSufixo = "CP";
            //        if (_tipo_cadastro == TipoCadastro.Imovel) {
            //            bool bCertifica = tributario_Class.Parcela_Unica_IPTU_NaoPago(Codigo, DateTime.Now.Year);
            //            if (bCertifica) {
            //                sCertifica = " embora conste parcela(s) não paga(s) do IPTU de " + DateTime.Now.Year.ToString() + ", em razão da possibilidade do pagamento integral deste imposto em data futura";
            //                nRet = 3;
            //                sTipoCertidao = "NEGATIVA";
            //                sSufixo = "CN";
            //                sNao = "não ";
            //            } else
            //                sCertifica = " até a presente data";
            //            crystalReport.Load(Server.MapPath("~/Report/CertidaoDebitoImovel.rpt"));

            //        } else {
            //            if (_tipo_cadastro == TipoCadastro.Empresa)
            //                crystalReport.Load(Server.MapPath("~/Report/CertidaoDebitoEmpresa.rpt"));
            //        }
            //    } else {
            //        if (dadosCertidao.Tipo_Retorno == RetornoCertidaoDebito.NegativaPositiva) {
            //            sTipoCertidao = "POSITIVA COM EFEITO NEGATIVA";
            //            nRet = 5;
            //            sSufixo = "PN";
            //            if (_tipo_cadastro == TipoCadastro.Imovel)
            //                crystalReport.Load(Server.MapPath("~/Report/CertidaoDebitoImovelPN.rpt"));
            //            else {
            //                if (_tipo_cadastro == TipoCadastro.Empresa)
            //                    crystalReport.Load(Server.MapPath("~/Report/CertidaoDebitoEmpresaPN.rpt"));
            //            }
            //        }
            //    }
            //}


            int             _numero_certidao = tributarioRepository.Retorna_Codigo_Certidao(Functions.TipoCertidao.Debito);
            int             _ano_certidao    = DateTime.Now.Year;
            List <Certidao> certidao         = new List <Certidao>();
            Certidao        reg = new Certidao();

            if (_tipoCadastro == Functions.TipoCadastro.Imovel)
            {
                List <ProprietarioStruct> listaProp = imovelRepository.Lista_Proprietario(_codigo, true);
                _cpf  = listaProp[0].CPF;
                _cnpj = listaProp[0].CNPJ;
                ImovelStruct _dados = imovelRepository.Dados_Imovel(_codigo);
                reg.Codigo               = _dados.Codigo;
                reg.Inscricao            = _dados.Inscricao;
                reg.Endereco             = _dados.NomeLogradouro;
                reg.Endereco_Numero      = (int)_dados.Numero;
                reg.Endereco_Complemento = _dados.Complemento;
                reg.Bairro               = _dados.NomeBairro ?? "";
                reg.Cidade               = "JABOTICABAL";
                reg.Uf = "SP";
                reg.Atividade_Extenso = "";
                reg.Nome_Requerente   = listaProp[0].Nome;
                reg.Ano             = DateTime.Now.Year;
                reg.Numero          = _numero;
                reg.Quadra_Original = _dados.QuadraOriginal ?? "";
                reg.Lote_Original   = _dados.LoteOriginal ?? "";
                reg.Controle        = _numero_certidao.ToString("00000") + _ano_certidao.ToString("0000") + "/" + _codigo.ToString() + "-" + _sufixo;
                reg.Tipo_Certidao   = _tipoCertidao;
                reg.Nao             = _nao;
                reg.Tributo         = _tributo;
            }
            else
            {
                EmpresaStruct _dados = empresaRepository.Dados_Empresa(_codigo);
                _cpf                     = _dados.Cpf ?? "";
                _cnpj                    = _dados.Cnpj ?? "";
                reg.Codigo               = _dados.Codigo;
                reg.Cpf_Cnpj             = _dados.Cpf_cnpj;
                reg.Inscricao            = _dados.Inscricao_estadual ?? "";
                reg.Endereco             = _dados.Endereco_nome;
                reg.Endereco_Numero      = (int)_dados.Numero;
                reg.Endereco_Complemento = _dados.Complemento;
                reg.Bairro               = _dados.Bairro_nome ?? "";
                reg.Cidade               = _dados.Cidade_nome;
                reg.Uf                   = _dados.UF;
                reg.Atividade_Extenso    = _dados.Atividade_extenso;
                reg.Nome_Requerente      = _dados.Razao_social;
                reg.Ano                  = DateTime.Now.Year;
                reg.Numero               = _numero;
                reg.Controle             = _numero_certidao.ToString("00000") + _ano_certidao.ToString("0000") + "/" + _codigo.ToString() + "-" + _sufixo;
                reg.Tipo_Certidao        = _tipoCertidao;
                reg.Nao                  = _nao;
                reg.Tributo              = _tributo;
            }
            reg.Numero_Ano = _numero_certidao.ToString("00000") + "/" + _ano_certidao.ToString("0000");
            certidao.Add(reg);

            Certidao_debito cert = new Certidao_debito {
                Codigo       = _codigo,
                Ano          = (short)DateTime.Now.Year,
                Ret          = _ret,
                Numero       = _numero_certidao,
                Datagravada  = DateTime.Now,
                Inscricao    = reg.Inscricao,
                Nome         = reg.Nome_Requerente,
                Logradouro   = reg.Endereco,
                Numimovel    = (short)reg.Endereco_Numero,
                Bairro       = reg.Bairro,
                Cidade       = reg.Cidade,
                UF           = reg.Uf,
                Processo     = _numProcesso,
                Dataprocesso = Convert.ToDateTime(_dataProcesso),
                Atendente    = "GTI.Web",
                Cpf          = _cpf,
                Cnpj         = _cnpj,
                Atividade    = reg.Atividade_Extenso,
                Suspenso     = "",
                Lancamento   = dadosCertidao.Descricao_Lancamentos
            };
            Exception ex = tributarioRepository.Insert_Certidao_Debito(cert);

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

            ReportDocument rd = new ReportDocument();

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

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