public virtual void ClaimRUTROTFilter_RowSelected(PXCache sender, PXRowSelectedEventArgs e)
        {
            var filter = (ClaimRUTROTFilter)e.Row;

            if (filter == null || string.IsNullOrEmpty(filter.Action))
            {
                return;
            }

            if (filter.Action == ClaimActions.Export)
            {
                PXUIFieldAttribute.SetVisible(Documents.Cache, nameof(RUTROT.ClaimDate), true);
                PXUIFieldAttribute.SetVisible(Documents.Cache, nameof(RUTROT.ExportRefNbr), true);
                Documents.SetProcessDelegate(ExportDocs);
            }

            if (filter.Action == ClaimActions.Claim)
            {
                PXUIFieldAttribute.SetVisible(Documents.Cache, nameof(RUTROT.ClaimDate), false);
                PXUIFieldAttribute.SetVisible(Documents.Cache, nameof(RUTROT.ExportRefNbr), false);
                Documents.SetProcessDelegate(ClaimDocs);
            }

            if (filter.Action == ClaimActions.Balance)
            {
                PXUIFieldAttribute.SetVisible(Documents.Cache, nameof(RUTROT.ClaimDate), false);
                PXUIFieldAttribute.SetVisible(Documents.Cache, nameof(RUTROT.ExportRefNbr), false);
                Documents.SetProcessDelegate(BalanceDocs);
            }
        }
Beispiel #2
0
        protected virtual void PrintParameters_RowSelected(PXCache sender, PXRowSelectedEventArgs e)
        {
            PrintParameters row = (PrintParameters)e.Row;

            if (row != null)
            {
                PrintParameters filter = (PrintParameters)this.Filter.Cache.CreateCopy(row);
                switch (row.Action)
                {
                case ActionTypes.Print:
                    Details.SetProcessDelegate(list => Print(filter, list, false));
                    break;

                case ActionTypes.Email:
                    Details.SetProcessDelegate(list => Email(filter, list, false));
                    break;

                case ActionTypes.MarkDontEmail:
                    Details.SetProcessDelegate(list => Email(filter, list, true));
                    break;

                case ActionTypes.MarkDontPrint:
                    Details.SetProcessDelegate(list => Print(filter, list, true));
                    break;

                case ActionTypes.Release:
                    Details.SetProcessDelegate(list => Release(filter, list));
                    row.ShowAll = false;
                    break;
                }
                PXUIFieldAttribute.SetEnabled <PrintParameters.showAll>(sender, row, row.Action != ActionTypes.Release);
            }
        }
        protected virtual void PrintParameters_RowSelected(PXCache sender, PXRowSelectedEventArgs e)
        {
            PrintParameters o = (PrintParameters)e.Row;

            if (o != null)
            {
                PrintParameters filter = (PrintParameters)this.Filter.Cache.CreateCopy(o);
                switch (o.Action)
                {
                case 0:
                    Details.SetProcessDelegate(list => Print(filter, list, false));
                    break;

                case 1:
                    Details.SetProcessDelegate(list => Email(filter, list, false));
                    break;

                case 2:
                    Details.SetProcessDelegate(list => Email(filter, list, true));
                    break;

                case 3:
                    Details.SetProcessDelegate(list => Print(filter, list, true));
                    break;

                case 4:
                    Details.SetProcessDelegate(list => Release(filter, list));
                    break;
                }
            }
        }
