private void ActualizarStockProduccion(ServicioItemProduccion servicio, STOCK_PRODUCCION stockProduccion, double totalItem) { var stock = servicio.RepositorioStockProduccion.ObtenerObjetos(new FiltroStockProduccionPorId(stockProduccion.ID)).FirstOrDefault(); if (stock == null) { throw new ApplicationException($"No existe Stock Producción cuyo id es {stockProduccion.ID}"); } stock.CANTIDAD_GRAMOS = stock.CANTIDAD_GRAMOS - totalItem; servicio.RepositorioStockProduccion.Actualizar(stock); }
private void ActualizarUsuario(ServicioItemProduccion servicio, int id, short idUsuario) { var itemProduccion = servicio.Repositorio.ObtenerObjetos(new FiltroItemProduccionPorId(id)).FirstOrDefault(); if (itemProduccion == null) { throw new ApplicationException($"No existe item de producción cuyo id es {id}"); } itemProduccion.ID_USUARIO = idUsuario; servicio.Repositorio.Actualizar(itemProduccion); }
internal override void EjecutarProceso(ServicioItemProduccion servicio) { var stockProduccion = servicio.RepositorioStockProduccion.ObtenerObjetos(new FiltroStockProduccion()).FirstOrDefault(sp => sp.ITEM.ID_ITEM == servicio.DetalleItemProduccion.ID_ITEM); var item = servicio.RepositorioItem.ObtenerItemsConMedida(new FiltroItemGeneral()).FirstOrDefault(i => i.ID_ITEM == servicio.DetalleItemProduccion.ID_ITEM); if (stockProduccion == null || item == null) { throw new ApplicationException("Data inconsistente."); } var totalItem = servicio.Diferencia * item.CANTIDAD * item.MEDIDA.VALOR; ActualizarStockProduccion(servicio, stockProduccion, totalItem); }
internal override void EjecutarProceso(ServicioItemProduccion servicio) { var item = servicio.RepositorioProduccion.ObtenerObjetos(new FiltroProduccionHoy()).FirstOrDefault(); if (item == null) { servicio.ItemProduccion.FECHA = DateTime.Now; servicio.Repositorio.Agregar(servicio.ItemProduccion); servicio.SetearEstado(new EstadoActualizarStock()); } else { throw new ApplicationException($"No se puede ingresar items a produccion ya que la producción del día fue ingresada."); } }
internal override void EjecutarProceso(ServicioItemProduccion servicio) { var detalleItemProduccionAModificar = servicio.RepositorioDetalle.ObtenerObjetos(new FiltroDetalleItemProduccionPorId(servicio.DetalleItemProduccion.ID_DETALLE)).FirstOrDefault(); if (detalleItemProduccionAModificar == null) { throw new ApplicationException($"No existe detalle item de producción cuyo id es {servicio.DetalleItemProduccion.ID_DETALLE}"); } if (DateTime.Now > DateTime.Parse(servicio.DetalleItemProduccion.ITEM_PRODUCCION.FECHA.ToShortDateString()).AddHours(23).AddMinutes(59).AddSeconds(59)) { throw new ApplicationException($"No se puede modificar el detalle item de producción."); } servicio.Diferencia = detalleItemProduccionAModificar.CANTIDAD - servicio.DetalleItemProduccion.CANTIDAD; detalleItemProduccionAModificar.CANTIDAD = servicio.DetalleItemProduccion.CANTIDAD; servicio.RepositorioDetalle.Actualizar(detalleItemProduccionAModificar); ActualizarUsuario(servicio, detalleItemProduccionAModificar.ID_ITEM_PRODUCCION, servicio.DetalleItemProduccion.ITEM_PRODUCCION.ID_USUARIO); servicio.SetearEstado(new EstadoActualizarUnStock()); }
internal override void EjecutarProceso(ServicioItemProduccion servicio) { var stockProduccion = servicio.RepositorioStockProduccion.ObtenerObjetos(new FiltroStockProduccion()); var items = servicio.RepositorioItem.ObtenerItemsConMedida(new FiltroItemGeneral()); foreach (var detalle in servicio.ItemProduccion.DETALLES_ITEM_PRODUCCION) { var item = items.FirstOrDefault(i => i.ID_ITEM == detalle.ID_ITEM); var stock = stockProduccion.FirstOrDefault(sp => sp.ITEM.ID_ITEM == detalle.ID_ITEM); var totalItem = detalle.CANTIDAD * item.CANTIDAD * item.MEDIDA.VALOR; if (stock == null) { CrearStockProduccion(servicio, new STOCK_PRODUCCION { ITEM = new ITEM { ID_ITEM = detalle.ID_ITEM }, CANTIDAD_GRAMOS = totalItem }); } else { ActualizarStockProduccion(servicio, stock, totalItem); } } }
private void CrearStockProduccion(ServicioItemProduccion servicio, STOCK_PRODUCCION stockProduccion) { servicio.RepositorioStockProduccion.CrearStockProduccion(stockProduccion); }
internal abstract void EjecutarProceso(ServicioItemProduccion servicio);