Пример #1
0
        public List<DebitoStructure> ListaParcelasCIP(int nCodigo, int nAno) {
            using (TributacaoEntities db = new TributacaoEntities()) {
                var reg = (from dp in db.debitoparcela
                           join dt in db.debitotributo on new { p1 = dp.codreduzido, p2 = dp.anoexercicio, p3 = dp.codlancamento, p4 = dp.seqlancamento, p5 = dp.numparcela, p6 = dp.codcomplemento }
                                                   equals new { p1 = dt.codreduzido, p2 = dt.anoexercicio, p3 = dt.codlancamento, p4 = dt.seqlancamento, p5 = dt.numparcela, p6 = dt.codcomplemento } into dpdt from dt in dpdt.DefaultIfEmpty()
                           join pd in db.parceladocumento on new { p1 = dp.codreduzido, p2 = dp.anoexercicio, p3 = dp.codlancamento, p4 = dp.seqlancamento, p5 = dp.numparcela, p6 = dp.codcomplemento }
                                                      equals new { p1 = pd.codreduzido, p2 = pd.anoexercicio, p3 = pd.codlancamento, p4 = pd.seqlancamento, p5 = pd.numparcela, p6 = pd.codcomplemento } into dppd from pd in dppd.DefaultIfEmpty()
                           where dp.codreduzido == nCodigo && dp.anoexercicio == nAno && dp.codlancamento == 79 && dp.seqlancamento == 0 && dp.statuslanc == 3
                           orderby new { dp.numparcela, dp.codcomplemento }
                           select new { dp.codreduzido, dp.anoexercicio, dp.codlancamento, dp.seqlancamento, dp.numparcela, dp.codcomplemento, dp.datavencimento, dt.valortributo, pd.numdocumento });


                List<DebitoStructure> Lista = new List<DebitoStructure>();
                foreach (var query in reg) {
                    foreach (DebitoStructure item in Lista) {
                        if (item.Numero_Parcela == query.numparcela && item.Complemento == query.codcomplemento)
                            goto Proximo;
                    }
                    DebitoStructure Linha = new DebitoStructure();
                    Linha.Codigo_Reduzido = query.codreduzido;
                    Linha.Ano_Exercicio = query.anoexercicio;
                    Linha.Codigo_Lancamento = query.codlancamento;
                    Linha.Sequencia_Lancamento = query.seqlancamento;
                    Linha.Numero_Parcela = query.numparcela;
                    Linha.Complemento = query.codcomplemento;
                    Linha.Soma_Principal = Convert.ToDecimal(query.valortributo);
                    Linha.Data_Vencimento = query.datavencimento;
                    Linha.Numero_Documento = query.numdocumento;
                    Lista.Add(Linha);
                    Proximo:;
                }
                return Lista;
            }
        }
Пример #2
0
 public List<DebitoStructure> ListaParcelasDocumento(int nNumDoc) {
     using (TributacaoEntities db = new TributacaoEntities()) {
         var reg = (from p in db.parceladocumento where p.numdocumento==nNumDoc
                    select new { p.codreduzido, p.anoexercicio, p.codlancamento, p.seqlancamento, p.numparcela, p.codcomplemento});
         List<DebitoStructure> Lista = new List<DebitoStructure>();
         foreach (var query in reg) {
             DebitoStructure Linha = new DebitoStructure();
             Linha.Codigo_Reduzido = query.codreduzido;
             Linha.Ano_Exercicio = query.anoexercicio;
             Linha.Codigo_Lancamento = query.codlancamento;
             Linha.Sequencia_Lancamento = query.seqlancamento;
             Linha.Numero_Parcela = query.numparcela;
             Linha.Complemento = query.codcomplemento;
             Lista.Add(Linha);
         }
         return Lista;
     }
 }