Beispiel #4
0
        protected virtual void PrintParameters_RowSelected(PXCache sender, PXRowSelectedEventArgs e)
        {
            ARSetup setup = ARSetup.Current;
            bool    bb    = !(setup.ConsolidatedStatement ?? false);

            PrintParameters row = (PrintParameters)e.Row;

            if (row != null)
            {
                row.BranchCD = null;
                if (!bb)
                {
                    row.BranchID = null;                     //Force null for the non-consolidated statements
                }
                if (row.BranchID != null)
                {
                    Branch BrS = PXSelect <Branch, Where <Branch.branchID, Equal <Required <Branch.branchID> > > > .Select(this, row.BranchID);

                    if (BrS != null)
                    {
                        row.BranchCD = BrS.BranchCD;
                    }
                }

                PXUIFieldAttribute.SetVisible <PrintParameters.branchID>(sender, null, bb);
                PXUIFieldAttribute.SetEnabled <PrintParameters.statementDate>(sender, row, row.Action != PrintParameters.Actions.Regenerate);

                PrintParameters filter = (PrintParameters)this.Filter.Cache.CreateCopy(row);
                switch (row.Action)
                {
                case 0:
                    Details.SetProcessDelegate(list => PrintStatements(filter, list, false));
                    break;

                case 1:
                    Details.SetProcessDelegate(list => EmailStatements(filter, list, false));
                    break;

                case 2:
                    Details.SetProcessDelegate(list => EmailStatements(filter, list, true));
                    break;

                case 3:
                    Details.SetProcessDelegate(list => PrintStatements(filter, list, true));
                    break;

                case 4:
                    Details.SetProcessDelegate(list => RegenerateStatements(filter, list));
                    break;
                }
            }
        }
 protected virtual void INSiteFilter_RowSelected(PXCache sender, PXRowSelectedEventArgs e)
 {
     if (e.Row != null)
     {
         if (((INSiteFilter)e.Row).RevalueInventory == true && ((INSiteFilter)e.Row).SiteID != null)
         {
             INItemList.SetProcessDelegate <INUpdateStdCostProcess>(RevalueInventory, ReleaseAdjustment);
         }
         else
         {
             INItemList.SetProcessDelegate <INUpdateStdCostProcess>(UpdateStdCost, ReleaseAdjustment);
         }
     }
 }
        public virtual IEnumerable restore(PXAdapter adapter)
        {
            var filter = Filter.Current;

            ObfuscatedItems.SetProcessDelegate(delegate(List <SMPersonalDataIndex> entries)
            {
                var graph = PXGraph.CreateInstance <GDPRRestoreProcess>();
                graph.GetPseudonymizationStatus = typeof(PXPseudonymizationStatusListAttribute.pseudonymized);
                graph.SetPseudonymizationStatus = PXPseudonymizationStatusListAttribute.NotPseudonymized;

                RestoreImpl(entries, graph, filter);
            });

            return(Actions["Process"].Press(adapter));
        }
        public virtual IEnumerable restore(PXAdapter adapter)
        {
            ObfuscatedItems.SetProcessDelegate(delegate(List <SMPersonalDataIndex> entries) { RestoreImpl(entries, Filter.Current); });

            TopLevelProcessor   = TopCommonProcessorImpl;
            ChildLevelProcessor = ChildRestoreProcessorImpl;

            GetPseudonymizationStatus = typeof(PXPseudonymizationStatusListAttribute.pseudonymized);
            SetPseudonymizationStatus = PXPseudonymizationStatusListAttribute.NotPseudonymized;

            foreach (var record in this.Actions["Process"].Press(adapter))
            {
                yield return(record);
            }
        }
        protected virtual void PrintParameters_RowSelected(PXCache sender, PXRowSelectedEventArgs e)
        {
            PrintParameters row = (PrintParameters)e.Row;

            if (row != null)
            {
                PrintParameters filter = (PrintParameters)this.Filter.Cache.CreateCopy(row);
                switch (row.Action)
                {
                case ActionTypes.Print:
                    Details.SetProcessDelegate(list => Print(filter, list, false));
                    break;

                case ActionTypes.Email:
                    Details.SetProcessDelegate(list => Email(filter, list, false));
                    break;

                case ActionTypes.MarkDontEmail:
                    Details.SetProcessDelegate(list => Email(filter, list, true));
                    break;

                case ActionTypes.MarkDontPrint:
                    Details.SetProcessDelegate(list => Print(filter, list, true));
                    break;

                case ActionTypes.Release:
                    Details.SetProcessDelegate(list => Release(filter, list));
                    row.ShowAll = false;
                    break;
                }
                PXUIFieldAttribute.SetEnabled <PrintParameters.showAll>(sender, row, row.Action != ActionTypes.Release);
                bool showPrintSettings = IsPrintingAllowed(row);

                PXUIFieldAttribute.SetVisible <PrintParameters.printWithDeviceHub>(sender, row, showPrintSettings);
                PXUIFieldAttribute.SetVisible <PrintParameters.definePrinterManually>(sender, row, showPrintSettings);
                PXUIFieldAttribute.SetVisible <PrintParameters.printerID>(sender, row, showPrintSettings);
                PXUIFieldAttribute.SetVisible <PrintParameters.numberOfCopies>(sender, row, showPrintSettings);

                PXUIFieldAttribute.SetEnabled <PrintParameters.definePrinterManually>(sender, row, row.PrintWithDeviceHub == true);
                PXUIFieldAttribute.SetEnabled <PrintParameters.numberOfCopies>(sender, row, row.PrintWithDeviceHub == true);
                PXUIFieldAttribute.SetEnabled <PrintParameters.printerID>(sender, row, row.PrintWithDeviceHub == true && row.DefinePrinterManually == true);

                if (row.PrintWithDeviceHub != true || row.DefinePrinterManually != true)
                {
                    row.PrinterID = null;
                }
            }
        }
        protected void _(Events.RowSelected <AMMultiLevelBomFilter> e)
        {
            AMMultiLevelBomFilter row = e.Row;

            if (row != null)
            {
                bool enabled = PXSelect <LifeSyncPreference> .Select(this).TopFirst.EnableProdCostAnlys ?? false;

                PXUIFieldAttribute.SetEnabled <AMMultiLevelBomFilterExt.usrEnblItemRoundUp>(e.Cache, row, enabled);
            }

            Results.SetProcessDelegate(delegate(List <LUMStdBomCost> lists)
            {
                try
                {
                    GenerateBOMCost(lists, row);

                    PXProcessing.SetProcessed();
                }
                catch (Exception ex)
                {
                    PXProcessing.SetError(ex);
                    throw;
                }
            });
        }
