public async Task <IActionResult> merge_ajuste(MergeInventarioRegister mergeInventarioRegister) { var createdInventario = await _repoInventario.MergeInventario(mergeInventarioRegister); return(Ok()); }
public async Task <long> MergeInventario(MergeInventarioRegister mergeInventarioRegister) { string[] prm = mergeInventarioRegister.ids.Split(','); InventarioGeneral dominio = new InventarioGeneral(); InvLod invLod = null; int total = 0; List <AjusteInventario> ajustes = new List <AjusteInventario>(); AjusteInventario ajuste = null; var aux = _context.InventarioGeneral.Where(x => x.Id == Convert.ToInt64(prm[1])).SingleOrDefault(); var lod = _context.InvLod.Where(x => x.Id == aux.LodId).SingleOrDefault(); //dominio.UntQty = total; using (var transaction = _context.Database.BeginTransaction()) { try { invLod = new InvLod(); invLod.FechaHoraRegistro = DateTime.Now; invLod.LodNum = ""; invLod.UbicacionId = lod.UbicacionId; await _context.AddAsync <InvLod>(invLod); await _context.SaveChangesAsync(); // Secuencia de LPN invLod.LodNum = 'E' + (invLod.Id).ToString().PadLeft(8, '0'); foreach (var item in prm) { var inventarios = _context.InventarioGeneral.Where(x => x.LodId == Convert.ToInt64(item)).ToList(); foreach (var item2 in inventarios) { //Vinculo INVLOD item2.LodId = invLod.Id; _context.SaveChanges(); } } // foreach (var item in prm) // { // var inventarios = _context.InventarioGeneral.Where(x=>x.LodId == Convert.ToInt64(item)).ToList(); // foreach (var objInventario in inventarios) // { // ajuste = new AjusteInventario(); // ajuste.EstadoId = (int) Constantes.EstadoInventario.Eliminado; // ajuste.FechaExpire= objInventario.FechaExpire; // ajuste.FechaHoraAjuste = DateTime.Now; // ajuste.FechaIngreso = objInventario.FechaRegistro; // ajuste.FechaManufactura = objInventario.FechaManufactura; // ajuste.LotNum = invLod.LodNum ; // ajuste.UntQty = objInventario.UntQty; // ajuste.ProductoId = objInventario.ProductoId; // ajuste.InventarioId = objInventario.Id; // ajuste.ClienteId = objInventario.ClienteId; // ajuste.LineaId = objInventario.LineaId; // ajuste.OrdenReciboId = objInventario.OrdenReciboId; // ajuste.Almacenado = objInventario.Almacenado; // ajuste.HuellaId = objInventario.HuellaId; // ajuste.UsuarioRegistroId = 1; // ajustes.Add(ajuste); // } // } //agregar a ajustes await _context.AddRangeAsync(ajustes); await _context.SaveChangesAsync(); transaction.Commit(); } catch (Exception ex) { transaction.Rollback(); throw ex; } return(dominio.Id); } }