{% extends 'layout.twig' %}

{% block body %}
<div class="contenu clearfix" id="reporting">
    <h1>{{ 
        (action == 'creation') ? 
            'Création reporting performance' | trad : 
            'Modification reporting performance' | trad
    }}</h1>

    {{ ariane() }}

    <div id="detail_fournisseur" class="clearfix titre_div">
        <h2>{{ 'Fournisseur' | trad }} : {{ libelle_fournisseur??libelle }} ({{ code_fournisseur??id }})</h2>

        {{ arianeSub() }}

        <div id="reporting" class="tab-pane fade in active clearfix">
            <form method="post" 
                class="bg_form padding-form border_form p-base" 
                name="creationReportingPerformance" id="creationReportingPerformance"
                action="{{ urlValidForm }}"
                onsubmit="return ajaxSubmit(event)"
                data-onsuccess="formSysuReportPerfSuccess"
            >
                <div class="row">
                    <div class="colonne2">
                        {{ inputAdvance('ZOOMADVANCE', {
                            titre: 'Période' | trad,
                            name: 'CODE_PERIODE',
                            pahtZoom: path('Ajax.liste.periodes'),
                            pathConvert: path('Ajax.outil.convertLibelle'),
                            convertLibelle: 'convertLibelleGlobal',
                            pathValidator: path('Ajax.validator.zoom'),
                            paramsValidator: "{'entity' : 'Periodes','nomChamp' : 'Période', 'null' : false}",
                            entity: 'Periodes',
                            titleZoom: 'Liste des période' | trad,
                            value: post.CODE_PERIODE ?? report.CODE_PERIODE,
                            obligatoire: true,

                            myFunction: 'updateChiffAffPrev',
                        }) }}
                    </div>
                    <div class="colonne2 last">
                        {{ post.CODE_SOUS_FAMILLE }}
                            {{ inputAdvance('ZOOMADVANCE', {
                                'titre': 'Sous famille' | trad,
                                'name' : 'CODE_SOUS_FAMILLE',
                                'pahtZoom' : path('Ajax.liste.sousFamille'),
                                'pathConvert' : path('Ajax.outil.convertLibelle'),
                                'convertLibelle' : 'convertLibelleGlobal',
                                'pathValidator' : path('Ajax.validator.zoom'),
                                'paramsValidator' : "{'entity' : 'SousFamille','nomChamp' : 'Sous Famille', 'null' : false}",
                                'entity' : 'SousFamille',
                                'titleZoom' : 'Liste des sous-familles',
                                'value' : post.CODE_SOUS_FAMILLE ?? report.CODE_SOUS_FAMILLE,
                                'obligatoire': true,
                                
                                myFunction: 'updateChiffAffPrev',
                            }) }}
                    </div>
                </div>
                <div class="row">
                    <div class="colonne2">
                        <div class="row">
                            {{ inputAdvance('DEVISE', {
                                'titre': 'CA prévisionnel' | trad,
                                'name': 'MONTANT_CA_PREVI',
                                'pathValidator': path('Ajax.validator.float'),
                                paramsValidator: {
                                    nomChamp: 'CA prévisionnel' | trad,
                                    format: getConst('formatMontant')
                                },
                                'value': (post.MONTANT_CA_PREVI ?? report.MONTANT_CA_PREVI)|prix,
                                option: not hasDroitFouAdmn ? 'disabled',
                            }) }}
                        </div>
                    </div>
                    <div class="colonne2 last">
                        <div class="row">
                            {{ inputAdvance('TEXT', {
                                titre: 'CA réalisé N-1' | trad,
                                name: 'chiffAffPrev',
                                inputAttr: {disabled: ''}
                            }) }}
                        </div>
                    </div>
                </div>
                <div class="row">
                    <div class="colonne2">
                        <div class="row">
                            {{ inputAdvance('DEVISE', {
                                'titre': 'Objectif négo en EUR' | trad,
                                'name': 'OBJECTIF_NE',
                                'pathValidator': path('Ajax.validator.float'),
                                'paramsValidator': "{'nomChamp' : '"~ 'Montant TVA' | trad ~"', 'format' : "~getConst('formatMontant')~"}",
                                'value': (post.OBJECTIF_NE ?? report.OBJECTIF_NE)|prix,
                                option: not hasDroitFouAdmn ? 'disabled',
                            }) }}
                        </div>
                        <div class="row">
                            {{ inputAdvance('DEVISE', {
                                'titre': 'Résultat de négo en EUR' | trad,
                                'name': 'RESULT_NE',
                                'pathValidator': path('Ajax.validator.float'),
                                'paramsValidator': "{'nomChamp' : '"~ 'Montant TVA' | trad ~"', 'format' : "~getConst('formatMontant')~"}",
                                'value': (post.RESULT_NE ?? report.RESULT_NE)|prix
                            }) }}
                        </div>
                        <div class="row">
                            {{ inputAdvance('DEVISE', {
                                'titre': 'Gain additionnel promotionnel' | trad,
                                'name': 'GAIN_PROMOTIONNEL',
                                'value': (post.GAIN_PROMOTIONNEL ?? report.GAIN_PROMOTIONNEL)|prix,
                                'pathValidator': path('Ajax.validator.float'),
                                'paramsValidator': "{'nomChamp' : '"~ 'Gain additionnel promotionnel' | trad ~"', 'format' : "~getConst('formatMontant')~"}",
                            }) }}
                        </div>
                    </div>
                    <div class="colonne2 last">
                        <div class="row">
                            {{ inputAdvance('DEVISE', {
                                'titre': 'Objectif négo en %' | trad,
                                'name': 'OBJECTIF_NE_PERCENT',
                                'value': (post.OBJECTIF_NE_PERCENT ?? report.OBJECTIF_NE_PERCENT) | prix,
                                'pathValidator': path('Ajax.validator.float'),
                                'paramsValidator': "{'nomChamp' : '"~ 'Objectif négo' | trad ~"', 'format' : "~getConst('formatMontant')~"}",
                                'DEVISE': '%',
                                option: not hasDroitFouAdmn ? 'disabled',
                            }) }}
                        </div>
                        <div class="row">
                            {{ inputAdvance('DEVISE', {
                                'titre': 'Résultat de négo en %' | trad,
                                'name': 'RESULT_NE_PERCENT',
                                'value': (post.RESULT_NE_PERCENT ?? report.RESULT_NE_PERCENT) |prix,
                                'pathValidator': path('Ajax.validator.float'),
                                'paramsValidator': "{'nomChamp' : '"~ 'Résultat de négo' | trad ~"', 'format' : "~getConst('formatMontant')~"}",
                                'DEVISE': '%'
                            }) }}
                        </div>
                        <div class="row">
                            {{ inputAdvance('DEVISE', {
                                'titre': 'Gain exceptionnel' | trad,
                                'name': 'GAIN_EXCEPTIONNEL',
                                'value':  (post.GAIN_EXCEPTIONNEL ?? report.GAIN_EXCEPTIONNEL)|prix,
                                'pathValidator': path('Ajax.validator.float'),
                                'paramsValidator': "{'nomChamp' : '"~ 'Gain exceptionnel' | trad ~"', 'format' : "~getConst('formatMontant')~"}",
                            }) }}
                        </div>
                    </div>
                </div>
                <div class="row">
                    <div class="colonne2">
                        {{ inputAdvance('DEVISE', {
                            'titre': 'Taux d\'adhésion' | trad,
                            'name': 'TAUX_ADHESION',
                            'value': (post.TAUX_ADHESION ?? report.TAUX_ADHESION) |prix,
                            'pathValidator': path('Ajax.validator.float'),
                            'paramsValidator': "{'nomChamp' : '"~ 'Taux d\'adhésion' | trad ~"', 'format' : "~getConst('formatMontant')~"}",
                            'DEVISE': '%',
                        }) }}
                    </div>
                    <div class="colonne2 last">
                        {{ inputAdvance('TEXTAREA', {
                            'titre': 'Commentaire taux d\'adhésion' | trad,
                            'name': 'COM_TAUX_ADHESION',
                            'value': post.COM_TAUX_ADHESION ?? (report.COM_TAUX_ADHESION == '0') ? '' : report.COM_TAUX_ADHESION,
                            'pathValidator': path('Ajax.validator.isStringAvecEspace'),
                            'paramsValidator': "{'sizeMin' : '0', 'sizeMax' : '3000'}",
                        }) }}
                    </div>
                </div>
                <div class="row">
                    <div class="colonne2">
                        {{ inputAdvance('DEVISE', {
                            'titre': 'Hausse demandée en EUR' | trad,
                            'name': 'HAUSSE_ASKED',
                            'value': (post.HAUSSE_ASKED ?? report.HAUSSE_ASKED)|prix,
                            'pathValidator': path('Ajax.validator.float'),
                            'paramsValidator': "{'nomChamp' : '"~ 'Hausse demandée en EUR' | trad ~"', 'format' : "~getConst('formatMontant')~"}",
                        }) }}
                    </div>
                    <div class="colonne2 last">
                        {{ inputAdvance('DEVISE', {
                            'titre': 'Hausse validée en EUR' | trad,
                            'name': 'HAUSSE_VALIDATED',
                            'value': (post.HAUSSE_VALIDATED ?? report.HAUSSE_VALIDATED)|prix,
                            'pathValidator': path('Ajax.validator.float'),
                            'paramsValidator': "{'nomChamp' : '"~ 'Hausse validée en EUR' | trad ~"', 'format' : "~getConst('formatMontant')~"}",
                        }) }}
                    </div>
                </div>
                <div class="row">
                    <div class="colonne2">
                        {{ inputAdvance('DATE', {
                            'titre': 'Date d\'application' | trad,
                            'name': 'DATE_APPLICATION',
                            'value': post.DATE_APPLICATION ?? report.DATE_APPLICATION | dateTrad,
                            'pathValidator' : path('Ajax.validator.date'),
                            'paramsValidator' : '{}',
                        }) }}
                    </div>
                    <div class="colonne2 last">
                        {{ inputAdvance('TEXTAREA', {
                            'titre': 'Détail des hausses' | trad,
                            'name': 'DETAIL_HAUSSE',
                            'value': post.DETAIL_HAUSSE ?? (report.DETAIL_HAUSSE == '0') ? '' : report.DETAIL_HAUSSE,
                            'pathValidator': path('Ajax.validator.isStringAvecEspace'),
                            'paramsValidator': "{'sizeMin' : '0', 'sizeMax' : '3000'}",
                        }) }}
                    </div>
                </div>
                <div class="row">
                    <div class="colonne2">
                        {{ inputAdvance('SELECT', {
                            'titre': 'Canal' | trad,
                            'name': 'CODE_CANAL',
                            'value': post.CODE_CANAL ?? report.CODE_CANAL,
                            'listeValue': canalList,
                            'obligatoire': true,
                        }) }}
                    </div>
                    <div class="colonne2 last">
                        {{ inputAdvance('TEXTAREA', {
                            titre: 'Mouvement dossiers (date + objet)' | trad,
                            name: 'MOV_DOSS',
                            value: post.MOV_DOSS ?? report.MOV_DOSS,
                            pathValidator: path('Ajax.validator.isStringAvecEspace'),
                            paramsValidator: {sizeMin: 0, sizeMax: 3000},
                        }) }}
                    </div>
                </div>

                <div class="modal-footer">
                    <a href="{{ path('Specifique155.reportingPerformance.index', {id:id}) }}" class="button secondaire">{{ 'Annuler' | trad }}</a>
                    <button class="button principal" id="valider">{{ 'Enregistrer' | trad }}</button>
                </div>
            </form>
        </div>
    </div>
</div>

<script>
function updateChiffAffPrev() {
    let formData = new FormData(document.getElementById('creationReportingPerformance'));

    $.ajax({
        url: {{ path(
            'Specifique155.reportingPerformance.chiffAffUpdate', {id: id}
        ) | json }},
        type: 'POST',
        data: formData,
        contentType: false,
        processData: false,
        success: function (response, status, xhr) {
            if (xhr.getResponseHeader('Content-Type') == 'application/json') {
                response = JSON.parse(xhr.responseText);
            }
            document.querySelector('[name=chiffAffPrev]').value = response.chiffAffPrev;
        },
    });
}
updateChiffAffPrev();

window.action.formSysuReportPerfSuccess = (data) => {
    redirectJSWithPost(data.path, data.post);
};
</script>
{% endblock %}