Findryan

FP_Pembelian_VM

Dec 25th, 2016
225
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.81 KB | None | 0 0
  1. public class Pembelian extends Transaction
  2. {
  3. private int amount;
  4. private int pilihan_item;
  5. private Keypad keypad;
  6. private ItemDispenser itemDispenser;
  7.  
  8. public Pembelian( int userCardNumber, Screen VMScreen,
  9. BankDatabase VMBankDatabase, Keypad VMKeypad,
  10. ItemDispenser VMItemDispenser, int pilihan )
  11. {
  12. super( userCardNumber, VMScreen, VMBankDatabase );
  13.  
  14. keypad = VMKeypad;
  15. itemDispenser = VMItemDispenser;
  16. pilihan_item = pilihan - 1;
  17. }
  18.  
  19. @Override
  20. public void execute()
  21. {
  22. boolean itemDispensed = false;
  23. double availableBalance;
  24.  
  25. BankDatabase bankDatabase = getBankDatabase();
  26. Screen screen = getScreen();
  27.  
  28. do
  29. {
  30. amount = displayMenuOfAmounts();
  31. availableBalance =
  32. bankDatabase.getAvailableBalance( getCardNumber() );
  33.  
  34. if ( amount <= availableBalance )
  35. {
  36. if ( itemDispenser.isStockAvailable( pilihan_item ) )
  37. {
  38. bankDatabase.debit( getCardNumber(), amount );
  39.  
  40. itemDispenser.dispenseItem( pilihan_item );
  41. itemDispensed = true;
  42.  
  43. screen.displayMessageLine( "\nBarang anda telah dikeluarkan." +
  44. "Silahkan ambil barang anda sekarang." );
  45. screen.displayMessage( "\nSaldo anda : ");
  46. availableBalance =
  47. bankDatabase.getAvailableBalance( getCardNumber() );
  48. screen.displayRupiahAmount( availableBalance );
  49. }
  50. else
  51. {
  52. screen.displayMessageLine( "\nMohon maaf stok barang yang anda pilih telah habis."
  53. + "\n\n Silahkan pilih barang yang lain" );
  54. }
  55. }
  56.  
  57. else
  58. {
  59. screen.displayMessageLine("\n Mohon maaf saldo anda tidak mencukupi. ");
  60. screen.displayMessage("\n Saldo anda : ");
  61. screen.displayRupiahAmount( availableBalance );
  62. }
  63.  
  64. return;
  65. } while ( !itemDispensed );
  66. }
  67.  
  68. private int displayMenuOfAmounts()
  69. {
  70. int HargaItem = 0;
  71. int[] amounts = { 2500, 4000, 6000 };
  72.  
  73. switch ( pilihan_item )
  74. {
  75. case 0:
  76. case 1:
  77. case 2:
  78. HargaItem = amounts[ pilihan_item ];
  79. break;
  80. }
  81.  
  82. return HargaItem;
  83. }
  84. }
Advertisement
Add Comment
Please, Sign In to add comment