/// <summary> /// Reset the values on the 'Components' grid and loads the Component registers from the selected 'ItemClass' for the current 'InventoryItem' ('StockItem'). /// </summary> public virtual void ResetValuesFromItemClass(PXCache cache, InventoryItem inventoryItemRow, int?itemClassID) { if (PXAccess.FeatureInstalled <FeaturesSet.equipmentManagementModule>() == false) { return; } if (inventoryItemRow != null && inventoryItemRow.ItemClassID != null) { using (var ts = new PXTransactionScope()) { INItemClass inItemClassRow = PXSelect <INItemClass, Where < INItemClass.itemClassID, Equal <Required <INItemClass.itemClassID> > > > .Select(Base, itemClassID); FSxEquipmentModelTemplate fsxEquipmentModelTemplateRow = Base.ItemClass.Cache.GetExtension <FSxEquipmentModelTemplate>(inItemClassRow); FSxEquipmentModel fsxEquipmentModelRow = cache.GetExtension <FSxEquipmentModel>(inventoryItemRow); var fsModelTemplateComponentSet = PXSelect <FSModelTemplateComponent, Where < FSModelTemplateComponent.modelTemplateID, Equal <Required <FSModelTemplateComponent.modelTemplateID> >, And <FSModelTemplateComponent.active, Equal <True> > > > .Select(Base, itemClassID); fsxEquipmentModelRow.EQEnabled = fsxEquipmentModelTemplateRow.EQEnabled; fsxEquipmentModelRow.EquipmentItemClass = fsxEquipmentModelTemplateRow.EquipmentItemClass; fsxEquipmentModelRow.ModelType = fsxEquipmentModelTemplateRow.DfltModelType; foreach (FSModelComponent fsModelComponentRow in ModelComponents.Select()) { ModelComponents.Delete(fsModelComponentRow); } foreach (FSModelTemplateComponent fsModelTemplateComponentRow in fsModelTemplateComponentSet) { if (fsxEquipmentModelTemplateRow.EQEnabled == true) { FSModelComponent fsModelComponentRow = new FSModelComponent(); fsModelComponentRow.Active = fsModelTemplateComponentRow.Active; fsModelComponentRow.ComponentID = fsModelTemplateComponentRow.ComponentID; fsModelComponentRow.Descr = fsModelTemplateComponentRow.Descr; fsModelComponentRow.ClassID = fsModelTemplateComponentRow.ClassID; fsModelComponentRow.Optional = fsModelTemplateComponentRow.Optional; fsModelComponentRow.Qty = fsModelTemplateComponentRow.Qty; ModelComponents.Cache.Insert(fsModelComponentRow); } } ts.Complete(); } } }
private void CheckComponentsClassID(FSxEquipmentModelTemplate fsxEquipmentModelTemplateRow) { if (fsxEquipmentModelTemplateRow == null && fsxEquipmentModelTemplateRow.EquipmentItemClass != ID.Equipment_Item_Class.MODEL_EQUIPMENT) { return; } foreach (FSModelTemplateComponent fsModelTemplateComponentRow in ModelTemplateComponentRecords.Select()) { if (ModelTemplateComponentRecords.Cache.GetStatus(fsModelTemplateComponentRow) == PXEntryStatus.Notchanged && fsModelTemplateComponentRow.ClassID == null) { FSModelTemplateComponent aux = fsModelTemplateComponentRow; ModelTemplateComponentRecords.Cache.SetStatus(fsModelTemplateComponentRow, PXEntryStatus.Updated); } } }
/// <summary> /// Enables or disables fields. /// </summary> private void EnableDisable(PXCache cache, INItemClass itemClassRow) { bool isEnabledAsModelTemplate = false; bool isStkItem = itemClassRow.StkItem == true; FSxServiceClass fsxServiceClassRow = cache.GetExtension <FSxServiceClass>(itemClassRow); PXUIFieldAttribute.SetEnabled <FSxServiceClass.dfltBillingRule>(cache, itemClassRow, itemClassRow.ItemType == INItemTypes.ServiceItem); EnableDisable_ItemType(cache, itemClassRow, fsxServiceClassRow); ModelTemplateComponentRecords.AllowSelect = false; if (PXAccess.FeatureInstalled <FeaturesSet.equipmentManagementModule>()) { FSxEquipmentModelTemplate fsxEquipmentModelTemplateRow = cache.GetExtension <FSxEquipmentModelTemplate>(itemClassRow); isEnabledAsModelTemplate = fsxEquipmentModelTemplateRow.EQEnabled == true && fsxEquipmentModelTemplateRow.EquipmentItemClass == ID.Equipment_Item_Class.MODEL_EQUIPMENT; fsxEquipmentModelTemplateRow.Mem_ShowComponent = isEnabledAsModelTemplate; PXUIFieldAttribute.SetEnabled <FSxEquipmentModelTemplate.equipmentItemClass>(cache, itemClassRow, isStkItem); PXUIFieldAttribute.SetEnabled <FSxEquipmentModelTemplate.eQEnabled>(cache, itemClassRow, isStkItem); PXUIFieldAttribute.SetEnabled <FSxEquipmentModelTemplate.dfltModelType>(cache, itemClassRow, isEnabledAsModelTemplate); PXDefaultAttribute.SetPersistingCheck <FSxEquipmentModelTemplate.dfltModelType>( cache, itemClassRow, isEnabledAsModelTemplate == true ? PXPersistingCheck.NullOrBlank : PXPersistingCheck.Nothing); ModelTemplateComponentRecords.AllowSelect = fsxEquipmentModelTemplateRow.Mem_ShowComponent == true; } ModelTemplateComponentRecords.Cache.AllowInsert = isEnabledAsModelTemplate; ModelTemplateComponentRecords.Cache.AllowUpdate = isEnabledAsModelTemplate; ModelTemplateComponentRecords.Cache.AllowDelete = isEnabledAsModelTemplate; if (isEnabledAsModelTemplate == false) { ModelTemplateComponentRecords.Cache.Clear(); } }
protected virtual void INItemClass_RowPersisting(PXCache cache, PXRowPersistingEventArgs e) { if (e.Row == null) { return; } INItemClass itemClassRow = (INItemClass)e.Row; FSxServiceClass fsxServiceClassRow = cache.GetExtension <FSxServiceClass>(itemClassRow); if (string.IsNullOrEmpty(fsxServiceClassRow.DfltBillingRule)) { cache.RaiseExceptionHandling <FSxServiceClass.dfltBillingRule>(e.Row, fsxServiceClassRow.DfltBillingRule, new PXException(PX.Objects.FS.TX.Error.FIELD_EMPTY)); e.Cancel = true; } if (PXAccess.FeatureInstalled <FeaturesSet.equipmentManagementModule>()) { FSxEquipmentModelTemplate fsxEquipmentModelTemplateRow = cache.GetExtension <FSxEquipmentModelTemplate>(itemClassRow); CheckComponentsClassID(fsxEquipmentModelTemplateRow); } }