CORE-POS/IS4C

View on GitHub
fannie/modules/plugins2.0/OverShortTools/OsModCountReport.php

Summary

Maintainability
A
1 hr
Test Coverage
<?php

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

class OsModCountReport extends FannieReportPage 
{
    // 10Nov13 EL Added title and header
    protected $title = 'Over/Short MOD Count Report';
    protected $header = 'Over/Short MOD Count Report';
    protected $auth_classes = array('overshorts');
    public $page_set = 'Plugin :: Over/Shorts';
    public $description = '[MOD Count Report] shows spot check counts';
    public $report_set = 'Finance';
    protected $required_fields = array('date1', 'date2');
    protected $new_tablesorter = true;
    protected $report_headers = array('Date', 'Emp#', 'Name', 'Count');

    public function fetch_report_data()
    {
        $startID = date('Ymd', strtotime($this->form->date1));
        $endID = date('Ymd', strtotime($this->form->date2));
        $store = FormLib::get('store');

        $query = "SELECT d.dropAmount, d.empNo, e.FirstName, d.dateID
            FROM " . FannieDB::fqn('DailyEmployeeCounts', 'plugin:OverShortDatabase') . " AS d
                LEFT JOIN employees AS e on d.empNo=e.emp_no
            WHERE d.dateID BETWEEN ? AND ?
                AND countType='MOD' ";
        $args = array($startID, $endID);
        if ($store) {
            $query .= " AND d.storeID=? ";
            $args[] = $store;
        }
        $query .= " ORDER BY dateID";
        $prep = $this->connection->prepare($query);
        $res = $this->connection->execute($prep, $args);
        $data = array();
        while ($row = $this->connection->fetchRow($res)) {
            $data[] = array(
                date('Y-m-d', strtotime($row['dateID'])),
                $row['empNo'],
                $row['FirstName'],
                sprintf('%.2f', $row['dropAmount']),
            );
        }

        return $data;
    }

    public function form_content()
    {
        $dates = FormLib::standardDateFields();
        $stores = FormLib::storePicker();

        return <<<HTML
<form method="get">
    <div class="col-sm-5">
        <div class="form-group">
            <label>Store</label>
            {$stores['html']}
        </div>
        <div class="form-group">
            <button class="btn btn-default btn-core">Submit</button>
        </div>
    </div>
    {$dates}
</form>
HTML;
    }

}

FannieDispatch::conditionalExec();