CORE-POS/IS4C

View on GitHub
fannie/modules/plugins2.0/WfcClassMenu/WfcClassPriceTask.php

Summary

Maintainability
A
1 hr
Test Coverage
<?php
/*******************************************************************************

    Copyright 2014 Whole Foods Co-op

    This file is part of IT CORE.

    IT CORE is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.

    IT CORE is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    in the file license.txt along with IT CORE; if not, write to the Free Software
    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

*********************************************************************************/

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

/**
*/
class WfcClassPriceTask extends FannieTask 
{
    public $name = 'WFC Class Price Task';

    public $description = 'Re-sync class pricing with the website.';

    public function run()
    {
        $local = FannieDB::get($this->config->get('OP_DB'));
        $res = $local->query('SELECT u.upc 
            FROM productUser AS u 
                LEFT JOIN productExpires AS e on u.upc=e.upc 
            WHERE e.expires >= CURDATE()
                AND enableOnline=1
                and soldOut=0');
        $itemCount = 0;
        while ($row = $local->fetchRow($res)) {
            $prod = new ProductsModel($local);
            $prod->upc($row['upc']);
            if ($prod->load()) {
                require(__DIR__ . '/../../../src/Credentials/OutsideDB.tunneled.php');
                if (!$dbc->isConnected()) {
                    $this->cronMsg('Remote connect failed');
                    break;
                }
                $prod->setConnection($dbc);
                if ($prod->save()) {
                    $itemCount++;
                }
            }
        }
        $this->cronMsg("Synced {$itemCount} items to website");
    }
}