{% embed '@Stock/Inventaire/Composant/_inventaire.twig' %}
    {% block title %}
        {{ title }}
        {% if noButtons is not defined %}
            <button type="submit" class="principal button last button_right" id="sinventa_create">
                {{ 'Enregistrer' | trad }}
            </button>
            {% if canDevaliderCriteres %}
                {{ Button(
                    'Dévalider les critères' | trad,
                    false,
                    '',
                    'popupConfirmSimple(
                    \'' ~ strBuild('Dévalider les critères de l\'inventaire N°@1@' | trad, [inventaire.NO_INV]) ~ '\',
                    \'' ~ strBuild('Etes-vous sûr de vouloir dévalider les critères de l\'inventaire N°@1@ ?' | trad, [inventaire.NO_INV]) ~ '\',
                    \'' ~ path('Stock.Inventaire.devaliderCriteres', { noInv: inventaire.NO_INV }) ~'\',
                    \'{}\',
                    () => { window.location.href = \'' ~ path('Stock.Inventaire.gestion') ~ '\' }
                    )',
                    ''
                ) }}
            {% endif %}
            <a href="{{ path('Stock.Inventaire.gestion') }}" class="secondaire button button_right">
                {{  'Annuler' | trad }}
            </a>
        {% endif %}
    {% endblock %}

    {% block details %}
        <div class="clearfix">
            <div class="colonne2">
                <div class="row">
                    {{ inputAdvance('ZOOMADVANCE', {
                        'titre': 'Société' | trad,
                        'name' : namePrefix ~ 'SINVENTA[CODE_STE]',
                        'value' : inventaire ? inventaire.CODE_STE: socUsrProfil,
                        'pahtZoom' : path('Ajax.liste.societe'),
                        'entity' : 'Societe',
                        'titleZoom' : 'Liste des sociétés' | trad,
                        'pathConvert' : path('Ajax.outil.convertLibelle'),
                        'convertLibelle' : 'convertLibelleGlobal',
                        'pathValidator' : path('Ajax.validator.zoom'),
                        'obligatoire': true,
                        'paramsValidator' : "{'entity' : 'Societe','nomChamp' : '"~ 'Société' | trad ~"', 'null' : false}",
                        'option': not editable ? 'readonly': ''
                    }) }}
                </div>
                <div class="row">
                    {{ inputAdvance('SELECT', {
                        'titre' : 'Ordre de tri liste et saisie des résultats' | trad,
                        'name' : namePrefix ~ 'SINVENTA[ORD_TRI]',
                        'value' : inventaire ? inventaire.ORD_TRI: '',
                        'listeValue' : listeChoixOrdTri,
                        'obligatoire': true,
                        'option': not editable ? 'readonly': ''
                    }) }}
                </div>
                <div class="row">
                    {{ inputAdvance('DATE', {
                        'titre' : 'Exclure automatiquement les Dates de Fermeture inférieures à' | trad,
                        'name'  : namePrefix ~ 'SINVENTA[DATEFERM]',
                        'value' : (inventaire ? inventaire.DATEFERM: dateJour) | dateTrad,
                        'pathValidator': path('Ajax.validator.date'),
                        'paramsValidator': "{'dateMin' : '"~ dateJour ~"', 'null': false}",
                        'option': not inventaire or inventaire.EXCL_ART == '46' ? 'readonly': ''
                    }) }}
                </div>
                <div class="row">
                    {{ inputAdvance('TEXT', {
                        'titre': 'Désignation' | trad,
                        'name': namePrefix ~ 'SINVENTA[DESIGN]',
                        'value': inventaire ? inventaire.DESIGN: '',
                        'pathValidator' : path('Ajax.validator.isStringAvecEspace'),
                        'paramsValidator' : "{'sizeMin' : '0', 'sizeMax' : '255'}",
                        'option': not editable ? 'readonly': ''
                    }) }}
                </div>
            </div>
            <div class="colonne2 last">
                <div class="row">
                    {{ inputAdvance('ZOOMADVANCE', {
                        'titre': 'Magasinier' | trad,
                        'name' : namePrefix ~ 'SINVENTA[MAG]',
                        'value' : inventaire ? inventaire.MAG: usrLogin,
                        '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,
                        'option': not editable ? 'readonly': ''
                    }) }}
                </div>
                <div class="row">
                    {{ inputAdvance('SWITCH', {
                        'titre' : 'Exclure automatiquement les articles fermés ?' | trad,
                        'name' : namePrefix ~ 'SINVENTA[EXCL_ART]',
                        'value' : inventaire ? inventaire.EXCL_ART: false,
                        'option': not editable ? 'readonly': ''
                    }) }}
                </div>
                <div class="row">
                    {{ inputAdvance('TEXT', {
                        'titre': 'N° d\'inventaire' | trad,
                        'name': namePrefix ~ 'SINVENTA[NO_INV]',
                        'value': inventaire ? inventaire.NO_INV: '',
                        'option': not is_no_modifiable(parametreNumerotation) or not editable ? 'disabled': '',
                        'obligatoire': parametreNumerotation.TYPE_NUM == 'M',
                        'pathValidator' : path('Ajax.validator.noEntete'),
                        'paramsValidator' : "{'typeEntete': 'I', 'entity': 'Inventaire', 'enteLabel': 'inventaire', 'codeSte': $('#'+CSS.escape('input_SINVENTA[CODE_STE]')).val()}",
                        'myFuncValidator' : 'reserverNoEntete',
                        'paramFuncValidator' : '["I", "input_SINVENTA[NO_INV]", "input_SINVENTA[SITE]", "' ~ path('Stock.Numerotation.noReservation') ~ '"]',
                    }) }}
                </div>
                <div class="row">
                    {{ inputAdvance('TEXTAREA', {
                        'titre': 'Description' | trad,
                        'name': namePrefix ~ 'MEMOS[CONTMEMO]',
                        'value': memos ? memos.CONTMEMO: '',
                        'pathValidator' : path('Ajax.validator.isStringAvecEspace'),
                        'paramsValidator' : "{'sizeMin' : '0', 'sizeMax' : '3000'}",
                        'option': not editable ? 'readonly': ''
                    }) }}
                    <input type="hidden" name="{{ namePrefix }}MEMOS[NODEMEMO]" value="{{ inventaire.NM_DESCR }}">
                    <input type="hidden" name="{{ namePrefix }}SINVENTA[NM_DESCR]" value="{{ inventaire.NM_DESCR }}">
                </div>
            </div>
        </div>
    {% endblock %}

    {% block sites %}
        <div class="colonne3">
            {{ include('@Stock/Composant/_select_multiple.twig', {
                jsonValues: cahiersInventairesState ?? '[]',
                isPrincipal: true,
                name: namePrefix ~ 'SCINVENT',
                title: 'Sites de stockage' | trad,
                path: path('Stock.Inventaire.popupChoixSites'),
                popupTitle: 'Choix des sites de stockage' | trad,
                parameters: '{inputName: \'' ~ namePrefix ~ 'SCINVENT\', divInputs: \'input_' ~ namePrefix ~ 'SCINVENT\', editable: \'' ~ editable ~ '\' }'
            }) }}
        </div>
    {% endblock %}
{% endembed %}
<script type="application/javascript" src="{{ baseUrl('js/Modules/Stock/selectMultiple.js') }}"></script>
<script type="application/javascript" src="{{ baseUrl('js/Modules/Stock/inventaireForm.js') }}"></script>
<script>
    $('#' + CSS.escape('input_SINVENTA[DATEFERM]')).on('change', (event) => {
        const articlesInventoriesState = getState('input_SARTINVE').map((sartinve) => sartinve.ART);

        if (articlesInventoriesState.length) {
            updateArticlesInventories('{{ path('Stock.Inventaire.getArticlesInventoriesState') }}', {
                ARTICLE: articlesInventoriesState,
                SITE: getSiteParameters(),
                DATEFERM: $(event.target).val(),
                FAMILLE: getState('input_FAMILLE')
            });
        }
    });
</script>