SHOW:
|
|
- or go back to the newest paste.
| 1 | - | --pagamento bollette v2 lego11 |
| 1 | + | --pagamento bollette V3 lego11 |
| 2 | os.pullEvent = os.pullEventRaw | |
| 3 | ||
| 4 | --VARIABILI | |
| 5 | lbl = "BN Credit" | |
| 6 | tabr = {}
| |
| 7 | m = peripheral.wrap("right") --magcard
| |
| 8 | printer = peripheral.wrap("back") --stampante
| |
| 9 | cb = peripheral.wrap("bottom") -- commandblock
| |
| 10 | ||
| 11 | function clear() | |
| 12 | term.clear() | |
| 13 | term.setCursorPos(1,1) | |
| 14 | end | |
| 15 | ||
| 16 | function pinErrato() | |
| 17 | clear() | |
| 18 | print("Errore di verifica del PIN")
| |
| 19 | print("")
| |
| 20 | print("Premere un tasto per uscire")
| |
| 21 | os.pullEvent("key")
| |
| 22 | print("")
| |
| 23 | print("Ritirare il Disco Bolletta Elettronico")
| |
| 24 | disk.eject("left")
| |
| 25 | sleep(1) | |
| 26 | os.reboot() | |
| 27 | end | |
| 28 | ||
| 29 | ||
| 30 | function cartaNonValida() | |
| 31 | clear() | |
| 32 | print("Carta non valida o corrotta.")
| |
| 33 | print("")
| |
| 34 | print("Premere un tasto per uscire")
| |
| 35 | os.pullEvent("key")
| |
| 36 | print("")
| |
| 37 | print("Ritirare il Disco Bolletta Elettronico")
| |
| 38 | disk.eject("left")
| |
| 39 | sleep(1) | |
| 40 | os.reboot() | |
| 41 | end | |
| 42 | ||
| 43 | function cartaVuota() | |
| 44 | clear() | |
| 45 | print("Carta smagnetizzata o vuota.")
| |
| 46 | print("")
| |
| 47 | print("Premere un tasto per uscire")
| |
| 48 | os.pullEvent("key")
| |
| 49 | print("")
| |
| 50 | print("Ritirare il Disco Bolletta Elettronico")
| |
| 51 | disk.eject("left")
| |
| 52 | sleep(1) | |
| 53 | os.reboot() | |
| 54 | end | |
| 55 | ||
| 56 | function preleva() | |
| 57 | tabr.t = tabc.t | |
| 58 | tabr.e = tabc.e | |
| 59 | tabr.p = tabc.p | |
| 60 | tabr.v = tostring(credito - prelievo) | |
| 61 | ncr = textutils.serialize(tabr) | |
| 62 | m.setInsertCardLight(true) | |
| 63 | m.beginWrite(ncr,lbl) | |
| 64 | os.pullEvent("mag_write_done")
| |
| 65 | m.setInsertCardLight(false) | |
| 66 | end | |
| 67 | ||
| 68 | s = peripheral.wrap("back")
| |
| 69 | m = peripheral.wrap("right")
| |
| 70 | lbl = "BN Credit" | |
| 71 | ||
| 72 | function tocerror() | |
| 73 | clear() | |
| 74 | print("TOC ERROR")
| |
| 75 | print("")
| |
| 76 | print("Disco errato o danneggiato. Controllare il disco e ritentare l'operazione")
| |
| 77 | print("")
| |
| 78 | print("Premere un tasto qualsiasi per uscire.")
| |
| 79 | os.pullEvent("key")
| |
| 80 | disk.eject("left")
| |
| 81 | os.reboot() | |
| 82 | end | |
| 83 | ||
| 84 | clear() | |
| 85 | print("eRGB - Sistema Pagamento Bollette")
| |
| 86 | print("")
| |
| 87 | print("Inserire il Disco Bolletta Elettronica nel lettore floppy a sinistra")
| |
| 88 | print("")
| |
| 89 | print("IMPORTANTE:")
| |
| 90 | print("NON estrarre il disco manualmente dal lettore!")
| |
| 91 | - | print("VerråA0 riciclato o espulso automaticamente!")
|
| 91 | + | print("Verrà riciclato o espulso automaticamente!")
|
| 92 | os.pullEvent("disk")
| |
| 93 | etichetta = disk.getLabel("left")
| |
| 94 | if string.find(etichetta, "DBE") == nil then | |
| 95 | tocerror() | |
| 96 | end | |
| 97 | handle = assert(fs.open("disk/be", "r"), "ERRORE: disco non formattato")
| |
| 98 | bedisco = handle.readAll() | |
| 99 | handle.close() | |
| 100 | tab = textutils.unserialize(bedisco) -- Tabella contenente le variabili | |
| 101 | prelievo = tonumber(tab.totale) | |
| 102 | ||
| 103 | clear() | |
| 104 | print("Inserire la carta di credito nel lettore a destra")
| |
| 105 | m.setInsertCardLight(true) | |
| 106 | za,rawcarta = os.pullEvent("mag_swipe")
| |
| 107 | m.setInsertCardLight(false) | |
| 108 | ||
| 109 | if rawcarta == nil then | |
| 110 | cartaVuota() | |
| 111 | end | |
| 112 | ||
| 113 | tabc = textutils.unserialize(rawcarta) | |
| 114 | ||
| 115 | if type(tabc) ~= "table" then | |
| 116 | cartaNonValida() | |
| 117 | end | |
| 118 | ||
| 119 | if tabc.t ~= "cc" then | |
| 120 | cartaNonValida() | |
| 121 | end | |
| 122 | ||
| 123 | if tabc.e ~= "BN" then | |
| 124 | cartaNonValida() | |
| 125 | end | |
| 126 | ||
| 127 | if tabc.p ~= "0000" then | |
| 128 | print("")
| |
| 129 | print("Inserire il PIN e premere ENTER")
| |
| 130 | print("")
| |
| 131 | pinUtente = read("#")
| |
| 132 | if pinUtente ~= tabc.p then | |
| 133 | pinErrato() | |
| 134 | end | |
| 135 | end | |
| 136 | ||
| 137 | credito = tonumber(tabc.v) | |
| 138 | ||
| 139 | clear() | |
| 140 | ||
| 141 | while true do | |
| 142 | - | print("La carta ha una disponibilitåA0 di "..credito.." IC.")
|
| 142 | + | print("La carta ha una disponibilità di "..credito.." IC.")
|
| 143 | print("")
| |
| 144 | print("Bolletta del "..tab.date.." intestata a "..tab.UICnumber.." ")
| |
| 145 | print("")
| |
| 146 | print("Totale da pagare: "..prelievo.." IC")
| |
| 147 | print("")
| |
| 148 | print("")
| |
| 149 | print("Per favore scegliere un'opzione utilizzando i tasti numerici e confermare con ENTER:")
| |
| 150 | print("")
| |
| 151 | print("[1] Pagare la bolletta SENZA ricevuta")
| |
| 152 | print("[2] Pagare la bolletta CON ricevuta")
| |
| 153 | print("[3] Esci senza pagare la bolletta")
| |
| 154 | num=tonumber(read()) | |
| 155 | if num == 1 then | |
| 156 | if prelievo > credito then | |
| 157 | clear() | |
| 158 | - | print("DisponibilitåA0 insufficiente")
|
| 158 | + | print("Disponibilità insufficiente")
|
| 159 | print("")
| |
| 160 | print("Bolletta NON PAGATA.")
| |
| 161 | print("Riprovare con un'altra carta di credito.")
| |
| 162 | print("")
| |
| 163 | print("Premere un tasto qualsiasi per uscire")
| |
| 164 | os.pullEvent("key")
| |
| 165 | disk.eject("left")
| |
| 166 | print("Ritirare il Disco Bolletta Elettronica")
| |
| 167 | sleep(5) | |
| 168 | os.reboot() | |
| 169 | end | |
| 170 | clear() | |
| 171 | print("Inserire nuovamente la carta per confermare il prelievo")
| |
| 172 | preleva() | |
| 173 | print("")
| |
| 174 | print("Attendere, autorizzazione pagamento in corso...")
| |
| 175 | redstone.setOutput("top", true)
| |
| 176 | sleep(5) | |
| 177 | redstone.setOutput("top", false)
| |
| 178 | print("")
| |
| 179 | print("Pagamento effettuato correttamente!")
| |
| 180 | print("")
| |
| 181 | - | print("La bolletta åA8 stata registrata come 'pagata'")
|
| 181 | + | print("La bolletta è stata registrata come 'pagata'")
|
| 182 | mailsend = "mail send lego11 Bolletta PAGATA: " | |
| 183 | cb.setCommand(mailsend..tab.UICnumber) | |
| 184 | cb.runCommand() | |
| 185 | print("Grazie e arrivederci!")
| |
| 186 | print("")
| |
| 187 | - | print("Tra poco saråA0 possibile eseguire un'altra operazione.")
|
| 187 | + | print("Tra poco sarà possibile eseguire un'altra operazione.")
|
| 188 | sleep(5) | |
| 189 | os.reboot() | |
| 190 | ||
| 191 | elseif num == 2 then | |
| 192 | if prelievo > credito then | |
| 193 | clear() | |
| 194 | - | print("DisponibilitåA0 insufficiente")
|
| 194 | + | print("Disponibilità insufficiente")
|
| 195 | print("")
| |
| 196 | print("Bolletta NON PAGATA.")
| |
| 197 | print("Riprovare con un'altra carta di credito.")
| |
| 198 | print("")
| |
| 199 | print("Premere un tasto qualsiasi per uscire")
| |
| 200 | os.pullEvent("key")
| |
| 201 | disk.eject("left")
| |
| 202 | print("Ritirare il Disco Bolletta Elettronica")
| |
| 203 | sleep(5) | |
| 204 | os.reboot() | |
| 205 | end | |
| 206 | clear() | |
| 207 | print("Inserire nuovamente la carta per confermare il prelievo")
| |
| 208 | preleva() | |
| 209 | print("")
| |
| 210 | print("Attendere, autorizzazione pagamento in corso...")
| |
| 211 | redstone.setOutput("top", true)
| |
| 212 | sleep(3) | |
| 213 | redstone.setOutput("top", false)
| |
| 214 | if printer.getPaperLevel() == 0 or printer.getInkLevel() == 0 then | |
| 215 | cartaInceppata = 0 | |
| 216 | print("")
| |
| 217 | print("Errore: Carta inceppata")
| |
| 218 | print("")
| |
| 219 | - | print("Impossibile stampare ricevuta. Il pagamento verråA0 comunque effettuato.")
|
| 219 | + | print("Impossibile stampare ricevuta. Il pagamento verrà comunque effettuato.")
|
| 220 | print("")
| |
| 221 | else | |
| 222 | print("Attendere, stampa in corso della ricevuta...")
| |
| 223 | printer.newPage() | |
| 224 | printer.setPageTitle("Ricevuta eRGB")
| |
| 225 | printer.write("Ricevuta eRGB")
| |
| 226 | printer.setCursorPos(1, 2) | |
| 227 | printer.setCursorPos(1, 4) | |
| 228 | printer.write("La Bolletta del: ")
| |
| 229 | printer.setCursorPos(1, 6) | |
| 230 | printer.write(tab.date) | |
| 231 | printer.setCursorPos(1, 8) | |
| 232 | printer.write("del cliente: ")
| |
| 233 | printer.setCursorPos(1, 10) | |
| 234 | printer.write(tab.UICnumber) | |
| 235 | printer.setCursorPos(1, 12) | |
| 236 | printer.write("con un totale di:")
| |
| 237 | printer.setCursorPos(1, 14) | |
| 238 | printer.write(prelievo) | |
| 239 | printer.setCursorPos(10,14) | |
| 240 | printer.write("IC")
| |
| 241 | printer.setCursorPos(1, 16) | |
| 242 | printer.write("e' stata pagata")
| |
| 243 | printer.setCursorPos(1, 17) | |
| 244 | printer.write("correttamente.")
| |
| 245 | printer.setCursorPos(1, 19) | |
| 246 | printer.write("Grazie per aver scelto")
| |
| 247 | printer.setCursorPos(1, 20) | |
| 248 | printer.write("eRGB!")
| |
| 249 | printer.endPage() | |
| 250 | sleep(2) | |
| 251 | print("Stampa: 25%")
| |
| 252 | sleep(2) | |
| 253 | print("Stampa: 50%")
| |
| 254 | sleep(2) | |
| 255 | print("Stampa: 75%")
| |
| 256 | sleep(2) | |
| 257 | print("Stampa: 100%")
| |
| 258 | sleep(2) | |
| 259 | print("")
| |
| 260 | print("Ritirare la ricevuta")
| |
| 261 | print("")
| |
| 262 | end | |
| 263 | print("Pagamento effettuato correttamente!")
| |
| 264 | print("")
| |
| 265 | - | print("La bolletta åA8 stata registrata come 'pagata'")
|
| 265 | + | print("La bolletta è stata registrata come 'pagata'")
|
| 266 | mailsend = "mail send lego11 Bolletta PAGATA: " | |
| 267 | cb.setCommand(mailsend..tab.UICnumber) | |
| 268 | if cartaInceppata == 0 then | |
| 269 | cb.runCommand() | |
| 270 | end | |
| 271 | print("Grazie e arrivederci!")
| |
| 272 | print("")
| |
| 273 | - | print("Tra poco saråA0 possibile eseguire un'altra operazione.")
|
| 273 | + | print("Tra poco sarà possibile eseguire un'altra operazione.")
|
| 274 | sleep(5) | |
| 275 | os.reboot() | |
| 276 | elseif num == 3 then clear() break end | |
| 277 | sleep(1) | |
| 278 | clear() | |
| 279 | end | |
| 280 | clear() | |
| 281 | print("Uscita comandata dall'utente")
| |
| 282 | print("")
| |
| 283 | print("Bolletta NON PAGATA.")
| |
| 284 | print("")
| |
| 285 | disk.eject("left")
| |
| 286 | print("Ritirare il Disco Bolletta Elettronica")
| |
| 287 | sleep(5) | |
| 288 | os.reboot() |