HEX
Server: LiteSpeed
System: Linux s1049.use1.mysecurecloudhost.com 4.18.0-477.27.2.lve.el8.x86_64 #1 SMP Wed Oct 11 12:32:56 UTC 2023 x86_64
User: xedaptot (3356)
PHP: 8.3.31
Disabled: NONE
Upload Files
File: /home/xedaptot/work.naniguide.com/app/Helper/NumberFormat.php
<?php

namespace App\Helper;

use App\Models\Order;

class NumberFormat
{

    public static function contract($number, $setting = null)
    {
        $setting = $setting ?? invoice_setting();
        $zero = '';

        if (strlen($number) < $setting->contract_digit) {
            $condition = $setting->contract_digit - strlen($number);

            for ($i = 0; $i < $condition; $i++) {
                $zero = '0' . $zero;
            }
        }

        return $setting->contract_prefix . $setting->contract_number_separator . $zero . $number;
    }

    public static function creditNote($number, $setting = null)
    {
        $setting = $setting ?? invoice_setting();
        $zero = '';

        if (strlen($number) < $setting->credit_note_digit) {
            $condition = $setting->credit_note_digit - strlen($number);

            for ($i = 0; $i < $condition; $i++) {
                $zero = '0' . $zero;
            }
        }

        return $setting->credit_note_prefix . $setting->credit_note_number_separator . $zero . $number;
    }

    public static function invoice($number, $setting = null)
    {
        $setting = $setting ?? invoice_setting();
        $zero = '';

        if (strlen($number) < $setting->invoice_digit) {
            $condition = $setting->invoice_digit - strlen($number);

            for ($i = 0; $i < $condition; $i++) {
                $zero = '0' . $zero;
            }
        }

        return $setting->invoice_prefix . $setting->invoice_number_separator . $zero . $number;
    }

    public static function estimate($number, $setting = null)
    {
        $setting = $setting ?? invoice_setting();
        $zero = '';

        if (strlen($number) < $setting->estimate_digit) {
            $condition = $setting->estimate_digit - strlen($number);

            for ($i = 0; $i < $condition; $i++) {
                $zero = '0' . $zero;
            }
        }

        return $setting->estimate_prefix . $setting->estimate_number_separator . $zero . $number;
    }

    public static function order($number, $setting = null)
    {
        if (is_null($number)) {
            $number = ((int)Order::latest()->first()?->original_order_number ?? 0) + 1;
        }

        $setting = $setting ?? invoice_setting();
        $zero = '';

        if (strlen($number) < $setting->order_digit) {
            $condition = $setting->order_digit - strlen($number);

            for ($i = 0; $i < $condition; $i++) {
                $zero = '0' . $zero;
            }
        }

        return $setting->order_prefix . $setting->order_number_separator . $zero . $number;
    }

}