// press ENTER in state custom widthdraw private void pressEnterCustomWidthdraw() { bool check = stockBUL.updateQuantity(Convert.ToInt32(CustomWidthdraw.Instance.getTextBoxCustom())); if (check) { if (!panelMain.Controls.Contains(Success.Instance)) { panelMain.Controls.Add(Success.Instance); Success.Instance.Dock = DockStyle.Fill; Success.Instance.BringToFront(); } else { Success.Instance.BringToFront(); } state = "success"; createLog("logtype01", Convert.ToInt32(CustomWidthdraw.Instance.getTextBoxCustom()), "", lbCardNo.Text, "atm01", "Thành công"); accountBUL.updateBalance(Convert.ToInt32(CustomWidthdraw.Instance.getTextBoxCustom()), lbCardNo.Text); } else { if (!panelMain.Controls.Contains(Fail.Instance)) { panelMain.Controls.Add(Fail.Instance); Fail.Instance.Dock = DockStyle.Fill; Fail.Instance.BringToFront(); } else { Fail.Instance.BringToFront(); } state = "fail"; } }
// Function Withdraw private void withdraw(int money) { string cardNo = getTextBoxCardNo(); bool checkMaxWithDraw = configBUL.getMaxWithDraw(money); //trong bảng Config bool checkBalanceAndOD = accountBUL.checkBalanceAndOverDraft(cardNo, money); // trong bảng OverDraft bool checkWithdrawLimit = withdrawLimitBUL.checkWithdrawLimit("LT001", "ATM001", cardNo, money); // trong bảng Withdraw Limit if (!checkMaxWithDraw) // Vượt quá số tiền hệ thống / 1 lần rút { Task delay = Task.Delay(5000); addUserControl(OverMaximumWithDraw.Instance); delay.Wait(); addUserControl(Withdraw.Instance); CustomWithDraw.Instance.clearTextBoxCustomWithDraw(); } else if (!checkBalanceAndOD) // K đủ số dư và thấu chi { Task delay = Task.Delay(4000); addUserControl(OverMinimumBalance.Instance); OverMinimumBalance.Instance.setTextBoxBalance(accountBUL.getBalance(getTextBoxCardNo())); delay.Wait(); addUserControl(Withdraw.Instance); CustomWithDraw.Instance.clearTextBoxCustomWithDraw(); } else if (!checkWithdrawLimit) // Vượt quá số tiền rút trong ngày { Task delay = Task.Delay(4000); addUserControl(WithdrawLimit.Instance); delay.Wait(); addUserControl(Withdraw.Instance); CustomWithDraw.Instance.clearTextBoxCustomWithDraw(); } else { string updateStock = stockBUL.updateQuantity(money); if (updateStock.Equals("ErrorMoneyType")) // sai kiểu tiền và bội số { Task delay = Task.Delay(3000); addUserControl(ErrorMoneyType.Instance); delay.Wait(); addUserControl(CustomWithDraw.Instance); CustomWithDraw.Instance.clearTextBoxCustomWithDraw(); state = "CustomWithdraw"; return; } else if (updateStock.Equals("ErrorSystem")) // Lỗi hệ thống (Hết tiền) { Task delay = Task.Delay(4000); addUserControl(ErrorSystem.Instance); delay.Wait(); addUserControl(Withdraw.Instance); CustomWithDraw.Instance.clearTextBoxCustomWithDraw(); } else // Thành công { bool updateBalance = accountBUL.updateBalance(money, cardNo); if (updateBalance) { addUserControl(SuccessWithDraw.Instance); SuccessWithDraw.Instance.setTextBoxBalance(accountBUL.getBalance(getTextBoxCardNo())); state = "SuccessWithdraw"; createLog("LT001", "ATM001", cardNo, money, "Rút tiền hành công", ""); moneyForReceipt = money; return; } CustomWithDraw.Instance.clearTextBoxCustomWithDraw(); } } state = "Withdraw"; }