예제 #1
0
    private String biljetSelection(int amount)
    {
        String       choice     = "00,00,00,*";
        String       option1    = "invalid";
        String       option2    = "invalid";
        String       option3    = "invalid";
        String       option4    = "invalid";
        Boolean      validInput = false;
        int          selection  = 0;
        int          tens       = 0;
        int          twenties   = 0;
        int          fifties    = 0;
        BiljetScreen selector   = new BiljetScreen();

        tens = amount / 10;
        if (stock.checkIfAvailable(tens, twenties, fifties))
        {
            selector.setLabel1(tens.ToString());
            if (tens > 9)
            {
                option1 = tens.ToString() + ",00,00,*";
            }
            else
            {
                option1 = "0" + tens.ToString() + ",00,00,*";
            }
        }
        if (amount % 20 == 0)
        {
            twenties = (amount / 20);
            tens     = 0;
            fifties  = 0;
            option2  = generateCommand(tens, twenties, fifties);
        }
        else
        {
            twenties = (amount - (amount % 20)) / 20;
            tens     = 1;
            fifties  = 0;
            option2  = generateCommand(tens, twenties, fifties);
        }
        if (!(option2.Equals("invalid")))
        {
            selector.setLabel2(tens.ToString(), twenties.ToString());
        }
        if (amount >= 50 && amount % 50 == 0)
        {
            tens     = 0;
            twenties = 0;
            fifties  = amount / 50;
            option3  = generateCommand(tens, twenties, fifties);
            if (!(option3.Equals("invalid")))
            {
                selector.setLabel3(tens.ToString(), fifties.ToString());
            }
        }
        else if (amount >= 60)
        {
            tens     = (amount % 50) / 10;
            twenties = 0;
            fifties  = (amount - (amount % 50)) / 50;
            option3  = generateCommand(tens, twenties, fifties);
            if (!(option3.Equals("invalid")))
            {
                selector.setLabel3(tens.ToString(), fifties.ToString());
            }
            if (((amount % 50) % 20) == 0)
            {
                twenties = ((amount % 50) % 20) / 20;
                tens     = 0;
            }
            else if (amount % 50 == 30)
            {
                twenties = 1;
                tens     = 1;
            }
            option4 = generateCommand(tens, twenties, fifties);
            if (!(option4.Equals("invalid")))
            {
                selector.setLabel4(tens.ToString(), twenties.ToString(), fifties.ToString());
            }
        }
        selector.Show();
        if (option1.Equals("invalid") && option2.Equals("invalid") && option3.Equals("invalid") && option4.Equals("invalid"))
        {
            selector.showInsufficient();
        }
        else
        {
            //Error.show(option1 + " " + option2 + " " + option3 + "" + option4);
            while (validInput == false)
            {
                selection = arduino.getChoice();
                if (selection == 1 && !(option1.Equals("invalid")))
                {
                    validInput = true;
                }
                else if (selection == 2 && !(option2.Equals("invalid")))
                {
                    validInput = true;
                }
                else if (selection == 3 && !(option3.Equals("invalid")))
                {
                    validInput = true;
                }
                else if (selection == 5 && !(option4.Equals("invalid")))
                {
                    validInput = true;
                }
                else if (selection == 4)
                {
                    cancelled = true;
                    break;
                }
            }
            switch (selection)
            {
            case 1:
                choice = option1;
                break;

            case 2:
                choice = option2;
                break;

            case 3:
                choice = option3;
                break;

            case 5:
                choice = option4;
                break;
            }
        }
        selector.Hide();
        //Error.show(choice);
        return(choice);
    }
예제 #2
0
    private void pin()
    {
        Boolean printTicket = false;
        Boolean goBack      = true;
        int     amount      = 0;
        String  input;
        String  dispenserCommand = "00,00,00,*";

        cancelled = false;

        while (goBack == true)
        {
            pinsherm.Show();
            while (true)
            {
                input = arduino.getString();
                if (input.Contains("1"))
                {
                    amount = 10;
                    break;
                }
                else if (input.Contains("2"))
                {
                    amount = 20;
                    break;
                }
                else if (input.Contains("3"))
                {
                    amount = 50;
                    break;
                }
                else if (input.Contains("4"))
                {
                    amount = getAlternativeAmount();
                    break;
                }
                else if (input.Contains("#"))
                {
                    cancelled = true;
                    break;
                }
                else if (input.Contains("C"))
                {
                    cancelled    = true;
                    endOfSession = false;
                    break;
                }
            }
            pinsherm.Hide();
            if ((amount > saldo && amount != 0) || amount >= 200)
            {
                PinError pinError = new PinError();
                cancelled = true;
            }
            if (cancelled == true)
            {
                break;
            }
            if (amount == 10 && stock.checkIfAvailable(1, 0, 0) == true)
            {
                dispenserCommand = "01,00,00,*";
            }
            else if (amount == 10)
            {
                BiljetScreen selector = new BiljetScreen();
                selector.showInsufficient();
                cancelled = true;
            }
            if (amount > 10)
            {
                dispenserCommand = biljetSelection(amount);
                if (dispenserCommand.Equals("00,00,00,*"))
                {
                    cancelled = true;
                    break;
                }
            }
            if (cancelled == true)
            {
                break;
            }
            uploadConnection.UpdateBalans(rekeningID, (saldo - amount * 100));
            uploadConnection.transaction(pasID, rekeningID, amount);
            asker.Show();
            while (true)
            {
                input = arduino.getString();
                if (input.Contains("*"))
                {
                    printTicket = true;
                    goBack      = false;
                    break;
                }
                else if (input.Contains("#"))
                {
                    goBack = false;
                    break;
                }
                else if (input.Contains("A"))
                {
                    Email mailer = new Email(userName, amount, rekeningID, klantID);
                    mailer.sendEmail();
                    goBack = false;
                    break;
                }
            }
            asker.Hide();
            stock.substractBiljets(dispenserCommand);
            arduino.dispenseMoney(dispenserCommand);
            if (printTicket == true)
            {
                Printer bonPrinter = new Printer(userName, amount, rekeningID);
                bonPrinter.printTicket();
            }
            if (goBack == false)
            {
                ByeScreen goAway = new ByeScreen();
            }
        }
    }