public List <ProdutoDocumento> ListarProdutosDaOrdemDeProducao(decimal CodigoDocumento) { try { AbrirConexao(); Cmd = new SqlCommand(" select P.*,it.*,TP.DS_TIPO AS DS_SITUACAO " + "from PRODUTO_DO_DOCUMENTO as p " + "INNER JOIN HABIL_TIPO AS TP " + "ON TP.CD_TIPO = p.CD_SITUACAO " + "inner join ITEM_DA_COMPOSICAO as it " + "on it.CD_COMPONENTE = p.CD_PRODUTO " + "Where CD_DOCUMENTO = @v1 ", Con); Cmd.Parameters.AddWithValue("@v1", CodigoDocumento); Dr = Cmd.ExecuteReader(); List <ProdutoDocumento> lista = new List <ProdutoDocumento>(); while (Dr.Read()) { ProdutoDocumento p = new ProdutoDocumento(); p.Cpl_CodigoRoteiro = Convert.ToInt16(Dr["CD_ROTEIRO"]); p.Cpl_DescRoteiro = Convert.ToString(Dr["DS_ROTEIRO"]); p.CodigoProduto = Convert.ToInt32(Dr["CD_PRODUTO"]); p.Cpl_DscProduto = Dr["DS_PRODUTO"].ToString(); p.Unidade = Dr["DS_unidade"].ToString(); p.PerQuebraComponente = Convert.ToDecimal(Dr["vl_pct_quebra"]); p.Quantidade = Convert.ToDecimal(Dr["QT_SOLICITADA"]); p.QuantidadeAtendida = Convert.ToDecimal(Dr["QT_ATENDIDA"]); p.PrecoItem = Convert.ToDecimal(Dr["vl_item"]); p.ValorTotalItem = Convert.ToDecimal(Dr["vl_total"]); if (Dr["DT_INICIO_ROTEIRO"] != DBNull.Value) { p.DataInicio = Convert.ToDateTime(Dr["DT_INICIO_ROTEIRO"]); } if (Dr["DT_FIM_ROTEIRO"] != DBNull.Value) { p.DataFim = Convert.ToDateTime(Dr["DT_FIM_ROTEIRO"]); } p.LocalizacoaProducao = Convert.ToInt32(Dr["CD_LOC_PRODUCAO"]); p.QuantidadeAtendida = Convert.ToDecimal(Dr["QT_ATENDIDA"]); p.QuantidadePendente = Convert.ToDecimal(Dr["QT_PENDENTE"]); if (Dr["CD_PROD_DOCUMENTO"] != DBNull.Value) { p.CodigoItem = Convert.ToInt32(Dr["CD_PROD_DOCUMENTO"]); } lista.Add(p); } return(lista); } catch (Exception ex) { throw new Exception("Erro ao Obter produtos da Ordem de Produção: " + ex.Message.ToString()); } finally { FecharConexao(); } }
public List <ProdutoDocumento> ObterItemOrcamentoPedido(decimal CodigoDocumento) { try { AbrirConexao(); Cmd = new SqlCommand("select PROD.*,TP.DS_TIPO AS DS_SITUACAO " + "from PRODUTO_DO_DOCUMENTO as PROD " + "INNER JOIN HABIL_TIPO AS TP ON TP.CD_TIPO = PROD.CD_SITUACAO " + "Where CD_DOCUMENTO= @v1 ", Con); Cmd.Parameters.AddWithValue("@v1", CodigoDocumento); Dr = Cmd.ExecuteReader(); List <ProdutoDocumento> lista = new List <ProdutoDocumento>(); while (Dr.Read()) { ProdutoDocumento p = new ProdutoDocumento(); p.CodigoItem = Convert.ToInt32(Dr["CD_PROD_DOCUMENTO"]); p.CodigoDocumento = Convert.ToInt32(Dr["CD_DOCUMENTO"]); p.CodigoProduto = Convert.ToInt32(Dr["CD_PRODUTO"]); p.Quantidade = Convert.ToDecimal(Dr["QT_SOLICITADA"]); p.PrecoItem = Convert.ToDecimal(Dr["VL_ITEM"]); p.Unidade = Dr["DS_UNIDADE"].ToString(); p.ValorDesconto = Convert.ToDecimal(Dr["VL_DESCONTO"]); p.ValorTotalItem = Convert.ToDecimal(Dr["VL_TOTAL"]); p.QuantidadeAtendida = Convert.ToDecimal(Dr["QT_ATENDIDA"]); p.Cpl_DscProduto = Dr["DS_PRODUTO"].ToString(); p.Cpl_DscSituacao = Dr["DS_SITUACAO"].ToString(); p.CodigoSituacao = Convert.ToInt32(Dr["CD_SITUACAO"]); p.QuantidadePendente = Convert.ToDecimal(Dr["QT_PENDENTE"]); p.ValorVolume = Convert.ToDecimal(Dr["VL_VOLUME"]); p.ValorPeso = Convert.ToDecimal(Dr["VL_PESO"]); p.ValorFatorCubagem = Convert.ToDecimal(Dr["VL_FATOR_CUBAGEM"]); if (Dr["CD_PROD_DOCUMENTO"] != DBNull.Value) { p.CodigoItem = Convert.ToInt32(Dr["CD_PROD_DOCUMENTO"]); } ImpostoProdutoDocumentoDAL impDAL = new ImpostoProdutoDocumentoDAL(); p.Impostos = impDAL.PesquisarImpostoProdutoDocumento(p.CodigoDocumento, p.CodigoItem); lista.Add(p); } return(lista); } catch (Exception ex) { throw new Exception("Erro ao Obter produtos do documento: " + ex.Message.ToString()); } finally { FecharConexao(); } }
public List <ProdutoDocumento> ObterItemCotPreco(decimal CodigoDocumento) { try { AbrirConexao(); Cmd = new SqlCommand("select PROD.*,TP.DS_TIPO AS DS_SITUACAO, M.DS_MARCA " + "from PRODUTO_DO_DOCUMENTO as PROD" + " INNER JOIN PRODUTO AS P ON P.CD_PRODUTO = PROD.CD_PRODUTO " + " INNER JOIN MARCA AS M ON P.CD_MARCA = M.CD_MARCA " + "INNER JOIN HABIL_TIPO AS TP ON TP.CD_TIPO = PROD.CD_SITUACAO " + "Where CD_DOCUMENTO= @v1 ", Con); Cmd.Parameters.AddWithValue("@v1", CodigoDocumento); Dr = Cmd.ExecuteReader(); List <ProdutoDocumento> lista = new List <ProdutoDocumento>(); while (Dr.Read()) { ProdutoDocumento p = new ProdutoDocumento(); p.CodigoDocumento = Convert.ToInt32(Dr["CD_DOCUMENTO"]); p.CodigoItem = Convert.ToInt32(Dr["CD_PROD_DOCUMENTO"]); p.Cpl_DscProduto = Dr["DS_PRODUTO"].ToString(); p.CodigoProduto = Convert.ToInt32(Dr["CD_PRODUTO"]); p.Quantidade = Convert.ToDecimal(Dr["QT_SOLICITADA"]); p.Unidade = Dr["DS_UNIDADE"].ToString(); p.CodigoSituacao = Convert.ToInt32(Dr["CD_SITUACAO"]); p.DsMarca = Dr["DS_MARCA"].ToString(); p.Cpl_DescRoteiro = Dr["OB_PROD_DOCUMENTO"].ToString(); lista.Add(p); } return(lista); } catch (Exception ex) { throw new Exception("Erro ao Obter produtos do documento: " + 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()); } }