Beispiel #10
0
        protected virtual void ARIntegrityCheckFilter_RowSelected(PXCache sender, PXRowSelectedEventArgs e)
        {
            ARIntegrityCheckFilter filter = Filter.Current;

            ARCustomerList.SetProcessDelegate <ARReleaseProcess>(
                delegate(ARReleaseProcess re, Customer cust)
            {
                re.Clear(PXClearOption.PreserveTimeStamp);
                re.IntegrityCheckProc(cust, filter.FinPeriodID);
            }
                );

            //For perfomance recomended select not more than maxCustomerCount customers,
            //becouse the operation is performed for a long time.
            const int maxCustomerCount = 5;

            ARCustomerList.SetParametersDelegate(delegate(List <Customer> list)
            {
                bool processing = true;

                if (list.Count > maxCustomerCount)
                {
                    WebDialogResult wdr = ARCustomerList.Ask(Messages.ContinueValidatingBalancesForMultipleCustomers, MessageButtons.OKCancel);
                    processing          = wdr == WebDialogResult.OK;
                }
                return(processing);
            });
        }
		protected virtual void Filter_RowSelected(PXCache sender, PXRowSelectedEventArgs e)
		{
			if (e.Row == null) return;
			Filter row = (Filter)e.Row;
			bool allDataIsFilled = !string.IsNullOrEmpty(row.OldPaymentMethodID) 
				&& !string.IsNullOrEmpty(row.OldCCProcessingCenterID) 
				&& !string.IsNullOrEmpty(row.NewCCProcessingCenterID);
			CustomerPaymentMethodList.SetProcessEnabled(allDataIsFilled);
			CustomerPaymentMethodList.SetProcessAllEnabled(allDataIsFilled);
			if (allDataIsFilled)
			{
				CCProcessingCenter newCCPC = NewProcessingCenter.Select();
				string oldProcCenterId = OldProcessingCenter.SelectSingle()?.ProcessingCenterID;
				string newProcCenterId = NewProcessingCenter.SelectSingle()?.ProcessingCenterID;
				CustomerPaymentMethodList.SetParametersDelegate(cpm =>
				{
					WebDialogResult result = filter.Ask(PXMessages.LocalizeFormatNoPrefix(Messages.PaymentMethodConverterWarning, oldProcCenterId, newProcCenterId), MessageButtons.OKCancel);
					return result == WebDialogResult.OK ? true : false;
				});
				CustomerPaymentMethodList.SetProcessDelegate(cpm => ConvertCustomerPaymentMethod(row, cpm, newCCPC));
			}

			ShowUnknownPluginWarningIfNeeded(row, OldProcessingCenter.Select(), nameof(Filter.OldCCProcessingCenterID));
			ShowUnknownPluginWarningIfNeeded(row, NewProcessingCenter.Select(), nameof(Filter.NewCCProcessingCenterID));
		}
