public bool AltaImportacion(int cantidad, DateTime fechaIngreso, DateTime fechaSalidaPrevista, int idProd, decimal precioProducto) { RepoImportacion repoImp = new RepoImportacion(); Importacion impoNueva = new Importacion() { FechaIngreso = fechaIngreso, FechaSalida = fechaSalidaPrevista, Producto = FachadaDistribuidora.BuscarProductoPorId(Convert.ToString(idProd)), Cantidad = cantidad, PrecioPorUnidad = precioProducto }; bool exito = repoImp.Alta(impoNueva); return(exito); }
public ActionResult CalcularGanancia(string id) { if (Session["rol"] != null) { if (Session["rol"].ToString() == "admin") { //aca conseguimos todos los decuentos de la base de dato y los guardamos en un objeto RepoDescuento repoDes = new RepoDescuento(); List <Descuento> descuentos = repoDes.TraerTodo(); Descuento descuentoObj = descuentos[0]; int antiguedadAplicableEnDias = descuentoObj.AntiguedadAplicable; decimal comisionDiaria = descuentoObj.ComisionDiaria; decimal descuentoAplicable = descuentoObj.DescuentoAplicable; //aca creamos el objeto cliente RepoCliente repoCli = new RepoCliente(); Cliente cliente = repoCli.BuscarPorRut(id); //aca conseguimos la lista de todas las importaciones de la base de datos decimal costoTotal = 0; RepoImportacion repoImp = new RepoImportacion(); List <Importacion> listaImp = repoImp.TraerTodo(); //aca filtramos todas las importaciones por las pertinentes a un cliente en particular List <Importacion> importacionesPorCliente = new List <Importacion>(); foreach (Importacion impo1 in listaImp) { if (impo1.Producto.Cliente.Rut == id.ToString()) { importacionesPorCliente.Add(impo1); } } //aca filtramos las importaciones por aquellas q estan en el rango de fechas que aplica para el calculo // la fecha de ingreso tiene que ser anterior a la fecha de hoy. Y fecha de salida mayor a la de hoy. List <Importacion> importacionesCalculables = new List <Importacion>(); foreach (Importacion impo2 in importacionesPorCliente) { if (impo2.EsCalculable()) { importacionesCalculables.Add(impo2); } } //aca calculamos el costo de todas las importaciones foreach (Importacion impo3 in importacionesCalculables) { costoTotal += impo3.CalcularCosto(); } costoTotal = costoTotal * ((comisionDiaria) / 100); //aca vemos si aplica descuento por antiguedad, en cuyo caso, lo aplicamos if (cliente.CantidadDias() >= antiguedadAplicableEnDias) { costoTotal = costoTotal - (costoTotal * ((descuentoAplicable) / 100)); } ViewBag.Mensaje = costoTotal; return(View(cliente)); } } else { return(Redirect("/usuario/Index")); } return(Redirect("/usuario/Index")); }