{% extends 'layout.twig' %}

{% block body %}
    <div class="contenu clearfix">
        <h1>{{ 'Bons d\'Entrée' | trad }}</h1>
        {{ ariane() }}
        <h3 class="mb-base">
            {{ 'Création de bon d\'entrée' | trad }}

            <button type="submit" class="principal button button_right last" form="bonEntreeForm">
                {{ 'Créer' | trad }}
            </button>
            <a href="{{ path('Stock.BonEntree.gestion') }}" class="secondaire button">
                {{ 'Annuler' | trad }}
            </a>
        </h3>

        <div class="tab-content" id="tab-content">
            <form method="post" name="sbe_ente" id="bonEntreeForm" action="{{ path('Stock.BonEntree.nouveau') }}">
                <div class="tab-content">
                    <div class="tab-pane active in clearfix padding_form bg_form border_form">
                        <div class="colonne2">
                            <div class="row">
                                {{ inputAdvance('DATE', {
                                    'titre' : 'Date de création' | trad,
                                    'name'  : 'DTE_CREAT',
                                    'value' : post.DTE_CREAT ? post.DTE_CREAT: dateCreation,
                                    'pathValidator' : path('Ajax.validator.date'),
                                    'obligatoire': true,
                                    'pathValidator': path('Ajax.validator.date'),
                                    'paramsValidator': "{'dateMin' : '"~ dateJour ~"', 'null': false}",
                                }) }}
                            </div>
                            <div class="row">
                                {{ inputAdvance('ZOOMADVANCE', {
                                    'titre': 'Provenance' | trad,
                                    'name' : 'PROV',
                                    'pahtZoom' : path('Ajax.liste.tiers'),
                                    'paramZoom' : "{'FiltreValid' : true}",
                                    'entity' : 'SSiteSto',
                                    'titleZoom' : 'Liste des tiers' | trad,
                                    'pathConvert' : path('Ajax.outil.convertLibelle'),
                                    'convertLibelle' : 'convertLibelleGlobal',
                                    'pathValidator' : path('Ajax.validator.zoom'),
                                    'paramsValidator' : "{'entity' : 'Tiers','nomChamp' : 'Provenance', 'null' : true}",
                                }) }}
                            </div>
                            <div class="row">
                                {{ inputAdvance('ZOOMADVANCE', {
                                    'titre': 'Site' | trad,
                                    'name' : 'SITE',
                                    'value' : site,
                                    'pahtZoom' : path('Ajax.liste.siteStockAccessible'),
                                    'paramZoom' : "{'opened_only': true }",
                                    'entity' : 'SSiteSto',
                                    'titleZoom' : 'Liste des sites de stockage' | trad,
                                    'pathConvert' : path('Ajax.outil.convertLibelle'),
                                    'convertLibelle' : 'convertLibelleGlobal',
                                    'obligatoire': true,
                                    'pathValidator' : path('Ajax.validator.zoom'),
                                    'paramsValidator' : "{'entity' : 'SSiteSto', 'nomChamp' : '"~ 'Site' | trad ~"', 'null' : false}",
                                    'myFuncValidator' : 'isNoEnteteModifiable',
                                    'paramFuncValidator' : '["BE", "input_NO_BE", "input_SITE", "' ~ path('Stock.Numerotation.isNoEnteteModifiable') ~ '"]',
                                }) }}
                            </div>
                            <div class="row d-none" id="reappro">
                                {{ inputAdvance('ZOOMADVANCE', {
                                    'titre': 'Proposition de réappro N°' | trad,
                                    'name' : 'BE_NOPR',
                                    'pahtZoom' : path('Ajax.liste.propositionsReappro'),
                                    'paramZoom' : "{'siteInputName' : 'SITE', 'en_attente_de_traitement': true}",
                                    'entity' : 'SdrEnte',
                                    'titleZoom' : 'Liste des propositions de réapprovisionnement en attente de traitement' | trad,
                                    'pathValidator' : path('Ajax.validator.propositionsReapproEnAttenteDeTraitement'),
                                    'paramsValidator' : "{'null' : false }"
                                }) }}
                            </div>
                        </div>
                        <div class="colonne2 last">
                            <div class="row">
                                {{ inputAdvance('SELECT', {
                                    'titre' : 'Type' | trad,
                                    'name' : 'TYPE_BE',
                                    'value' : defaultTypeBe,
                                    'listeValue' : listeFiltreType,
                                    'obligatoire': true,
                                }) }}
                            </div>
                            <div class="row">
                                {{ inputAdvance('ZOOMADVANCE', {
                                    'titre': 'Magasinier' | trad,
                                    'name' : 'MAG',
                                    'value' : magasinier,
                                    'pahtZoom' : path('Ajax.liste.magasiniers'),
                                    'entity' : 'HASTUTIL',
                                    'titleZoom' : 'Liste des magasiniers' | trad,
                                    'pathConvert' : path('Ajax.outil.convertLibelle'),
                                    'convertLibelle' : 'convertLibelleGlobal',
                                    'pathValidator' : path('Ajax.validator.zoom'),
                                    'paramsValidator' : "{'entity' : 'HASTUTIL','nomChamp' : '"~ 'Magasinier' | trad ~"', 'null' : false}",
                                    'obligatoire': true
                                }) }}
                            </div>
                            <div class="row">
                                {{ inputAdvance('TEXT', {
                                    'titre' : 'Origine' | trad,
                                    'name' : 'ORIGINE',
                                    'pathValidator': path('Ajax.validator.isStringWithContent'),
                                    'paramsValidator': "{'sizeMax' : 30, 'sizeMin': 0}",
                                }) }}
                            </div>
                            <div class="row">
                                {{ inputAdvance('TEXT', {
                                    'titre': 'N° de bon d\'entrée' | trad,
                                    'name': 'NO_BE',
                                    'value': post.NO_BE,
                                    'option': not is_no_modifiable(parametreNumerotation) ? 'disabled': '',
                                    'obligatoire': parametreNumerotation.TYPE_NUM == 'M',
                                    'pathValidator' : path('Ajax.validator.noEntete'),
                                    'paramsValidator' : "{'typeEntete': 'BE', 'entity': 'BonEntree', 'enteLabel': 'bon d entrée', 'site': $('#input_SITE').val()}",
                                    'myFuncValidator' : 'reserverNoEntete',
                                    'paramFuncValidator' : '["BE", "input_NO_BE", "input_SITE", "' ~ path('Stock.Numerotation.noReservation') ~ '"]',
                                }) }}
                            </div>
                        </div>
                    </div>
                </div>
            </form>
        </div>
    </div>
    <script type="application/javascript" src="{{ baseUrl('js/Modules/Stock/postAjaxForm.js') }}"></script>
    <script type="application/javascript" src="{{ baseUrl('js/Modules/Stock/enteForm.js') }}"></script>
    <script type="application/javascript">
        $('#bonEntreeForm').on('submit', (event) => {
            event.preventDefault();

            const form = $('#bonEntreeForm');
            activeLoader();
            submitForm(form, form.serializeArray());
        });

        $('#input_TYPE_BE').on('change', (event) => {
            const reapproDiv = $('#reappro');
            if ($(event.target).val() === 'E') {
                reapproDiv.removeClass('d-none');
                reapproDiv.addClass('d-block');
            } else {
                reapproDiv.removeClass('d-block');
                reapproDiv.addClass('d-none');
                $('#text_BE_NOPR').val("");
                $('#input_BE_NOPR').val("");
            }
        });

        $('#input_MAG').on('change', (event) => {
            if ($('#input_BE_NOPR').val() !== "") {
                return;
            }

            $.ajax({
                type: "POST",
                url: '{{ path('Stock.Magasinier.getSiteFromMagasinier') }}',
                data: { code: $(event.target).val() },
                success: (data) => {
                    $('#input_SITE').val(data[0].SITE);
                    $('#text_SITE').val(data[0].DESIGN + ' (' + data[0].SITE + ')');
                },
            })
        });
    </script>
{% endblock %}