protected virtual void ARDunningLetter_RowSelected(PXCache sender, PXRowSelectedEventArgs e)
        {
            ARDunningLetter row      = (ARDunningLetter)e.Row;
            bool            released = row.Released == true;
            bool            voided   = row.Voided == true;

            sender.AllowDelete  = !released;
            Details.AllowDelete = !released;
            VoidLetter.SetEnabled(released && !voided);
            PrintLetter.SetEnabled(released && !voided);
            Revoke.SetEnabled(!released);
            Release.SetEnabled(!released);
        }
        public ARDunningLetterMaint()
        {
            Details.AllowUpdate         = false;
            Details.AllowInsert         = false;
            CurrentCustomer.AllowUpdate = false;
            foreach (ARDunningLetterDetail detail in Details.Select())
            {
                ARDunningLetterProcess.ARInvoiceWithDL invoice = PXSelect <ARDunningLetterProcess.ARInvoiceWithDL, Where <ARDunningLetterProcess.ARInvoiceWithDL.refNbr, Equal <Required <ARInvoice.refNbr> >, And <ARDunningLetterProcess.ARInvoiceWithDL.docType, Equal <Required <ARInvoice.docType> > > > > .Select(this, detail.RefNbr, detail.DocType);

                if (invoice != null && invoice.DunningLetterLevel > detail.DunningLetterLevel)
                {
                    VoidLetter.SetEnabled(false);
                    break;
                }
            }
        }