Exemplo n.º 1
0
    //Обработчик нажатия на кнопку получения наличных
    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();
        }
    }
Exemplo n.º 2
0
    //Обработчик нажатия на кнопку получения наличных
    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();
        }
    }