Esempio n. 1
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();
                }
            }
        }
        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;
            }
        }
        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();
                }
            }
        }
Esempio n. 4
0
        private void PrintReport(List <int> _codigos)
        {
            ReportDocument crystalReport = new ReportDocument();
            string         sData = "18/04/2012", sTributo = "", sNao = "", sCertifica = "";
            short          nRet = 0;
            List <Certidao_debito_documento> _lista_certidao = new List <Certidao_debito_documento>();
            RetornoCertidaoDebito            _tipo_Certidao;

            DateTime       dDataProc        = Convert.ToDateTime(sData);
            Tributario_bll tributario_Class = new Tributario_bll("GTIconnection");

            if (_codigos.Count == 0)
            {
                nRet     = 0;
                sTributo = "";
                goto SEM_INSCRICAO;
            }

            bool        bEmpresa = false, bCidadao = false, bImovel = false;
            Sistema_bll sistema_Class = new Sistema_bll("GTIconnection");
            string      sNome         = "";

            if (optCPF.Checked)
            {
                sNome = sistema_Class.Nome_por_Cpf(gtiCore.RetornaNumero(txtCPF.Text));
            }
            else
            {
                sNome = sistema_Class.Nome_por_Cnpj(gtiCore.RetornaNumero(txtCNPJ.Text));
            }


            foreach (int _codigo in _codigos)
            {
                TipoCadastro _tipo_cadastro = _codigo < 100000 ? TipoCadastro.Imovel : _codigo >= 100000 && _codigo < 500000 ? TipoCadastro.Empresa : TipoCadastro.Cidadao;

                //               Contribuinte_Header_Struct _header = sistema_Class.Contribuinte_Header(_codigo);
                //string sNome =  _header==null?"":   _header.Nome;

                //***Verifica débito
                Certidao_debito_detalhe dadosCertidao = tributario_Class.Certidao_Debito(_codigo);
                if (dadosCertidao.Tipo_Retorno == RetornoCertidaoDebito.Negativa)
                {
                    nRet     = 3;
                    sTributo = "";
                }
                else
                {
                    if (dadosCertidao.Tipo_Retorno == RetornoCertidaoDebito.Positiva)
                    {
                        if (_tipo_cadastro == TipoCadastro.Empresa)
                        {
                            bEmpresa = true;
                        }
                        if (_tipo_cadastro == TipoCadastro.Cidadao)
                        {
                            bCidadao = true;
                        }
                        if (_tipo_cadastro == TipoCadastro.Imovel)
                        {
                            bImovel = true;
                        }
                        nRet     = 4;
                        sTributo = dadosCertidao.Descricao_Lancamentos;
                    }
                    else
                    {
                        if (dadosCertidao.Tipo_Retorno == RetornoCertidaoDebito.NegativaPositiva)
                        {
                            nRet     = 5;
                            sTributo = dadosCertidao.Descricao_Lancamentos;
                        }
                    }
                }

                Certidao_debito_documento reg = new Certidao_debito_documento();
                reg._Codigo  = _codigo;
                reg._Ret     = nRet;
                reg._Tributo = sTributo;
                reg._Nome    = sNome == null?"": sNome.Trim();
                _lista_certidao.Add(reg);
            }

            bool _find = false;

            foreach (Certidao_debito_documento reg in _lista_certidao)
            {
                if (reg._Ret != 3)
                {
                    _find = true;
                    break;
                }
            }
            if (!_find)
            {
                _tipo_Certidao = RetornoCertidaoDebito.Negativa;
                sNao           = " não";
            }
            else
            {
                _find = false;
                foreach (Certidao_debito_documento reg in _lista_certidao)
                {
                    if (reg._Ret == 4)
                    {
                        _find = true;
                        break;
                    }
                }
                if (_find)
                {
                    _tipo_Certidao = RetornoCertidaoDebito.Positiva;
                    if (!bEmpresa && !bCidadao && !bImovel)
                    {
                        //Se a certidão positiva for apenas de imóvel, verifica se esta no prazo das parcelas únicas em aberto.
                        bool bUnicaNaoPago = false;
                        foreach (int _codigo in _codigos)
                        {
                            bUnicaNaoPago = tributario_Class.Parcela_Unica_IPTU_NaoPago(_codigo, DateTime.Now.Year);
                            if (bUnicaNaoPago)
                            {
                                break;
                            }
                        }
                        if (bUnicaNaoPago)
                        {
                            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, ";
                            sNao           = " não";
                            nRet           = 3;
                            _tipo_Certidao = RetornoCertidaoDebito.Negativa;
                        }
                    }
                }
                else
                {
                    _tipo_Certidao = RetornoCertidaoDebito.NegativaPositiva;
                }
            }

            string _tributo = "";

            foreach (Certidao_debito_documento item in _lista_certidao)
            {
                if (item._Tributo != "")
                {
                    _tributo += item._Tributo + " (IM:" + item._Codigo + ")" + ",";
                }
            }
            if (_tributo.Length > 0)
            {
                _tributo = _tributo.Substring(0, _tributo.Length - 1);
            }
            int _numero_certidao     = tributario_Class.Retorna_Codigo_Certidao(modelCore.TipoCertidao.Debito_Doc);
            int _ano_certidao        = DateTime.Now.Year;
            certidao_debito_doc cert = new certidao_debito_doc();

            cert.Ano = (short)_ano_certidao;

            cert.Numero       = _numero_certidao;
            cert.Data_emissao = DateTime.Now;
            cert.Nome         = _lista_certidao[0]._Nome;
            cert.Cpf_cnpj     = optCPF.Checked ? txtCPF.Text : txtCNPJ.Text;

            if (_tipo_Certidao == RetornoCertidaoDebito.Negativa)
            {
                cert.Validacao = _numero_certidao.ToString("00000") + _ano_certidao.ToString("0000") + "/" + _lista_certidao[0]._Codigo.ToString() + "-IN";
                cert.Tributo   = "Não consta débito apurado contra o(a) mesmo(a).";
                cert.Ret       = 1;
            }
            else
            {
                if (_tipo_Certidao == RetornoCertidaoDebito.Positiva)
                {
                    cert.Validacao = _numero_certidao.ToString("00000") + _ano_certidao.ToString("0000") + "/" + _lista_certidao[0]._Codigo.ToString() + "-IP";
                    cert.Tributo   = "Consta débito apurado contra o(a) mesmo(a) com referência a: " + _tributo;
                    cert.Ret       = 2;
                }
                else
                {
                    if (_tipo_Certidao == RetornoCertidaoDebito.NegativaPositiva)
                    {
                        cert.Validacao = _numero_certidao.ToString("00000") + _ano_certidao.ToString("0000") + "/" + _lista_certidao[0]._Codigo.ToString() + "-IS";
                        cert.Tributo   = "Consta débito apurado contra o(a) mesmo(a) com referência a: " + _tributo + " que se encontram em sua exigibilidade suspensa, em razão de parcelamento dos débitos";
                        cert.Ret       = 3;
                    }
                }
            }

            Exception ex = tributario_Class.Insert_Certidao_Debito_Doc(cert);

            if (ex != null)
            {
                throw ex;
            }
            else
            {
                if (_tipo_Certidao == RetornoCertidaoDebito.Negativa)
                {
                    crystalReport.Load(Server.MapPath("~/Report/CertidaoDebitoDocumentoN.rpt"));
                    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", cert.Validacao);
                    crystalReport.SetParameterValue("NOME", _lista_certidao[0]._Nome);
                    crystalReport.SetParameterValue("DOC", optCPF.Checked ? txtCPF.Text : txtCNPJ.Text);
                    crystalReport.SetParameterValue("NAO", sNao);
                    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();
                    }
                }
                else
                {
                    if (_tipo_Certidao == RetornoCertidaoDebito.Positiva)
                    {
                        crystalReport.Load(Server.MapPath("~/Report/CertidaoDebitoDocumentoP.rpt"));
                        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", cert.Validacao);
                        crystalReport.SetParameterValue("NOME", _lista_certidao[0]._Nome);
                        crystalReport.SetParameterValue("TRIBUTO", _tributo);
                        crystalReport.SetParameterValue("DOC", optCPF.Checked ? txtCPF.Text : txtCNPJ.Text);
                        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();
                        }
                    }
                    else
                    {
                        if (_tipo_Certidao == RetornoCertidaoDebito.NegativaPositiva)
                        {
                            crystalReport.Load(Server.MapPath("~/Report/CertidaoDebitoDocumentoPN.rpt"));
                            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", cert.Validacao);
                            crystalReport.SetParameterValue("NOME", _lista_certidao[0]._Nome);
                            crystalReport.SetParameterValue("TRIBUTO", _tributo);
                            crystalReport.SetParameterValue("DOC", optCPF.Checked ? txtCPF.Text : txtCNPJ.Text);
                            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();
                            }
                        }
                    }
                }
            }

            SEM_INSCRICAO :;
        }