Exemple #1
0
        public PedidoObtenerNotaPedidoDto ObtenerNotaPedidoPorId(long id)
        {
            PedidoObtenerNotaPedidoDto pedidoCabecera = _adPedido.ObtenerNotaPedido(id);

            if (pedidoCabecera != null)
            {
                LnPedidoDetalle lnPedidoDetalle = new LnPedidoDetalle();
                var             listaDetalles   = lnPedidoDetalle.ObtenerPorIdPedido(id);

                List <PedidoAtributoDetalleDto> listaDet = new List <PedidoAtributoDetalleDto>();
                if (listaDetalles != null)
                {
                    if (listaDetalles.Any())
                    {
                        listaDet = (from tab in listaDetalles
                                    select new PedidoAtributoDetalleDto
                        {
                            IdPedidoDetalle = tab.IdPedidoDetalle,
                            Cantidad = tab.Cantidad,
                            DescripcionProducto = tab.DescripcionProducto,
                            PrecioUnitario = tab.PrecioUnitario,
                            UrlImagenProducto = tab.UrlImagenProducto
                        }).ToList();

                        pedidoCabecera.ListaDetalle = listaDet;
                    }
                }

                return(pedidoCabecera);
            }

            return(null);
        }
Exemple #2
0
        public int Registrar(RequestPedidoRegistrarDto modelo, ref long idNuevo)
        {
            int respuesta = 0;

            try
            {
                using (var scope = new TransactionScope())
                {
                    respuesta = _adPedido.Registrar(modelo, ref idNuevo);
                    LnPedidoDetalle lnPedidoDetalle = new LnPedidoDetalle();
                    if (modelo.ListaPedidoDetalle == null)
                    {
                        modelo.ListaPedidoDetalle = new List <RequestPedidoRegistrarPedidoDetalleRegistrarDto>();
                    }

                    if (respuesta > 0 && idNuevo > 0)
                    {
                        if (modelo.ListaPedidoDetalle.Any())
                        {
                            int cantidadOkEsperadas = modelo.ListaPedidoDetalle.Count;
                            int cantidadDetallesOk  = 0;
                            foreach (var det in modelo.ListaPedidoDetalle)
                            {
                                var entUbi = new RequestPedidoDetalleRegistrarDto
                                {
                                    IdPedido       = idNuevo,
                                    Cantidad       = det.Cantidad,
                                    IdProducto     = det.IdProducto,
                                    PrecioUnitario = det.PrecioUnitario
                                };

                                long idNuevoDetalle   = 0;
                                int  resultadoDetalle = lnPedidoDetalle.Registrar(entUbi, ref idNuevoDetalle);
                                if (resultadoDetalle > 0 && idNuevoDetalle > 0)
                                {
                                    cantidadDetallesOk++;
                                }
                            }
                            if (cantidadOkEsperadas == cantidadDetallesOk)
                            {
                                scope.Complete();
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Log(Level.Error, ex.InnerException == null ? ex.Message : ex.InnerException.Message);
            }
            return(respuesta);
        }
Exemple #3
0
        public PedidoAtributoDto ObtenerPorIdConDetalles(long id)
        {
            PedidoAtributoDto pedido = null;
            var pedidoCabecera       = _adPedido.ObtenerPorId(id);

            if (pedidoCabecera != null)
            {
                LnPedidoDetalle lnPedidoDetalle = new LnPedidoDetalle();
                var             listaDetalles   = lnPedidoDetalle.ObtenerPorIdPedido(id);

                List <PedidoAtributoDetalleDto> listaDet = new List <PedidoAtributoDetalleDto>();
                if (listaDetalles != null)
                {
                    if (listaDetalles.Any())
                    {
                        listaDet = (from tab in listaDetalles
                                    select new PedidoAtributoDetalleDto
                        {
                            IdPedidoDetalle = tab.IdPedidoDetalle,
                            Cantidad = tab.Cantidad,
                            DescripcionProducto = tab.DescripcionProducto,
                            PrecioUnitario = tab.PrecioUnitario,
                            UrlImagenProducto = tab.UrlImagenProducto
                        }).ToList();
                    }
                }

                pedido = new PedidoAtributoDto
                {
                    IdPedido           = pedidoCabecera.IdPedido,
                    Direccion          = pedidoCabecera.Direccion,
                    IdEstado           = pedidoCabecera.IdEstado,
                    IdMoneda           = pedidoCabecera.IdMoneda,
                    IdNegocioComprador = pedidoCabecera.IdNegocioComprador,
                    IdNegocioVendedor  = pedidoCabecera.IdNegocioVendedor,
                    Total         = pedidoCabecera.Total,
                    NumeroCelular = pedidoCabecera.NumeroCelular,
                    Observaciones = pedidoCabecera.Observaciones,
                    ListaDetalle  = listaDet
                };

                return(pedido);
            }

            return(null);
        }
Exemple #4
0
        public int Modificar(RequestPedidoModificarDto modelo)
        {
            //return _adPedido.Modificar(modelo);
            int respuesta = 0;

            try
            {
                using (var scope = new TransactionScope())
                {
                    respuesta = _adPedido.Modificar(modelo);
                    LnPedidoDetalle lnPedidoDetalle = new LnPedidoDetalle();
                    if (modelo.ListaPedidoDetalle == null)
                    {
                        modelo.ListaPedidoDetalle = new List <RequestPedidoModificarPedidoDetalleModificarDto>();
                    }
                    modelo.ListaPedidoDetalle = modelo.ListaPedidoDetalle
                                                .Where(x => x.Accion == "add" || x.Accion == "upd" || x.Accion == "del").ToList();

                    if (respuesta > 0)
                    {
                        if (modelo.ListaPedidoDetalle.Any())
                        {
                            int cantidadOkEsperadas = modelo.ListaPedidoDetalle.Count;
                            int cantidadDetallesOk  = 0;
                            foreach (var det in modelo.ListaPedidoDetalle)
                            {
                                switch (det.Accion)
                                {
                                case "add":
                                {
                                    var entUbi = new RequestPedidoDetalleRegistrarDto
                                    {
                                        IdPedido       = modelo.IdPedido,
                                        Cantidad       = det.Cantidad,
                                        IdProducto     = det.IdProducto,
                                        PrecioUnitario = det.PrecioUnitario
                                    };

                                    long idNuevoDetalle   = 0;
                                    int  resultadoDetalle = lnPedidoDetalle.Registrar(entUbi, ref idNuevoDetalle);
                                    if (resultadoDetalle > 0 && idNuevoDetalle > 0)
                                    {
                                        cantidadDetallesOk++;
                                    }
                                    break;
                                }

                                case "upd":
                                {
                                    var entUbi = new RequestPedidoDetalleModificarDto
                                    {
                                        IdPedidoDetalle = det.IdPedidoDetalle,
                                        IdPedido        = modelo.IdPedido,
                                        Cantidad        = det.Cantidad,
                                        IdProducto      = det.IdProducto,
                                        PrecioUnitario  = det.PrecioUnitario
                                    };

                                    int resultadoDetalle = lnPedidoDetalle.Modificar(entUbi);
                                    if (resultadoDetalle > 0)
                                    {
                                        cantidadDetallesOk++;
                                    }
                                    break;
                                }

                                case "del":
                                {
                                    int resultadoDetalle = lnPedidoDetalle.Eliminar(det.IdPedidoDetalle);
                                    if (resultadoDetalle > 0)
                                    {
                                        cantidadDetallesOk++;
                                    }
                                    break;
                                }
                                }
                            }

                            if (cantidadOkEsperadas == cantidadDetallesOk)
                            {
                                scope.Complete();
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Log(Level.Error, ex.InnerException == null ? ex.Message : ex.InnerException.Message);
            }
            return(respuesta);
        }