added recurring scope to document models

This commit is contained in:
Cihan Şentürk 2023-07-20 15:44:03 +03:00 committed by GitHub
parent 10a39de970
commit a6a13481fe
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 64 additions and 0 deletions

View File

@ -30,8 +30,24 @@ class DocumentHistory extends Model
return $query->where($this->qualifyColumn('type'), '=', Document::INVOICE_TYPE);
}
public function scopeInvoiceRecurring(Builder $query): Builder
{
return $query->where($this->qualifyColumn('type'), '=', Document::INVOICE_RECURRING_TYPE)
->whereHas('document.recurring', function (Builder $query) {
$query->whereNull('deleted_at');
});
}
public function scopeBill(Builder $query)
{
return $query->where($this->qualifyColumn('type'), '=', Document::BILL_TYPE);
}
public function scopeBillRecurring(Builder $query): Builder
{
return $query->where($this->qualifyColumn('type'), '=', Document::BILL_RECURRING_TYPE)
->whereHas('document.recurring', function (Builder $query) {
$query->whereNull('deleted_at');
});
}
}

View File

@ -100,11 +100,27 @@ class DocumentItem extends Model
return $query->where($this->qualifyColumn('type'), '=', Document::INVOICE_TYPE);
}
public function scopeInvoiceRecurring(Builder $query): Builder
{
return $query->where($this->qualifyColumn('type'), '=', Document::INVOICE_RECURRING_TYPE)
->whereHas('document.recurring', function (Builder $query) {
$query->whereNull('deleted_at');
});
}
public function scopeBill(Builder $query)
{
return $query->where($this->qualifyColumn('type'), '=', Document::BILL_TYPE);
}
public function scopeBillRecurring(Builder $query): Builder
{
return $query->where($this->qualifyColumn('type'), '=', Document::BILL_RECURRING_TYPE)
->whereHas('document.recurring', function (Builder $query) {
$query->whereNull('deleted_at');
});
}
public function getDiscountAttribute(): string
{
if (setting('localisation.percent_position', 'after') === 'after') {

View File

@ -41,11 +41,27 @@ class DocumentItemTax extends Model
return $query->where($this->qualifyColumn('type'), '=', Document::INVOICE_TYPE);
}
public function scopeInvoiceRecurring(Builder $query): Builder
{
return $query->where($this->qualifyColumn('type'), '=', Document::INVOICE_RECURRING_TYPE)
->whereHas('document.recurring', function (Builder $query) {
$query->whereNull('deleted_at');
});
}
public function scopeBill(Builder $query)
{
return $query->where($this->qualifyColumn('type'), '=', Document::BILL_TYPE);
}
public function scopeBillRecurring(Builder $query): Builder
{
return $query->where($this->qualifyColumn('type'), '=', Document::BILL_RECURRING_TYPE)
->whereHas('document.recurring', function (Builder $query) {
$query->whereNull('deleted_at');
});
}
public function onCloned($src)
{
$document_item = DocumentItem::find($this->document_item_id);

View File

@ -33,11 +33,27 @@ class DocumentTotal extends Model
return $query->where($this->qualifyColumn('type'), '=', Document::INVOICE_TYPE);
}
public function scopeInvoiceRecurring(Builder $query): Builder
{
return $query->where($this->qualifyColumn('type'), '=', Document::INVOICE_RECURRING_TYPE)
->whereHas('document.recurring', function (Builder $query) {
$query->whereNull('deleted_at');
});
}
public function scopeBill(Builder $query)
{
return $query->where($this->qualifyColumn('type'), '=', Document::BILL_TYPE);
}
public function scopeBillRecurring(Builder $query): Builder
{
return $query->where($this->qualifyColumn('type'), '=', Document::BILL_RECURRING_TYPE)
->whereHas('document.recurring', function (Builder $query) {
$query->whereNull('deleted_at');
});
}
public function scopeCode($query, $code)
{
return $query->where('code', '=', $code);