コード例 #1
0
ファイル: tools.php プロジェクト: neyre/tools.olin.edu
 function edit_post($f3)
 {
     // Update Tool Locations
     $this->D->sharedLocationsList = array();
     if ($f3->exists('POST.locations')) {
         foreach ($f3->get('POST.locations') as $id) {
             $this->D->sharedLocationsList[] = \R::load('locations', $id);
         }
     }
     $f3->clear('POST.locations');
     $this->D->import($f3->get('POST'));
     $this->D->training_levels or $this->D->training_levels = json_encode($f3->get('TRAINING_LEVELS'));
     \R::begin();
     try {
         $id = \R::store($this->D);
         \R::commit();
     } catch (\Exception $e) {
         \R::rollback();
         if ($e->getSQLState() == 23000) {
         }
         throw new \Exception($this->D->name . ' is not a unique name.');
         throw new \Exception();
     }
     if ($f3->get('dry')) {
         logger($f3, 'added    ' . $this->class_name() . ', id=' . $id);
     } else {
         logger($f3, 'modified ' . $this->class_name() . ', id=' . $id);
     }
     $f3->reroute($this->redirect());
 }
コード例 #2
0
 public function save()
 {
     $rules = array('customer_id' => 'required|', 'payment_amount' => 'required|numeric', 'payment_memo' => 'required');
     $filters = array('payment_memo' => 'trim|sanitize_string', 'payment_amount' => 'trim|sanitize_string|numeric', 'customer_id' => 'trim|numeric');
     $postValues = $gump->filter($this->{$postarray}, $filters);
     $validated = $gump->validate($gump->filter($postValues, $filters), $rules);
     $this->payment_amount = $postValues['payment_amount'];
     $this->payment_memo = $postValues['payment_memo'];
     $this->who_is_getting_paid = $postValues['customer_id'];
     if ($validated === TRUE) {
         R::begin();
         try {
             /*Payment Add*/
             $payment = R::findOne('user', ' id = ? and created_by=? ', array($this->who_is_getting_paid, $this->who_is_paying));
             $current_balance = $payment->balance2;
             $reseller_balance = R::dispense("reseller_balance");
             $reseller_balance->user_id = $this->who_is_getting_paid;
             $reseller_balance->amount = $this->{$payment_amount};
             $reseller_balance->load_by = $this->who_is_paying;
             $reseller_balance->note = $this->comments;
             $reseller_balance->ip = $_SERVER["REMOTE_ADDR"];
             $reseller_balance->updated = CURRENT_DTT;
             if ($this->payment_type == "add") {
                 $payment->balance2 = $payment->balance2 + $this->payment_amount;
                 $payment->return_payment = 0;
                 //add
                 R::exec("CALL preparestatement({$this->who_is_paying},{$this->payment_amount},{$current_balance},{$this->who_is_getting_paid},'debit','{$this->payment_memo}')");
             } elseif ($this->payment_type == "return") {
                 $payment->balance2 = $payment->balance2 - $this->payment_amount;
                 $payment->return_payment = 1;
                 //return
                 R::exec("CALL preparestatement({$this->who_is_paying},{$this->payment_amount},{$current_balance},{$this->who_is_getting_paid},'credit','{$this->payment_memo}')");
             }
             R::save($payment);
             R::save($reseller_balance);
             R::commit();
         } catch (Exception $e) {
             R::rollback();
             $this->setError("" . $e->getMessage());
         }
     } else {
         $this->setError($gump->get_readable_errors(true));
     }
     if ($this->getError() == "") {
         $this->fails = FALSE;
     } else {
         $this->fails = TRUE;
     }
 }
コード例 #3
0
ファイル: RedBeanHelper.php プロジェクト: quintenvk/quintenvk
 public static function removeChild($table, $parentBean, $bean)
 {
     //we still need 2 separate queries because the parent's left_id can't be updated...
     R::begin();
     try {
         R::trash($bean);
         R::exec('UPDATE ' . $table . ' SET left_id = left_id-2 WHERE left_id > ?', array($bean->right_id));
         R::exec('UPDATE ' . $table . ' SET right_id = right_id-2 WHERE right_id >= ?', array($bean->right_id));
         $parentBean->right_id -= 2;
         R::commit();
     } catch (Exception $e) {
         R::rollback();
         throw $e;
     }
 }