Beispiel #12
0
        protected virtual void APIntegrityCheckFilter_RowSelected(PXCache sender, PXRowSelectedEventArgs e)
        {
            bool errorsOnForm = PXUIFieldAttribute.GetErrors(sender, null, PXErrorLevel.Error, PXErrorLevel.RowError).Count > 0;

            APVendorList.SetProcessEnabled(!errorsOnForm);
            APVendorList.SetProcessAllEnabled(!errorsOnForm);

            APIntegrityCheckFilter filter = Filter.Current;

            APVendorList.SetProcessDelegate <APReleaseProcess>(
                delegate(APReleaseProcess re, Vendor vend)
            {
                re.Clear(PXClearOption.PreserveTimeStamp);
                re.IntegrityCheckProc(vend, filter.FinPeriodID);
            }
                );

            //For perfomance recomended select not more than maxVendorCount vendors,
            //because the operation is performed for a long time.
            const int maxVendorCount = 5;

            APVendorList.SetParametersDelegate(delegate(List <Vendor> list)
            {
                bool processing = true;
                if (PX.Common.PXContext.GetSlot <AUSchedule>() == null && list.Count > maxVendorCount)
                {
                    WebDialogResult wdr = APVendorList.Ask(Messages.ContinueValidatingBalancesForMultipleVendors, MessageButtons.OKCancel);
                    processing          = wdr == WebDialogResult.OK;
                }
                return(processing);
            });
        }
Beispiel #13
0
        protected virtual void CreditHoldParameters_RowSelected(PXCache sender, PXRowSelectedEventArgs e)
        {
            CreditHoldParameters header = e.Row as CreditHoldParameters;

            if (header == null)
            {
                return;
            }

            Details.SetProcessDelegate(delegate(CustomerMaint graph, DetailsResult res)
            {
                Customer customer = graph.BAccount.Search <Customer.bAccountID>(res.CustomerId);
                if (customer != null)
                {
                    graph.BAccount.Current = customer;
                    Customer copy          = (Customer)graph.BAccount.Cache.CreateCopy(customer);
                    copy.Status            = header.Action == CreditHoldParameters.ActionApplyCreditHold
                                                ? BAccount.status.CreditHold
                                                : BAccount.status.Active;
                    graph.BAccount.Cache.Update(copy);
                    graph.Actions.PressSave();
                }
            });

            bool allowDatesFiltering = header.Action == CreditHoldParameters.ActionApplyCreditHold;

            PXUIFieldAttribute.SetEnabled <CreditHoldParameters.beginDate>(sender, header, allowDatesFiltering);
            PXUIFieldAttribute.SetEnabled <CreditHoldParameters.endDate>(sender, header, allowDatesFiltering);
        }
        //public RSSVAssignProcess()
        //{
        //    WorkOrders.SetProcessCaption("Assign");
        //    WorkOrders.SetProcessAllCaption("Assign All");

        //    WorkOrders.SetProcessDelegate<RSSVWorkOrderEntry>(
        //        delegate (RSSVWorkOrderEntry graph, RSSVWorkOrder order)
        //        {
        //            try
        //            {
        //                graph.Clear();
        //                graph.AssignOrder(order, true);
        //            }
        //            catch (Exception e)
        //            {
        //                PXProcessing<RSSVWorkOrder>.SetError(e);
        //            }
        //        });

        //    PXUIFieldAttribute.SetEnabled<RSSVWorkOrder.assignTo>(WorkOrders.Cache, null, true);
        //}

        public RSSVAssignProcess()
        {
            WorkOrders.SetProcessCaption("Assign");
            WorkOrders.SetProcessAllCaption("Assign All");
            WorkOrders.SetProcessDelegate(AssignOrders);

            PXUIFieldAttribute.SetEnabled <RSSVWorkOrder.assignTo>(WorkOrders.Cache, null, true);
        }
