protected void RegresarEstado(Salidas s) { Equipos eq = new Equipos(); SalidasDetalle sd = new SalidasDetalle(); s.Buscar(Utilitarios.ConvertirAentero(IdTextBox.Text)); foreach (var a in s.Detalle) { eq.Buscar(a.EquipoId); eq.Editarestado(1); } }
private IActionResult Post(Salidas salida, AppUser user) { if (salida.Id > 0) { //Actializar encabezado var salidaModificada = db.Salidas.FirstOrDefault(x => x.Id == salida.Id); if (salidaModificada.EstadoId == (int)Estados.Anulado) { return(BadRequest($"No se puede editar una salida en estado anulado")); } salidaModificada.CopyAllFromExcept(salida, x => new { x.Id }); //eliminar registros anteriores var oldComprasDetalle = db.SalidasDetalle.Where(x => x.SalidaId == salida.Id); foreach (var item in oldComprasDetalle) { db.SalidasDetalle.Remove(item); } //agregar nuevos registros var detalle = salida.SalidasDetalle; foreach (var item in detalle) { var salidasDetalle = new SalidasDetalle(); salidasDetalle.CopyAllFromExcept(item, x => new { x.Id }); db.SalidasDetalle.Add(salidasDetalle); } db.SaveChanges(); } else { salida.Numero = getMax(salida.AreaId); //Actualizar existencias foreach (var item in salida.SalidasDetalle) { var inventario = db.Inventario.Find(item.InventarioId); var areaExistencias = inventario.RegisterTransactionOut(db, item, salida.AreaId); if (areaExistencias.Existencias < 0) { return(BadRequest($"No se puede registrar la salida porque el inventario {inventario.Nombre} quedaria con existencia negativa")); } item.Existencias = areaExistencias.Existencias; item.CostoPromedio = areaExistencias.CostoPromedio; item.Costo = areaExistencias.CostoReal; } db.Salidas.Add(salida); db.SaveChanges(); } var app = db.App.FirstOrDefault(); if (app.GererarProcesosContables) { var asientosFactory = new AsientosFactory(db); asientosFactory.CreateFromSalida(salida, app); } return(Json(salida)); }