%PDF- %GIF98; %PNG;
Server : ApacheSystem : Linux host.digitalbabaji.in 4.18.0-513.11.1.el8_9.x86_64 #1 SMP Wed Jan 17 02:00:40 EST 2024 x86_64 User : addictionfreeind ( 1003) PHP Version : 7.2.34 Disable Function : exec,passthru,shell_exec,system Directory : /home/addictionfreeind/www/admin1/app/Models/ |
Upload File : |
<?php
namespace App\Models;
use App\Scopes\ActiveScope;
use App\Traits\HasCompany;
use Carbon\Carbon;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Notifications\Notifiable;
/**
* App\Models\RecurringInvoice
*
* @property int $id
* @property int|null $currency_id
* @property int|null $project_id
* @property int|null $client_id
* @property int|null $user_id
* @property int|null $created_by
* @property int|null $unit_id
* @property \Illuminate\Support\Carbon $issue_date
* @property \Illuminate\Support\Carbon $next_invoice_date
* @property \Illuminate\Support\Carbon $due_date
* @property float $sub_total
* @property float $total
* @property float $discount
* @property string $discount_type
* @property string $status
* @property string|null $file
* @property string|null $file_original_name
* @property string|null $note
* @property string $show_shipping_address
* @property int|null $day_of_month
* @property int|null $day_of_week
* @property string|null $payment_method
* @property string $rotation
* @property int|null $billing_cycle
* @property int $client_can_stop
* @property int $unlimited_recurring
* @property string|null $deleted_at
* @property string|null $shipping_address
* @property \Illuminate\Support\Carbon|null $created_at
* @property \Illuminate\Support\Carbon|null $updated_at
* @property int|null $added_by
* @property int|null $last_updated_by
* @property-read \App\Models\User|null $client
* @property-read \App\Models\ClientDetails|null $clientdetails
* @property-read \App\Models\Currency|null $currency
* @property-read mixed $icon
* @property-read mixed $issue_on
* @property-read mixed $total_amount
* @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\RecurringInvoiceItems[] $items
* @property-read int|null $items_count
* @property-read \Illuminate\Notifications\DatabaseNotificationCollection|\Illuminate\Notifications\DatabaseNotification[] $notifications
* @property-read int|null $notifications_count
* @property-read \App\Models\Project|null $project
* @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\Invoice[] $recurrings
* @property-read int|null $recurrings_count
* @property-read \App\Models\User|null $withoutGlobalScopeCompanyClient
* @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice query()
* @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice whereAddedBy($value)
* @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice whereBillingCycle($value)
* @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice whereClientCanStop($value)
* @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice whereClientId($value)
* @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice whereCreatedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice whereCreatedBy($value)
* @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice whereCurrencyId($value)
* @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice whereDayOfMonth($value)
* @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice whereDayOfWeek($value)
* @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice whereDeletedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice whereDiscount($value)
* @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice whereDiscountType($value)
* @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice whereDueDate($value)
* @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice whereFile($value)
* @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice whereFileOriginalName($value)
* @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice whereId($value)
* @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice whereIssueDate($value)
* @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice whereLastUpdatedBy($value)
* @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice whereNote($value)
* @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice wherePaymentMethod($value)
* @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice whereProjectId($value)
* @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice whereRotation($value)
* @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice whereShippingAddress($value)
* @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice whereShowShippingAddress($value)
* @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice whereStatus($value)
* @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice whereSubTotal($value)
* @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice whereTotal($value)
* @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice whereUnlimitedRecurring($value)
* @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice whereUpdatedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice whereUserId($value)
* @property string $calculate_tax
* @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice whereCalculateTax($value)
* @property int|null $company_id
* @property-read \App\Models\Company|null $company
* @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice whereCompanyId($value)
* @property int $immediate_invoice
* @property-read \App\Models\UnitType|null $units
* @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice whereImmediateInvoice($value)
* @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice whereNextInvoiceDate($value)
* @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice whereUnitId($value)
* @property int|null $bank_account_id
* @method static \Illuminate\Database\Eloquent\Builder|RecurringInvoice whereBankAccountId($value)
* @mixin \Eloquent
*/
class RecurringInvoice extends BaseModel
{
use Notifiable, HasCompany;
protected $table = 'invoice_recurring';
protected $casts = [
'issue_date' => 'datetime',
'due_date' => 'datetime',
'next_invoice_date' => 'datetime',
];
protected $appends = ['total_amount', 'issue_on'];
protected $with = ['client'];
const ROTATION_COLOR = [
'daily' => 'success',
'weekly' => 'info',
'bi-weekly' => 'warning',
'monthly' => 'secondary',
'quarterly' => 'light',
'half-yearly' => 'dark',
'annually' => 'success',
];
public function recurrings(): HasMany
{
return $this->hasMany(Invoice::class, 'invoice_recurring_id');
}
public function project(): BelongsTo
{
return $this->belongsTo(Project::class, 'project_id');
}
public function client(): BelongsTo
{
return $this->belongsTo(User::class, 'client_id')->withoutGlobalScope(ActiveScope::class);
}
public function clientdetails(): BelongsTo
{
return $this->belongsTo(ClientDetails::class, 'client_id', 'user_id');
}
public function items(): HasMany
{
return $this->hasMany(RecurringInvoiceItems::class, 'invoice_recurring_id');
}
public function currency(): BelongsTo
{
return $this->belongsTo(Currency::class, 'currency_id')->withoutGlobalScope(ActiveScope::class);
}
public function getTotalAmountAttribute()
{
if (!is_null($this->total) && !is_null($this->currency->currency_symbol)) {
return $this->currency->currency_symbol . $this->total;
}
return '';
}
public function getIssueOnAttribute()
{
if (is_null($this->issue_date)) {
return '';
}
return Carbon::parse($this->issue_date)->format('d F, Y');
}
public function units(): BelongsTo
{
return $this->belongsTo(UnitType::class, 'unit_id');
}
}