Exemple #1
0
        public int Modificar(RequestPedidoModificarDto modelo)
        {
            int resultado = 0;

            try
            {
                const string query = "Transaccion.usp_Pedido_Modificar";
                var          p     = new DynamicParameters();
                p.Add("IdPedido", modelo.IdPedido);
                p.Add("IdNegocioVendedor", modelo.IdNegocioVendedor);
                p.Add("IdNegocioComprador", modelo.IdNegocioComprador);
                p.Add("Direccion", modelo.Direccion);
                p.Add("IdMoneda", modelo.IdMoneda);
                p.Add("IdUsuarioRegistro", modelo.IdUsuarioRegistro);
                p.Add("NumeroCelular", modelo.NumeroCelular);
                p.Add("Observaciones", modelo.Observaciones);

                using (var cn = HelperClass.ObtenerConeccion())
                {
                    if (cn.State == ConnectionState.Closed)
                    {
                        cn.Open();
                    }

                    resultado = cn.Execute(query, commandType: CommandType.StoredProcedure, param: p);
                }
            }
            catch (Exception ex)
            {
                Log(Level.Error, (ex.InnerException == null ? ex.Message : ex.InnerException.Message));
            }
            return(resultado);
        }
Exemple #2
0
        public async Task <ActionResult <ResponsePedidoModificarDto> > Modificar([FromBody] RequestPedidoModificarDto modelo)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }
            ResponsePedidoModificarDto respuesta = new ResponsePedidoModificarDto();

            bool validacionItems = false;
            var  listaValidada   = CustomValidation.ValidacionProductoDetalle.ValidarListaModificar(modelo, ref validacionItems);

            if (!validacionItems)
            {
                respuesta.ListaError.AddRange(listaValidada);
                return(BadRequest(respuesta));
            }

            var entidad = await Task.FromResult(_lnPedido.ObtenerPorId(modelo.IdPedido));

            if (entidad == null)
            {
                respuesta.ListaError.Add(new ErrorDto {
                    Mensaje = "Objeto no encontrado con el ID proporcionado"
                });
                return(NotFound(respuesta));
            }

            var result = await Task.FromResult(_lnPedido.Modificar(modelo));

            if (result == 0)
            {
                respuesta.ListaError.Add(new ErrorDto {
                    Mensaje = "Error al intentar modificar"
                });
                return(BadRequest(respuesta));
            }

            respuesta.ProcesadoOk = 1;
            return(Ok(respuesta));
        }
Exemple #3
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);
        }
Exemple #4
0
        public static List <ErrorDto> ValidarListaModificar(RequestPedidoModificarDto objetoModificar, ref bool ok)
        {
            List <ErrorDto> lista = new List <ErrorDto>();

            try
            {
                foreach (var det in objetoModificar.ListaPedidoDetalle)
                {
                    if (det.Accion == "add")
                    {
                        if (det.IdPedidoDetalle != 0)
                        {
                            lista.Add(new ErrorDto
                            {
                                Mensaje = "Accion 'add': el parametro IdPedidoDetalle debe ser cero cuando se registra uno nuevo"
                            });
                        }
                    }
                    else if (det.Accion == "upd")
                    {
                        if (det.IdPedidoDetalle == 0)
                        {
                            lista.Add(new ErrorDto
                            {
                                Mensaje = "Accion 'upd': el parametro IdPedidoDetalle debe ser mayor a cero cuando se actualiza un registro"
                            });
                        }
                    }
                    else if (det.Accion == "del")
                    {
                        if (det.IdPedidoDetalle == 0)
                        {
                            lista.Add(new ErrorDto
                            {
                                Mensaje = "Accion 'del': el parametro IdPedidoDetalle debe ser mayor a cero cuando se elimina un registro"
                            });
                        }
                    }
                    else if (det.Accion == "read")
                    {
                    }
                    else if (string.IsNullOrEmpty(det.Accion))
                    {
                        lista.Add(new ErrorDto
                        {
                            Mensaje = "Accion '<vacio>': el parametro Accion es requerido"
                        });
                    }
                    else
                    {
                        lista.Add(new ErrorDto
                        {
                            Mensaje = string.Format("Accion '{0}': el parametro Accion no es válido", det.Accion)
                        });
                    }
                }
            }
            catch (Exception ex)
            {
                lista.Add(new ErrorDto
                {
                    Mensaje = (ex.InnerException == null ? ex.Message : ex.InnerException.Message).Replace(Environment.NewLine, " ")
                });
                ok = false;
            }

            if (lista.Any())
            {
                ok = false;
            }
            else
            {
                ok = true;
            }

            return(lista);
        }