public IActionResult Post([FromBody] Inventario inventario) { var numeroMax = 0; if (inventario.Id > 0) { var inventarioModificado = factory.FirstOrDefault(x => x.Id == inventario.Id); if (inventarioModificado.FamiliaId != inventario.FamiliaId) { numeroMax = getMax(inventario.FamiliaId); } inventarioModificado.CopyFrom(inventario, x => new { x.FamiliaId, x.PresentacionId, x.UnidadMedidaId, x.Iva, x.StockMinimo, x.Nombre, x.Descripcion, x.EstadoId, x.Numero, x.Servicio }); if (numeroMax != 0) { inventarioModificado.Numero = numeroMax; } } else { numeroMax = getMax(inventario.FamiliaId); inventario.Numero = numeroMax; factory.Insert(inventario); } factory.Save(); return(Json(inventario)); }
public IActionResult FirstOrDefault(long tickts) { var fecha = new DateTime(tickts).Date; return(Json(factory.FirstOrDefault(x => x.Fecha == fecha))); }
public IActionResult Post([FromBody] Compras compra) { var model = compra .ApplyRules() .validate(); if (!model.IsValid) { return(BadRequest(model.Error)); } if (compra.Id > 0) { //Actializar encabezado var compraModificada = factory.FirstOrDefault(x => x.Id == compra.Id); model = compra.validate(compraModificada); if (!model.IsValid) { return(BadRequest(model.Error)); } compraModificada.CopyAllFromExcept(compra, x => new { x.Id, x.EtapaId }); factory.Save(); //eliminar registros anteriores var oldComprasDetalle = factoryDetalle.GetAll(x => x.CompraId == compra.Id); var idsToDelete = oldComprasDetalle.Select(x => x.InventarioId).Except(compra.ComprasDetalle.Select(x => x.InventarioId)); var objToDelete = oldComprasDetalle.Where(x => idsToDelete.Contains(x.InventarioId)).ToList(); objToDelete.ForEach(x => factoryDetalle.Delete(x)); //agregar nuevos registros y actualizar foreach (var item in compra.ComprasDetalle) { var comprasDetalle = oldComprasDetalle.FirstOrDefault(x => x.InventarioId == item.InventarioId); if (comprasDetalle == null) { factoryDetalle.Insert(item); } else { comprasDetalle.CopyAllFromExcept(item, x => new { x.Id, x.CompraId, x.Compra }); } } factoryDetalle.Save(); } else { compra.EtapaId = (int)CompraEtapas.Pendiente; factory.Insert(compra); factory.Save(); } return(Json(compra)); }