Guest User

startup

a guest
Dec 27th, 2021
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 41.08 KB | None | 0 0
  1. local maxw, maxh = term.getSize()
  2.  
  3. --IMPLEMENTAZIONE DEL DRAWFILLEDBOX
  4. local function drawPixelInternal(xPos, yPos)
  5.     term.setCursorPos(xPos, yPos)
  6.     term.write(" ")
  7. end
  8.  
  9. local tColourLookup = {}
  10. for n = 1,16 do
  11.     tColourLookup[string.byte("0123456789abcdef", n, n)] = 2^(n-1)
  12. end
  13.  
  14. function drawFilledBox(startX, startY, endX, endY, nColour)
  15.     if type(startX) ~= "number" or type(startX) ~= "number" or
  16.        type(endX) ~= "number" or type(endY) ~= "number" or
  17.        (nColour ~= nil and type(nColour) ~= "number") then
  18.         error("Expected startX, startY, endX, endY, colour", 2)
  19.     end
  20.  
  21.     startX = math.floor(startX)
  22.     startY = math.floor(startY)
  23.     endX = math.floor(endX)
  24.     endY = math.floor(endY)
  25.  
  26.     if nColour then
  27.         term.setBackgroundColor(nColour)
  28.     end
  29.     if startX == endX and startY == endY then
  30.         drawPixelInternal(startX, startY)
  31.         return
  32.     end
  33.  
  34.     local minX = math.min(startX, endX)
  35.     if minX == startX then
  36.         minY = startY
  37.         maxX = endX
  38.         maxY = endY
  39.     else
  40.         minY = endY
  41.         maxX = startX
  42.         maxY = startY
  43.     end
  44.  
  45.     for x = minX, maxX do
  46.         for y = minY, maxY do
  47.             drawPixelInternal(x, y)
  48.         end
  49.     end
  50. end
  51.  
  52. function clear()
  53.     sfondo(colors.lightBlue)
  54.     term.clear()
  55.     term.setCursorPos(1, 1)
  56. end
  57.  
  58. function colore(sfumatura)
  59.     term.setTextColour(sfumatura)
  60. end
  61.  
  62. function sfondo(sfumaturaSfondo)
  63.     term.setBackgroundColour(sfumaturaSfondo)
  64. end
  65.  
  66. function titolo(testo)
  67.     drawFilledBox(1, 1, maxw, 1, colors.yellow)
  68.     term.setCursorPos((maxw - #testo) / 2, 1)
  69.     colore(colors.black)
  70.     term.write(testo)
  71.     sfondo(colors.lightBlue)
  72. end
  73.  
  74. function update()
  75.     term.setCursorPos(1, 21)
  76.     shell.run("rm startup")
  77.     shell.run("pastebin get y1AP0iNY startup") -- Inserire paste di nPay
  78.     os.reboot()
  79. end
  80.  
  81. function disconnetti()
  82.     clear()
  83.     text = "ARRIVEDERCI!"
  84.     colore(colors.white)
  85.     term.setCursorPos((maxw - #text) / 2, math.floor(maxh / 2))
  86.     term.write(text)
  87.     colore(colors.black)
  88.     text2 = "Tra poco saråA5A0 possibile eseguire"
  89.     text3 = "una nuova operazione..."
  90.     term.setCursorPos((maxw - #text2) / 2, math.floor(maxh / 2) + 2)
  91.     print(text2)
  92.     term.setCursorPos((maxw - #text3) / 2, math.floor(maxh / 2) + 3)
  93.     print(text3)
  94.     os.sleep(0.5)
  95.     update()
  96. end
  97.  
  98. function drawCard()
  99.     drawFilledBox(6, 7, 24, 7, colors.blue)
  100.     drawFilledBox(6, 15, 24, 15, colors.blue)
  101.     drawFilledBox(5, 8, 25, 14, colors.blue)
  102.  
  103.     drawFilledBox(7, 9, 23, 9, colors.lightGray)
  104.     drawFilledBox(7, 12, 23, 13, colors.black)
  105. end
  106.  
  107. mag = peripheral.wrap("bottom")
  108. bl = "BN Credit"
  109.  
  110. sfondo(colors.lightBlue)
  111. clear()
  112.  
  113. colore(colors.white)
  114. print(" ")
  115. print("                      ___            ")
  116. print("              _ __   / _ \\__ _ _   _ ")
  117. print("             | '_ \\ / /_)/ _  | | | |")
  118. print("             | | | / ___/ (_| | |_| |")
  119. print("             |_| |_\\/    \\__,_|\\__, |")
  120. print("                                |___/ ")
  121.  
  122. -- Bottoni login/registrati
  123.  
  124. drawFilledBox(14, 10, 38, 12, colors.white)
  125. term.setCursorPos(23, 11)
  126. colore(colors.black)
  127. term.write("Accedi")
  128.  
  129. drawFilledBox(14, 15, 38, 17, colors.white)
  130. term.setCursorPos(21, 16)
  131. colore(colors.black)
  132. term.write("Sei nuovo?")
  133.  
  134. while true do
  135.     event, key, x, y = os.pullEvent("mouse_click")
  136.     if event == "mouse_click" and x >= 14 and x <= 38 and y >= 15 and y <= 17 then
  137.         -- Registrazione nuovo utente
  138.         clear()
  139.         titolo("Registrati a nPay")
  140.         term.setCursorPos(1, 3)
  141.         print("Inserisci un nome utente e una password sicura.")
  142.         term.setCursorPos(1, 5)
  143.         colore(colors.gray)
  144.         print("Premi ENTER per confermare i dati inseriti.\nSe i dati sono corretti, il campo diventeråA5A0 verde.\nSe sono errati, il programma chiederåA5A0 di reinserirli nuovamente.")
  145.  
  146.         -- Nome Utente
  147.         term.setCursorPos(1, 10)
  148.         colore(colors.black)
  149.         term.write("Nome utente:")
  150.         term.setCursorPos(14, 10)
  151.         colore(colors.white)
  152.         utenteAccettato = false
  153.         conteggioErrori = 0
  154.         while utenteAccettato == false do
  155.             utente = read()
  156.             checkuser = http.get("http://172.16.20.220/luanet/servlets/nebraskapay.php?auth=no&richiesta=verifica&utente=" .. utente).readAll()
  157.             tabcheckuser = textutils.unserialize(checkuser)
  158.             if tabcheckuser.stato == "NO" then
  159.                 term.setCursorPos(14, 10)
  160.                 colore(colors.lime)
  161.                 term.write(utente)
  162.                 colore(colors.white)
  163.                 utenteAccettato = true
  164.             else
  165.                 term.setCursorPos(14, 10)
  166.                 colore(colors.red)
  167.                 term.write("Utente giåA5A0 esistente!")
  168.                 sleep(2)
  169.                 term.setCursorPos(14, 10)
  170.                 colore(colors.white)
  171.                 term.write("                       ")
  172.                 term.setCursorPos(14, 10)
  173.                 conteggioErrori = conteggioErrori + 1
  174.                 if conteggioErrori > 2 then
  175.                     term.setCursorPos(14, 10)
  176.                     colore(colors.red)
  177.                     term.write("Tre tentativi di immissione errati.")
  178.                     sleep(2)
  179.                     term.setCursorPos(14, 10)
  180.                     colore(colors.white)
  181.                     term.write("                       ")
  182.                     term.setCursorPos(14, 10)
  183.                     clear()
  184.                     os.reboot()
  185.                 end
  186.             end
  187.         end
  188.  
  189.         --password
  190.         colore(colors.black)
  191.         term.setCursorPos(1, 12)
  192.         term.write("Password:")
  193.         term.setCursorPos(11, 12)
  194.         colore(colors.white)
  195.  
  196.         passAccettata = false
  197.         conteggioErrori = 0
  198.         while passAccettata == false do
  199.             password1 = read("#")
  200.             colore(colors.black)
  201.             term.setCursorPos(1, 13)
  202.             term.write("Verifica:")
  203.             term.setCursorPos(11, 13)
  204.             colore(colors.white)
  205.             local password2 = read("#")
  206.             if password1 == password2 then
  207.                 term.setCursorPos(11, 12)
  208.                 colore(colors.lime)
  209.                 term.write("###############")
  210.                 term.setCursorPos(11, 13)
  211.                 term.write("###############")
  212.                 colore(colors.white)
  213.                 passAccettata = true
  214.             else
  215.                 colore(colors.red)
  216.                 term.setCursorPos(11, 12)
  217.                 term.write("Le password non corrispondono!    ")
  218.                 term.setCursorPos(1, 13)
  219.                 colore(colors.white)
  220.                 term.write("                               ")
  221.                 sleep(1.5)
  222.                 term.setCursorPos(11, 12)
  223.                 term.write("                               ")
  224.                 term.setCursorPos(11, 12)
  225.                 conteggioErrori = conteggioErrori + 1
  226.                 if conteggioErrori > 2 then
  227.                     term.setCursorPos(14, 12)
  228.                     colore(colors.red)
  229.                     term.write("Tre tentativi di immissione errati.")
  230.                     sleep(1.5)
  231.                     term.setCursorPos(14, 12)
  232.                     colore(colors.white)
  233.                     term.write("                       ")
  234.                     term.setCursorPos(14, 12)
  235.                     clear()
  236.                     os.reboot()
  237.                 end
  238.             end
  239.         end
  240.  
  241.         --crea l'account
  242.  
  243.         term.setCursorPos(1, 17)
  244.         creaAccount = http.get("http://172.16.20.220/luanet/servlets/nebraskapay.php?auth=" .. password1 .. "&utente=" .. utente .. "&richiesta=crea&valore=0").readAll()
  245.         tabCreaAccount = textutils.unserialize(creaAccount)
  246.         if tabCreaAccount.stato == "OA" then
  247.             colore(colors.lime)
  248.             print("Conto creato con successo.")
  249.             sleep(1.5)
  250.             clear()
  251.             os.reboot()
  252.         else
  253.             colore(colors.red)
  254.             print("Errore durante la creazione del conto.")
  255.             sleep(1.5)
  256.             clear()
  257.             os.reboot()
  258.         end
  259.  
  260.     elseif event == "mouse_click" and x >= 14 and x <= 38 and y >= 10 and y <= 12 then
  261.         clear()
  262.         titolo("Accedi a nPay")
  263.         term.setCursorPos(1, 3)
  264.         colore(colors.black)
  265.         print("Inserire i propri dati.")
  266.         colore(colors.gray)
  267.         print("\nPremere Enter per confermare i dati inseriti.\nSe i dati sono corretti, il campo diventeråA5A0 verde.\nSe sono errati, il programma chiederåA5A0 di reinserirli nuovamente.")
  268.  
  269.         --nomeutente
  270.         term.setCursorPos(1, 10)
  271.         colore(colors.black)
  272.         term.write("Nome utente:")
  273.         term.setCursorPos(15, 10)
  274.         colore(colors.white)
  275.         utenteAccettato = false
  276.         conteggioErrori = 0
  277.         while utenteAccettato == false do
  278.             utente = read()
  279.             checkuser = http.get("http://172.16.20.220/luanet/servlets/nebraskapay.php?auth=no&richiesta=verifica&utente=" .. utente).readAll()
  280.             tabcheckuser = textutils.unserialize(checkuser)
  281.             if tabcheckuser.stato == "OK" then
  282.                 term.setCursorPos(15, 10)
  283.                 colore(colors.lime)
  284.                 term.write(utente)
  285.                 colore(colors.white)
  286.                 utenteAccettato = true
  287.             else
  288.                 term.setCursorPos(15, 10)
  289.                 colore(colors.red)
  290.                 term.write("Utente errato!          ")
  291.                 sleep(2)
  292.                 term.setCursorPos(15, 10)
  293.                 colore(colors.white)
  294.                 term.write("                       ")
  295.                 term.setCursorPos(15, 10)
  296.                 conteggioErrori = conteggioErrori + 1
  297.                 if conteggioErrori > 2 then
  298.                     term.setCursorPos(15, 10)
  299.                     colore(colors.red)
  300.                     term.write("Tre tentativi di immissione errati.")
  301.                     sleep(2)
  302.                     term.setCursorPos(15, 10)
  303.                     colore(colors.white)
  304.                     term.write("                       ")
  305.                     term.setCursorPos(15, 10)
  306.                     clear()
  307.                     os.reboot()
  308.                 end
  309.             end
  310.         end
  311.  
  312.         --password
  313.         colore(colors.black)
  314.         term.setCursorPos(1,12)
  315.         term.write("Password:")
  316.         term.setCursorPos(15, 12)
  317.          
  318.         conteggioErrori = 0
  319.         passAccettata = false
  320.         while passAccettata == false do
  321.             colore(colors.white)
  322.             password = read("#")
  323.             colore(colors.black)
  324.             checkuser = http.get("http://172.16.20.220/luanet/servlets/nebraskapay.php?auth=" .. password .. "&richiesta=addebito&valore=0&utente=".. utente).readAll()
  325.             risposta = textutils.unserialize(checkuser)
  326.             if risposta.stato == "OK" then
  327.                 term.setCursorPos(15, 12)
  328.                 colore(colors.lime)
  329.                 term.write("##############               ")
  330.                 colore(colors.white)
  331.                 passAccettata = true
  332.                 else
  333.                     term.setCursorPos(15, 12)
  334.                     colore(colors.red)
  335.                     term.write("Password errata!            ")
  336.                     conteggioErrori = conteggioErrori + 1
  337.                     sleep(2)
  338.                     term.setCursorPos(15, 12)
  339.                     term.write("                               ")
  340.                     term.setCursorPos(15, 12)
  341.                 if conteggioErrori > 2 then
  342.                     term.setCursorPos(15, 12)
  343.                     colore(colors.red)
  344.                     term.write("Tre tentativi di immissione errati.")
  345.                     sleep(2)
  346.                     term.setCursorPos(15, 12)
  347.                     term.write("                               ")
  348.                     term.setCursorPos(15, 12)
  349.                     clear()
  350.                     os.reboot()
  351.                 end
  352.             end
  353.         end
  354.  
  355.         conteggioErrori = 0
  356.         -- Pagina in cui scegli le operazioni da fare
  357.  
  358.         while true do
  359.             --Ricontrolla il saldo per gestire l'aggiornamento di piåA5B9 operazioni
  360.             checkuser = http.get("http://172.16.20.220/luanet/servlets/nebraskapay.php?auth="..password.."&richiesta=addebito&valore=0&utente="..utente).readAll()
  361.             risposta = textutils.unserialize(checkuser)
  362.             saldo = tonumber(risposta.saldo)
  363.             --Disegna la finestra del pannello utente
  364.             clear()
  365.             titolo("Pannello utente nPay")
  366.             term.setCursorPos(1, 3)
  367.             term.write("Benvenuto, ")
  368.             colore(colors.white)
  369.             term.write(utente)
  370.             colore(colors.black)
  371.             term.write("!         Saldo: ")
  372.             colore(colors.white)
  373.             term.write(saldo)
  374.             colore(colors.black)
  375.             term.write(" IC")
  376.             print("\n\nOperazioni disponibili:\n")
  377.             sfondo(colors.white)
  378.             print(" Carica denaro su nPay  \n")
  379.             print(" Preleva denaro da nPay \n")
  380.             print(" Trasferisci denaro     \n")
  381.             print(" Estratto conto         \n")
  382.             colore(colors.red)
  383.             print(" Disconnettiti da nPay  \n")
  384.             colore(colors.black)
  385.  
  386.             antitonto = os.startTimer(60)
  387.  
  388.             event, key, x, y = os.pullEventRaw()
  389.             if event == "mouse_click" and y == 7 and x <= 24 then       --Pulsante carica denaro su nPay
  390.                 clear()
  391.                 titolo("Caricamento denaro su nPay")
  392.  
  393.                 drawCard()
  394.  
  395.                 sfondo(colors.lightBlue)
  396.                 colore(colors.black)
  397.                 term.setCursorPos(30, 8)
  398.                 print("INSERIRE LA CARTA")
  399.                 term.setCursorPos(29, 10)
  400.                 print("NEL LETTORE IN BASSO")
  401.                 drawFilledBox(34, 14, 42, 14, colors.white)
  402.                 term.setCursorPos(35, 14)
  403.                 term.write("Annulla")
  404.  
  405.                 mag.setInsertCardLight(true)
  406.                 finalBreakC = false
  407.                 while true do
  408.                     event, arg1, arg2, arg3 = os.pullEventRaw()
  409.                     if event == "mouse_click" and arg3 == 14 and arg2 >= 34 and arg2 <= 42 then -- arg2 = x | arg3 = y
  410.                         mag.setInsertCardLight(false)
  411.                         clear()
  412.                         term.setCursorPos(1,1)
  413.                         break
  414.                     elseif event == "mag_swipe" then
  415.                         mag.setInsertCardLight(false)
  416.                         tabel = textutils.unserialize(arg1)
  417.                         if tabel == "" or tabel == nil then
  418.                             clear()
  419.                             titolo("Caricamento denaro da nPay")
  420.  
  421.                             drawCard()
  422.  
  423.                             sfondo(colors.lightBlue)
  424.                             term.setCursorPos(36, 10)
  425.                             colore(colors.red)
  426.                             term.write("ERRORE!")
  427.                             term.setCursorPos(30, 12)
  428.                             colore(colors.black)
  429.                             term.write("Carta smagnetizzata!")
  430.                             os.sleep(3)
  431.                             break
  432.                         elseif tabel.t ~= "cc" or tabel.e ~= "BN" then
  433.                             clear()
  434.                             titolo("Caricamento denaro da nPay")
  435.  
  436.                             drawCard()
  437.  
  438.                             sfondo(colors.lightBlue)
  439.                             term.setCursorPos(36, 10)
  440.                             colore(colors.red)
  441.                             term.write("ERRORE!")
  442.                             term.setCursorPos(31, 12)
  443.                             colore(colors.black)
  444.                             term.write("Carta non valida!")
  445.                             os.sleep(3)
  446.                             break
  447.                         else
  448.                             while true do
  449.                                 clear()
  450.                                 titolo("Caricamento denaro su nPay")
  451.                                 colore(colors.gray)
  452.                                 print("\n\nDisponibilitåA5A0 su carta:  " .. tabel.v .. " IC")
  453.                                 colore(colors.red)
  454.                                 term.setCursorPos(1, 14)
  455.                                 term.write("ATTENZIONE:")
  456.                                 colore(colors.black)
  457.                                 term.setCursorPos(1, 15)
  458.                                 term.write("Eccezionalmente, grazie ai 600 voti di marzo,")
  459.                                 --term.write("Per le operazioni inferiori a 50 000 IC,")
  460.                                 term.setCursorPos(1, 16)
  461.                                 print("le operazioni saranno GRATUITE fino al 4 aprile!")
  462.                                 --print("si applica una commissione del 0.15%.")
  463.                                 --print("Oltre 50 000 IC la commissione åA5A8 del 0.05%.")
  464.                                 term.setCursorPos(1, 5)
  465.                                 term.write("Importo da caricare: ")
  466.                                 colore(colors.white)
  467.                                 credito = tonumber(tabel.v)
  468.                                 credit = read()
  469.                                 if tonumber(credit) == "" or tonumber(credit) == nil or tonumber(credit) <= 0 then
  470.                                     colore(colors.red)
  471.                                     term.setCursorPos(22, 5)
  472.                                     term.write("Importo errato!                    ")
  473.                                     colore(colors.black)
  474.                                     sleep(1.5)
  475.                                     clear()
  476.                                 else
  477.                                     if tonumber(credit) >= 50000 then
  478.                                         --commissioni = tonumber(credit) * 0.005
  479.                                         commissioni = tonumber(credit) * 0
  480.                                     else
  481.                                        --commissioni = tonumber(credit) * 0.015
  482.                                        commissioni = tonumber(credit) * 0
  483.                                     end
  484.                                     crediton = credit + commissioni
  485.                                     if tonumber(tabel.v) >= crediton then
  486.                                         tab = http.get("http://172.16.20.220/luanet/servlets/nebraskapay.php?utente=" .. utente .. "&auth=" .. password .. "&richiesta=accredito&valore=" .. credit).readAll()
  487.                                         tabella = textutils.unserialize(tab)
  488.                                         tabr = {}
  489.                                         tabr.t = tabel.t
  490.                                         tabr.e = tabel.e
  491.                                         tabr.p = tabel.p
  492.                                         tabr.v = tonumber(tabel.v) - crediton
  493.                                         ncr = textutils.serialize(tabr)
  494.                                         clear()
  495.                                         titolo("Caricamento denaro su nPay")
  496.  
  497.                                         drawCard()
  498.  
  499.                                         colore(colors.black)
  500.                                         sfondo(colors.lightBlue)
  501.                                         term.setCursorPos(29, 10)
  502.                                         print("RE-INSERIRE LA CARTA")
  503.                                         term.setCursorPos(29, 12)
  504.                                         print("NEL LETTORE IN BASSO")
  505.  
  506.                                         mag.setInsertCardLight(true)
  507.                                         mag.beginWrite(ncr, bl)
  508.                                         za2, carta = os.pullEvent("mag_write_done")
  509.                                         mag.setInsertCardLight(false)
  510.                                         clear()
  511.                                         titolo("Caricamento denaro su nPay")
  512.  
  513.                                         colore(colors.lime)
  514.                                         term.setCursorPos(1, 3)
  515.                                         print("Operazione completata!")
  516.                                         colore(colors.black)
  517.                                         term.setCursorPos(1, 5)
  518.                                         print("Denaro accreditato: " .. credit .. " IC")
  519.                                         print("Commissioni:        " .. commissioni .. " IC")
  520.                                         term.setCursorPos(1, 8)
  521.                                         print("Saldo sul conto:    " .. tabella.credito .. " IC")
  522.                                         print("Saldo sulla carta:  " .. tabr.v .. " IC")
  523.                                         sfondo(colors.white)
  524.                                         term.setCursorPos(1, 12)
  525.                                         term.write(" Torna alla pagina principale ")
  526.                                         sfondo(colors.lightBlue)
  527.  
  528.                                         antiTonto2 = os.startTimer(15)
  529.                                         while true do
  530.                                             local event, arg1, arg2, arg3 = os.pullEventRaw()
  531.                                             if event == "mouse_click" and arg3 == 12 and arg2 <= 30 or event == "timer" and arg1 == antiTonto2 then -- arg2 = x | arg3 = y
  532.                                                 finalBreakC = true
  533.                                                 break
  534.                                             end
  535.                                         end
  536.                                         break
  537.                                     else
  538.                                         colore(colors.red)
  539.                                         term.setCursorPos(22, 5)
  540.                                         term.write("Credito su carta insufficente.")
  541.                                         colore(colors.black)
  542.                                         sleep(1.5)
  543.                                         clear()
  544.                                     end
  545.                                 end
  546.                             end
  547.                             if finalBreakC then
  548.                                 break
  549.                             end
  550.                         end
  551.                     end
  552.                 end
  553.  
  554.             elseif event == "mouse_click" and y == 9 and x <= 24 then  --Pulsante preleva denaro da nPay
  555.                 clear()
  556.                 titolo("Prelievo denaro da nPay")
  557.  
  558.                 drawCard()
  559.  
  560.                 sfondo(colors.lightBlue)
  561.                 colore(colors.black)
  562.                 term.setCursorPos(30, 8)
  563.                 print("INSERIRE LA CARTA")
  564.                 term.setCursorPos(29, 10)
  565.                 print("NEL LETTORE IN BASSO")
  566.                 drawFilledBox(34, 14, 42, 14, colors.white)
  567.                 term.setCursorPos(35, 14)
  568.                 term.write("Annulla")
  569.  
  570.                 mag.setInsertCardLight(true)
  571.                 finalBreakP = false
  572.                 while true do
  573.                     event, arg1, arg2, arg3 = os.pullEventRaw()
  574.                     if event == "mouse_click" and arg3 == 14 and arg2 >= 34 and arg2 <= 42 then -- arg2 = x | arg3 = y
  575.                         mag.setInsertCardLight(false)
  576.                         clear()
  577.                         term.setCursorPos(1,1)
  578.                         break
  579.                     elseif event == "mag_swipe" then
  580.                         mag.setInsertCardLight(false)
  581.                         sfondo(colors.lightBlue)
  582.                         clear()
  583.                         tabel = textutils.unserialize(arg1)
  584.                         if tabel == "" or tabel == nil then
  585.                             clear()
  586.                             titolo("Prelievo denaro da nPay")
  587.  
  588.                             drawCard()
  589.  
  590.                             sfondo(colors.lightBlue)
  591.                             term.setCursorPos(36, 10)
  592.                             colore(colors.red)
  593.                             term.write("ERRORE!")
  594.                             term.setCursorPos(30, 12)
  595.                             colore(colors.black)
  596.                             term.write("Carta smagnetizzata!")
  597.                             os.sleep(3)
  598.                             break
  599.                         elseif tabel.t ~= "cc" or tabel.e ~= "BN" then
  600.                             clear()
  601.                             titolo("Prelievo denaro da nPay")
  602.  
  603.                             drawCard()
  604.  
  605.                             sfondo(colors.lightBlue)
  606.                             term.setCursorPos(36, 10)
  607.                             colore(colors.red)
  608.                             term.write("ERRORE!")
  609.                             term.setCursorPos(31, 12)
  610.                             colore(colors.black)
  611.                             term.write("Carta non valida!")
  612.                             os.sleep(3)
  613.                             break
  614.                         else
  615.                             while true do
  616.                                 tabr = {}
  617.                                 tabr.e = tabel.e
  618.                                 tabr.p = tabel.p
  619.                                 tabr.t = tabel.t
  620.                                 tab1 = http.get("http://172.16.20.220/luanet/servlets/nebraskapay.php?utente=" .. utente .. "&auth=" .. password .. "&richiesta=accredito&valore=0").readAll()
  621.                                 tab3 = textutils.unserialize(tab1)
  622.                                 clear()
  623.                                 titolo("Prelievo denaro da nPay")
  624.                                 colore(colors.gray)
  625.                                 print("\n\nDisponibilitåA5A0 su conto:  " .. saldo .. " IC")
  626.                                 colore(colors.black)
  627.                                 term.setCursorPos(1, 5)
  628.                                 term.write("Importo da ritirare: ")
  629.                                 colore(colors.white)
  630.                                 credito = tonumber(tabel.v)
  631.                                 credit = read()
  632.                                 if tonumber(credit) == "" or tonumber(credit) == nil or tonumber(credit) <= 0 then
  633.                                     colore(colors.red)
  634.                                     term.setCursorPos(22, 5)
  635.                                     term.write("Importo errato!                    ")
  636.                                     colore(colors.black)
  637.                                     sleep(1.5)
  638.                                     clear()
  639.                                 else
  640.                                     tab = http.get("http://172.16.20.220/luanet/servlets/nebraskapay.php?utente=" .. utente .. "&auth=" .. password .. "&richiesta=addebito&valore=" .. credit).readAll()
  641.                                     tabella = textutils.unserialize(tab)
  642.                                     if tabella.stato == "DI" then
  643.                                         colore(colors.red)
  644.                                         term.setCursorPos(22, 5)
  645.                                         term.write("Credito su carta insufficente.")
  646.                                         colore(colors.black)
  647.                                         sleep(1.5)
  648.                                         clear()
  649.                                     else
  650.                                         tabr.v = tonumber(tabel.v) + tonumber(credit)
  651.                                         ncr = textutils.serialize(tabr)
  652.                                         mag.setInsertCardLight(true)
  653.                                         mag.beginWrite(ncr, bl)
  654.                                         clear()
  655.                                         titolo("Prelievo denaro da nPay")
  656.  
  657.                                         drawCard()
  658.  
  659.                                         colore(colors.black)
  660.                                         sfondo(colors.lightBlue)
  661.                                         term.setCursorPos(29, 10)
  662.                                         print("RE-INSERIRE LA CARTA")
  663.                                         term.setCursorPos(29, 12)
  664.                                         print("NEL LETTORE IN BASSO")
  665.  
  666.                                         mag.setInsertCardLight(true)
  667.                                         event = os.pullEvent("mag_write_done")
  668.                                         mag.setInsertCardLight(false)
  669.                                         clear()
  670.                                         titolo("Prelievo denaro da nPay")
  671.  
  672.                                         colore(colors.lime)
  673.                                         term.setCursorPos(1, 3)
  674.                                         print("Operazione completata!")
  675.                                         colore(colors.black)
  676.                                         term.setCursorPos(1, 5)
  677.                                         print("Denaro prelevato:  " .. credit .. " IC")
  678.                                         term.setCursorPos(1, 7)
  679.                                         print("Saldo sul conto:   " .. tabella.credito .. " IC")
  680.                                         print("Saldo sulla carta: " .. tabr.v .. " IC")
  681.                                         sfondo(colors.white)
  682.                                         term.setCursorPos(1, 11)
  683.                                         term.write(" Torna alla pagina principale ")
  684.                                         sfondo(colors.lightBlue)
  685.  
  686.                                         antiTonto2 = os.startTimer(15)
  687.                                         while true do
  688.                                             local event, arg1, arg2, arg3 = os.pullEventRaw()
  689.                                             if event == "mouse_click" and arg3 == 11 and arg2 <= 30 or event == "timer" and arg1 == antiTonto2 then -- arg2 = x | arg3 = y
  690.                                                 finalBreakP = true
  691.                                                 break
  692.                                             end
  693.                                         end
  694.                                         break
  695.                                     end
  696.                                 end
  697.                             end
  698.                             if finalBreakP then
  699.                                 break
  700.                             end
  701.                         end
  702.                     end
  703.                 end
  704.  
  705.             elseif event == "mouse_click" and y == 11 and x <= 24 then --Pulsante trasferisci denaro
  706.                 --Trasferisci denaro
  707.                 --inizio pagina
  708.                 clear()
  709.                 titolo("Trasferimento di denaro")
  710.                 term.setCursorPos(1, 3)
  711.                 term.write("Inserire il nome utente del beneficiario.")
  712.                 colore(colors.gray)
  713.                 print("\n\nPremere Enter per confermare i dati inseriti.\nSe i dati sono corretti, il campo diventeråA5A0 verde.\nSe sono errati, il programma chiederåA5A0 di reinserirli nuovamente.")
  714.  
  715.                 --Mostra saldo
  716.                 term.setCursorPos(1, 10)
  717.                 colore(colors.gray)
  718.                 print("Saldo disponibile: " .. saldo .. " IC")
  719.                 colore(colors.black)
  720.  
  721.                 --Verifica Beneficiario
  722.                 term.setCursorPos(1, 12)
  723.                 term.write("Beneficiario:")
  724.                 term.setCursorPos(15, 12)
  725.                 colore(colors.white)
  726.                 destAccettato = false
  727.                 conteggioErrori = 0
  728.                 while destAccettato == false do
  729.                     beneficiario = read()
  730.                     checkuser = http.get("http://172.16.20.220/luanet/servlets/nebraskapay.php?auth=no&richiesta=verifica&utente=" .. beneficiario).readAll()
  731.                     tabcheckuser = textutils.unserialize(checkuser)
  732.                     if tabcheckuser.stato == "OK" and beneficiario ~= utente then
  733.                         term.setCursorPos(15, 12)
  734.                         colore(colors.lime)
  735.                         term.write(beneficiario)
  736.                         colore(colors.white)
  737.                         destAccettato = true
  738.                     else
  739.                         conteggioErrori = conteggioErrori + 1
  740.                         term.setCursorPos(15, 12)
  741.                         colore(colors.red)
  742.                         if beneficiario == utente then
  743.                             term.write("Non puoi inserire te stesso.")
  744.                         else
  745.                             term.write("Utente inesistente!         ")
  746.                         end
  747.                         sleep(2)
  748.                         term.setCursorPos(15, 12)
  749.                         colore(colors.white)
  750.                         term.write("                                      ")
  751.                         term.setCursorPos(15, 12)
  752.                         if conteggioErrori > 2 then
  753.                             term.setCursorPos(15, 12)
  754.                             colore(colors.red)
  755.                             term.write("Tre tentativi di immissione errati.")
  756.                             sleep(2)
  757.                             term.setCursorPos(15, 12)
  758.                             colore(colors.white)
  759.                             term.write("                                   ")
  760.                             term.setCursorPos(15, 12)
  761.                             clear()
  762.                             os.reboot()
  763.                         end
  764.                     end
  765.                 end
  766.  
  767.                 colore(colors.black)
  768.                 --Verifica valore dell'invio
  769.                 term.setCursorPos(1, 14)
  770.                 term.write("Importo:")
  771.                 term.setCursorPos(15, 14)
  772.                 colore(colors.white)
  773.                 importoAccettato = false
  774.                 conteggioErrori = 0
  775.                 while importoAccettato == false do
  776.                     importo = tonumber(read())
  777.                     if importo == "" or importo == nil or importo <= 0 then
  778.                         conteggioErrori = conteggioErrori + 1
  779.                         term.setCursorPos(15, 14)
  780.                         colore(colors.red)
  781.                         term.write("Importo errato!                    ")
  782.                         sleep(2)
  783.                         term.setCursorPos(15, 14)
  784.                         colore(colors.white)
  785.                         term.write("                                   ")
  786.                         term.setCursorPos(15, 14)
  787.                     elseif importo <= saldo and importo > 0 then
  788.                         term.setCursorPos(15, 14)
  789.                         colore(colors.lime)
  790.                         term.write(importo .. " IC")
  791.                         colore(colors.white)
  792.                         importoAccettato = true
  793.                     else
  794.                         conteggioErrori = conteggioErrori + 1
  795.                         term.setCursorPos(15, 14)
  796.                         colore(colors.red)
  797.                         term.write("Credito insufficiente!          ")
  798.                         sleep(2)
  799.                         term.setCursorPos(15, 14)
  800.                         colore(colors.white)
  801.                         term.write("                                   ")
  802.                         term.setCursorPos(15, 14)
  803.                         if conteggioErrori > 2 then
  804.                             term.setCursorPos(15, 14)
  805.                             colore(colors.red)
  806.                             term.write("Tre tentativi di immissione errati.")
  807.                             sleep(2)
  808.                             term.setCursorPos(15, 14)
  809.                             colore(colors.white)
  810.                             term.write("                                   ")
  811.                             term.setCursorPos(15, 14)
  812.                             clear()
  813.                             os.reboot()
  814.                         end
  815.                     end
  816.                 end
  817.  
  818.                 sleep(0.5)
  819.                 clear()
  820.                 titolo("Riepilogo del trasferimento")
  821.  
  822.                 text = "Vuoi inviare " .. importo .. " IC a " .. beneficiario .. "?"
  823.                 term.setCursorPos((maxw - #text) / 2, 6)
  824.                 term.write("Vuoi inviare ")
  825.                 colore(colors.white)
  826.                 term.write(tostring(importo) .. " IC ")
  827.                 colore(colors.black)
  828.                 term.write("a ")
  829.                 colore(colors.white)
  830.                 term.write(beneficiario)
  831.                 colore(colors.black)
  832.                 term.write("?")
  833.  
  834.                 drawFilledBox(7, 11, 23, 13, colors.white)
  835.                 drawFilledBox(29, 11, 45, 13, colors.white)
  836.  
  837.                 term.setCursorPos(8, 12)
  838.                 colore(colors.lime)
  839.                 term.write("Invia il denaro")
  840.  
  841.                 term.setCursorPos(34, 12)
  842.                 colore(colors.red)
  843.                 term.write("Annulla")
  844.  
  845.                 inviare = false
  846.                 while true do
  847.                     event, key, x, y = os.pullEvent()
  848.                     if event == "mouse_click" and x >= 7 and x <= 23 and y >= 11 and y <= 13 then
  849.                         inviaDenaro = http.get("http://172.16.20.220/luanet/servlets/nebraskapay.php?auth=" .. password .. "&utente=" .. utente .. "&richiesta=trasferimento&valore=" .. importo .. "&beneficiario=" .. beneficiario).readAll()
  850.                         risultatoInvio = textutils.unserialize(inviaDenaro)
  851.                         if risultatoInvio.stato == "OK" then
  852.                             text = "Invio del denaro riuscito."
  853.                             text2 = "Nuovo saldo: " .. risultatoInvio.credito .. " IC"
  854.                             sfondo(colors.lightBlue)
  855.                             colore(colors.lime)
  856.                             term.setCursorPos((maxw - #text) / 2, 16)
  857.                             term.write(text)
  858.                             colore(colors.black)
  859.                             term.setCursorPos((maxw - #text2) / 2, 18)
  860.                             term.write(text2)
  861.                             sleep(2)
  862.                             clear()
  863.                             break
  864.                         else
  865.                             text = "Errore durante l'invio del denaro."
  866.                             text2 = risultatoInvio.errore
  867.                             sfondo(colors.lightBlue)
  868.                             colore(colors.red)
  869.                             term.setCursorPos((maxw - #text) / 2, 16)
  870.                             term.write(text)
  871.                             colore(colors.black)
  872.                             term.setCursorPos((maxw - #text2) / 2, 18)
  873.                             term.write(text2)
  874.                             sleep(2)
  875.                             clear()
  876.                             break
  877.                         end
  878.                     elseif event == "mouse_click" and x >= 29 and x <= 45 and y >= 11 and y <= 13 then
  879.                         sfondo(colors.lightBlue)
  880.                         colore(colors.red)
  881.                         text = "Operazione annullata."
  882.                         term.setCursorPos((maxw - #text) / 2, 16)
  883.                         term.write(text)
  884.                         sleep(1.5)
  885.                         clear()
  886.                         break
  887.                     end
  888.                 end
  889.  
  890.             elseif event == "mouse_click" and y == 13 and x <= 24 then --Pulsante estratto conto
  891.                 --Estratto Conto (inizio pagina)
  892.                 clear()
  893.                 titolo("Estratto conto")
  894.  
  895.                 estratto = http.get("http://172.16.20.220/luanet/servlets/nebraskapay.php?auth=" .. password .. "&utente=" .. utente .. "&richiesta=estratto").readAll()
  896.                 ec = textutils.unserialize(estratto)
  897.                 term.setCursorPos(1, 3)
  898.                 print("Entrate:")
  899.                 colore(colors.lime)
  900.                 print(ec.entrata1)
  901.                 print(ec.entrata2)
  902.                 print(ec.entrata3)
  903.                 print(ec.entrata4)
  904.                 colore(colors.black)
  905.                 print("\nUscite:")
  906.                 colore(colors.red)
  907.                 print(ec.uscita1)
  908.                 print(ec.uscita2)
  909.                 print(ec.uscita3)
  910.                 print(ec.uscita4)
  911.                 term.setCursorPos(1, 18)
  912.                 sfondo(colors.white)
  913.                 colore(colors.black)
  914.                 term.write(" Torna al menåA5B9 principale ")
  915.                 while true do
  916.                     event, key, x, y = os.pullEventRaw()
  917.                     if event == "mouse_click" and x <= 26 and y == 18 then
  918.                         break
  919.                     end
  920.                 end
  921.  
  922.             elseif event == "mouse_click" and y == 15 and x <= 24 then --Pulsante disconnetti da nPay
  923.                 disconnetti()
  924.  
  925.             elseif event == "timer" and key == antitonto then --Butta fuori l'utente se non fa niente
  926.                 disconnetti()
  927.  
  928.             elseif event == "mouse_click" and x == maxw and y == maxh then -- Auto aggiornamento su magic corner (pannello utente)
  929.                 update()
  930.             end
  931.         end
  932.  
  933.     elseif event == "mouse_click" and x == maxw and y == maxh then -- Auto aggiornamento su magic corner (schermata principale)
  934.         update()
  935.     end
  936. end
Advertisement
Add Comment
Please, Sign In to add comment