CORE-POS/IS4C

View on GitHub
fannie/modules/plugins2.0/RemotePrintEditor/RemotePrintPage.php

Summary

Maintainability
A
1 hr
Test Coverage
<?php

include(__DIR__ . '/../../../config.php');
if (!class_exists('FannieAPI')) {
    include(__DIR__ . '/../../../classlib2.0/FannieAPI.php');
}

class RemotePrintPage extends FannieRESTfulPage
{
    protected $header = 'Remote Print Editor';
    protected $title = 'Remote Print Editor';
    public $description = '[Remote Print Editor] sets UPCs and/or departments for remote printing';

    protected function post_id_handler()
    {
        $type = FormLib::get('type', 'u');
        $prep = $this->connection->prepare('INSERT INTO RemotePrint (identifier, type) VALUES (?, ?)');
        $args = array(BarcodeLib::padUPC($this->id), 'UPC');
        if ($type != 'u') {
            $args = array($this->id, 'Department');
        }
        $this->connection->execute($prep, $args);

        return 'RemotePrintPage.php?type=' . $type;
    }

    protected function delete_id_handler()
    {
        $prep = $this->connection->prepare('DELETE FROM RemotePrint WHERE remotePrintID=?');
        $this->connection->execute($prep, array($this->id));

        return 'RemotePrintPage.php';
    }

    protected function get_view()
    {
        $query = "
            SELECT r.*,
                CASE
                    WHEN p.description IS NOT NULL THEN p.description
                    ELSE d.dept_name
                END AS name
            FROM RemotePrint AS r
                " . DTrans::joinProducts('r', 'p', 'LEFT') . " AND r.type='UPC'
                LEFT JOIN departments AS d ON r.identifier=d.dept_no AND r.type<>'UPC'
            ORDER BY r.type, r.identifier";
        $query = str_replace('r.upc', 'r.identifier', $query);
        $res = $this->connection->query($query);
        $table = '';
        while ($row = $this->connection->fetchRow($res)) {
            $table .= sprintf('<tr><td>%s</td><td>%s</td><td><a href="?_method=delete&id=%d">%s</a></td></tr>',
                $row['identifier'],
                $row['name'],
                $row['remotePrintID'],
                COREPOS\Fannie\API\lib\FannieUI::deleteIcon()
            );
        }
        $upcSelect = 'selected';
        $deptSelect = '';
        if (FormLib::get('type') == 'd') {
            $upcSelect = '';
            $deptSelect = 'selected';
        }
        $this->addOnloadCommand("\$('#rpID').focus();");

        return <<<HTML
<form method="post" action="RemotePrintPage.php">
    <div class="form-inline">
        <select name="type" class="form-control">
            <option value="u" {$upcSelect}>UPC</option>
            <option value="d" {$deptSelect}>Department</option>
        </select>
        <input type="text" name="id" id="rpID" class="form-control" />
        <button type="submit" class="btn btn-default">Add Entry</button>
    </div>
</form>
<p>
<table class="table table-bordered table-striped">
    <tr><th>UPC/Department</th><th>Name</th><th>Delete</th></tr>
    {$table}
</table>
</p>
HTML;
    }
}

FannieDispatch::conditionalExec();