﻿@extends('layouts.app')

@section('title', TranslationHelper::transFromDatabase('InventoryCounts.EditTitle', __('تعديل الجرد')))

@section('content')
<div class="container-fluid">
    <div class="row">
        <div class="col-md-12">
            <div class="card">
                <div class="card-header">
                    <h3 class="card-title">{{ TranslationHelper::transFromDatabase('InventoryCounts.EditTitle', __('تعديل الجرد')) }}</h3>
                    <div class="card-tools">
                        <a href="{{ route('inventory.counts.show', $count) }}" class="btn btn-sm btn-secondary">
                            <i class="fas fa-arrow-right"></i> {{ TranslationHelper::transFromDatabase('General.BackToDetails', __('العودة للتفاصيل')) }}
                        </a>
                    </div>
                </div>
                <form action="{{ route('inventory.counts.update', $count) }}" method="POST">
                    @csrf
                    @method('PUT')
                    <div class="card-body">
                        <div class="row">
                            <div class="col-md-6">
                                <div class="form-group">
                                    <label for="warehouse_id">{{ TranslationHelper::transFromDatabase('InventoryCounts.Warehouse', __('المخزن')) }}</label>
                                    <input type="text" class="form-control" value="{{ $count->warehouse->name }}" readonly>
                                    <input type="hidden" name="warehouse_id" value="{{ $count->warehouse_id }}">
                                </div>
                            </div>
                            <div class="col-md-6">
                                <div class="form-group">
                                    <label for="count_date">{{ TranslationHelper::transFromDatabase('InventoryCounts.Date', __('تاريخ الجرد')) }} <span class="text-danger">*</span></label>
                                    <input type="date" name="count_date" id="count_date" class="form-control @error('count_date') is-invalid @enderror" value="{{ old('count_date', $count->count_date->format('Y-m-d')) }}" required>
                                    @error('count_date')
                                    <span class="invalid-feedback">{{ $message }}</span>
                                    @enderror
                                </div>
                            </div>
                        </div>
                        
                        <div class="form-group">
                            <label for="notes">{{ TranslationHelper::transFromDatabase('InventoryCounts.Notes', __('ملاحظات')) }}</label>
                            <textarea name="notes" id="notes" rows="3" class="form-control @error('notes') is-invalid @enderror">{{ old('notes', $count->notes) }}</textarea>
                            @error('notes')
                            <span class="invalid-feedback">{{ $message }}</span>
                            @enderror
                        </div>
                        
                        <hr>
                        
                        <h4>{{ TranslationHelper::transFromDatabase('InventoryCounts.Items', __('أصناف الجرد')) }}</h4>
                        <div class="mb-3">
                            <button type="button" id="addItem" class="btn btn-success">
                                <i class="fas fa-plus"></i> {{ TranslationHelper::transFromDatabase('InventoryCounts.AddItem', __('إضافة صنف')) }}
                            </button>
                        </div>
                        
                        <div class="table-responsive">
                            <table class="table table-bordered" id="items-table">
                                <thead>
                                    <tr>
                                        <th>{{ TranslationHelper::transFromDatabase('InventoryCounts.Item', __('الصنف')) }}</th>
                                        <th>{{ TranslationHelper::transFromDatabase('InventoryCounts.Unit', __('الوحدة')) }}</th>
                                        <th>{{ TranslationHelper::transFromDatabase('InventoryCounts.SystemQty', __('الكمية في النظام')) }}</th>
                                        <th>{{ TranslationHelper::transFromDatabase('InventoryCounts.ActualQty', __('الكمية الفعلية')) }}</th>
                                        <th>{{ TranslationHelper::transFromDatabase('InventoryCounts.Difference', __('الفرق')) }}</th>
                                        <th>{{ TranslationHelper::transFromDatabase('InventoryCounts.UnitCost', __('تكلفة الوحدة')) }}</th>
                                        <th>{{ TranslationHelper::transFromDatabase('InventoryCounts.TotalDiffCost', __('إجمالي تكلفة الفرق')) }}</th>
                                        <th>{{ TranslationHelper::transFromDatabase('InventoryCounts.Notes', __('ملاحظات')) }}</th>
                                        <th>{{ TranslationHelper::transFromDatabase('General.Actions', __('الإجراءات')) }}</th>
                                    </tr>
                                </thead>
                                <tbody id="items-container">
                                    @foreach($count->items as $inde => $item)
                                    <tr class="item-row">
                                        <td>
                                            <input type="hidden" name="items[{{ $inde }}][id]" value="{{ $item->id }}">
                                            <select name="items[{{ $inde }}][item_id]" class="form-control item-select" required>
                                                <option value="">{{ TranslationHelper::transFromDatabase('General.SelectItem', __('-- اختر الصنف --')) }}</option>
                                                @foreach($items as $allItem)
                                                    <option value="{{ $allItem->id }}" {{ $item->item_id == $allItem->id ? 'selected' : '' }}>
                                                        {{ $allItem->name }} ({{ $allItem->code }})
                                                    </option>
                                                @endforeach
                                            </select>
                                        </td>
                                        <td>
                                            <select name="items[{{ $inde }}][unit_id]" class="form-control unit-select" required>
                                                <option value="{{ $item->unit_id }}">{{ $item->unit->name }}</option>
                                            </select>
                                        </td>
                                        <td>
                                            <input type="number" name="items[{{ $inde }}][system_quantity]" class="form-control system-quantity" step="0.01" min="0" value="{{ $item->system_quantity }}" required>
                                        </td>
                                        <td>
                                            <input type="number" name="items[{{ $inde }}][actual_quantity]" class="form-control actual-quantity" step="0.01" min="0" value="{{ $item->actual_quantity }}" required>
                                        </td>
                                        <td>
                                            <input type="number" class="form-control difference-quantity" value="{{ $item->difference_quantity }}" readonly>
                                        </td>
                                        <td>
                                            <input type="number" name="items[{{ $inde }}][unit_cost]" class="form-control unit-cost" step="0.01" min="0" value="{{ $item->unit_cost }}" required>
                                        </td>
                                        <td>
                                            <input type="number" class="form-control total-difference-cost" value="{{ $item->total_difference_cost }}" readonly>
                                        </td>
                                        <td>
                                            <input type="text" name="items[{{ $inde }}][notes]" class="form-control" value="{{ $item->notes }}">
                                        </td>
                                        <td>
                                            <button type="button" class="btn btn-sm btn-danger remove-item">
                                                <i class="fas fa-trash"></i>
                                            </button>
                                        </td>
                                    </tr>
                                    @endforeach
                                </tbody>
                            </table>
                        </div>
                        
                        <div id="no-items-message" class="alert alert-warning">
                            {{ TranslationHelper::transFromDatabase('InventoryCounts.NoItemsAdded', __('لم يتم إضافة أصناف للجرد بعد.')) }}
                        </div>
                    </div>
                    <div class="card-footer">
                        <button type="submit" class="btn btn-primary">
                            <i class="fas fa-save"></i> {{ TranslationHelper::transFromDatabase('General.SaveChanges', __('حفظ التغييرات')) }}
                        </button>
                    </div>
                </form>
            </div>
        </div>
    </div>
