Beispiel #1
0
        private void Atualiza_Lista_Debitos()
        {
            gtiCore.Ocupado(this);
            Tributario_bll clsTributario = new Tributario_bll(_connection);
            DateTime       _data_Atualiza;

            if (gtiCore.IsDate(DataCalculoText.Text))
            {
                _data_Atualiza = Convert.ToDateTime(DataCalculoText.Text);
            }
            else
            {
                if (gtiCore.IsDate(DataVencimentoText.Text))
                {
                    _data_Atualiza = Convert.ToDateTime(DataVencimentoText.Text);
                }
                else
                {
                    MessageBox.Show("Data de vencimento inválida.", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    DataVencimentoText.Text = DateTime.Now.ToString("dd/MM/yyyy");
                    _data_Atualiza          = DateTime.Now;
                }
            }
            _extrato = clsTributario.Lista_Extrato_Tributo(Codigo: _lista_selecionados[0].Codreduzido, Data_Atualizacao: _data_Atualiza);
            gtiCore.Liberado(this);
        }
        private string Grava_Extrato_Pagamento(int Codigo, int NumeroCertidao, short AnoCertidao, string Sufixo)
        {
            string           Controle         = NumeroCertidao.ToString("00000") + AnoCertidao.ToString("0000") + "/" + Codigo.ToString() + "-" + Sufixo;
            Tributario_bll   tributario_Class = new Tributario_bll("GTIconnection");
            List <SpExtrato> ListaTributo     = tributario_Class.Lista_Extrato_Tributo(Codigo, 1980, 2050, 0, 99, 0, 99, 0, 999, 0, 99, 0, 99, DateTime.Now, "Web");
            List <SpExtrato> ListaParcela     = tributario_Class.Lista_Extrato_Parcela(ListaTributo);

            foreach (SpExtrato item in ListaParcela.Where(x => (x.Codlancamento == 2 || x.Codlancamento == 6 || x.Codlancamento == 14) && x.Statuslanc < 3))
            {
                Certidao_inscricao_extrato reg = new Certidao_inscricao_extrato();
                reg.Id = Controle;
                reg.Numero_certidao = NumeroCertidao;
                reg.Ano_certidao    = AnoCertidao;
                reg.Ano             = item.Anoexercicio;
                reg.Codigo          = item.Codreduzido;
                reg.Complemento     = item.Codcomplemento;
                if (item.Datapagamento != null)
                {
                    reg.Data_Pagamento = Convert.ToDateTime(item.Datapagamento);
                }
                reg.Data_Vencimento      = item.Datavencimento;
                reg.Lancamento_Codigo    = item.Codlancamento;
                reg.Lancamento_Descricao = item.Desclancamento;
                reg.Parcela    = (byte)item.Numparcela;
                reg.Sequencia  = (byte)item.Seqlancamento;
                reg.Valor_Pago = (decimal)item.Valorpagoreal;
                Exception ex = tributario_Class.Insert_Certidao_Inscricao_Extrato(reg);
                if (ex != null)
                {
                    throw ex;
                }
            }

            return(Controle);
        }
        private List <DebitoStructure> Carregaparcelas(int nNumDoc, DateTime dDataDoc)
        {
            int                    i = 0;
            Tributario_bll         tributario_Class = new Tributario_bll("GTIconnection");
            List <DebitoStructure> ListaParcelas    = tributario_Class.Lista_Tabela_Parcela_Documento(nNumDoc);

            foreach (DebitoStructure Linha in ListaParcelas)
            {
                List <SpExtrato> ListaTributo = tributario_Class.Lista_Extrato_Tributo(Linha.Codigo_Reduzido, (short)Linha.Ano_Exercicio, (short)Linha.Ano_Exercicio, (short)Linha.Codigo_Lancamento, (short)Linha.Codigo_Lancamento,
                                                                                       (short)Linha.Sequencia_Lancamento, (short)Linha.Sequencia_Lancamento, (short)Linha.Numero_Parcela, (short)Linha.Numero_Parcela, Linha.Complemento, Linha.Complemento, 0, 99, dDataDoc, "Web");
                List <SpExtrato> ListaParcela = tributario_Class.Lista_Extrato_Parcela(ListaTributo);

                for (i = 0; i < ListaParcelas.Count; i++)
                {
                    if (ListaParcelas[i].Ano_Exercicio == Linha.Ano_Exercicio & ListaParcelas[i].Codigo_Lancamento == Linha.Codigo_Lancamento & ListaParcelas[i].Sequencia_Lancamento == Linha.Sequencia_Lancamento &
                        ListaParcelas[i].Numero_Parcela == Linha.Numero_Parcela & ListaParcelas[i].Complemento == Linha.Complemento)
                    {
                        break;
                    }
                }
                ListaParcelas[i].Soma_Principal       = ListaParcela[0].Valortributo;
                ListaParcelas[i].Soma_Multa           = ListaParcela[0].Valormulta;
                ListaParcelas[i].Soma_Juros           = ListaParcela[0].Valorjuros;
                ListaParcelas[i].Soma_Correcao        = ListaParcela[0].Valorcorrecao;
                ListaParcelas[i].Soma_Total           = ListaParcela[0].Valortotal;
                ListaParcelas[i].Descricao_Lancamento = ListaParcela[0].Desclancamento;
                string DescTributo = "";

                List <int> aTributos = new List <int>();
                foreach (SpExtrato Trib in ListaTributo)
                {
                    bool bFind = false;
                    for (int b = 0; b < aTributos.Count; b++)
                    {
                        if (aTributos[b] == Trib.Codtributo)
                        {
                            bFind = true;
                            break;
                        }
                    }
                    if (!bFind)
                    {
                        aTributos.Add(Trib.Codtributo);
                    }
                }

                for (int c = 0; c < aTributos.Count; c++)
                {
                    DescTributo += aTributos[c].ToString("000") + "-" + tributario_Class.Lista_Tributo(aTributos[c])[0].Abrevtributo + ",";
                }

                DescTributo = DescTributo.Substring(0, DescTributo.Length - 1);
                ListaParcelas[i].Descricao_Tributo = DescTributo;
                ListaParcelas[i].Data_Vencimento   = ListaParcela[0].Datavencimento;
            }

            return(ListaParcelas);
        }
Beispiel #4
0
        private void GeraGuia(decimal Valor_Honorario)
        {
            decimal tmpNumber = 0;

            bGerado = true;
            Tributario_bll         tributario_Class = new Tributario_bll("GTIconnection");
            List <DebitoStructure> lstExtrato       = new List <DebitoStructure>();
            DebitoStructure        reg = null;
            string DescTributo         = "";

            foreach (GridViewRow row in grdMain.Rows)
            {
                if (row.RowType == DataControlRowType.DataRow)
                {
                    if ((row.FindControl("chkRow") as CheckBox).Checked)
                    {
                        reg = new DebitoStructure();
                        reg.Codigo_Reduzido      = Convert.ToInt32(txtCod.Text);
                        reg.Ano_Exercicio        = Convert.ToInt32(row.Cells[1].Text);
                        reg.Codigo_Lancamento    = Convert.ToInt16(row.Cells[2].Text.Substring(0, 3));
                        reg.Sequencia_Lancamento = Convert.ToInt16(row.Cells[3].Text);
                        reg.Numero_Parcela       = Convert.ToInt16(row.Cells[4].Text);
                        reg.Complemento          = Convert.ToInt16(row.Cells[5].Text);
                        reg.Descricao_Lancamento = row.Cells[2].Text.Substring(4, row.Cells[2].Text.ToString().Length - 4);
                        reg.Data_Vencimento      = Convert.ToDateTime(row.Cells[6].Text);
                        decimal.TryParse(row.Cells[7].Text, out tmpNumber);
                        reg.Soma_Principal = tmpNumber;
                        decimal.TryParse(row.Cells[8].Text, out tmpNumber);
                        reg.Soma_Juros = tmpNumber;
                        decimal.TryParse(row.Cells[9].Text, out tmpNumber);
                        reg.Soma_Multa = tmpNumber;
                        decimal.TryParse(row.Cells[10].Text, out tmpNumber);
                        reg.Soma_Correcao = tmpNumber;
                        decimal.TryParse(row.Cells[11].Text, out tmpNumber);
                        reg.Soma_Total = tmpNumber;

                        List <SpExtrato> ListaTributo = tributario_Class.Lista_Extrato_Tributo(reg.Codigo_Reduzido, Convert.ToInt16(reg.Ano_Exercicio), Convert.ToInt16(reg.Ano_Exercicio), Convert.ToInt16(reg.Codigo_Lancamento), Convert.ToInt16(reg.Codigo_Lancamento), Convert.ToInt16(reg.Sequencia_Lancamento), Convert.ToInt16(reg.Sequencia_Lancamento),
                                                                                               Convert.ToInt16(reg.Numero_Parcela), Convert.ToInt16(reg.Numero_Parcela), reg.Complemento, reg.Complemento, 0, 99, Convert.ToDateTime(reg.Data_Vencimento), "Web");

                        List <int> aTributos = new List <int>();
                        foreach (SpExtrato Trib in ListaTributo)
                        {
                            bool bFind = false;
                            for (int i = 0; i < aTributos.Count; i++)
                            {
                                if (aTributos[i] == Trib.Codtributo)
                                {
                                    bFind = true;
                                    break;
                                }
                            }
                            if (!bFind)
                            {
                                aTributos.Add(Trib.Codtributo);
                            }
                        }

                        for (int i = 0; i < aTributos.Count; i++)
                        {
                            DescTributo += aTributos[i].ToString("000") + "-" + tributario_Class.Lista_Tributo(aTributos[i])[0].Abrevtributo + ",";
                        }
                        ;

                        DescTributo           = DescTributo.Substring(0, DescTributo.Length - 1);
                        reg.Descricao_Tributo = DescTributo;
                        lstExtrato.Add(reg);
                    }
                }
            }

            bool _find = false;

            foreach (GridViewRow row in grdMain.Rows)
            {
                if (row.RowType == DataControlRowType.DataRow)
                {
                    if ((row.FindControl("chkRow") as CheckBox).Checked)
                    {
                        if (row.Cells[12].Text.Substring(0, 1) == "S")
                        {
                            bGerado = false;
                            _find   = true;
                            break;
                        }
                    }
                }
            }
            if (!_find)
            {
                Valor_Honorario = 0;
            }


            if (Valor_Honorario > 0)
            {
                int _codigo = Convert.ToInt32(txtCod.Text);
                int _seq    = tributario_Class.Retorna_Ultima_Seq_Honorario(_codigo, DateTime.Now.Year);
                _seq++;
                reg = new DebitoStructure();
                reg.Codigo_Reduzido      = _codigo;
                reg.Ano_Exercicio        = DateTime.Now.Year;
                reg.Codigo_Lancamento    = 41;
                reg.Sequencia_Lancamento = _seq;
                reg.Numero_Parcela       = 1;
                reg.Complemento          = 0;
                reg.Descricao_Lancamento = "41-DESPESAS JUDICIAIS";
                reg.Data_Vencimento      = Convert.ToDateTime(lblVenctoDam.Text);
                reg.Soma_Principal       = Valor_Honorario;
                reg.Soma_Juros           = 0;
                reg.Soma_Multa           = 0;
                reg.Soma_Correcao        = 0;
                reg.Soma_Total           = Valor_Honorario;

                List <SpExtrato> ListaTributo = tributario_Class.Lista_Extrato_Tributo(reg.Codigo_Reduzido, Convert.ToInt16(reg.Ano_Exercicio), Convert.ToInt16(reg.Ano_Exercicio), Convert.ToInt16(reg.Codigo_Lancamento), Convert.ToInt16(reg.Codigo_Lancamento), Convert.ToInt16(reg.Sequencia_Lancamento), Convert.ToInt16(reg.Sequencia_Lancamento),
                                                                                       Convert.ToInt16(reg.Numero_Parcela), Convert.ToInt16(reg.Numero_Parcela), reg.Complemento, reg.Complemento, 0, 99, Convert.ToDateTime(reg.Data_Vencimento), "Web");

                DescTributo          += "090 - Honorários";
                reg.Descricao_Tributo = DescTributo;
                lstExtrato.Add(reg);

                Debitoparcela regParcela = new Debitoparcela {
                    Codreduzido    = _codigo,
                    Anoexercicio   = (short)DateTime.Now.Year,
                    Codlancamento  = 41,
                    Seqlancamento  = (short)_seq,
                    Numparcela     = 1,
                    Codcomplemento = 0,
                    Statuslanc     = 3,
                    Datavencimento = Convert.ToDateTime(lblVenctoDam.Text),
                    Datadebase     = DateTime.Now,
                    Userid         = 236
                };
                Exception ex = tributario_Class.Insert_Debito_Parcela(regParcela);

                Debitotributo regTributo = new Debitotributo {
                    Codreduzido    = _codigo,
                    Anoexercicio   = (short)DateTime.Now.Year,
                    Codlancamento  = 41,
                    Seqlancamento  = (short)_seq,
                    Numparcela     = 1,
                    Codcomplemento = 0,
                    Codtributo     = 90,
                    Valortributo   = Valor_Honorario
                };
                ex = tributario_Class.Insert_Debito_Tributo(regTributo);
            }

            decimal nValorGuia = 0;

            decimal.TryParse(TableTotal.Rows[2].Cells[6].Text, out nValorGuia);

            Numdocumento regDoc = new Numdocumento();

            regDoc.Valorguia     = nValorGuia;
            regDoc.Emissor       = "Gti.Web/Dam.Reg";
            regDoc.Datadocumento = DateTime.Now;
            regDoc.Registrado    = true;
            regDoc.Percisencao   = 0;
            if (bRefis)
            {
                if (nPlano == 26)
                {
                    regDoc.Percisencao = 100;
                }
                else
                {
                    if (nPlano == 27)
                    {
                        regDoc.Percisencao = 90;
                    }
                    else
                    {
                        if (nPlano == 28)
                        {
                            regDoc.Percisencao = 80;
                        }
                    }
                }
            }
            int NumDoc = tributario_Class.Insert_Documento(regDoc);

            foreach (DebitoStructure Lanc in lstExtrato)
            {
                Parceladocumento regParc = new Parceladocumento();
                regParc.Codreduzido    = Lanc.Codigo_Reduzido;
                regParc.Anoexercicio   = Convert.ToInt16(Lanc.Ano_Exercicio);
                regParc.Codlancamento  = Convert.ToInt16(Lanc.Codigo_Lancamento);
                regParc.Seqlancamento  = Convert.ToInt16(Lanc.Sequencia_Lancamento);
                regParc.Numparcela     = Convert.ToByte(Lanc.Numero_Parcela);
                regParc.Codcomplemento = Convert.ToByte(Lanc.Complemento);
                regParc.Numdocumento   = NumDoc;
                regParc.Valorjuros     = Convert.ToDecimal(Lanc.Soma_Juros);
                regParc.Valormulta     = Convert.ToDecimal(Lanc.Soma_Multa);
                regParc.Valorcorrecao  = Convert.ToDecimal(Lanc.Soma_Correcao);
                regParc.Plano          = Convert.ToInt16(nPlano);

                tributario_Class.Insert_Parcela_Documento(regParc);
            }

            string sDataDAM = lblVenctoDam.Text;

            if (lstExtrato.Count == 0)
            {
                lblMsg2.Text = "Selecione ao menos uma parcela.";
                return;
            }
            int nSid = tributario_Class.Insert_Boleto_DAM(lstExtrato, NumDoc, DateTime.ParseExact(sDataDAM, "dd/MM/yyyy", null));

            if (nSid > 0)
            {
                Session["sid"] = nSid;
                Response.Redirect("~/Pages/damwebend2.aspx");
                ShowResult(false);
                Response.Write("<script>window.open('damwebend2.aspx','_blank');</script>");
            }
        }
Beispiel #5
0
        protected void btConsultar_Click(object sender, ImageClickEventArgs e)
        {
            bool     isNum          = false;
            int      Num            = 0;
            decimal  nSomaPrincipal = 0;
            decimal  nSomaJuros     = 0;
            decimal  nSomaMulta     = 0;
            decimal  nSomaCorrecao  = 0;
            decimal  nSomaTotal     = 0;
            string   num_cpf_cnpj   = "";
            DateTime DataDAM;

            bGerado = false;
            String sTextoImagem = txtimgcode.Text;

            txtimgcode.Text = "";

            lblmsg.Text      = "";
            lblMsg2.Text     = "";
            lblNome.Text     = "";
            lblDoc.Text      = "";
            lblEndereco.Text = "";
            lblValidate.Text = "";


            if (optCPF.Checked && gtiCore.RetornaNumero(txtCPF.Text).Length < 11)
            {
                lblmsg.Text = "CPF inválido!";
                ShowResult(false);
                return;
            }
            if (optCNPJ.Checked && gtiCore.RetornaNumero(txtCNPJ.Text).Length < 14)
            {
                lblmsg.Text = "CNPJ inválido!";
                ShowResult(false);
                return;
            }

            if (optCPF.Checked)
            {
                num_cpf_cnpj = gtiCore.RetornaNumero(txtCPF.Text);
                if (!gtiCore.ValidaCpf(num_cpf_cnpj))
                {
                    lblmsg.Text = "CPF inválido!";
                    ShowResult(false);
                    return;
                }
            }
            else
            {
                num_cpf_cnpj = gtiCore.RetornaNumero(txtCNPJ.Text);
                if (!gtiCore.ValidaCNPJ(num_cpf_cnpj))
                {
                    lblmsg.Text = "CNPJ inválido!";
                    ShowResult(false);
                    return;
                }
            }


            if (optList.Items[0].Selected == true)
            {
                isNum = int.TryParse(txtCod.Text, out Num);
                if (!isNum)
                {
                    lblmsg.Text = "Código do imóvel inválido!";
                    ShowResult(false);
                    return;
                }
                else
                {
                    Imovel_bll imovel_Class = new Imovel_bll("GTIconnection");
                    bool       bFind        = imovel_Class.Existe_Imovel(Num);
                    if (bFind)
                    {
                        ImovelStruct reg = imovel_Class.Dados_Imovel(Num);
                        List <ProprietarioStruct> regProp = imovel_Class.Lista_Proprietario(Num, true);

                        lblEndereco.Text = reg.NomeLogradouro + ", " + reg.Numero + " " + reg.Complemento;
                        lblDoc.Text      = reg.NomeBairro;
                        lblNome.Text     = regProp[0].Nome;
                        if (optCPF.Checked)
                        {
                            if (Convert.ToInt64(gtiCore.RetornaNumero(regProp[0].CPF)).ToString("00000000000") != num_cpf_cnpj)
                            {
                                lblmsg.Text = "CPF não pertence ao proprietário deste imóvel!";
                                ShowResult(false);
                                return;
                            }
                        }
                        else
                        {
                            if (Convert.ToInt64(gtiCore.RetornaNumero(regProp[0].CPF)).ToString("00000000000000") != num_cpf_cnpj)
                            {
                                lblmsg.Text = "CNPJ não pertence ao proprietário deste imóvel!";
                                ShowResult(false);
                                return;
                            }
                        }
                    }
                    else
                    {
                        lblmsg.Text = "Código do imóvel não cadastrado!";
                        ShowResult(false);
                        return;
                    }
                }
            }
            else
            {
                if (optList.Items[1].Selected == true)
                {
                    isNum = int.TryParse(txtCod.Text, out Num);
                    if (!isNum)
                    {
                        lblmsg.Text = "Código da empresa inválido!";
                        ShowResult(false);
                        return;
                    }
                    else
                    {
                        Empresa_bll empresa_Class = new Empresa_bll("GTIconnection");
                        bool        bFind         = empresa_Class.Existe_Empresa(Num);
                        if (bFind)
                        {
                            EmpresaStruct reg = empresa_Class.Retorna_Empresa(Num);
                            lblEndereco.Text = reg.Endereco_nome + ", " + reg.Numero + " " + reg.Complemento;
                            lblDoc.Text      = reg.Bairro_nome;
                            lblNome.Text     = reg.Razao_social;

                            if (optCPF.Checked)
                            {
                                if (Convert.ToInt64(gtiCore.RetornaNumero(reg.Cpf_cnpj)).ToString("00000000000") != num_cpf_cnpj)
                                {
                                    lblmsg.Text = "CPF não pertence ao proprietário deste imóvel!";
                                    ShowResult(false);
                                    return;
                                }
                            }
                            else
                            {
                                if (Convert.ToInt64(gtiCore.RetornaNumero(reg.Cpf_cnpj)).ToString("00000000000000") != num_cpf_cnpj)
                                {
                                    lblmsg.Text = "CNPJ não pertence ao proprietário deste imóvel!";
                                    ShowResult(false);
                                    return;
                                }
                            }
                        }
                        else
                        {
                            lblmsg.Text = "Inscrição Municipal não cadastrada!";
                            ShowResult(false);
                            return;
                        }
                    }
                }
                else
                {
                    if (optList.Items[2].Selected == true)
                    {
                        isNum = Int32.TryParse(txtCod.Text, out Num);
                        if (!isNum)
                        {
                            lblmsg.Text = "Código de contribuinte inválido!";
                            ShowResult(false);
                            return;
                        }
                        else
                        {
                            if (Num < 500000 || Num > 700000)
                            {
                                lblmsg.Text = "Código de contribuinte inválido!";
                                ShowResult(false);
                                return;
                            }
                            else
                            {
                                Cidadao_bll cidadao_Class = new Cidadao_bll("GTIconnection");
                                bool        bFind         = cidadao_Class.ExisteCidadao(Num);
                                if (bFind)
                                {
                                    CidadaoStruct reg = cidadao_Class.LoadReg(Num);
                                    if (reg.EtiquetaR != null && reg.EtiquetaR == "S")
                                    {
                                        lblEndereco.Text = reg.EnderecoR + ", " + reg.NumeroR + " " + reg.ComplementoR;
                                        lblDoc.Text      = reg.NomeBairroR;
                                    }
                                    else
                                    {
                                        lblEndereco.Text = reg.EnderecoC + ", " + reg.NumeroC + " " + reg.ComplementoC;
                                        lblDoc.Text      = reg.NomeBairroC;
                                    }
                                    lblNome.Text = reg.Nome;

                                    if (optCPF.Checked)
                                    {
                                        if (Convert.ToInt64(gtiCore.RetornaNumero(reg.Cpf)).ToString("00000000000") != num_cpf_cnpj)
                                        {
                                            lblmsg.Text = "CPF não pertence ao proprietário deste imóvel!";
                                            ShowResult(false);
                                            return;
                                        }
                                    }
                                    else
                                    {
                                        if (Convert.ToInt64(gtiCore.RetornaNumero(reg.Cnpj)).ToString("00000000000000") != num_cpf_cnpj)
                                        {
                                            lblmsg.Text = "CNPJ não pertence ao proprietário deste imóvel!";
                                            ShowResult(false);
                                            return;
                                        }
                                    }
                                }
                                else
                                {
                                    lblmsg.Text = "Contribuinte não cadastrado!";
                                    ShowResult(false);
                                    return;
                                }
                            }
                        }
                    }
                }
            }

            if (!DateTime.TryParse(lblVenctoDam.Text, out DataDAM))
            {
                lblmsg.Text = "Data de vencimento inválida.";
                ShowResult(false);
                return;
            }
            else
            {
                String sDataVencto = lblVenctoDam.Text;
                String sDataNow    = DateTime.Now.ToString("dd/MM/yyyy");
                if (DateTime.ParseExact(sDataVencto, "dd/MM/yyyy", null) < DateTime.ParseExact(sDataNow, "dd/MM/yyyy", null))
                {
                    lblmsg.Text = "Vencimento menor que a data atual.";
                    ShowResult(false);
                    return;
                }
                else
                {
                    Int32 DifDias = ((TimeSpan)(DataDAM - DateTime.Now)).Days;
                    if (DifDias > 30)
                    {
                        lblmsg.Text = "Vencimento máximo de 30 dias.";
                        ShowResult(false);
                        return;
                    }
                }
            }

            if (txtimgcode.Text == Session["randomStr"].ToString())
            {
                lblmsg.Text = "Código da imagem inválido.";
                ShowResult(false);
                return;
            }
            else
            {
                ShowResult(true);
                lblmsg.Text  = "";
                lblMsg2.Text = "";
            }

            this.txtimgcode.Text = "";

            String         sDataDAM         = DataDAM.ToString("dd/MM/yyyy");
            Tributario_bll tributario_Class = new Tributario_bll("GTIconnection");

            bRefis = tributario_Class.IsRefis();
            List <SpExtrato>       ListaTributo = tributario_Class.Lista_Extrato_Tributo(Num, 1980, 2050, 0, 99, 0, 99, 0, 999, 0, 99, 0, 99, DateTime.ParseExact(sDataDAM, "dd/MM/yyyy", null), "Web");
            List <SpExtrato>       ListaParcela = tributario_Class.Lista_Extrato_Parcela(ListaTributo);
            List <DebitoStructure> debitos2     = new List <DebitoStructure>();

            Decimal nPerc = 0;

            int nIndex = 0;

            if (bRefis)
            {
                foreach (var item in ListaParcela)
                {
                    if (Convert.ToDateTime(item.Datavencimento) <= Convert.ToDateTime("30/06/2019"))
                    {
                        Int16 CodLanc = item.Codlancamento;
                        if (CodLanc != 48 || CodLanc != 69 || CodLanc != 78)
                        {
                            if (Convert.ToDateTime(sDataDAM) <= Convert.ToDateTime("18/10/2019"))
                            {
                                nPerc  = 1M;
                                nPlano = 33;
                            }
                            else if (Convert.ToDateTime(sDataDAM) > Convert.ToDateTime("18/10/2019") && Convert.ToDateTime(sDataDAM) <= Convert.ToDateTime("29/11/2019"))
                            {
                                nPerc  = 0.9M;
                                nPlano = 34;
                            }
                            else if (Convert.ToDateTime(sDataDAM) > Convert.ToDateTime("29/11/2019") && Convert.ToDateTime(sDataDAM) <= Convert.ToDateTime("20/12/2019"))
                            {
                                nPerc  = 0.8M;
                                nPlano = 35;
                            }
                            if (nPlano > 0)
                            {
                                item.Valorjuros = Convert.ToDecimal(item.Valorjuros) - (Convert.ToDecimal(item.Valorjuros) * nPerc);
                                item.Valormulta = Convert.ToDecimal(item.Valormulta) - (Convert.ToDecimal(item.Valormulta) * nPerc);
                                item.Valortotal = item.Valortributo + item.Valorjuros + item.Valormulta + item.Valorcorrecao;
                            }
                            ListaParcela[nIndex].Valorjuros = item.Valorjuros;
                            ListaParcela[nIndex].Valormulta = item.Valormulta;
                            ListaParcela[nIndex].Valortotal = item.Valortotal;
                        }
                    }
                    nIndex++;
                }
            }

            PlanoLabel.Text = nPlano.ToString();
            foreach (var item in ListaParcela)
            {
                if (item.Statuslanc == 3 || item.Statuslanc == 19 || item.Statuslanc == 38 || item.Statuslanc == 39 || item.Statuslanc == 42 || item.Statuslanc == 43)
                {
                    //if (item.Codlancamento != 16 && item.Codlancamento != 38) {
                    DebitoStructure reg = new DebitoStructure();
                    reg.Codigo_Reduzido      = item.Codreduzido;
                    reg.Ano_Exercicio        = item.Anoexercicio;
                    reg.Codigo_Lancamento    = Convert.ToInt16(item.Codlancamento);
                    reg.Descricao_Lancamento = item.Desclancamento;
                    reg.Sequencia_Lancamento = Convert.ToInt16(item.Seqlancamento);
                    reg.Numero_Parcela       = Convert.ToInt16(item.Numparcela);
                    reg.Complemento          = item.Codcomplemento;
                    reg.Data_Vencimento      = Convert.ToDateTime(item.Datavencimento);
                    reg.Codigo_Situacao      = Convert.ToInt16(item.Statuslanc);
                    reg.Soma_Principal       = item.Valortributo;
                    reg.Soma_Juros           = item.Valorjuros;
                    reg.Soma_Multa           = item.Valormulta;
                    reg.Soma_Correcao        = item.Valorcorrecao;
                    reg.Soma_Total           = item.Valortotal;
                    reg.Data_Ajuizamento     = item.Dataajuiza;
                    debitos2.Add(reg);
                    //  }
                }
            }

            if (debitos2.Count == 0)
            {
                lblDoc.Text = "";
                lblmsg.Text = "Não existem débitos.";
                ShowResult(false);
                return;
            }

            DataTable dt = new DataTable();

            dt.Columns.AddRange(new DataColumn[14] {
                new DataColumn("Exercicio"), new DataColumn("Lancamento"), new DataColumn("Sequencia"),
                new DataColumn("Parcela"), new DataColumn("Complemento"), new DataColumn("DtVencimento"), new DataColumn("VlPrincipal"),
                new DataColumn("VlJuros"), new DataColumn("VlMulta"), new DataColumn("VlCorrecao"), new DataColumn("VlTotal"), new DataColumn("DtAjuiza"),
                new DataColumn("Protesto"), new DataColumn("EnvProt")
            });

            foreach (var item in debitos2)
            {
                dt.Rows.Add(item.Ano_Exercicio.ToString(), item.Codigo_Lancamento.ToString("000") + "-" + item.Descricao_Lancamento.ToString(), item.Sequencia_Lancamento.ToString(),
                            item.Numero_Parcela.ToString(), item.Complemento.ToString(), Convert.ToDateTime(item.Data_Vencimento).ToString("dd/MM/yyyy"),
                            item.Soma_Principal.ToString("#0.00"), item.Soma_Juros.ToString("#0.00"), item.Soma_Multa.ToString("#0.00"),
                            item.Soma_Correcao.ToString("#0.00"), item.Soma_Total.ToString("#0.00"), item.Data_Ajuizamento == DateTime.MinValue || item.Data_Ajuizamento == null? "NÃO" : "SIM",
                            item.Codigo_Situacao == 38 ? "SIM" : "NÃO", item.Codigo_Situacao == 39 ? "SIM" : "NÃO");
                nSomaPrincipal += item.Soma_Principal;
                nSomaJuros     += item.Soma_Juros;
                nSomaMulta     += item.Soma_Multa;
                nSomaCorrecao  += item.Soma_Correcao;
                nSomaTotal     += item.Soma_Total;
            }

            grdMain.DataSource = dt;
            grdMain.DataBind();

            TableTotal.Rows[1].Cells[2].Text = nSomaPrincipal.ToString("#0.00");
            TableTotal.Rows[1].Cells[3].Text = nSomaMulta.ToString("#0.00");
            TableTotal.Rows[1].Cells[4].Text = nSomaJuros.ToString("#0.00");
            TableTotal.Rows[1].Cells[5].Text = nSomaCorrecao.ToString("#0.00");
            TableTotal.Rows[1].Cells[6].Text = nSomaTotal.ToString("#0.00");

            TableTotal.Rows[2].Cells[2].Text  = "0,00";
            TableTotal.Rows[2].Cells[3].Text  = "0,00";
            TableTotal.Rows[2].Cells[4].Text  = "0,00";
            TableTotal.Rows[2].Cells[5].Text  = "0,00";
            TableTotal.Rows[2].Cells[6].Text  = "0,00";
            TableResumo.Rows[0].Cells[1].Text = "0,00";
            TableResumo.Rows[1].Cells[1].Text = lblVenctoDam.Text;
        }
        protected void VerificarButton_Click(object sender, EventArgs e)
        {
            string sCPF = txtCPF.Text, sCNPJ = txtCNPJ.Text, num_cpf_cnpj = "", sNome = "", sAtividade = "";
            int    _codigo = 0;

            bool isNum = Int32.TryParse(Codigo.Text, out _codigo);

            if (!isNum)
            {
                lblMsg.Text = "Código de contribuinte inválido!";
            }
            else
            {
                if (_codigo < 100000 || _codigo >= 300000)
                {
                    lblMsg.Text = "Código de contribuinte inválido!";
                }
                else
                {
                    if (txtimgcode.Text != Session["randomStr"].ToString())
                    {
                        lblMsg.Text = "Código da imagem inválido";
                    }
                    else
                    {
                        if (sCPF == "" && sCNPJ == "")
                        {
                            lblMsg.Text = "Digite o CPF/CNPJ da empresa.";
                        }
                        else
                        {
                            if (optCPF.Checked)
                            {
                                num_cpf_cnpj = gtiCore.RetornaNumero(txtCPF.Text);
                                if (!gtiCore.ValidaCpf(num_cpf_cnpj))
                                {
                                    lblMsg.Text = "CPF inválido!";
                                    return;
                                }
                            }
                            else
                            {
                                num_cpf_cnpj = gtiCore.RetornaNumero(txtCNPJ.Text);
                                if (!gtiCore.ValidaCNPJ(num_cpf_cnpj))
                                {
                                    lblMsg.Text = "CNPJ inválido!";
                                    return;
                                }
                            }

                            Empresa_bll empresa_Class = new Empresa_bll("GTIconnection");
                            bool        bFind         = empresa_Class.Existe_Empresa(_codigo);
                            if (bFind)
                            {
                                EmpresaStruct reg = empresa_Class.Retorna_Empresa(_codigo);
                                if (optCPF.Checked)
                                {
                                    if (Convert.ToInt64(gtiCore.RetornaNumero(reg.Cpf_cnpj)).ToString("00000000000") != num_cpf_cnpj)
                                    {
                                        lblMsg.Text = "CPF não pertence ao proprietário deste imóvel!";
                                        return;
                                    }
                                }
                                else
                                {
                                    if (Convert.ToInt64(gtiCore.RetornaNumero(reg.Cpf_cnpj)).ToString("00000000000000") != num_cpf_cnpj)
                                    {
                                        lblMsg.Text = "CNPJ não pertence ao proprietário deste imóvel!";
                                        return;
                                    }
                                }
                                sNome      = reg.Razao_social;
                                sAtividade = reg.Atividade_extenso;
                            }
                            else
                            {
                                lblMsg.Text = "Inscrição Municipal não cadastrada!";
                                return;
                            }

                            //se chegou até aqui então a empresa esta ok para verificar os débitos
                            Tributario_bll   tributario_Class = new Tributario_bll("GTIconnection");
                            List <SpExtrato> ListaTributo     = tributario_Class.Lista_Extrato_Tributo(_codigo, (short)DateTime.Now.Year, (short)DateTime.Now.Year, 0, 99, 0, 99, 0, 999, 0, 99, 0, 99, DateTime.Now, "Web");
                            List <SpExtrato> ListaParcela     = tributario_Class.Lista_Extrato_Parcela(ListaTributo);

                            DataSets.dsSituacaoPagto set1 = new DataSets.dsSituacaoPagto();;
                            int nSid = gtiCore.GetRandomNumber();
                            if (ListaParcela.Count == 0)
                            {
                                lblMsg.Text = "Não existem débitos de ISS Fixo,Taxa de Licença e Vig.Sanitária para o ano atual.";
                                return;
                            }


                            foreach (SpExtrato item in ListaParcela)
                            {
                                if (item.Codlancamento == 2 || item.Codlancamento == 6 || item.Codlancamento == 13 || item.Codlancamento == 14)
                                {
                                    if (item.Numparcela > 0 && item.Statuslanc == 1)
                                    {
                                        goto Proximo;
                                    }
                                    if (item.Numparcela == 0 && item.Statuslanc != 1)
                                    {
                                        goto Proximo;
                                    }
                                    DataRow row = set1.Tables["dtSituacaoPagto"].NewRow();
                                    row["sid"]         = nSid;
                                    row["ano"]         = item.Anoexercicio;
                                    row["lancamento"]  = item.Codlancamento;
                                    row["seq"]         = item.Seqlancamento;
                                    row["parcela"]     = item.Numparcela;
                                    row["complemento"] = item.Codcomplemento;
                                    row["valor_pago"]  = 0;
                                    if (item.Datapagamento != null)
                                    {
                                        row["data_pagamento"] = item.Datapagamento;
                                        row["valor_pago"]     = item.Valorpagoreal;
                                    }
                                    row["data_vencimento"] = item.Datavencimento;
                                    row["descricao"]       = item.Desclancamento;
                                    row["situacao"]        = item.Situacao;
                                    set1.Tables["dtSituacaoPagto"].Rows.Add(row);
                                }
                                Proximo :;
                            }

                            int _numero_certidao = tributario_Class.Retorna_Codigo_Certidao(modelCore.TipoCertidao.Comprovante_Pagamento);
                            int _ano_certidao    = DateTime.Now.Year;

                            ReportDocument crystalReport = new ReportDocument();

                            crystalReport.Load(Server.MapPath("~/Report/SituacaoPagamento.rpt"));
                            crystalReport.SetDataSource(set1);
                            crystalReport.SetParameterValue("NUMCOMPROVANTE", _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() + "-PG");
                            crystalReport.SetParameterValue("CADASTRO", _codigo.ToString("000000"));
                            crystalReport.SetParameterValue("NOME", sNome);
                            crystalReport.SetParameterValue("CPFCNPJ", num_cpf_cnpj);
                            crystalReport.SetParameterValue("ATIVIDADE", sAtividade);
                            crystalReport.RecordSelectionFormula = "{dtSituacaoPagto.sid}=" + nSid;


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

                            try {
                                crystalReport.ExportToHttpResponse(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat, HttpContext.Current.Response, true, "certidao" + _numero_certidao.ToString() + _ano_certidao.ToString());
                            } catch  {
                            } finally {
                                crystalReport.Close();
                                crystalReport.Dispose();
                            }
                        }
                    }
                }
            }
        }
        public 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);
        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);
        }