public override State handleRight1BTNClick() { double withdrawAmt; Account withdrawFromAcct; double maxAmountAllowed = 1000; double minAmountAllowed = 20; double validateAmt; State nextStep = this; if (session) { withdrawAmt = Convert.ToDouble(amountEnteredTxt); withdrawFromAcct = theCard.getAcctUsingAcctNo(acctNo); validateAmt = withdrawAmt % 10; //check amountEnteredTxt for valid amount and decimal value if (validateAmt == 0 && amountEnteredTxt.EndsWith("0")) { //check for min max amount allowed if (withdrawAmt <= maxAmountAllowed && withdrawAmt >= minAmountAllowed) { //check for valid balance before withdraw if (withdrawFromAcct.getBalance() - withdrawAmt < 0) { if (language.ToUpper().Equals("CHINESE")) //Require change { bigDisplayLBL.Text = "不足的余额退出\n请重新输入金额退出"; } else if (language.ToUpper().Equals("MALAY")) //Require change { bigDisplayLBL.Text = "Baki tidak mencukupi untuk menarik diri\nSila masukkan semula jumlah untuk menarik balik"; } else { bigDisplayLBL.Text = "Insufficent balance to withdraw\nPlease re-enter amount to withdraw"; } pauseforMilliseconds(3000); resetDisplay(); //return nextStep; } else { //check for account limit balance double afterwithrawal = withdrawFromAcct.getWithdrawalLimit() - withdrawAmt; if (afterwithrawal < maxAccountLimit && afterwithrawal >= 0) { withdrawFromAcct.deductToWithdrawalLimit(withdrawAmt); withdrawFromAcct.withdraw(withdrawAmt); nextStep = new TakeCashState(mainForm, language, acctNo); } else if (withdrawFromAcct.getWithdrawalLimit() == 0) //Max limit reached { if (language.ToUpper().Equals("CHINESE")) //require change { bigDisplayLBL.Text = "达到最大取款限额,无法撤回"; } else if (language.ToUpper().Equals("MALAY")) //require chanage { bigDisplayLBL.Text = "Had pengeluaran maksimum dicapai, tidak dapat dikeluarkan"; } else { bigDisplayLBL.Text = "Maximum withdrawal limit reached, unable to withdraw"; } pauseforMilliseconds(3000); resetDisplay(); } else if (afterwithrawal < maxAccountLimit && afterwithrawal <= 0) //Exceed limit { if (language.ToUpper().Equals("CHINESE")) //require change { bigDisplayLBL.Text = "超出提款限额,无法提款\n今天剩余的帐户限额: $" + string.Format("{0:0.00}", withdrawFromAcct.getWithdrawalLimit()); } else if (language.ToUpper().Equals("MALAY")) //require change { bigDisplayLBL.Text = "Had pengeluaran melebihi, tidak dapat dikeluarkan\nHad akaun yang ditinggalkan untuk hari ini: $" + string.Format("{0:0.00}", withdrawFromAcct.getWithdrawalLimit()); } else { bigDisplayLBL.Text = "Withdrawal limit exceeded, unable to withdraw\nAccount limit left for today: $" + string.Format("{0:0.00}", withdrawFromAcct.getWithdrawalLimit()); } pauseforMilliseconds(3000); resetDisplay(); } } } else { if (language.ToUpper().Equals("CHINESE")) //require change { bigDisplayLBL.Text = "最低金额 $20 被允许\n最高金额 $1000 被允许"; } else if (language.ToUpper().Equals("MALAY")) //require change { bigDisplayLBL.Text = "Jumlah minimum $20 dibenarkan\nJumlah maksimum $1000 dibenarkan"; } else { bigDisplayLBL.Text = "Minimum amount of $20 is allowed\nMaximum amount of $1000 is allowed"; } pauseforMilliseconds(4000); resetDisplay(); } } else { //bigDisplayLBL.Text = "Unable to withdraw $" + String.Format("{0:0.00}", Convert.ToDouble(amountEnteredTxt)) + ", minimum is $20"; if (language.ToUpper().Equals("CHINESE")) { bigDisplayLBL.Text = "无法退出 $" + String.Format("{0:0.00}", Convert.ToDouble(amountEnteredTxt)) + ", 最小的是 $20"; } else if (language.ToUpper().Equals("MALAY")) { bigDisplayLBL.Text = "Tidak dapat mengeluarkan $" + String.Format("{0:0.00}", Convert.ToDouble(amountEnteredTxt)) + ", minimum adalah $20"; } else { bigDisplayLBL.Text = "Unable to withdraw $" + String.Format("{0:0.00}", Convert.ToDouble(amountEnteredTxt)) + ", minimum is $20"; } pauseforMilliseconds(3000); resetDisplay(); } } else { theCardReader.ejectCard(); } return(nextStep); }
public override State handleLeft4BTNClick() { double withdrawAmt; Account withdrawFromAcct; State nextStep = this; if (session) { withdrawAmt = 200; withdrawFromAcct = theCard.getAcctUsingAcctNo(acctNo); if (language.Equals("MALAY")) { if (withdrawFromAcct.getBalance() - withdrawAmt < 0) { bigDisplayLBL.Text = "Jumlah baki tidak mencukupi\n Sila tekan semula jumlah wang untuk dikeluarkan"; } else { //check for account limit balance double afterwithrawal = withdrawFromAcct.getWithdrawalLimit() - withdrawAmt; if (afterwithrawal < maxAccountLimit && afterwithrawal >= 0) { withdrawFromAcct.deductToWithdrawalLimit(withdrawAmt); withdrawFromAcct.withdraw(withdrawAmt); nextStep = new TakeCashState(mainForm, language, acctNo); } else if (withdrawFromAcct.getWithdrawalLimit() == 0) //Max limit reached { bigDisplayLBL.Text = "Maximum withdrawal limit reached, unable to withdraw"; pauseforMilliseconds(3000); resetDisplay(); } else if (afterwithrawal < maxAccountLimit && afterwithrawal <= 0) //Exceed limit Language Change { bigDisplayLBL.Text = "Had pengeluaran melebihi, tidak dapat dikeluarkan\nHad akaun yang ditinggalkan untuk hari ini: $" + withdrawFromAcct.getWithdrawalLimit(); pauseforMilliseconds(3000); resetDisplay(); } } } else if (language.Equals("CHINESE")) { if (withdrawFromAcct.getBalance() - withdrawAmt < 0) { bigDisplayLBL.Text = "余额不足以提取资金\n 请重新输入金额退出"; } else { //check for account limit balance double afterwithrawal = withdrawFromAcct.getWithdrawalLimit() - withdrawAmt; if (afterwithrawal < maxAccountLimit && afterwithrawal >= 0) { withdrawFromAcct.deductToWithdrawalLimit(withdrawAmt); withdrawFromAcct.withdraw(withdrawAmt); nextStep = new TakeCashState(mainForm, language, acctNo); } else if (withdrawFromAcct.getWithdrawalLimit() == 0) //Max limit reached { bigDisplayLBL.Text = "Maximum withdrawal limit reached, unable to withdraw"; pauseforMilliseconds(3000); resetDisplay(); } else if (afterwithrawal < maxAccountLimit && afterwithrawal <= 0) //Exceed limit Language Change { bigDisplayLBL.Text = "超出提款限额,无法提款\n今天剩余的帐户限额: $" + withdrawFromAcct.getWithdrawalLimit(); pauseforMilliseconds(3000); resetDisplay(); } } } else //ENGLISH { if (withdrawFromAcct.getBalance() - withdrawAmt < 0) { bigDisplayLBL.Text = "Insufficent balance to withdraw\n Please re-enter amount to withdraw"; } else { //check for account limit balance double afterwithrawal = withdrawFromAcct.getWithdrawalLimit() - withdrawAmt; if (afterwithrawal < maxAccountLimit && afterwithrawal >= 0) { withdrawFromAcct.deductToWithdrawalLimit(withdrawAmt); withdrawFromAcct.withdraw(withdrawAmt); nextStep = new TakeCashState(mainForm, language, acctNo); } else if (withdrawFromAcct.getWithdrawalLimit() == 0) //Max limit reached { bigDisplayLBL.Text = "Maximum withdrawal limit reached, unable to withdraw"; pauseforMilliseconds(3000); resetDisplay(); } else if (afterwithrawal < maxAccountLimit && afterwithrawal <= 0) //Exceed limit { bigDisplayLBL.Text = "Withdrawal limit exceeded, unable to withdraw\nAccount limit left for today: $" + withdrawFromAcct.getWithdrawalLimit(); pauseforMilliseconds(3000); resetDisplay(); } } } } else { theCardReader.ejectCard(); } return(nextStep); }