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);
                }
            }
        }
        protected virtual void FSModelTemplateComponent_RowInserting(PXCache cache, PXRowInsertingEventArgs e)
        {
            if (e.Row == null)
            {
                return;
            }

            FSModelTemplateComponent fsModelTemplateComponentRow      = (FSModelTemplateComponent)e.Row;
            FSModelTemplateComponent fsModelTemplateComponentRow_InDB = PXSelect <FSModelTemplateComponent,
                                                                                  Where <
                                                                                      FSModelTemplateComponent.componentCD, Equal <Required <FSModelTemplateComponent.componentCD> >,
                                                                                      And <
                                                                                          FSModelTemplateComponent.modelTemplateID, Equal <Current <FSModelTemplateComponent.modelTemplateID> > > > >
                                                                        .SelectWindowed(Base, 0, 1, fsModelTemplateComponentRow.ComponentCD);

            if (fsModelTemplateComponentRow_InDB != null)
            {
                cache.RaiseExceptionHandling <FSModelTemplateComponent.componentCD>
                    (e.Row, fsModelTemplateComponentRow.ComponentCD, new PXException(TX.Error.ID_ALREADY_USED));
            }
        }
        protected virtual void FSModelComponent_ComponentID_FieldUpdated(PXCache cache, PXFieldUpdatedEventArgs e)
        {
            if (e.Row == null)
            {
                return;
            }

            FSModelComponent fsModelComponentRow = (FSModelComponent)e.Row;

            if (fsModelComponentRow.ComponentID != null)
            {
                FSModelTemplateComponent fsModelTemplateComponentRow = PXSelect <FSModelTemplateComponent,
                                                                                 Where <
                                                                                     FSModelTemplateComponent.componentID, Equal <Required <FSModelTemplateComponent.componentID> > > >
                                                                       .Select(Base, fsModelComponentRow.ComponentID);

                fsModelComponentRow.Active      = fsModelTemplateComponentRow.Active;
                fsModelComponentRow.ComponentID = fsModelTemplateComponentRow.ComponentID;
                fsModelComponentRow.Descr       = fsModelTemplateComponentRow.Descr;
                fsModelComponentRow.ClassID     = fsModelTemplateComponentRow.ClassID;
                fsModelComponentRow.Optional    = fsModelTemplateComponentRow.Optional;
                fsModelComponentRow.Qty         = fsModelTemplateComponentRow.Qty;
            }
        }
        protected virtual void _(Events.FieldUpdated <FSModelComponent, FSModelComponent.componentID> e)
        {
            if (e.Row == null || PXAccess.FeatureInstalled <FeaturesSet.equipmentManagementModule>() == false)
            {
                return;
            }

            FSModelComponent fsModelComponentRow = (FSModelComponent)e.Row;

            if (fsModelComponentRow.ComponentID != null)
            {
                FSModelTemplateComponent fsModelTemplateComponentRow = PXSelect <FSModelTemplateComponent,
                                                                                 Where <
                                                                                     FSModelTemplateComponent.componentID, Equal <Required <FSModelTemplateComponent.componentID> > > >
                                                                       .Select(Base, fsModelComponentRow.ComponentID);

                fsModelComponentRow.Active      = fsModelTemplateComponentRow.Active;
                fsModelComponentRow.ComponentID = fsModelTemplateComponentRow.ComponentID;
                fsModelComponentRow.Descr       = fsModelTemplateComponentRow.Descr;
                fsModelComponentRow.ClassID     = fsModelTemplateComponentRow.ClassID;
                fsModelComponentRow.Optional    = fsModelTemplateComponentRow.Optional;
                fsModelComponentRow.Qty         = fsModelTemplateComponentRow.Qty;
            }
        }