add contract
This commit is contained in:
@@ -10,6 +10,8 @@ use common\models\UserSoldItem;
|
||||
use common\models\ShoppingCart;
|
||||
use yii\base\Object;
|
||||
use common\models\TicketInstallmentRequest;
|
||||
use common\models\Contract;
|
||||
use common\components\Helper;
|
||||
|
||||
/**
|
||||
* @property $cart string name of cart, into we put the ticket
|
||||
@@ -103,6 +105,17 @@ class TicketCreate extends Ticket{
|
||||
$this->addError($attribute,"Vendég bankszámlaszáma nem 16 vagy 24 hosszú");
|
||||
return;
|
||||
}
|
||||
//find
|
||||
$query = Contract::find();
|
||||
$query->andWhere( [ 'id_customer' => $this->customer->id_customer ]);
|
||||
$query->andWhere( [ '>', 'expired_at' , Helper::getDateTimeString() ]);
|
||||
$query->andWhere( [ 'not in', 'flag', [Contract::$FLAG_DELETED ] ]);
|
||||
$contracts = $query->all();
|
||||
|
||||
if ( count($contracts) > 0 ){
|
||||
$this->addError($attribute,"A vendégnek már van érvényes vagy felbontott szerződése!");
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -142,15 +155,28 @@ class TicketCreate extends Ticket{
|
||||
$this->addTransfer();
|
||||
$this->appendToUserCart();
|
||||
$this->appendToCustomerCart();
|
||||
$this->addTicketInstallmentRequests($insert);
|
||||
$this->addContract($insert);
|
||||
|
||||
}
|
||||
|
||||
public function addTicketInstallmentRequests($insert){
|
||||
public function addContract($insert){
|
||||
if ($insert){
|
||||
$ticketType = TicketType::findOne($this->id_ticket_type);
|
||||
if ( isset($ticketType) && $ticketType->isInstallment() ){
|
||||
$requests = TicketInstallmentRequest::createInstallments($this, $ticketType, $this->customer);
|
||||
|
||||
$contract = new Contract();
|
||||
$contract->id_customer = $this->customer->id_customer;
|
||||
$contract->id_user = \Yii::$app->user->id;
|
||||
$contract->status = Contract::$STATUS_PAID;
|
||||
$contract->flag = Contract::$FLAG_ACTIVE;
|
||||
$contract->part_count = $ticketType->installment_count;
|
||||
$contract->part_paid = 0;
|
||||
$contract->part_required = 0;
|
||||
$contract->expired_at = date('Y-m-d', strtotime("today +12 month -1 day"));
|
||||
$contract->id_ticket_type = $this->id_ticket_type;
|
||||
$contract->save();
|
||||
|
||||
$requests = TicketInstallmentRequest::createInstallments($this, $ticketType, $this->customer,$contract);
|
||||
foreach ($requests as $request){
|
||||
$request->save(false);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user