add contract

This commit is contained in:
2016-01-25 01:43:19 +01:00
parent fd4d38ab44
commit df14401b28
47 changed files with 2868 additions and 766 deletions

View File

@@ -108,6 +108,9 @@ class TicketInstallmentRequest extends \yii\db\ActiveRecord
public function getCustomer(){
return $this->hasOne( Customer::className(), ["id_customer" =>"id_customer" ] );
}
public function getContract(){
return $this->hasOne( Contract::className(), ["id_contract" =>"id_contract" ] );
}
public function getTicket(){
return $this->hasOne( Ticket::className(), ["id_ticket" =>"id_ticket", ] ) ;
@@ -119,13 +122,27 @@ class TicketInstallmentRequest extends \yii\db\ActiveRecord
->viaTable('ugiro_request_assignment', [ 'id_request' => 'id_ticket_installment_request' ]);
}
public function getTicketExpirationDate(){
return strtotime( $this->request_target_time_at . " +1 month -1 day") ;
}
public function isStatusAccepted(){
return $this->status == static::$STATUS_ACCEPTED || $this->status == static::$STATUS_ACCEPTED_MANUAL;
}
public function isStatusRejected(){
return $this->status == static::$STATUS_REJECTED ;
}
public function isStatusCanceled(){
return $this->status == static::$STATUS_CANCELED ;
}
public function isStatusPending(){
return $this->status == static::$STATUS_PENDING ;
}
public function getIdGiro(){
$result = null;
$giro = $this->ugiro;
@@ -145,12 +162,15 @@ class TicketInstallmentRequest extends \yii\db\ActiveRecord
public function applyStatus($status, $partRequired = false, $visszajelzes = "", $comment = ""){
if ( $status == static::$STATUS_ACCEPTED || $status == static::$STATUS_ACCEPTED_MANUAL){
if ( !$this->isStatusAccepted() ){
$this->status = $status;
$tranfer = $this->addTransfer();
$this->status = $status;
$this->id_transfer = $tranfer->id_transfer;
$this->request_processed_at = Helper::getDateTimeString();
$this->save(false);
$this->applyNewTicketState($partRequired);
// $this->applyNewTicketState($partRequired);
return true;
}else{
return false;
@@ -161,18 +181,19 @@ class TicketInstallmentRequest extends \yii\db\ActiveRecord
$this->comment = $comment;
$this->request_processed_at = Helper::getDateTimeString();
$this->save(false);
$this->applyNewTicketState($partRequired);
// $this->applyNewTicketState($partRequired);
return true;
}
}
protected function applyNewTicketState($partRequired = false){
if ( $partRequired ){
$this->ticket->setPartRequired($this);
}
$this->ticket->applyTicketInstallmentRequest($this);
$this->ticket->save(false);
}
// protected function applyNewTicketState($partRequired = false){
// if ( $partRequired ){
// $this->ticket->setPartRequired($this);
// }
// $this->ticket->applyTicketInstallmentRequest($this);
// $this->ticket->save(false);
// }
protected function addTransfer(){
@@ -202,18 +223,18 @@ class TicketInstallmentRequest extends \yii\db\ActiveRecord
* @param common\models\TicketType $type
* @return common\models\TicketInstallmentRequest[]
* */
public static function createInstallments($ticket,$type,$customer){
public static function createInstallments($ticket,$type,$customer,$contract){
$result = [];
if ( $type->isInstallment() ){
$count = $type->installment_count;
$discount = $ticket->discount;
$money = $type->price_brutto;
$money = $type->installment_money;
if ( isset($discount ) ){
$money = Discount::applyDiscount($money, $discount);
}
$ticketCreatedAt = time();
for ( $i = 1; $i <= $count; $i++){
$request = TicketInstallmentRequest::createInstallment($ticket, $type, $customer, $money, $ticketCreatedAt, $i);
$request = TicketInstallmentRequest::createInstallment($ticket, $type, $customer, $contract, $money, $ticketCreatedAt, $i);
$result[] = $request;
}
@@ -221,7 +242,7 @@ class TicketInstallmentRequest extends \yii\db\ActiveRecord
return $result;
}
public static function createInstallment($ticket,$type,$customer,$money,$ticketCreated,$index){
public static function createInstallment($ticket,$type,$customer,$contract,$money,$ticketCreated,$index){
$request = new TicketInstallmentRequest();
$request->id_ticket = $ticket->id_ticket;
$request->id_customer = $customer->id_customer;
@@ -231,6 +252,7 @@ class TicketInstallmentRequest extends \yii\db\ActiveRecord
$request->request_processed_at = null;
$request->request_sent_at = null;
$request->money = $money;
$request->id_contract = $contract->id_contract;
return $request;
}
@@ -257,4 +279,8 @@ class TicketInstallmentRequest extends \yii\db\ActiveRecord
return $result;
}
public function getStatusName(){
return static::toStatusName($this->status);
}
}