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(); } }
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(); } }
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(); } }
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(); } }
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(); } }
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(); } }
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()); } }