HEX
Server: Apache/2.4.41 (Ubuntu)
System: Linux ip-172-31-42-149 5.15.0-1084-aws #91~20.04.1-Ubuntu SMP Fri May 2 07:00:04 UTC 2025 aarch64
User: ubuntu (1000)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/vhost/disk-apps/demo.sports-crowd.com/resources/views/service_charges/form.blade.php
@csrf
<style>
    .input-group {
        width: 100%;
    }

    .icon-rtl {
        padding-right: 35px;
        background-repeat: no-repeat;
        background-position: right 10px center;
        background-size: 18px 18px;
    }

    /* Ícono porcentaje */
    .icon-percent {
        background-image: url("https://img.icons8.com/metro/512/percentage2--v1.png");
    }

    /* Ícono dólar */
    .icon-value {
        background-image: url("https://img.icons8.com/?size=100&id=85843&format=png&color=000000");
    }
</style>
<div class="card-body">
    <input type="hidden" class="form-control" id="id" name="id" required value="{{ $object->id ?? old('id') }}">
    <div class="row">
        <div class="col-6 col-md-6">
            <div class="form-group">
                <label for="academy_location_id"> {{ Lang::get('messages.service_charges.tag2')}}</label>
                <select class="form-control select2" multiple="multiple" data-placeholder="{{ Lang::get('messages.screen_products_tag32') }}" name="services" required>
                    @foreach ($services as $service)
                    <option value="{{ $service->value }}" {{ isset($object) && in_array($service->value, $assignedServices) ? 'selected' : '' }}>
                        {{ $service->name }}
                    </option>
                    @endforeach
                </select>
            </div>
        </div>
        <div class="col-6 col-md-6">
            <label for="priority">{{ Lang::get('messages.service_charges.tag5') }}</label>
            <select class="form-control" name="priority" value="{{ isset($object) && $object->priority ?? old('priority') }}">
                <option value="1" {{isset($object) && $object->priority ? 'selected' : ''}}>
                    @lang('messages.yes')
                </option>
                <option value="0" {{isset($object) && !$object->priority ? 'selected' : ''}}>
                    @lang('messages.no')
                </option>
            </select>
        </div>
    </div>

    <div class="row">
        <div class="col-2 col-md-2">
            <div class="form-group">
                <label>{{ Lang::get('messages.service_charges.fee') }}</label><br>
                <div class="form-check form-check-inline">
                    <input class="form-check-input" type="radio" name="price_type" id="price_type_value" value="value"
                        {{ (isset($object) && $object->price_type == 'value') || (!isset($object) && !old('price_type')) || old('price_type') == 'value' ? 'checked' : '' }} required>
                    <label class="form-check-label" for="price_type_value">{{ Lang::get('messages.service_charges.fixed_value') }}</label>
                </div>
                <div class="form-check form-check-inline">
                    <input class="form-check-input" type="radio" name="price_type" id="price_type_percent" value="percent"
                        {{ (isset($object) && $object->price_type == 'percent') || old('price_type') == 'percent' ? 'checked' : '' }}>
                    <label class="form-check-label" for="price_type_percent">{{ Lang::get('messages.service_charges.percent') }} (0-100)</label>
                </div>
            </div>
        </div>
        <div class="col-4 col-md-4">
            <div class="form-group">
                <label for="price"></label>
                <div class="input-group">
                    <input type="number" class="form-control icon-rtl 
                          {{ (isset($object) && $object->price_type == 'percent') || old('price_type') == 'percent' ? 'icon-percent' : 'icon-value' }}"
                        id="priceInput" name="price" maxlength="10" step="0.01" required value="{{ $object->price ?? old('price') }}">
                </div>
            </div>
        </div>
        <div class="col-6 col-md-6">
            <div class="form-group">
                <label for="tags"> {{ Lang::get('messages.service_charges.tag4')}} {{ Lang::get('messages.optional') }}</label>
                <select class="form-control select2" multiple="multiple" data-placeholder="{{ Lang::get('messages.screen_products_tag32') }}" name="generalMultiselect">
                    @foreach ($tags as $tag)
                    <option value="{{ $tag->id }}" {{ isset($assignedTags) && in_array($tag->id, $assignedTags) ? 'selected' : '' }}>
                        {{ $tag->name }}
                    </option>
                    @endforeach
                </select>
            </div>
        </div>
    </div>

    <!-- RULES/CONFIGURATIONS -->
    <div class="box collapsed-box">
        <div class="box-header with-border">
            <h3 class="box-title">
                {{ Lang::get('messages.service_charges.title_rules') }}
            </h3>

            <div class="box-tools pull-right">
                <button type="button" class="btn btn-box-tool" data-widget="collapse">
                    <i class="fa fa-plus"></i>
                </button>
            </div>
        </div>
        <div class="box-body">
            <h4>{{ Lang::get('messages.service_charges.title_ticketing') }}</h4>
            <div class="row">
                <div class="col-12 col-md-12">
                    <div class="form-group">
                        <label for="matchEvents"> {{ Lang::get('messages.service_charges.tag3-1')}} {{ Lang::get('messages.optional') }}</label>
                        <select class="form-control select2 col-12 col-md-12" multiple="multiple" data-placeholder="{{ Lang::get('messages.screen_products_tag32') }}" name="matchEvents">
                            @foreach ($matchEvents as $matchEvent)
                            <option value="{{ $matchEvent->id }}" {{ isset($assignedMatchEvents) && in_array($matchEvent->id, $assignedMatchEvents) ? 'selected' : '' }}>
                                {{ $matchEvent->name }} @if($matchEvent->event_start) - {{ $matchEvent->event_start }} @endif
                            </option>
                            @endforeach
                        </select>
                    </div>
                </div>
                <div class="col-12 col-md-12">
                    <div class="form-group">
                        <label for="zones"> {{ Lang::get('messages.service_charges.tag3-2')}} {{ Lang::get('messages.optional') }}</label>
                        <select class="form-control select2 col-12 col-md-12" multiple="multiple" data-placeholder="{{ Lang::get('messages.screen_products_tag32') }}" name="zones">
                            @foreach ($tribunes as $tribune)
                            <option value="{{ $tribune->id }}" {{ isset($assignedZones) && in_array($tribune->id, $assignedZones) ? 'selected' : '' }}>
                                {{ $tribune->name }} @if($tribune->zone) ({{ $tribune->zone->name }}) @endif
                            </option>
                            @endforeach
                        </select>
                    </div>
                </div>
                <div class="col-12 col-md-12">
                    <div class="form-group">
                        <label for="ticketTypes"> {{ Lang::get('messages.service_charges.ticket_types')}} {{ Lang::get('messages.optional') }}</label>
                        <select class="form-control select2 col-12 col-md-12" multiple="multiple" data-placeholder="{{ Lang::get('messages.screen_products_tag32') }}" name="ticketTypes">
                            @foreach ($ticketTypes as $ticketType)
                            <option value="{{ $ticketType->id }}" {{ isset($assignedTicketTypes) && in_array($ticketType->id, $assignedTicketTypes) ? 'selected' : '' }}>
                                {{ $ticketType->name }}
                            </option>
                            @endforeach
                        </select>
                    </div>
                </div>
            </div>
            <h4>{{ Lang::get('messages.service_charges.title_academy') }}</h4>
            <div class="row">
                <div class="col-12 col-md-12">
                    <div class="form-group">
                        <label for="paymentTypes"> {{ Lang::get('messages.service_charges.tag3-3')}} {{ Lang::get('messages.optional') }}</label>
                        <select class="form-control select2 col-12 col-md-12" multiple="multiple" data-placeholder="{{ Lang::get('messages.screen_products_tag32') }}" name="paymentTypes">
                            @foreach ($paymentTypes as $paymentType)
                            <option value="{{ $paymentType->value }}" {{ isset($assignedPaymentTypes) && in_array($paymentType->value, $assignedPaymentTypes) ? 'selected' : '' }}>
                                {{ $paymentType->name }}
                            </option>
                            @endforeach
                        </select>
                    </div>
                </div>
                <div class="col-12 col-md-12">
                    <div class="form-group">
                        <label for="categories"> {{ Lang::get('messages.service_charges.tag3-4')}} {{ Lang::get('messages.optional') }}</label>
                        <select class="form-control select2 col-12 col-md-12" multiple="multiple" data-placeholder="{{ Lang::get('messages.screen_products_tag32') }}" name="categories">
                            @foreach ($categories as $category)
                            <option value="{{ $category->id }}" {{ isset($assignedCategories) && in_array($category->id, $assignedCategories) ? 'selected' : '' }}>
                                {{ $category->name }} @if($category->academy_location) ({{ $category->academy_location->name }}) @endif
                            </option>
                            @endforeach
                        </select>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>
