private void Grava_Dados()
        {
            Sistema_bll    sistema_Class    = new Sistema_bll(_connection);
            Tributario_bll tributario_Class = new Tributario_bll(_connection);

            GTI_Models.modelCore.TipoCadastro _tipo_cadastro = sistema_Class.Tipo_Cadastro(_codigo);

            Contribuinte_Header_Struct _header = sistema_Class.Contribuinte_Header(_codigo);

            string _tipo_divida = _tipo_cadastro == GTI_Models.modelCore.TipoCadastro.Imovel ? "Imobiliário" :
                                  _tipo_cadastro == GTI_Models.modelCore.TipoCadastro.Cidadao ? "Taxas Diversas" : "Mobiliário";
            int _certidao = tributario_Class.Retorna_Ultima_Certidao_Livro(_numero_livro);
            int _pagina   = _certidao;

            Cdas regCda = new Cdas()
            {
                Iddevedor    = _codigo.ToString(),
                Setordevedor = _tipo_divida,
                Dtinscricao  = Convert.ToDateTime(DataInscricaoText.Text),
                Nrocertidao  = _certidao,
                Nrolivro     = _numero_livro,
                Nrofolha     = _pagina,
                Dtgeracao    = DateTime.Now
            };
            Integrativa_bll integrativa_Class = new Integrativa_bll(_connection_integrativa);
            int             _idCda            = integrativa_Class.Insert_Integrativa_Cda(regCda);

            if (_tipo_cadastro != GTI_Models.modelCore.TipoCadastro.Cidadao)
            {
                Cadastro regCadastro = new Cadastro()
                {
                    Idcda              = _idCda,
                    Setordevedor       = _tipo_divida,
                    Crc                = _codigo,
                    Nome               = _header.Nome,
                    Inscricao          = _header.Inscricao,
                    Cpfcnpj            = _header.Cpf_cnpj,
                    Rginscrestadual    = _header.Rg,
                    Localcep           = _header.Cep,
                    Localendereco      = _header.Endereco,
                    Localnumero        = _header.Numero,
                    Localcomplemento   = _header.Complemento,
                    Localbairro        = _header.Nome_bairro,
                    Localcidade        = _header.Nome_cidade,
                    LocalEstado        = _header.Nome_uf,
                    Quadra             = _header.Quadra_original,
                    Lote               = _header.Lote_original,
                    Entregacep         = _header.Cep_entrega,
                    Entregaendereco    = _header.Endereco_entrega,
                    Entreganumero      = _header.Numero_entrega,
                    Entregabairro      = _header.Nome_bairro_entrega,
                    Entregacomplemento = _header.Complemento_entrega,
                    Entregacidade      = _header.Nome_cidade_entrega,
                    Entregaestado      = _header.Nome_uf_entrega,
                    Dtgeracao          = DateTime.Now
                };
                integrativa_Class = new Integrativa_bll(_connection_integrativa);
                int _idCadastro = integrativa_Class.Insert_Integrativa_Cadastro(regCadastro);
            }
            else
            {
                Partes regPartes = new Partes()
                {
                    Idcda           = _idCda,
                    Tipo            = "Principal",
                    Crc             = _codigo,
                    Nome            = _header.Nome,
                    Cpfcnpj         = _header.Cpf_cnpj,
                    Rginscrestadual = _header.Rg,
                    Cep             = _header.Cep,
                    Endereco        = _header.Endereco,
                    Numero          = _header.Numero,
                    Complemento     = _header.Complemento,
                    Bairro          = _header.Nome_bairro,
                    Cidade          = _header.Nome_cidade,
                    Estado          = _header.Nome_uf,
                    Dtgeracao       = DateTime.Now
                };
                integrativa_Class = new Integrativa_bll(_connection_integrativa);
                int _idPartes = integrativa_Class.Insert_Integrativa_Partes(regPartes);
            }
            Imovel_bll  imovel_Class  = new Imovel_bll(_connection);
            Cidadao_bll cidadao_Class = new Cidadao_bll(_connection);
            Empresa_bll empresa_class = new Empresa_bll(_connection);

            if (_tipo_cadastro == GTI_Models.modelCore.TipoCadastro.Imovel)
            {
                List <ProprietarioStruct> ListaPropImovel = imovel_Class.Lista_Proprietario(_codigo);
                foreach (ProprietarioStruct item in ListaPropImovel)
                {
                    CidadaoStruct _cidadao  = cidadao_Class.Dados_Cidadao(item.Codigo);
                    Partes        regPartes = new Partes()
                    {
                        Idcda           = _idCda,
                        Tipo            = item.Principal ? "Principal" : "Compromissário",
                        Crc             = _codigo,
                        Nome            = _cidadao.Nome,
                        Cpfcnpj         = string.IsNullOrWhiteSpace(_cidadao.Cnpj) ? _cidadao.Cpf : _cidadao.Cnpj,
                        Rginscrestadual = _cidadao.Rg,
                        Dtgeracao       = DateTime.Now
                    };
                    if (_cidadao.EtiquetaR == "C")
                    {
                        regPartes.Cep         = _cidadao.CepC.ToString();
                        regPartes.Endereco    = _cidadao.EnderecoC;
                        regPartes.Numero      = _cidadao.NumeroC;
                        regPartes.Complemento = _cidadao.ComplementoC;
                        regPartes.Bairro      = _cidadao.NomeBairroC;
                        regPartes.Cidade      = _cidadao.NomeCidadeC;
                        regPartes.Estado      = _cidadao.UfC;
                    }
                    else
                    {
                        regPartes.Cep         = _cidadao.CepR.ToString();
                        regPartes.Endereco    = _cidadao.EnderecoR;
                        regPartes.Numero      = _cidadao.NumeroR;
                        regPartes.Complemento = _cidadao.ComplementoR;
                        regPartes.Bairro      = _cidadao.NomeBairroR;
                        regPartes.Cidade      = _cidadao.NomeCidadeR;
                        regPartes.Estado      = _cidadao.UfR;
                    }
                    integrativa_Class = new Integrativa_bll(_connection_integrativa);
                    int _idPartes = integrativa_Class.Insert_Integrativa_Partes(regPartes);
                }
            }
            else
            {
                if (_tipo_cadastro == GTI_Models.modelCore.TipoCadastro.Empresa)
                {
                    List <CidadaoStruct> ListaSocio = empresa_class.ListaSocio(_codigo);
                    foreach (CidadaoStruct item in ListaSocio)
                    {
                        CidadaoStruct _cidadao  = cidadao_Class.Dados_Cidadao(item.Codigo);
                        Partes        regPartes = new Partes()
                        {
                            Idcda           = _idCda,
                            Tipo            = "Sócio",
                            Crc             = _codigo,
                            Nome            = _cidadao.Nome,
                            Cpfcnpj         = string.IsNullOrWhiteSpace(_cidadao.Cnpj) ? _cidadao.Cpf : _cidadao.Cnpj,
                            Rginscrestadual = _cidadao.Rg,
                            Dtgeracao       = DateTime.Now
                        };
                        if (_cidadao.EtiquetaR == "C")
                        {
                            regPartes.Cep         = _cidadao.CepC.ToString();
                            regPartes.Endereco    = _cidadao.EnderecoC;
                            regPartes.Numero      = _cidadao.NumeroC;
                            regPartes.Complemento = _cidadao.ComplementoC;
                            regPartes.Bairro      = _cidadao.NomeBairroC;
                            regPartes.Cidade      = _cidadao.NomeCidadeC;
                            regPartes.Estado      = _cidadao.UfC;
                        }
                        else
                        {
                            regPartes.Cep         = _cidadao.CepR.ToString();
                            regPartes.Endereco    = _cidadao.EnderecoR;
                            regPartes.Numero      = _cidadao.NumeroR;
                            regPartes.Complemento = _cidadao.ComplementoR;
                            regPartes.Bairro      = _cidadao.NomeBairroR;
                            regPartes.Cidade      = _cidadao.NomeCidadeR;
                            regPartes.Estado      = _cidadao.UfR;
                        }
                        integrativa_Class = new Integrativa_bll(_connection_integrativa);
                        int _idPartes = integrativa_Class.Insert_Integrativa_Partes(regPartes);
                    }
                }
            }

            foreach (ListViewItem linha in MainListView.Items)
            {
                short _ano   = Convert.ToInt16(linha.Text);
                short _lanc  = Convert.ToInt16(linha.SubItems[1].Text.Substring(0, 2));
                short _seq   = Convert.ToInt16(linha.SubItems[2].Text);
                byte  _parc  = Convert.ToByte(linha.SubItems[3].Text);
                byte  _compl = Convert.ToByte(linha.SubItems[4].Text);

                Exception ex = tributario_Class.Inscrever_Divida_Ativa(_codigo, _ano, _lanc, _seq, _parc, _compl, _numero_livro, _pagina, _certidao, Convert.ToDateTime(DataInscricaoText.Text));

                foreach (SpExtrato item in _listaTributo)
                {
                    if (item.Anoexercicio == _ano && item.Codlancamento == _lanc && item.Seqlancamento == _seq && item.Numparcela == _parc && item.Codcomplemento == _compl)
                    {
                        Cdadebitos regCdaDebito = new Cdadebitos()
                        {
                            Idcda        = _idCda,
                            Codtributo   = item.Codtributo,
                            Tributo      = item.Abrevtributo,
                            Exercicio    = _ano,
                            Lancamento   = _lanc,
                            Seq          = _seq,
                            Nroparcela   = _parc,
                            Complparcela = _compl,
                            Dtvencimento = item.Datavencimento,
                            Vlroriginal  = item.Valortributo,
                            Vlrmultas    = item.Valormulta,
                            Vlrjuros     = item.Valorjuros,
                            Vlrcorrecao  = item.Valorcorrecao,
                            Dtgeracao    = DateTime.Now
                        };
                        int _IdCdaDebito = integrativa_Class.Insert_Integrativa_CdaDebito(regCdaDebito);
                    }
                }
            }
        }
        public ActionResult Rod_plat_query(RodoviariaViewModel model, string DataDe, string DataAte, string Codigo, string Qtde1, string Qtde2, string Qtde3)
        {
            //            FormCollection collection=new FormCollection
            Tributario_bll tributarioRepository = new Tributario_bll(_connection);
            Cidadao_bll    cidadaoRepository    = new Cidadao_bll(_connection);
            string         _name = "";
            int            _cod  = model.Codigo;
            int            _year = model.Ano;
            var            data1 = DataDe;
            bool           t     = DateTime.TryParse(data1, out DateTime _data1);

            t = DateTime.TryParse(DataAte, out DateTime _data2);
            List <Rodo_uso_plataforma_Struct> Lista = tributarioRepository.Lista_Rodo_uso_plataforma(_cod, _year);
            List <AnoList> ListaAno = new List <AnoList>();

            if (DataDe == null)
            {
                _name = cidadaoRepository.Retorna_Nome_Cidadao(_cod);
                RodoviariaViewModel model2 = new RodoviariaViewModel {
                    Codigo = _cod,
                    Nome   = _name,
                    Lista_uso_plataforma = Lista
                };
                for (int i = 2020; i <= DateTime.Now.Year; i++)
                {
                    AnoList _reg = new AnoList()
                    {
                        Codigo    = i,
                        Descricao = i.ToString()
                    };
                    ListaAno.Add(_reg);
                }

                ViewBag.ListaAno = new SelectList(ListaAno, "Codigo", "Descricao", ListaAno[ListaAno.Count - 1].Codigo);
                return(View(model2));
            }

            var cod = Codigo;

            int _codigo = Convert.ToInt32(cod);
            var qtde1   = Qtde1;

            if (string.IsNullOrEmpty(Qtde1))
            {
                qtde1 = "0";
            }
            int _qtde1 = Convert.ToInt32(qtde1);
            var qtde2  = Qtde2;

            if (string.IsNullOrEmpty(Qtde2))
            {
                qtde2 = "0";
            }
            int _qtde2 = Convert.ToInt32(qtde2);
            var qtde3  = Qtde3;

            if (string.IsNullOrEmpty(Qtde3))
            {
                qtde3 = "0";
            }
            int     _qtde3     = Convert.ToInt32(qtde3);
            short   _ano       = (short)_data1.Year;
            int     _userId    = Convert.ToInt32(Session["hashid"]);
            decimal _valorGuia = 0;

            if (_qtde1 == 0 && _qtde2 == 0 && _qtde3 == 0)
            {
                for (int i = 2020; i <= DateTime.Now.Year; i++)
                {
                    AnoList _reg = new AnoList()
                    {
                        Codigo    = i,
                        Descricao = i.ToString()
                    };
                    ListaAno.Add(_reg);
                }


                ViewBag.ListaAno = new SelectList(ListaAno, "Codigo", "Descricao", ListaAno[ListaAno.Count - 1].Codigo);
                if (model.Ano == 0)
                {
                    model.Ano = DateTime.Now.Year;
                }

                Lista = tributarioRepository.Lista_Rodo_uso_plataforma(_codigo, model.Ano);
                model.Lista_uso_plataforma = Lista;
                return(View(model));
            }

            decimal _valor1 = tributarioRepository.Retorna_Valor_Tributo(_ano, 154);
            decimal _valor2 = tributarioRepository.Retorna_Valor_Tributo(_ano, 155);
            decimal _valor3 = tributarioRepository.Retorna_Valor_Tributo(_ano, 156);

            short _seq = tributarioRepository.Retorna_Ultima_Seq_Uso_Plataforma(_codigo, _ano);

            _seq++;
            DateTime _dataVencto = _data2.AddDays(10);

            Exception ex2 = null;
            //grava parcela
            Debitoparcela regParcela = new Debitoparcela {
                Codreduzido    = _codigo,
                Anoexercicio   = _ano,
                Codlancamento  = 52,
                Seqlancamento  = _seq,
                Numparcela     = 1,
                Codcomplemento = 0,
                Statuslanc     = 3,
                Datavencimento = _dataVencto,
                Datadebase     = DateTime.Now,
                Userid         = _userId
            };

            try {
                ex2 = tributarioRepository.Insert_Debito_Parcela(regParcela);
            } catch (Exception) {
                throw;
            }

            //grava tributo
            if (_qtde1 > 0)
            {
                decimal       _valorTotal1 = _valor1 * _qtde1;
                Debitotributo regTributo   = new Debitotributo {
                    Codreduzido    = _codigo,
                    Anoexercicio   = _ano,
                    Codlancamento  = 52,
                    Seqlancamento  = _seq,
                    Numparcela     = 1,
                    Codcomplemento = 0,
                    Codtributo     = (short)154,
                    Valortributo   = Math.Round(_valorTotal1, 2)
                };
                ex2 = tributarioRepository.Insert_Debito_Tributo(regTributo);
            }
            if (_qtde2 > 0)
            {
                decimal       _valorTotal2 = _valor2 * _qtde2;
                Debitotributo regTributo   = new Debitotributo {
                    Codreduzido    = _codigo,
                    Anoexercicio   = _ano,
                    Codlancamento  = 52,
                    Seqlancamento  = _seq,
                    Numparcela     = 1,
                    Codcomplemento = 0,
                    Codtributo     = (short)155,
                    Valortributo   = Math.Round(_valorTotal2, 2)
                };
                ex2 = tributarioRepository.Insert_Debito_Tributo(regTributo);
            }
            if (_qtde3 > 0)
            {
                decimal       _valorTotal3 = _valor3 * _qtde3;
                Debitotributo regTributo   = new Debitotributo {
                    Codreduzido    = _codigo,
                    Anoexercicio   = _ano,
                    Codlancamento  = 52,
                    Seqlancamento  = _seq,
                    Numparcela     = 1,
                    Codcomplemento = 0,
                    Codtributo     = (short)156,
                    Valortributo   = Math.Round(_valorTotal3, 2)
                };
                ex2 = tributarioRepository.Insert_Debito_Tributo(regTributo);
            }

            //retorna o valor atualizado do débito (lançamento retroativo)
            List <SpExtrato> ListaTributo = tributarioRepository.Lista_Extrato_Tributo(_codigo, _ano, _ano, 52, 52, _seq, _seq, 1, 1, 0, 0, 3, 3, DateTime.Now, "Web");
            List <SpExtrato> ListaParcela = tributarioRepository.Lista_Extrato_Parcela(ListaTributo);

            foreach (SpExtrato item in ListaParcela)
            {
                _valorGuia += item.Valortotal;
            }

            if (_dataVencto < DateTime.Now)
            {
                _dataVencto = DateTime.Now.AddDays(10);
            }

            //grava o documento
            Numdocumento regDoc = new Numdocumento {
                Valorguia     = _valorGuia,
                Emissor       = "Gti.Web/UsoPlataforma",
                Datadocumento = _dataVencto,
                Registrado    = true,
                Percisencao   = 0
            };

            regDoc.Percisencao = 0;
            int _novo_documento = tributarioRepository.Insert_Documento(regDoc);

            //grava o documento na parcela
            Parceladocumento regParc = new Parceladocumento {
                Codreduzido    = _codigo,
                Anoexercicio   = _ano,
                Codlancamento  = 52,
                Seqlancamento  = _seq,
                Numparcela     = 1,
                Codcomplemento = 0,
                Numdocumento   = _novo_documento,
                Valorjuros     = 0,
                Valormulta     = 0,
                Valorcorrecao  = 0,
                Plano          = 0
            };

            tributarioRepository.Insert_Parcela_Documento(regParc);

            string sHist = "REFERENTE A " + (_qtde1 + _qtde2 + _qtde3).ToString() + " TAXAS DE EMBARQUE DO TERMINAL RODOVIÁRIO DO PERÍODO DE " + _data1.ToString("dd/MM/yyyy") + " À " + _data2.ToString("dd/MM/yyyy") + ".";
            //Incluir a observação da parcela
            Obsparcela ObsReg = new Obsparcela()
            {
                Codreduzido    = _codigo,
                Anoexercicio   = _ano,
                Codlancamento  = 52,
                Seqlancamento  = _seq,
                Numparcela     = 1,
                Codcomplemento = 0,
                Obs            = sHist,
                Userid         = _userId,
                Data           = DateTime.Now
            };

            ex2 = tributarioRepository.Insert_Observacao_Parcela(ObsReg);

            //Anexo
            string fileName = "";

            foreach (var file in model.Files)
            {
                if (file != null)
                {
                    if (file.ContentLength > 0)
                    {
                        string _guid = Guid.NewGuid().ToString("N");
                        string _path = "~/Files/Plataforma/" + _ano + "/";
                        fileName = _guid + ".pdf";
                        var path = Path.Combine(System.Web.HttpContext.Current.Server.MapPath(_path), fileName);
                        file.SaveAs(path);
                    }
                }
            }

            //Incluir rodo_uso_plataforma
            short _seq2 = tributarioRepository.Retorna_Ultima_Seq_Uso_Plataforma(_codigo, _data1, _data2);
            // _seq2++;

            Rodo_uso_plataforma regR = new Rodo_uso_plataforma {
                Codigo      = _codigo,
                Datade      = _data1,
                Dataate     = _data2,
                Seq         = (byte)_seq2,
                SeqDebito   = (byte)_seq,
                Qtde1       = _qtde1,
                Qtde2       = _qtde2,
                Qtde3       = _qtde3,
                Numero_Guia = _novo_documento,
                Valor_Guia  = _valorGuia,
                Situacao    = 7, //não pago
                Anexo       = fileName
            };

            ex2 = tributarioRepository.Insert_Rodo_Uso_Plataforma(regR);

            //Enviar para registrar
            CidadaoStruct _cidadao = cidadaoRepository.Dados_Cidadao(_codigo);
            string        _bairro = "", _endereco = "", _compl = "", _cidade = "JABOTICABAL";
            string        _cpf_cnpj = string.IsNullOrWhiteSpace(_cidadao.Cnpj) ? _cidadao.Cpf : _cidadao.Cnpj;
            int           _cep      = 14870000;
            bool          _r        = _cidadao.EtiquetaC != "S";
            string        _nome     = _cidadao.Nome;

            _endereco = _r ? _cidadao.EnderecoR : _cidadao.EnderecoC;
            _bairro   = _r ? _cidadao.NomeBairroR : _cidadao.NomeBairroC;
            int _numero = _r ? (int)_cidadao.NumeroR : (int)_cidadao.NumeroC;

            _compl  = _r ? _cidadao.ComplementoR : _cidadao.ComplementoC;
            _cidade = _r ? _cidadao.NomeCidadeR : _cidadao.NomeCidadeC;
            string _uf = _r ? _cidadao.UfR : _cidadao.UfC;

            _cep = _r ? (int)_cidadao.CepR : (int)_cidadao.CepC;


            Ficha_compensacao_documento ficha = new Ficha_compensacao_documento {
                Nome             = _nome,
                Endereco         = _endereco.Length > 40 ? _endereco.Substring(0, 40) : _endereco,
                Bairro           = _bairro.Length > 15 ? _bairro.Substring(0, 15) : _bairro,
                Cidade           = _cidade.Length > 30 ? _cidade.Substring(0, 30) : _cidade,
                Cep              = Functions.RetornaNumero(_cep.ToString()) ?? "14870000",
                Cpf              = Functions.RetornaNumero(_cpf_cnpj),
                Numero_documento = _novo_documento,
                Data_vencimento  = _dataVencto,
                Valor_documento  = Convert.ToDecimal(_valorGuia),
                Uf = _uf
            };

            ex2 = tributarioRepository.Insert_Ficha_Compensacao_Documento(ficha);
            ex2 = tributarioRepository.Marcar_Documento_Registrado(_novo_documento);


            for (int i = 2020; i <= DateTime.Now.Year; i++)
            {
                AnoList _reg = new AnoList()
                {
                    Codigo    = i,
                    Descricao = i.ToString()
                };
                ListaAno.Add(_reg);
            }


            ViewBag.ListaAno = new SelectList(ListaAno, "Codigo", "Descricao", ListaAno[ListaAno.Count - 1].Codigo);
            if (model.Ano == 0)
            {
                model.Ano = DateTime.Now.Year;
            }

            Lista = tributarioRepository.Lista_Rodo_uso_plataforma(_codigo, _ano);
            model.Lista_uso_plataforma = Lista;
            model.Qtde1 = 0;
            model.Qtde2 = 0;
            model.Qtde3 = 0;


            return(View(model));
            //return Json(new { success = true,responseText = "Dados enviados com sucesso!" },JsonRequestBehavior.AllowGet);
        }
        public ActionResult Rod_uso_plataforma_print(string p1, string p2, string p3, string p4, DateTime p5)
        {
            bool  b       = DateTime.TryParseExact(p1, "MM/dd/yyyy hh:mm:ss", CultureInfo.InvariantCulture, DateTimeStyles.None, out DateTime _datade);
            bool  c       = DateTime.TryParseExact(p2, "MM/dd/yyyy hh:mm:ss", CultureInfo.InvariantCulture, DateTimeStyles.None, out DateTime _dataate);
            int   _ano    = _datade.Year;
            short _seq    = Convert.ToInt16(p3);
            int   _codigo = Convert.ToInt32(p4);

            p1 = ""; p2 = ""; p3 = ""; p4 = "";

            Tributario_bll             tributarioRepository = new Tributario_bll(_connection);
            Rodo_uso_plataforma_Struct reg = tributarioRepository.Retorna_Rodo_uso_plataforma(_codigo, _datade, _dataate, _seq);

            short   _seqdebito = reg.SeqDebito;
            decimal _aliq1     = tributarioRepository.Retorna_Valor_Tributo(_ano, 154);
            decimal _aliq2     = tributarioRepository.Retorna_Valor_Tributo(_ano, 155);
            decimal _aliq3     = tributarioRepository.Retorna_Valor_Tributo(_ano, 156);

            Cidadao_bll   cidadaoRepository = new Cidadao_bll(_connection);
            CidadaoStruct _cidadao = cidadaoRepository.Dados_Cidadao(_codigo);
            string        _bairro = "", _endereco = "", _compl = "", _cidade = "JABOTICABAL", _nome = "";
            string        _cpf_cnpj = string.IsNullOrWhiteSpace(_cidadao.Cnpj) ? _cidadao.Cpf : _cidadao.Cnpj;
            int           _userId   = Convert.ToInt32(Session["hashid"]);
            bool          _r = _cidadao.EtiquetaC != "S";

            _nome     = _cidadao.Nome;
            _endereco = _r ? _cidadao.EnderecoR : _cidadao.EnderecoC;
            _bairro   = _r ? _cidadao.NomeBairroR : _cidadao.NomeBairroC;
            int _numero = _r ? (int)_cidadao.NumeroR : (int)_cidadao.NumeroC;

            _compl  = _r ? _cidadao.ComplementoR : _cidadao.ComplementoC;
            _cidade = _r ? _cidadao.NomeCidadeR : _cidadao.NomeCidadeC;
            string _uf  = _r ? _cidadao.UfR : _cidadao.UfC;
            int    _cep = _r ? (int)_cidadao.CepR : (int)_cidadao.CepC;

            Numdocumento doc         = tributarioRepository.Retorna_Dados_Documento(reg.Numero_Guia);
            DateTime     _dataVencto = p5.Date;

            List <SpExtrato> ListaTributo = tributarioRepository.Lista_Extrato_Tributo(_codigo, (short)_ano, (short)_ano, 52, 52, _seqdebito, _seqdebito, 1, 1, 0, 0, 0, 99, _dataVencto, "Web");
            List <SpExtrato> ListaParcela = tributarioRepository.Lista_Extrato_Parcela(ListaTributo);

            decimal _valorGuia = 0;

            foreach (SpExtrato item in ListaParcela)
            {
                _valorGuia += item.Valortotal;
            }

            decimal _vp1 = 0, _vm1 = 0, _vj1 = 0, _vt1 = 0;
            decimal _vp2 = 0, _vm2 = 0, _vj2 = 0, _vt2 = 0;
            decimal _vp3 = 0, _vm3 = 0, _vj3 = 0, _vt3 = 0;

            foreach (SpExtrato item in ListaTributo)
            {
                switch (item.Codtributo)
                {
                case 154:
                    _vp1 = item.Valortributo;
                    _vm1 = item.Valormulta;
                    _vj1 = item.Valorjuros;
                    _vt1 = item.Valortotal;
                    break;

                case 155:
                    _vp2 = item.Valortributo;
                    _vm2 = item.Valormulta;
                    _vj2 = item.Valorjuros;
                    _vt2 = item.Valortotal;
                    break;

                case 156:
                    _vp3 = item.Valortributo;
                    _vm3 = item.Valormulta;
                    _vj3 = item.Valorjuros;
                    _vt3 = item.Valortotal;
                    break;

                default:
                    break;
                }
            }

            string _nosso_numero = "287353200" + reg.Numero_Guia.ToString();
            string _convenio     = "2873532";
            //***** GERA CÓDIGO DE BARRAS BOLETO REGISTRADO*****
            DateTime _data_base        = Convert.ToDateTime("07/10/1997");
            TimeSpan ts                = Convert.ToDateTime(_dataVencto) - _data_base;
            int      _fator_vencto     = ts.Days;
            string   _quinto_grupo     = string.Format("{0:D4}", _fator_vencto);
            string   _valor_boleto_str = string.Format("{0:0.00}", reg.Valor_Guia);

            _quinto_grupo += string.Format("{0:D10}", Convert.ToInt64(Functions.RetornaNumero(_valor_boleto_str)));
            string _barra = "0019" + _quinto_grupo + string.Format("{0:D13}", Convert.ToInt32(_convenio));

            _barra += string.Format("{0:D10}", Convert.ToInt64(reg.Numero_Guia)) + "17";
            string _campo1    = "0019" + _barra.Substring(19, 5);
            string _digitavel = _campo1 + Functions.Calculo_DV10(_campo1).ToString();
            string _campo2    = _barra.Substring(23, 10);

            _digitavel += _campo2 + Functions.Calculo_DV10(_campo2).ToString();
            string _campo3 = _barra.Substring(33, 10);

            _digitavel += _campo3 + Functions.Calculo_DV10(_campo3).ToString();
            string _campo5 = _quinto_grupo;
            string _campo4 = Functions.Calculo_DV11(_barra).ToString();

            _digitavel += _campo4 + _campo5;
            _barra      = _barra.Substring(0, 4) + _campo4 + _barra.Substring(4, _barra.Length - 4);
            //**Resultado final**
            string _linha_digitavel = _digitavel.Substring(0, 5) + "." + _digitavel.Substring(5, 5) + " " + _digitavel.Substring(10, 5) + "." + _digitavel.Substring(15, 6) + " ";

            _linha_digitavel += _digitavel.Substring(21, 5) + "." + _digitavel.Substring(26, 6) + " " + _digitavel.Substring(32, 1) + " " + Functions.StringRight(_digitavel, 14);
            string _codigo_barra = Functions.Gera2of5Str(_barra);
            //**************************************************

            UsoPlataformaReport _usoR = new UsoPlataformaReport()
            {
                Aliquota1       = _aliq1,
                Aliquota2       = _aliq2,
                Aliquota3       = _aliq3,
                Bairro          = _bairro,
                Cidade          = _cidade,
                Codigo          = _codigo,
                Codigo_Barra    = _codigo_barra,
                CpfCnpj         = _cpf_cnpj,
                Data_Final      = _dataate,
                Data_Inicio     = _datade,
                Data_Documento  = DateTime.Now,
                Data_Vencimento = _dataVencto,
                Endereco        = _endereco + ", " + _numero.ToString() + " " + _compl,
                Linha_Digitavel = _linha_digitavel, Nome = _nome,
                Nosso_Numero    = _nosso_numero,
                Numero_Guia     = reg.Numero_Guia,
                Qtde1           = reg.Qtde1,
                Qtde2           = reg.Qtde2,
                Qtde3           = reg.Qtde3,
                UF         = _uf,
                Valor1J    = _vj1,
                Valor1M    = _vm1,
                Valor1P    = _vp1,
                Valor1T    = _vt1,
                Valor2J    = _vj2,
                Valor2M    = _vm2,
                Valor2P    = _vp2,
                Valor2T    = _vt2,
                Valor3J    = _vj3,
                Valor3M    = _vm3,
                Valor3P    = _vp3,
                Valor3T    = _vt3,
                Valor_Guia = _valorGuia
            };

            //Gera Boleto

            List <UsoPlataformaReport> Lista = new List <UsoPlataformaReport> {
                _usoR
            };
            DataSet          Ds     = Functions.ToDataSet(Lista);
            ReportDataSource rdsAct = new ReportDataSource("dsUsoPlataforma", Ds.Tables[0]);
            ReportViewer     viewer = new ReportViewer();

            viewer.LocalReport.Refresh();
            viewer.LocalReport.ReportPath = System.Web.HttpContext.Current.Server.MapPath("~/Reports/Boleto_Uso_Plataforma.rdlc");
            viewer.LocalReport.DataSources.Add(rdsAct);
            byte[] bytes = viewer.LocalReport.Render("PDF", null, out string mimeType, out string encoding, out string extension, out string[] streamIds, out Warning[] warnings);
Esempio n. 4
0
        public ActionResult Cidadao_vw()
        {
            if (Session["hashid"] == null)
            {
                return(RedirectToAction("Login", "Home"));
            }

            Cidadao_bll  cidadaoRepository  = new Cidadao_bll(_connection);
            Endereco_bll enderecoRepository = new Endereco_bll(_connection);

            List <Profissao> Lista = cidadaoRepository.Lista_Profissao();

            ViewBag.Lista_Profissao = new SelectList(Lista, "Codigo", "Nome");

            var _cod    = TempData["cod"];
            int _codigo = 0;

            if (_cod == null)
            {
                return(RedirectToAction("Cidadao_chkedt"));
            }
            else
            {
                _codigo = Convert.ToInt32(_cod);
            }

            if (_codigo == 0)
            {
                return(RedirectToAction("Cidadao_chkedt"));
            }

            CidadaoStruct    _cid  = cidadaoRepository.Dados_Cidadao(_codigo);
            CidadaoViewModel model = new CidadaoViewModel()
            {
                Codigo           = _codigo,
                CpfCnpj          = string.IsNullOrEmpty(_cid.Cnpj) ? Functions.FormatarCpfCnpj(_cid.Cpf) : Functions.FormatarCpfCnpj(_cid.Cnpj),
                Nome             = _cid.Nome,
                Data_Nascto      = _cid.DataNascto == null ? "" : Convert.ToDateTime(_cid.DataNascto).ToString("dd/MM/yyyy"),
                Rg_Numero        = _cid.Rg ?? "",
                Rg_Orgao         = _cid.Orgao ?? "",
                Cnh_Numero       = _cid.Cnh ?? "",
                Cnh_Orgao        = _cid.Orgaocnh ?? "",
                Profissao_Codigo = _cid.CodigoProfissao == null ? 0 : (int)_cid.CodigoProfissao,
                EnderecoR        = new EnderecoStruct()
                {
                    Cep         = _cid.CepR == null ? "" : _cid.CepR.ToString(),
                    Numero      = _cid.NumeroR,
                    Complemento = _cid.ComplementoR ?? "",
                    NomeBairro  = _cid.NomeBairroR ?? "",
                    NomeCidade  = _cid.NomeCidadeR ?? "",
                    UF          = _cid.UfR,
                    Telefone    = _cid.TelefoneR ?? "",
                    Email       = _cid.EmailR ?? ""
                },
                EnderecoC = new EnderecoStruct()
                {
                    Cep         = _cid.CepC == null ? "" : _cid.CepC.ToString(),
                    Numero      = _cid.NumeroC,
                    Complemento = _cid.ComplementoC ?? "",
                    NomeBairro  = _cid.NomeBairroC ?? "",
                    NomeCidade  = _cid.NomeCidadeC ?? "",
                    UF          = _cid.UfC,
                    Telefone    = _cid.TelefoneC ?? "",
                    Email       = _cid.EmailC ?? ""
                },
            };

            if (model.Profissao_Codigo > 0)
            {
                model.Profissao_Nome = cidadaoRepository.Retorna_Profissao_Nome(model.Profissao_Codigo);
            }
            List <Logradouro> Lista_LogradouroR = new List <Logradouro>();
            List <Logradouro> Lista_LogradouroC = new List <Logradouro>();

            ViewBag.LogradouroR = new SelectList(Lista_LogradouroR, "Codlogradouro", "Endereco");
            ViewBag.LogradouroC = new SelectList(Lista_LogradouroC, "Codlogradouro", "Endereco");

            int _cepR = string.IsNullOrEmpty(model.EnderecoR.Cep) ? 0 : Convert.ToInt32(model.EnderecoR.Cep);
            int _cepC = string.IsNullOrEmpty(model.EnderecoC.Cep) ? 0 : Convert.ToInt32(model.EnderecoC.Cep);

            if (_cepR > 0)
            {
                List <string> Lista_Tmp = enderecoRepository.Retorna_CepDB_Logradouro(_cepR);
                int           s         = 1;
                foreach (string item in Lista_Tmp)
                {
                    Lista_LogradouroR.Add(new Logradouro()
                    {
                        Codlogradouro = s, Endereco = item.ToUpper()
                    });
                    s++;
                }
                List <Cepdb> cepdbR = enderecoRepository.Retorna_CepDB_Logradouro_Codigo(_cepR, _cid.CodigoBairroR == null ? 0 : (int)_cid.CodigoBairroR);
                if (cepdbR.Count > 0)
                {
                    model.EnderecoR.Endereco = cepdbR[0].Logradouro.ToUpper();
                }
            }
            if (_cepC > 0)
            {
                List <string> Lista_Tmp = enderecoRepository.Retorna_CepDB_Logradouro(_cepC);
                int           s         = 1;
                foreach (string item in Lista_Tmp)
                {
                    Lista_LogradouroC.Add(new Logradouro()
                    {
                        Codlogradouro = s, Endereco = item.ToUpper()
                    });
                    s++;
                }
                List <Cepdb> cepdbC = enderecoRepository.Retorna_CepDB_Logradouro_Codigo(_cepC, _cid.CodigoBairroC == null ? 0 : (int)_cid.CodigoBairroC);
                if (cepdbC.Count > 0)
                {
                    model.EnderecoC.Endereco = cepdbC[0].Logradouro.ToUpper();
                }
            }

            return(View(model));
        }