diff --git a/app/Enums/Gender.php b/app/Enums/Gender.php index 402d95c..3b76b31 100644 --- a/app/Enums/Gender.php +++ b/app/Enums/Gender.php @@ -8,6 +8,7 @@ enum Gender: int { use WithCommentEnum, WithValueEnum; + case MALE = 1; case FEMALE = 2; diff --git a/app/Helpers/ColorHelpers.php b/app/Helpers/ColorHelpers.php index 1c1a7e3..45022c5 100644 --- a/app/Helpers/ColorHelpers.php +++ b/app/Helpers/ColorHelpers.php @@ -1,13 +1,13 @@ $value) { - if (empty($integerKeys) || in_array($key, $integerKeys)) { - if ($value === '' || $value === null) { - $data[$key] = 0; - } - } - } - - return $data; - } -} - -if (! function_exists('formatPhoneNumber')) { - /** - * Format Indonesian phone number with customizable country prefix - * - * @param string $prefix Country prefix (default: '+62') - * @param bool $useDash Use dashes for formatting (default: false) - */ - function formatPhoneNumber(string $number, string $prefix = '+62', bool $useDash = false): string - { - $clean = preg_replace('/\D+/', '', $number); - $clean = preg_replace('/^(0|62)/', '', $clean); - $formatted = $prefix.$clean; - - if ($useDash) { - $formatted = preg_replace('/(\d{3})(\d{3,4})(\d{3,4})(\d+)?/', $prefix.'-$1-$2-$3$4', $formatted); - } - - return $formatted; - } -} - -if (! function_exists('terbilang')) { - function terbilang($angka) +if (! function_exists('convertNumberToIndonesianWords')) { + function convertNumberToIndonesianWords($angka) { $angka = (int) abs($angka); $huruf = ['', 'satu', 'dua', 'tiga', 'empat', 'lima', 'enam', 'tujuh', 'delapan', 'sembilan', 'sepuluh', 'sebelas']; @@ -140,46 +99,46 @@ function terbilang($angka) return $result; } elseif ($angka < 200) { - return 'seratus '.terbilang($angka - 100); + return 'seratus '.convertNumberToIndonesianWords($angka - 100); } elseif ($angka < 1000) { $result = $huruf[$angka / 100].' ratus'; $sisa = $angka % 100; if ($sisa > 0) { - $result .= ' '.terbilang($sisa); + $result .= ' '.convertNumberToIndonesianWords($sisa); } return $result; } elseif ($angka < 2000) { - return 'seribu '.terbilang($angka - 1000); + return 'seribu '.convertNumberToIndonesianWords($angka - 1000); } elseif ($angka < 1000000) { - $result = terbilang($angka / 1000).' ribu'; + $result = convertNumberToIndonesianWords($angka / 1000).' ribu'; $sisa = $angka % 1000; if ($sisa > 0) { - $result .= ' '.terbilang($sisa); + $result .= ' '.convertNumberToIndonesianWords($sisa); } return $result; } elseif ($angka < 1000000000) { - $result = terbilang($angka / 1000000).' juta'; + $result = convertNumberToIndonesianWords($angka / 1000000).' juta'; $sisa = $angka % 1000000; if ($sisa > 0) { - $result .= ' '.terbilang($sisa); + $result .= ' '.convertNumberToIndonesianWords($sisa); } return $result; } elseif ($angka < 1000000000000) { - $result = terbilang($angka / 1000000000).' milyar'; + $result = convertNumberToIndonesianWords($angka / 1000000000).' milyar'; $sisa = $angka % 1000000000; if ($sisa > 0) { - $result .= ' '.terbilang($sisa); + $result .= ' '.convertNumberToIndonesianWords($sisa); } return $result; } elseif ($angka < 1000000000000000) { - $result = terbilang($angka / 1000000000000).' trilyun'; + $result = convertNumberToIndonesianWords($angka / 1000000000000).' trilyun'; $sisa = $angka % 1000000000000; if ($sisa > 0) { - $result .= ' '.terbilang($sisa); + $result .= ' '.convertNumberToIndonesianWords($sisa); } return $result; diff --git a/app/Livewire/Chart/ChannelRevenue.php b/app/Livewire/Chart/ChannelRevenue.php index 0ad70b2..6e6fac2 100644 --- a/app/Livewire/Chart/ChannelRevenue.php +++ b/app/Livewire/Chart/ChannelRevenue.php @@ -37,8 +37,8 @@ public function mount(array $outlets) // random colors $count = count(OrderChannel::cases()); - $this->backgroundColors = randomColors($count, 0.2); - $this->borderColors = randomColors($count, 1.0); + $this->backgroundColors = generateRandomRgbaColors($count, 0.2); + $this->borderColors = generateRandomRgbaColors($count, 1.0); } public function render() diff --git a/app/Livewire/Chart/OutletExpense.php b/app/Livewire/Chart/OutletExpense.php index 7d8cf4c..96f2c80 100644 --- a/app/Livewire/Chart/OutletExpense.php +++ b/app/Livewire/Chart/OutletExpense.php @@ -39,8 +39,8 @@ public function mount(array $outlets) // random colors $count = count($this->outlets); - $this->backgroundColors = randomColors($count, 0.2); - $this->borderColors = randomColors($count, 1.0); + $this->backgroundColors = generateRandomRgbaColors($count, 0.2); + $this->borderColors = generateRandomRgbaColors($count, 1.0); } public function render() diff --git a/app/Livewire/Chart/OutletRevenue.php b/app/Livewire/Chart/OutletRevenue.php index bcf28da..2a256ac 100644 --- a/app/Livewire/Chart/OutletRevenue.php +++ b/app/Livewire/Chart/OutletRevenue.php @@ -29,8 +29,8 @@ public function mount(array $outlets) // random colors $count = count($this->outlets); - $this->backgroundColors = randomColors($count, 0.2); - $this->borderColors = randomColors($count, 1.0); + $this->backgroundColors = generateRandomRgbaColors($count, 0.2); + $this->borderColors = generateRandomRgbaColors($count, 1.0); } public function render() diff --git a/app/Livewire/Datatable/Catalog/BottlesTable.php b/app/Livewire/Datatable/Catalog/BottlesTable.php index 33215cf..f5e82b6 100644 --- a/app/Livewire/Datatable/Catalog/BottlesTable.php +++ b/app/Livewire/Datatable/Catalog/BottlesTable.php @@ -50,10 +50,10 @@ public function columns(): array Column::make('Harga Beli', 'cost_price') ->label(function ($row) use ($canSeePrice) { if ($canSeePrice) { - return currency($row->cost_price, 'Rp'); + return formatCurrencyNumber($row->cost_price, 'Rp'); } - $masked = Str::mask(currency($row->cost_price, 'Rp'), '*', 2); + $masked = Str::mask(formatCurrencyNumber($row->cost_price, 'Rp'), '*', 2); return Blade::render(' @@ -69,7 +69,7 @@ public function columns(): array ->hideIf(! auth()->user()->hasRole(['Developer', 'Owner'])), Column::make('Harga Jual', 'sale_price') - ->label(fn ($row, $column) => currency($row->sale_price, 'Rp')) + ->label(fn ($row, $column) => formatCurrencyNumber($row->sale_price, 'Rp')) ->searchable() ->sortable(), @@ -88,7 +88,7 @@ public function columns(): array 'id' => $outlet->hash, 'bottle_id' => $row->hash, 'name' => $outlet->name, - 'stock' => currency($outlet->pivot->stock, ''), + 'stock' => formatCurrencyNumber($outlet->pivot->stock, ''), ])->toArray() ) ->outputFormat(function ($index, $value) { diff --git a/app/Livewire/Datatable/Catalog/PerfumesTable.php b/app/Livewire/Datatable/Catalog/PerfumesTable.php index 919657d..361e7cf 100644 --- a/app/Livewire/Datatable/Catalog/PerfumesTable.php +++ b/app/Livewire/Datatable/Catalog/PerfumesTable.php @@ -60,10 +60,10 @@ public function columns(): array Column::make('Harga Beli', 'cost_price') ->label(function ($row) use ($canSeePrice) { if ($canSeePrice) { - return currency($row->cost_price, 'Rp'); + return formatCurrencyNumber($row->cost_price, 'Rp'); } - $masked = Str::mask(currency($row->cost_price, 'Rp'), '*', 2); + $masked = Str::mask(formatCurrencyNumber($row->cost_price, 'Rp'), '*', 2); return Blade::render(' @@ -79,7 +79,7 @@ public function columns(): array ->hideIf(! auth()->user()->hasRole(['Developer', 'Owner'])), Column::make('Harga Jual', 'sale_price') - ->label(fn ($row, $column) => currency($row->sale_price, 'Rp')) + ->label(fn ($row, $column) => formatCurrencyNumber($row->sale_price, 'Rp')) ->searchable() ->sortable(), @@ -91,7 +91,7 @@ public function columns(): array 'id' => $outlet->hash, 'perfume_id' => $row->hash, 'name' => $outlet->name, - 'stock' => currency($outlet->pivot->stock, ''), + 'stock' => formatCurrencyNumber($outlet->pivot->stock, ''), ])->toArray() ) ->outputFormat(function ($index, $value) { diff --git a/app/Livewire/Datatable/Catalog/ProductsTable.php b/app/Livewire/Datatable/Catalog/ProductsTable.php index 042dadc..ac160fa 100644 --- a/app/Livewire/Datatable/Catalog/ProductsTable.php +++ b/app/Livewire/Datatable/Catalog/ProductsTable.php @@ -49,10 +49,10 @@ public function columns(): array Column::make('Harga Beli', 'cost_price') ->label(function ($row) use ($canSeePrice) { if ($canSeePrice) { - return currency($row->cost_price, 'Rp'); + return formatCurrencyNumber($row->cost_price, 'Rp'); } - $masked = Str::mask(currency($row->cost_price, 'Rp'), '*', 2); + $masked = Str::mask(formatCurrencyNumber($row->cost_price, 'Rp'), '*', 2); return Blade::render(' @@ -68,7 +68,7 @@ public function columns(): array ->hideIf(! auth()->user()->hasRole(['Developer', 'Owner'])), Column::make('Harga Jual', 'sale_price') - ->label(fn ($row, $column) => currency($row->sale_price, 'Rp')) + ->label(fn ($row, $column) => formatCurrencyNumber($row->sale_price, 'Rp')) ->searchable() ->sortable(), @@ -80,7 +80,7 @@ public function columns(): array 'id' => $outlet->hash, 'product_id' => $row->hash, 'name' => $outlet->name, - 'stock' => currency($outlet->pivot->stock, ''), + 'stock' => formatCurrencyNumber($outlet->pivot->stock, ''), ])->toArray() ) ->outputFormat(function ($index, $value) { diff --git a/app/Livewire/Datatable/Finance/ExpensesTable.php b/app/Livewire/Datatable/Finance/ExpensesTable.php index 1717548..8f82322 100644 --- a/app/Livewire/Datatable/Finance/ExpensesTable.php +++ b/app/Livewire/Datatable/Finance/ExpensesTable.php @@ -25,14 +25,14 @@ public function columns(): array Column::make('Keterangan', 'description')->searchable(), Column::make('Jumlah', 'amount') - ->format(fn ($value) => currency($value, 'Rp')) + ->format(fn ($value) => formatCurrencyNumber($value, 'Rp')) ->searchable(), Column::make('Outlet', 'outlet.name') ->searchable(), Column::make('Tanggal', 'created_at') - ->format(fn ($value) => formatDateTime($value)) + ->format(fn ($value) => formatDateTimeLocalized($value)) ->searchable(), Column::make('Aksi') diff --git a/app/Livewire/Datatable/Finance/PayrollsTable.php b/app/Livewire/Datatable/Finance/PayrollsTable.php index 1b7971d..4e8dc55 100644 --- a/app/Livewire/Datatable/Finance/PayrollsTable.php +++ b/app/Livewire/Datatable/Finance/PayrollsTable.php @@ -25,23 +25,23 @@ public function columns(): array Column::make('Pegawai', 'user.employee.full_name')->searchable(), Column::make('Bulan', 'period_month') - ->format(fn ($value) => formatDate($value, 'F Y')) + ->format(fn ($value) => formatDateLocalized($value, 'F Y')) ->searchable(), Column::make('Gaji Pokok', 'base_salary') - ->format(fn ($value) => currency($value, 'Rp')) + ->format(fn ($value) => formatCurrencyNumber($value, 'Rp')) ->searchable(), Column::make('Bonus', 'bonus') - ->format(fn ($value) => currency($value, 'Rp')) + ->format(fn ($value) => formatCurrencyNumber($value, 'Rp')) ->searchable(), Column::make('Potongan', 'deduction') - ->format(fn ($value) => currency($value, 'Rp')) + ->format(fn ($value) => formatCurrencyNumber($value, 'Rp')) ->searchable(), Column::make('Total Gaji', 'total_salary') - ->format(fn ($value) => currency($value, 'Rp')) + ->format(fn ($value) => formatCurrencyNumber($value, 'Rp')) ->searchable(), ArrayColumn::make('Rincian') @@ -50,7 +50,7 @@ public function columns(): array ->where('payroll_id', $row->id) ->map(fn ($item) => [ 'color' => $item->type->value == SalaryAdjustmentType::DEDUCTION->value ? 'text-red-500' : 'text-green-500', - 'amount' => currency($item->amount, 'Rp'), + 'amount' => formatCurrencyNumber($item->amount, 'Rp'), 'description' => $item->description, 'id' => $item->id, ])->toArray() @@ -74,7 +74,7 @@ public function columns(): array {{ $row->is_paid->label() }} - {{ $row->paid_at ? formatDateTime($row->paid_at) : "-" }} + {{ $row->paid_at ? formatDateTimeLocalized($row->paid_at) : "-" }} ', ['row' => $row])) diff --git a/app/Livewire/Datatable/Information/PriceRequestsTable.php b/app/Livewire/Datatable/Information/PriceRequestsTable.php index 19b5f1a..2394720 100644 --- a/app/Livewire/Datatable/Information/PriceRequestsTable.php +++ b/app/Livewire/Datatable/Information/PriceRequestsTable.php @@ -33,11 +33,11 @@ public function columns(): array Column::make('Tanggal') ->label(function ($row) { - $startDate = formatDate($row->created_at); - $startAgo = timeAgo($row->created_at); + $startDate = formatDateLocalized($row->created_at); + $startAgo = formatRelativeTime($row->created_at); - $endDate = formatDate($row->finalized_at); - $endAgo = timeAgo($row->finalized_at); + $endDate = formatDateLocalized($row->finalized_at); + $endAgo = formatRelativeTime($row->finalized_at); return << diff --git a/app/Livewire/Datatable/Loyalty/CustomersTable.php b/app/Livewire/Datatable/Loyalty/CustomersTable.php index 62313c0..6160a1d 100644 --- a/app/Livewire/Datatable/Loyalty/CustomersTable.php +++ b/app/Livewire/Datatable/Loyalty/CustomersTable.php @@ -47,12 +47,12 @@ public function columns(): array CountColumn::make('Total Order') ->setDataSource('orders') - ->label(fn ($value) => currency($value->orders_count)) + ->label(fn ($value) => formatCurrencyNumber($value->orders_count)) ->sortable(), SumColumn::make('Total Pembayaran') ->setDataSource('orders', 'total') - ->label(fn ($value) => currency($value->orders_sum_total, 'Rp')) + ->label(fn ($value) => formatCurrencyNumber($value->orders_sum_total, 'Rp')) ->sortable(), Column::make('Terakhir Order') @@ -60,12 +60,12 @@ public function columns(): array $latestOrder = $record->orders()->latest()->first(); return $latestOrder - ? timeAgo($latestOrder->created_at) + ? formatRelativeTime($latestOrder->created_at) : ''; }), Column::make('Terdaftar Sejak', 'created_at') - ->format(fn ($value) => $value ? timeAgo($value) : '') + ->format(fn ($value) => $value ? formatRelativeTime($value) : '') ->searchable() ->sortable(), diff --git a/app/Livewire/Datatable/Loyalty/VouchersTable.php b/app/Livewire/Datatable/Loyalty/VouchersTable.php index 66d8608..04ceb90 100644 --- a/app/Livewire/Datatable/Loyalty/VouchersTable.php +++ b/app/Livewire/Datatable/Loyalty/VouchersTable.php @@ -41,7 +41,7 @@ public function columns(): array ->sortable(), Column::make('Min. Belanja', 'min_purchase') - ->format(fn ($value) => currency($value, 'Rp')) + ->format(fn ($value) => formatCurrencyNumber($value, 'Rp')) ->searchable() ->sortable(), @@ -51,17 +51,17 @@ public function columns(): array ->sortable(), Column::make('Maks. Diskon') - ->label(fn ($row, $column) => currency($row->max_discount, 'Rp')) + ->label(fn ($row, $column) => formatCurrencyNumber($row->max_discount, 'Rp')) ->searchable() ->sortable(), Column::make('Kuota', 'quota') - ->format(fn ($value) => $value ? currency($value) : 'Tidak Terbatas') + ->format(fn ($value) => $value ? formatCurrencyNumber($value) : 'Tidak Terbatas') ->searchable() ->sortable(), Column::make('Sisa Voucher', 'available_count') - ->format(fn ($value) => $value ? currency($value) : 'Tidak Terbatas') + ->format(fn ($value) => $value ? formatCurrencyNumber($value) : 'Tidak Terbatas') ->searchable() ->sortable(), @@ -74,7 +74,7 @@ public function columns(): array ->data( fn ($value, $row) => $row->outlets->map(fn ($outlet) => [ 'name' => $outlet->name, - 'stock' => currency($outlet->pivot->stock, ''), + 'stock' => formatCurrencyNumber($outlet->pivot->stock, ''), ])->toArray() ) ->outputFormat(fn ($index, $value) => Blade::render(' @@ -85,11 +85,11 @@ public function columns(): array Column::make('Tanggal') ->label(function ($row) { - $startDate = formatDate($row->start_date); - $startAgo = timeAgo($row->start_date); + $startDate = formatDateLocalized($row->start_date); + $startAgo = formatRelativeTime($row->start_date); - $endDate = formatDate($row->end_date); - $endAgo = timeAgo($row->end_date); + $endDate = formatDateLocalized($row->end_date); + $endAgo = formatRelativeTime($row->end_date); return << diff --git a/app/Livewire/Datatable/Manage/ArticlesTable.php b/app/Livewire/Datatable/Manage/ArticlesTable.php index 447715c..26fabb8 100644 --- a/app/Livewire/Datatable/Manage/ArticlesTable.php +++ b/app/Livewire/Datatable/Manage/ArticlesTable.php @@ -32,11 +32,11 @@ public function columns(): array ->html(), Column::make('Waktu Publish', 'published_at') - ->format(fn ($value) => formatDateTime($value)) + ->format(fn ($value) => formatDateTimeLocalized($value)) ->searchable(), Column::make('Dilihat', 'views') - ->format(fn ($value) => currency($value)) + ->format(fn ($value) => formatCurrencyNumber($value)) ->searchable() ->sortable(), diff --git a/app/Livewire/Datatable/Manage/OrdersTable.php b/app/Livewire/Datatable/Manage/OrdersTable.php index aacff67..d2dbf01 100644 --- a/app/Livewire/Datatable/Manage/OrdersTable.php +++ b/app/Livewire/Datatable/Manage/OrdersTable.php @@ -43,20 +43,20 @@ public function columns(): array ->html(), Column::make('Tanggal', 'ordered_at') - ->format(fn ($value) => formatDate($value)) + ->format(fn ($value) => formatDateLocalized($value)) ->searchable(), Column::make('HPP', 'cogs') - ->format(fn ($value) => currency($value, 'Rp')) + ->format(fn ($value) => formatCurrencyNumber($value, 'Rp')) ->searchable(), ArrayColumn::make('Item') ->data( fn ($value, $row) => $row->items->map(fn ($item) => [ 'name' => $item->orderable?->name, - 'quantity' => currency($item->quantity, ''), - 'unit_price' => currency($item->unit_price, 'Rp'), - 'total_price' => currency($item->total_price, 'Rp'), + 'quantity' => formatCurrencyNumber($item->quantity, ''), + 'unit_price' => formatCurrencyNumber($item->unit_price, 'Rp'), + 'total_price' => formatCurrencyNumber($item->total_price, 'Rp'), ])->toArray() ) ->outputFormat( @@ -71,11 +71,11 @@ public function columns(): array Column::make('Ringkasan') ->label(function ($value) { - $subtotal = currency($value->subtotal, 'Rp'); + $subtotal = formatCurrencyNumber($value->subtotal, 'Rp'); - $discount = currency($value->discount, 'Rp'); + $discount = formatCurrencyNumber($value->discount, 'Rp'); - $total = currency($value->total, 'Rp'); + $total = formatCurrencyNumber($value->total, 'Rp'); return Blade::render('
diff --git a/app/Livewire/Datatable/Manage/PurchasesTable.php b/app/Livewire/Datatable/Manage/PurchasesTable.php index daef45b..b81eafb 100644 --- a/app/Livewire/Datatable/Manage/PurchasesTable.php +++ b/app/Livewire/Datatable/Manage/PurchasesTable.php @@ -30,12 +30,12 @@ public function columns(): array Column::make('Nomor Invoice', 'invoice_number')->searchable(), Column::make('Tanggal Belanja', 'purchase_date') - ->format(fn ($value) => formatDate($value)) + ->format(fn ($value) => formatDateLocalized($value)) ->searchable() ->sortable(), Column::make('Total', 'total') - ->format(fn ($value) => currency($value, 'Rp')) + ->format(fn ($value) => formatCurrencyNumber($value, 'Rp')) ->searchable() ->sortable(), @@ -43,9 +43,9 @@ public function columns(): array ->data( fn ($value, $row) => $row->items->map(fn ($item) => [ 'name' => $item->purchasable?->name, - 'quantity' => currency($item->quantity, ''), - 'unit_price' => currency($item->unit_price, 'Rp'), - 'total_price' => currency($item->total_price, 'Rp'), + 'quantity' => formatCurrencyNumber($item->quantity, ''), + 'unit_price' => formatCurrencyNumber($item->unit_price, 'Rp'), + 'total_price' => formatCurrencyNumber($item->total_price, 'Rp'), ])->toArray() ) ->outputFormat( diff --git a/app/Livewire/Datatable/Manage/StockOpnameTable.php b/app/Livewire/Datatable/Manage/StockOpnameTable.php index 9ae2d78..71abf80 100644 --- a/app/Livewire/Datatable/Manage/StockOpnameTable.php +++ b/app/Livewire/Datatable/Manage/StockOpnameTable.php @@ -23,7 +23,7 @@ public function columns(): array Column::make('Outlet', 'outlet.name')->searchable(), Column::make('Periode Bulan', 'period_month') - ->format(fn ($row) => formatDate($row, 'F Y')) + ->format(fn ($row) => formatDateLocalized($row, 'F Y')) ->searchable() ->sortable(), diff --git a/app/Livewire/Forms/Studio/Catalog/BottleForm.php b/app/Livewire/Forms/Studio/Catalog/BottleForm.php index f4989c0..e8f4657 100644 --- a/app/Livewire/Forms/Studio/Catalog/BottleForm.php +++ b/app/Livewire/Forms/Studio/Catalog/BottleForm.php @@ -102,8 +102,8 @@ private function prepareSavedData(): array return [ 'name' => $this->name, 'size' => $this->size, - 'cost_price' => replaceCurrency($this->cost_price == '' ? '0' : $this->cost_price), - 'sale_price' => replaceCurrency($this->sale_price), + 'cost_price' => parseRupiahToInt($this->cost_price == '' ? '0' : $this->cost_price), + 'sale_price' => parseRupiahToInt($this->sale_price), 'point_per_pcs' => round($this->sale_price / 100), 'description' => $this->description, ]; diff --git a/app/Livewire/Forms/Studio/Catalog/PerfumeForm.php b/app/Livewire/Forms/Studio/Catalog/PerfumeForm.php index e8f4df1..c5d8697 100644 --- a/app/Livewire/Forms/Studio/Catalog/PerfumeForm.php +++ b/app/Livewire/Forms/Studio/Catalog/PerfumeForm.php @@ -145,9 +145,9 @@ private function prepareSavedData(): array return [ 'name' => $this->name, 'sku' => $this->sku, - 'cost_price' => replaceCurrency($this->cost_price == '' ? '0' : $this->cost_price), - 'sale_price' => replaceCurrency($this->sale_price), - 'point_per_ml' => round(replaceCurrency($this->sale_price) / 1000), + 'cost_price' => parseRupiahToInt($this->cost_price == '' ? '0' : $this->cost_price), + 'sale_price' => parseRupiahToInt($this->sale_price), + 'point_per_ml' => round(parseRupiahToInt($this->sale_price) / 1000), 'base_notes' => $this->base_notes, 'middle_notes' => $this->middle_notes, 'top_notes' => $this->top_notes, diff --git a/app/Livewire/Forms/Studio/Catalog/ProductForm.php b/app/Livewire/Forms/Studio/Catalog/ProductForm.php index cbc14c3..b2e87ab 100644 --- a/app/Livewire/Forms/Studio/Catalog/ProductForm.php +++ b/app/Livewire/Forms/Studio/Catalog/ProductForm.php @@ -112,8 +112,8 @@ private function prepareSavedData(): array return [ 'name' => $this->name, 'sku' => $this->sku, - 'cost_price' => replaceCurrency($this->cost_price == '' ? '0' : $this->cost_price), - 'sale_price' => replaceCurrency($this->sale_price), + 'cost_price' => parseRupiahToInt($this->cost_price == '' ? '0' : $this->cost_price), + 'sale_price' => parseRupiahToInt($this->sale_price), 'point_per_pcs' => round($this->sale_price / 100), 'description' => $this->description, 'outlet_ids' => $this->outlet_ids, diff --git a/app/Livewire/Forms/Studio/Finance/ExpenseForm.php b/app/Livewire/Forms/Studio/Finance/ExpenseForm.php index 1a7ff91..e9afef5 100644 --- a/app/Livewire/Forms/Studio/Finance/ExpenseForm.php +++ b/app/Livewire/Forms/Studio/Finance/ExpenseForm.php @@ -48,7 +48,7 @@ public function setExpense(Expense $expense): void $this->expense = $expense; $this->description = $expense->description; - $this->amount = currency($expense->amount); + $this->amount = formatCurrencyNumber($expense->amount); $this->outlet_id = $expense->outlet_id; $this->image = $this->mapMediaCollection($expense->getMedia('image')); @@ -63,7 +63,7 @@ public function store(): void 'user_id' => auth()->id(), 'type' => ExpenseType::OPERATIONAL, 'description' => $this->description, - 'amount' => replaceCurrency($this->amount), + 'amount' => parseRupiahToInt($this->amount), 'outlet_id' => auth()->user()->outlets()->count() > 1 ? $this->outlet_id : auth()->user()->outlets()->first()->id, ]); @@ -78,7 +78,7 @@ public function update(): void DB::transaction(function () { $this->expense->update([ 'description' => $this->description, - 'amount' => replaceCurrency($this->amount), + 'amount' => parseRupiahToInt($this->amount), ]); $this->syncMedia($this->image, $this->expense, 'image'); diff --git a/app/Livewire/Forms/Studio/Finance/PayrollForm.php b/app/Livewire/Forms/Studio/Finance/PayrollForm.php index 0b790ad..31b1b7e 100644 --- a/app/Livewire/Forms/Studio/Finance/PayrollForm.php +++ b/app/Livewire/Forms/Studio/Finance/PayrollForm.php @@ -47,7 +47,7 @@ public function store(): array { $this->validate(); - $amount = (int) replaceCurrency($this->amount); + $amount = (int) parseRupiahToInt($this->amount); DB::transaction(function () use ($amount, &$adjustment) { foreach ($this->user_ids as $user_id) { @@ -83,12 +83,12 @@ public function store(): array if ($adjustment->type->value == SalaryAdjustmentType::BONUS->value) { return [ 'userIds' => $this->user_ids, - 'message' => '🎉 Horee! Anda mendapatkan bonus sebesar '.currency($amount, 'Rp').' untuk bulan ini. Lihat detailnya di menu Penggajian! 💰✨', + 'message' => '🎉 Horee! Anda mendapatkan bonus sebesar '.formatCurrencyNumber($amount, 'Rp').' untuk bulan ini. Lihat detailnya di menu Penggajian! 💰✨', ]; } elseif ($adjustment->type->value == SalaryAdjustmentType::DEDUCTION->value) { return [ 'userIds' => $this->user_ids, - 'message' => '⚠️ Yahh, gaji Anda dipotong sebesar '.currency($amount, 'Rp').' untuk bulan ini. Lihat detailnya di menu Penggajian. 📄', + 'message' => '⚠️ Yahh, gaji Anda dipotong sebesar '.formatCurrencyNumber($amount, 'Rp').' untuk bulan ini. Lihat detailnya di menu Penggajian. 📄', ]; } } diff --git a/app/Livewire/Forms/Studio/Loyalty/Tier/RewardForm.php b/app/Livewire/Forms/Studio/Loyalty/Tier/RewardForm.php index 570aac5..a8c9127 100644 --- a/app/Livewire/Forms/Studio/Loyalty/Tier/RewardForm.php +++ b/app/Livewire/Forms/Studio/Loyalty/Tier/RewardForm.php @@ -40,7 +40,7 @@ public function setRewards(TierReward $tierReward): void $this->tier_id = $tierReward->tier_id; $this->name = $tierReward->name; - $this->value = currency($tierReward->value); + $this->value = formatCurrencyNumber($tierReward->value); } public function store(): TierReward @@ -64,7 +64,7 @@ private function prepareSavedData(): array return [ 'tier_id' => $this->tier_id, 'name' => $this->name, - 'value' => replaceCurrency($this->value), + 'value' => parseRupiahToInt($this->value), ]; } } diff --git a/app/Livewire/Forms/Studio/Loyalty/TierForm.php b/app/Livewire/Forms/Studio/Loyalty/TierForm.php index 0f14f22..5155cbc 100644 --- a/app/Livewire/Forms/Studio/Loyalty/TierForm.php +++ b/app/Livewire/Forms/Studio/Loyalty/TierForm.php @@ -29,8 +29,8 @@ public function rules(): array public function withValidator($validator): void { $validator->after(function ($validator) { - $minPoints = replaceCurrency($this->min_points); - $maxPoints = $this->max_points ? replaceCurrency($this->max_points) : null; + $minPoints = parseRupiahToInt($this->min_points); + $maxPoints = $this->max_points ? parseRupiahToInt($this->max_points) : null; $ignoreId = $this->tier?->id; $tierErrors = Tier::validateTierPoints($minPoints, $maxPoints, $ignoreId); @@ -83,8 +83,8 @@ private function prepareSavedData(): array { return [ 'name' => $this->name, - 'min_points' => replaceCurrency($this->min_points), - 'max_points' => replaceCurrency($this->max_points), + 'min_points' => parseRupiahToInt($this->min_points), + 'max_points' => parseRupiahToInt($this->max_points), ]; } } diff --git a/app/Livewire/Forms/Studio/Loyalty/VoucherForm.php b/app/Livewire/Forms/Studio/Loyalty/VoucherForm.php index 200fc84..1f2d9bc 100644 --- a/app/Livewire/Forms/Studio/Loyalty/VoucherForm.php +++ b/app/Livewire/Forms/Studio/Loyalty/VoucherForm.php @@ -107,9 +107,9 @@ public function setVoucher(Voucher $voucher): void $this->code = $this->voucher->code; $this->tags = $this->voucher->tags; $this->type = $this->voucher->type->value; - $this->discount_amount = replaceCurrency($this->voucher->discount_amount); - $this->min_purchase = replaceCurrency($this->voucher->min_purchase); - $this->max_discount = replaceCurrency($this->voucher->max_discount); + $this->discount_amount = parseRupiahToInt($this->voucher->discount_amount); + $this->min_purchase = parseRupiahToInt($this->voucher->min_purchase); + $this->max_discount = parseRupiahToInt($this->voucher->max_discount); $this->quota = $this->voucher->quota; $this->limit_per_user = $this->voucher->limit_per_user; $this->summary = $this->voucher->summary; @@ -159,9 +159,9 @@ private function prepareSavedData(): array 'code' => $this->code, 'tags' => $this->tags, 'type' => $this->type, - 'discount_amount' => replaceCurrency($this->discount_amount), - 'min_purchase' => replaceCurrency($this->min_purchase), - 'max_discount' => $this->type == VoucherType::PERCENTAGE->value ? replaceCurrency($this->max_discount) : null, + 'discount_amount' => parseRupiahToInt($this->discount_amount), + 'min_purchase' => parseRupiahToInt($this->min_purchase), + 'max_discount' => $this->type == VoucherType::PERCENTAGE->value ? parseRupiahToInt($this->max_discount) : null, 'quota' => $this->quota, 'available_count' => empty($this->quota) ? 0 : $this->quota, 'limit_per_user' => $this->limit_per_user, diff --git a/app/Livewire/Forms/Studio/Manage/OrderForm.php b/app/Livewire/Forms/Studio/Manage/OrderForm.php index 1d5d521..18164a9 100644 --- a/app/Livewire/Forms/Studio/Manage/OrderForm.php +++ b/app/Livewire/Forms/Studio/Manage/OrderForm.php @@ -94,7 +94,7 @@ public function store(): array // Calculate subtotal before any global discount $subtotal = $items->sum(fn ($item) => $item->unit_price * $item->quantity); - $manualDiscount = replaceCurrency($this->discount); + $manualDiscount = parseRupiahToInt($this->discount); // Apply manual discount $afterManual = $subtotal - $manualDiscount; diff --git a/app/Livewire/Forms/Studio/Manage/PurchaseForm.php b/app/Livewire/Forms/Studio/Manage/PurchaseForm.php index 65bd26e..60c611d 100644 --- a/app/Livewire/Forms/Studio/Manage/PurchaseForm.php +++ b/app/Livewire/Forms/Studio/Manage/PurchaseForm.php @@ -121,7 +121,7 @@ private function prepareSavedData(): array 'note' => $this->note, 'outlet_id' => $this->outlet_id, 'purchase_date' => $this->purchase_date, - 'total' => replaceCurrency($this->total), + 'total' => parseRupiahToInt($this->total), ]; } } diff --git a/app/Livewire/Forms/Studio/Master/FormulaForm.php b/app/Livewire/Forms/Studio/Master/FormulaForm.php index 9de6464..daa8f52 100644 --- a/app/Livewire/Forms/Studio/Master/FormulaForm.php +++ b/app/Livewire/Forms/Studio/Master/FormulaForm.php @@ -40,7 +40,7 @@ public function setFormula(Formula $formula): void $this->quality = $formula->quality; $this->size = $formula->size; - $this->volume = replaceCurrency($formula->volume); + $this->volume = parseRupiahToInt($formula->volume); } public function store(): Formula @@ -68,7 +68,7 @@ private function prepareDataForSave(): array return [ 'quality' => $this->quality, 'size' => $this->size, - 'volume' => replaceCurrency($this->volume), + 'volume' => parseRupiahToInt($this->volume), ]; } } diff --git a/app/Livewire/Forms/Studio/Master/UserForm.php b/app/Livewire/Forms/Studio/Master/UserForm.php index 282302f..592d468 100644 --- a/app/Livewire/Forms/Studio/Master/UserForm.php +++ b/app/Livewire/Forms/Studio/Master/UserForm.php @@ -164,7 +164,7 @@ private function createEmployee(User $user, array $data): void 'full_name' => $data['full_name'], 'code' => Employee::generateEmployeeCode(), 'phone_number' => $data['phone_number'], - 'base_salary' => replaceCurrency($data['base_salary']), + 'base_salary' => parseRupiahToInt($data['base_salary']), 'birthdate' => $data['birthdate'], 'hire_date' => $data['hire_date'], 'resign_date' => $data['resign_date'], @@ -216,7 +216,7 @@ private function updateEmployee(array $data): void $this->user->employee->update([ 'full_name' => $data['full_name'], 'phone_number' => $data['phone_number'], - 'base_salary' => replaceCurrency($data['base_salary']), + 'base_salary' => parseRupiahToInt($data['base_salary']), 'birthdate' => $data['birthdate'], 'hire_date' => $data['hire_date'], 'resign_date' => $data['resign_date'], diff --git a/app/Livewire/Forms/Studio/Setting/AccountForm.php b/app/Livewire/Forms/Studio/Setting/AccountForm.php index 0110f02..f3aeff8 100644 --- a/app/Livewire/Forms/Studio/Setting/AccountForm.php +++ b/app/Livewire/Forms/Studio/Setting/AccountForm.php @@ -43,7 +43,7 @@ public function setAccount(User $user): void $this->username = $user->username; $this->email = $user->email; $this->status = $user->status->label(); - $this->email_verified_at = $user->email_verified_at ? formatDateTime($user->email_verified_at) : '-'; + $this->email_verified_at = $user->email_verified_at ? formatDateTimeLocalized($user->email_verified_at) : '-'; } public function update(): void diff --git a/app/Livewire/Forms/Studio/Setting/ProfileForm.php b/app/Livewire/Forms/Studio/Setting/ProfileForm.php index 023a1a9..e248e13 100644 --- a/app/Livewire/Forms/Studio/Setting/ProfileForm.php +++ b/app/Livewire/Forms/Studio/Setting/ProfileForm.php @@ -60,7 +60,7 @@ public function setProfile(Employee $employee): void $this->phone_number = $employee->phone_number; $this->base_salary = $employee->base_salary; $this->birthdate = $employee->birthdate; - $this->hire_date = formatDate($employee->hire_date); + $this->hire_date = formatDateLocalized($employee->hire_date); $this->address = $employee->address; $this->gender = $employee->gender->value; $this->status = $employee->status->label(); diff --git a/app/Livewire/Home/Voucher.php b/app/Livewire/Home/Voucher.php index 215583f..dd17b64 100644 --- a/app/Livewire/Home/Voucher.php +++ b/app/Livewire/Home/Voucher.php @@ -66,8 +66,8 @@ public function render() ->latest() ->paginate(3) ->through(function (VoucherModel $voucher) { - $voucher->min_purchase_formatted = currency($voucher->min_purchase, 'Rp'); - $voucher->end_date = formatDate($voucher->end_date); + $voucher->min_purchase_formatted = formatCurrencyNumber($voucher->min_purchase, 'Rp'); + $voucher->end_date = formatDateLocalized($voucher->end_date); return $voucher; }); diff --git a/app/Livewire/Member/Membership.php b/app/Livewire/Member/Membership.php index 7a9721f..2e7b52f 100644 --- a/app/Livewire/Member/Membership.php +++ b/app/Livewire/Member/Membership.php @@ -61,13 +61,13 @@ public function mount() $this->stats = [ [ 'title' => 'Poin Tier', - 'value' => currency($this->membership->tier_points), - 'description' => '+'.currency($monthlyTierAddition).' bulan ini', + 'value' => formatCurrencyNumber($this->membership->tier_points), + 'description' => '+'.formatCurrencyNumber($monthlyTierAddition).' bulan ini', ], [ 'title' => 'Tier Sekarang', 'value' => $this->membership->tier->name, - 'description' => 'Terdaftar sejak '.formatDate($this->membership->created_at), + 'description' => 'Terdaftar sejak '.formatDateLocalized($this->membership->created_at), ], [ 'title' => 'Tier Selanjutnya', @@ -76,7 +76,7 @@ public function mount() ], [ 'title' => 'Poin Hadiah', - 'value' => currency($this->membership->reward_points), + 'value' => formatCurrencyNumber($this->membership->reward_points), 'description' => 'Nikmati hadiah sekarang', ], ]; @@ -86,7 +86,7 @@ public function mount() ->get() ->map(fn ($reward) => [ 'name' => $reward->name, - 'value' => currency($reward->value, 'Rp'), + 'value' => formatCurrencyNumber($reward->value, 'Rp'), ]) ->toArray(); @@ -95,9 +95,9 @@ public function mount() ->limit(10) ->get() ->map(fn ($record) => [ - 'date' => formatDate($record->created_at), + 'date' => formatDateLocalized($record->created_at), 'description' => $record->description, - 'change' => currency($record->change), + 'change' => formatCurrencyNumber($record->change), 'type' => $record->type->label(), 'is_addition' => $record->is_addition, ]) diff --git a/app/Livewire/Member/Voucher.php b/app/Livewire/Member/Voucher.php index 7d6a5ec..7507cd0 100644 --- a/app/Livewire/Member/Voucher.php +++ b/app/Livewire/Member/Voucher.php @@ -20,10 +20,10 @@ public function mount() 'name' => $voucher->name, 'code' => $voucher->code, 'is_percentage' => $voucher->type == VoucherType::PERCENTAGE, - 'min_purchase' => $voucher->min_purchase ? currency($voucher->min_purchase, 'Rp') : 'No Min. Belanja', - 'discount_amount' => $voucher->type == VoucherType::PERCENTAGE ? $voucher->discount_amount.'%' : currency($voucher->discount_amount, 'Rp'), - 'max_discount' => currency($voucher->max_discount, 'Rp'), - 'end_date' => $voucher->end_date ? timeAgo($voucher->end_date) : 'Tidak Ada Batas Waktu', + 'min_purchase' => $voucher->min_purchase ? formatCurrencyNumber($voucher->min_purchase, 'Rp') : 'No Min. Belanja', + 'discount_amount' => $voucher->type == VoucherType::PERCENTAGE ? $voucher->discount_amount.'%' : formatCurrencyNumber($voucher->discount_amount, 'Rp'), + 'max_discount' => formatCurrencyNumber($voucher->max_discount, 'Rp'), + 'end_date' => $voucher->end_date ? formatRelativeTime($voucher->end_date) : 'Tidak Ada Batas Waktu', ])->toArray(); } diff --git a/app/Livewire/Studio/Dashboard/Analysis.php b/app/Livewire/Studio/Dashboard/Analysis.php index c5db1ff..162db7d 100644 --- a/app/Livewire/Studio/Dashboard/Analysis.php +++ b/app/Livewire/Studio/Dashboard/Analysis.php @@ -171,7 +171,7 @@ protected function loadData() $this->orders = array_filter([ [ 'title' => 'Total Order', - 'value' => currency( + 'value' => formatCurrencyNumber( Order::when(! empty($outletIds), fn ($q) => $q->whereIn('outlet_id', $outletIds)) ->when($dateQuery || ($startDate && $endDate), $filterDate) ->count() @@ -179,7 +179,7 @@ protected function loadData() ], [ 'title' => 'Pendapatan', - 'value' => currency( + 'value' => formatCurrencyNumber( Order::when(! empty($outletIds), fn ($q) => $q->whereIn('outlet_id', $outletIds)) ->when($dateQuery || ($startDate && $endDate), $filterDate) ->sum('total'), @@ -189,7 +189,7 @@ protected function loadData() auth()->user()->hasRole(['Developer', 'Owner']) ? [ 'title' => 'HPP', - 'value' => currency( + 'value' => formatCurrencyNumber( Order::when(! empty($outletIds), fn ($q) => $q->whereIn('outlet_id', $outletIds)) ->when($dateQuery || ($startDate && $endDate), $filterDate) ->sum('cogs'), @@ -199,7 +199,7 @@ protected function loadData() [ 'title' => 'Diskon', - 'value' => currency( + 'value' => formatCurrencyNumber( Order::when(! empty($outletIds), fn ($q) => $q->whereIn('outlet_id', $outletIds)) ->when($dateQuery || ($startDate && $endDate), $filterDate) ->sum('discount'), @@ -208,7 +208,7 @@ protected function loadData() ], [ 'title' => 'Voucher Terpakai', - 'value' => currency( + 'value' => formatCurrencyNumber( Order::when(! empty($outletIds), fn ($q) => $q->whereIn('outlet_id', $outletIds)) ->when($dateQuery || ($startDate && $endDate), $filterDate) ->whereNotNull('voucher_id')->count() @@ -216,7 +216,7 @@ protected function loadData() ], [ 'title' => 'Parfum Terjual', - 'value' => currency( + 'value' => formatCurrencyNumber( OrderItem::where('orderable_type', Perfume::class) ->whereHas('order', fn ($q) => $q->when(! empty($outletIds), fn ($q2) => $q2->whereIn('outlet_id', $outletIds))->when($dateQuery || ($startDate && $endDate), $filterDate)) ->sum('quantity') @@ -224,7 +224,7 @@ protected function loadData() ], [ 'title' => 'Produk Terjual', - 'value' => currency( + 'value' => formatCurrencyNumber( OrderItem::where('orderable_type', Product::class) ->whereHas('order', fn ($q) => $q->when(! empty($outletIds), fn ($q2) => $q2->whereIn('outlet_id', $outletIds))->when($dateQuery || ($startDate && $endDate), $filterDate)) ->sum('quantity') @@ -232,7 +232,7 @@ protected function loadData() ], [ 'title' => 'Botol Terjual', - 'value' => currency( + 'value' => formatCurrencyNumber( OrderItem::where('orderable_type', Bottle::class) ->whereHas('order', fn ($q) => $q->when(! empty($outletIds), fn ($q2) => $q2->whereIn('outlet_id', $outletIds))->when($dateQuery || ($startDate && $endDate), $filterDate)) ->sum('quantity') @@ -243,7 +243,7 @@ protected function loadData() $this->expenses = array_filter([ [ 'title' => 'Beban Toko', - 'value' => currency( + 'value' => formatCurrencyNumber( Expense::when(! empty($outletIds), fn ($q) => $q->whereIn('outlet_id', $outletIds)) ->when($dateQuery || ($startDate && $endDate), $filterDate) ->sum('amount'), @@ -253,7 +253,7 @@ protected function loadData() auth()->user()->hasRole(['Developer', 'Owner']) ? [ 'title' => 'Belanja Barang', - 'value' => currency( + 'value' => formatCurrencyNumber( Purchase::when(! empty($outletIds), fn ($q) => $q->whereIn('outlet_id', $outletIds)) ->when($dateQuery || ($startDate && $endDate), $filterDate) ->sum('total'), @@ -263,7 +263,7 @@ protected function loadData() [ 'title' => 'Penggajian', - 'value' => currency( + 'value' => formatCurrencyNumber( Payroll::when(! empty($outletIds), fn ($q) => $q->whereHas('user.outlets', fn ($q2) => $q2->whereIn('outlets.id', $outletIds))) ->when($dateQuery || ($startDate && $endDate), $filterDate) ->paid() @@ -284,9 +284,9 @@ protected function loadData() ->get() ->map(fn ($perfume) => [ 'name' => $perfume->name, - 'sale_price' => currency($perfume->sale_price, 'Rp'), - 'total_sold' => currency($perfume->items->sum('quantity')), - 'total_sales' => currency($perfume->items->sum(fn ($item) => $item->order?->total ?? 0), 'Rp'), + 'sale_price' => formatCurrencyNumber($perfume->sale_price, 'Rp'), + 'total_sold' => formatCurrencyNumber($perfume->items->sum('quantity')), + 'total_sales' => formatCurrencyNumber($perfume->items->sum(fn ($item) => $item->order?->total ?? 0), 'Rp'), ]) ->sortByDesc('total_sales') ->filter(fn ($product) => $product['total_sold'] > 0) @@ -304,9 +304,9 @@ protected function loadData() ->get() ->map(fn ($product) => [ 'name' => $product->name, - 'sale_price' => currency($product->sale_price, 'Rp'), - 'total_sold' => currency($product->items->sum('quantity')), - 'total_sales' => currency($product->items->sum(fn ($item) => $item->order?->total ?? 0), 'Rp'), + 'sale_price' => formatCurrencyNumber($product->sale_price, 'Rp'), + 'total_sold' => formatCurrencyNumber($product->items->sum('quantity')), + 'total_sales' => formatCurrencyNumber($product->items->sum(fn ($item) => $item->order?->total ?? 0), 'Rp'), ]) ->sortByDesc('total_sales') ->filter(fn ($product) => $product['total_sold'] > 0) @@ -324,9 +324,9 @@ protected function loadData() ->get() ->map(fn ($bottle) => [ 'name' => $bottle->name, - 'sale_price' => currency($bottle->sale_price, 'Rp'), - 'total_sold' => currency($bottle->items->sum('quantity')), - 'total_sales' => currency($bottle->items->sum(fn ($item) => $item->order?->total ?? 0), 'Rp'), + 'sale_price' => formatCurrencyNumber($bottle->sale_price, 'Rp'), + 'total_sold' => formatCurrencyNumber($bottle->items->sum('quantity')), + 'total_sales' => formatCurrencyNumber($bottle->items->sum(fn ($item) => $item->order?->total ?? 0), 'Rp'), ]) ->sortByDesc('total_sales') ->filter(fn ($product) => $product['total_sold'] > 0) diff --git a/app/Livewire/Studio/Dashboard/Overview.php b/app/Livewire/Studio/Dashboard/Overview.php index 9270079..49944a5 100644 --- a/app/Livewire/Studio/Dashboard/Overview.php +++ b/app/Livewire/Studio/Dashboard/Overview.php @@ -153,35 +153,35 @@ protected function loadStats() ], [ 'title' => 'Pendapatan', - 'value' => currency($todayIncome, 'Rp'), - 'previous' => currency($yesterdayIncome, 'Rp'), + 'value' => formatCurrencyNumber($todayIncome, 'Rp'), + 'previous' => formatCurrencyNumber($yesterdayIncome, 'Rp'), 'trend' => $yesterdayIncome > 0 ? round((($todayIncome - $yesterdayIncome) / $yesterdayIncome) * 100, 1).'%' : '∞%', 'trendUp' => $todayIncome > $yesterdayIncome, - 'formatted' => currency($todayIncome, 'Rp'), + 'formatted' => formatCurrencyNumber($todayIncome, 'Rp'), ], auth()->user()->hasRole(['Developer', 'Owner']) ? [ 'title' => 'HPP', - 'value' => currency($todayCogs, 'Rp'), - 'previous' => currency($yesterdayCogs, 'Rp'), + 'value' => formatCurrencyNumber($todayCogs, 'Rp'), + 'previous' => formatCurrencyNumber($yesterdayCogs, 'Rp'), 'trend' => $yesterdayCogs > 0 ? round((($todayCogs - $yesterdayCogs) / $yesterdayCogs) * 100, 1).'%' : '∞%', 'trendUp' => $todayCogs > $yesterdayCogs, - 'formatted' => currency($todayCogs, 'Rp'), + 'formatted' => formatCurrencyNumber($todayCogs, 'Rp'), ] : null, [ 'title' => 'Diskon', - 'value' => currency($todayDiscount, 'Rp'), - 'previous' => currency($yesterdayDiscount, 'Rp'), + 'value' => formatCurrencyNumber($todayDiscount, 'Rp'), + 'previous' => formatCurrencyNumber($yesterdayDiscount, 'Rp'), 'trend' => $yesterdayDiscount > 0 ? round((($todayDiscount - $yesterdayDiscount) / $yesterdayDiscount) * 100, 1).'%' : '∞%', 'trendUp' => $todayDiscount > $yesterdayDiscount, - 'formatted' => currency($todayDiscount, 'Rp'), + 'formatted' => formatCurrencyNumber($todayDiscount, 'Rp'), ], [ 'title' => 'Voucher Terpakai', @@ -194,8 +194,8 @@ protected function loadStats() ], [ 'title' => 'Beban Toko', - 'value' => currency($todayExpense, 'Rp'), - 'previous' => currency($yesterdayExpense, 'Rp'), + 'value' => formatCurrencyNumber($todayExpense, 'Rp'), + 'previous' => formatCurrencyNumber($yesterdayExpense, 'Rp'), 'trend' => $yesterdayExpense > 0 ? round((($todayExpense - $yesterdayExpense) / $yesterdayExpense) * 100, 1).'%' : '∞%', @@ -204,8 +204,8 @@ protected function loadStats() auth()->user()->hasRole(['Developer', 'Owner']) ? [ 'title' => 'Belanja Barang', - 'value' => currency($todayPurchase, 'Rp'), - 'previous' => currency($yesterdayPurchase, 'Rp'), + 'value' => formatCurrencyNumber($todayPurchase, 'Rp'), + 'previous' => formatCurrencyNumber($yesterdayPurchase, 'Rp'), 'trend' => $yesterdayPurchase > 0 ? round((($todayPurchase - $yesterdayPurchase) / $yesterdayPurchase) * 100, 1).'%' : '∞%', @@ -214,8 +214,8 @@ protected function loadStats() auth()->user()->hasRole(['Developer', 'Owner']) ? [ 'title' => 'Laba Kotor', - 'value' => currency($todayGrossProfit, 'Rp'), - 'previous' => currency($yesterdayGrossProfit, 'Rp'), + 'value' => formatCurrencyNumber($todayGrossProfit, 'Rp'), + 'previous' => formatCurrencyNumber($yesterdayGrossProfit, 'Rp'), 'trend' => $yesterdayGrossProfit > 0 ? round((($todayGrossProfit - $yesterdayGrossProfit) / $yesterdayGrossProfit) * 100, 1).'%' : '∞%', @@ -224,8 +224,8 @@ protected function loadStats() auth()->user()->hasRole(['Developer', 'Owner']) ? [ 'title' => 'Laba Bersih', - 'value' => currency($todayNetProfit, 'Rp'), - 'previous' => currency($yesterdayNetProfit, 'Rp'), + 'value' => formatCurrencyNumber($todayNetProfit, 'Rp'), + 'previous' => formatCurrencyNumber($yesterdayNetProfit, 'Rp'), 'trend' => $yesterdayNetProfit > 0 ? round((($todayNetProfit - $yesterdayNetProfit) / $yesterdayNetProfit) * 100, 1).'%' : '∞%', diff --git a/app/Livewire/Studio/Finance/Payroll.php b/app/Livewire/Studio/Finance/Payroll.php index ab9dd67..2a9b7d2 100644 --- a/app/Livewire/Studio/Finance/Payroll.php +++ b/app/Livewire/Studio/Finance/Payroll.php @@ -134,7 +134,7 @@ public function exportPdf(PayrollModel $payroll) $fileName = 'Gaji ' .$payroll->user->employee->full_name .' Bulan ' - .formatDate($period, 'F Y') + .formatDateLocalized($period, 'F Y') .'.pdf'; return response()->streamDownload(function () use ($pdf) { diff --git a/app/Livewire/Studio/Loyalty/Tier/Index.php b/app/Livewire/Studio/Loyalty/Tier/Index.php index f5416eb..aefad5b 100644 --- a/app/Livewire/Studio/Loyalty/Tier/Index.php +++ b/app/Livewire/Studio/Loyalty/Tier/Index.php @@ -49,9 +49,9 @@ public function loadTiers(): void 'id' => $tier->id, 'hash' => $tier->hash, 'name' => $tier->name, - 'min_points' => currency($tier->min_points), - 'max_points' => currency($tier->max_points), - 'total_members' => currency($tier->memberships_count), + 'min_points' => formatCurrencyNumber($tier->min_points), + 'max_points' => formatCurrencyNumber($tier->max_points), + 'total_members' => formatCurrencyNumber($tier->memberships_count), 'total_rewards' => $tier->rewards_count, ]; }) @@ -90,17 +90,17 @@ public function getTopMemberStats($tierId): ?array return [ 'name' => $topMembership->user->customer->name, - 'points' => currency($topMembership->tier_points), - 'total_orders' => currency($totalOrders), + 'points' => formatCurrencyNumber($topMembership->tier_points), + 'total_orders' => formatCurrencyNumber($totalOrders), 'items' => [ - 'total_perfume' => currency($totalPerfume), - 'total_product' => currency($totalProduct), - 'total_bottle' => currency($totalBottle), + 'total_perfume' => formatCurrencyNumber($totalPerfume), + 'total_product' => formatCurrencyNumber($totalProduct), + 'total_bottle' => formatCurrencyNumber($totalBottle), ], 'total' => [ - 'subtotal' => currency($subtotal, 'Rp'), - 'discount' => currency($totalDiscount, 'Rp'), - 'grand_total' => currency($grandTotal, 'Rp'), + 'subtotal' => formatCurrencyNumber($subtotal, 'Rp'), + 'discount' => formatCurrencyNumber($totalDiscount, 'Rp'), + 'grand_total' => formatCurrencyNumber($grandTotal, 'Rp'), ], ]; } @@ -127,7 +127,7 @@ public function update(): void $this->canOrAbort('update tier'); $oldMinPoints = $this->form->tier->min_points; - $newMinPoints = replaceCurrency($this->form->min_points); + $newMinPoints = parseRupiahToInt($this->form->min_points); $this->form->update(); diff --git a/app/Livewire/Studio/Manage/Order/Create.php b/app/Livewire/Studio/Manage/Order/Create.php index 4fc6af3..0ad7679 100644 --- a/app/Livewire/Studio/Manage/Order/Create.php +++ b/app/Livewire/Studio/Manage/Order/Create.php @@ -96,7 +96,7 @@ public function save(): void PushNotification::whereIn('user_id', $userIds)->get(), [ 'title' => '🛒 Order Baru!', - 'body' => 'Ada order baru masuk dengan nominal '.currency($result['data']['total'], 'Rp').' ✨', + 'body' => 'Ada order baru masuk dengan nominal '.formatCurrencyNumber($result['data']['total'], 'Rp').' ✨', 'url' => route('studio.manage.order.index'), ], ); diff --git a/app/Livewire/Studio/Manage/Order/Show.php b/app/Livewire/Studio/Manage/Order/Show.php index e6ecd0a..f52d525 100644 --- a/app/Livewire/Studio/Manage/Order/Show.php +++ b/app/Livewire/Studio/Manage/Order/Show.php @@ -26,11 +26,11 @@ public function mount(Order $order): void 'customer' => $order->customer?->name ?? 'Anonim', 'invoice_number' => $order->invoice_number, 'status' => $order->status->label(), - 'date' => formatDateTime($order->created_at), + 'date' => formatDateTimeLocalized($order->created_at), 'channel' => $order->channel->label(), - 'subtotal' => currency($order->subtotal, 'Rp'), - 'discount' => currency($order->discount, 'Rp'), - 'total' => currency($order->total, 'Rp'), + 'subtotal' => formatCurrencyNumber($order->subtotal, 'Rp'), + 'discount' => formatCurrencyNumber($order->discount, 'Rp'), + 'total' => formatCurrencyNumber($order->total, 'Rp'), ]; $this->items = $order->items @@ -38,8 +38,8 @@ public function mount(Order $order): void 'id' => $item->hash, 'name' => $item->orderable?->name, 'quantity' => $item->quantity, - 'unit_price' => currency($item->unit_price, 'Rp'), - 'total' => currency($item->quantity * $item->unit_price, 'Rp'), + 'unit_price' => formatCurrencyNumber($item->unit_price, 'Rp'), + 'total' => formatCurrencyNumber($item->quantity * $item->unit_price, 'Rp'), ]) ->toArray(); diff --git a/app/Livewire/Studio/Manage/StockOpname/Index.php b/app/Livewire/Studio/Manage/StockOpname/Index.php index 1b77787..198c880 100644 --- a/app/Livewire/Studio/Manage/StockOpname/Index.php +++ b/app/Livewire/Studio/Manage/StockOpname/Index.php @@ -46,7 +46,7 @@ protected function loadItems(): void $stockOpname->total_item = $total; $stockOpname->progress_filled = $filled; $stockOpname->progress_percent = $percent; - $stockOpname->period_month = formatDate($stockOpname->period_month, 'F Y'); + $stockOpname->period_month = formatDateLocalized($stockOpname->period_month, 'F Y'); return $stockOpname; }); diff --git a/app/Traits/Order/WithAddItem.php b/app/Traits/Order/WithAddItem.php index efcb656..d25c431 100644 --- a/app/Traits/Order/WithAddItem.php +++ b/app/Traits/Order/WithAddItem.php @@ -135,7 +135,7 @@ public function addProduct() { $product = Product::find($this->form->product_id); - $quantity = replaceCurrency($this->form->quantity_product); + $quantity = parseRupiahToInt($this->form->quantity_product); if (! $product || $quantity <= 0) { $this->toast('Produk atau kuantitas tidak valid', 'Gagal', 'danger'); diff --git a/app/Traits/Order/WithCalculateTotal.php b/app/Traits/Order/WithCalculateTotal.php index c5a753f..29a516a 100644 --- a/app/Traits/Order/WithCalculateTotal.php +++ b/app/Traits/Order/WithCalculateTotal.php @@ -11,6 +11,6 @@ public function getSubTotal() public function getTotal() { - return $this->items->sum(fn ($item) => $item->unit_price * $item->quantity - replaceCurrency($this->form->discount) - $this->voucherDiscount); + return $this->items->sum(fn ($item) => $item->unit_price * $item->quantity - parseRupiahToInt($this->form->discount) - $this->voucherDiscount); } } diff --git a/app/Traits/Order/WithDiscount.php b/app/Traits/Order/WithDiscount.php index 881bfd8..958bc3b 100644 --- a/app/Traits/Order/WithDiscount.php +++ b/app/Traits/Order/WithDiscount.php @@ -24,7 +24,7 @@ public function calculateDiscount(int $subtotal, string $voucherId) return [ 'status' => false, - 'message' => 'Minimal pembelian harus sebesar '.currency($voucher->min_purchase, 'Rp').' untuk menggunakan voucher ini.', + 'message' => 'Minimal pembelian harus sebesar '.formatCurrencyNumber($voucher->min_purchase, 'Rp').' untuk menggunakan voucher ini.', ]; } diff --git a/app/Traits/Order/WithUpdateItem.php b/app/Traits/Order/WithUpdateItem.php index 9f1f865..93bcee1 100644 --- a/app/Traits/Order/WithUpdateItem.php +++ b/app/Traits/Order/WithUpdateItem.php @@ -17,7 +17,7 @@ public function openModal(OrderItem $item) $this->form->item_id = $item->id; - $this->form->quantity_edit = currency($item->quantity, ''); + $this->form->quantity_edit = formatCurrencyNumber($item->quantity, ''); } public function closeModal() @@ -35,7 +35,7 @@ public function updateItem() return; } - $item->update(['quantity' => replaceCurrency($this->form->quantity_edit)]); + $item->update(['quantity' => parseRupiahToInt($this->form->quantity_edit)]); $item->refresh(); diff --git a/app/Traits/Order/WithUpdateStock.php b/app/Traits/Order/WithUpdateStock.php index 2eb02a6..b99d7c1 100644 --- a/app/Traits/Order/WithUpdateStock.php +++ b/app/Traits/Order/WithUpdateStock.php @@ -52,7 +52,7 @@ public function increaseOutletStock($outlet, $item) 'purchase_id' => $item->purchase_id ?? null, ]) ->event('Menambah') - ->log('Stok '.$item->orderable->name.' di '.$outlet->name.' bertambah '.currency($quantity)); + ->log('Stok '.$item->orderable->name.' di '.$outlet->name.' bertambah '.formatCurrencyNumber($quantity)); } public function decreaseOutletStock($outlet, $item) @@ -108,6 +108,6 @@ public function decreaseOutletStock($outlet, $item) 'purchase_id' => $item->purchase_id ?? null, ]) ->event('Mengurangi') - ->log('Stok '.$item->orderable->name.' di '.$outlet->name.' berkurang '.currency($quantity)); + ->log('Stok '.$item->orderable->name.' di '.$outlet->name.' berkurang '.formatCurrencyNumber($quantity)); } } diff --git a/app/Traits/Purchase/WithAddItem.php b/app/Traits/Purchase/WithAddItem.php index 6128d41..792c630 100644 --- a/app/Traits/Purchase/WithAddItem.php +++ b/app/Traits/Purchase/WithAddItem.php @@ -16,19 +16,19 @@ public function addItem(string $type) case 'parfum': $model = Perfume::class; $id = $this->form->perfume_id; - $quantity = replaceCurrency($this->form->quantity_perfume); + $quantity = parseRupiahToInt($this->form->quantity_perfume); break; case 'produk': $model = Product::class; $id = $this->form->product_id; - $quantity = replaceCurrency($this->form->quantity_product); + $quantity = parseRupiahToInt($this->form->quantity_product); break; case 'botol': $model = Bottle::class; $id = $this->form->bottle_id; - $quantity = replaceCurrency($this->form->quantity_bottle); + $quantity = parseRupiahToInt($this->form->quantity_bottle); break; default: @@ -89,7 +89,7 @@ public function addItem(string $type) $this->toast(Str::ucfirst($type).' ditambahkan ke keranjang.', 'Berhasil'); } - $this->form->total = currency($this->getTotal()); + $this->form->total = formatCurrencyNumber($this->getTotal()); switch ($type) { case 'parfum': diff --git a/app/Traits/Purchase/WithDeleteItem.php b/app/Traits/Purchase/WithDeleteItem.php index 976f1fc..58b7d18 100644 --- a/app/Traits/Purchase/WithDeleteItem.php +++ b/app/Traits/Purchase/WithDeleteItem.php @@ -12,7 +12,7 @@ public function deleteItem(PurchaseItem $item) $item->delete(); - $this->form->total = currency($this->purchaseItems->sum('total_price'), ''); + $this->form->total = formatCurrencyNumber($this->purchaseItems->sum('total_price'), ''); $this->toast('Item berhasil dihapus.'); } diff --git a/app/Traits/Purchase/WithUpdateItem.php b/app/Traits/Purchase/WithUpdateItem.php index 4e32f1d..d5c5108 100644 --- a/app/Traits/Purchase/WithUpdateItem.php +++ b/app/Traits/Purchase/WithUpdateItem.php @@ -17,7 +17,7 @@ public function openModal(PurchaseItem $item) $this->form->item_id = $item->id; - $this->form->quantity_edit = currency($item->quantity); + $this->form->quantity_edit = formatCurrencyNumber($item->quantity); } public function closeModal() @@ -30,15 +30,15 @@ public function updateItem() $item = PurchaseItem::find($this->form->item_id); $item->update([ - 'quantity' => replaceCurrency($this->form->quantity_edit), - 'total_price' => (int) $item->purchasable->cost_price * (int) replaceCurrency($this->form->quantity_edit), + 'quantity' => parseRupiahToInt($this->form->quantity_edit), + 'total_price' => (int) $item->purchasable->cost_price * (int) parseRupiahToInt($this->form->quantity_edit), ]); $item->refresh(); $this->purchaseItems = $this->purchaseItems->map(fn ($i) => $i->id === $item->id ? $item : $i); - $this->form->total = currency($this->purchaseItems->sum('total_price')); + $this->form->total = formatCurrencyNumber($this->purchaseItems->sum('total_price')); $this->toast('Item berhasil diperbarui.'); diff --git a/app/Traits/Purchase/WithUpdateStock.php b/app/Traits/Purchase/WithUpdateStock.php index 7be4a43..cb8f85f 100644 --- a/app/Traits/Purchase/WithUpdateStock.php +++ b/app/Traits/Purchase/WithUpdateStock.php @@ -53,7 +53,7 @@ public function increaseOutletStock($outlet, $item) 'purchase_id' => $item->purchase_id ?? null, ]) ->event('Menambah') - ->log('Stok '.$item->purchasable->name.' di '.$outlet->name.' bertambah '.currency($quantity)); + ->log('Stok '.$item->purchasable->name.' di '.$outlet->name.' bertambah '.formatCurrencyNumber($quantity)); } public function decreaseOutletStock($outlet, $item) diff --git a/resources/views/components/sections/ui/audit.blade.php b/resources/views/components/sections/ui/audit.blade.php index 3cb1645..28d6247 100644 --- a/resources/views/components/sections/ui/audit.blade.php +++ b/resources/views/components/sections/ui/audit.blade.php @@ -29,11 +29,11 @@ class="px-2 py-1 inline-flex text-xs font-semibold rounded-full dark:border-gray-700" />
-
Stok Sebelumnya: {{ currency($log->properties['previous_stock']) }}
+
Stok Sebelumnya: {{ formatCurrencyNumber($log->properties['previous_stock']) }}
-
Perubahan: {{ currency($log->properties['quantity_change']) }}
+
Perubahan: {{ formatCurrencyNumber($log->properties['quantity_change']) }}
-
Total Stok: {{ currency($log->properties['new_stock']) }}
+
Total Stok: {{ formatCurrencyNumber($log->properties['new_stock']) }}
diff --git a/resources/views/livewire/studio/finance/payrolls.blade.php b/resources/views/livewire/studio/finance/payrolls.blade.php index 048c3c6..325c152 100644 --- a/resources/views/livewire/studio/finance/payrolls.blade.php +++ b/resources/views/livewire/studio/finance/payrolls.blade.php @@ -30,7 +30,7 @@
{{ $payroll->user->employee->full_name }} - {{ formatDate($payroll->period_month, 'F Y') }} + {{ formatDateLocalized($payroll->period_month, 'F Y') }}
@@ -42,15 +42,15 @@
Gaji Pokok -
{{ currency($payroll->base_salary, 'Rp') }}
+
{{ formatCurrencyNumber($payroll->base_salary, 'Rp') }}
Bonus -
{{ currency($payroll->bonus, 'Rp') }}
+
{{ formatCurrencyNumber($payroll->bonus, 'Rp') }}
Potongan -
{{ currency($payroll->deduction, 'Rp') }}
+
{{ formatCurrencyNumber($payroll->deduction, 'Rp') }}
@@ -62,7 +62,7 @@
- {{ currency($item->amount, 'Rp') }} + {{ formatCurrencyNumber($item->amount, 'Rp') }}
{{ $item->description }}
@@ -78,7 +78,7 @@ class="font-bold {{ $item->type->value == \App\Enums\SalaryAdjustmentType::DEDUC
Total Gaji - {{ currency($payroll->total_salary, 'Rp') }} + {{ formatCurrencyNumber($payroll->total_salary, 'Rp') }}
@endforeach @@ -133,16 +133,16 @@ class="font-bold {{ $item->type->value == \App\Enums\SalaryAdjustmentType::DEDUC Rp - + Keterangan * - + diff --git a/resources/views/livewire/studio/loyalty/tier/reward.blade.php b/resources/views/livewire/studio/loyalty/tier/reward.blade.php index 3952794..01e76fc 100644 --- a/resources/views/livewire/studio/loyalty/tier/reward.blade.php +++ b/resources/views/livewire/studio/loyalty/tier/reward.blade.php @@ -15,7 +15,7 @@ @foreach ($rewards as $reward) {{ $reward['name'] }} - {{ currency($reward['value'], 'Rp') }} + {{ formatCurrencyNumber($reward['value'], 'Rp') }}
@can('update tier reward') diff --git a/resources/views/livewire/studio/manage/order/form.blade.php b/resources/views/livewire/studio/manage/order/form.blade.php index 307fb7e..22c4b6b 100644 --- a/resources/views/livewire/studio/manage/order/form.blade.php +++ b/resources/views/livewire/studio/manage/order/form.blade.php @@ -222,14 +222,14 @@
{{ $item->orderable->name }}
{{ currency($item->quantity, '') }} + class="text-xs text-gray-400">{{ formatCurrencyNumber($item->quantity, '') }} x - {{ currency($item->unit_price, 'Rp') }} + {{ formatCurrencyNumber($item->unit_price, 'Rp') }}
- {{ currency($item->unit_price * $item->quantity, 'Rp') }} + {{ formatCurrencyNumber($item->unit_price * $item->quantity, 'Rp') }} @@ -259,11 +259,11 @@ class="text-xs text-gray-400">{{ currency($item->quantity, '') }}
- {{ currency($subtotal, 'Rp') }} + {{ formatCurrencyNumber($subtotal, 'Rp') }}
Diskon Voucher - {{ currency($voucherDiscount, 'Rp') }} + {{ formatCurrencyNumber($voucherDiscount, 'Rp') }}
@@ -279,7 +279,7 @@ class="text-xs text-gray-400">{{ currency($item->quantity, '') }}
- {{ currency($total, 'Rp') }} + {{ formatCurrencyNumber($total, 'Rp') }}
diff --git a/resources/views/livewire/studio/manage/purchase/form.blade.php b/resources/views/livewire/studio/manage/purchase/form.blade.php index fab7b78..0b8d8c9 100644 --- a/resources/views/livewire/studio/manage/purchase/form.blade.php +++ b/resources/views/livewire/studio/manage/purchase/form.blade.php @@ -149,14 +149,14 @@
{{ $item->purchasable->name }}
{{ currency($item->quantity, '') }} + class="text-xs text-gray-400">{{ formatCurrencyNumber($item->quantity, '') }} x - {{ currency($item->purchasable->cost_price, 'Rp') }} + {{ formatCurrencyNumber($item->purchasable->cost_price, 'Rp') }}
- {{ currency($item->total_price, 'Rp') }} + {{ formatCurrencyNumber($item->total_price, 'Rp') }} diff --git a/resources/views/livewire/studio/master/outlet/index.blade.php b/resources/views/livewire/studio/master/outlet/index.blade.php index 5e4f97b..dadecaf 100644 --- a/resources/views/livewire/studio/master/outlet/index.blade.php +++ b/resources/views/livewire/studio/master/outlet/index.blade.php @@ -107,15 +107,16 @@ class="text-sm font-semibold text-gray-900 dark:text-white mb-2 flex items-cente
Tgl Buka: {{ formatDate($outlet->opened_date) }} - ({{ timeAgo($outlet->opened_date) }}) + class="text-gray-700 dark:text-gray-300">{{ formatDateLocalized($outlet->opened_date) }} + ({{ formatRelativeTime($outlet->opened_date) }})
@if ($outlet->closed_date)
Tgl Tutup: {{ formatDate($outlet->closed_date) }} - ({{ timeAgo($outlet->closed_date) }}) + class="text-gray-700 dark:text-gray-300">{{ formatDateLocalized($outlet->closed_date) }} + ({{ formatRelativeTime($outlet->closed_date) }})
@endif
diff --git a/resources/views/livewire/studio/master/user/index.blade.php b/resources/views/livewire/studio/master/user/index.blade.php index 9f11f28..9c3447a 100644 --- a/resources/views/livewire/studio/master/user/index.blade.php +++ b/resources/views/livewire/studio/master/user/index.blade.php @@ -101,7 +101,7 @@ class="w-4 h-4 text-gray-500 dark:text-white flex-shrink-0 mt-0.5" />
Gaji - {{ currency($employee->base_salary, 'Rp') }} + {{ formatCurrencyNumber($employee->base_salary, 'Rp') }}
@@ -155,24 +155,26 @@ class="text-xs text-gray-400 border border-gray-400 rounded px-2 py-1">
Tgl Lahir: {{ formatDate($employee->birthdate) }} - ({{ getAge($employee->birthdate) }}) + class="text-gray-700 dark:text-gray-300">{{ formatDateLocalized($employee->birthdate) }} + ({{ formatAgeYearsMonths($employee->birthdate) }})
Tgl Bergabung: {{ formatDate($employee->hire_date) }} - ({{ timeAgo($employee->hire_date) }}) + class="text-gray-700 dark:text-gray-300">{{ formatDateLocalized($employee->hire_date) }} + ({{ formatRelativeTime($employee->hire_date) }})
@if ($employee->resign_date)
Tgl Resign: {{ formatDate($employee->resign_date) }} + class="text-gray-700 dark:text-gray-300">{{ formatDateLocalized($employee->resign_date) }} ({{ timeAgo($employee->resign_date) }}) + class="text-gray-500">({{ formatRelativeTime($employee->resign_date) }})
@endif
diff --git a/tests/Feature/Livewire/Studio/Loyalty/TierTest.php b/tests/Feature/Livewire/Studio/Loyalty/TierTest.php index 1dc2963..5fd054f 100644 --- a/tests/Feature/Livewire/Studio/Loyalty/TierTest.php +++ b/tests/Feature/Livewire/Studio/Loyalty/TierTest.php @@ -576,8 +576,8 @@ function mountTierComponent(User $user) $component = mountTierComponent($this->user); $loadedTier = $component->tiers->firstWhere('id', $tier->id); - expect(currency($loadedTier->min_points))->toContain('1.000'); - expect(currency($loadedTier->max_points))->toContain('5.000'); + expect(formatCurrencyNumber($loadedTier->min_points))->toContain('1.000'); + expect(formatCurrencyNumber($loadedTier->max_points))->toContain('5.000'); }); it('handles currency formatting in form input', function () { @@ -610,7 +610,7 @@ function mountTierComponent(User $user) $component = mountTierComponent($this->user); $loadedTier = $component->tiers->firstWhere('id', $tier->id); - expect(currency($loadedTier->max_points))->not->toBeNull(); + expect(formatCurrencyNumber($loadedTier->max_points))->not->toBeNull(); }); it('handles tier with zero min_points', function () { @@ -623,7 +623,7 @@ function mountTierComponent(User $user) $component = mountTierComponent($this->user); $loadedTier = $component->tiers->firstWhere('id', $tier->id); - expect(currency($loadedTier->min_points))->toContain('0'); + expect(formatCurrencyNumber($loadedTier->min_points))->toContain('0'); }); it('handles empty tiers list', function () { @@ -648,6 +648,6 @@ function mountTierComponent(User $user) $updatedTier = $component->tiers->firstWhere('hash', $tier->hash); expect($updatedTier->name)->toBe('Gold'); - expect(currency($updatedTier->min_points))->toContain('1.000'); - expect(currency($updatedTier->max_points))->toContain('5.000'); + expect(formatCurrencyNumber($updatedTier->min_points))->toContain('1.000'); + expect(formatCurrencyNumber($updatedTier->max_points))->toContain('5.000'); }); diff --git a/tests/Feature/Livewire/Studio/Loyalty/Voucher/EditTest.php b/tests/Feature/Livewire/Studio/Loyalty/Voucher/EditTest.php index 2cd6eb1..62a788f 100644 --- a/tests/Feature/Livewire/Studio/Loyalty/Voucher/EditTest.php +++ b/tests/Feature/Livewire/Studio/Loyalty/Voucher/EditTest.php @@ -109,7 +109,7 @@ function createTestOutlets(int $count = 3) $component = mountEditComponent($this->user, $voucher); - // Note: replaceCurrency returns integer, so we check the raw value + // Note: parseRupiahToInt returns integer, so we check the raw value // The form will display formatted currency in the view expect($component->form->discount_amount)->toBe('50000'); expect($component->form->min_purchase)->toBe('200000');