<?php $__env->startSection('content'); ?>
<div class="card">
    <div class="card-header">
        <?php echo e(trans('cruds.product.sell_products_title')); ?> <?php echo e(trans('global.list')); ?>

        <?php if (app(\Illuminate\Contracts\Auth\Access\Gate::class)->check('user_create')): ?>
            <a href="<?php echo e(route('admin.products.create')); ?>" class="btn btn-primary float-right">
                <?php echo e(trans('global.add')); ?> <?php echo e(trans('cruds.product.singular')); ?>

            </a>
        <?php endif; ?>
    </div>
    
    <div class="card-body">
        
        <div class="row mb-3">
            <div class="col-md-3">
                <select id="sellerFilter" class="form-control select2">
                    <option value=""><?php echo e(trans('global.all')); ?> <?php echo e(trans('cruds.product.fields.user_id')); ?></option>
                    <?php $__currentLoopData = $seller_users; $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $user): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?>
                        <option value="<?php echo e($user->id); ?>"><?php echo e($user->first_name); ?> <?php echo e($user->last_name); ?></option>
                    <?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); ?>
                </select>
            </div>
            <div class="col-md-3">
                <select id="categoryFilter" class="form-control select2">
                    <option value=""><?php echo e(trans('global.all')); ?> <?php echo e(trans('cruds.category.title')); ?></option>
                    <?php $__currentLoopData = $category; $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $cat): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?>
                        <option value="<?php echo e($cat->id); ?>"><?php echo e($cat->name); ?></option>
                    <?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); ?>
                </select>
            </div>
            <div class="col-md-2">
                <select id="statusFilter" class="form-control select2">
                    <option value=""><?php echo e(trans('global.all')); ?> <?php echo e(trans('cruds.product.fields.status')); ?></option>
                    <option value="Draft"><?php echo e(trans('cruds.product.status.draft')); ?></option>
                    <option value="Pending"><?php echo e(trans('cruds.product.status.pending')); ?></option>
                    <option value="Approved"><?php echo e(trans('cruds.product.status.approved')); ?></option>
                    <option value="Rejected"><?php echo e(trans('cruds.product.status.rejected')); ?></option>
                    <option value="Save"><?php echo e(trans('cruds.product.status.save')); ?></option>
                </select>
            </div>
            <div class="col-md-2">
                <select id="conditionFilter" class="form-control select2">
                    <option value=""><?php echo e(trans('global.all')); ?> <?php echo e(trans('cruds.product.fields.condition')); ?></option>
                    <option value="1"><?php echo e(trans('cruds.product.condition.new')); ?></option>
                    <option value="2"><?php echo e(trans('cruds.product.condition.used')); ?></option>
                </select>
            </div>
            <div class="col-md-2">
                <select id="isAdminFilter" class="form-control select2">
                    <option value=""><?php echo e(trans('global.all')); ?> <?php echo e(trans('cruds.product.fields.is_admin')); ?></option>
                    <option value="0"><?php echo e(trans('cruds.product.is_admin.no')); ?></option>
                    <option value="1"><?php echo e(trans('cruds.product.is_admin.yes')); ?></option>
                </select>
            </div>
        </div>

        <?php if(session('success')): ?>
            <div class="alert alert-success"><?php echo e(session('success')); ?></div>
        <?php endif; ?>

        
        <ul class="nav nav-tabs" id="productTabs" role="tablist">
            <?php
                $tabs = [
                    'sell' => ['label' => trans('global.tabbing.sell_product'), 'count' => $product_sell_count],
                    'sold_sell' => ['label' => trans('global.tabbing.sold_sell_product'), 'count' => $product_sold_sell_count]
                ];
            ?>

            <?php $__currentLoopData = $tabs; $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $key => $tab): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?>
                <li class="nav-item">
                    <a class="nav-link <?php echo e($loop->first ? 'active' : ''); ?>" 
                       id="<?php echo e($key); ?>-tab" 
                       data-toggle="tab" 
                       href="#<?php echo e($key); ?>" 
                       role="tab">
                        <?php echo e($tab['label']); ?> (<?php echo e($tab['count']); ?>)
                    </a>
                </li>
            <?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); ?>
        </ul>

        <div class="tab-content mt-3">
            <?php $__currentLoopData = ['sell', 'sold_sell']; $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $index => $tab): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?>
                <?php
                    // Fix class name (convert to StudlyCase)
                    $datatableClass = Illuminate\Support\Str::studly(str_replace('-', '_', $tab));
                ?>
                <div class="tab-pane fade <?php echo e($index === 0 ? 'show active' : ''); ?>" 
                     id="<?php echo e($tab); ?>" 
                     role="tabpanel">
                    <table class="table table-bordered table-striped table-hover ajaxTable datatable datatable-<?php echo e($datatableClass); ?>Products">
                        <thead>
                            <tr>
                                <th><?php echo e(trans('cruds.product.fields.id')); ?></th>
                                <th><?php echo e(trans('cruds.product.fields.category')); ?></th>
                                <th><?php echo e(trans('cruds.product.fields.name')); ?></th>
                                <th><?php echo e(trans('cruds.product.fields.user_id')); ?></th>
                                <th><?php echo e(trans('cruds.product.fields.sku')); ?></th>
                                <th><?php echo e(trans('cruds.product.fields.price')); ?></th>
                                <th><?php echo e(trans('cruds.product.fields.product_quantity')); ?></th>
                                <th><?php echo e(trans('cruds.product.fields.commission_percentage')); ?></th>
                                <th><?php echo e(trans('cruds.product.fields.admin_commission')); ?></th>
                                <th><?php echo e(trans('cruds.product.fields.seller_receiver')); ?></th>
                                <th><?php echo e(trans('cruds.product.fields.status')); ?></th>
                                <th><?php echo e(trans('cruds.product.fields.condition')); ?></th>
                                <th><?php echo e(trans('cruds.product.fields.is_admin')); ?></th>
                                <th><?php echo e(trans('cruds.product.fields.actions')); ?></th>
                            </tr>
                        </thead>
                    </table>
                </div>
            <?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); ?>
        </div>
    </div>
</div>
<?php $__env->stopSection(); ?>

<?php $__env->startSection('scripts'); ?>
<?php echo \Illuminate\View\Factory::parentPlaceholder('scripts'); ?>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/daterangepicker/daterangepicker.min.js"></script>
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/daterangepicker/daterangepicker.css" />

<script>
$(function () {
    'use strict';

    const CONFIG = {
        tabs: {
            sell: { status: 'Sell', type: 2, selector: '.datatable-SellProducts', isAuction: false },
            sold_sell: { status: 'SoldSell', type: 2, selector: '.datatable-SoldSellProducts', isAuction: false }
        }
    };

    const tables = {};
    const initializedTabs = new Set();
    let currentTab = 'sell';

    // Detect hash navigation
    const hash = window.location.hash.replace('#', '');
    if (hash && CONFIG.tabs[hash]) {
        currentTab = hash;
        activateTab(hash);
    }

    /* ------------------------------------------
    * SELL TABLE CONFIG
    * ------------------------------------------ */
    const sellDatatableConfig = {
        buttons: '',
        processing: true,
        serverSide: true,
        retrieve: true,
        aaSorting: [],
        columns: [
            { data: 'id', name: 'id' },
            { data: 'cat_id', name: 'cat_id' },
            { data: 'product_name', name: 'name' },
            { data: 'seller_name', name: 'seller_name' },
            { data: 'sku', name: 'sku' },
            { data: 'price', name: 'price' },
            { data: 'product_quantity', name: 'product_quantity' },
            { data: 'commission_percentage', name: 'commission_percentage' },
            { data: 'admin_commission', name: 'admin_commission', searchable: false, visible: false },
            { data: 'seller_receiver', name: 'seller_receiver', searchable: false, visible: false },
            { data: 'status', name: 'status' },
            { data: 'condition', name: 'condition' },
            { data: 'is_admin', name: 'is_admin' },
            { data: 'actions', name: "<?php echo e(trans('global.actions')); ?>" }
        ],
        order: [[1, 'desc']],
        pageLength: 10
    };

     /* ------------------------------------------
     * SOLD SELL TABLE CONFIG
     * ------------------------------------------ */
    const soldSellDatatableConfig = {
        processing: true,
        serverSide: true,
        retrieve: true,
        pageLength: 10,
        aaSorting: [],
        columns: [
            { data: 'id', name: 'id' },
            { data: 'cat_id', name: 'cat_id', visible: false },
            { data: 'product_name', name: 'products.name' },
            { data: 'seller_name', name: 'seller_name' },
            { data: 'sku', name: 'products.sku' },
            { data: 'price', name: 'orders.price' },
            { data: 'product_quantity', name: 'orders.quantity' },
            { data: 'commission_percentage', name: 'products.commission_percentage' },
            { data: 'admin_commission', name: 'admin_commission', searchable: false },
            { data: 'seller_receiver', name: 'seller_receiver', searchable: false },
            { data: 'status', name: 'status', visible: false, searchable: false  },
            { data: 'condition', name: 'products.condition', visible: false, searchable: false },
            { data: 'is_admin', name: 'products.is_admin', visible: false, searchable: false },
            { data: 'actions', name: 'actions', orderable: false, searchable: false }
        ],
    };

    function initTable(tabKey) {
        if (initializedTabs.has(tabKey)) return tables[tabKey];
        const config = CONFIG.tabs[tabKey];
        if (!$(config.selector).length) return null;

        // Choose the correct table config
        const baseConfig =
            tabKey === "sell" ? sellDatatableConfig : soldSellDatatableConfig;

        const ajaxConfig = {
            url: "<?php echo e(route('admin.products.sell_product')); ?>",
            data: function (d) {
                d.user_id = $('#sellerFilter').val();
                d.cat_id = $('#categoryFilter').val();
                d.status = $('#statusFilter').val();
                d.condition = $('#conditionFilter').val();
                d.is_admin = $('#isAdminFilter').val();
                d.product_type = config.type;
                d.tab_status = config.status;
            }
        };

        const finalConfig = $.extend(true, {}, baseConfig, { ajax: ajaxConfig });

        const table = $(config.selector).DataTable(finalConfig);
        tables[tabKey] = table;
        initializedTabs.add(tabKey);

        return table;
    }

    function activateTab(tabId) {
        $('.nav-link').removeClass('active');
        $('.tab-pane').removeClass('active show');
        $(`#${tabId}-tab`).addClass('active');
        $(`#${tabId}`).addClass('active show');
    }

    initTable(currentTab);

    $('.nav-link').on('click', function () {
        const tabId = $(this).attr('href').replace('#', '');
        currentTab = tabId;

        if (!initializedTabs.has(tabId)) {
            setTimeout(() => initTable(tabId), 150);
        } else {
            setTimeout(() => {
                tables[tabId].columns.adjust().draw(false);
            }, 150);
        }
    });

    $('#sellerFilter, #categoryFilter, #statusFilter, #conditionFilter, #isAdminFilter').on('change', reloadInitializedTables);

    function reloadInitializedTables() {
        initializedTabs.forEach(tabKey => {
            if (tables[tabKey]) {
                tables[tabKey].ajax.reload(null, false);
            }
        });
    }

    $('a[data-toggle="tab"]').on('shown.bs.tab', () => {
        $($.fn.dataTable.tables(true)).DataTable().columns.adjust();
    });
});
</script>
<?php $__env->stopSection(); ?>
<?php echo $__env->make('layouts.admin', \Illuminate\Support\Arr::except(get_defined_vars(), ['__data', '__path']))->render(); ?><?php /**PATH /var/www/html/resources/views/admin/products/sell_data_listing.blade.php ENDPATH**/ ?>