public ActionResult Index(IList <StockFarmacia> stocks) { int hospitalId = stocks.First().hospitalId; var oldStocks = db.StockFarmacias.Where(x => x.hospitalId == hospitalId).ToList(); foreach (StockFarmacia stock in stocks) { var stockToModify = oldStocks.Find(x => x.hospitalId == stock.hospitalId && x.insumoId == stock.insumoId && x.stockFarmacia != stock.stockFarmacia); if (stockToModify != null) { stockToModify.stockFarmacia = stock.stockFarmacia; db.Entry(stockToModify).State = EntityState.Modified; } } if (ModelState.IsValid) { try { if (db.SaveChanges() > 0) { return(RedirectToAction("Index", "StockFarmacia", new { hospitalId = hospitalId, fromDashboard = false, param = "Success" })); } } catch (Exception e) { return(RedirectToAction("Index", "StockFarmacia", new { hospitalId = hospitalId, fromDashboard = false, param = e.Message })); } } return(RedirectToAction("Index", "StockFarmacia", new { hospitalId = hospitalId, fromDashboard = false, param = "Ocurrio un error inesperado al enviar el pedido" })); }
public ActionResult Create([Bind(Include = "id,fechaGeneracion,destinatario,tipo,usuarioId,hospitalId,detallesRegistro")] Registro registro) { foreach (var detalle in registro.detallesRegistro) { detalle.insumo = null; } if (ModelState.IsValid) { db.Registros.Add(registro); try { // Actualizar el stock ActualizarStockFarmacia(registro.hospitalId, registro.detallesRegistro, registro); // Guardar el registro en la DB if (db.SaveChanges() > 0) { return(RedirectToAction("Index", new { param = "Success" })); } } catch (Exception e) { return(RedirectToAction("Index", new { param = "Ocurrio un error inesperado al enviar el registro" })); } } return(RedirectToAction("Index", new { param = "Ocurrio un error inesperado al enviar el registro" })); }
public ActionResult Create([Bind(Include = "id,nombre")] Rol rol) { if (ModelState.IsValid) { db.Roles.Add(rol); db.SaveChanges(); return(RedirectToAction("Index")); } return(View(rol)); }
public ActionResult Create([Bind(Include = "id,tipo,descripcion")] TipoReclamo tipoReclamo) { if (ModelState.IsValid) { db.TipoReclamoes.Add(tipoReclamo); db.SaveChanges(); return(RedirectToAction("Index")); } return(View(tipoReclamo)); }
public ActionResult Create([Bind(Include = "id,nombre")] Localidad localidad) { if (ModelState.IsValid) { db.Localidades.Add(localidad); db.SaveChanges(); return(RedirectToAction("Index")); } return(View(localidad)); }
public ActionResult Create([Bind(Include = "id,nombreEstado,isFinal")] Estado estado) { if (ModelState.IsValid) { db.Estados.Add(estado); db.SaveChanges(); return(RedirectToAction("Index")); } return(View(estado)); }
public ActionResult Create([Bind(Include = "id,nombre")] TipoInsumo tipoInsumo) { if (ModelState.IsValid) { db.TiposInsumo.Add(tipoInsumo); db.SaveChanges(); return(RedirectToAction("Index")); } return(View(tipoInsumo)); }
public ActionResult Create([Bind(Include = "id,nombre,localidadId, presupuesto, latitud, longitud, telefono")] Hospital hospital) { if (ModelState.IsValid) { db.Hospitales.Add(hospital); db.SaveChanges(); return(RedirectToAction("Index")); } ViewBag.localidadId = new SelectList(db.Localidades, "id", "nombre", hospital.localidadId); return(View(hospital)); }
public async Task <ActionResult> Create([Bind(Include = "id,observacionFamacia,fechaInicioReclamo,tipoReclamoId,pedidoId,hospitalId,estadoReclamoId,detallesReclamo")] Reclamo reclamo) { Pedido pedido = db.Pedidos.Find(reclamo.pedidoId); if (ModelState.IsValid) { //Cambio de estado del pedido pedido.estadoId = 7; //Reclamado db.Entry(pedido).State = EntityState.Modified; //Generacion del reclamo db.Reclamoes.Add(reclamo); reclamo.estadoReclamoId = 1; //Generado reclamo.fechaInicioReclamo = DateTime.Now; reclamo.responsableAsignadoId = null; impactarStockFarmaciaYPresupuesto(reclamo); //Guardar toda la transacción en DB db.SaveChanges(); await SendEmailReclamo(reclamo); return(RedirectToAction("ReclamosRespFarmacia", "Reclamos")); } ViewBag.estadoReclamoId = new SelectList(db.EstadoReclamoes, "id", "nombreEstado", reclamo.estadoReclamoId); ViewBag.hospitalId = reclamo.hospitalId; ViewBag.hospital = db.Hospitales.Where(p => p.id == reclamo.hospitalId).First().nombre; ViewBag.pedidoId = reclamo.pedidoId; ViewBag.responsableAsignadoId = new SelectList(db.UserAccounts, "id", "nombre", reclamo.responsableAsignadoId); ViewBag.tipoReclamoId = new SelectList(db.TipoReclamoes, "id", "tipo", reclamo.tipoReclamoId); return(View(reclamo)); }
public ActionResult ActualizarStock(string[] syncData, string userId) { try { // TODO: crear un ajuste nuevo y al recorrer los insumos ir agregando los detalles // No olvidar crear los historicos para cada insumo var ajuste = new AjusteSIAH(); ajuste.fechaGeneracion = DateTime.UtcNow; ajuste.info = "Sincronización con stock OCASA"; ajuste.usuarioId = int.Parse(userId); Uri baseUri = new Uri("http://localhost:3000"); var detalles = new HashSet <DetalleAjusteSIAH>(); foreach (var id in syncData) { var insumoActual = db.Insumos.Find(int.Parse(id)); var insumoOcasaActual = db.InsumoOcasa.Find(int.Parse(id)); if (insumoActual != null) { //Asumimos que el Stock Fisico (entregado) es mayor al stock (comprometido por las autorizaciones) //por lo tanto calculamos la diferencia para mantener la misma respecto al nuevo stock //Ej: Stock fisico = 100; Stock comprometido = 30; Stock Ocasa = 90 //Resultado -> Stock fisico 90; Stock comprometido = 20 var diferenciaStocks = insumoOcasaActual.stockFisico - insumoActual.stockFisico; var diff = insumoActual.stockFisico - insumoActual.stock; insumoActual.stockFisico = insumoOcasaActual.stockFisico <= 0 ? 0 : insumoOcasaActual.stockFisico; insumoActual.stock = insumoActual.stockFisico - diff <= 0 ? 0 : insumoActual.stockFisico - diff; db.Entry(insumoActual).State = EntityState.Modified; var detalleAjuste = new DetalleAjusteSIAH(); detalleAjuste.insumoId = insumoActual.id; detalleAjuste.info = "Ajuste por sincronizacion con OCASA"; detalleAjuste.cantidad = diferenciaStocks; detalles.Add(detalleAjuste); agregarHistoricoSIAH(ajuste, insumoActual.stock, detalleAjuste); agregarHistoricoFisico(ajuste, insumoActual.stockFisico, detalleAjuste); } } ajuste.detallesAjuste = detalles; db.AjusteSIAHs.Add(ajuste); db.SaveChanges(); return(RedirectToAction("DirectorArea", "Home", new { param = "Success" })); } catch (Exception e) { Console.WriteLine(e.ToString()); return(RedirectToAction("DirectorArea", "Home", new { param = e.Message })); } }
//POST: EntregaPedido public async Task <HttpResponseMessage> EntregaPedido(int?id) { HttpResponseMessage response; if (id == null) { return(new HttpResponseMessage(HttpStatusCode.BadRequest)); } try { var pedido = db.Pedidos.Where(p => p.id == id).Include(t => t.estado).Include(d => d.detallesPedido).First(); if (pedido.estadoId == 3) { pedido.estadoId = 6; foreach (DetallePedido item in pedido.detallesPedido) { StockFarmacia insumo = db.StockFarmacias.Where(p => p.hospitalId == pedido.hospitalId && p.insumoId == item.insumoId).First(); if (insumo != null) { insumo.stockFarmacia = insumo.stockFarmacia + item.cantidadAutorizada; db.Entry(insumo).State = EntityState.Modified; } //TODO: Si el insumo no existe se deberia insertar en la BD } db.Entry(pedido).State = EntityState.Modified; db.SaveChanges(); await SendEmailCambioEstadoAsync(pedido); } else { response = new HttpResponseMessage(HttpStatusCode.NotAcceptable); /*response.Content = new StringContent("El pedido ingresado debe estar en estado " + * "En Proceso de Envío y el estado del pedido ingresado es " + pedido.estado.nombreEstado);*/ return(response); } } catch (Exception) { response = new HttpResponseMessage(HttpStatusCode.InternalServerError); //response.Content = new StringContent("Ocurrió un error al intentar realizar el cambio de estado"); return(response); } response = new HttpResponseMessage(HttpStatusCode.Accepted); //response.Content = new StringContent("El pedido cambió correctamente a estado Entregado"); return(response); }
public ActionResult NewPassword([Bind(Include = "password, confirmPassword")] UserAccount userProfile) { string email = Session["email"].ToString(); string password = userProfile.password; userProfile = db.UserAccounts.Where(user => user.email == email).First(); String hashedPass = Hashing.HashPassword(password); userProfile.password = hashedPass; userProfile.confirmPassword = hashedPass; db.Entry(userProfile).State = EntityState.Modified; db.SaveChanges(); Session.Clear(); return(RedirectToAction("Index", "Home", new { param = "Success" })); }
private void CargarRemitoCompra(DateTime fechaEntregaEfectiva) { Compra compra = new Compra(); compra.fechaEntregaEfectiva = fechaEntregaEfectiva; db.Compras.Add(compra); db.SaveChanges(); var compraId = compra.id; using (var reader = new StreamReader($"{Server.MapPath("~/CargaRemitosCSV")}/RemitoCompra.csv")) { var headerLine = reader.ReadLine(); while (!reader.EndOfStream) { ActualizarDatos(compraId, reader); } } db.SaveChanges(); }
public ActionResult ActualizarStock(string[] syncData) { try { Uri baseUri = new Uri("http://localhost:3000"); // Uri myUri = new Uri(baseUri, "/reclamo?name=success"); // var response = client.GetAsync(myUri); // if (response.Result.StatusCode != HttpStatusCode.OK) return RedirectToAction("DirectorArea", "Home", new { param = "Failed" }); // var insumosOcasa = db.InsumoOcasa.Select(x => new { id = x.id, stockOcasa = x.stockFisico }).ToList(); foreach (var id in syncData) { var insumoActual = db.Insumos.Find(int.Parse(id)); var insumoOcasaActual = db.InsumoOcasa.Find(int.Parse(id)); if (insumoActual != null) { //Asumimos que el Stock Fisico (entregado) es mayor al stock (comprometido por las autorizaciones) //por lo tanto calculamos la diferencia para mantener la misma respecto al nuevo stock //Ej: Stock fisico = 100; Stock comprometido = 30; Stock Ocasa = 90 //Resultado -> Stock fisico 90; Stock comprometido = 20 var diff = insumoActual.stockFisico - insumoActual.stock; insumoActual.stockFisico = insumoOcasaActual.stockFisico <= 0 ? 0 : insumoOcasaActual.stockFisico; insumoActual.stock = insumoActual.stockFisico - diff <= 0 ? 0 : insumoActual.stockFisico - diff; db.Entry(insumoActual).State = EntityState.Modified; } } db.SaveChanges(); return(RedirectToAction("DirectorArea", "Home", new { param = "Success" })); } catch (Exception e) { Console.WriteLine(e.ToString()); return(RedirectToAction("DirectorArea", "Home", new { param = e.Message })); } }
public ActionResult Create([Bind(Include = "id,fechaGeneracion,info,usuarioId,detallesAjuste")] AjusteSIAH ajusteSIAH) { foreach (var detalle in ajusteSIAH.detallesAjuste) { detalle.insumo = null; var insumo = db.Insumos.Find(detalle.insumoId); // Si es negativo se resta, si es positivo se suma insumo.stock = insumo.stock + detalle.cantidad; insumo.stockFisico = insumo.stockFisico + detalle.cantidad; agregarHistoricoSIAH(ajusteSIAH, insumo.stock, detalle); agregarHistoricoFisico(ajusteSIAH, insumo.stockFisico, detalle); db.Entry(insumo).State = EntityState.Modified; } if (ModelState.IsValid) { try { db.AjusteSIAHs.Add(ajusteSIAH); // Guardar el registro en la DB if (db.SaveChanges() > 0) { return(RedirectToAction("Index", new { param = "Success" })); } return(RedirectToAction("Index")); } catch (Exception e) { return(RedirectToAction("Index", new { param = "Ocurrio un error inesperado al enviar el registro" })); } } ViewBag.usuarioId = new SelectList(db.UserAccounts, "id", "nombre", ajusteSIAH.usuarioId); return(View(ajusteSIAH)); }
public ActionResult CargarCompra(Compra compra) { var compraCargada = db.Compras.Any(compraDB => compraDB.numeroComprobante == compra.numeroComprobante && compraDB.cuilProveedor == compra.cuilProveedor); if (compraCargada) { string acceptValue = "La compra ya se encuentra cargada."; var result = Content(JsonConvert.SerializeObject(new { error = acceptValue }), "application/json; charset=utf-8"); HttpContext.Response.StatusCode = (int)HttpStatusCode.Forbidden; return(result); } compra.id = db.Insumos.ToList().Last().id + 1; var nuevoIdCompra = db.Compras.ToList().Last().id + 1; compra.fechaCargaCompra = DateTime.UtcNow; try { db.Compras.Add(compra); foreach (var detalle in compra.detallesCompra) { ActualizarDatos(compra.id, detalle, compra.fechaCargaCompra, nuevoIdCompra); } db.SaveChanges(); string acceptValue = "La compra se cargo exitosamente."; var result = Content(JsonConvert.SerializeObject(new { message = acceptValue }), "application/json; charset=utf-8"); HttpContext.Response.StatusCode = (int)HttpStatusCode.Accepted; return(result); } catch (Exception e) { Console.WriteLine(e.StackTrace); string acceptValue = "Ocurrio un error inesperado al intentar guardar la compra."; var result = Content(JsonConvert.SerializeObject(new { error = acceptValue }), "application/json; charset=utf-8"); HttpContext.Response.StatusCode = (int)HttpStatusCode.InternalServerError; return(result); } }
public ActionResult CargarRemito(Remito remito) { if (!db.Pedidos.Where(p => p.id.Equals(remito.pedidoId)).Any()) { string errorValue = "El numero de pedido ingresado no existe en el sistema."; var result = Content(JsonConvert.SerializeObject(new { error = errorValue }), "application/json; charset=utf-8"); HttpContext.Response.StatusCode = (int)HttpStatusCode.BadRequest; return(result); } var listaItems = db.DetallesPedido .Where(d => d.pedidoId == remito.pedidoId) .Select(x => new { insumoId = x.insumoId, cantAutorizada = x.cantidadAutorizada }).ToList(); if (listaItems.Count != remito.detallesRemito.Count) { string errorValue = "La cantidad de insumos ingresadas no corresponde con la cantidad de insumos pedidos."; var result = Content(JsonConvert.SerializeObject(new { error = errorValue }), "application/json; charset=utf-8"); HttpContext.Response.StatusCode = (int)HttpStatusCode.BadRequest; return(result); } remito.id = remito.pedidoId; remito.estadoId = 1; foreach (DetalleRemito detalle in remito.detallesRemito) { var item = listaItems.Find(l => l.insumoId == detalle.insumoId); if (item == null) { string errorValue = "El insumoId: " + detalle.insumoId + " no existe para el número de pedido ingresado."; var result = Content(JsonConvert.SerializeObject(new { error = errorValue }), "application/json; charset=utf-8"); HttpContext.Response.StatusCode = (int)HttpStatusCode.BadRequest; return(result); } else if (detalle.cantidadEntregada < 0) { string errorValue = "El insumoId: " + detalle.insumoId + " posee una canidad incorrecta."; var result = Content(JsonConvert.SerializeObject(new { error = errorValue }), "application/json; charset=utf-8"); HttpContext.Response.StatusCode = (int)HttpStatusCode.BadRequest; return(result); } detalle.remitoId = remito.id; } try { db.Remitos.Add(remito); db.SaveChanges(); ActualizarStockSiahConDetallesRemito(remito.id, remito.fechaEntregaEfectiva); ActualizarStockFarmacia(remito); ActualizarPedido(remito.pedidoId); string acceptValue = "La peticion fue exitosa."; var result = Content(JsonConvert.SerializeObject(new { message = acceptValue }), "application/json; charset=utf-8"); HttpContext.Response.StatusCode = (int)HttpStatusCode.Accepted; return(result); } catch (Exception e) { Console.WriteLine(e.StackTrace); string acceptValue = "El remito ya se encuentra cargado."; var result = Content(JsonConvert.SerializeObject(new { error = acceptValue }), "application/json; charset=utf-8"); HttpContext.Response.StatusCode = (int)HttpStatusCode.InternalServerError; return(result); } }