Пример #1
0
        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);
        }
Пример #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);
        }
Пример #3
0
        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));
        }