{% extends '@Stock/Layout/parametrage_global_layout.twig' %}

{% block body_parametrage %}
    <form name="parametrageNumerotationForm" id="parametrageNumerotationForm" action="{{ path('Stock.Numerotation.numerotation') }}" method="POST">
        <h2 class="mb-base">
            {{ 'Numérotation' | trad }}
            <button type="submit" class="principal button last button_right">
                {{ 'Enregistrer' | trad }}
            </button>
        </h2>
        <div class="bg_form border_form pr-base pl-base">
            {% set titles = {
                'DS': 'Demande de service' | trad,
                'BE': 'Bon d\'entrée' | trad,
                'BS': 'Bon de sortie' | trad,
                'BT': 'Bon de transfert' | trad,
                'PR': 'Proposition de réapprovisionnement' | trad,
                'I': 'Inventaire' | trad,
                'MV': 'Mouvement' | trad,
            } %}

            {% set key = 0 %}
            {% for typeEntete, parametreNumerotation in parametresNumerotation %}
                {% set title = titles[typeEntete] %}
                {% set isSectorise = parametres['SECTNUM' ~ typeEntete].LIB01PARV == 'O' %}

                <fieldset class="scheduler-border">
                    <legend class="scheduler-border">{{ title }}</legend>
                    <div class="colonne2">
                        {% if typeEntete != 'MV' %}
                            <div class="row">
                                {{ inputAdvance('SELECT', {
                                    'titre' : 'Type de numérotation' | trad,
                                    'name' : 'SPARNUM[' ~ typeEntete ~ '][TYPE_NUM]',
                                    'value' : isSectorise ? '': parametreNumerotation.TYPE_NUM,
                                    'listeValue' : listeTypeNums,
                                    'option': isSectorise ? 'readonly': ''
                                }) }}
                            </div>
                        {% endif %}
                        <div class="row">
                            {{ inputAdvance('TEXT', {
                                'value': isSectorise ? '-': parametreNumerotation.NO_DEP,
                                'titre' : 'Numéro de départ' | trad,
                                'name' : 'SPARNUM[' ~ typeEntete ~ '][NO_DEP]',
                                'pathValidator': path('Ajax.validator.integer'),
                                'paramsValidator': "{'sizeMin' : '0', 'controleByValue': true }",
                                'option': isSectorise ? 'readonly': '',
                                'myFuncValidator': 'setProchNo',
                                'paramFuncValidator': '["' ~ typeEntete ~ '"]',
                                'addClass': 'text-right'
                            }) }}
                        </div>
                    </div>
                    <div class="colonne2 last">
                        {% if typeEntete != 'MV' %}
                            <div class="row">
                                {{ inputAdvance('SWITCH', {
                                    'titre' : 'Réutilisation des trous' | trad,
                                    'name' : 'SPARNUM[' ~ typeEntete ~ '][RECH_TROU]',
                                    'value' : parametreNumerotation.RECH_TROU,
                                    'option': isSectorise ? 'readonly': ''
                                }) }}
                            </div>
                        {% endif %}
                        <div class="row">
                            {{ inputAdvance('TEXT', {
                                'value': isSectorise ? '-': parametreNumerotation.PROCH_NO,
                                'titre' : 'Prochain numéro' | trad,
                                'name' : 'SPARNUM[' ~ typeEntete ~ '][PROCH_NO]',
                                'pathValidator': path('Ajax.validator.integer'),
                                'paramsValidator': "{'sizeMin' : parseInt($('#input_'+CSS.escape('SPARNUM[" ~ typeEntete ~ "][NO_DEP]')).val()) + 1, 'controleByValue': true, sizeMax: 1000000 }",
                                'option': isSectorise ? 'readonly': '',
                                'addClass': 'text-right'
                            }) }}
                            <input type="hidden" name="SPARNUM[{{ typeEntete }}][TYPE_ENT]" value="{{ parametreNumerotation.TYPE_ENT }}"/>
                            <input type="hidden" name="SPARNUM[{{ typeEntete }}][CODE_STE]" value="{{ parametreNumerotation.CODE_STE }}"/>
                        </div>
                        {% if typeEntete != 'MV' %}
                            <div class="row mb-0">
                                <a
                                        data-typeEntete="{{ typeEntete }}"
                                        id="par-societe-{{ typeEntete }}"
                                        href="{{ path('Stock.Numerotation.sectorisationForm', { typeEntete: typeEntete }) }}"
                                        class="button secondaire button_right mr-0 {% if isSectorise %}d-block{% else %} d-none{% endif %} par-societe"
                                >
                                    {{ 'Par société' | trad }}
                                </a>
                                <a
                                        data-typeEntete="{{ typeEntete }}"
                                        id="desectoriser-{{ typeEntete }}"
                                        href="{{ path('Stock.Numerotation.desectoriser', { typeEntete: typeEntete }) }}"
                                        class="button principal button_right {% if isSectorise %}d-block{% else %} d-none{% endif %} desectoriser"
                                >
                                    {{ 'Désectoriser' | trad }}
                                </a>
                                <a
                                        data-typeEntete="{{ typeEntete }}"
                                        id="sectoriser-{{ typeEntete }}"
                                        href="{{ path('Stock.Numerotation.sectoriser', { typeEntete: typeEntete }) }}"
                                        class="button secondaire button_right mr-0 {% if isSectorise %}d-none{% else %} d-block{% endif %} sectoriser"
                                >
                                    {{ 'Sectoriser' | trad }}
                                </a>
                            </div>
                        {% endif %}
                    </div>
                </fieldset>
                {% set key = key + 1 %}
            {% endfor %}
        </div>
    </form>
    <script type="application/javascript" src="{{ baseUrl('js/Modules/Stock/postAjaxForm.js') }}"></script>
    <script type="application/javascript">
        $('#parametrageNumerotationForm').on('submit', (event) => {
            event.preventDefault();

            activeLoader();
            const form = $('#parametrageNumerotationForm');

            submitForm(form, form.serializeArray());
        });

        $('.sectoriser').each((key, anchor) => {
            $(anchor).on('click', (event) => {
                event.preventDefault();
                event.stopPropagation();
                event.stopImmediatePropagation();

                activeLoader();

                $.ajax({
                    type: "GET",
                    url: $(anchor).attr('href'),
                    success: () => {
                        window.location.reload();
                    },
                    error: (error) => {
                        desactiveLoader();
                        alert(error.responseJSON.message);
                    }
                });
            })
        });

        $('.desectoriser').each((key, anchor) => {
            $(anchor).on('click', (event) => {
                event.preventDefault();
                event.stopPropagation();
                event.stopImmediatePropagation();

                activeLoader();

                $.ajax({
                    type: "GET",
                    url: $(anchor).attr('href'),
                    success: () => {
                        window.location.reload();
                    },
                    error: (error) => {
                        alert(error.responseJSON.message);
                        desactiveLoader();
                    }
                });
            })
        })

        function setProchNo (typeEntete) {
            const value = $('#input_'+CSS.escape('SPARNUM['+typeEntete+'][NO_DEP]')).val();

            $('#input_'+CSS.escape('SPARNUM['+typeEntete+'][PROCH_NO]')).val(parseInt(value) + 1);
        }
    </script>
{% endblock %}