summaryrefslogtreecommitdiff
path: root/public/print.php
diff options
context:
space:
mode:
Diffstat (limited to 'public/print.php')
-rw-r--r--public/print.php127
1 files changed, 127 insertions, 0 deletions
diff --git a/public/print.php b/public/print.php
new file mode 100644
index 0000000..44b9397
--- /dev/null
+++ b/public/print.php
@@ -0,0 +1,127 @@
+<?php
+// 01. Initialize --------------------------------------------------------------
+// include paremetres and libraries, init timezome, init variables
+////////////////////////////////////////////////////////////////////////////////
+
+include("config/parametres.php");
+include("includes/sessions.php");
+include("includes/functions.php");
+date_default_timezone_set('Europe/Athens');
+setlocale(LC_ALL, 'el_GR.UTF-8', 'grc');
+
+$totals = get_totals(); // get totals of categories
+$formARRAY = json_decode(FORMJSON); // list of fields
+$items = array(); // items to print
+
+if (ROLE < VISOR) {
+ $deny = array(
+ 'head' => "Περιορισμός πρόσβασης",
+ 'message' => "<p>Μόνο χρήστες που είναι πιστοποιημένοι ως επόπτες έχουν τη δυνατότητα να εκτυπώσουν.<p>
+ <p>Αν διαθέτετε ρόλο επόπτη ή θεωρείτε ότι έχει γίνει κάποιο λάθος, παρακαλώ επικοινωνήστε με τον διαχειριστή της εφαρμογής.</p>"
+ );
+ include("includes/ui-message.php");
+ die();
+}
+
+
+// 02. Parse arguments and intitialize behaviout flags -------------------------
+// CCODE -> ccode [ certain id: ##.## --or-- 0 = any id ]
+// COVER -> (yes|no) print cover-page (default: no)
+// ID -> record id
+// ---
+// Call options:
+// ? ccode=ac.1 [& cover=no] : call for category; no cover
+// ? ccode=0 & cover=yes : all items; print cover
+// ? id=123 : specific item (no cover / no header)
+////////////////////////////////////////////////////////////////////////////////
+
+if ((isset($_GET['ccode'])) && (mb_strlen($_GET['ccode']) < 6)) {
+ $ccid = $_GET['ccode']; // category id passed
+ $doSearch = true;
+ define("PRINT_MODE", 'book');
+ define("RENDER_COVER", ((isset($_GET['cover'])) && ($_GET['cover'] == 'no')) ? false : true );
+ define("RENDER_HF", true); // render header + footer
+}
+else if ((isset($_GET['id'])) && (strlen($_GET['id']) < 5)) {
+ $iid = $_GET['id'];
+ define("PRINT_MODE", 'page');
+ define("RENDER_COVER", false); // do not include cover-page
+ define("RENDER_HF", true); // do not render header + footer
+}
+else {
+ $deny = array(
+ 'head' => "Λάθος κλήση",
+ 'message' => "<p>Η διαδικασία έχει κληθεί με λανθασμένες ή ελλειπείς παραμέτρους.<p>
+ <p>Αν είστε System Administrator ελέγξτε τις παραμέτρους κλήσης της και ξαναπροσπαθήστε.</p>
+ <p>Αν έχετε φτάσει σε αυτή τη σελίδα χρησιμοποιώντας μια αυτοματοποιημένη εργασία, παρακαλώ επικοινωνήστε με τον διαχειριστή της εφαρμογής.</p>"
+ );
+ include("includes/ui-message.php");
+ die();
+}
+
+
+// 03. Get data to print -------------------------------------------------------
+// init database connection, prepare SELECT, fetch data
+////////////////////////////////////////////////////////////////////////////////
+
+$_dbc = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_DBMS);
+if ($_dbc->connect_errno) {
+ echo "Database connection failed; Please try in a few minutes. ";
+ if (TESTING) echo $_dbc->connect_error;
+ $_dbc->close(); die();
+}
+$_dbc->set_charset("utf8");
+
+// prepare statemet
+if (isset($iid)) {
+ $_stm = $_dbc->prepare("SELECT id, img, img2, ccode, identity, summary, operator, `timestamp`, record FROM items WHERE id = ?");
+ $_stm->bind_param("d", $iid);
+}
+else if ((isset($ccid)) && ($ccid != '0')) {
+ $_stm = $_dbc->prepare("SELECT id, img, img2, ccode, identity, summary, operator, `timestamp`, record FROM items WHERE ccode = ?");
+ $_stm->bind_param("s", $ccid);
+}
+else if (isset($ccid)) {
+ $_stm = $_dbc->prepare("SELECT id, img, img2, ccode, identity, summary, operator, `timestamp`, record FROM items");
+}
+else {
+ echo "Wrong call; Nothing to print"; die();
+}
+$_stm->execute(); // execute query
+$_stm->store_result(); // store result
+
+if ($_stm->num_rows) {
+
+ $_stm->bind_result($id, $imgfile, $imgfile2, $ccode, $idnt, $sum, $opr, $tm, $serREC); // bind result variables
+
+ while ($_stm->fetch()) {
+ $record = unserialize($serREC);
+ $it_id = explode('.', $idnt);
+
+ // calculate record
+ $record['id'] = $id;
+ $record['ccode'] = $ccode;
+ $record['img'] = ( (strlen($imgfile) > 9) ? ("/". UPLOAD_DIR . intdiv($id,FOLDER_CPC) ."/". $imgfile) : "" );
+ $record['img2'] = ( (strlen($imgfile2) > 9) ? ("/". UPLOAD_DIR . intdiv($id,FOLDER_CPC) ."/". $imgfile2) : "" );
+ $record['identity'] = $idnt;
+ $record['operator'] = $opr;
+ $record['itemid'] = end($it_id);
+ $record['totalitems'] = $totals[$record['ccode']];
+ $record['timestamp'] = local_dt($tm);
+ $record['summary'] = $sum;
+
+ $items[] = $record;
+ unset($record);
+ }
+}
+
+$_stm->close(); // close statement
+$_dbc->close(); // close connection
+
+// print_r($items); die();
+
+// 03. Prepare PDF to print ----------------------------------------------------
+// include printing php script
+////////////////////////////////////////////////////////////////////////////////
+
+include("do-pdf.php");