</div>

<!-- قالب صف الصنف -->
<template id="item-row-template">
    <tr class="item-row">
        <td>
            <select name="items[{inde}][item_id]" class="form-control item-select" required>
                <option value="">{{ TranslationHelper::transFromDatabase('General.SelectItem', __('-- اختر الصنف --')) }}</option>
                @foreach($items as $item)
                    <option value="{{ $item->id }}">{{ $item->name }} ({{ $item->code }})</option>
                @endforeach
            </select>
        </td>
        <td>
            <select name="items[{inde}][unit_id]" class="form-control unit-select" required>
                <option value="">{{ TranslationHelper::transFromDatabase('General.SelectUnit', __('-- اختر الوحدة --')) }}</option>
            </select>
        </td>
        <td>
            <input type="number" name="items[{inde}][system_quantity]" class="form-control system-quantity" step="0.01" min="0" value="0" required>
        </td>
        <td>
            <input type="number" name="items[{inde}][actual_quantity]" class="form-control actual-quantity" step="0.01" min="0" value="0" required>
        </td>
        <td>
            <input type="number" class="form-control difference-quantity" readonly>
        </td>
        <td>
            <input type="number" name="items[{inde}][unit_cost]" class="form-control unit-cost" step="0.01" min="0" value="0" required>
        </td>
        <td>
            <input type="number" class="form-control total-difference-cost" readonly>
        </td>
        <td>
            <input type="text" name="items[{inde}][notes]" class="form-control">
        </td>
        <td>
            <button type="button" class="btn btn-sm btn-danger remove-item">
                <i class="fas fa-trash"></i>
            </button>
        </td>
    </tr>
