public async Task <IActionResult> RegisterInventario(InventarioForRegister inventarioGeneral) { //InventarioForRegister inventarioGeneral var createdInventario = await _repoInventario.RegistrarInventario(inventarioGeneral); return(Ok(createdInventario)); }
public async Task <InventarioGeneral> RegistrarInventario(InventarioForRegister command) { InventarioGeneral dominio = null; DateTime Fecha_out; if (command.Id.HasValue) { dominio = _context.InventarioGeneral.SingleOrDefaultAsync(x => x.Id == command.Id).Result; } else { dominio = new InventarioGeneral(); } #region validar Fechas if (command.FechaExpire == "" || command.FechaExpire == null) { dominio.FechaExpire = null; } else if (!DateTime.TryParse(command.FechaExpire, out Fecha_out)) { throw new ArgumentException("Fecha de Expiración incorrecta"); } else { dominio.FechaExpire = Convert.ToDateTime(command.FechaExpire); } #endregion dominio.FechaRegistro = DateTime.Now; dominio.HuellaId = command.HuellaId; dominio.LotNum = command.LotNum; dominio.ProductoId = command.ProductoId; // dominio.UbicacionId = command.UbicacionId; // dominio.UbicacionIdUlt = command.UbicacionIdUlt; dominio.UntCas = command.UntCas; dominio.UntPak = command.UntPak; dominio.UntQty = command.UntQty; dominio.UsuarioIngreso = command.UsuarioIngreso; dominio.ClienteId = command.ClienteId; using (var transaction = _context.Database.BeginTransaction()) { try { //var max = await _context.InventarioGeneral.MaxAsync(x=>x.LodNum); // if(max==null) max = "E00000001"; // max = 'E' + (Convert.ToInt64(max.Substring(1,8)) + 1).ToString().PadLeft(8,'0'); // dominio.LodNum = max; await _context.AddAsync <InventarioGeneral>(dominio); await _context.SaveChangesAsync(); transaction.Commit(); } catch (Exception ex) { transaction.Rollback(); throw ex; } return(dominio); } }