desta fix for invalid bankaccount numbers; add virtual key object

This commit is contained in:
Schneider Roland
2022-10-26 18:55:27 +02:00
parent 51e328d9d1
commit 821d852d5b
11 changed files with 542 additions and 233 deletions

View File

@@ -17,7 +17,7 @@ use backend\models\GiroKotegForm;
/**
* TicketInstallmentRequestController implements the CRUD actions for TicketInstallmentRequest model.
*
*
* TODO: FIX ACCESS
*/
class TicketInstallmentRequestController extends Controller
@@ -47,7 +47,6 @@ class TicketInstallmentRequestController extends Controller
]
]
// everything else is denied
]
];
}
@@ -66,18 +65,19 @@ class TicketInstallmentRequestController extends Controller
'dataProvider' => $dataProvider,
]);
}
/**
* Lists pending TicketInstallmentRequest models.
* @return mixed
*/
public function actionPending()
{
\Yii::info("Showing pending");
$model = new TicketInstallmentMarkForSendForm();
if ($model->load(Yii::$app->request->post()) ) {
$model->markForSend();
}
$searchModel = new TicketInstallmentRequestSearchPending();
$dataProvider = $searchModel->search(Yii::$app->request->queryParams);
@@ -102,7 +102,7 @@ class TicketInstallmentRequestController extends Controller
\Yii::$app->session->setFlash('success',"Megbízás teljesítve");
}
return $this->redirect(['ticket-installment-request/view',
return $this->redirect(['ticket-installment-request/view',
'id' => $model->id_ticket_installment_request,
]);
}
@@ -115,15 +115,15 @@ class TicketInstallmentRequestController extends Controller
public function actionDownloadGiro()
{
$model = new GiroKotegForm();
if ($model->load(Yii::$app->request->post()) && $model->validate() ) {
$model->createKoteg();
return $this->redirect(['ugiro/view', 'id' => $model->koteg->id_ugiro]);
}
$searchModel = new TicketInstallmentRequestSearchDownloadGiro();
$dataProvider = $searchModel->search(Yii::$app->request->queryParams);
$model->action = "create";
return $this->render('index_download_giro', [
'searchModel' => $searchModel,
@@ -197,7 +197,7 @@ class TicketInstallmentRequestController extends Controller
return $this->redirect(['index']);
}
public function actionTest( )
{
return $this->render('test');

View File

@@ -2,6 +2,7 @@
namespace backend\models;
use common\models\HuBankAccountValidator;
use Yii;
use yii\base\Model;
use common\models\Card;
@@ -16,25 +17,48 @@ use common\models\TicketInstallmentRequest;
* @property \Yii\web\UploadedFile $file
*/
class TicketInstallmentMarkForSendForm extends Model{
public $items;
public function rules(){
return [
['items', 'each', 'rule' => ['integer']],
['items', 'validateBankAccount'],
];
}
public function validateBankAccount($attribute, $params){
$items = TicketInstallmentRequest::find()->andWhere([
'in', 'id_ticket_installment_request' , $this->items
])->all();
\Yii::info("validateBankAccount:". count($items));
$validator = new HuBankAccountValidator();
foreach($items as $item){
\Yii::info("validateBankAccount2:". $item->id_ticket_installment_request);
/** @var Customer $customer */
$customer = $item->customer;
\Yii::info("validateBankAccount3:". $customer->username);
$isBankAccountValid = $validator->validate($customer->bank_account);
if (!$isBankAccountValid){
$errorMessage = "";
$errorMessage .= "Vendég=".$customer->name;
$errorMessage .= "; Kártya=".$customer->card->number;
$errorMessage .= "; Megbízás=".$item->id_ticket_installment_request;
$this->addError('items', "Hibás bankszámlaszám:" .$errorMessage );
}
}
}
public function markForSend(){
\Yii::info("mark for send");
if ( $this->validate() && isset($this->items ) && is_array($this->items ) ){
$updated = 0;
$updated = TicketInstallmentRequest::updateAll(['status' => TicketInstallmentRequest::$STATUS_MARKED_TO_SEND ],['in', 'id_ticket_installment_request' , $this->items]);
\Yii::$app->session->setFlash('success', $updated . " megbízás küldésre jelölve " );
}else{
\Yii::$app->session->setFlash('success', " Nem történt küldésre jelölés! " );
\Yii::$app->session->setFlash('error', " Nem történt küldésre jelölés! " . $this->getFirstError('items') );
}
}
}