protected function saveTransfer($modelTransfer) { $modelTransfer->commission = (double) $modelTransfer->commission; $fromTransaction = new Transaction(); $fromTransaction->setAttributes($modelTransfer->attributes); $fromTransaction->accounts = $modelTransfer->fromAccountId; $fromTransaction->amount = "{$modelTransfer->fromAmount} + {$modelTransfer->commission}"; $fromTransaction->accountTransfer = $modelTransfer->toAccountId; $fromTransaction->totalTransfer = $modelTransfer->toTotal; $fromTransaction->total = $modelTransfer->fromTotal + $modelTransfer->commission; $fromTransaction->type_id = TransactionHelper::TYPE_TRANSFER; if ($fromTransaction->save()) { return true; } else { return false; } // $transaction = Yii::$app->getDb()->beginTransaction(); // try { // $saveTransfer = $this->saveFromTransaction($modelTransfer) && $this->saveToTransaction($modelTransfer); // if ($saveTransfer) { // $transaction->commit(); // } else { // $transaction->rollback(); // } // } catch (\Exception $e) { // $transaction->rollback(); // return false; // } // // return $saveTransfer; }
/** * @param Transaction $model * * @return \yii\web\Response */ protected function saveModel($model) { if ($model->load(Yii::$app->request->post()) && $model->validate()) { $transaction2Category = ''; if (isset(Yii::$app->request->post('Transaction')['categoryIds'])) { $transaction2Category = Yii::$app->request->post('Transaction')['categoryIds']; } if ($model->save()) { if (!empty($transaction2Category)) { TransactionHelper::saveTransaction2Category($transaction2Category, $model->id); } Yii::$app->getSession()->setFlash('success', 'Транзакция создана.'); return $this->redirect(['index']); } } }
public function actionResult() { $mrh_pass2 = "96542888p2"; $out_summ = $_GET["OutSum"]; $inv_id = $_GET["InvId"]; $crc = $_GET["SignatureValue"]; $user = $_GET["Shpuser"]; $crc = strtoupper($crc); $my_crc = strtoupper(md5("{$out_summ}:{$inv_id}:{$mrh_pass2}:Shpuser={$user}")); if (strtoupper($my_crc) != strtoupper($crc)) { echo "bad sign\n"; exit; } $t = new Transaction(); $t->user = $user; $t->price = $out_summ; $t->status = strval($inv_id); $t->time = strval(time()); if ($t->save()) { $ac = Account::findOne(['id' => $user]); $ac->balance = $ac->balance + $out_summ; $ac->save(); } echo "OK{$inv_id}\n"; }