public async Task<IHttpActionResult> GetComprobarCondiciones(string empresa, string producto, bool aplicarDescuento, decimal precio, decimal descuento, short cantidad, short cantidadOferta) { Empresa empresaBuscada = db.Empresas.Where(e => e.Número == empresa).SingleOrDefault(); if (empresaBuscada.IVA_por_defecto == null) { throw new Exception("Empresa no válida"); } Producto productoEncontrado = await db.Productos.Where(p => p.Empresa == empresa && p.Número == producto).SingleOrDefaultAsync(); if (productoEncontrado.Estado < 0) { throw new Exception("Producto nulo"); } //decimal precio = datosPrecio.precio; //decimal descuento = datosPrecio.descuento; PrecioDescuentoProducto datos = new PrecioDescuentoProducto { precioCalculado = precio, descuentoCalculado = descuento, producto = productoEncontrado, cantidad = cantidad, cantidadOferta = cantidadOferta, aplicarDescuento = aplicarDescuento }; bool condicionesAprobadas = GestorPrecios.comprobarCondiciones(datos); PrecioProductoDTO datosPrecio = new PrecioProductoDTO { aplicarDescuento = datos.aplicarDescuento, precio = datos.precioCalculado, descuento = datos.descuentoCalculado, motivo = datos.motivo }; return Ok(datosPrecio); }
public async Task<IHttpActionResult> GetCargarPrecio(string empresa, string cliente, string contacto, string productoPrecio, short cantidad, bool aplicarDescuento) { Empresa empresaBuscada = db.Empresas.Where(e => e.Número == empresa).SingleOrDefault(); if (empresaBuscada.IVA_por_defecto == null) { throw new Exception("Empresa no válida"); } PrecioProductoDTO datosPrecio = new PrecioProductoDTO(); Producto producto = await db.Productos.Where(p => p.Empresa == empresa && p.Número == productoPrecio).SingleOrDefaultAsync(); if (producto.Estado < 0) { throw new Exception("Producto nulo"); } //decimal precio = datosPrecio.precio; //decimal descuento = datosPrecio.descuento; PrecioDescuentoProducto precio = new PrecioDescuentoProducto { precioCalculado = datosPrecio.precio, descuentoCalculado = datosPrecio.descuento, producto = producto, cliente = cliente, contacto = contacto, cantidad = cantidad, aplicarDescuento = aplicarDescuento }; GestorPrecios.calcularDescuentoProducto(precio); datosPrecio.precio = precio.precioCalculado; datosPrecio.descuento = precio.descuentoCalculado; datosPrecio.aplicarDescuento = precio.aplicarDescuento; return Ok(datosPrecio); }