Beispiel #15
0
 protected virtual void BoundaryYears_RowSelected(PXCache sender, PXRowSelectedEventArgs e)
 {
     if (e.Row != null)
     {
         BoundaryYears filter = (BoundaryYears)e.Row;
         Books.SetProcessDelegate(list => GeneratePeriods(filter, list));
     }
 }
Beispiel #16
0
        protected virtual void RefreshFilter_RowSelected(PXCache sender, PXRowSelectedEventArgs e)
        {
            RefreshFilter filter = (RefreshFilter)e.Row;

            if (filter != null)
            {
                CurrencyRateList.SetProcessDelegate(list => RefreshRates(filter, list));
            }
        }
        public SOGetFBATrackingNumberProcess()
        {
            SOTrackingReportFilter currentFilter = this.Filter.Current;

            TrackingNumberOrdersList.SetProcessDelegate(
                delegate(List <SOProcessOrder> list)
            {
                GetTrackingNumber(list, currentFilter);
            });
        }
Beispiel #18
0
 public SOScheduleProcess()
 {
     prepareAndImport.SetProcessVisible(false);
     prepareAndImport.SetProcessAllCaption(SOConstants.btnPrepareAndImport);
     prepareAndImport.SetProcessDelegate(
         delegate(List <SOPrepareAndImport> list)
     {
         PrepareAndImportRecords(list);
     });
 }
Beispiel #19
0
        protected virtual void CreditHoldParameters_RowSelected(PXCache sender, PXRowSelectedEventArgs e)
        {
            CreditHoldParameters o = (CreditHoldParameters)e.Row;

            if (o != null)
            {
                CreditHoldParameters filter = (CreditHoldParameters)this.Filter.Cache.CreateCopy(o);
                switch (o.Action)
                {
                case 0:
                    Details.SetProcessDelegate <DLCustomerUpdate>(Proc0);
                    break;

                case 1:
                    Details.SetProcessDelegate <DLCustomerUpdate>(Proc1);
                    break;
                }
            }
        }
Beispiel #20
0
 public SOImportClearLog()
 {
     Log.SetProcessCaption(SOConstants.btnClearLog);
     Log.SetProcessAllCaption(SOConstants.btnClearAllLog);
     Log.SetProcessDelegate(
         delegate(List <SOOrderProcessLog> list)
     {
         ImportClearLogRecords(list);
     });
 }
