public async Task <long> Almacenamiento(InventarioForStorage command) { var dominio = await _context.InventarioGeneral.Where(x => x.Id == command.Id).SingleOrDefaultAsync(); var invlod = await _context.InvLod.Where(x => x.Id == dominio.LodId).SingleOrDefaultAsync(); /// Lógica para cerrar pedido using (var transaction = _context.Database.BeginTransaction()) { try { invlod.UbicacionId = invlod.UbicacionProxId.Value; invlod.UbicacionProxId = null; await _context.SaveChangesAsync(); transaction.Commit(); } catch (Exception ex) { transaction.Rollback(); throw ex; } return(command.Id); } }
public async Task <long> Almacenamiento(InventarioForStorage command) { var dominio = await _context.InventarioGeneral.Where(x => x.Id == command.Id).SingleOrDefaultAsync(); var invlod = await _context.InvLod.Where(x => x.Id == dominio.LodId).SingleOrDefaultAsync(); // dominio.UbicacionId = dominio.UbicacionIdProx; // dominio.UbicacionIdProx = null; dominio.Almacenado = true; var lineas = _context.InventarioGeneral.Where(x => x.OrdenReciboId == dominio.OrdenReciboId).ToList(); var cab = _context.OrdenesRecibo.Where(x => x.Id == dominio.OrdenReciboId).Single(); var Equipo = _context.EquipoTransporte.Where(x => x.Id == cab.EquipoTransporteId).Single(); foreach (var item in lineas) { if (item.Almacenado.HasValue) { if (!item.Almacenado.Value) { cab.EstadoId = (Int16)Constantes.EstadoOrdenIngreso.PendienteAlmacenamiento; break; } else { cab.EstadoId = (Int16)Constantes.EstadoOrdenIngreso.Terminado; Equipo.EstadoId = (Int16)Constantes.EstadoEquipoTransporte.Cerrado; } } else { cab.EstadoId = (Int16)Constantes.EstadoOrdenIngreso.PendienteAlmacenamiento; break; } } using (var transaction = _context.Database.BeginTransaction()) { try { invlod.UbicacionId = invlod.UbicacionProxId; invlod.UbicacionProxId = null; await _context.SaveChangesAsync(); transaction.Commit(); } catch (Exception ex) { transaction.Rollback(); throw ex; } return(command.Id); } }
public async Task <long> MovimientoSalida(InventarioForStorage command) { KardexGeneral kardex; using (var transaction = _context.Database.BeginTransaction()) { var pckrk = await _context.Pckwrk.Where(x => x.Id == command.Id).SingleOrDefaultAsync(); var wrk = await _context.Wrk.Where(x => x.Id == pckrk.WrkId).SingleOrDefaultAsync(); var dominio = await _context.InventarioGeneral.Where(x => x.Id == pckrk.InventarioId).Include(z => z.InvLod).SingleOrDefaultAsync(); try { pckrk.Confirmado = true; dominio.InvLod.UbicacionId = wrk.DestinoId.Value; dominio.InvLod.UbicacionProxId = null; pckrk.DestinoId = null; pckrk.UbicacionId = wrk.DestinoId.Value; /// Lógica para cerrar pedido var detalles = await _context.Pckwrk.Where(x => x.WrkId == wrk.Id).ToListAsync(); if (detalles.Where(x => x.Confirmado == true).ToList().Count > 0) { wrk.FechaInicio = DateTime.Now; } foreach (var item in detalles) { if (item.Confirmado == false) { wrk.EstadoId = (Int32)Constantes.EstadoWrk.Iniciado; } else { wrk.EstadoId = (Int32)Constantes.EstadoWrk.Terminado; } } await _context.SaveChangesAsync(); //Registrar el movimiento en el kardex kardex = new KardexGeneral(); kardex.Almacenado = false; kardex.EstadoId = dominio.EstadoId; kardex.FechaExpire = dominio.FechaExpire; kardex.FechaManufactura = dominio.FechaManufactura; kardex.FechaRegistro = DateTime.Now; kardex.HuellaId = dominio.HuellaId; kardex.LineaId = dominio.LineaId; kardex.LodId = dominio.LodId; kardex.LotNum = dominio.LotNum; kardex.Movimiento = "S"; kardex.OrdenReciboId = dominio.OrdenReciboId; kardex.Peso = dominio.Peso; kardex.ProductoId = dominio.ProductoId; kardex.PropietarioId = dominio.ClienteId; kardex.ShipmentLine = pckrk.ShipmentLineId; kardex.UntQty = pckrk.CantidadRetiro * -1; //dominio.UntQty * -1; kardex.UsuarioIngreso = 1; kardex.InventarioId = dominio.Id; _context.KardexGeneral.Add(kardex); //Eliminar el inventario if (pckrk.CantidadRetiro == pckrk.CantidadPallet) { var eliminar = await _context.InventarioGeneral.Where(x => x.Id == dominio.Id).SingleAsync(); _context.InventarioGeneral.Remove(eliminar); } else { dominio.Almacenado = true; dominio.UntQty = pckrk.CantidadPallet - pckrk.CantidadRetiro; } await _context.SaveChangesAsync(); transaction.Commit(); } catch (Exception ex) { transaction.Rollback(); throw ex; } return(command.Id); } }
public async Task <IActionResult> almacenamiento(InventarioForStorage inventarioForFinish) { var createdInventario = await _repoInventario.Almacenamiento(inventarioForFinish); return(Ok()); }