Пример #1
0
        public RegFisIPI PesquisarIPI(DateTime DtVigencia, string strCodIPI, string strCodEx, decimal intCodRegra)
        {
            try
            {
                AbrirConexao();
                strSQL = "Select * from [REGRA_FISCAL_IPI] where [CD_NCM] = '" + strCodIPI + "' " +
                         " and [DT_VIGENCIA] = @v2 and [CD_EX] = '" + strCodEx + "' ";
                if (intCodRegra > 0)
                {
                    strSQL += "AND [CD_REGRA_FISCAL_IPI] <> " + intCodRegra;
                }

                Cmd = new SqlCommand(strSQL, Con);
                Cmd.Parameters.AddWithValue("@v2", Convert.ToDateTime(DtVigencia.ToString("dd/MM/yyyy 00:00:00")));
                Dr = Cmd.ExecuteReader();

                RegFisIPI p = new RegFisIPI();

                if (Dr.Read())
                {
                    p.CodigoRegraFiscalIPI = Convert.ToInt32(Dr["CD_REGRA_FISCAL_IPI"]);
                    p.CodigoNCM            = Convert.ToString(Dr["CD_NCM"]);
                    p.CodigoEx             = Convert.ToString(Dr["CD_EX"]);
                }
                return(p);
            }
            catch (Exception ex)
            {
                throw new Exception("Erro ao pesquisar Regra Fiscal IPI: " + ex.Message.ToString());
            }
            finally
            {
                FecharConexao();
            }
        }
Пример #2
0
        public void Atualizar(RegFisIPI p)
        {
            try
            {
                AbrirConexao();

                strSQL = "update [REGRA_FISCAL_IPI] set [DT_VIGENCIA] = @v2, [DT_ATUALIZACAO] = GetDate() , [CD_NCM] = @v4, " +
                         "[DS_NCM] = @v5, [VL_PCT_IPI] = @v6, [CD_ENQUADRAMENTO] = @v7, [CD_TIPO] = @v8, [CD_SITUACAO] = @v9, [CD_EX] = @v10, " +
                         " [CD_CST_IPI] = @v11 Where [CD_REGRA_FISCAL_IPI] = @v1";
                Cmd = new SqlCommand(strSQL, Con);
                Cmd.Parameters.AddWithValue("@v1", p.CodigoRegraFiscalIPI);
                Cmd.Parameters.AddWithValue("@v2", p.DtVigencia);
                Cmd.Parameters.AddWithValue("@v4", p.CodigoNCM);
                Cmd.Parameters.AddWithValue("@v5", p.DescricaoNCM);
                Cmd.Parameters.AddWithValue("@v6", p.PercentualIPI);
                Cmd.Parameters.AddWithValue("@v7", p.CodigoEnquadramento);
                Cmd.Parameters.AddWithValue("@v8", p.CodigoTipo);
                Cmd.Parameters.AddWithValue("@v9", p.CodigoSituacao);
                Cmd.Parameters.AddWithValue("@v10", p.CodigoEx);
                Cmd.Parameters.AddWithValue("@v11", p.CodigoSituacaoTributaria);
                Cmd.ExecuteNonQuery();
            }
            catch (Exception ex)
            {
                throw new Exception("Erro ao atualizar Regra Fiscal IPI: " + ex.Message.ToString());
            }
            finally
            {
                FecharConexao();
            }
        }