Beispiel #21
0
        protected virtual void ReleaseChecksFilter_RowSelected(PXCache sender, PXRowSelectedEventArgs e)
        {
            PXUIFieldAttribute.SetVisible <ReleaseChecksFilter.curyID>(sender, null, (bool)CMSetup.Current.MCActivated);

            if (e.Row == null)
            {
                return;
            }

            PaymentMethod paymentType = PXSelect <PaymentMethod, Where <PaymentMethod.paymentMethodID, Equal <Current <ReleaseChecksFilter.payTypeID> > > > .Select(this);

            //PXUIFieldAttribute.SetVisible<APPayment.printCheck>(APPaymentList.Cache, null, (paymentType != null && (bool)paymentType.PrintChecks));
            //PXUIFieldAttribute.SetEnabled<APPayment.printCheck>(APPaymentList.Cache, null, (paymentType != null && (bool)paymentType.PrintChecks));
            var actions     = new List <string>();
            var actionNames = new List <string>();

            AddAvailableAction(this.Release, "R", actions, actionNames, e.Row);

            if (paymentType != null && paymentType.PrintOrExport == true)
            {
                AddAvailableAction(this.Reprint, "D", actions, actionNames, e.Row);
                AddAvailableAction(this.VoidReprint, "V", actions, actionNames, e.Row);
            }

            PXStringListAttribute.SetList <ReleaseChecksFilter.action>(Filter.Cache, null,
                                                                       actions.ToArray(),
                                                                       actionNames.ToArray());


            var row = e.Row as ReleaseChecksFilter;

            if (row == null)
            {
                return;
            }

            if (actions.Count > 0)
            {
                if (row.Action == null || !actions.Contains(row.Action))
                {
                    row.Action = actions[0];
                }
            }
            else
            {
                row.Action = null;
            }

            string action = row.Action;

            this.APPaymentList.SetProcessEnabled(action != null);
            this.APPaymentList.SetProcessAllEnabled(action != null);

            APPaymentList.SetProcessDelegate(list => ReleasePayments(list, action));
        }
Beispiel #22
0
        public virtual void ClaimRUTROTFilter_RowSelected(PXCache sender, PXRowSelectedEventArgs e)
        {
            var filter = (ClaimRUTROTFilter)e.Row;

            if (filter != null && !String.IsNullOrEmpty(filter.Action))
            {
                if (filter.Action == ClaimActions.Export)
                {
                    PXUIFieldAttribute.SetVisible(Documents.Cache, "RUTROTClaimDate", true);
                    PXUIFieldAttribute.SetVisible(Documents.Cache, "RUTROTExportRefNbr", true);
                    Documents.SetProcessDelegate(ExportDocs);
                }
                else if (filter.Action == ClaimActions.Claim)
                {
                    PXUIFieldAttribute.SetVisible(Documents.Cache, "RUTROTClaimDate", false);
                    PXUIFieldAttribute.SetVisible(Documents.Cache, "RUTROTExportRefNbr", false);
                    Documents.SetProcessDelegate(ClaimDocs);
                }
            }
        }
Beispiel #23
0
        public AFDataProcess()
        {
            Orders.SetProcessEnabled(false);
            Orders.SetProcessVisible(false);

            Orders.SetProcessDelegate(
                delegate(List <SOOrder> list)
            {
                SendData(list);
            });
        }
Beispiel #24
0
        protected virtual void ARIntegrityCheckFilter_RowSelected(PXCache sender, PXRowSelectedEventArgs e)
        {
            ARIntegrityCheckFilter filter = Filter.Current;

            ARCustomerList.SetProcessDelegate <ARReleaseProcess>(
                delegate(ARReleaseProcess re, Customer cust)
            {
                re.Clear(PXClearOption.PreserveTimeStamp);
                re.IntegrityCheckProc(cust, filter.FinPeriodID);
            }
                );
        }
