public function save() { //print_r($this->Deposit); $num = 0; //$linenum=1; $tranType = \app\helpers\Linet3Helper::getSetting('transactionType.chequedeposit'); if ($this->refnum == '' || $this->date == '' || !is_array($this->Deposit)) { return false; } $accout = new Transactions(); $accout->type = $tranType; $accout->refnum1 = ''; //$this->refnum; $accout->refnum2 = $this->refnum; $accout->details = Yii::t('app', 'Deposit') . " #" . $this->refnum; $accout->valuedate = $this->date . $this->refnum; $accout->owner_id = Yii::$app->user->id; $accout->linenum = 1; $transaction = Yii::$app->db->beginTransaction(\yii\db\Transaction::READ_UNCOMMITTED); //-shuld start transaction here try { foreach ($this->Deposit as $line => $val) { list($a, $b) = explode(',', $line); $cheq = Doccheques::findOne(array("doc_id" => $a, "line" => $b)); $oppt_acc = PaymentType::findOne($cheq->type)->oppt_account_id; $accout->currency_id = $cheq->currency_id; $accout->addDoubleLine($oppt_acc, $this->account_id, $cheq->sum); $cheq->bank_refnum = $num; $cheq->save(); } $transaction->commit(); } catch (\Exception $e) { $transaction->rollBack(); $message = $e->getMessage(); $this->addError('refnum', $message); } return true; //num }
private function saveCheq() { if (!is_null($this->docCheq)) { $line = 1; foreach ($this->docCheq as $key => $rcpt) { $submodel = Doccheques::findOne(array('doc_id' => $this->id, 'line' => $rcpt['line'])); if ($submodel == null) { //new line $submodel = new Doccheques(); } //go throw attr if no save new foreach ($rcpt as $key => $value) { if ($submodel->hasAttribute($key)) { $submodel->{$key} = $value; } else { $eav = new DocchequesEav(); $eav->line = $line; $eav->doc_id = $this->id; $eav->attribute = $key; $eav->value = $value['value']; $eav->save(); } } $submodel->line = $line; $submodel->doc_id = $this->id; //if ((int) $rcpt["type"] != 0) { if ($submodel->save()) { //$saved = true; $line++; } else { $this->addError('docCheq', $submodel->errors); Yii::error("fatel error cant save rcptdetial,doc_id:" . $submodel->line . "," . $submodel->doc_id); //Yii::$app->end(); } //} //Yii::$app->end(); } if (count($this->docCheques) != $line) { //if more items in $docCheques delete them for ($curLine = $line; $curLine < count($this->docCheques); $curLine++) { $this->docCheques[$curLine]->delete(); } } } return true; }