示例#1
0
        protected void btPrint_Click(object sender, EventArgs e)
        {
            if (Valida())
            {
                int    Codigo   = Convert.ToInt32(txtIM.Text);
                string sNumProc = txtProcesso.Text;
                if (sNumProc.Length < 6 || !sNumProc.Contains("-"))
                {
                    lblMsg.Text = "Nº de processo inválido.";
                }
                else
                {
                    sNumProc = sNumProc.Substring(0, sNumProc.LastIndexOf('-')) + sNumProc.Substring(sNumProc.Length - 5, 5);
                    Tributario_bll       tributario_class = new Tributario_bll("GTIconnection");
                    List <Destinoreparc> Lista            = tributario_class.Lista_Destino_Parcelamento(sNumProc);
                    if (Lista.Count == 0)
                    {
                        lblMsg.Text = "Processo não cadastrado.";
                    }
                    else
                    {
                        int _codigo = Lista[0].Codreduzido;
                        if (_codigo != Codigo)
                        {
                            lblMsg.Text = "Processo não pertence a esta inscrição.";
                        }
                        else
                        {
                            Processoreparc pr = tributario_class.Retorna_Processo_Parcelamento(sNumProc);
                            _totParcela = (short)pr.Qtdeparcela;

                            int _seq = Lista[0].Numsequencia;
                            List <DebitoStructure> ListaDebito = tributario_class.Lista_Parcelas_Parcelamento_Ano(_codigo, 2020, _seq);
                            if (ListaDebito.Count == 0)
                            {
                                lblMsg.Text = "Não existem parcelas a serem impressas.";
                            }
                            else
                            {
                                if (ListaDebito[0].Numero_Parcela == 1)
                                {
                                    bool _find = false;
                                    foreach (DebitoStructure itemtmp in ListaDebito)
                                    {
                                        if (itemtmp.Codigo_Situacao < 3)
                                        {
                                            _find = true;
                                            break;
                                        }
                                    }
                                    if (!_find)
                                    {
                                        lblMsg.Text = "Liberação do carnê somente após o pagamento da primeira parcela.";
                                        return;
                                    }
                                }

                                lblMsg.Text = "Imprimindo " + ListaDebito.Count.ToString() + " parcelas";

                                string _descricao_lancamento = "PARCELAMENTO DE DÉBITOS";
                                int    nSid = gtiCore.GetRandomNumber();

                                int nPos = 0;
                                foreach (DebitoStructure item in ListaDebito)
                                {
                                    //criamos um documento novo para cada parcela da vigilância
                                    Numdocumento regDoc = new Numdocumento();
                                    regDoc.Valorguia     = item.Soma_Principal;
                                    regDoc.Emissor       = "Gti.Web/2ViaVS";
                                    regDoc.Datadocumento = DateTime.Now;
                                    regDoc.Registrado    = false;
                                    regDoc.Percisencao   = 0;
                                    regDoc.Percisencao   = 0;
                                    int _novo_documento = tributario_class.Insert_Documento(regDoc);
                                    regDoc.numdocumento = _novo_documento;
                                    ListaDebito[nPos].Numero_Documento = _novo_documento;

                                    //grava o documento na parcela
                                    Parceladocumento regParc = new Parceladocumento();
                                    regParc.Codreduzido    = item.Codigo_Reduzido;
                                    regParc.Anoexercicio   = Convert.ToInt16(item.Ano_Exercicio);
                                    regParc.Codlancamento  = Convert.ToInt16(item.Codigo_Lancamento);
                                    regParc.Seqlancamento  = Convert.ToInt16(item.Sequencia_Lancamento);
                                    regParc.Numparcela     = Convert.ToByte(item.Numero_Parcela);
                                    regParc.Codcomplemento = Convert.ToByte(item.Complemento);
                                    regParc.Numdocumento   = _novo_documento;
                                    regParc.Valorjuros     = 0;
                                    regParc.Valormulta     = 0;
                                    regParc.Valorcorrecao  = 0;
                                    regParc.Plano          = 0;
                                    tributario_class.Insert_Parcela_Documento(regParc);

                                    //Registrar os novos documentos
                                    Ficha_compensacao_documento ficha = new Ficha_compensacao_documento();
                                    ficha.Nome             = _nome.Length > 40 ? _nome.Substring(0, 40) : _nome;
                                    ficha.Endereco         = _endereco.Length > 40 ? _endereco.Substring(0, 40) : _endereco;
                                    ficha.Bairro           = _bairro.Length > 15 ? _bairro.Substring(0, 15) : _bairro;
                                    ficha.Cidade           = _cidade.Length > 30 ? _cidade.Substring(0, 30) : _cidade;
                                    ficha.Cep              = _cep ?? "14870000";
                                    ficha.Cpf              = _cpfcnpj;
                                    ficha.Numero_documento = _novo_documento;
                                    ficha.Data_vencimento  = Convert.ToDateTime(item.Data_Vencimento);
                                    ficha.Valor_documento  = Convert.ToDecimal(item.Soma_Principal);
                                    ficha.Uf = _uf;
                                    if (item.Data_Vencimento > DateTime.Now)
                                    {
                                        Exception ex = tributario_class.Insert_Ficha_Compensacao_Documento(ficha);
                                        if (ex == null)
                                        {
                                            ex = tributario_class.Marcar_Documento_Registrado(_novo_documento);
                                        }
                                    }
                                    nPos++;
                                }

                                short  _index    = 0;
                                string _convenio = "2873532";
                                foreach (DebitoStructure item in ListaDebito)
                                {
                                    Boletoguia reg = new Boletoguia();
                                    reg.Usuario     = "Gti.Web/LibParc";
                                    reg.Computer    = "web";
                                    reg.Sid         = nSid;
                                    reg.Seq         = _index;
                                    reg.Codreduzido = _codigo.ToString("000000");
                                    reg.Nome        = _nome;
                                    reg.Cpf         = _cpfcnpj;
                                    reg.Numimovel   = _numero;
                                    reg.Endereco    = _endereco_rua;
                                    reg.Complemento = _complemento;
                                    reg.Bairro      = _bairro;
                                    reg.Cidade      = "JABOTICABAL";
                                    reg.Uf          = "SP";
                                    reg.Cep         = _cep;
                                    reg.Desclanc    = _descricao_lancamento;
                                    reg.Fulllanc    = _descricao_lancamento;
                                    reg.Numdoc      = item.Numero_Documento.ToString();
                                    reg.Numparcela  = (short)item.Numero_Parcela;
                                    reg.Datadoc     = DateTime.Now;
                                    reg.Datavencto  = item.Data_Vencimento;
                                    reg.Numdoc2     = item.Numero_Documento.ToString();
                                    reg.Valorguia   = item.Soma_Principal;
                                    reg.Valor_ISS   = 0;
                                    reg.Valor_Taxa  = 0;
                                    reg.Totparcela  = _totParcela;
                                    reg.Obs         = "Referente ao parcelamento de débitos: processo nº " + txtProcesso.Text;
                                    reg.Numproc     = txtProcesso.Text;

                                    //***** GERA CÓDIGO DE BARRAS BOLETO REGISTRADO*****
                                    DateTime _data_base        = Convert.ToDateTime("07/10/1997");
                                    TimeSpan ts                = Convert.ToDateTime(item.Data_Vencimento) - _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.Valorguia);
                                    _quinto_grupo += string.Format("{0:D10}", Convert.ToInt64(gtiCore.RetornaNumero(_valor_boleto_str)));
                                    string _barra = "0019" + _quinto_grupo + String.Format("{0:D13}", Convert.ToInt32(_convenio));
                                    _barra += String.Format("{0:D10}", Convert.ToInt64(reg.Numdoc)) + "17";
                                    string _campo1    = "0019" + _barra.Substring(19, 5);
                                    string _digitavel = _campo1 + gtiCore.Calculo_DV10(_campo1).ToString();
                                    string _campo2    = _barra.Substring(23, 10);
                                    _digitavel += _campo2 + gtiCore.Calculo_DV10(_campo2).ToString();
                                    string _campo3 = _barra.Substring(33, 10);
                                    _digitavel += _campo3 + gtiCore.Calculo_DV10(_campo3).ToString();
                                    string _campo5 = _quinto_grupo;
                                    string _campo4 = gtiCore.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) + " " + gtiCore.StringRight(_digitavel, 14);
                                    string _codigo_barra = gtiCore.Gera2of5Str(_barra);
                                    //**************************************************
                                    reg.Totparcela = (short)ListaDebito.Count;
                                    if (item.Numero_Parcela == 0)
                                    {
                                        reg.Parcela = "Única";
                                    }
                                    else
                                    {
                                        reg.Parcela = reg.Numparcela.ToString("00") + "/" + _totParcela.ToString("00");
                                    }

                                    reg.Digitavel   = _linha_digitavel;
                                    reg.Codbarra    = _codigo_barra;
                                    reg.Nossonumero = _convenio + String.Format("{0:D10}", Convert.ToInt64(reg.Numdoc));
                                    tributario_class.Insert_Boleto_Guia(reg);

                                    _index++;
                                }
                                Session["sid"] = nSid;
                                Response.Redirect("~/Pages/LiberacaoParcend.aspx?d=gti");
                            }
                        }
                    }
                }
            }
        }
        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);
        }