<br>
<script src="{{ asset('js/jQuery/jquery-2.2.3.min.js') }}"></script>
<script src="{{ asset('js/crud.js') . '?v=' . time() }}"></script>
<script src="{{ asset('js/service_charges.js') . '?v=' . time() }}"></script>
<script src="{{ asset('js/bootstrap/js/bootstrap.min.js') }}"></script>
<script type="text/javascript">
    $(document).ready(function() {
        $('.select2').select2();
    });
</script>
<script>
    document.addEventListener("DOMContentLoaded", function() {
        const priceInput = document.getElementById("priceInput");
        const radios = document.querySelectorAll("input[name='price_type']");

        function updatePriceField(type) {
            // primero limpiar clases de ícono
            priceInput.classList.remove("icon-percent", "icon-value");

            if (type === "percent") {
                priceInput.setAttribute("max", "100");
                priceInput.setAttribute("min", "0");
                priceInput.setAttribute("step", "0.01");
                priceInput.classList.add("icon-percent"); // aplicar ícono %
                if (parseFloat(priceInput.value) > 100) priceInput.value = 100;
            } else {
                priceInput.removeAttribute("max");
                priceInput.setAttribute("step", "0.01");
                priceInput.classList.add("icon-value"); // aplicar ícono $
            }
        }

        // Inicializar según valor precargado
        const selectedType = document.querySelector("input[name='price_type']:checked");
        if (selectedType) updatePriceField(selectedType.value);

        // Cambiar al seleccionar otro radio
        radios.forEach(radio => {
            radio.addEventListener("change", function() {
                updatePriceField(this.value);
            });
        });
    });
</script>