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 void Inserir(decimal CodigoDocumento, List <ProdutoDocumento> listaItemOrcamento) { try { ExcluirTodos(CodigoDocumento); AbrirConexao(); foreach (ProdutoDocumento p in listaItemOrcamento) { strSQL = "insert into PRODUTO_DO_DOCUMENTO(CD_DOCUMENTO," + "CD_PROD_DOCUMENTO," + "DS_UNIDADE, " + "QT_SOLICITADA, " + "VL_ITEM," + "CD_PRODUTO," + "DS_PRODUTO," + "VL_TOTAL," + "VL_DESCONTO," + "QT_ATENDIDA," + "QT_PENDENTE, " + "CD_SITUACAO," + "VL_VOLUME," + "VL_PESO," + "VL_FATOR_CUBAGEM) values (@v1,@v2,@v3,@v4,@v5,@v6,@v7,@v8,@v9,@v10,@v11,@v12,@v13,@v14,@v15)"; Cmd = new SqlCommand(strSQL, Con); Cmd.Parameters.AddWithValue("@v1", CodigoDocumento); Cmd.Parameters.AddWithValue("@v2", p.CodigoItem); Cmd.Parameters.AddWithValue("@v3", p.Unidade); Cmd.Parameters.AddWithValue("@v4", p.Quantidade); Cmd.Parameters.AddWithValue("@v5", p.PrecoItem); Cmd.Parameters.AddWithValue("@v6", p.CodigoProduto); Cmd.Parameters.AddWithValue("@v7", p.Cpl_DscProduto); Cmd.Parameters.AddWithValue("@v8", p.ValorTotalItem); Cmd.Parameters.AddWithValue("@v9", p.ValorDesconto); Cmd.Parameters.AddWithValue("@v10", p.QuantidadeAtendida); Cmd.Parameters.AddWithValue("@v11", p.Quantidade - p.QuantidadeAtendida); Cmd.Parameters.AddWithValue("@v12", p.CodigoSituacao); Cmd.Parameters.AddWithValue("@v13", p.ValorVolume); Cmd.Parameters.AddWithValue("@v14", p.ValorPeso); Cmd.Parameters.AddWithValue("@v15", p.ValorFatorCubagem); Cmd.ExecuteNonQuery(); if (p.Impostos != null) { p.Impostos.CodigoDocumento = CodigoDocumento; ImpostoProdutoDocumentoDAL impDAL = new ImpostoProdutoDocumentoDAL(); impDAL.Inserir(p.Impostos); } } } 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 produtos do documento: " + ex.Message.ToString()); } } } catch (Exception ex) { throw new Exception("Erro ao gravar produtos do documento: " + ex.Message.ToString()); } finally { FecharConexao(); } }