Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }