@extends('layouts.app')

@section('content')
    <div class="min-h-screen bg-gradient-to-br from-slate-50 to-slate-100 py-8 px-4 md:px-8">
        <div class="max-w-7xl mx-auto">
            <!-- رأس الصفحة -->
            <div class="mb-8">
                <h1 class="text-3xl font-bold text-gray-900 mb-2">تقرير حركة الأصناف</h1>
                <p class="text-gray-600">عرض جميع حركات الأصناف في المخازن (وارد - منصرف - تحويل)</p>
            </div>

            <!-- ملخص الحركات -->
            @if ($movements->count() > 0)
                @php
                    // حساب أرصدة كل صنف بناءً على آخر حركة
                    $itemBalances = [];
                    $balances = [];
                    foreach ($movements as $mov) {
                        $key = $mov->item_name . '_' . ($mov->to_warehouse ?? $mov->from_warehouse ?? 'unknown');
                        $currentBalance = $balances[$key] ?? 0;
                        
                        if ($mov->document_type === 'receipt') {
                            $currentBalance += floatval($mov->quantity);
                        } elseif ($mov->document_type === 'issue') {
                            $currentBalance -= floatval($mov->quantity);
                        } elseif ($mov->document_type === 'transfer') {
                            $currentBalance += floatval($mov->quantity);
                        }
                        
                        $balances[$key] = $currentBalance;
                        $itemBalances[$mov->item_name] = $currentBalance;
                    }
                    
                    // الرصيد النهائي الكلي
                    $finalBalance = array_sum($itemBalances);
                @endphp
                <div class="grid grid-cols-1 md:grid-cols-4 gap-4 mb-6">
                    <!-- إجمالي الوارد -->
                    <div class="bg-white rounded-lg shadow-md border-l-4 border-green-500 p-4">
                        <p class="text-gray-600 text-sm font-medium">إجمالي الوارد</p>
                        <p class="text-2xl font-bold text-green-600 mt-1">
                            {{ number_format($movements->where('effect', 'receipt')->sum('quantity'), 2) }}</p>
                    </div>

                    <!-- إجمالي المنصرف -->
                    <div class="bg-white rounded-lg shadow-md border-l-4 border-red-500 p-4">
                        <p class="text-gray-600 text-sm font-medium">إجمالي المنصرف</p>
                        <p class="text-2xl font-bold text-red-600 mt-1">
                            {{ number_format($movements->where('effect', 'issue')->sum('quantity'), 2) }}</p>
                    </div>

                    <!-- إجمالي المحول -->
                    <div class="bg-white rounded-lg shadow-md border-l-4 border-blue-500 p-4">
                        <p class="text-gray-600 text-sm font-medium">إجمالي المحول</p>
                        <p class="text-2xl font-bold text-blue-600 mt-1">
                            {{ number_format($movements->where('effect', 'transfer')->sum('quantity'), 2) }}</p>
                    </div>

                    <!-- الرصيد النهائي (المحسوب من آخر حركة) -->
                    <div class="bg-white rounded-lg shadow-md border-l-4 border-purple-500 p-4">
                        <p class="text-gray-600 text-sm font-medium">الرصيد النهائي</p>
                        <p class="text-2xl font-bold text-purple-600 mt-1">
                            {{ number_format($finalBalance, 2) }}
                        </p>
                    </div>
                </div>
            @endif

            <!-- جدول الحركات -->
            <div class="bg-white rounded-xl shadow-lg overflow-hidden border border-gray-200">
                <div class="overflow-x-auto">
                    <table class="w-full">
                        <thead class="bg-gradient-to-r from-gray-800 to-gray-900 text-white">
                            <tr>
                                <th class="px-6 py-4 text-right font-semibold text-sm">#</th>
                                <th class="px-6 py-4 text-right font-semibold text-sm">التاريخ</th>
                                <th class="px-6 py-4 text-right font-semibold text-sm">نوع الحركة</th>
                                <th class="px-6 py-4 text-right font-semibold text-sm">الصنف</th>
                                <th class="px-6 py-4 text-center font-semibold text-sm">وارد</th>
                                <th class="px-6 py-4 text-center font-semibold text-sm">منصرف</th>
                                <th class="px-6 py-4 text-center font-semibold text-sm">محول</th>
                                <th class="px-6 py-4 text-center font-semibold text-sm">الرصيد</th>
                                <th class="px-6 py-4 text-right font-semibold text-sm">الوحدة</th>
                                <th class="px-6 py-4 text-right font-semibold text-sm">من / إلى</th>
                                <th class="px-6 py-4 text-right font-semibold text-sm">المستند</th>
                                <th class="px-6 py-4 text-right font-semibold text-sm">الملاحظات</th>
                            </tr>
                        </thead>
                        <tbody class="divide-y divide-gray-200">
                            @php
                                // حساب الرصيد الجاري الصحيح لكل حركة
                                $balances = [];
                                foreach ($movements as $mov) {
                                    // مفتاح فريد لكل صنف + مخزن
                                    $key = $mov->item_name . '_' . ($mov->to_warehouse ?? $mov->from_warehouse ?? 'unknown');
                                    
                                    // احصل على الرصيد الحالي (أو 0 إذا لم يكن موجوداً)
                                    $currentBalance = $balances[$key] ?? 0;
                                    
                                    // تحديث الرصيد حسب نوع الحركة
                                    if ($mov->document_type === 'receipt') {
                                        $currentBalance += floatval($mov->quantity);
                                    } elseif ($mov->document_type === 'issue') {
                                        $currentBalance -= floatval($mov->quantity);
                                    } elseif ($mov->document_type === 'transfer') {
                                        // التحويل يضيف للمخزن المستقبل
                                        $currentBalance += floatval($mov->quantity);
                                    }
                                    
                                    // احفظ الرصيد الجديد
                                    $balances[$key] = $currentBalance;
                                    
                                    // أضف الرصيد للحركة الحالية
                                    $mov->running_balance = $currentBalance;
                                }
                            @endphp
                            @forelse($movements as $movement)
                                @php
                                    $isInbound = $movement->document_type === 'receipt';
                                    $isOutbound = $movement->document_type === 'issue';
                                    $isTransfer = $movement->document_type === 'transfer';
                                    $runningBalance = $movement->running_balance ?? 0;
                                @endphp
                                <tr class="hover:bg-blue-50 transition-colors duration-150">
                                    <td class="px-6 py-4 text-gray-600 font-medium">{{ $loop->iteration }}</td>
                                    <td class="px-6 py-4 text-sm text-gray-900">
                                        {{ $movement->document_date ? \Carbon\Carbon::parse($movement->document_date)->format('Y-m-d') : '-' }}
                                    </td>

                                    <!-- نوع الحركة -->
                                    <td class="px-6 py-4">
                                        @if ($isInbound)
                                            <span class="inline-flex items-center px-3 py-1 rounded-full text-sm font-medium bg-green-100 text-green-700">
                                                <i class="fas fa-arrow-down ml-1"></i>وارد
                                            </span>
                                        @elseif($isOutbound)
                                            <span class="inline-flex items-center px-3 py-1 rounded-full text-sm font-medium bg-red-100 text-red-700">
                                                <i class="fas fa-arrow-up ml-1"></i>منصرف
                                            </span>
                                        @else
                                            <span class="inline-flex items-center px-3 py-1 rounded-full text-sm font-medium bg-blue-100 text-blue-700">
                                                <i class="fas fa-arrows-alt-h ml-1"></i>تحويل
                                            </span>
                                        @endif
                                    </td>

                                    <td class="px-6 py-4 font-semibold text-gray-900">{{ $movement->item_name ?? '-' }}</td>

                                    <!-- الكميات -->
                                    <td class="px-6 py-4 text-center">
                                        {{ $isInbound ? number_format($movement->quantity, 2) : '-' }}
                                    </td>
                                    <td class="px-6 py-4 text-center">
                                        {{ $isOutbound ? number_format($movement->quantity, 2) : '-' }}
                                    </td>
                                    <td class="px-6 py-4 text-center">
                                        @if ($isTransfer)
                                            <span class="font-semibold text-blue-600">{{ number_format($movement->quantity, 2) }}</span>
                                        @else
                                            <span class="text-gray-400">-</span>
                                        @endif
                                    </td>

                                    <!-- الرصيد الجاري - محسوب بشكل صحيح -->
                                    <td class="px-6 py-4 text-center font-bold">
                                        <span class="px-3 py-1 rounded-lg {{ $runningBalance >= 0 ? 'bg-blue-100 text-blue-700' : 'bg-red-100 text-red-700' }}">
                                            {{ number_format($runningBalance, 2) }}
                                        </span>
                                    </td>

                                    <td class="px-6 py-4 text-sm text-gray-600">{{ $movement->unit_name ?? '-' }}</td>

                                    <!-- من/إلى -->
                                    <td class="px-6 py-4 text-xs text-gray-600">
                                        @if ($isTransfer)
                                            <strong>من:</strong> {{ $movement->from_warehouse ?? '-' }}<br>
                                            <strong>إلى:</strong> {{ $movement->to_warehouse ?? '-' }}
                                        @else
                                            {{ $movement->from_warehouse ?? ($movement->to_warehouse ?? '-') }}
                                        @endif
                                    </td>

                                    <td class="px-6 py-4 text-sm font-medium">{{ $movement->document_number ?? '-' }}</td>
                                    <td class="px-6 py-4 text-xs text-gray-600">{{ Str::limit($movement->notes ?? '', 20) }}</td>
                                </tr>
                            @empty
                                <tr>
                                    <td colspan="12" class="px-6 py-12 text-center text-gray-500">لا توجد حركات</td>
                                </tr>
                            @endforelse
                        </tbody>
                    </table>
                </div>
            </div>
        </div>
    </div>
@endsection
