add ticket installment
This commit is contained in:
@@ -23,6 +23,9 @@ use common\components\Helper;
|
||||
* @property integer $usage_count
|
||||
* @property integer $status
|
||||
* @property integer $price_brutto
|
||||
* @property integer $part eddig a részletig kell kifizetve lenni
|
||||
* @property integer $part_count ennyi részlet van összesen
|
||||
* @property integer $part_paid ennyi részlet van kifizetve
|
||||
* @property string $comment
|
||||
* @property string $created_at
|
||||
* @property string $updated_at
|
||||
@@ -31,6 +34,7 @@ class Ticket extends \common\models\BaseFitnessActiveRecord
|
||||
{
|
||||
const STATUS_DELETED = 0;
|
||||
const STATUS_ACTIVE = 10;
|
||||
const STATUS_INACTIVE = 20;
|
||||
|
||||
/**
|
||||
* @inheritdoc
|
||||
@@ -200,10 +204,10 @@ class Ticket extends \common\models\BaseFitnessActiveRecord
|
||||
new Expression( 'ticket_type.name as name'),
|
||||
new Expression( 'coalesce( count(ticket.id_ticket),0) as total'),
|
||||
|
||||
new Expression( "coalesce( sum( case when ". Helper::sqlValidRule('ticket.start', 'ticket.end', ':start', ':end') . " then 1 else 0 end) , 0) as valid" ), //valid
|
||||
new Expression( "coalesce( sum( case when ". Helper::sqlInIntervalRule('ticket.created_at', ':start', ':end') . " then 1 else 0 end) , 0) as created" ),//created
|
||||
new Expression( "coalesce( sum( case when ". Helper::sqlInIntervalRule('ticket.created_at', ':start', ':end') . " then transfer.money else 0 end) , 0) as created_money" ),//created_money
|
||||
new Expression( "coalesce( sum( case when " . Helper::sqlExpireRule('ticket.start', 'ticket.end', ':start', ":end") . " then 1 else 0 end) , 0) as expired" ),
|
||||
new Expression( "coalesce( sum( case when ticket.status <> " .Ticket::STATUS_DELETED ." AND ". Helper::sqlValidRule('ticket.start', 'ticket.end', ':start', ':end') . " then 1 else 0 end) , 0) as valid" ), //valid
|
||||
new Expression( "coalesce( sum( case when ticket.status <> " .Ticket::STATUS_DELETED ." AND ". Helper::sqlInIntervalRule('ticket.created_at', ':start', ':end') . " then 1 else 0 end) , 0) as created" ),//created
|
||||
new Expression( "coalesce( sum( case when ticket.status <> " .Ticket::STATUS_DELETED ." AND ". Helper::sqlInIntervalRule('ticket.created_at', ':start', ':end') . " then transfer.money else 0 end) , 0) as created_money" ),//created_money
|
||||
new Expression( "coalesce( sum( case when ticket.status <> " .Ticket::STATUS_DELETED ." AND " . Helper::sqlExpireRule('ticket.start', 'ticket.end', ':start', ":end") . " then 1 else 0 end) , 0) as expired" ),
|
||||
|
||||
|
||||
]);
|
||||
@@ -237,6 +241,7 @@ class Ticket extends \common\models\BaseFitnessActiveRecord
|
||||
return [
|
||||
Ticket::STATUS_ACTIVE => 'Aktív',
|
||||
Ticket::STATUS_DELETED => 'Törölve',
|
||||
Ticket::STATUS_INACTIVE => 'Inaktív',
|
||||
];
|
||||
}
|
||||
|
||||
@@ -249,4 +254,62 @@ class Ticket extends \common\models\BaseFitnessActiveRecord
|
||||
return $result;
|
||||
}
|
||||
|
||||
public function getStatusName(){
|
||||
return static::toStatusName($this->status);
|
||||
}
|
||||
|
||||
public function isDeleted(){
|
||||
return $this->status == Ticket::STATUS_DELETED;
|
||||
}
|
||||
|
||||
/**csoportos beszedéses a bérlet*/
|
||||
public function isInstallmentTicket(){
|
||||
return ( isset($this->part_count) && $this->part_count > 0 );
|
||||
}
|
||||
|
||||
/**
|
||||
* Apply request
|
||||
*
|
||||
* @var common\models\TicketInstallmentRequest $request megbízás
|
||||
* */
|
||||
public function applyTicketInstallmentRequest( $request ) {
|
||||
//ha csoportos beszedéses
|
||||
if ( $this->isInstallmentTicket() ){
|
||||
if ( $request->isStatusAccepted() ){
|
||||
if ( $this->part_paid < $request->priority ){
|
||||
$this->part_paid = $request->priority;
|
||||
}
|
||||
$this->recalclulate();
|
||||
}else if ( $request->isStatusRejected() ){
|
||||
$this->status = static::STATUS_INACTIVE;
|
||||
}
|
||||
}
|
||||
}
|
||||
/*
|
||||
* *
|
||||
* @param common\models\TicketInstallmentRequest $request megbízás
|
||||
*/
|
||||
public function setPartRequired($request){
|
||||
// ha keveseb a részlet sorszám mint a bérlet max sorszáma
|
||||
if ( $request->priority <= $this->part_count ){
|
||||
//ha az aktuális elvárt részlet kisebb , mint a megbízása
|
||||
if ( $this->part < $request-> priority ){
|
||||
$this->part = $request->priority;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Csoportos beszedéses bérlet érvényességének újraszámolása
|
||||
* */
|
||||
public function recalclulate( ) {
|
||||
if ( $this->isInstallmentTicket() ){
|
||||
$enabled = $this->part_paid >= $this->part;
|
||||
if ( $enabled == true ){
|
||||
$this->status = static::STATUS_ACTIVE;
|
||||
}else{
|
||||
$this->status = static::STATUS_INACTIVE;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user