public function testItemFlags() { $config = FannieConfig::factory(); $connection = FannieDB::get($config->OP_DB); /** Setup preconditions for the test */ $upc = BarcodeLib::padUPC('16'); $product = new ProductsModel($connection); $product->upc($upc); $product->store_id(0); $product->load(); if ($product->numflag() != 0) { $product->numflag(0); } $product->save(); $module = new ItemFlagsModule(); $module->setConnection($connection); $module->setConfig($config); $form = new \COREPOS\common\mvc\ValueContainer(); $module->setForm($form); $saved = $module->saveFormData($upc); $this->assertEquals(true, $saved, 'Handled empty input'); $product->reset(); $product->upc($upc); $product->load(); $this->assertEquals(0, $product->numflag(), 'Wrong numflag value ' . $product->numflag()); /** Simulate real form input */ $form = new \COREPOS\common\mvc\ValueContainer(); $form->flags = array(1, 3); // 0b101 == 5 $module->setForm($form); $saved = $module->saveFormData($upc); $this->assertEquals(true, $saved, 'Saving item flags failed'); $product->reset(); $product->upc($upc); $product->load(); $this->assertEquals(5, $product->numflag(), 'Wrong numflag value ' . $product->numflag()); /* put record back to normal */ $product->numflag(0); $product->save(); $form = new \COREPOS\common\mvc\ValueContainer(); $form->flags = 'not_an_array'; $module->setForm($form); $saved = $module->saveFormData($upc); $this->assertEquals(false, $saved, 'Accepted invalid input'); }
$model->foodstamp($FS); $model->scale($Scale); $model->scaleprice(0); $model->mixmatchcode(0); $model->modified($stamp); $model->advertised(0); $model->tareweight(0); $model->discount($NoDisc); $model->discounttype(0); $model->unitofmeasure(0); $model->wicable(0); $model->qttyEnforced(0); $model->idEnforced(0); $model->cost(0.0); $model->inUse(1); $model->numflag(0); $model->subdept(0); $model->deposit(0.0); $model->local($local); $model->default_vendor_id($vendorID); $model->save(); $model->upc($upc); $model->pushToLanes(); $checkQ = $sql->prepare("select * from prodExtra where upc=?"); $checkR = $sql->execute($checkQ, array($upc)); if ($sql->num_rows($checkR) == 0) { $extraQ = $sql->prepare("insert into prodExtra values (?,?,?,0,0,0,'','',0,'')"); $extraR = $sql->execute($extraQ, array($upc, $distributor, $manufacturer)); } if (isset($likeCode) && $likeCode > 0) { $delLikeCode = $sql->prepare("DELETE FROM upcLike WHERE upc = ?");
public function saveFormData($upc) { try { $flags = $this->form->flags; } catch (Exception $ex) { $flags = array(); } if (!is_array($flags)) { return false; } $numflag = 0; foreach ($flags as $f) { if ($f != (int) $f) { continue; } $numflag = $numflag | 1 << $f - 1; } $dbc = $this->connection; $model = new ProductsModel($dbc); $model->upc($upc); $model->store_id(1); $model->numflag($numflag); $saved = $model->save(); return $saved ? true : false; }