private void ValidateCuryID(PXCache sender, CashForecastTran row, string CuryID)
        {
            CashAccount acct = PXSelect <CashAccount, Where <CashAccount.cashAccountID, Equal <Required <CashAccount.cashAccountID> > > > .Select(this, filter.Current.CashAccountID);

            if (acct.CuryID != CuryID)
            {
                cashForecastTrans.Cache.RaiseExceptionHandling <CashForecastTran.curyID>(row, CuryID,
                                                                                         new PXRowPersistingException(typeof(CashForecastTran.curyID).Name, CuryID, Messages.TranCuryNotMatchAcctCury));
            }
        }
        protected virtual void CashForecastTran_CashAccountID_FieldUpdated(PXCache sender, PXFieldUpdatedEventArgs e)
        {
            CashForecastTran row = (CashForecastTran)e.Row;

            sender.SetDefaultExt <CashForecastTran.curyID>(e.Row);
        }
        protected virtual void CashForecastTran_CuryID_FieldVerifying(PXCache sender, PXFieldVerifyingEventArgs e)
        {
            CashForecastTran row = (CashForecastTran)e.Row;

            ValidateCuryID(sender, row, (string)e.NewValue);
        }