CORE-POS/IS4C

View on GitHub
fannie/admin/labels/VendorTags.php

Summary

Maintainability
A
1 hr
Test Coverage
F
5%
<?php

use COREPOS\Fannie\API\item\signage\TagsNoPrice; 

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

class VendorTags extends FannieRESTfulPage
{
    protected $header = 'Vendor Tags';
    protected $title = 'Vendor Tags';
    public $description = '[Vendor Tags] can print ordering shelf tags for vendor catalog items that aren\'t carried in-store';

    protected function post_id_handler()
    {
        $upcs = explode("\n", $this->id);
        $upcs = array_filter($upcs, function($i) { return strlen(trim($i)) > 0; });
        $upcs = array_map(function($i) { return BarcodeLib::padUPC($i); }, $upcs);
        list($inStr, $args) = $this->connection->safeInClause($upcs);
        $query = "
            SELECT v.upc,
                v.description,
                v.brand,
                v.units,
                v.size,
                v.sku,
                0 AS scale,
                0 AS numflag,
                '' AS startDate,
                '' AS endDate,
                '' AS batchName,
                '' AS pricePerUnit,
                '' AS unitofmeasure,
                0 AS originID,
                '' AS originName,
                '' AS originShortName,
                v.description AS posDescription,
                1 AS signCount,
                n.vendorName AS vendor
            FROM vendorItems AS v
                LEFT JOIN vendors AS n ON n.vendorID=v.vendorID
            WHERE upc IN ({$inStr})";
        $prep = $this->connection->prepare($query);
        $res = $this->connection->execute($prep, $args);
        $data = array();
        while ($row = $this->connection->fetchRow($res)) {
            $data[] = $row;
        }

        $tags = new TagsNoPrice($data, 'provided');
        $tags->drawPDF();

        return false;
    }

    protected function get_view()
    {
        $this->addOnloadCommand("\$('#upc-in').focus();");
        return <<<HTML
<form method="post">
    <div class="form-group">
        <label>UPCs</label>
        <textarea class="form-control" rows="10" id="upc-in" name="id"></textarea>
    </div>
    <p>
        <button class="btn btn-default btn-core">Get Tags</button>
    </p>
</form>
HTML;
    }

    public function helpContent()
    {
        return <<<HTML
<p>
Enter one or more UPCs to generate a PDF of ordering tags.
This tool fills a specific gap in that it will print tags
for items that <strong>are</strong> in the vendor catalog
but <strong>are not</strong> among the items that the store
actually carries and sells (e.g., recipe ingredients).
</p>
HTML;
    }
}

FannieDispatch::conditionalExec();