Example #1
0
        public void gravar(Pedido objeto)
        {
            try
            {
                BancoDeDados.BeginTransaction();

                if (string.IsNullOrWhiteSpace(objeto.Id))
                {
                    objeto.Id = BancoDeDados.GetIdPedido();
                }

                decimal total = 0;
                foreach (ProdutoPedido item in objeto.Produtos)
                {
                    item.IdPedido = objeto.Id;
                    total        += item.Quantidade * item.Valor;
                }
                objeto.Valor = total;

                foreach (Receber item in objeto.Receber)
                {
                    item.IdPedido = objeto.Id;
                }

                string values = "("
                                + "$$" + objeto.Id + "$$,"
                                + "$$" + objeto.IdVendedor + "$$,"
                                + "$$" + objeto.IdCliente + "$$,"
                                + "$$" + objeto.Valor + "$$,"
                                + "$$" + objeto.DataEmissao.ToString("dd/MM/yyyy") + "$$,"
                                + "$$" + objeto.DataPagamento.ToString("dd/MM/yyyy") + "$$,"
                                + "$$" + objeto.Observacoes + "$$)";

                string sql = "insert into Pedido "
                             + "(Id, Id_vendedor, Id_cliente, Valor, Data_emissao, Data_pagamento, Observacoes) "
                             + "values " + values;
                Log log = new Log();
                log.Sql = sql;
                BancoDeDados.Insert(objeto, log);


                ControleProdutoPedido cpp = new ControleProdutoPedido();
                cpp.gravarLista(objeto.Produtos);

                ControleReceber cr = new ControleReceber();
                cr.gravarLista(objeto.Receber);

                BancoDeDados.CommitTransaction();
            }
            catch (Exception)
            {
                BancoDeDados.RollbackTransaction();
                throw new Exception("Erro ao gravar pedido");
            }
        }