SHOW:
|
|
- or go back to the newest paste.
| 1 | - | printer = peripheral.wrap("right")
|
| 1 | + | -- CONFIGURAZIONE |
| 2 | - | term.clear() |
| 2 | + | -- Lato stampante |
| 3 | - | print(" eRGB")
|
| 3 | + | LPT = "right" |
| 4 | - | print("")
|
| 4 | + | |
| 5 | - | print("Stampa bolletta eRGB")
|
| 5 | + | -- DICHIARAZIONE VARIABILI |
| 6 | - | print("")
|
| 6 | + | -- contatori totali |
| 7 | - | print("Inserire cod.cliente")
|
| 7 | + | consumoTotale = 0 |
| 8 | - | local UICnumber = read() |
| 8 | + | immissioneTotale = 0 |
| 9 | - | print("")
|
| 9 | + | |
| 10 | - | local phpdate = http.get("http://172.16.20.218/date.php")
|
| 10 | + | cliente = nil |
| 11 | - | local date = phpdate.readAll() |
| 11 | + | |
| 12 | - | phpdate.close() |
| 12 | + | -- spese fisse totali |
| 13 | - | print("La data di oggi e'"..date.." ")
|
| 13 | + | speseFisseConsTotali = 0 |
| 14 | - | print("Premere ENTER per accettare, C per correggere")
|
| 14 | + | speseFisseImmTotali = 0 |
| 15 | - | local keys = read() |
| 15 | + | |
| 16 | - | if keys == "c" then |
| 16 | + | -- IMPLEMENTAZIONE DEL DRAWFILLEDBOX |
| 17 | - | print("")
|
| 17 | + | local function drawPixelInternal(xPos, yPos) |
| 18 | - | print("Correggere la data:")
|
| 18 | + | term.setCursorPos(xPos, yPos) |
| 19 | - | date = read() |
| 19 | + | term.write(" ")
|
| 20 | end | |
| 21 | - | print("")
|
| 21 | + | local tColourLookup = {}
|
| 22 | - | print("Inserire lettura")
|
| 22 | + | for n = 1, 16 do |
| 23 | - | local energy = read() |
| 23 | + | tColourLookup[string.byte("0123456789abcdef", n, n)] = 2 ^ (n - 1)
|
| 24 | - | print("Inserire spesa fissa")
|
| 24 | + | |
| 25 | - | local tassa = read() |
| 25 | + | function drawFilledBox(startX, startY, endX, endY, nColour) |
| 26 | - | parziale = math.floor(energy/1000000) |
| 26 | + | if type(startX) ~= "number" or type(startX) ~= "number" or type(endX) ~= |
| 27 | - | totale = parziale+tassa |
| 27 | + | "number" or type(endY) ~= "number" or |
| 28 | (nColour ~= nil and type(nColour) ~= "number") then | |
| 29 | error("Expected startX, startY, endX, endY, colour", 2)
| |
| 30 | - | term.clear() |
| 30 | + | end |
| 31 | - | term.setCursorPos(1, 1) |
| 31 | + | |
| 32 | - | printer.newPage() |
| 32 | + | startX = math.floor(startX) |
| 33 | - | printer.setPageTitle("Bolletta eRGB")
|
| 33 | + | startY = math.floor(startY) |
| 34 | - | printer.write("Bolletta eRGB")
|
| 34 | + | endX = math.floor(endX) |
| 35 | - | printer.setCursorPos(1, 2) |
| 35 | + | endY = math.floor(endY) |
| 36 | - | printer.setCursorPos(1, 4) |
| 36 | + | |
| 37 | - | printer.write("Bolletta del: ")
|
| 37 | + | if nColour then term.setBackgroundColor(nColour) end |
| 38 | - | printer.setCursorPos(14, 4) |
| 38 | + | if startX == endX and startY == endY then |
| 39 | - | printer.write(date) |
| 39 | + | drawPixelInternal(startX, startY) |
| 40 | - | printer.setCursorPos(1, 6) |
| 40 | + | return |
| 41 | - | printer.write("Codice cliente: ")
|
| 41 | + | end |
| 42 | - | printer.setCursorPos(16, 6) |
| 42 | + | |
| 43 | - | printer.write(UICnumber) |
| 43 | + | local minX = math.min(startX, endX) |
| 44 | - | printer.setCursorPos(1, 7) |
| 44 | + | if minX == startX then |
| 45 | - | printer.write("Energia consumata:")
|
| 45 | + | minY = startY |
| 46 | - | printer.setCursorPos(1, 8) |
| 46 | + | maxX = endX |
| 47 | - | printer.write(energy) |
| 47 | + | maxY = endY |
| 48 | - | printer.setCursorPos(1, 10) |
| 48 | + | else |
| 49 | - | printer.write("Spese fisse:")
|
| 49 | + | minY = endY |
| 50 | - | printer.setCursorPos(1, 11) |
| 50 | + | maxX = startX |
| 51 | - | printer.write(tassa) |
| 51 | + | maxY = startY |
| 52 | - | printer.setCursorPos(4, 11) |
| 52 | + | end |
| 53 | - | printer.write("IC")
|
| 53 | + | |
| 54 | - | printer.setCursorPos(1, 13) |
| 54 | + | for x = minX, maxX do for y = minY, maxY do drawPixelInternal(x, y) end end |
| 55 | - | printer.write("Totale DA PAGARE:")
|
| 55 | + | |
| 56 | - | printer.setCursorPos(1, 14) |
| 56 | + | -- Icone |
| 57 | - | printer.write(totale) |
| 57 | + | function disegnaAvviso() |
| 58 | - | printer.setCursorPos(6, 14) |
| 58 | + | drawFilledBox(5, 6, 13, 13, colours.yellow) |
| 59 | - | printer.write("IC")
|
| 59 | + | for i = 7, 12, 1 do |
| 60 | - | printer.setCursorPos(1, 16) |
| 60 | + | paintutils.drawPixel(9, i, colours.black) |
| 61 | - | printer.write("Inviare il denaro tramite")
|
| 61 | + | paintutils.drawPixel(9, 11, colours.yellow) |
| 62 | - | printer.setCursorPos(1, 17) |
| 62 | + | end |
| 63 | - | printer.write("posta a lego11 entro")
|
| 63 | + | |
| 64 | - | printer.setCursorPos(1, 18) |
| 64 | + | function disegnaFloppy() |
| 65 | - | printer.write("7 giorni IRL dalla data")
|
| 65 | + | drawFilledBox(4, 5, 18, 15, colours.lime) |
| 66 | - | printer.setCursorPos(1, 19) |
| 66 | + | drawFilledBox(7, 5, 15, 8, colours.lightGrey) |
| 67 | - | printer.write("di emissione della")
|
| 67 | + | drawFilledBox(13, 6, 14, 7, colours.lime) |
| 68 | - | printer.setCursorPos(1, 20) |
| 68 | + | drawFilledBox(5, 10, 17, 15, colours.white) |
| 69 | - | printer.write("bolletta, pena il")
|
| 69 | + | paintutils.drawPixel(18, 5, colours.black) |
| 70 | - | printer.setCursorPos(1, 21) |
| 70 | + | |
| 71 | - | printer.write("pagamento di penali.")
|
| 71 | + | function disegnaFoglio() |
| 72 | - | printer.endPage() |
| 72 | + | drawFilledBox(4, 5, 18, 15, colours.white) |
| 73 | - | print("Stampa bolletta in corso")
|
| 73 | + | paintutils.drawPixel(6, 12, colours.green) |
| 74 | - | print("Ritirare la bolletta")
|
| 74 | + | paintutils.drawPixel(7, 13, colours.green) |
| 75 | - | sleep(2) |
| 75 | + | paintutils.drawPixel(8, 14, colours.green) |
| 76 | px = 9 | |
| 77 | py = 13 | |
| 78 | for i = 1, 8, 1 do | |
| 79 | paintutils.drawPixel(px, py, colours.green) | |
| 80 | px = px + 1 | |
| 81 | py = py - 1 | |
| 82 | end | |
| 83 | end | |
| 84 | ||
| 85 | function disegnaStampante() | |
| 86 | drawFilledBox(4, 10, 18, 15, colours.lightGrey) | |
| 87 | drawFilledBox(6, 6, 16, 10, colours.white) | |
| 88 | drawFilledBox(6, 14, 16, 14, colours.grey) | |
| 89 | end | |
| 90 | ||
| 91 | -- Funzione pulisci | |
| 92 | function clear() | |
| 93 | term.clear() | |
| 94 | term.setCursorPos(1, 1) | |
| 95 | end | |
| 96 | ||
| 97 | -- Funzioni colori | |
| 98 | function colore(sfumatura) term.setTextColour(sfumatura) end | |
| 99 | function fineColore() term.setTextColour(colours.white) end | |
| 100 | function sfondo(sfumaturaSfondo) term.setBackgroundColour(sfumaturaSfondo) end | |
| 101 | function fineSfondo() term.setBackgroundColour(colours.black) end | |
| 102 | ||
| 103 | -- Disegna il Titolo | |
| 104 | function disegnaTitolo() | |
| 105 | local tx, ty = term.getCursorPos() | |
| 106 | term.setCursorPos(1, 1) | |
| 107 | colore(colours.black) | |
| 108 | sfondo(colours.yellow) | |
| 109 | print(" Creazione Guidata Bolletta ")
| |
| 110 | fineColore() | |
| 111 | fineSfondo() | |
| 112 | term.setCursorPos(tx, ty) | |
| 113 | end | |
| 114 | ||
| 115 | -- Schermata Consumo | |
| 116 | function finestraConsumo() | |
| 117 | -- Schermata iniziale | |
| 118 | clear() | |
| 119 | sfondo(colours.black) | |
| 120 | term.clear() | |
| 121 | disegnaTitolo() | |
| 122 | ||
| 123 | term.setCursorPos(1, 3) | |
| 124 | print( | |
| 125 | "Inserire i dati richiesti. Se il campo è corretto, diventerà verde. In caso contrario il computer chiederà di reinserire il dato. Per annullare premere CTRL+T.") | |
| 126 | -- Intestatario del contratto | |
| 127 | term.setCursorPos(1, 9) | |
| 128 | term.write("Intestatario:")
| |
| 129 | term.setCursorPos(15, 9) | |
| 130 | fineColore() | |
| 131 | if cliente == nil or cliente == "" then cliente = read() end | |
| 132 | term.setCursorPos(15, 9) | |
| 133 | colore(colours.green) | |
| 134 | term.write(cliente) | |
| 135 | fineColore() | |
| 136 | ||
| 137 | -- Lettura contatore consumo | |
| 138 | colore(colours.white) | |
| 139 | term.setCursorPos(1, 11) | |
| 140 | term.write("Consumo (Wh):")
| |
| 141 | term.setCursorPos(15, 11) | |
| 142 | fineColore() | |
| 143 | consumoAccettato = false | |
| 144 | conteggioErrori = 0 | |
| 145 | while consumoAccettato == false do | |
| 146 | consumo = read() | |
| 147 | colore(colours.white) | |
| 148 | term.setCursorPos(14, 11) | |
| 149 | fineColore() | |
| 150 | if tonumber(consumo) == "" or tonumber(consumo) == nil or | |
| 151 | tonumber(consumo) < 0 then | |
| 152 | term.setCursorPos(15, 11) | |
| 153 | colore(colours.red) | |
| 154 | term.write("Il dato immesso non corrisponde ")
| |
| 155 | fineColore() | |
| 156 | sleep(2) | |
| 157 | term.setCursorPos(15, 11) | |
| 158 | term.write(" ")
| |
| 159 | term.setCursorPos(15, 11) | |
| 160 | else | |
| 161 | term.setCursorPos(15, 11) | |
| 162 | colore(colours.green) | |
| 163 | term.write(consumo .. " Wh") | |
| 164 | consumoAccettato = true | |
| 165 | ||
| 166 | end | |
| 167 | end | |
| 168 | ||
| 169 | -- Lettura spese fisse | |
| 170 | colore(colours.white) | |
| 171 | term.setCursorPos(1, 13) | |
| 172 | term.write("Spese fisse:")
| |
| 173 | term.setCursorPos(15, 13) | |
| 174 | fineColore() | |
| 175 | local sfAccettate = false | |
| 176 | conteggioErrori = 0 | |
| 177 | while sfAccettate == false do | |
| 178 | speseFisseCons = read() | |
| 179 | colore(colours.white) | |
| 180 | term.setCursorPos(14, 13) | |
| 181 | fineColore() | |
| 182 | if tonumber(speseFisseCons) == "" or tonumber(speseFisseCons) == nil or | |
| 183 | tonumber(speseFisseCons) < 0 then | |
| 184 | term.setCursorPos(15, 13) | |
| 185 | colore(colours.red) | |
| 186 | term.write("Il dato immesso non corrisponde ")
| |
| 187 | fineColore() | |
| 188 | sleep(2) | |
| 189 | term.setCursorPos(15, 13) | |
| 190 | term.write(" ")
| |
| 191 | term.setCursorPos(15, 13) | |
| 192 | else | |
| 193 | term.setCursorPos(15, 13) | |
| 194 | colore(colours.green) | |
| 195 | term.write(speseFisseCons .. " IC") | |
| 196 | sfAccettate = true | |
| 197 | end | |
| 198 | end | |
| 199 | ||
| 200 | -- Calcolo totale contatore consumo | |
| 201 | consumoTotale = consumoTotale + math.floor(consumo / 1000000) | |
| 202 | speseFisseConsTotali = speseFisseConsTotali + speseFisseCons | |
| 203 | end | |
| 204 | ||
| 205 | -- Schermata immissione | |
| 206 | ||
| 207 | function finestraImmissione() | |
| 208 | -- Schermata iniziale | |
| 209 | clear() | |
| 210 | sfondo(colours.black) | |
| 211 | term.clear() | |
| 212 | disegnaTitolo() | |
| 213 | ||
| 214 | term.setCursorPos(1, 3) | |
| 215 | print( | |
| 216 | "Inserire i dati richiesti. Se il campo è corretto, diventerà verde. In caso contrario il computer chiederà di reinserire il dato. Per annullare premere CTRL+T.") | |
| 217 | -- Intestatario del contratto | |
| 218 | term.setCursorPos(1, 9) | |
| 219 | term.write("Intestatario:")
| |
| 220 | fineColore() | |
| 221 | term.setCursorPos(15, 9) | |
| 222 | colore(colours.green) | |
| 223 | term.write(cliente) | |
| 224 | fineColore() | |
| 225 | ||
| 226 | -- Lettura contatore immissione | |
| 227 | colore(colours.white) | |
| 228 | term.setCursorPos(1, 11) | |
| 229 | term.write("Immiss. (Wh):")
| |
| 230 | term.setCursorPos(15, 11) | |
| 231 | fineColore() | |
| 232 | immissioneAccettata = false | |
| 233 | conteggioErrori = 0 | |
| 234 | while immissioneAccettata == false do | |
| 235 | immissione = read() | |
| 236 | colore(colours.white) | |
| 237 | term.setCursorPos(14, 11) | |
| 238 | fineColore() | |
| 239 | if tonumber(immissione) == "" or tonumber(immissione) == nil or | |
| 240 | tonumber(immissione) < 0 then | |
| 241 | term.setCursorPos(15, 11) | |
| 242 | colore(colours.red) | |
| 243 | term.write("Il dato immesso non corrisponde ")
| |
| 244 | fineColore() | |
| 245 | sleep(2) | |
| 246 | term.setCursorPos(15, 11) | |
| 247 | term.write(" ")
| |
| 248 | term.setCursorPos(15, 11) | |
| 249 | else | |
| 250 | term.setCursorPos(15, 11) | |
| 251 | colore(colours.green) | |
| 252 | term.write(immissione .. " Wh") | |
| 253 | immissioneAccettata = true | |
| 254 | ||
| 255 | end | |
| 256 | end | |
| 257 | ||
| 258 | -- Lettura spese fisse | |
| 259 | colore(colours.white) | |
| 260 | term.setCursorPos(1, 13) | |
| 261 | term.write("Spese fisse:")
| |
| 262 | term.setCursorPos(15, 13) | |
| 263 | fineColore() | |
| 264 | local sfImmAccettate = false | |
| 265 | conteggioErrori = 0 | |
| 266 | while sfImmAccettate == false do | |
| 267 | speseFisseImm = read() | |
| 268 | colore(colours.white) | |
| 269 | term.setCursorPos(14, 13) | |
| 270 | fineColore() | |
| 271 | if tonumber(speseFisseImm) == "" or tonumber(speseFisseImm) == nil or | |
| 272 | tonumber(speseFisseImm) < 0 then | |
| 273 | term.setCursorPos(15, 13) | |
| 274 | colore(colours.red) | |
| 275 | term.write("Il dato immesso non corrisponde ")
| |
| 276 | fineColore() | |
| 277 | sleep(2) | |
| 278 | term.setCursorPos(15, 13) | |
| 279 | term.write(" ")
| |
| 280 | term.setCursorPos(15, 13) | |
| 281 | else | |
| 282 | term.setCursorPos(15, 13) | |
| 283 | colore(colours.green) | |
| 284 | term.write(speseFisseImm .. " IC") | |
| 285 | sfImmAccettate = true | |
| 286 | end | |
| 287 | end | |
| 288 | ||
| 289 | -- Calcolo totale contatore immissione | |
| 290 | immissioneTotale = immissioneTotale + math.floor(immissione / 1000000) | |
| 291 | speseFisseImmTotali = speseFisseImmTotali + speseFisseImm | |
| 292 | end | |
| 293 | ||
| 294 | -- MAIN LOOP | |
| 295 | -- DEL PROGRAMMA | |
| 296 | ||
| 297 | -- Stampante | |
| 298 | lpt = peripheral.wrap(LPT) | |
| 299 | ||
| 300 | sfondo(colors.black) | |
| 301 | clear() | |
| 302 | ||
| 303 | -- Disegna la finestra per i dati del consumo | |
| 304 | ||
| 305 | local dialogoAltroCont = false | |
| 306 | while dialogoAltroCont == false do | |
| 307 | ||
| 308 | finestraConsumo() | |
| 309 | ||
| 310 | -- Question box per un altro contatore | |
| 311 | clear() | |
| 312 | disegnaTitolo() | |
| 313 | colore(colors.black) | |
| 314 | sfondo(colors.yellow) | |
| 315 | term.setCursorPos(14, 7) | |
| 316 | term.write(" Consumo ")
| |
| 317 | drawFilledBox(14, 8, 37, 14, colors.lightBlue) | |
| 318 | term.setCursorPos(15, 9) | |
| 319 | term.write("Inserire un altro")
| |
| 320 | term.setCursorPos(15, 10) | |
| 321 | term.write("contatore consumo?")
| |
| 322 | colore(colors.black) | |
| 323 | sfondo(colors.red) | |
| 324 | term.setCursorPos(16, 13) | |
| 325 | term.write(" No ")
| |
| 326 | colore(colors.black) | |
| 327 | sfondo(colors.green) | |
| 328 | term.setCursorPos(28, 13) | |
| 329 | term.write(" Si ")
| |
| 330 | fineSfondo() | |
| 331 | fineColore() | |
| 332 | ||
| 333 | local scelta = false | |
| 334 | while scelta == false do | |
| 335 | event, key, x, y = os.pullEvent("mouse_click")
| |
| 336 | if event == "mouse_click" and x > 16 and x < 24 and y == 13 then | |
| 337 | scelta = true | |
| 338 | dialogoAltroCont = true | |
| 339 | elseif event == "mouse_click" and x > 28 and x < 36 and y == 13 then | |
| 340 | scelta = true | |
| 341 | dialogoAltroCont = false | |
| 342 | end | |
| 343 | end | |
| 344 | end | |
| 345 | ||
| 346 | clear() | |
| 347 | disegnaTitolo() | |
| 348 | sleep(0.5) | |
| 349 | ||
| 350 | -- Question box per il Doppio Contatore | |
| 351 | colore(colors.black) | |
| 352 | sfondo(colors.yellow) | |
| 353 | term.setCursorPos(14, 7) | |
| 354 | term.write(" Immissione ")
| |
| 355 | drawFilledBox(14, 8, 37, 14, colors.lightBlue) | |
| 356 | term.setCursorPos(15, 9) | |
| 357 | term.write("Il cliente possiede")
| |
| 358 | term.setCursorPos(15, 10) | |
| 359 | term.write("il Doppio Contatore?")
| |
| 360 | colore(colors.black) | |
| 361 | sfondo(colors.red) | |
| 362 | term.setCursorPos(16, 13) | |
| 363 | term.write(" No ")
| |
| 364 | colore(colors.black) | |
| 365 | sfondo(colors.green) | |
| 366 | term.setCursorPos(28, 13) | |
| 367 | term.write(" Si ")
| |
| 368 | fineColore() | |
| 369 | fineSfondo() | |
| 370 | ||
| 371 | local dialogoDC = false | |
| 372 | while dialogoDC == false do | |
| 373 | event, key, x, y = os.pullEvent("mouse_click")
| |
| 374 | if event == "mouse_click" and x > 16 and x < 24 and y == 13 then | |
| 375 | utenteConDC = false | |
| 376 | dialogoDC = true | |
| 377 | elseif event == "mouse_click" and x > 28 and x < 36 and y == 13 then | |
| 378 | utenteConDC = true | |
| 379 | dialogoDC = true | |
| 380 | end | |
| 381 | end | |
| 382 | ||
| 383 | -- debug only | |
| 384 | ||
| 385 | if utenteConDC == true then | |
| 386 | print("ACC-M")
| |
| 387 | finDC = false | |
| 388 | while finDC == false do | |
| 389 | ||
| 390 | finestraImmissione() | |
| 391 | ||
| 392 | clear() | |
| 393 | disegnaTitolo() | |
| 394 | sleep(0.5) | |
| 395 | ||
| 396 | -- Question box per il Doppio Contatore | |
| 397 | colore(colors.black) | |
| 398 | sfondo(colors.yellow) | |
| 399 | term.setCursorPos(14, 7) | |
| 400 | term.write(" Immissione ")
| |
| 401 | drawFilledBox(14, 8, 37, 14, colors.lightBlue) | |
| 402 | term.setCursorPos(15, 9) | |
| 403 | term.write("Inserire un altro")
| |
| 404 | term.setCursorPos(15, 10) | |
| 405 | term.write("contatore immissione?")
| |
| 406 | colore(colors.black) | |
| 407 | sfondo(colors.red) | |
| 408 | term.setCursorPos(16, 13) | |
| 409 | term.write(" No ")
| |
| 410 | colore(colors.black) | |
| 411 | sfondo(colors.green) | |
| 412 | term.setCursorPos(28, 13) | |
| 413 | term.write(" Si ")
| |
| 414 | local dialogoAltroDC = false | |
| 415 | while dialogoAltroDC == false do | |
| 416 | event, key, x, y = os.pullEvent("mouse_click")
| |
| 417 | if event == "mouse_click" and x > 16 and x < 24 and y == 13 then | |
| 418 | dialogoAltroDC = true | |
| 419 | finDC = true | |
| 420 | elseif event == "mouse_click" and x > 28 and x < 36 and y == 13 then | |
| 421 | finDC = false | |
| 422 | dialogoAltroDC = true | |
| 423 | end | |
| 424 | end | |
| 425 | end | |
| 426 | end | |
| 427 | fineSfondo() | |
| 428 | fineColore() | |
| 429 | clear() | |
| 430 | disegnaTitolo() | |
| 431 | term.setCursorPos(1, 3) | |
| 432 | ||
| 433 | print("Riepilogo:\n")
| |
| 434 | ||
| 435 | -- Controllo variabili | |
| 436 | ||
| 437 | if consumoTotale == nil or consumoTotale == "" then consumoTotale = 0 end | |
| 438 | ||
| 439 | if immissioneTotale == nil or immissioneTotale == "" then immissioneTotale = 0 end | |
| 440 | ||
| 441 | if speseFisseConsTotali == nil or speseFisseConsTotali == "" then | |
| 442 | speseFisseConsTotali = 0 | |
| 443 | end | |
| 444 | ||
| 445 | if speseFisseImmTotali == nil or speseFisseImmTotali == "" then | |
| 446 | speseFisseImmTotali = 0 | |
| 447 | end | |
| 448 | ||
| 449 | colore(colors.lightGray) | |
| 450 | print("Energia")
| |
| 451 | fineColore() | |
| 452 | print(" Consumo : " .. consumoTotale .. " IC")
| |
| 453 | print(" Immissione : " .. immissioneTotale .. " IC\n")
| |
| 454 | ||
| 455 | colore(colors.lightGray) | |
| 456 | term.setCursorPos(26, 5) | |
| 457 | print("Spese Fisse")
| |
| 458 | fineColore() | |
| 459 | term.setCursorPos(27, 6) | |
| 460 | print(" S.F. consumo : " .. speseFisseConsTotali .. " IC")
| |
| 461 | term.setCursorPos(27, 7) | |
| 462 | print(" S.F. immi : " .. speseFisseImmTotali .. " IC\n")
| |
| 463 | ||
| 464 | -- Calcoli | |
| 465 | subtEnergia = consumoTotale - immissioneTotale | |
| 466 | subtSF = speseFisseConsTotali + speseFisseImmTotali | |
| 467 | granTotale = subtEnergia + subtSF | |
| 468 | ||
| 469 | colore(colors.lightGray) | |
| 470 | print("Subtotali")
| |
| 471 | fineColore() | |
| 472 | print(" Subt. energia : " .. subtEnergia .. " IC")
| |
| 473 | print(" Subt. S.F. : " .. subtSF .. " IC\n")
| |
| 474 | ||
| 475 | colore(colors.yellow) | |
| 476 | print("Gran Totale : " .. granTotale .. " IC")
| |
| 477 | ||
| 478 | term.setCursorPos(9, 17) | |
| 479 | sfondo(colors.red) | |
| 480 | colore(colors.black) | |
| 481 | term.write(" Annulla ")
| |
| 482 | term.setCursorPos(28, 17) | |
| 483 | sfondo(colors.green) | |
| 484 | colore(colors.black) | |
| 485 | term.write(" Conferma ")
| |
| 486 | fineColore() | |
| 487 | fineSfondo() | |
| 488 | ||
| 489 | local scelta = false | |
| 490 | while scelta == false do | |
| 491 | event, key, x, y = os.pullEvent("mouse_click")
| |
| 492 | if event == "mouse_click" and x > 9 and x < 23 and y == 17 then | |
| 493 | scelta = true | |
| 494 | continua = false | |
| 495 | elseif event == "mouse_click" and x > 28 and x < 42 and y == 17 then | |
| 496 | scelta = true | |
| 497 | continua = true | |
| 498 | end | |
| 499 | end | |
| 500 | ||
| 501 | clear() | |
| 502 | if continua == true then | |
| 503 | -- Recupera data | |
| 504 | local phpdate = http.get("http://172.16.20.220/date.php")
| |
| 505 | local date = phpdate.readAll() | |
| 506 | phpdate.close() | |
| 507 | ||
| 508 | -- Stampa | |
| 509 | stampantePronta = false | |
| 510 | while stampantePronta == false do | |
| 511 | if lpt.getPaperLevel() == 0 then | |
| 512 | clear() | |
| 513 | disegnaTitolo() | |
| 514 | disegnaAvviso() | |
| 515 | fineColore() | |
| 516 | fineSfondo() | |
| 517 | term.setCursorPos(22, 9) | |
| 518 | term.write("Inserire")
| |
| 519 | term.setCursorPos(22, 10) | |
| 520 | term.write("carta")
| |
| 521 | term.setCursorPos(22, 11) | |
| 522 | term.write("nella stampante")
| |
| 523 | term.setCursorPos(22, 13) | |
| 524 | sfondo(colors.green) | |
| 525 | term.write(" OK ")
| |
| 526 | fineSfondo() | |
| 527 | attesa = false | |
| 528 | while attesa == false do | |
| 529 | event, key, x, y = os.pullEvent("mouse_click")
| |
| 530 | if event == "mouse_click" and x > 22 and x < 31 and y == 13 then | |
| 531 | attesa = true | |
| 532 | end | |
| 533 | end | |
| 534 | ||
| 535 | elseif lpt.getInkLevel() == 0 then | |
| 536 | clear() | |
| 537 | disegnaTitolo() | |
| 538 | disegnaAvviso() | |
| 539 | fineColore() | |
| 540 | fineSfondo() | |
| 541 | term.setCursorPos(22, 9) | |
| 542 | term.write("Inserire")
| |
| 543 | term.setCursorPos(22, 10) | |
| 544 | term.write("inchiostro")
| |
| 545 | term.setCursorPos(22, 11) | |
| 546 | term.write("nella stampante")
| |
| 547 | term.setCursorPos(22, 13) | |
| 548 | sfondo(colors.green) | |
| 549 | term.write(" OK ")
| |
| 550 | fineSfondo() | |
| 551 | attesa = false | |
| 552 | while attesa == false do | |
| 553 | event, key, x, y = os.pullEvent("mouse_click")
| |
| 554 | if event == "mouse_click" and x > 22 and x < 31 and y == 13 then | |
| 555 | attesa = true | |
| 556 | end | |
| 557 | end | |
| 558 | ||
| 559 | else | |
| 560 | stampantePronta = true | |
| 561 | end | |
| 562 | end | |
| 563 | ||
| 564 | clear() | |
| 565 | disegnaStampante() | |
| 566 | fineColore() | |
| 567 | fineSfondo() | |
| 568 | term.setCursorPos(22, 9) | |
| 569 | term.write("Stampa")
| |
| 570 | term.setCursorPos(22, 10) | |
| 571 | term.write("bolletta")
| |
| 572 | term.setCursorPos(22, 11) | |
| 573 | term.write("in corso")
| |
| 574 | term.setCursorPos(22, 13) | |
| 575 | lpt.newPage() | |
| 576 | lpt.setPageTitle("Bolletta eRGB")
| |
| 577 | lpt.write("Bolletta eRGB")
| |
| 578 | lpt.setCursorPos(1, 3) | |
| 579 | lpt.write("Cliente: ")
| |
| 580 | lpt.setCursorPos(15, 3) | |
| 581 | lpt.write(cliente) | |
| 582 | lpt.setCursorPos(1, 4) | |
| 583 | lpt.write("Bolletta del: ")
| |
| 584 | lpt.setCursorPos(15, 4) | |
| 585 | lpt.setCursorPos(1, 6) | |
| 586 | lpt.write("Cliente: ")
| |
| 587 | lpt.setCursorPos(16, 6) | |
| 588 | lpt.write(UICnumber) | |
| 589 | lpt.setCursorPos(1, 7) | |
| 590 | lpt.write("Totale immissione:")
| |
| 591 | lpt.setCursorPos(1, 8) | |
| 592 | lpt.write(energy) | |
| 593 | lpt.setCursorPos(1, 10) | |
| 594 | lpt.write("Totale immissione:")
| |
| 595 | lpt.setCursorPos(1, 11) | |
| 596 | lpt.write(tassa) | |
| 597 | lpt.setCursorPos(4, 11) | |
| 598 | lpt.setCursorPos(1, 13) | |
| 599 | lpt.write("Totale PAGATO:")
| |
| 600 | lpt.setCursorPos(1, 14) | |
| 601 | lpt.write(totale) | |
| 602 | lpt.setCursorPos(6, 14) | |
| 603 | lpt.write("IC")
| |
| 604 | lpt.setCursorPos(1, 16) | |
| 605 | lpt.write("Il denaro pagato e'")
| |
| 606 | lpt.setCursorPos(1, 17) | |
| 607 | lpt.write("allegato a questa busta.")
| |
| 608 | lpt.setCursorPos(1, 18) | |
| 609 | lpt.write("Grazie per aver scelto")
| |
| 610 | lpt.setCursorPos(1, 19) | |
| 611 | lpt.write("eRGB!")
| |
| 612 | lpt.endPage() | |
| 613 | sleep(2) | |
| 614 | ||
| 615 | -- tabella disco | |
| 616 | local be = {}
| |
| 617 | be.UICnumber = cliente | |
| 618 | be.date = date | |
| 619 | be.totale = granTotale | |
| 620 | bedisco = textutils.serialize(be) | |
| 621 | ||
| 622 | -- Messaggio inserire il disco | |
| 623 | clear() | |
| 624 | disegnaTitolo() | |
| 625 | disegnaFloppy() | |
| 626 | fineColore() | |
| 627 | fineSfondo() | |
| 628 | term.setCursorPos(22, 9) | |
| 629 | term.write("Inserire il")
| |
| 630 | term.setCursorPos(22, 10) | |
| 631 | term.write("Disco Bolletta Elettronica")
| |
| 632 | term.setCursorPos(22, 11) | |
| 633 | term.write("nel lettore floppy")
| |
| 634 | event, latoFloppy = os.pullEvent("disk")
| |
| 635 | disk.setLabel(latoFloppy, "DBE") | |
| 636 | local handle = assert(fs.open("disk/be", "w"), "TOC ERROR")
| |
| 637 | handle.write(bedisco) | |
| 638 | handle.close() | |
| 639 | clear() | |
| 640 | print("Ritirare il disco")
| |
| 641 | disk.eject(latoFloppy) | |
| 642 | ||
| 643 | end |