Файловый менеджер - Редактировать - /home/clickysoft/public_html/jm5-api.clickysoft.net/app/Models/PurchaseOrder.php
Назад
<?php namespace App\Models; use Barryvdh\DomPDF\Facade\Pdf; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Relations\BelongsTo; use Illuminate\Database\Eloquent\Relations\HasMany; use Illuminate\Support\Facades\Storage; class PurchaseOrder extends Model { use HasFactory; public const PURCHASE_ORDER_STATUS = [ 'Pending' => 'Pending', 'Received' => 'Received', ]; public const PAYMENT_TERMS = [ 'Bank Transfer', 'Check', 'Credit Card', 'Cash', ]; public const SHIPPING_SPEED = [ 'Next day air', 'Second day air', '3 day air', 'Ground shipping', 'Freight shipping', 'Will call', 'Contract Terms', ]; protected $guarded = [ '_token', ]; public const REPORTS_MODE = [ 'previous_month' => 'previousMonth', 'current_month' => 'currentMonth', 'previous_year' => 'previousYear', 'current_year' => 'currentYear', 'all' => 'untilToday', ]; public const REPORTS_MODE_FOR_REPORT = [ 'previous_year' => 'previousYear', 'current_year' => 'currentYear', 'custom' => 'customRange', ]; public function scopePreviousMonth($query) { $start_date = now()->startOfMonth()->subMonth(); $end_date = now()->endOfMonth()->subMonth(); $query->whereBetween('created_at', [$start_date, $end_date]); } public function scopeCurrentMonth($query) { $start_date = now()->startOfMonth(); $end_date = now()->endOfMonth(); $query->whereBetween('created_at', [$start_date, $end_date]); } public function scopePreviousYear($query) { $start_date = now()->startOfYear()->subYear(); $end_date = now()->endOfYear()->subYear(); $query->whereBetween('created_at', [$start_date, $end_date]); } public function scopeCurrentYear($query) { $start_date = now()->startOfYear(); $end_date = now()->endOfYear(); $query->whereBetween('created_at', [$start_date, $end_date]); } public function scopeUntilToday($query) { return $query; } public function product() { return $this->belongsTo(Product::class, 'product_id'); } public function vendor() { return $this->belongsTo(Vendor::class, 'vendor_id'); } public function orderDetails(): HasMany { return $this->hasMany(PurchaseOrderDetails::class, 'purchase_order_id'); } public function user(): BelongsTo { return $this->belongsTo(User::class, 'ordered_by_id'); } public function location(): BelongsTo { return $this->belongsTo(StockLocation::class, 'stock_location_id'); } public function generateAttachment($data) { $pdf = PDF::loadView('partials.po_attachment', [ 'data' => $data, ])->setPaper('A4'); $pdf_name = 'purchase_order_'.$this->order_number . '.pdf'; $file_path = public_path('storage/purchase_orders_attachments/' . $pdf_name); if (!Storage::disk('public')->exists('purchase_orders_attachments')) { Storage::disk('public')->makeDirectory('purchase_orders_attachments'); } $pdf->save($file_path); return $file_path; } }
| ver. 1.4 |
Github
|
.
| PHP 8.1.29 | Генерация страницы: 0 |
proxy
|
phpinfo
|
Настройка