Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. public class Minuman extends Transaction
  2. {
  3.     private int amount;
  4.     private Keypad keypad;
  5.     private CekStok CekStok;
  6.     int input;
  7.    
  8.     private final static int CANCELED = 8;
  9.    
  10.     public Minuman(int userAccountNumber, Screen usrScreen, Database_EMoney_Mandiri atmBankDatabase, Keypad usrKeypad, CekStok stokminuman){
  11.         super(userAccountNumber, usrScreen, atmBankDatabase);
  12.        
  13.         keypad = usrKeypad;
  14.         CekStok = stokminuman;
  15.     }
  16.    
  17.     @Override
  18.     public void execute()
  19.     {
  20.         boolean minumanKeluar = false;
  21.         double saldo;
  22.        
  23.         Database_EMoney_Mandiri bankDatabase = getBankDatabase();
  24.         Screen screen = getScreen();
  25.        
  26.         do{
  27.             amount = displayMenuOfAmounts();
  28.            
  29.             if(amount != CANCELED){
  30.                 saldo = Database_EMoney_Mandiri.getSaldo(getAccountNumber());
  31.                
  32.                 if(amount <= saldo){
  33.                     if(CekStok.stokCukup(input)){
  34.                        
  35.                         Database_EMoney_Mandiri.beli(getAccountNumber(), amount);
  36.                        
  37.                         CekStok.keluarkanMinuman(input);
  38.                         minumanKeluar = true;
  39.                         screen.displayMessageLine("\nTransaksi sukses. Silahkan Ambil minuman anda.");
  40.                     }
  41.                     else
  42.                     {
  43.                         screen.displayMessageLine("\nMaaf, minuman pilihan anda habis.");
  44.                     }
  45.                 }
  46.                 else
  47.                 {
  48.                      screen.displayMessageLine("\nMaaf, saldo anda tidak cukup.");
  49.                 }
  50.             }
  51.             else{
  52.                 screen.displayMessageLine("\nMembatalkan Transaksi...");
  53.                 return;
  54.             }
  55.         }   while(!minumanKeluar);
  56.     }
  57.    
  58.     private int displayMenuOfAmounts(){
  59.         int harga = 0;
  60.        
  61.         Screen screen = getScreen();
  62.        
  63.         int[] amounts = {0, 12500, 9900, 7000, 6000, 8000, 8000, 8000};
  64.        
  65.         while(harga == 0){
  66.             screen.displayMessageLine("\n\nDaftar Minuman : ");
  67.             screen.displayMessageLine("1 - Bear Brand Rp 12500,00");
  68.             screen.displayMessageLine("2 - Pocari Sweat Rp 9900,00");
  69.             screen.displayMessageLine("3 - Teh Pucuk Rp 7000,00");
  70.             screen.displayMessageLine("4 - Aqua Rp 6000,00");
  71.             screen.displayMessageLine("5 - Pepsi Blue Rp 8000,00");
  72.             screen.displayMessageLine("6 - Cola Cola Rp 8000,00");
  73.             screen.displayMessageLine("7 - Sprite Rp 8000,00");
  74.             screen.displayMessageLine("8 - Batalkan Pembelian");
  75.             screen.displayMessage("\nPilih Minuman : ");
  76.            
  77.             input = keypad.getInput();
  78.            
  79.  
  80.             switch(input){
  81.                 case 1 :
  82.                 case 2 :
  83.                 case 3 :
  84.                 case 4 :
  85.                 case 5 :
  86.                 case 6 :
  87.                 case 7 :
  88.                     harga = amounts[input];
  89.                     break;
  90.                
  91.                 case 8 :
  92.                     harga = CANCELED;
  93.                     break;
  94.                
  95.                 default :
  96.                     screen.displayMessageLine("\nInput Salah");
  97.                     screen.displayMessageLine("Silahkan Coba lagi");
  98.             }
  99.         }
  100.        
  101.         return harga;
  102.     }
  103. }