/**
   Scan prodUpdate from price changes and log them
   in prodPriceHistory
   @param $dbc [SQLManager] db connection
   @param $offset [optional int] start scanning from this prodUpdateID
 */
 private function scanPriceChanges($dbc, $offset = 0)
 {
     $prodUpdateQ = 'SELECT prodUpdateID FROM prodUpdate ';
     $args = array();
     if ($offset > 0) {
         $prodUpdateQ .= ' WHERE prodUpdateID > ? ';
         $args[] = $offset;
     }
     $prodUpdateQ .= ' ORDER BY upc, modified';
     $prodUpdateP = $dbc->prepare($prodUpdateQ);
     $prodUpdateR = $dbc->execute($prodUpdateP, $args);
     $chkP = $dbc->prepare("SELECT modified,price FROM\n            prodPriceHistory WHERE upc=?\n            ORDER BY modified DESC");
     $upc = null;
     $prevPrice = null;
     $update = new ProdUpdateModel($dbc);
     $history = new ProdPriceHistoryModel($dbc);
     /**
       Go through changes to each UPC in order
       When encountering a new UPC, lookup previous price
       (if any) from prodPriceHistory
       Only create new entries when the prodUpdate record's price
       does not match the previous price.
     */
     while ($prodUpdateW = $dbc->fetch_row($prodUpdateR)) {
         $update->reset();
         $update->prodUpdateID($prodUpdateW['prodUpdateID']);
         $update->load();
         if ($upc === null || $upc != $update->upc()) {
             $upc = $update->upc();
             $prevPrice = null;
             $chkR = $dbc->execute($chkP, array($upc));
             if ($dbc->num_rows($chkR) > 0) {
                 $chkW = $dbc->fetch_row($chkR);
                 $prevPrice = $chkW['price'];
             }
         }
         if ($prevPrice != $update->price()) {
             $history->reset();
             $history->upc($upc);
             $history->storeID($update->storeID());
             $history->modified($update->modified());
             $history->price($update->price());
             $history->uid($update->user());
             $history->prodUpdateID($update->prodUpdateID());
             $history->save();
             $this->cronMsg('Add price change #' . $update->prodUpdateID(), FannieLogger::INFO);
         }
         $prevPrice = $update->price();
     }
 }