예제 #1
0
        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();
            }
        }
예제 #2
0
        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();
            }
        }