@extends('layouts.admin') @section('title', 'Produk & HPP - Report Admin') @php /** * Badge warna nama toko — diambil dari palet berdasar ID toko, * sehingga toko yang sama SELALU berwarna sama di seluruh halaman. * Warna enak dilihat di latar putih (bg pastel + teks gelap senada). */ function storeBadgeClasses($storeId): string { $palette = [ 'bg-emerald-50 text-emerald-700 border-emerald-200', 'bg-purple-50 text-purple-700 border-purple-200', 'bg-amber-50 text-amber-700 border-amber-200', 'bg-rose-50 text-rose-700 border-rose-200', 'bg-teal-50 text-teal-700 border-teal-200', 'bg-orange-50 text-orange-700 border-orange-200', 'bg-cyan-50 text-cyan-700 border-cyan-200', 'bg-fuchsia-50 text-fuchsia-700 border-fuchsia-200', ]; return $palette[((int) $storeId) % count($palette)]; } function storeBadge($store): string { if (!$store) return ''; $cls = storeBadgeClasses($store->id); return '' . e($store->name) . ''; } @endphp @section('content')

Produk & HPP

Kelola produk dan harga pokok penjualan (HPP)

search
Reset
@if($unmappedSkus->isNotEmpty())
link_off

{{ $unmappedSkus->count() }} SKU pesanan belum terhubung ke produk

SKU berikut ditemukan di pesanan terimpor tetapi produknya belum ada di daftar produk, sehingga labanya belum dihitung. Klik "Buat Produk" untuk membuatkan produknya sekaligus menghubungkan pesanan lamanya.

@foreach($unmappedSkus as $item) @endforeach
SKU Nama Produk Toko Platform Pesanan Qty Aksi
{{ $item->sku }} {{ $item->product_name }} @if($item->store) {!! storeBadge($item->store) !!} @else - @endif {{ $item->platform }} {{ number_format($item->orders_count) }} {{ number_format($item->total_qty) }}
@endif @if($missingHppCount > 0)
warning

{{ $missingHppCount }} produk belum memiliki HPP

Transaksi produk ini tidak diikutkan dalam perhitungan laba. Lengkapi HPP agar laba akurat.

visibility Lihat Produk
@endif
@forelse($products as $product) @empty @endforelse
SKU Nama Produk Toko Kategori HPP (Cost) Harga Jual Margin Aksi
{{ $product->sku }} {{ $product->name }} @if($product->store) {!! storeBadge($product->store) !!} @else Tanpa toko @endif @if($product->category) {{ $product->category }} @else - @endif @if($product->purchase_price > 0) Rp {{ number_format($product->purchase_price, 0, ',', '.') }} @else ⚠ Belum ada HPP @endif Rp {{ number_format($product->selling_price ?? 0, 0, ',', '.') }} @if($product->selling_price > 0 && $product->purchase_price > 0) @php $margin = ($product->selling_price - $product->purchase_price) / $product->selling_price * 100; @endphp {{ number_format($margin, 1) }}% @else - @endif
inventory_2

Belum ada produk. Tambahkan produk pertama Anda.

@if($products->hasPages())

Menampilkan {{ $products->firstItem() }} - {{ $products->lastItem() }} dari {{ number_format($products->total()) }} produk

{{ $products->links('pagination::tailwind') }}
@endif
@endsection @push('scripts') @endpush