/// <summary> /// Obtiene una premezcla por producto y organizacion id /// </summary> /// <param name="premezclaInfo"></param> /// <returns></returns> internal PremezclaInfo ObtenerPorProductoIdOrganizacionId(PremezclaInfo premezclaInfo) { try { var productoBl = new ProductoBL(); var premezclaDal = new PremezclaDAL(); var premezclaDetalleBl = new PremezclaDetalleBL(); premezclaInfo = premezclaDal.ObtenerPorProductoIdOrganizacionId(premezclaInfo); //Obtener detalle de premezcla if (premezclaInfo != null) { premezclaInfo.ListaPremezclaDetalleInfos = premezclaDetalleBl.ObtenerPremezclaDetallePorPremezclaId(premezclaInfo); if (premezclaInfo.ListaPremezclaDetalleInfos != null) { foreach (var premezclaInfoP in premezclaInfo.ListaPremezclaDetalleInfos) { premezclaInfo.Producto.Activo = EstatusEnum.Activo; premezclaInfoP.Producto = productoBl.ObtenerPorID(premezclaInfoP.Producto); } } } } catch (Exception ex) { Logger.Error(ex); } return(premezclaInfo); }
/// <summary> /// Hace el guardado de la premezcla /// </summary> internal void Guardar(PremezclaInfo premezclaInfo, List <PremezclaDetalleInfo> listaPremezclaDetalle, List <PremezclaDetalleInfo> listaPremezclaEliminados, int usuario) { try { var premezclaBl = new PremezclaBL(); var premezclaDetalleBl = new PremezclaDetalleBL(); var listaPremezclasModificados = new List <PremezclaDetalleInfo>(); var listaPremezclasAgregadas = new List <PremezclaDetalleInfo>(); using (var transaction = new TransactionScope()) { //Si no esta guardado se crea int premezclaId; if (!premezclaInfo.Guardado) { premezclaId = premezclaBl.Crear(premezclaInfo); } else { premezclaId = premezclaInfo.PremezclaId; } premezclaInfo.PremezclaId = premezclaId; //Guardar detalles y actualizar modificados listaPremezclasModificados.AddRange(listaPremezclaDetalle.Where(detalleInfo => detalleInfo.Guardado)); listaPremezclasAgregadas.AddRange(listaPremezclaDetalle.Where(detalleInfo => !detalleInfo.Guardado)); if (listaPremezclasAgregadas.Count > 0) { premezclaDetalleBl.Crear(listaPremezclasAgregadas, premezclaInfo); } if (listaPremezclasModificados.Count > 0) { foreach (var listaPremezclasModificadoP in listaPremezclasModificados) { listaPremezclasModificadoP.UsuarioModificacionId = usuario; } premezclaDetalleBl.Actualizar(listaPremezclasModificados); } //Desactivar eliminados if (listaPremezclaEliminados.Count > 0) { foreach (var listaPremezclaEliminado in listaPremezclaEliminados) { listaPremezclaEliminado.Activo = EstatusEnum.Inactivo; } premezclaDetalleBl.Actualizar(listaPremezclaEliminados); } transaction.Complete(); } } catch (ExcepcionGenerica) { throw; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }