@extends('layouts.master')
@section('title', 'Inventory Sales Report')
@section('content')

<div class="container-fluid py-3">
    <div class="d-flex justify-content-end mb-3">
        <a href="{{ route('home') }}" class="btn-back">
            <i class="fas fa-arrow-left me-2"></i> Back to Dashboard
        </a>
    </div>

    <div class="card shadow-sm">
        <div class="card-header bg-primary text-white py-3">
            <h5 class="mb-0"><i class="fas fa-calendar-day me-2"></i>Inventory Sales Report</h5>
        </div>

        <div class="card-body">
            @if(session('success'))
                <div class="alert alert-success">{{ session('success') }}</div>
            @endif

            @if($errors->any())
                <div class="alert alert-danger">
                    <ul class="mb-0">
                        @foreach($errors->all() as $error)
                            <li>{{ $error }}</li>
                        @endforeach
                    </ul>
                </div>
            @endif

            <form action="{{ route('inventorysales.generate') }}" method="POST">
                @csrf
                <div class="row mb-3">
                    <div class="col-md-2">
                        <label class="form-label"><strong>Date From</strong></label>
                        <input type="date" class="form-control" name="date_from" id="date_from" value="{{ isset($dateFrom) ? $dateFrom : date('Y-m-d') }}"  required>
                    </div>
                    <div class="col-md-2">
                        <label class="form-label"><strong>Date To</strong></label>
                        <input type="date" class="form-control" name="date_to" id="date_to" value="{{ isset($dateTo) ? $dateTo : date('Y-m-d') }}" required>
                    </div>

                    <div class="col-md-2">
                        <label class="form-label"><strong>Currency</strong></label>
                        <select class="form-control select2" name="currency" id="currency" required>
                            <option value="" disabled selected>Select Currency</option>
                            @foreach($currencies as $currency)
                                <option value="{{ $currency->code }}" {{ (isset($currencyCode) && $currencyCode == $currency->code) ? 'selected' : '' }}>
                                    {{ $currency->code }} - {{ $currency->name }}
                                </option>
                            @endforeach
                        </select>
                    </div>
                   <div class="col-md-3">
                        <label class="form-label"><strong>Customer From</strong></label>
                        <select class="form-control select2" name="customer_from" id="customer_from" required>
                            <option value="" disabled selected>Select Customer</option>
                            <option value="all" {{ (isset($customerfrom) && $customerfrom == 'all') ? 'selected' : '' }}>All Customers</option>
                            @foreach($customers as $customer)
                                <option value="{{ $customer->id }}" {{ (isset($customerfrom) && $customerfrom == $customer->id) ? 'selected' : '' }}>
                                    {{ $customer->customer_account }}
                                </option>
                            @endforeach
                        </select>
                    </div>

                    <div class="col-md-3">
                        <label class="form-label"><strong>Customer To</strong></label>
                        <select class="form-control select2" name="customer_to" id="customer_to" required>
                            <option value="" disabled selected>Select Customer</option>
                            <option value="all" {{ (isset($customerto) && $customerto == 'all') ? 'selected' : '' }}>All Customers</option>
                            @foreach($customers as $customer)
                                <option value="{{ $customer->id }}" {{ (isset($customerto) && $customerto == $customer->id) ? 'selected' : '' }}>
                                    {{ $customer->customer_account }}
                                </option>
                            @endforeach
                        </select>
                    </div>
                    <div class="col-md-3">
                        <label class="form-label"><strong>User From</strong></label>
                        <select class="form-control select2" name="user_from" id="user_from" required>
                            <option value="" disabled selected>Select User</option>
                            <option value="all" {{ (isset($userfrom) && $userfrom == 'all') ? 'selected' : '' }}>All Users</option>
                            @foreach($users as $user)
                                <option value="{{ $user->id }}" {{ (isset($userfrom) && $userfrom == $user->id) ? 'selected' : '' }}>
                                    {{ $user->name }} - {{ $user->role->name ?? '' }}
                                </option>
                            @endforeach
                        </select>
                    </div>
                    <div class="col-md-3">
                        <label class="form-label"><strong>User To</strong></label>
                        <select class="form-control select2" name="user_to" id="user_to" required>
                            <option value="" disabled selected>Select User</option>
                            <option value="all" {{ (isset($userto) && $userto == 'all') ? 'selected' : '' }}>All Users</option>
                            @foreach($users as $user)
                                <option value="{{ $user->id }}" {{ (isset($userto) && $userto == $user->id) ? 'selected' : '' }}>
                                    {{ $user->name }} - {{ $user->role->name ?? '' }}
                                </option>
                            @endforeach
                        </select>
                    </div>

                </div>
                <div class="d-flex justify-content-end">
                    <button type="submit" class="btn btn-primary me-1">Generate Report</button>
                    <button type="reset" class="btn btn-secondary" onclick="resetForm()">Refresh</button>
                </div>
            </form>
        </div>
    </div>

    @if(isset($allTransactions) && count($allTransactions) > 0)
        <!-- PDF Download Button -->
        <div class="d-flex justify-content-end mt-4">
            <form >
                @csrf
                <input type="hidden" name="user_from" value="{{ $userfrom }}">
                <input type="hidden" name="user_to" value="{{ $userto }}">
                <input type="hidden" name="customer_from" value="{{ $customerfrom }}">
                <input type="hidden" name="customer_to" value="{{ $customerto }}">
                <input type="hidden" name="date_from" value="{{ $dateFrom }}">
                <input type="hidden" name="date_to" value="{{ $dateTo }}">
                <input type="hidden" name="currency" value="{{ $currencyCode }}">
                <button type="submit" class="btn btn-process-all btn-sm">
                    <i class="fas fa-download me-1"></i> DOWNLOAD PDF FOR ALL Users
                </button>
            </form>
        </div>

    @foreach($allTransactions as $itemTransaction)
    <div class="card shadow-sm mt-4">
        <div class="card-header bg-light py-3">
            <h6 class="mb-0">
                <i class="fas fa-box me-2"></i>{{ $itemTransaction['item_name'] }}
            </h6>
        </div>
        <div class="card-body">
            <div class="table-responsive">
                <table class="table table-bordered table-hover">
                    <thead class="table-light text-center">
                        <tr>
                            <th>Date</th>
                            <th>Reference</th>
                            <th>Customer</th>

                            <th>User</th>
                            <th>Sales ({{ $currencyCode }})</th>
                            <th>Units Sold</th>
                            <th>Returns</th>
                            <th>Discount</th>
                            <th>Gross Profit</th>
                            <th>Gross Profit%</th>
                        </tr>
                    </thead>
                    <tbody class="text-center">
                        @php
                            $grandSales = 0;
                            $grandUnitsSold = 0;
                            $grandDiscount = 0;
                            $grandUnitsReturned = 0;
                            $grandGP = 0;
                            $grossProfitPercent = 0;
                        @endphp

                        @foreach($itemTransaction['transactionData'] as $invoice)
                            @if($invoice['type'] === 'invoice')
                                @php
                                    $relatedReturns = collect($itemTransaction['transactionData'])
                                        ->filter(fn($r) => in_array($r['type'], ['credit_note', 'debit_note'])
                                            && $r['order_number'] === $invoice['order_number']
                                            && $r['customer_account_id'] === $invoice['customer_account_id']);
                                    $totalUnitsReturned = $relatedReturns->sum('confirmed_units');

                                    $grandSales += $invoice['total_amount'];
                                    $grandUnitsSold += $invoice['confirmed_units'];
                                    $grandDiscount += $invoice['discount'];
                                    $grandGP += $invoice['gross_profit'];
                                    $grandUnitsReturned += $totalUnitsReturned;
                                    $grossProfitPercent = $grandSales > 0 ? ($grandGP / $grandSales) * 100 : 0;
                                @endphp
                                <tr>
                                    <td>{{ \Carbon\Carbon::parse($invoice['date'])->format('d-m-Y') }}</td>
                                    <td>
                                        <a href="{{ route('documentReprint.reprintDocument', $invoice['document_id']) }}"
                                           target="_blank" class="document-link">
                                            {{ $invoice['reference'] }}
                                        </a>
                                    </td>
                                    <td>{{ $invoice['customer_name'] }}</td>

                                    <td>{{ $invoice['added_by'] }}</td>
                                    <td>{{ number_format($invoice['total_amount'], 2) }}</td>
                                    <td>{{ $invoice['confirmed_units'] }}</td>
                                    <td>{{ $totalUnitsReturned > 0 ? $totalUnitsReturned : '0' }}</td>
                                    <td>{{ number_format($invoice['discount'], 2) }}</td>
                                    <td>{{ number_format($invoice['gross_profit'], 2) }}</td>
                                    <td>{{ number_format($invoice['gross_profit_percent'], 2) }}%</td>
                                </tr>
                            @endif
                        @endforeach

                        <tr class="table-active">
                            <td colspan="3" class="text-center"><strong></strong></td>
                            <td><strong>Grand Total:</strong></td>
                            <td><strong>{{ $currencyCode }} {{ number_format($grandSales, 2) }}</strong></td>
                            <td><strong>{{ $grandUnitsSold }}</strong></td>
                            <td><strong>{{ $grandUnitsReturned }}</strong></td>
                            <td><strong>{{ number_format($grandDiscount, 2) }}</strong></td>
                            <td><strong>{{ number_format($grandGP, 2) }}</strong></td>
                            <td><strong>{{ number_format($grossProfitPercent, 2) }}%</strong></td>

                        </tr>
                    </tbody>
                </table>
            </div>
        </div>
    </div>
@endforeach

@elseif(isset($transactionData) && count($transactionData) > 0)
        <!-- Single user View -->
        <div class="card shadow-sm mt-4">
            <div class="card-header bg-light py-3 d-flex justify-content-between align-items-center">
                <h6 class="mb-0"><i class="fas fa-list me-2"></i> user Daily Transactions</h6>
                <div>
                    <form>
                        @csrf
                        <input type="hidden" name="user_from" value="{{ $userfrom }}">
                        <input type="hidden" name="user_to" value="{{ $userto }}">
                        <input type="hidden" name="customer_from" value="{{ $customerfrom }}">
                        <input type="hidden" name="customer_to" value="{{ $customerto }}">
                        <input type="hidden" name="date_from" value="{{ $dateFrom }}">
                        <input type="hidden" name="date_to" value="{{ $dateTo }}">
                        <input type="hidden" name="currency" value="{{ $currencyCode }}">
                        <button type="submit" class="btn btn-process-all btn-sm">
                            <i class="fas fa-download me-1"></i> DOWNLOAD PDF
                        </button>
                    </form>
                </div>
            </div>
            <div class="card-body">
                <div class="table-responsive">
                    <table class="table table-bordered table-hover">
                        <thead class="table-light text-center">
                            <tr>
                                <th>Date</th>
                                <th>Reference</th>
                                <th>User</th>
                                <th>Sales ({{ $currencyCode }})</th>
                                <th>Units Sold</th>
                                <th>Returns</th>
                                <th>Units Returned</th>
                                <th>Discount</th>
                                <th>Gross Profit</th>
                            </tr>
                        </thead>
                        <tbody class="text-center">
                            @php
                                $grandBalance = 0;
                            @endphp
                           @foreach($customerTransaction['transactionData'] as $t)
                            <tr>
                                <td>{{($t['date'])->format('d-m-Y')}}</td>
                                <td>
                                    <a href="{{ route('documentReprint.reprintDocument', $invoice['document_id']) }}"
                                    target="_blank"
                                    class="document-link">
                                        {{ $invoice['reference'] }}
                                    </a>
                                </td>
                                <td>{{ $invoice['added_by'] }}</td>
                                <td class="text-center">{{ number_format($t['total_amount'], 2) }}</td>
                                <td>{{ $t['total_units'] }}</td>
                                <td>{{ $t['confirmed_units'] }}</td>
                                <td>{{ number_format($t['discount'], 2) }}</td>
                                <td>{{ number_format($t['gross_profit'], 2) }}</td>

                            </tr>
                            @endforeach
                            <!-- Grand Total Row -->
                            <tr class="table-active">
                                <td colspan="5" class="text-center"><strong>Grand Balance:</strong></td>
                                <td><strong>{{ number_format($grandBalance, 2) }}</strong></td>
                            </tr>
                        </tbody>
                    </table>
                </div>
                <div class="mt-4 text-center">
                    <p class="text-muted">Copyright © Melsoft (Private) Limited</p>
                </div>
            </div>
        </div>
    @elseif(isset($transactionData) && count($transactionData) == 0)
        <div class="card shadow-sm mt-4">
            <div class="card-body">
                <div class="alert alert-info mt-3">
                    No transactions found for the selected criteria.
                </div>
            </div>
        </div>
    @endif
</div>
@endsection
@section('styles')
<style>
.btn-back {
    text-decoration: none;
    color: #1AB9D9;
    font-weight: 500;
    display: inline-flex;
    align-items: center;
    padding: 5px 15px;
    border-radius: 4px;
    transition: all 0.3s;
}
.btn-back:hover {
    background-color: rgba(26, 185, 217, 0.1);
    text-decoration: none;
}
.card {
    border-radius: 8px;
    overflow: hidden;
    border: none;
    box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.1);
}
.card-header {
    border-bottom: 1px solid rgba(0,0,0,0.1);
    padding: 12px 20px;
}
.table th {
    background-color: #f8f9fa;
}
.table-responsive {
    overflow-x: auto;
}
.table-active {
    background-color: rgba(0,0,0,.05) !important;
}
.btn-process-all {
    background-color: #ffffff !important;
    color: #1AB9D9 !important;
    border: 1px solid rgba(26,185,217,0.35) !important;
    font-weight: 600 !important;
    padding: 7px 14px !important;
    box-shadow: none !important;
    line-height: 1 !important;
}
.btn-process-all:hover {
    background-color: #f5fbfc !important;
    color: #1498b0 !important;
    border-color: rgba(20,152,176,0.45) !important;
}

@media print {
    .btn-back, .card-header .btn, form {
        display: none !important;
    }
    .card {
        box-shadow: none;
        border: 1px solid #ddd;
    }
    .table-responsive {
        overflow-x: visible;
    }
}
</style>
@endsection

@section('scripts')
<script>
    // Initialize Select2 for dropdowns
    $(document).ready(function() {
        $('.select2').select2({
            placeholder: "Select Option",
            allowClear: true
        });
    });

    function resetForm() {
        // Reset the select2 dropdowns
        $('#user_account').val(null).trigger('change');
        $('#currency').val(null).trigger('change');
        $('#date_from').val('');
        $('#date_to').val('');
    }
</script>
@endsection
