{% extends 'layout.twig' %}

{% block body %}
	<script type="text/javascript" src="{{ baseUrl('js/Modules/DemandeAchat/ModificationGroupeeLignes.js') }}"></script>
	<div class="contenu clearfix titre_div"  id="DemandeAchat">
		<h1>
			{{ H1 }}
		</h1>
		{{ ariane() }}

		<h2>
			{{ titreH2 }}
			{# {{ bouton_modifDA(idDA) }} #}
		</h2>

    	<div class="tab-content">
        	<div id="modifImput" class="tab-pane fade in active">
				<form method="post" name="form_modifgroupee" id="form_modifgroupee">   
					<input type="hidden" id="submitForce" name="submitForce" value="0" /> 	

					{{ blockEnteteDA(idDA, mode) }}
					{{ navBar_modifDA(idDA, mode, MODULE, false, 'ModifGroupee', ongletFicheDA) }}
					
					{# <h3>
						{{ 'Modification groupée des lignes de la DA'  | trad  }}

						{{ Button('Appliquer' | trad, 1,'', "enregistrementModificationGroupee('"~path('DemandeAchat.ModifierGroupeeLigneDemandeAchat.enregistrementGroupee', {'type' : type, 'mode' : mode, 'idDA' : idDA, 'MODULE' : MODULE, 'SOUSMODULE' : SOUSMODULE})~"', {'pathError' : '"~ path('Ajax.Erreur.popupErreurValid') ~"', 'msgNoEnteteCheck' : '"~ 'Aucune valeur d\'entête n\'est sélectionné.' | trad |e('js')|raw ~"', 'msgNoLignCheck' : '"~ 'Veuillez sélectionner au moins une ligne.' | trad ~"'})", [], true, '', '',  'appliquer') }}
						{{ Button('Fermer' | trad, 0, pathAnnuler) }}
					</h3> #}
					<div class="boutonsRight">
						{{ Button('Appliquer' | trad, 1,'', "updateMass('"~ path('DemandeAchat.ModifierGroupeeLigneDemandeAchat.validationGroupee', {'type' : type, 'mode' : mode, 'idDA' : idDA, 'MODULE' : MODULE, 'SOUSMODULE' : SOUSMODULE})~"', {'pathError' : '"~ path('Ajax.Erreur.popupErreurValid') ~"', 'msgNoEnteteCheck' : '"~ 'Aucune valeur d\'entête n\'est sélectionnée.' | trad |e('js')|raw ~"', 'msgNoLignCheck' : '"~ 'Veuillez sélectionner au moins une ligne.' | trad ~"', 'msgValeurVide' : '"~ 'Les valeurs sélectionnées ne peuvent pas être vides.' | trad ~"', 'pathConfirmDateLiv' : '"~ path('DemandeAchat.ModifierGroupeeLigneDemandeAchat.popupConfirmationDateLivraison') ~"'})", [], true, '', '',  'appliquer') }}
						{{ Button('Fermer' | trad, 0, pathAnnuler) }}
					</div>
                    <script>
                        function updateMass(pathEnreg, param, confirmation)
                        {
                            desactivePopup();
                            if(!confirmation){
                                enteteModif = 0;
                                enteteVide = 0;
                                $('[id^=MODIF_]').each(function() {
                                    if($(this).val() == 1){
                                        enteteModif = 1;
                                        if($(this).val() == ''){
                                            enteteVide = 1;
                                        }
                                    }
                                });
                                if(enteteModif == 0){
                                    activePopupErreur(param['pathError'], '',  param['msgNoEnteteCheck']);
                                    return false;
                                }
                                if(enteteVide){
                                    activePopupErreur(param['pathError'], '',  param['msgValeurVide']);
                                    return false;
                                }
                                if($('#MODIF_CODE_FOU').val() == 1 && $('#MODIF_DTELIVSOU').val() == 0){
                                    // si fournisseur modifié mais pas date de livraison, demander si modification des dates de livraison
                                    activePopupErreur(param['pathConfirmDateLiv'], '',  '', '', {'pathEnreg' : pathEnreg});
                                    return false;				
                                }
                                if($('.checkone:checked').length == 0){
                                    activePopupErreur(param['pathError'], '',  param['msgNoLignCheck']);
                                    return false;
                                }
                            }

                            activeLoader();	
                            $.ajax({
                                dataType : 'html',
                                url: pathEnreg,
                                data: $('#form_modifgroupee').serialize(),
                                type: "POST",
                                success: function(result){
                                    desactiveLoader();
                                    refreshFonction('spanErreur', result);
                                    if($('#spanErreur').html()=='' || $('#spanErreur script').length == 2){
                                        refreshFonction('LignesDA', result);
                                        $('[id^=MODIF_]').val(0);
                                    }
                                    location.reload();
                                },
                                error: function (xhr) {
                                    let response = JSON.parse(xhr.responseText);
                                    if (response.type == "confirm") {
                                        desactiveLoader();
                                        activePopup(
                                            window.oxaproc.trad['Erreur validation'], 
                                            response.popupHtml,
                                            "modal_small"
                                        );
                                        document
                                            .querySelector("[data-popupwarning-cancel]")
                                            .addEventListener("click", function () {
                                                desactivePopup();
                                            });
                                        document
                                            .querySelector("[data-popupwarning-continue]")
                                            .addEventListener("click", function () {
                                                // Resend form with confirm
                                                validationLigne(path, idLigne, true);
                                                desactivePopup();
                                            });
                                        return;
                                    } else {
                                        desactiveLoader();
                                        activePopup(
                                            response.titre, // TODO : translate
                                            response.popupHtml,
                                            "modal_small"
                                        );
                                        document
                                            .querySelector("#btn_close")
                                            .addEventListener("click", function () {
                                                desactivePopup();
                                            });
                                    }
                                }
                            });
                        }
                    </script>
					<span id="spanErreur">
					{% if param.alerte !='' or param.avertissement != '' %}
					<script>activePopupErreur('{{ path('Ajax.Erreur.popupErreurAlerteEtAvertissement') }}', '', '', '', {'alerte': "{{param.alerte|raw}}", 'avertissement': "{{param.avertissement|raw}}", 'action': "{{ param.action }}"});</script>
					{% endif %}
					</span>	

					<div id="contentFixe" class="clearfix box-form">
						{% if param.FOURNISSEUR_ACTIF %}
						<div class="colonne2">
							<div class="row">
								<input type="hidden" name="MODIF_CODE_FOU" id="MODIF_CODE_FOU" value='0' />
								<input type="hidden" name="RECALCUL_DATE_LIV" id="RECALCUL_DATE_LIV" value='0' />
								{{ inputAdvance('ZOOMADVANCE', {
									'titre' : 'Fournisseur' | trad,
									'name' : 'CODE_FOU_ENTETE',
									'pahtZoom' : path('Ajax.liste.fournisseur'),
									'paramZoom' : "{'filter_PROSPECT' : '"~ (demandeAchat.CHIF_EXEC == 'E' ? 'F' : '') ~"'}",
									'entity' : 'Fourniss',
									'titleZoom' : 'Liste des fournisseurs' | trad,
									'pathConvert' : path('Ajax.outil.convertLibelle'),
									'convertLibelle' : 'convertLibelleGlobal',
									'pathValidator' : path('Ajax.validator.zoom'),
									'paramsValidator' : "{'entity' : 'Fourniss','nomChamp' : '"~ 'Fournisseur' | trad ~"', 'null' : "~ (param.OBLIG_FOU ? 'false' : 'true') ~", post : {'filter_PROSPECT' : '"~ (demandeAchat.CHIF_EXEC == 'E' ? 'F' : '') ~"'}}",
									'value' : demandeAchat.FOU,														
									'obligatoire' : param.OBLIG_FOU,
									'iconeLabel' : 'Inactif2.png',
									'idIconeLabel' : 'icone_CODE_FOU'
								}) }}
							</div>
						</div>
						{% endif %}
						{% if param.SOUSFAMILLE_ACTIF %}
						<div class="colonne2">
							<div class="row">
								<input type="hidden" name="MODIF_SSFAM" id="MODIF_SSFAM" value='0' />
								{{ inputAdvance('zoomAdvance', {
									'titre' : 'Sous-famille' | trad,
									'name' : 'SSFAM_ENTETE',
									'pahtZoom' : path('Ajax.liste.sousFamille'),
									'pathConvert' : path('Ajax.outil.convertLibelle'),
									'convertLibelle' : 'convertLibelleGlobal',
									'pathValidator' : path('Ajax.validator.zoom'),
									'paramsValidator' : "{'entity' : 'SousFamille','nomChamp' : '"~ 'Sous-famille' | trad ~"', 'null' : true}",
									'entity' : 'SousFamille',
									'titleZoom' : 'Liste des sous-familles' | trad,
									'iconeLabel' : 'Inactif2.png',
									'idIconeLabel' : 'icone_SSFAM'
								}) }}
							</div>
						</div>
						{% endif %}
						{% if param.IMPUTATIONS_ACTIF %}
							{% if param.SI_ACTIF %}
							<div class="colonne2">
								<div class="row">
									<input type="hidden" name="MODIF_SECTIMP" id="MODIF_SECTIMP" value='0' />
									{{ inputAdvance('ZOOMADVANCE', {
										'titre' : 'Section d\'imputation' | trad,
										'name' : 'SECTIMP_ENTETE',
										'pahtZoom' : path('Ajax.liste.si'),
										'paramZoom' : "{'si_valide': 'on', 'CODE_STE' : '"~ demandeAchat.CODE_STE ~"'}",
										'entity' : 'Sectimpu',
                                        'codeSte' : demandeAchat.CODE_STE,
										'widthPopup' : 'modal_large',
										'titleZoom' : 'Liste des sections d\'imputation' | trad,
										'pathConvert' : path('Ajax.outil.convertLibelle'),
										'convertLibelle' : 'convertLibelleGlobal',
										'pathValidator' : path('Ajax.validator.sectionImputation'),
										'paramsValidator' : "{'nomChamp' : '"~ 'Section d\'imputation' | trad |e('js')|raw ~"', 'null' : true, 'filter_egal_CODE_STE' : '"~ demandeAchat.CODE_STE ~"', 'min_bloquant' : '"~ param.MIN_SI_BLOQUANT ~"', 'max_bloquant' : '"~ param.MAX_SI_BLOQUANT ~"'}",
										'value' : demandeAchat.SECTIMP,
										'myFunction' : 'modifCodeGestionEntete',
										'myParams' : '["SECTIMP_ENTETE", "CODGES_ENTETE", "'~ path('DemandeAchat.ModifierGroupeeLigneDemandeAchat.getLibelleImput') ~'"]',
										'iconeLabel' : 'Inactif2.png',
										'idIconeLabel' : 'icone_SECTIMP',
										'codeSte' : demandeAchat.CODE_STE,
									}) }}								
								</div>
                                <div class="row" id="CODEGESTION">
                                    <input type="hidden" name="cgNull_" id="cgNull_" value="{{ param.OBLIG_CODGES ? 'false' : 'true' }}" />
                                    
                                    {# TODO supprimer pathConvert et ajouter les lignes suivantes à adapter avec les valeurs de la page #}
                                        {# 'myFunction' : 'convertLibelleCodeGestion',
                                        'myParams' : '["'~path('Ajax.outil.convertLibelleCodeGestion')~'", this, "CODE_GES", "CODE_AFF", "input_ID_CG-'~cde.NO_LIGNE~'", "text_ID_CG-'~cde.NO_LIGNE~'", "'~ facture.CODE_STE ~'", "'~numLot~'", "", "input_CODE_SI-'~cde.NO_LIGNE~'", 0]', #}
                                    {{ inputAdvance('TREEVIEW', {
                                        'titre' : 'Code Gestion' | trad,
                                        'name' : 'CODGES_ENTETE',
                                        'pathTreeview' : path('Ajax.Treeview.codeGestion'),
                                        'paramsTreeview' : "{'CODE_SI': document.getElementById('input_SECTIMP_ENTETE').value, 'inputCG' : 'CODGES_ENTETE', 'CODE_STE': '"~ demandeAchat.CODE_STE ~"', 'valide_obligatoire': '1', 'AUTHACHAT' : '1'}",
                                        'titleTreeview' : 'Code Gestion' | trad,
                                        'value' : demandeAchat.CODGES,
                                        'convertLibelle' : 'cgTrad',
                                        'pathValidator' : path('Ajax.validator.codeGestion'),
                                        'paramsValidator' : "{'nomChamp' : '"~ 'Code gestion' | trad ~"', 'null' : document.getElementById('cgNull_').value, 'CODE_SI': document.getElementById('input_SECTIMP_ENTETE').value, 'CODE_STE': '"~ demandeAchat.CODE_STE ~"', 'valide_obligatoire': '1', 'AUTHACHAT' : '1'}",
                                        'pathConvert' : path('Ajax.outil.convertLibelle'),
                                        'entity' : 'Codgest',
                                        'codeBDD' : 'CODE_AFF',
                                        'libelleBDD' : 'LIB_GES',
                                        'option' : param.MODIF_CODGES ? '' : 'readOnly',
                                        'obligatoire' : true,
                                    }) }}           
                                </div>
                                <script>
                                {% if param.OBLIG_CODGES %}
                                    $('#CODEGESTION label span').show();
                                {% else %}
                                    $('#CODEGESTION label span').hide();
                                {% endif %}
                                </script>
							</div>
							{% endif %}
							<div class="colonne2">
                                {% if param.CDC_ACTIF %}
                                    <div class="row">
                                        <input type="hidden" name="MODIF_CODE_COMP" id="MODIF_CODE_COMP" value='0' />
                                        {{ inputAdvance('ZOOMADVANCE', {
                                            'titre' : 'Code complémentaire' | trad,
                                            'name' : 'CODE_COMP_ENTETE',
                                            'pahtZoom' : path('Ajax.liste.cdc'),
                                            'paramZoom' : "{'filter_egal_CODE_STE' : '"~ demandeAchat.CODE_STE ~"'}",
                                            'entity' : 'codeComp',
                                            'widthPopup' : 'modal_large',
                                            'titleZoom' : 'Liste des codes complémentaires' | trad,
                                            'pathConvert' : path('Ajax.outil.convertLibelle'),
                                            'convertLibelle' : 'convertLibelleGlobal',
                                            'pathValidator' : path('Ajax.validator.codeComplementaire'),
                                            'paramsValidator' : "{'nomChamp' : '"~ 'Code complémentaire' | trad ~"', 'null' : true, 'filter_egal_CODE_STE' : '"~ demandeAchat.CODE_STE ~"', 'min_bloquant' : '"~ param.MIN_CDC_BLOQUANT ~"', 'max_bloquant' : '"~ param.MAX_CDC_BLOQUANT ~"'}",
                                            'value' : demandeAchat.CODECOMP,
                                            'option' : param.LOCK_CDC? 'readOnly':'',
                                            'iconeLabel' : 'Inactif2.png',
                                            'idIconeLabel' : 'icone_CODE_COMP',
											'codeSte' : demandeAchat.CODE_STE,
                                        }) }}
                                    </div>
                                {% endif %}
                                {% if param.SCA_ACTIF %}
                                    <div class="row">
                                        <input type="hidden" name="MODIF_SSCPTEANA" id="MODIF_SSCPTEANA" value='0' />
                                        {{ inputAdvance('ZOOMADVANCE', {
                                            'titre' : 'Sous compte d\'analyse' | trad,
                                            'name' : 'SSCPTEANA_ENTETE',
                                            'pahtZoom' : path('Ajax.liste.sscptana'),
                                            'paramZoom' : "{'filter_egal_CODE_STE' : '"~ demandeAchat.CODE_STE ~"' }",
                                            'entity' : 'Sscptana',
                                            'titleZoom' : 'Liste des sous comptes d\'analyse' | trad,
                                            'pathConvert' : path('Ajax.outil.convertLibelle'),
                                            'convertLibelle' : 'convertLibelleGlobal',
                                            'pathValidator' : path('Ajax.validator.sousCompteAnalyse'),
                                            'paramsValidator' : "{'nomChamp' : '"~ 'Sous compte d\'analyse' | trad |e('js')|raw ~"', 'null' : true, 'filter_egal_CODE_STE' : '"~ demandeAchat.CODE_STE ~"', 'min_bloquant' : '"~ param.MIN_SCA_BLOQUANT ~"', 'max_bloquant' : '"~ param.MAX_SCA_BLOQUANT ~"'}",
                                            'value' : demandeAchat.SSCPTEANA,
                                            'iconeLabel' : 'Inactif2.png',
                                            'idIconeLabel' : 'icone_SSCPTEANA',
											'codeSte' : demandeAchat.CODE_STE,
                                        }) }}
                                    </div>
                                {% endif %}		
							</div>
						{% endif %}
						{% if param.DATELIVRAISON_ACTIF %}
						<div class="colonne2">
							<div class="row">
								<input type="hidden" name="MODIF_DTELIVSOU" id="MODIF_DTELIVSOU" value='0' />
								{{ inputAdvance('date', {
									'titre' : 'Date de livraison' | trad,
									'name' : 'DTELIVSOU_ENTETE',
									'value' : demandeAchat.DTE_LIV | dateTrad ,
									'pathValidator' : path('Ajax.validator.date'),
									'paramsValidator' : "{}",
									'iconeLabel' : 'Inactif2.png',
									'idIconeLabel' : 'icone_DTELIVSOU'
								}) }}
							</div>
						</div>
						{% endif %}
						{% if param.TYPEACHAT_ACTIF %}									
						<div class="colonne2">
							<div class="row">
								<input type="hidden" name="MODIF_TYPNMP" id="MODIF_TYPNMP" value='0' />
								{{ inputAdvance('SELECT', {
									'titre' : 'Type d\'achat' | trad,
									'name' : 'TYPNMP_ENTETE',
									'listeValue' : tabTypeMarchePublic,
									'value' : da.TYPNMP,
									'iconeLabel' : 'Inactif2.png',
									'idIconeLabel' : 'icone_TYPNMP'
								}) }}
							</div>
						</div>
						{% endif %}	
						<SCRIPT>
							$('[id^=icone_]').click(function(){
								id = $(this).attr('id').replace("icone_", "");
								if($('#MODIF_'+id).val()==0){
									$(this).find('img').attr({'src' : '{{ baseUrl('IconeV2/Misc/Actif2.png') }}'})
									$('#MODIF_'+id).val(1)
								}
								else{
									$(this).find('img').attr({'src' : '{{ baseUrl('IconeV2/Misc/Inactif2.png') }}'})
									$('#MODIF_'+id).val(0)
								}
							});
						</SCRIPT>
                    </div>					
					
					<div id="LignesDA">
					<table class="table table-hover tableForm">
						<thead class="thead-dark">
							<tr>
								<th scope="col" width='7%'>{{ 'Ligne' | trad }}</th>
								<th scope="col">{{ 'Article' | trad }}</th>
								<th scope="col">{{ 'Fournisseur' | trad }}</th>
								<th scope="col">{{ 'Sous-famille' | trad }}</th>
								{% if param.IMPUTATIONS_ACTIF and param.SI_ACTIF %}
								<th scope="col">{{ 'Section d\'imputation' | trad }}</th>
								<th scope="col">{{ 'Code gestion' | trad }}</th>
								{% endif %}
								{% if param.IMPUTATIONS_ACTIF and param.CDC_ACTIF %}
								<th scope="col">{{ 'Code complémentaire' | trad }}</th>
								{% endif %}
								{% if param.IMPUTATIONS_ACTIF and param.SCA_ACTIF %}
								<th scope="col">{{ 'Sous compte d\'analyse' | trad }}</th>
								{% endif %}
								<th scope="col" class="align-center" width='7%'>{{ 'Date livraison' | trad }}</th>
								{% if param.TYPEACHAT_ACTIF %}	
								<th scope="col" class="align-center" width='7%'>{{ 'Type d\'achat' | trad }}</th>
								{% endif %}
								<th scope="col" class="align-center white-tooltip" width="4%">
                                    <span class="infos_tooltip left">
                                        {{ 'Tout sélectionner' | trad }}
                                    </span>
                                	<input type="checkbox" 
										class="form-control checkbox"
										data-checkall-input="liNoModheckAll"
									/>
                               	</th>
							</tr>
						</thead>
						<tbody>
							{% for ligne in lignesDA %}
								{% include '@DemandeAchat/ModificationGroupeeLignes/ligneNonModifiable.twig' %}
							{% endfor %}
						</tbody>
					</table>					
					</div>
				</form>
			</div>
    	</div>
	</div>	
{% endblock %}