Пример #3
0
        public List <RegFisIPI> ListarRegrasIPI(List <DBTabelaCampos> ListaFiltros)
        {
            try
            {
                AbrirConexao();

                string strValor = "";
                string strSQL   = "select EM.CD_REGRA_FISCAL_IPI, EM.CD_CST_IPI ,EM.CD_NCM ,EM.DS_NCM ,EM.CD_SITUACAO ,EM.CD_TIPO " +
                                  ",EM.VL_PCT_IPI ,EM.CD_ENQUADRAMENTO ,EM.DT_ATUALIZACAO ,EM.DT_VIGENCIA, EM.CD_EX, H.DS_TIPO AS DS_TIPO_TRIBUTACAO, HT.DS_TIPO AS DS_TIPO_SITUACAO" +
                                  "  from [REGRA_FISCAL_IPI] AS Em " +
                                  "INNER JOIN HABIL_TIPO AS HT " +
                                  "ON HT.CD_TIPO = EM.CD_SITUACAO " +
                                  "INNER JOIN HABIL_TIPO AS H " +
                                  "ON H.CD_TIPO = EM.CD_TIPO";

                strValor = MontaFiltroIntervalo(ListaFiltros);

                strSQL = strSQL + strValor;
                Cmd    = new SqlCommand(strSQL, Con);

                Dr = Cmd.ExecuteReader();

                List <RegFisIPI> lista = new List <RegFisIPI>();

                while (Dr.Read())
                {
                    RegFisIPI p = new RegFisIPI();

                    p.CodigoRegraFiscalIPI     = Convert.ToInt32(Dr["CD_REGRA_FISCAL_IPI"]);
                    p.CodigoNCM                = Convert.ToString(Dr["CD_NCM"]);
                    p.DescricaoNCM             = Convert.ToString(Dr["DS_NCM"]);
                    p.CodigoEx                 = Convert.ToString(Dr["CD_EX"]);
                    p.CodigoSituacao           = Convert.ToInt32(Dr["CD_SITUACAO"]);
                    p.CodigoTipo               = Convert.ToInt32(Dr["CD_TIPO"]);
                    p.PercentualIPI            = Convert.ToDecimal(Dr["VL_PCT_IPI"]);
                    p.CodigoEnquadramento      = Convert.ToInt16(Dr["CD_ENQUADRAMENTO"]);
                    p.DtAtualizacao            = Convert.ToDateTime(Dr["DT_ATUALIZACAO"]);
                    p.DtVigencia               = Convert.ToDateTime(Dr["DT_VIGENCIA"]);
                    p.DescricaoSituacao        = Convert.ToString(Dr["DS_TIPO_SITUACAO"]);
                    p.DescricaoTipo            = Convert.ToString(Dr["DS_TIPO_TRIBUTACAO"]);
                    p.CodigoSituacaoTributaria = Convert.ToInt16(Dr["CD_CST_IPI"]);
                    lista.Add(p);
                }
                return(lista);
            }
            catch (Exception ex)
            {
                throw new Exception("Erro ao Listar Embalagens: " + ex.Message.ToString());
            }
            finally
            {
                FecharConexao();
            }
        }
