CORE-POS/IS4C

View on GitHub
fannie/modules/plugins2.0/WfcVirtualCoupon/WfcOamFanout.php

Summary

Maintainability
A
1 hr
Test Coverage
<?php

class WfcOamFanout extends FannieTask 
{
    public $name = 'WFC OAM Fan Out';
    public $description = 'Update OAM notifications for today & push to lanes as needed';
    public $log_start_stop = false;

    public function run()
    {
        $dbc = FannieDB::get($this->config->get('OP_DB'));
        $curP = $dbc->prepare('SELECT * FROM WfcOamSchedule WHERE ? BETWEEN startDate AND endDate');
        $curRow = $dbc->getRow($curP, array(date('Y-m-d')));
        if ($curRow) {
            $prep = $dbc->prepare("SELECT card_no
                FROM " . FannieDB::fqn('dlog', 'trans') . "
                WHERE upc=?
                    GROUP BY card_no
                HAVING SUM(quantity) <> 0");
            $res = $dbc->execute($prep, array($curRow['upc']));
            
            $chkP = $dbc->prepare("SELECT cardNo FROM CustomerNotifications WHERE message <> '' AND cardNo=? AND source='WFC.OAM'");
            $setP = $dbc->prepare("UPDATE CustomerNotifications SET message='' WHERE cardNo=? AND source='WFC.OAM'");
            $needSync = 0;
            while ($row = $dbc->fetchRow($res)) {
                $check = $dbc->getValue($chkP, array($row['card_no']));
                if ($check) {
                    $needSync++;
                    $dbc->execute($setP, array($row['card_no']));
                }
            }
            if ($needSync) {
                $this->cronMsg("Re-syncing OAM notifications ({$needSync})");
                COREPOS\Fannie\API\data\SyncLanes::pushTable('CustomerNotifications');
                $curl = curl_init("http://steve/IS4C/fannie/sync/TableSyncPage.php?tablename=&othertable=CustomerNotifications");
                curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
                curl_exec($curl);
                curl_close($curl);
            }
        }
    }
}