Exemplo n.º 1
0
        /// <summary>
        /// Crea un pedido y su detalle
        /// </summary>
        /// <param name="pedido"></param>
        /// <param name="tipoFolio"></param>
        /// <returns></returns>
        internal PedidoInfo Crear(PedidoInfo pedido, TipoFolio tipoFolio)
        {
            PedidoInfo pedidoGuardado = new PedidoInfo();

            try
            {
                Logger.Info();

                var pedidosDal = new PedidosDAL();
                using (var transaccion = new TransactionScope())
                {
                    pedidoGuardado = pedidosDal.Crear(pedido, tipoFolio);
                    if (pedidoGuardado != null)
                    {
                        var pedidosDetalleBl = new PedidoDetalleBL();
                        foreach (PedidoDetalleInfo pedidoDetalle in pedido.DetallePedido)
                        {
                            pedidoDetalle.UsuarioCreacion = pedido.UsuarioCreacion;
                            pedidoDetalle.PedidoId        = pedidoGuardado.PedidoID;
                            pedidoDetalle.Observaciones   = pedido.Observaciones;
                        }
                        pedidosDetalleBl.Crear(pedido.DetallePedido);
                        pedidoGuardado = ObtenerPedidoPorFolio(pedidoGuardado);
                    }
                    transaccion.Complete();
                }
                return(pedidoGuardado);
            }
            catch (ExcepcionGenerica exg)
            {
                Logger.Error(exg);
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
            }
            return(pedidoGuardado);
        }