%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\Http\Requests\UnitTypeRequest;
use App\Scopes\ActiveScope;
use App\Traits\HasCompany;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\HasOne;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Str;
/**
* App\Models\Order
*
* @property int $id
* @property int|null $client_id
* @property string $order_date
* @property float $sub_total
* @property float $total
* @property float $due_amount
* @property string $status
* @property int|null $currency_id
* @property string $show_shipping_address
* @property string|null $note
* @property int|null $added_by
* @property int|null $last_updated_by
* @property \Illuminate\Support\Carbon|null $created_at
* @property \Illuminate\Support\Carbon|null $updated_at
* @property-read \App\Models\User|null $client
* @property-read \App\Models\ClientDetails|null $clientdetails
* @property-read \App\Models\Currency|null $currency
* @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\OrderItems[] $items
* @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\Invoice[] $invoice
* @property-read int|null $items_count
* @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\Payment[] $payment
* @property-read int|null $payment_count
* @property-read \App\Models\Project $project
* @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\Invoice[] $recurrings
* @property-read int|null $recurrings_count
* @method static \Illuminate\Database\Eloquent\Builder|Order newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|Order newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|Order query()
* @method static \Illuminate\Database\Eloquent\Builder|Order whereAddedBy($value)
* @method static \Illuminate\Database\Eloquent\Builder|Order whereClientId($value)
* @method static \Illuminate\Database\Eloquent\Builder|Order whereCreatedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|Order whereCurrencyId($value)
* @method static \Illuminate\Database\Eloquent\Builder|Order whereDueAmount($value)
* @method static \Illuminate\Database\Eloquent\Builder|Order whereId($value)
* @method static \Illuminate\Database\Eloquent\Builder|Order whereLastUpdatedBy($value)
* @method static \Illuminate\Database\Eloquent\Builder|Order whereNote($value)
* @method static \Illuminate\Database\Eloquent\Builder|Order whereOrderDate($value)
* @method static \Illuminate\Database\Eloquent\Builder|Order whereShowShippingAddress($value)
* @method static \Illuminate\Database\Eloquent\Builder|Order whereStatus($value)
* @method static \Illuminate\Database\Eloquent\Builder|Order whereSubTotal($value)
* @method static \Illuminate\Database\Eloquent\Builder|Order whereTotal($value)
* @method static \Illuminate\Database\Eloquent\Builder|Order whereUpdatedAt($value)
* @property mixed $order_number
* @property float $discount
* @property string $discount_type
* @method static \Illuminate\Database\Eloquent\Builder|Order whereDiscount($value)
* @method static \Illuminate\Database\Eloquent\Builder|Order whereDiscountType($value)
* @property int|null $company_id
* @property int|null $company_address_id
* @property-read \App\Models\CompanyAddress|null $address
* @property-read \App\Models\Company|null $company
* @property int|null $unit_id
* @method static \Illuminate\Database\Eloquent\Builder|Order whereCompanyAddressId($value)
* @method static \Illuminate\Database\Eloquent\Builder|Order whereCompanyId($value)
* @method static \Illuminate\Database\Eloquent\Builder|Order whereOrderNumber($value)
* @property-read \App\Models\UnitType $unit
* @property int|null $unit_id
* @property string|null $custom_order_number
* @property-read mixed $original_order_number
* @method static \Illuminate\Database\Eloquent\Builder|Order whereCustomOrderNumber($value)
* @mixin \Eloquent
*/
class Order extends BaseModel
{
protected $appends = ['original_order_number'];
use HasCompany;
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(OrderItems::class, 'order_id');
}
public function payment(): HasMany
{
return $this->hasMany(Payment::class, 'invoice_id')->orderBy('paid_on', 'desc');
}
public function invoice(): HasOne
{
return $this->hasOne(Invoice::class, 'order_id');
}
public function currency(): BelongsTo
{
return $this->belongsTo(Currency::class, 'currency_id');
}
public function address(): BelongsTo
{
return $this->belongsTo(CompanyAddress::class, 'company_address_id');
}
public static function lastOrderNumber()
{
return (int)Order::max('order_number');
}
/*
public function getOrderNumberAttribute()
{
return Str::upper(__('app.order')) . '#' .$this->attributes['order_number'];
}
*/
public function unit(): BelongsTo
{
return $this->belongsTo(UnitType::class, 'unit_id');
}
public function getOriginalOrderNumberAttribute()
{
$orderSettings = (company()) ? company()->invoiceSetting : $this->company->invoiceSetting;
$zero = '';
if ($orderSettings && (strlen($this->attributes['order_number']) < $orderSettings->order_digit)) {
$condition = $orderSettings->order_digit - strlen($this->attributes['order_number']);
for ($i = 0; $i < $condition; $i++) {
$zero = '0' . $zero;
}
}
return $zero . $this->attributes['order_number'];
}
public function getOrderNumberAttribute($value)
{
if (is_null($value)) {
return '';
}
$orderSettings = (company()) ? company()->invoiceSetting : $this->company->invoiceSetting;
$zero = '';
if ($orderSettings && (strlen($value) < $orderSettings->order_digit)) {
$condition = $orderSettings->order_digit - strlen($value);
for ($i = 0; $i < $condition; $i++) {
$zero = '0' . $zero;
}
}
$orderPrefix = $orderSettings ? $orderSettings->order_prefix . $orderSettings->order_number_separator . $zero . $value : $zero . $value;
return $orderPrefix;
}
}