255] ]; } /** * @inheritdoc */ public function attributeLabels() { return [ 'id_ticket_installment_request' => Yii::t('common/ticket_installment_request', 'Id Ticket Installment Request'), 'id_ticket' => Yii::t('common/ticket_installment_request', 'Id Ticket'), 'id_customer' => Yii::t('common/ticket_installment_request', 'Id Customer'), 'id_transfer' => Yii::t('common/ticket_installment_request', 'Id Transfer'), 'status' => Yii::t('common/ticket_installment_request', 'Status'), 'money' => Yii::t('common/ticket_installment_request', 'Money'), 'customer_name' => Yii::t('common/ticket_installment_request', 'Customer Name'), 'bank_name' => Yii::t('common/ticket_installment_request', 'Bank Name'), 'bank_address' => Yii::t('common/ticket_installment_request', 'Bank Address'), 'bank_account' => Yii::t('common/ticket_installment_request', 'Bank Account'), 'priority' => Yii::t('common/ticket_installment_request', 'Priority'), 'request_sent_at' => Yii::t('common/ticket_installment_request', 'Request Sent At'), 'request_processed_at' => Yii::t('common/ticket_installment_request', 'Request Processed At'), 'request_target_time_at' => Yii::t('common/ticket_installment_request', 'Request Target Time At'), 'created_at' => Yii::t('common/ticket_installment_request', 'Created At'), 'updated_at' => Yii::t('common/ticket_installment_request', 'Updated At'), ]; } public function behaviors() { return ArrayHelper::merge( [ [ 'class' => TimestampBehavior::className(), 'value' => function(){ return date('Y-m-d H:i:s' ); } ], ], parent::behaviors()); } public function getCustomer(){ return $this->hasOne( Customer::className(), ["id_customer" =>"id_customer" ] ); } /** * @param common\models\Ticket $ticket * @param common\models\TicketType $type * @return common\models\TicketInstallmentRequest[] * */ public static function createInstallments($ticket,$type,$customer){ $result = []; if ( $type->isInstallment() ){ $count = $type->installment_count; $ticketCreatedAt = time(); $money = $type->price_brutto; for ( $i = 1; $i <= $count; $i++){ $request = TicketInstallmentRequest::createInstallment($ticket, $type, $customer, $money, $ticketCreatedAt, $i); $result[] = $request; } } return $result; } public static function createInstallment($ticket,$type,$customer,$money,$ticketCreated,$index){ $request = new TicketInstallmentRequest(); $request->id_ticket = $ticket->id_ticket; $request->id_customer = $customer->id_customer; $request->status = TicketInstallmentRequest::$STATUS_PENDING; $request->priority = $index; $request->request_target_time_at = date('Y-m-d H:i:s', strtotime("+".$index." month" )); $request->request_processed_at = null; $request->request_sent_at = null; $request->money = $money; return $request; } public static function statuses(){ return [ TicketInstallmentRequest::$STATUS_PENDING => 'Indításra vár', TicketInstallmentRequest::$STATUS_MARKED_TO_SEND=> 'Beküldésre jelölve', TicketInstallmentRequest::$STATUS_SENT=> 'Beküldve', TicketInstallmentRequest::$STATUS_CANCELED=> 'Törölve', TicketInstallmentRequest::$STATUS_REJECTED=> 'Visszautasítva', TicketInstallmentRequest::$STATUS_ACCEPTED=> 'Sikeresen végrehajtva', ]; } public static function toStatusName($id_status){ $result = "Ismeretlen"; $statuses = TicketInstallmentRequest::statuses(); if ( array_key_exists($id_status, $statuses)){ $result = $statuses[$id_status]; } return $result; } }