Пример #4
0
        public List <RegFisIPI> ListarIPIPorCodNcm(string strCodNcm, DateTime DtData)
        {
            try
            {
                AbrirConexao();

                string strSQL = "select EM.CD_REGRA_FISCAL_IPI, EM.CD_CST_IPI ,EM.CD_NCM ,EM.DS_NCM ,EM.CD_SITUACAO ,EM.CD_TIPO " +
                                ",EM.VL_PCT_IPI ,EM.CD_ENQUADRAMENTO ,EM.DT_ATUALIZACAO ,EM.DT_VIGENCIA, EM.CD_EX, H.DS_TIPO AS DS_TIPO_TRIBUTACAO, HT.DS_TIPO AS DS_TIPO_SITUACAO" +
                                "  from [REGRA_FISCAL_IPI] AS Em " +
                                "INNER JOIN HABIL_TIPO AS HT " +
                                "ON HT.CD_TIPO = EM.CD_SITUACAO " +
                                "INNER JOIN HABIL_TIPO AS H " +
                                "ON H.CD_TIPO = EM.CD_TIPO ";
                if (strCodNcm != "")
                {
                    strSQL += " where [CD_NCM] = '" + strCodNcm + "' and DT_VIGENCIA = '" + DtData.ToString("yyyy/MM/dd") + "' ";
                }

                Cmd = new SqlCommand(strSQL, Con);

                Dr = Cmd.ExecuteReader();

                List <RegFisIPI> lista = new List <RegFisIPI>();

                while (Dr.Read())
                {
                    RegFisIPI p = new RegFisIPI();

                    p.CodigoRegraFiscalIPI = Convert.ToInt32(Dr["CD_REGRA_FISCAL_IPI"]);
                    p.CodigoNCM            = Convert.ToString(Dr["CD_NCM"]);
                    p.DescricaoNCM         = Convert.ToString(Dr["DS_NCM"]);
                    p.CodigoEx             = Convert.ToString(Dr["CD_EX"]);
                    p.CodigoTipo           = Convert.ToInt32(Dr["CD_TIPO"]);
                    p.PercentualIPI        = Convert.ToDecimal(Dr["VL_PCT_IPI"]);
                    p.CodigoEnquadramento  = Convert.ToInt16(Dr["CD_ENQUADRAMENTO"]);
                    p.DtVigencia           = Convert.ToDateTime(Dr["DT_VIGENCIA"]);
                    p.DescricaoSituacao    = Convert.ToString(Dr["DS_TIPO_SITUACAO"]);
                    p.DescricaoTipo        = Convert.ToString(Dr["DS_TIPO_TRIBUTACAO"]);
                    lista.Add(p);
                }
                return(lista);
            }
            catch (Exception ex)
            {
                throw new Exception("Erro ao Listar Embalagens: " + ex.Message.ToString());
            }
            finally
            {
                FecharConexao();
            }
        }
Пример #5
0
        public void Inserir(RegFisIPI p)
        {
            try
            {
                AbrirConexao();

                strSQL = "insert into REGRA_FISCAL_IPI (DT_VIGENCIA, DT_ATUALIZACAO, CD_NCM, DS_NCM, VL_PCT_IPI, " +
                         "CD_ENQUADRAMENTO, CD_TIPO, CD_SITUACAO, CD_EX, CD_CST_IPI ) values (@v1, getDate(), @v3, @v4, @v5, @v6, @v7, @v8, @v9, @v10)";
                Cmd = new SqlCommand(strSQL, Con);
                Cmd.Parameters.AddWithValue("@v1", p.DtVigencia);
                Cmd.Parameters.AddWithValue("@v3", p.CodigoNCM);
                Cmd.Parameters.AddWithValue("@v4", p.DescricaoNCM);
                Cmd.Parameters.AddWithValue("@v5", p.PercentualIPI);
                Cmd.Parameters.AddWithValue("@v6", p.CodigoEnquadramento);
                Cmd.Parameters.AddWithValue("@v7", p.CodigoTipo);
                Cmd.Parameters.AddWithValue("@v8", p.CodigoSituacao);
                Cmd.Parameters.AddWithValue("@v9", p.CodigoEx);
                Cmd.Parameters.AddWithValue("@v10", p.CodigoSituacaoTributaria);
                Cmd.ExecuteNonQuery();
            }
            catch (SqlException ex)
            {
                if (ex.Errors.Count > 0) // Assume the interesting stuff is in the first error
                {
                    switch (ex.Errors[0].Number)
                    {
                    case 2601:     // Primary key violation
                        throw new DuplicateNameException("Inclusão não Permitida!!! Chave já consta no Banco de Dados. Mensagem :" + ex.Message.ToString(), ex);

                    case 2627:     // Primary key violation
                        throw new DuplicateNameException("Inclusão não Permitida!!! Chave já consta no Banco de Dados. Mensagem :" + ex.Message.ToString(), ex);

                    default:
                        throw new Exception("Erro ao Incluir COFINS: " + ex.Message.ToString());
                    }
                }
            }
            catch (Exception ex)
            {
                throw new Exception("Erro ao gravar Regra Fiscal IPI: " + ex.Message.ToString());
            }
            finally
            {
                FecharConexao();
            }
        }
