From dbd797af99a221df87e45e8540c713fdef75a939 Mon Sep 17 00:00:00 2001 From: Skylar Ittner Date: Wed, 3 Jun 2020 01:06:19 -0600 Subject: [PATCH] Add label printing with gLabels integration --- langs/en/actions.json | 5 +- langs/en/labels.json | 3 +- langs/en/messages.json | 3 +- langs/messages.php | 4 + lib/Clients.lib.php | 2 +- pages.php | 3 + pages/machines.php | 2 +- pages/printlabel.php | 55 ++++++++++++++ pages/viewmachine.php | 4 +- print/print.php | 120 ++++++++++++++++++++++++++++++ print/templates/doortag.glabels | Bin 0 -> 48724 bytes print/templates/machineid.glabels | Bin 0 -> 3913 bytes required.php | 4 +- settings.template.php | 3 +- 14 files changed, 199 insertions(+), 9 deletions(-) create mode 100644 pages/printlabel.php create mode 100644 print/print.php create mode 100644 print/templates/doortag.glabels create mode 100644 print/templates/machineid.glabels diff --git a/langs/en/actions.json b/langs/en/actions.json index 0fb4def..5007c91 100644 --- a/langs/en/actions.json +++ b/langs/en/actions.json @@ -5,5 +5,8 @@ "View Machines": "View Machines", "Add Event": "Add Event", "Add Component": "Add Component", - "Add Client": "Add Client" + "Add Client": "Add Client", + "Print": "Print", + "Print Labels": "Print Labels", + "Go to machine": "Go to machine" } diff --git a/langs/en/labels.json b/langs/en/labels.json index c5c2448..04fb2c3 100644 --- a/langs/en/labels.json +++ b/langs/en/labels.json @@ -1,5 +1,6 @@ { "Public Notes": "Public Notes", "Private Notes": "Private Notes", - "Machine ID": "Machine ID" + "Machine ID": "Machine ID", + "Back": "Back" } \ No newline at end of file diff --git a/langs/en/messages.json b/langs/en/messages.json index 58b866d..d34aeaf 100644 --- a/langs/en/messages.json +++ b/langs/en/messages.json @@ -3,5 +3,6 @@ "Component saved!": "Component saved!", "Event logged!": "Event logged!", "Client saved!": "Client saved!", - "Client must be edited in Invoice Ninja.": "Client must be edited in Invoice Ninja." + "Client must be edited in Invoice Ninja.": "Client must be edited in Invoice Ninja.", + "That ID does not exist in the system.": "That ID does not exist in the system." } diff --git a/langs/messages.php b/langs/messages.php index 888045a..0563225 100644 --- a/langs/messages.php +++ b/langs/messages.php @@ -17,6 +17,10 @@ define("MESSAGES", [ "string" => "You don't have permission to do that.", "type" => "danger" ], + "no_such_machine" => [ + "string" => "That ID does not exist in the system.", + "type" => "danger" + ], "machine_saved" => [ "string" => "Machine saved!", "type" => "success" diff --git a/lib/Clients.lib.php b/lib/Clients.lib.php index a1a673c..6ce99f5 100644 --- a/lib/Clients.lib.php +++ b/lib/Clients.lib.php @@ -42,7 +42,7 @@ if (!empty($SETTINGS["apis"]["invoiceninja"]["token"])) { } public static function getClient($id): Client { - return new Client($client->id, false); + return new Client($id, false); } public static function areLocal(): bool { diff --git a/pages.php b/pages.php index 0632d94..a7c7280 100644 --- a/pages.php +++ b/pages.php @@ -56,4 +56,7 @@ define("PAGES", [ "editclient" => [ "title" => "Edit Client" ], + "printlabel" => [ + "title" => "Print" + ], ]); \ No newline at end of file diff --git a/pages/machines.php b/pages/machines.php index a0a9b29..d746bb3 100644 --- a/pages/machines.php +++ b/pages/machines.php @@ -61,7 +61,7 @@ $clients = Clients::getAll(); - get("View"); ?> + get("Print"); ?> hasPermission("MACHINEMANAGER_VIEW")) { + header("Location: ./app.php?msg=no_permission"); + die(); +} + +if (!empty($_GET["id"])) { + $machineid = $_GET["id"]; +} else if (!empty($_GET["arg"])) { + $machineid = $_GET["arg"]; +} +if (!Machine::exists($machineid)) { + header("Location: ./app.php?msg=no_such_machine"); + exit(); +} + +$labeltype = "machineid"; +if (!empty($VARS["labeltype"])) { + switch ($VARS["labeltype"]) { + case "doortag": + $labeltype = "doortag"; + break; + case "machineid": + default: + $labeltype = "machineid"; + } +} +$machine = new Machine($machineid); + +$pdfurl = "./print/print.php?labeltype=$labeltype&id=$machineid"; +?> + +
+ + +
+ +
+ +
\ No newline at end of file diff --git a/pages/viewmachine.php b/pages/viewmachine.php index 0265e57..5750a8c 100644 --- a/pages/viewmachine.php +++ b/pages/viewmachine.php @@ -19,7 +19,7 @@ if (!empty($_GET["id"])) { $machineid = $_GET["arg"]; } if (!Machine::exists($machineid)) { - header("Location: ./app.php?msg=invalid_parameters"); + header("Location: ./app.php?msg=no_such_machine"); } $machine = new Machine($machineid); @@ -34,6 +34,8 @@ $machine = new Machine($machineid); get("Edit"); ?> get("Add Event"); ?> get("Add Component"); ?> + get("Print Labels"); ?> + get("Back"); ?> diff --git a/print/print.php b/print/print.php new file mode 100644 index 0000000..78e318b --- /dev/null +++ b/print/print.php @@ -0,0 +1,120 @@ +hasPermission("MACHINEMANAGER_VIEW")) { + die("No permission."); +} + +if (!empty($_GET["id"])) { + $machineid = $_GET["id"]; +} else if (!empty($_GET["arg"])) { + $machineid = $_GET["arg"]; +} +if (!Machine::exists($machineid)) { + exit("No such machine."); +} + +$labeltype = "machineid"; +switch ($VARS["labeltype"]) { + case "doortag": + $labeltype = "doortag"; + break; + case "machineid": + default: + $labeltype = "machineid"; +} +$machine = new Machine($machineid); + +$mergedata = [ + "id" => $machine->getID(), + "link" => str_replace("{{id}}", $machine->getID(), $SETTINGS["branding"]["trackinglink"]), + "price" => number_format($machine->getPrice(), 2), + "serial" => $machine->getSerial(), + "model" => $machine->getModel(), + "os" => $machine->getOS(), + "manufacturer" => $machine->getManufacturer(), + "publicnotes" => $machine->getPublicNotes(), + "privatenotes" => $machine->getPrivateNotes(), + "clientid" => "", + "clientname" => "", + "clientphone" => "", + "clientphoneformatted" => "", + "clientemail" => "", + "clientbillingaddress" => "", + "clientshippingaddress" => "", + "clientpublicnotes" => "", + "clientprivatenotes" => "", +]; + +/** + * https://stackoverflow.com/a/14167216 + */ +function formatPhoneNumber($phoneNumber) { + $phoneNumber = preg_replace('/[^0-9]/', '', $phoneNumber); + + if (strlen($phoneNumber) > 10) { + $countryCode = substr($phoneNumber, 0, strlen($phoneNumber) - 10); + $areaCode = substr($phoneNumber, -10, 3); + $nextThree = substr($phoneNumber, -7, 3); + $lastFour = substr($phoneNumber, -4, 4); + + $phoneNumber = '+' . $countryCode . ' (' . $areaCode . ') ' . $nextThree . '-' . $lastFour; + } else if (strlen($phoneNumber) == 10) { + $areaCode = substr($phoneNumber, 0, 3); + $nextThree = substr($phoneNumber, 3, 3); + $lastFour = substr($phoneNumber, 6, 4); + + $phoneNumber = '(' . $areaCode . ') ' . $nextThree . '-' . $lastFour; + } else if (strlen($phoneNumber) == 7) { + $nextThree = substr($phoneNumber, 0, 3); + $lastFour = substr($phoneNumber, 3, 4); + + $phoneNumber = $nextThree . '-' . $lastFour; + } + + return $phoneNumber; +} + +if (!empty($machine->getClientID())) { + $client = Clients::getClient($machine->getClientID()); + $mergedata["clientid"] = $client->getID(); + $mergedata["clientname"] = $client->getName(); + $mergedata["clientphone"] = $client->getPhone(); + $mergedata["clientphoneformatted"] = formatPhoneNumber($client->getPhone()); + $mergedata["clientemail"] = $client->getEmail(); + $mergedata["clientbillingaddress"] = $client->getBillingAddress(); + $mergedata["clientshippingaddress"] = $client->getMailingAddress(); + $mergedata["clientpublicnotes"] = $client->getPublicNotes(); + $mergedata["clientprivatenotes"] = $client->getPrivateNotes(); +} + +$csvfile = tempnam("/tmp", "MCHMGR_CSV"); + +$fp = fopen($csvfile, 'w'); +fputcsv($fp, array_keys($mergedata)); +fputcsv($fp, array_values($mergedata)); +fclose($fp); + +$pdffile = tempnam("/tmp", "MCHMGR_PDF"); + +shell_exec("glabels-3-batch --input=$csvfile --output=$pdffile " . __DIR__ . "/templates/$labeltype.glabels"); + +header('Content-type: application/pdf'); +header("Content-Disposition: inline; filename=\"$labeltype (ID $mergedata[id])\""); +header('Content-Transfer-Encoding: binary'); +header('Accept-Ranges: bytes'); + +echo file_get_contents($pdffile); + +unlink($csvfile); +unlink($pdffile); \ No newline at end of file diff --git a/print/templates/doortag.glabels b/print/templates/doortag.glabels new file mode 100644 index 0000000000000000000000000000000000000000..5762422054d085f0a4bc7cd0fb6ff4348214128a GIT binary patch literal 48724 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 XePVPGPX960)vLb)x&xlvb~OM1j~1hu literal 0 HcmV?d00001 diff --git a/required.php b/required.php index b81e8b8..97cc2fc 100644 --- a/required.php +++ b/required.php @@ -38,7 +38,7 @@ if (isset($_SESSION['mobile']) && $_SESSION['mobile'] === TRUE) { . "object-src 'none'; " . "img-src * data:; " . "media-src 'self'; " - . "frame-src 'none'; " + . "frame-src 'self'; " . "font-src 'self'; " . "connect-src *; " . "style-src 'self' 'unsafe-inline'; " @@ -49,7 +49,7 @@ if (isset($_SESSION['mobile']) && $_SESSION['mobile'] === TRUE) { . "object-src 'none'; " . "img-src * data:; " . "media-src 'self'; " - . "frame-src 'none'; " + . "frame-src 'self'; " . "font-src 'self'; " . "connect-src *; " . "style-src 'self' 'nonce-$SECURE_NONCE'; " diff --git a/settings.template.php b/settings.template.php index 5fa6ace..2480965 100644 --- a/settings.template.php +++ b/settings.template.php @@ -39,7 +39,8 @@ $SETTINGS = [ "branding" => [ "machineidnumber" => "Netsyms machine ID number", "shortmachineid" => "Machine ID Number", - "publictitle" => "Machine Lookup" + "publictitle" => "Machine Lookup", + "trackinglink" => "https://qr.ntsm.io/?t=mid&q={{id}}" ], // Settings for connecting to the AccountHub server. "accounthub" => [