//Обработчик нажатия на кнопку получения наличных protected void bGet_Clicked(object sender, EventArgs e) { //Требуемая сумма int sumReq = tbGetCash.getIntValNNITB(); if (sumReq > 0) //Требуемая сумма не нулевая { if (rbLargeBills.Checked == true) //Выбрано крупными купюрами { bool success; //сумма получена (выдана банкоматом) //Получение наличных средств крупными купюрами success = GetContribManager.GetLargeCash(sumReq, FormATM._BillsChangedCallback); //Если по какой-либо причине деньги не получены if (success == false) { return; } } else//Выбрано купюрами c разменом { GetCashExchangeForm gcEForm = new GetCashExchangeForm(); gcEForm.ShowDialog(this); gcEForm.Dispose(); } this.Hide(); } }
//Обработчик нажатия на кнопку получения наличных protected void bGet_Clicked(object sender, EventArgs e) { //Количество купюр выдаваемых банкоматом int numBills5000; int numBills1000; int numBills500; int numBills100; int numBills50; int numBills10; //Количество купюр в банкомате до получения наличных int billsBeforeGet10 = MyForm.appInstance.getStateOfATM()[d10].amount; int billsBeforeGet50 = MyForm.appInstance.getStateOfATM()[d50].amount; int billsBeforeGet100 = MyForm.appInstance.getStateOfATM()[d100].amount; int billsBeforeGet500 = MyForm.appInstance.getStateOfATM()[d500].amount; int billsBeforeGet1000 = MyForm.appInstance.getStateOfATM()[d1000].amount; int billsBeforeGet5000 = MyForm.appInstance.getStateOfATM()[d5000].amount; //Требуемая сумма int sumReq = getIntValMTB(tbGetCash); //Вычисление количества купюр для выдачи требуемой суммы if (sumReq > 0) //Требуемая сумма не нулевая { if (rbLargeBills.Checked == true) //Выбрано крупными купюрами { numBills5000 = sumReq / 5000; //Количество 5000 купюр, требуемых для запрашиваемой суммы if (billsBeforeGet5000 < numBills5000) //Если в банкомате нет столько 5000 купюр { numBills5000 = billsBeforeGet5000; //Забираем все из банкомата } int remains = sumReq - (5000 * numBills5000); //Остаток запрашиваемой суммы после исключения суммы обеспечиваемой 5000 купюрами numBills1000 = remains / 1000; //Количество 1000 купюр, требуемых для остатка запрашиваемой суммы if (billsBeforeGet1000 < numBills1000) //Если в банкомате нет столько 1000 купюр { numBills1000 = billsBeforeGet1000; //Забираем все из банкомата } remains -= 1000 * numBills1000; //Остаток запрашиваемой суммы после исключения суммы обеспечиваемой 1000 купюрами numBills500 = remains / 500; //Количество 500 купюр, требуемых для остатка запрашиваемой суммы if (billsBeforeGet500 < numBills500) //Если в банкомате нет столько 500 купюр { numBills500 = billsBeforeGet500; //Забираем все из банкомата } remains -= 500 * numBills500; //Остаток запрашиваемой суммы после исключения суммы обеспечиваемой 500 купюрами numBills100 = remains / 100; //Количество 100 купюр, требуемых для остатка запрашиваемой суммы if (billsBeforeGet100 < numBills100) //Если в банкомате нет столько 100 купюр { numBills100 = billsBeforeGet100; //Забираем все из банкомата } remains -= 100 * numBills100; //Остаток запрашиваемой суммы после исключения суммы обеспечиваемой 100 купюрами numBills50 = remains / 50; //Количество 50 купюр, требуемых для остатка запрашиваемой суммы if (billsBeforeGet50 < numBills50) //Если в банкомате нет столько 50 купюр { numBills50 = billsBeforeGet50; //Забираем все из банкомата } remains -= 50 * numBills50; //Остаток запрашиваемой суммы после исключения суммы обеспечиваемой 50 купюрами numBills10 = remains / 10; //Количество 10 купюр, требуемых для остатка запрашиваемой суммы if (billsBeforeGet10 < numBills10) //Если в банкомате нет столько 10 купюр { MessageBox.Show("В банкомате отсутствует требуемая сумма либо купюры требуемого достоинства.\nВведите другое значение", "Получение наличных средств"); return; } remains -= 10 * numBills10; //Остаток запрашиваемой суммы после исключения суммы обеспечиваемой 10 купюрами if (remains > 0) //Сумма не кратна 10 { MessageBox.Show("Отсутствуют купюры достоинством меньше 10 руб.\nВведите значение кратное 10", "Получение наличных средств"); return; } //Изъятие 10 рублевых купюр из банкомата MyForm.appInstance.setBillsInATM(d10, billsBeforeGet10 - numBills10); //Изъятие 50 рублевых купюр из банкомата MyForm.appInstance.setBillsInATM(d50, billsBeforeGet50 - numBills50); //Изъятие 100 рублевых купюр из банкомата MyForm.appInstance.setBillsInATM(d100, billsBeforeGet100 - numBills100); //Изъятие 500 рублевых купюр из банкомата MyForm.appInstance.setBillsInATM(d500, billsBeforeGet500 - numBills500); //Изъятие 1000 рублевых купюр из банкомата MyForm.appInstance.setBillsInATM(d1000, billsBeforeGet1000 - numBills1000); //Изъятие 5000 рублевых купюр из банкомата MyForm.appInstance.setBillsInATM(d5000, billsBeforeGet5000 - numBills5000); //Строковые вставки в сообщение клиенту о количестве и номинале получаемых купюр string strNumGet10Rub = (numBills10 > 0)?("\n" + numBills10.ToString() + " - 10 рублевых купюр"):""; string strNumGet50Rub = (numBills50 > 0)?("\n" + numBills50.ToString() + " - 50 рублевых купюр"):""; string strNumGet100Rub = (numBills100 > 0)?("\n" + numBills100.ToString() + " - 100 рублевых купюр"):""; string strNumGet500Rub = (numBills500 > 0)?("\n" + numBills500.ToString() + " - 500 рублевых купюр"):""; string strNumGet1000Rub = (numBills1000 > 0)?("\n" + numBills1000.ToString() + " - 1000 рублевых купюр"):""; string strNumGet5000Rub = (numBills5000 > 0)?("\n" + numBills5000.ToString() + " - 5000 рублевых купюр"):""; MessageBox.Show("Получите " + (numBills10 * 10 + numBills50 * 50 + numBills100 * 100 + numBills500 * 500 + numBills1000 * 1000 + numBills5000 * 5000).ToString() + " руб.:" + strNumGet10Rub + strNumGet50Rub + strNumGet100Rub + strNumGet500Rub + strNumGet1000Rub + strNumGet5000Rub, "Получение наличных средств крупными купюрами"); } else //Выбрано купюрами c разменом { GetCashExchangeForm gcEForm = new GetCashExchangeForm(); gcEForm.ShowDialog(this); gcEForm.Dispose(); } this.Hide(); } }