コード例 #4
0
 public function save()
 {
     $this->amount = abs($this->amount);
     if ($this->phone == "") {
         $this->setError("Please Give number");
     } elseif (strlen($this->phone) < 11) {
         $this->setError("Phone number must be 11 digit");
     } elseif ($this->amount < 10 || $this->amount > 1000) {
         $this->setError("Amount not valid");
     } elseif ($this->restrictDublicateLoad($this->phone) == 1) {
         $this->setError("You can not request same number within 15 minute.");
     } else {
         R::begin();
         try {
             foreach ($this->cut_balance_from_id as $boss_id) {
                 $current_balance = L::getBalance($boss_id, "flexiload");
                 if ($current_balance < $this->amount) {
                     $this->setError("You do not have sufficient amount in your account");
                 } else {
                     R::exec("UPDATE user  SET {$this->balance_field}={$this->balance_field}-{$this->amount} where id='{$boss_id}'");
                     R::exec("CALL preparestatement({$boss_id},{$this->amount},{$current_balance},{$this->user_id},'credit','{$this->comments}')");
                 }
             }
             $flexiload = R::dispense("flexiload");
             $flexiload->phone = $this->phone;
             $flexiload->balance = $this->amount;
             $flexiload->load_type = $this->type;
             $flexiload->user_id = $this->user_id;
             $flexiload->s_date = CURRENT_DT;
             $flexiload->status = 'pending';
             $flexiload->s_time = time();
             $flexiload->submitted_date = CURRENT_DTT;
             $flexiload->operator = $this->getOperatorName($this->phone);
             R::store($flexiload);
             R::commit();
         } catch (Exception $e) {
             R::rollback();
             $this->setError("" . $e->getMessage());
         }
     }
     if ($this->getError() == "") {
         $this->fails = FALSE;
     } else {
         $this->fails = TRUE;
     }
 }