Beispiel #25
0
        protected virtual void APIntegrityCheckFilter_RowSelected(PXCache sender, PXRowSelectedEventArgs e)
        {
            APIntegrityCheckFilter filter = Filter.Current;

            APVendorList.SetProcessDelegate <APReleaseProcess>(
                delegate(APReleaseProcess re, Vendor vend)
            {
                re.Clear(PXClearOption.PreserveTimeStamp);
                re.IntegrityCheckProc(vend, filter.FinPeriodID);
            }
                );
        }
        public SOSubmitFeedProcess()
        {
            SubmitFeedList.SetProcessCaption(SOConstants.btnSubmitFeed);
            SubmitFeedList.SetProcessAllCaption(SOConstants.btnSubmitFeedALL);
            SubmitFeedFilter currentFilter = this.Filter.Current;

            SubmitFeedList.SetProcessDelegate(
                delegate(List <ProjectionShipmentDAC> list)
            {
                SubmitRecords(list, currentFilter);
            });
        }
        protected virtual void PMValidationFilter_RowSelected(PXCache cache, PXRowSelectedEventArgs e)
        {
            PMValidationFilter filter = Filter.Current;

            Items.SetProcessDelegate <ProjectBalanceValidationProcess>(
                delegate(ProjectBalanceValidationProcess graph, PMProject item)
            {
                graph.Clear();
                graph.RunProjectBalanceVerification(item, filter);
                graph.Actions.PressSave();
            });
        }
        public SOImportProcess()
        {
            ImportOrderList.SetProcessCaption(SOConstants.btnImport);
            ImportOrderList.SetProcessAllCaption(SOConstants.btnImportAll);
            SOImportFilter currentFilter = this.Filter.Current;

            ImportOrderList.SetProcessDelegate(
                delegate(List <SOProcessOrder> list)
            {
                ImportRecords(list, currentFilter);
            });
        }
        protected virtual void GLIntegrityCheckFilter_RowSelected(PXCache sender, PXRowSelectedEventArgs e)
        {
            GLIntegrityCheckFilter filter = Filter.Current;

            bool errorsOnForm = PXUIFieldAttribute.GetErrors(sender, null).Count > 0;

            LedgerList.SetProcessEnabled(!errorsOnForm);
            LedgerList.SetProcessAllEnabled(!errorsOnForm);

            LedgerList.SetProcessDelegate(
                (PostGraph postGraph, Ledger ledger) => Validate(postGraph, ledger, filter));
        }
        protected virtual void ReleaseChecksFilter_RowSelected(PXCache sender, PXRowSelectedEventArgs e)
        {
            PXUIFieldAttribute.SetVisible <ReleaseChecksFilter.curyID>(sender, null, PXAccess.FeatureInstalled <FeaturesSet.multicurrency>());

            ReleaseChecksFilter filter = e.Row as ReleaseChecksFilter;

            if (filter == null)
            {
                return;
            }

            PaymentMethod paymentMethod = PXSelect <PaymentMethod,
                                                    Where <PaymentMethod.paymentMethodID, Equal <Required <ReleaseChecksFilter.payTypeID> > > > .Select(this, filter.PayTypeID);

            Reprint.SetEnabled(paymentMethod != null && paymentMethod.PrintOrExport == true);
            VoidReprint.SetEnabled(paymentMethod != null && paymentMethod.PrintOrExport == true);

            List <Tuple <string, string> > availableActions = new List <Tuple <string, PXAction> >
            {
                new Tuple <string, PXAction>(ReleaseChecksFilter.action.ReleaseChecks, Release),
                new Tuple <string, PXAction>(ReleaseChecksFilter.action.ReprintChecks, Reprint),
                new Tuple <string, PXAction>(ReleaseChecksFilter.action.VoidAndReprintChecks, VoidReprint)
            }
            .Select(t => new { ShortCut = t.Item1, State = t.Item2.GetState(filter) as PXButtonState })
            .Where(t => t.State?.Enabled == true)
            .Select(t => new Tuple <string, string>(t.ShortCut, t.State.DisplayName)).ToList();

            string[] actions = availableActions.Select(t => t.Item1).ToArray();
            PXStringListAttribute.SetLocalizable <ReleaseChecksFilter.action>(Filter.Cache, null, false);
            PXStringListAttribute.SetList <ReleaseChecksFilter.action>(Filter.Cache, null, actions, availableActions.Select(t => t.Item2).ToArray());
            PXUIFieldAttribute.SetEnabled <ReleaseChecksFilter.action>(Filter.Cache, filter, availableActions.Count > 1);

            if (availableActions.Count > 0)
            {
                if (filter.Action == null || !actions.Contains(filter.Action))
                {
                    filter.Action = actions[0];
                }
            }
            else
            {
                filter.Action = null;
            }

            string action = filter.Action;

            APPaymentList.SetProcessEnabled(action != null);
            APPaymentList.SetProcessAllEnabled(action != null);

            APPaymentList.SetProcessDelegate(list => ReleasePayments(list, action));
        }