protected virtual void KCInventoryTrackingRule_RowPersisting(PXCache sender, PXRowPersistingEventArgs e)
        {
            if (e == null || e.Row == null)
            {
                return;
            }

            KCInventoryTrackingRule row = e.Row as KCInventoryTrackingRule;

            if (IsDefaultDCEmpty(row) && row.InventoryTrackingRule == KCInventoryTrackingRulesConstants.Consolidate)
            {
                sender.RaiseExceptionHandling <KCInventoryTrackingRule.defaultDistributionCenterID>(e.Row, null, new Exception(KCMessages.DefaultDCCanNotBeEmpty));
                throw new PXException(KCMessages.DefaultDCCanNotBeEmpty);
            }
        }
        public void KCInventoryTrackingRule_RowUpdated(PXCache sender, PXRowUpdatedEventArgs e)
        {
            if (e.Row == null)
            {
                return;
            }

            KCInventoryTrackingRule row = (KCInventoryTrackingRule)e.Row;

            KCSiteMaster siteMaster = Connection.SelectSingle();

            if (siteMaster != null)
            {
                siteMaster.IncludeVendorInventory      = row.IncludeVendorInventory;
                siteMaster.InventoryTrackingRule       = row.InventoryTrackingRule;
                siteMaster.DefaultDistributionCenterID = row.DefaultDistributionCenterID;
                Connection.Update(siteMaster);
            }
        }
        public void KCInventoryTrackingRule_RowSelected(PXCache sender, PXRowSelectedEventArgs e)
        {
            KCInventoryTrackingRule row = (KCInventoryTrackingRule)e.Row;

            bool val = row == null || row.InventoryTrackingRule == KCInventoryTrackingRulesConstants.Manage;

            Mapping.Cache.AllowSelect = val;

            bool workflowPublished;

            workflowPublished = namespaceTester.Test(KCConstants.NamespaceTesterPackage);

            if (workflowPublished)
            {
                PXUIFieldAttribute.SetVisible <KCInventoryTrackingRule.includeVendorInventory>(sender, null, !val);
            }
            else
            {
                PXUIFieldAttribute.SetVisible <KCInventoryTrackingRule.includeVendorInventory>(sender, null, false);
            }
            PXUIFieldAttribute.SetVisible <KCInventoryTrackingRule.defaultDistributionCenterID>(sender, null, !val);
        }
 protected virtual bool IsDefaultDCEmpty(KCInventoryTrackingRule distributionCenter)
 {
     return(distributionCenter.DefaultDistributionCenterID == null);
 }