Merge branch 'dillon/34.3-jenkins-vapor' into vapor/development

This commit is contained in:
Dillon Ngo
2024-05-17 14:57:02 +08:00
117 changed files with 5135 additions and 129 deletions
+76
View File
@@ -0,0 +1,76 @@
<?php
namespace App\Models;
use App\Classes\General\Traits\LogData;
use Illuminate\Database\Eloquent\Model;
use App\Classes\General\Interfaces\Documentable;
use App\Classes\General\Interfaces\Transactionable;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Illuminate\Database\Eloquent\SoftDeletes;
use Staudenmeir\EloquentHasManyDeep\HasManyDeep;
use Staudenmeir\EloquentHasManyDeep\HasRelationships;
class BillGroup extends Model implements Documentable, Transactionable
{
use SoftDeletes;
protected $table = 'bill_groups';
protected $dates = ['deleted_at'];
/**
* @return MorphMany
*/
public function transactions(): MorphMany
{
return $this->MorphMany(Transaction::class, 'owner');
}
use HasRelationships;
use \Staudenmeir\EloquentHasManyDeep\HasTableAlias;
public function billRefunds()
{
return $this->belongsToMany(Transaction::class, BillGroupRefund::class);
}
/**
* @return MorphMany
*/
public function documents(): morphMany
{
return $this->morphMany(Document::class, 'owner');
}
/**
* @return BelongsTo
*/
public function currency(): BelongsTo
{
return $this->BelongsTo(Currency::class, 'currency_id', 'id');
}
/**
* @return BelongsTo
*/
public function issuerCompany(): BelongsTo
{
return $this->BelongsTo( Company::class, 'issuer', 'id');
}
/**
* @return BelongsTo
*/
public function original_currency(): BelongsTo
{
return $this->BelongsTo(Currency::class, 'original_currency_id', 'id');
}
public function groups()
{
return $this->belongsToMany(Group::class, BillGroupPayment::class, 'bill_group_id', 'group_id');
}
}
+27
View File
@@ -0,0 +1,27 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
class BillGroupPayment extends Model
{
protected $table = 'bill_group_payments';
/**
* @return BelongsTo
*/
public function billGroup(): BelongsTo
{
return $this->BelongsTo(BillGroup::class, 'bill_group_id', 'id');
}
/**
* @return BelongsTo
*/
public function group(): BelongsTo
{
return $this->BelongsTo(Group::class, 'group_id', 'id');
}
}
+27
View File
@@ -0,0 +1,27 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
class BillGroupRefund extends Model
{
protected $table = 'bill_group_refunds';
/**
* @return BelongsTo
*/
public function billGroup(): BelongsTo
{
return $this->BelongsTo(BillGroup::class, 'bill_group_id', 'id');
}
/**
* @return BelongsTo
*/
public function transaction(): BelongsTo
{
return $this->BelongsTo(Transaction::class, 'transaction_id', 'id');
}
}
+17
View File
@@ -6,6 +6,7 @@ use App\Classes\General\Traits\LogData;
use Illuminate\Database\Eloquent\Model;
use App\Classes\General\Interfaces\Documentable;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Staudenmeir\EloquentHasManyDeep\HasManyDeep;
use Staudenmeir\EloquentHasManyDeep\HasRelationships;
@@ -20,6 +21,14 @@ class Group extends Model implements Documentable
return $this->belongsToMany(Transaction::class, GroupTransaction::class);
}
/**
* @return MorphMany
*/
public function morphTransactions(): MorphMany
{
return $this->MorphMany(Transaction::class, 'owner');
}
/**
* @return MorphMany
*/
@@ -60,4 +69,12 @@ class Group extends Model implements Documentable
{
return $this->BelongsTo(Currency::class, 'original_currency_id', 'id');
}
/**
* @return BelongsToMany
*/
public function billGroup(): BelongsToMany
{
return $this->belongsToMany(BillGroup::class, BillGroupPayment::class, 'group_id', 'bill_group_id');
}
}
+27
View File
@@ -0,0 +1,27 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Relations\MorphTo;
use Illuminate\Database\Eloquent\SoftDeletes;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
class Remark extends AbstractModel
{
use SoftDeletes;
protected $table = 'remarks';
public function owner(): morphTo
{
return $this->morphTo();
}
/**
* @return BelongsTo
*/
public function commenter(): BelongsTo
{
return $this->BelongsTo(User::class, 'commenter_id', 'id');
}
}
+24 -1
View File
@@ -3,6 +3,7 @@
namespace App\Models;
use App\Classes\General\Interfaces\Documentable;
use App\Classes\General\Interfaces\Remarkable;
use App\Classes\General\Interfaces\Transactionable;
use App\Classes\General\Interfaces\Voucherifiable;
use App\Classes\General\Traits\LogData;
@@ -21,7 +22,7 @@ use Staudenmeir\EloquentHasManyDeep\HasTableAlias;
use App\Models\StatementTransactionOwner;
class Transaction extends AbstractModel implements Documentable, Transactionable, Voucherifiable
class Transaction extends AbstractModel implements Documentable, Transactionable, Voucherifiable, Remarkable
{
use HasTableAlias;
use SoftDeletes;
@@ -186,6 +187,20 @@ class Transaction extends AbstractModel implements Documentable, Transactionable
return $query->where('type', TransactionType::REFUND);
}
/**
* @param Builder $query
* @param string $payment_reference
* @return Builder
*/
public function scopeSupplierRefunds(Builder $query, ?string $payment_reference = NULL)
{
if($payment_reference){
$query->where('payment_reference', $payment_reference);
}
return $query->where('type', TransactionType::SUPPLIER_REFUND);
}
/**
* @param Builder $query
@@ -245,4 +260,12 @@ class Transaction extends AbstractModel implements Documentable, Transactionable
return $this->morphMany(VoucherEntityMapping::class, 'owner');
}
/**
* @return MorphMany
*/
public function remarks(): morphMany
{
return $this->morphMany(Remark::class, 'owner');
}
}