Example #1
0
 public function testDatabase()
 {
     $db = Database::tDataConnect();
     $this->assertInstanceOf('\\COREPOS\\pos\\lib\\SQLManager', $db);
     $this->assertEquals(CoreLocal::get('tDatabase'), $db->default_db);
     $db = Database::pDataConnect();
     $this->assertInstanceOf('\\COREPOS\\pos\\lib\\SQLManager', $db);
     $this->assertEquals(CoreLocal::get('pDatabase'), $db->default_db);
     $this->assertEquals(1, Database::gettransno(-1));
     // not a real emp_no
     $db = Database::tDataConnect();
     $matches = Database::localMatchingColumns($db, 'localtrans', 'localtemptrans');
     $this->assertInternalType('string', $matches);
     $this->assertRegExp('/(.+)/', $matches);
     $globals = array('CashierNo' => 9999, 'cashier' => 'TRAINING', 'LoggedIn' => 0, 'TransNo' => 1, 'TTLFlag' => 0, 'FntlFlag' => 0, 'TaxExempt' => 0);
     Database::setglobalvalues($globals);
     $this->assertEquals(9999, CoreLocal::get('CashierNo'));
     $this->assertEquals('TRAINING', CoreLocal::get('cashier'));
     $this->assertEquals(0, CoreLocal::get('LoggedIn'));
     $this->assertEquals(1, CoreLocal::get('transno'));
     $this->assertEquals(0, CoreLocal::get('ttlflag'));
     $this->assertEquals(0, CoreLocal::get('fntlflag'));
     $this->assertEquals(0, CoreLocal::get('TaxExempt'));
     Database::loadglobalvalues();
     // reload session from db. shouldn't change.
     $this->assertEquals(9999, CoreLocal::get('CashierNo'));
     $this->assertEquals('TRAINING', CoreLocal::get('cashier'));
     $this->assertEquals(0, CoreLocal::get('LoggedIn'));
     $this->assertEquals(1, CoreLocal::get('transno'));
     $this->assertEquals(0, CoreLocal::get('ttlflag'));
     $this->assertEquals(0, CoreLocal::get('fntlflag'));
     $this->assertEquals(0, CoreLocal::get('TaxExempt'));
     Database::setglobalvalue('TTLFlag', 1);
     Database::loadglobalvalues();
     $this->assertEquals(1, CoreLocal::get('ttlflag'));
     Database::setglobalflags(0);
     Database::loadglobalvalues();
     $this->assertEquals(0, CoreLocal::get('ttlflag'));
     $this->assertEquals(0, CoreLocal::get('fntlflag'));
     if (!class_exists('lttLib')) {
         include dirname(__FILE__) . '/lttLib.php';
     }
     lttLib::clear();
     $record = lttLib::genericRecord();
     $record['upc'] = '0000000000000';
     $record['description'] = uniqid('TEST-');
     TransRecord::addRecord($record);
     SuspendLib::suspendorder();
     $db = Database::mDataConnect();
     $query = "\n            SELECT *\n            FROM suspended\n            WHERE upc='{$record['upc']}'\n                AND description='{$record['description']}'\n                AND datetime >= " . $db->curdate();
     $result = $db->query($query);
     $this->assertNotEquals(false, $result, 'Could not query suspended record');
     $this->assertEquals(1, $db->num_rows($result), 'Could not find suspended record');
     $row = $db->fetch_row($result);
     $this->assertInternalType('array', $row, 'Invalid suspended record');
     foreach ($record as $column => $value) {
         $this->assertArrayHasKey($column, $row, 'Suspended missing ' . $column);
         $this->assertEquals($value, $row[$column], 'Suspended mismatch on column ' . $column);
     }
 }
Example #2
0
 private static function addRemoveDiscountViews()
 {
     $dbc = Database::tDataConnect();
     if (CoreLocal::get("isMember") == 1 || CoreLocal::get("memberID") == CoreLocal::get("visitingMem")) {
         $cols = Database::localMatchingColumns($dbc, "localtemptrans", "memdiscountadd");
         $dbc->query("INSERT INTO localtemptrans ({$cols}) SELECT {$cols} FROM memdiscountadd");
     } else {
         $cols = Database::localMatchingColumns($dbc, "localtemptrans", "memdiscountremove");
         $dbc->query("INSERT INTO localtemptrans ({$cols}) SELECT {$cols} FROM memdiscountremove");
     }
     if (CoreLocal::get("isStaff") != 0) {
         $cols = Database::localMatchingColumns($dbc, "localtemptrans", "staffdiscountadd");
         $dbc->query("INSERT INTO localtemptrans ({$cols}) SELECT {$cols} FROM staffdiscountadd");
     } else {
         $cols = Database::localMatchingColumns($dbc, "localtemptrans", "staffdiscountremove");
         $dbc->query("INSERT INTO localtemptrans ({$cols}) SELECT {$cols} FROM staffdiscountremove");
     }
 }
Example #3
0
 /**
   Rotate current transaction data
   Current data in translog.localtemptrans is inserted into:
   - translog.dtransactions
   - translog.localtrans
   - translog.localtranstoday (if not a view)
   - translog.localtrans_today (if present)
 
   @return [boolean] success or failure
 
   Success or failure is based on whether or not
   the insert into translog.dtransactions succeeds. That's
   the most important query in terms of ensuring data
   flows properly to the server.
 */
 public static function rotateTempData()
 {
     $connection = Database::tDataConnect();
     // LEGACY.
     // these records should be written correctly from the start
     // could go away with verification of above.
     $connection->query("update localtemptrans set trans_type = 'T' where trans_subtype IN ('CP','IC')");
     $connection->query("insert into localtrans select * from localtemptrans");
     // localtranstoday converted from view to table
     if (!$connection->isView('localtranstoday')) {
         $connection->query("insert into localtranstoday select * from localtemptrans");
     }
     // legacy table when localtranstoday is still a view
     if ($connection->table_exists('localtrans_today')) {
         $connection->query("insert into localtrans_today select * from localtemptrans");
     }
     $cols = Database::localMatchingColumns($connection, 'dtransactions', 'localtemptrans');
     $ret = $connection->query("insert into dtransactions ({$cols}) select {$cols} from localtemptrans");
     /**
       If store_id column is present in lane dtransactions table
       and the lane's store_id has been configured, assign that
       value to the column. Otherwise it may be handled but some
       other mechanism such as triggers or column default values.
     */
     $table_def = $connection->table_definition('dtransactions');
     if (isset($table_def['store_id']) && CoreLocal::get('store_id') !== '') {
         $assignQ = sprintf('
         UPDATE dtransactions
         SET store_id = %d', CoreLocal::get('store_id'));
         $connection->query($assignQ);
     }
     return $ret ? true : false;
 }