lego11

Addebito V2

May 14th, 2018
235
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.53 KB | None | 0 0
  1. --Addebito POS V2 lego11
  2.  
  3. --VARIABILI
  4. local lbl = "BN Credit"
  5. local tabr = {}
  6. local mon = peripheral.wrap("left")
  7. mon.setTextScale(0.5)
  8.  
  9. function clear()
  10. term.clear()
  11. term.setCursorPos(1,1)
  12. mon.clear()
  13. mon.setCursorPos(1,1)
  14. end
  15.  
  16. function monLinea1()
  17. mon.setCursorPos(1, 1)
  18. end
  19.  
  20. function monLinea2()
  21. mon.setCursorPos(1, 2)
  22. end
  23.  
  24. function monLinea3()
  25. mon.setCursorPos(1, 3)
  26. end
  27.  
  28. function monLinea4()
  29. mon.setCursorPos(1, 4)
  30. end
  31.  
  32. function cartaNonValida()
  33. clear()
  34. mon.write("Carta")
  35. monLinea2()
  36. mon.write("non")
  37. monLinea3()
  38. mon.write("valida!")
  39. print("Carta non valida o corrotta.")
  40. print("")
  41. print("Premere un tasto per uscire")
  42. os.pullEvent("key")
  43. clear()
  44. exit()
  45. end
  46.  
  47. function cartaVuota()
  48. clear()
  49. mon.write("Carta")
  50. monLinea2()
  51. mon.write("vuota!")
  52. print("Carta smagnetizzata o vuota.")
  53. print("")
  54. print("Premere un tasto per uscire")
  55. os.pullEvent("key")
  56. clear()
  57. exit()
  58. end
  59.  
  60.  
  61. m = peripheral.wrap("right")
  62. clear()
  63. print("Addebito POS")
  64. print("")
  65. print("Inserire la carta")
  66. mon.write("Pagamento:")
  67. monLinea2()
  68. mon.write("inserire")
  69. monLinea3()
  70. mon.write("la carta")
  71.  
  72. m.setInsertCardLight(true)
  73. za,rawcarta = os.pullEvent("mag_swipe")
  74. m.setInsertCardLight(false)
  75.  
  76. if rawcarta == nil then
  77. cartaVuota()
  78. end
  79.  
  80. tab = textutils.unserialize(rawcarta)
  81.  
  82. if type(tab) ~= "table" then
  83. cartaNonValida()
  84. end
  85.  
  86. if tab.t ~= "cc" then
  87. cartaNonValida()
  88. end
  89.  
  90. if tab.e ~= "BN" then
  91. cartaNonValida()
  92. end
  93.  
  94. credito = tonumber(tab.v)
  95. clear()
  96. mon.write("Attendere")
  97. monLinea2()
  98. mon.write("Autorizzazione")
  99. monLinea3()
  100. mon.write("in corso")
  101. print("La carta ha un saldo di "..credito.." IC.")
  102. print("")
  103. print("Inserire l'importo da addebitare")
  104.  
  105. prelievo=tonumber(read())
  106.  
  107. if prelievo > credito then
  108. clear()
  109. print("Disponibilità insufficiente")
  110. print("Premere un tasto...")
  111. mon.write("Disponibilita'")
  112. monLinea2()
  113. mon.write("carta")
  114. monLinea3()
  115. mon.write("insufficiente")
  116. os.pullEvent("key")
  117. clear()
  118. exit()
  119. end
  120.  
  121. clear()
  122.  
  123. print("Inserire nuovamente la carta per confermare il pagamento")
  124.  
  125. mon.write("Pagamento di")
  126. monLinea2()
  127. mon.write(prelievo.." IC")
  128. monLinea3()
  129. mon.write("Inserire")
  130. monLinea4()
  131. mon.write("la carta")
  132.  
  133. tabr.t = tab.t
  134. tabr.e = tab.e
  135. tabr.p = tab.p
  136. tabr.v = tostring(credito - prelievo)
  137.  
  138. ncr = textutils.serialize(tabr)
  139.  
  140. m.setInsertCardLight(true)
  141. m.beginWrite(ncr,lbl)
  142. os.pullEvent("mag_write_done")
  143. m.setInsertCardLight(false)
  144. clear()
  145. print("Addebito effettuato")
  146. mon.write("Pagamento")
  147. monLinea2()
  148. mon.write("effettuato")
  149. sleep(2)
  150. clear()
  151. exit()
Add Comment
Please, Sign In to add comment