Пример #6
0
        public RegFisIPI PesquisarIPIPorCodNcm(string strCodNcm)
        {
            try
            {
                AbrirConexao();
                strSQL = "Select * from [REGRA_FISCAL_IPI] where [CD_NCM] = '" + strCodNcm + "' ";

                Cmd = new SqlCommand(strSQL, Con);
                Dr  = Cmd.ExecuteReader();

                RegFisIPI p = new RegFisIPI();

                if (Dr.Read())
                {
                    p.CodigoRegraFiscalIPI     = Convert.ToInt32(Dr["CD_REGRA_FISCAL_IPI"]);
                    p.CodigoNCM                = Convert.ToString(Dr["CD_NCM"]);
                    p.DescricaoNCM             = Convert.ToString(Dr["DS_NCM"]);
                    p.CodigoEx                 = Convert.ToString(Dr["CD_EX"]);
                    p.CodigoSituacao           = Convert.ToInt32(Dr["CD_SITUACAO"]);
                    p.CodigoTipo               = Convert.ToInt32(Dr["CD_TIPO"]);
                    p.PercentualIPI            = Convert.ToDecimal(Dr["VL_PCT_IPI"]);
                    p.CodigoEnquadramento      = Convert.ToInt16(Dr["CD_ENQUADRAMENTO"]);
                    p.DtAtualizacao            = Convert.ToDateTime(Dr["DT_ATUALIZACAO"]);
                    p.DtVigencia               = Convert.ToDateTime(Dr["DT_VIGENCIA"]);
                    p.CodigoSituacaoTributaria = Convert.ToInt16(Dr["CD_CST_IPI"]);
                }
                return(p);
            }
            catch (Exception ex)
            {
                throw new Exception("Erro ao pesquisar Regra Fiscal IPI: " + ex.Message.ToString());
            }
            finally
            {
                FecharConexao();
            }
        }