コード例 #5
0
    foreach ($people_array as $people) {
        $person_old = R::getCell(' SELECT id ' . '   FROM supportsr.esr_frequent_people ' . '  WHERE name = :name ' . '    AND paper_number = :p_number ', [':name' => $people->pname, ':p_number' => $people->pidval]);
        if (empty($person_old) || $person_old == "") {
            $person_new = R::getRedBean()->dispense('esr_frequent_people');
            $person_new->name = $people->pname;
            $person_new->paper_type = $people->ptype == '身份证' ? '身份证/Id card' : ($people->ptype == '台胞证' ? '台胞证/Efficiency certificate' : ($people->ptype == '护照' ? '护照/Passport' : ($people->ptype == '港澳通行证' ? '港澳通行证/Hong Kong-Macau passport' : ($people->ptype == '驾驶证' ? '驾驶证/Driving license' : ''))));
            $person_new->paper_number = $people->pidval;
            $person_new->comid = $user['organizationname'] . '|*|' . $user['userorganizationid'];
            $person_new_id = R::store($person_new);
        }
    }
    R::commit();
} catch (Exception $e) {
    header('Content-type:text/json;charset=utf-8');
    echo json_encode(['result' => 'failed', 'error' => 'db error kayako', 'details' => $e->getMessage()]);
    R::rollback();
    die;
}
R::close();
// Precalc date value
$days_as_date = [];
foreach ($day_array as $date) {
    array_push($days_as_date, strtotime($date));
}
asort($days_as_date);
$start_date_to_post = reset($days_as_date);
$end_date_to_post = end($days_as_date);
_log(json_encode(['days_as_date' => $days_as_date]));
// Precalc equip value
$equip_datas = [];
foreach ($equip_array as $equip) {
コード例 #6
0
ファイル: trainings.php プロジェクト: neyre/tools.olin.edu
 function create_record($f3, $user, $instructor, $timestamp = false)
 {
     // Create Training Record
     $training = \R::dispense('trainings');
     $training->users = $user;
     $training->tools = $this->D;
     $training->instructor = $instructor;
     $training->timestamp = $timestamp !== false ? $timestamp : time();
     $training->level = $f3->get('POST.level');
     $this->D->verify_training_level($f3->get('POST.level'));
     // Store Training Record
     \R::begin();
     try {
         $id = \R::store($training);
         \R::commit();
         $f3->set('message', $user->displayname . ' has been trained!');
         $f3->set('success', 1);
     } catch (\Exception $e) {
         \R::rollback();
         $f3->set('message', $user->displayname . ' is already trained on this machine at this level. No training record added.');
         $f3->set('success', 0);
     }
     if ($f3->get('success')) {
         logger($f3, 'added    ' . $this->class_name() . ', id=' . $id);
     }
 }
コード例 #7
0
ファイル: rb.php プロジェクト: gpawlik/suited-php-classes
 /**
  * commit a bean with transactions
  * @param object $bean
  * @return $res false or last insert id 
  */
 public static function commitBean($bean)
 {
     R::begin();
     try {
         $res = R::store($bean);
         R::commit();
     } catch (Exception $e) {
         R::rollback();
         $res = false;
     }
     return $res;
 }
コード例 #8
0
ファイル: DB.php プロジェクト: StudsPro/island-peeps-2.0
 public function rollback_tx()
 {
     \R::rollback();
 }
コード例 #9
0
ファイル: module.php プロジェクト: diversen/event
 /**
  * /event/user/halv
  */
 public function helAction()
 {
     $this->checkAccess();
     $eDb = new eDb();
     $halv = $eDb->getUserHalvFromUserId(session::getUserId());
     if (empty($halv)) {
         http::locationHeader('/event/user/index', 'Du skal være del af en halv kvadrille for at oprette en hel');
     }
     http::prg();
     if (isset($_POST['send'])) {
         $this->validateHel();
         if (empty($this->errors)) {
             // Prepare
             $ary = db::prepareToPostArray(array('halv'), true);
             R::begin();
             // Delete other hele
             $eDb->deleteHelFromUserId(session::getUserId());
             // Create
             $id = $eDb->createHel($ary);
             // Set a better name
             $name = $eDb->getUsersStrFromHel($id);
             $bean = rb::getBean('hel', 'id', $id);
             $bean->name = $name;
             R::store($bean);
             $res = R::commit();
             if (!$res) {
                 R::rollback();
             }
             http::locationHeader('/event/user/index');
         } else {
             echo html::getErrors($this->errors);
         }
     }
     echo $this->formCreateHel();
 }
コード例 #10
0
 /**
  * Test Transactions.
  * 
  * @return void
  */
 public function testTransactions()
 {
     testpack('transactions');
     R::begin();
     $bean = R::dispense('bean');
     R::store($bean);
     R::commit();
     asrt(R::count('bean'), 1);
     R::wipe('bean');
     R::freeze(1);
     R::begin();
     $bean = R::dispense('bean');
     R::store($bean);
     R::rollback();
     asrt(R::count('bean'), 0);
     R::freeze(FALSE);
     testpack('genSlots');
     asrt(R::genSlots(array('a', 'b')), '?,?');
     asrt(R::genSlots(array('a')), '?');
     asrt(R::genSlots(array()), '');
 }
コード例 #11
0
function error($message)
{
    R::rollback();
    exit($message);
}
コード例 #12
0
 /**
  * Test with plus query builder.
  * 
  * @return void
  */
 public function testWithWithConditionQueryBuilder()
 {
     testpack('Test with- and withCondition with Query Builder');
     $book = R::dispense('book');
     $page = R::dispense('page');
     $page->num = 1;
     $book->ownPage[] = $page;
     $page = R::dispense('page');
     $page->num = 2;
     $book->ownPage[] = $page;
     $id = R::store($book);
     $book = R::load('book', $id);
     asrt(count($book->ownPage), 2);
     $book = R::load('book', $id);
     asrt(count($book->withCondition(' num >  1')->ownPage), 1);
     $book = R::load('book', $id);
     asrt(count($book->withCondition(R::$f->begin()->num(' < ?')->put(2))->ownPage), 1);
     $book = R::load('book', $id);
     asrt(count($book->with(R::$f->begin()->limit(' 1 '))->ownPage), 1);
     $book = R::load('book', $id);
     asrt(count($book->withCondition(R::$f->begin()->num(' < 3'))->ownPage), 2);
     $book = R::load('book', $id);
     asrt(count($book->with(R::$f->begin()->limit(' 2 '))->ownPage), 2);
     testpack('Transaction suppr. in fluid mode');
     R::freeze(FALSE);
     asrt(R::begin(), FALSE);
     asrt(R::commit(), FALSE);
     asrt(R::rollback(), FALSE);
     R::freeze(TRUE);
     asrt(R::begin(), TRUE);
     asrt(R::commit(), TRUE);
     R::freeze(FALSE);
 }