public int Registrar(RequestPedidoRegistrarDto modelo, ref long idNuevo) { int resultado = 0; try { const string query = "Transaccion.usp_Pedido_Registrar"; var p = new DynamicParameters(); p.Add("IdPedido", 0, DbType.Int64, ParameterDirection.Output); 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); idNuevo = p.Get <long>("IdPedido"); } } catch (Exception ex) { Log(Level.Error, (ex.InnerException == null ? ex.Message : ex.InnerException.Message)); } return(resultado); }
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); }
public async Task <ActionResult <ResponsePedidoRegistrarDto> > Registrar([FromBody] RequestPedidoRegistrarDto modelo) { if (!ModelState.IsValid) { return(BadRequest()); } ResponsePedidoRegistrarDto respuesta = new ResponsePedidoRegistrarDto(); long nuevoId = 0; var result = await Task.FromResult(_lnPedido.Registrar(modelo, ref nuevoId)); if (result == 0) { respuesta.ListaError.Add(new ErrorDto { Mensaje = "Error al intentar registrar" }); return(BadRequest(respuesta)); } respuesta.ProcesadoOk = 1; respuesta.IdGenerado = nuevoId; return(Ok(respuesta)); }