add contract
This commit is contained in:
@@ -25,6 +25,7 @@ class Card extends \common\models\BaseFitnessActiveRecord
|
||||
const TYPE_QRCODE = 20;
|
||||
const TYPE_BARCODE = 30;
|
||||
const TYPE_OLD = 40;
|
||||
const TYPE_EMPLOYEE = 50;
|
||||
|
||||
/**
|
||||
* @inheritdoc
|
||||
@@ -95,6 +96,7 @@ class Card extends \common\models\BaseFitnessActiveRecord
|
||||
self::TYPE_QRCODE => Yii::t('common/card', 'QRCODE'),
|
||||
self::TYPE_BARCODE => Yii::t('common/card', 'BARCODE'),
|
||||
self::TYPE_OLD => Yii::t('common/card', 'OLD'),
|
||||
self::TYPE_EMPLOYEE => Yii::t('common/card', 'Munkatárs'),
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
172
common/models/Contract.php
Normal file
172
common/models/Contract.php
Normal file
@@ -0,0 +1,172 @@
|
||||
<?php
|
||||
|
||||
namespace common\models;
|
||||
|
||||
use Yii;
|
||||
use yii\helpers\ArrayHelper;
|
||||
use yii\behaviors\TimestampBehavior;
|
||||
use common\components\Helper;
|
||||
|
||||
/**
|
||||
* This is the model class for table "contract".
|
||||
*
|
||||
* @property integer $id_contract
|
||||
* @property integer $id_user
|
||||
* @property integer $id_customer
|
||||
* @property integer $status
|
||||
* @property integer $flag
|
||||
* @property integer $part_paid
|
||||
* @property integer $part_count
|
||||
* @property integer $part_required
|
||||
* @property integer $id_ticket_type
|
||||
* @property string $expired_at
|
||||
* @property string $created_at
|
||||
* @property string $updated_at
|
||||
*/
|
||||
class Contract extends \yii\db\ActiveRecord
|
||||
{
|
||||
|
||||
public static $STATUS_PAID = 10;
|
||||
public static $STATUS_NOT_PAID = 20;
|
||||
|
||||
public static $FLAG_DELETED = 10;
|
||||
public static $FLAG_CANCELED = 20;
|
||||
public static $FLAG_ACTIVE= 30;
|
||||
public static $FLAG_EXPIRED = 40;
|
||||
|
||||
|
||||
public function behaviors()
|
||||
{
|
||||
return ArrayHelper::merge( [
|
||||
[
|
||||
'class' => TimestampBehavior::className(),
|
||||
'value' => function(){ return Helper::getDateTimeString(); }
|
||||
],
|
||||
], parent::behaviors());
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritdoc
|
||||
*/
|
||||
public static function tableName()
|
||||
{
|
||||
return 'contract';
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritdoc
|
||||
*/
|
||||
public function rules()
|
||||
{
|
||||
return [
|
||||
// [['id_user', 'id_customer', 'status', 'flag', 'part_paid', 'part_count', 'part_required'], 'integer'],
|
||||
// [['expired_at', 'created_at', 'updated_at'], 'required'],
|
||||
// [['expired_at', 'created_at', 'updated_at'], 'safe']
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritdoc
|
||||
*/
|
||||
public function attributeLabels()
|
||||
{
|
||||
return [
|
||||
'id_contract' => Yii::t('common/contract', 'Szerződés azonosító'),
|
||||
'id_user' => Yii::t('common/contract', 'Felhasználó'),
|
||||
'id_customer' => Yii::t('common/contract', 'Vendég'),
|
||||
'status' => Yii::t('common/contract', 'Státusz'),
|
||||
'flag' => Yii::t('common/contract', 'Flag'),
|
||||
'part_count' => Yii::t('common/contract', 'Részletek száma'),
|
||||
'part_paid' => Yii::t('common/contract', 'Fizetett részletek'),
|
||||
'part_required' => Yii::t('common/contract', 'Esedékes részlet'),
|
||||
'expired_at' => Yii::t('common/contract', 'Lejárati dátum'),
|
||||
'created_at' => Yii::t('common/contract', 'Létrehozva'),
|
||||
'updated_at' => Yii::t('common/contract', 'Updated At'),
|
||||
];
|
||||
}
|
||||
|
||||
public function getTicketType(){
|
||||
return $this->hasOne(TicketType::className(), ['id_ticket_type' => 'id_ticket_type']);
|
||||
}
|
||||
|
||||
public function getCustomer(){
|
||||
return $this->hasOne(Customer::className(), ['id_customer' => 'id_customer']);
|
||||
}
|
||||
public function getCustomerName(){
|
||||
$customer = $this->customer;
|
||||
$result = "";
|
||||
|
||||
if ( isset($customer)){
|
||||
$result = $customer->name;
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
public function getUser(){
|
||||
return $this->hasOne(User::className(), ['id' => 'id_user']);
|
||||
}
|
||||
public function getUserName(){
|
||||
$user = $this->user;
|
||||
$result = "";
|
||||
|
||||
if ( isset($user)){
|
||||
$result = $user->username;
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
public function getRequests(){
|
||||
return $this->hasMany(TicketInstallmentRequest::className(), ['id_contract' => 'id_contract']);
|
||||
}
|
||||
// public static $STATUS_PAID = 10;
|
||||
// public static $STATUS_NOT_PAID = 20;
|
||||
|
||||
// public static $FLAG_DELETED = 10;
|
||||
// public static $FLAG_CANCELED = 20;
|
||||
// public static $FLAG_ACTIVE= 30;
|
||||
// public static $FLAG_EXPIRED = 40;
|
||||
|
||||
|
||||
public static function statuses(){
|
||||
return [
|
||||
static::$STATUS_NOT_PAID => "Nincs fizetve",
|
||||
static::$STATUS_PAID => "Fizetve",
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
public static function flags(){
|
||||
return [
|
||||
static::$FLAG_ACTIVE => "Aktív",
|
||||
static::$FLAG_CANCELED => "Felbontva",
|
||||
static::$FLAG_DELETED => "Törölve",
|
||||
static::$FLAG_EXPIRED => "Lejárt",
|
||||
];
|
||||
}
|
||||
|
||||
public static function toStatusName($status){
|
||||
return Helper::getArrayValue(self::statuses(), $status, "");
|
||||
}
|
||||
|
||||
public static function toFlangName($flag){
|
||||
return Helper::getArrayValue(self::flags(), $flag, "");
|
||||
}
|
||||
|
||||
public function getStatusName() {
|
||||
return self::toStatusName($this->status);
|
||||
}
|
||||
|
||||
public function getFlagName() {
|
||||
return self::toFlangName($this->flag);
|
||||
}
|
||||
|
||||
|
||||
public function isStatusNotPaid(){
|
||||
return $this->status == static::$STATUS_NOT_PAID;
|
||||
}
|
||||
|
||||
public function canCancel() {
|
||||
return $this->flag == static::$FLAG_ACTIVE;
|
||||
}
|
||||
}
|
||||
@@ -29,6 +29,8 @@ class Product extends \common\models\BaseFitnessActiveRecord {
|
||||
const STATUS_DELETED = 0;
|
||||
const STATUS_ACTIVE = 10;
|
||||
|
||||
public static $BUNTETES = "buntetes3000";
|
||||
|
||||
/**
|
||||
* @inheritdoc
|
||||
*/
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -271,7 +271,7 @@ class TransferSaleSearch extends Transfer
|
||||
protected function readProducts(){
|
||||
|
||||
$query = (new \yii\db\Query());
|
||||
$query->select([ 'transfer.id_transfer as id_transfer', 'customer.name as customer_name' ,'user.username as user_name','account.name as account_name' , 'product_category.name as product_category_name', 'product.name as product_name', 'transfer.money AS product_money', 'transfer.count AS product_count', 'transfer.money AS product_money','transfer.item_price AS product_item_price', 'transfer.created_at as product_created_at','transfer.paid_at as product_paid_at']);
|
||||
$query->select([ 'transfer.payment_method as transfer_payment_method', 'transfer.id_transfer as id_transfer', 'customer.name as customer_name' ,'user.username as user_name','account.name as account_name' , 'product_category.name as product_category_name', 'product.name as product_name', 'transfer.money AS product_money', 'transfer.count AS product_count', 'transfer.money AS product_money','transfer.item_price AS product_item_price', 'transfer.created_at as product_created_at','transfer.paid_at as product_paid_at']);
|
||||
$query->from('transfer');
|
||||
$query->andWhere(['transfer.type' => Transfer::TYPE_PRODUCT]);
|
||||
$query->innerJoin("sale", "sale.id_sale = transfer.id_object");
|
||||
|
||||
Reference in New Issue
Block a user