Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class Pembelian extends Transaction
- {
- private int amount;
- private int pilihan_item;
- private Keypad keypad;
- private ItemDispenser itemDispenser;
- public Pembelian( int userCardNumber, Screen VMScreen,
- BankDatabase VMBankDatabase, Keypad VMKeypad,
- ItemDispenser VMItemDispenser, int pilihan )
- {
- super( userCardNumber, VMScreen, VMBankDatabase );
- keypad = VMKeypad;
- itemDispenser = VMItemDispenser;
- pilihan_item = pilihan - 1;
- }
- @Override
- public void execute()
- {
- boolean itemDispensed = false;
- double availableBalance;
- BankDatabase bankDatabase = getBankDatabase();
- Screen screen = getScreen();
- do
- {
- amount = displayMenuOfAmounts();
- availableBalance =
- bankDatabase.getAvailableBalance( getCardNumber() );
- if ( amount <= availableBalance )
- {
- if ( itemDispenser.isStockAvailable( pilihan_item ) )
- {
- bankDatabase.debit( getCardNumber(), amount );
- itemDispenser.dispenseItem( pilihan_item );
- itemDispensed = true;
- screen.displayMessageLine( "\nBarang anda telah dikeluarkan." +
- "Silahkan ambil barang anda sekarang." );
- screen.displayMessage( "\nSaldo anda : ");
- availableBalance =
- bankDatabase.getAvailableBalance( getCardNumber() );
- screen.displayRupiahAmount( availableBalance );
- }
- else
- {
- screen.displayMessageLine( "\nMohon maaf stok barang yang anda pilih telah habis."
- + "\n\n Silahkan pilih barang yang lain" );
- }
- }
- else
- {
- screen.displayMessageLine("\n Mohon maaf saldo anda tidak mencukupi. ");
- screen.displayMessage("\n Saldo anda : ");
- screen.displayRupiahAmount( availableBalance );
- }
- return;
- } while ( !itemDispensed );
- }
- private int displayMenuOfAmounts()
- {
- int HargaItem = 0;
- int[] amounts = { 2500, 4000, 6000 };
- switch ( pilihan_item )
- {
- case 0:
- case 1:
- case 2:
- HargaItem = amounts[ pilihan_item ];
- break;
- }
- return HargaItem;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment