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); }
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)); }
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); }
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); }