Пример #7
0
        public static ImpostoProdutoDocumento PreencherImpostosProdutoDocumento(ProdutoDocumento p, long intCodigoEmpresa, long longCodigoPessoa, int intCodigoTipoOperacao, int intCodigoAplicacaoUso, decimal decValorFrete, bool CalcularImpostos)
        {
            try
            {
                if (intCodigoTipoOperacao == 0)
                {
                    return(null);
                }

                ImpostoProdutoDocumento imp = new ImpostoProdutoDocumento();

                PIS    pis    = new PIS();
                PISDAL pisDAL = new PISDAL();

                COFINS    cofins    = new COFINS();
                COFINSDAL cofinsDAL = new COFINSDAL();

                RegFisIPI      ipi    = new RegFisIPI();
                RegraFisIPIDAL ipiDAL = new RegraFisIPIDAL();

                RegFisIcms    regICMS    = new RegFisIcms();
                RegFisIcmsDAL regICMSDAL = new RegFisIcmsDAL();

                TipoOperacao    tpOP    = new TipoOperacao();
                TipoOperacaoDAL tpOPDAL = new TipoOperacaoDAL();
                tpOP = tpOPDAL.PesquisarTipoOperacao(intCodigoTipoOperacao);

                Produto    produto    = new Produto();
                ProdutoDAL produtoDAL = new ProdutoDAL();
                produto = produtoDAL.PesquisarProduto(p.CodigoProduto);

                int CodigoPISUtilizado    = 0;
                int CodigoCOFINSUtilizado = 0;

                switch (tpOP.CodigoPrecedenciaImpostoPIS_COFINS)
                {
                case 159:
                    Pessoa    pessoa    = new Pessoa();
                    PessoaDAL pessoaDAL = new PessoaDAL();
                    if (produto.CodigoPIS != 0 || produto.CodigoCOFINS != 0)
                    {
                        pessoa = pessoaDAL.PesquisarPessoa(longCodigoPessoa);
                    }

                    //PIS
                    if (produto.CodigoPIS == 0)    //SE NÃO EXISTIR PIS NO PRODUTO
                    {
                        if (pessoa.CodigoPIS == 0)
                        {
                            CodigoPISUtilizado = tpOP.CodigoPIS;    //SE NÃO EXISTIR PIS NO PESSOA E PRODUTO
                        }
                        else
                        {
                            CodigoPISUtilizado = pessoa.CodigoPIS;
                        }
                    }
                    else
                    {
                        CodigoPISUtilizado = produto.CodigoPIS;
                    }
                    //FIM PIS

                    //COFINS
                    if (produto.CodigoCOFINS == 0)    //SE NÃO EXISTIR COFINS NO PRODUTO
                    {
                        if (pessoa.CodigoCOFINS == 0)
                        {
                            CodigoCOFINSUtilizado = tpOP.CodigoCOFINS;    //SE NÃO EXISTIR COFINS NO PESSOA E PRODUTO
                        }
                        else
                        {
                            CodigoCOFINSUtilizado = pessoa.CodigoCOFINS;
                        }
                    }
                    else
                    {
                        CodigoCOFINSUtilizado = produto.CodigoCOFINS;
                    }
                    //FIM COFINS

                    break;

                case 160:
                    //PIS
                    //FIM PIS

                    //COFINS
                    //FIM COFINS
                    break;
                }

                if (CodigoPISUtilizado != 0)
                {
                    pis = pisDAL.PesquisarPISIndice(CodigoPISUtilizado);
                }

                if (CodigoCOFINSUtilizado != 0)
                {
                    cofins = cofinsDAL.PesquisarCOFINSIndice(CodigoCOFINSUtilizado);
                }

                regICMS = regICMSDAL.ExecutaSP_BUSCA_REGRA_ICMS(intCodigoTipoOperacao, intCodigoEmpresa, longCodigoPessoa, intCodigoAplicacaoUso);

                imp.CodigoDocumento        = p.CodigoDocumento;
                imp.CodigoProdutoDocumento = p.CodigoItem;

                if (regICMS != null)
                {
                    imp.ValorMVA_Saida       = regICMS.MVAOriginal;
                    imp.ValorMVA_Entrada     = regICMS.MVAEntrada;
                    imp.PercentualICMS       = RetornaPercentualICMS(regICMS);
                    imp.ValorBaseCalculoICMS = p.ValorTotalItem;
                }

                //testar se exite IPI
                imp.ValorBaseCalculoIPI = p.ValorTotalItem;
                imp.PercentualIPI       = 5;

                if (pis != null)
                {
                    imp.ValorBaseCalculoPIS = p.ValorTotalItem;
                    imp.PercentualPIS       = Convert.ToDecimal(pis.ValorPIS);
                }

                if (cofins != null)
                {
                    imp.ValorBaseCalculoCOFINS = p.ValorTotalItem;
                    imp.PercentualCOFINS       = Convert.ToDecimal(cofins.ValorCOFINS);
                }


                if (CalcularImpostos)
                {
                    imp.ValorICMS   = Habil_Impostos.CalcularICMS(p.ValorTotalItem, imp.PercentualICMS, regICMS);
                    imp.ValorIPI    = Habil_Impostos.CalcularIPI(p.ValorTotalItem, imp.PercentualIPI);
                    imp.ValorPIS    = Habil_Impostos.CalcularPIS(p.ValorTotalItem, imp.PercentualPIS);
                    imp.ValorCOFINS = Habil_Impostos.CalcularCOFINS(p.ValorTotalItem, imp.PercentualCOFINS);
                }

                return(imp);
            }
            catch (Exception ex)
            {
                throw new Exception("Erro ao calcular impostos: " + ex.Message.ToString());
            }
        }