Пример #3
0
        public List<DebitoStructure> Extrato(int Codigo, short Ano1, short Ano2, short Lanc1, short Lanc2, short Seq1, short Seq2, short Parc1, short Parc2, short Compl1, short Compl2, short nStatus1, short nStatus2, DateTime dDataNow, byte bAjuizado) {
            // bool bRefis = Convert.ToInt32(clsGlobal.ParametroGti("ANISTIA")) == 1 ? true : false;
            bool bRefis = true;
            bool bRefisDI = true;
            Decimal nPerc = 0;
            decimal nValorPrincipal, nValorMulta, nValorJuros, nValorCorrecao, nValorTotal; ;

            DataSet Ds = new DataSet();
            using (var con = new SqlConnection(ConfigurationManager.ConnectionStrings["GTIconnection"].ConnectionString))
            using (var cmd = new SqlCommand("spExtratoNew", con)) {
                cmd.Parameters.Add(new SqlParameter("@CodReduz1", SqlDbType.Int)).Value = Codigo;
                cmd.Parameters.Add(new SqlParameter("@CodReduz2", SqlDbType.Int)).Value = Codigo;
                cmd.Parameters.Add(new SqlParameter("@AnoExercicio1", SqlDbType.Int)).Value = Ano1;
                cmd.Parameters.Add(new SqlParameter("@AnoExercicio2", SqlDbType.Int)).Value = Ano2;
                cmd.Parameters.Add(new SqlParameter("@CodLancamento1", SqlDbType.Int)).Value = Lanc1;
                cmd.Parameters.Add(new SqlParameter("@CodLancamento2", SqlDbType.Int)).Value = Lanc2;
                cmd.Parameters.Add(new SqlParameter("@SeqLancamento1", SqlDbType.Int)).Value = Seq1;
                cmd.Parameters.Add(new SqlParameter("@SeqLancamento2", SqlDbType.Int)).Value = Seq2;
                cmd.Parameters.Add(new SqlParameter("@NumParcela1", SqlDbType.Int)).Value = Parc1;
                cmd.Parameters.Add(new SqlParameter("@NumParcela2", SqlDbType.Int)).Value = Parc2;
                cmd.Parameters.Add(new SqlParameter("@CodComplemento1", SqlDbType.Int)).Value = Compl1;
                cmd.Parameters.Add(new SqlParameter("@CodComplemento2", SqlDbType.Int)).Value = Compl2;
                cmd.Parameters.Add(new SqlParameter("@StatusLanc1", SqlDbType.Int)).Value = nStatus1;
                cmd.Parameters.Add(new SqlParameter("@StatusLanc2", SqlDbType.Int)).Value = nStatus2;
                cmd.Parameters.Add(new SqlParameter("@DataNow", SqlDbType.DateTime)).Value = dDataNow;

                using (var da = new SqlDataAdapter(cmd)) {
                    cmd.CommandType = CommandType.StoredProcedure;
                    da.Fill(Ds);
                }
                con.Open();
                //SqlCommand command = new SqlCommand("Select count(*) from protesto where codigo="+Codigo, con);
                SqlCommand command = new SqlCommand("Select count(*) from debitoparcela where codreduzido=" + Codigo + " and statuslanc=38", con);
                int result =(Int32) command.ExecuteScalar();
                clsGlobal.bCodigoProtesto = result <= 0 ? false : true;
                command.Dispose();
            }
            List<DebitoStructure> Lista = new List<DebitoStructure>();
            List<DebitoStructure> Lista2 = new List<DebitoStructure>();
            List<TributoStructure> ListaTributo=new List<TributoStructure>();
            int nPos = 0;
            foreach (DataRow reg in Ds.Tables[0].Rows) {

                if (Convert.ToInt16(reg["statuslanc"]) != 3 && Convert.ToInt16(reg["statuslanc"]) != 19 && Convert.ToInt16(reg["statuslanc"]) != 38 && Convert.ToInt16(reg["statuslanc"]) != 39)
                    goto Proximo;
                bool bFind = false;
                
                foreach (var item2 in Lista) {
                    if (Convert.ToInt32(reg["anoexercicio"]) == item2.Ano_Exercicio && Convert.ToInt32(reg["codlancamento"]) == item2.Codigo_Lancamento && Convert.ToInt32(reg["seqlancamento"]) == item2.Sequencia_Lancamento &&
                        Convert.ToInt16(reg["numparcela"]) == item2.Numero_Parcela && Convert.ToInt16(reg["codcomplemento"]) == item2.Complemento) {
                        bFind = true;
                        break;
                    }
                }
                
                if (!bFind) {
                    DebitoStructure item = new DebitoStructure();
                    item.Usuario = reg["usuario"].ToString();
                    item.Numero_Documento = reg["numdocumento"].ToString() == "" ? 0 : Convert.ToDouble(reg["numdocumento"]);
                    item.Codigo_Reduzido = Convert.ToInt32(reg["codreduzido"]);
                    item.Ano_Exercicio = Convert.ToInt32(reg["anoexercicio"]);
                    item.Codigo_Lancamento = Convert.ToInt32(reg["codlancamento"]);
                    item.Sequencia_Lancamento = Convert.ToInt32(reg["seqlancamento"]);
                    item.Numero_Parcela = Convert.ToInt16(reg["numparcela"]);
                    item.Complemento = Convert.ToInt16(reg["codcomplemento"]);
                    item.Codigo_Situacao = Convert.ToInt16(reg["statuslanc"]);
                    item.Usuario = "GTI/Web";
                    item.Descricao_Lancamento = reg["desclancamento"].ToString();
                    item.Data_Vencimento = Convert.ToDateTime(reg["datavencimento"]);
                    item.Soma_Principal =Convert.ToDecimal(reg["valortributo"]);
                    item.Soma_Juros = Convert.ToDecimal(reg["valorjuros"]);
                    item.Soma_Multa = Convert.ToDecimal(reg["valormulta"]);
                    item.Soma_Correcao = Convert.ToDecimal(reg["valorcorrecao"]);
                    item.Soma_Total = Convert.ToDecimal(reg["valortotal"]);
                    item.Data_Ajuizamento = (reg["dataajuiza"] is DBNull) ? DateTime.MinValue : Convert.ToDateTime(reg["dataajuiza"]);

               //     if (item.Sequencia_Lancamento == 5 && item.Numero_Parcela == 18)
                   //     bRefis = true;
                    
                    if (bRefis) {
                        if (Convert.ToDateTime(reg["datavencimento"]) <= Convert.ToDateTime("31/12/2016")) {
                            Int16 CodLanc = Convert.ToInt16(reg["codlancamento"]);
                            if (CodLanc != 48 || CodLanc != 69 || CodLanc != 78) {
                               
                                if (dDataNow <= Convert.ToDateTime("29/09/2017")) {
                                    nPerc = 1M;
                                    clsGlobal.nPlano = 16;
                                } else if (dDataNow > Convert.ToDateTime("29/09/2017") && dDataNow <= Convert.ToDateTime("31/10/2017")) {
                                    nPerc = 0.8M;
                                    clsGlobal.nPlano = 17;
                                } else if (dDataNow > Convert.ToDateTime("31/10/2017") && dDataNow <= Convert.ToDateTime("30/11/2017")) {
                                    nPerc = 0.6M;
                                    clsGlobal.nPlano = 18;
                                } else if (dDataNow > Convert.ToDateTime("30/11/2017") && dDataNow <= Convert.ToDateTime("22/12/2017")) {
                                    nPerc = 0.5M;
                                    clsGlobal.nPlano = 19;
                                }
                                item.Soma_Juros = Convert.ToDecimal(reg["valorjuros"]) - (Convert.ToDecimal(reg["valorjuros"]) * nPerc);
                                item.Soma_Multa = Convert.ToDecimal(reg["valormulta"]) - (Convert.ToDecimal(reg["valormulta"]) * nPerc);
                                item.Soma_Total = item.Soma_Principal + item.Soma_Juros + item.Soma_Multa + item.Soma_Correcao;
                            }
                        }
                    }

                    if (bRefisDI) {
                        if (Convert.ToDateTime(reg["datavencimento"]) < Convert.ToDateTime("27/07/2017")) {
                            Int16 CodLanc = Convert.ToInt16(reg["codlancamento"]);
                            if (CodLanc == 81) {
                                item.Soma_Juros = 0;
                                item.Soma_Multa = 0;
                                item.Soma_Total = item.Soma_Principal + item.Soma_Juros + item.Soma_Multa + item.Soma_Correcao;
                                clsGlobal.nPlano = 23;
                            }
                        }
                    }

                    ListaTributo = new List<TributoStructure>();
                    TributoStructure RegTrib = new TributoStructure();
                    RegTrib.Codigo = Convert.ToInt32(reg["codtributo"]);
                    RegTrib.Descricao = reg["abrevtributo"].ToString();
                    RegTrib.Valor_Principal = Convert.ToDecimal(reg["valortributo"]);
                    RegTrib.Valor_Juros = item.Soma_Juros;
                    RegTrib.Valor_Multa = item.Soma_Multa;
                    RegTrib.Valor_Correcao = Convert.ToDecimal(reg["valorcorrecao"]);
                    RegTrib.Valor_Total = item.Soma_Total;
                    ListaTributo.Add(RegTrib);
                    item.Tributos = ListaTributo;
                    nValorPrincipal = 0;nValorMulta = 0;nValorJuros = 0;nValorCorrecao = 0;nValorTotal = 0;
                    foreach (TributoStructure a in ListaTributo) {
                        nValorPrincipal += a.Valor_Principal;
                        nValorJuros += a.Valor_Juros;
                        nValorMulta += a.Valor_Multa;
                        nValorCorrecao += a.Valor_Correcao;
                        nValorTotal += a.Valor_Total;
                    }
                    item.Soma_Principal = nValorPrincipal;
                    item.Soma_Juros = nValorJuros;
                    item.Soma_Multa = nValorMulta;
                    item.Soma_Correcao = nValorCorrecao;
                    item.Soma_Total = nValorTotal;

                    Lista.Add(item);
                    nPos += 1;
                } else {
                    TributoStructure RegTrib = new TributoStructure();
                    RegTrib.Codigo = Convert.ToInt32(reg["codtributo"]);
                    RegTrib.Descricao = reg["abrevtributo"].ToString();
                    RegTrib.Valor_Principal = Convert.ToDecimal(reg["valortributo"]);
//                    RegTrib.Valor_Juros = Convert.ToDecimal(reg["valorjuros"]);
  //                  RegTrib.Valor_Multa = Convert.ToDecimal(reg["valormulta"]);
                    RegTrib.Valor_Correcao = Convert.ToDecimal(reg["valorcorrecao"]);
                    //                RegTrib.Valor_Total = Convert.ToDecimal(reg["valortotal"]);


                    if (Convert.ToDateTime(reg["datavencimento"]) <= Convert.ToDateTime("31/12/2016")) {
                        if (Convert.ToInt32(reg["codlancamento"]) != 48 || Convert.ToInt32(reg["codlancamento"]) != 69 || Convert.ToInt32(reg["codlancamento"]) != 78) {
                            RegTrib.Valor_Juros = RegTrib.Valor_Juros + (Convert.ToDecimal(reg["valorjuros"]) - ((Convert.ToDecimal(reg["valorjuros"])) * nPerc));
                            RegTrib.Valor_Multa = RegTrib.Valor_Multa + (Convert.ToDecimal(reg["valormulta"]) - ((Convert.ToDecimal(reg["valormulta"])) * nPerc));
                            RegTrib.Valor_Total = RegTrib.Valor_Principal + RegTrib.Valor_Juros + RegTrib.Valor_Multa + RegTrib.Valor_Correcao;
                        } else {
                            RegTrib.Valor_Juros = Convert.ToDecimal(reg["valorjuros"]);
                            RegTrib.Valor_Multa = Convert.ToDecimal(reg["valormulta"]);
                            RegTrib.Valor_Total = Convert.ToDecimal(reg["valortotal"]);
                        }
                    }else {
                        RegTrib.Valor_Juros = Convert.ToDecimal(reg["valorjuros"]);
                        RegTrib.Valor_Multa = Convert.ToDecimal(reg["valormulta"]);
                        RegTrib.Valor_Total = Convert.ToDecimal(reg["valortotal"]);
                    }

                    ListaTributo.Add(RegTrib);
                    nValorPrincipal = 0; nValorMulta = 0; nValorJuros = 0; nValorCorrecao = 0; nValorTotal = 0;
                    foreach (TributoStructure a in ListaTributo) {

                        nValorPrincipal += a.Valor_Principal;
                        nValorJuros += a.Valor_Juros;
                        nValorMulta += a.Valor_Multa;
                        nValorCorrecao += a.Valor_Correcao;
                        nValorTotal += a.Valor_Total;
                    }
                    Lista[nPos - 1].Soma_Principal = nValorPrincipal;
                    Lista[nPos - 1].Soma_Juros = nValorJuros;
                    Lista[nPos - 1].Soma_Multa = nValorMulta;
                    Lista[nPos - 1].Soma_Correcao = nValorCorrecao;
                    Lista[nPos - 1].Soma_Total = nValorTotal;
                    Lista[nPos-1].Tributos = ListaTributo;
                }
            Proximo:;
            }

            return Lista;

        }