</template>
@endsection

@push('scripts')
<script>
    $(document).ready(function() {
        let itemInde = {{ $count->items->count() }};
        
        // إظهار/إخفاء رسالة عدم وجود أصناف
        function toggleNoItemsMessage() {
            if ($('#items-container .item-row').length > 0) {
                $('#no-items-message').hide();
            } else {
                $('#no-items-message').show();
            }
        }
        
        // إضافة صف صنف جديد
        function addItemRow() {
            let template = $('#item-row-template').html();
            template = template.replace(/{inde}/g, itemInde);
            
            let $row = $(template);
            $('#items-container').append($row);
            
            itemInde++;
            toggleNoItemsMessage();
        }
        
        // تحميل وحدات الصنف عند اختياره
        $(document).on('change', '.item-select', function() {
            let $row = $(this).closest('.item-row');
            let itemId = $(this).val();
            let $unitSelect = $row.find('.unit-select');
            
            $unitSelect.empty().append('<option value="">' + "{{ TranslationHelper::transFromDatabase('General.SelectUnit', __('-- اختر الوحدة --')) }}" + '</option>');
            
            if (itemId) {
                $.ajax({
                    url: "{{ route('inventory.items.units.api', ':id') }}".replace(':id', itemId),
                    type: 'GET',
                    success: function(response) {
                        if (response.success) {
                            $.each(response.data, function(index, unit) {
                                $unitSelect.append(new Option(unit.unit_name, unit.unit_id));
                            });
                        }
                    }
                });
            }
        });
        
        // حساب الفرق وتكلفة الفرق
        function calculateDifference($row) {
            let systemQty = parseFloat($row.find('.system-quantity').val()) || 0;
            let actualQty = parseFloat($row.find('.actual-quantity').val()) || 0;
            let unitCost = parseFloat($row.find('.unit-cost').val()) || 0;
            
            let difference = actualQty - systemQty;
            let totalDifferenceCost = difference * unitCost;
            
            $row.find('.difference-quantity').val(difference.toFixed(2));
            $row.find('.total-difference-cost').val(totalDifferenceCost.toFixed(2));
        }
        
        // إضافة صنف جديد
        $('#addItem').click(function() {
            addItemRow();
        });
        
        // حذف صنف
        $(document).on('click', '.remove-item', function() {
            $(this).closest('.item-row').remove();
            toggleNoItemsMessage();
        });
        
        // حساب الفرق عند تغيير الكمية
        $(document).on('input', '.system-quantity, .actual-quantity, .unit-cost', function() {
            calculateDifference($(this).closest('.item-row'));
        });
        
        // حساب الفرق للأصناف الموجودة عند تحميل الصفحة
        $('.item-row').each(function() {
            calculateDifference($(this));
        });
        
        // عرض رسالة عدم وجود أصناف عند تحميل الصفحة
        toggleNoItemsMessage();
    });
</script>
@endpush