public static function checkOut($number, Publisher $publisher) { if (R::count('record', ' number = :number AND isnull(`in`) ', ['number' => $number]) > 0) { return null; } $territoryBean = R::findOne('territory', ' number = :number ', ['number' => $number]); if ($territoryBean === null) { return null; } $bean = R::dispense('record'); $bean->number = $number; $bean->out = time(); $bean->in = null; $bean->checkOutBy = App::user()->id; $record = new Record($number, $bean); $territoryBean->sharedRecordList[] = $bean; $publisherBean = $publisher->bean(); $publisherBean->ownRecordList[] = $bean; R::storeAll([$bean, $territoryBean, $publisherBean]); $publisher->records[] = $record; return $record; }
public static function searchByName($name, $limit = 10) { $beans = R::findAll('publisher', ' name like :name order by name limit :limit ', ['limit' => $limit, 'name' => '%' . $name . '%']); $publishers = []; foreach ($beans as $bean) { $publishers[] = Publisher::fromBean($bean); } return $publishers; }
<?php use Enpowi\App; use Enpowi\Modules\Module; use ETM\Publisher; Module::is(); if (App::param('action') === 'merge') { $publisher = App::param('publisher'); $publishers = App::params('publishers'); if (Publisher::merge($publisher, $publishers) > 0) { echo 1; } else { echo 0; } }
Record::checkOut(3, $bobby); Record::checkOut(4, $bobby); $bobby->save(); Record::checkOut(5, $robert); Record::checkOut(6, $robert); $robert->save(); Publisher::merge('Bob', ['Bobby', 'Robert']); $tf->assertEquals(count((new Publisher('Bob'))->bindRecords()->records), 6); }); $tf->test('Merging will not happen on destination publisher', function (\Testify\Testify $tf) { $bob = Publisher::fromName('Bob'); $bobby = Publisher::fromName('Bobby'); $robert = Publisher::fromName('Robert'); (new Territory(1))->replace(); (new Territory(2))->replace(); (new Territory(3))->replace(); (new Territory(4))->replace(); (new Territory(5))->replace(); (new Territory(6))->replace(); Record::checkOut(1, $bob); Record::checkOut(2, $bob); $bob->save(); Record::checkOut(3, $bobby); Record::checkOut(4, $bobby); $bobby->save(); Record::checkOut(5, $robert); Record::checkOut(6, $robert); $robert->save(); Publisher::merge('Bob', ['Bob', 'Bobby', 'Robert']); $tf->assertEquals(count((new Publisher('Bob'))->bindRecords()->records), 6); });
<?php use ETM; use Enpowi\App; use Enpowi\Modules\Module; Module::is(); $number = App::param('number'); $publisher = ETM\Publisher::fromName(App::param('publisherName')); echo ETM\Record::checkOut($number, $publisher) === null ? -1 : 1;