
{% extends 'layout.twig' %}

{% block body %}
<script>
	var global_pathCalcul = '{{ path('Facture.ajax.calculTotal', {numFact : numFact}) }}';
	var Autoliquidation = '{{ 'Autoliquidation' | trad}}';

    
    function changeIframe(ficPDF)
    {

        var params = 'ficPDF='+encodeURI(ficPDF)+'&tokenCSRF='+$('#tokenCSRF').val();
        var xhr = new XMLHttpRequest();

        xhr.open('POST', '{{ path('Facture.Zedoc.affichagPDFLAD') }}');
        xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
        xhr.onreadystatechange = handler;
        xhr.responseType = 'blob';
        xhr.send(params);

        
    }

    function handler() {
        if (this.readyState === this.DONE) {
            if (this.status === 200) {
            // this.response is a Blob, because we set responseType above
            if($('#objectFicLad').length)
            {
                var data_url = URL.createObjectURL(this.response);
                document.querySelector('#objectFicLad').src = data_url;
            }
            } else {
            console.error('no pdf :(');
            }
        }
    }


</script>
<script type="text/javascript" src="{{ baseUrl('js/Modules/Facture/CreationFactureAffectation.js') }}"></script>
<script type="text/javascript" src="{{ baseUrl('js/Modules/Facture/Facture.js') }}"></script>
<script>activeLoader();</script>
	<div class="contenu clearfix"  id="factures">
            <h1>
                {{- (facture.TYPE == 'F' ? 
                    'Affectation facture' | trad : 
                    'Affectation avoir' | trad
                ) ~ colon() }}
                {{ numFact }} - 
                {{ facture.CODE_FOUR|fournisseurTrad }}
                {%- if facture.CODE_FOUR !="" %} ({{ facture.CODE_FOUR }}){% endif -%}
            </h1>

        {{ ariane() }}
        
		<div class="tab-content">
			<div id="affectations" >
                <form class="form clearfix padding10" method="POST" name="affectation_facture" id="affectation_facture" >
                    <input type="hidden" name="listeCheck" id="listeCheck" value="" />
                    <input type="hidden" name="submitForce" id="submitForce" value="0" />
                    <input type="hidden" name="numFact" id="numFact" value="{{ facture.NUM_FACT }}" />
                    <input type="hidden" name="numCde" id="numCde" value="{{ numCde }}" />
                    <input type="hidden" name="societe" id="societe" value="{{ societe }}" />
                    <input type="hidden" name="fournisseur" id="fournisseur" value="{{ fournisseur }}" />
                    <input type="hidden" name="nbAffectations" id="nbAffectations" value="{{ nbLignesCde }}" />
                    <input type="hidden" name="last_NO_LIGNE" id="last_NO_LIGNE" value="" />
                    <input type="hidden" name="last_NO_LIGNE_tmp" id="last_NO_LIGNE_tmp" value="" />
                    <input type="hidden" name="TTC_FACTURE" id="TTC_FACTURE" value="{{ facture.TOTAL_TTC }}" />
                    <input type="hidden" name="HT_FACTURE" id="HT_FACTURE" value="{{ facture.TOTAL_HT }}" />
                    <input type="hidden" name="TVA_FACTURE" id="TVA_FACTURE" value="{{ (facture.TOTAL_TTC-facture.TOTAL_HT) }}" />
                    <input type="hidden" name="DEVISE" id="DEVISE" value="{{ facture.DEVISE }}" />
                    <input type="hidden" name="TYPE" id="TYPE" value="{{ facture.TYPE }}" />
                    <input type="hidden" name="pathModifFichier" id="pathModifFichier" value="{{ path('Facture.ajax.ajaxInsertValue') }}" />
                                    
                	<div class="detail_affectations clearfix">
                    	<div class="clearfix">
                    		{% if nonAffichageChoixCommande==0 %}
                                {% if facture.TYPE=='F' %}
                                    <a href="{{ path('Facture.CreationFacture.choixCommande', {'action': action, 'numFact': numFact, 'fournisseur': fournisseur, 'societe': societe, 'numCde': (articleSansCommande ?? numCde)}) }}"><button type="button" class="button secondaire">{{ 'Retour sélection des commandes' | trad }}</button></a>
                                {% else %}
                                    <a href="{{ path('Facture.CreationFacture.choixAvoir', {'action': action, 'numFact': numFact, 'fournisseur': fournisseur, 'societe': societe, 'numCde': numCde}) }}"><button type="button" class="button secondaire">{{ 'Retour sélection des commandes' | trad }}</button></a>
                                {% endif %}
                            {% endif %}
                            <button type="button" class="button ajout principal" id="btnCreationLigneManuelle">{{ 'Création de ligne manuelle' | trad }}</button>
                            <br/>
                            {% if (facture.AFF_ENREG|boolSql)==1 %}
                                <button type="button" class="button secondaire" name="supprimerAffectation" id="supprimerAffectation" onclick="supprimerAffectations();">{{ 'Supprimer affectation' | trad }}</button>
                            {% endif %}
                            
                            {% if facture.urlImageFacture != '' and facture.urlImageFacture != ' ' %}
                            <a href="{{ facture.urlImageFacture }}" target="_blank" id="btn_afficher_facture"><button type="button" class="button secondaire">{{ 'Afficher la facture' | trad }}</button></a>
                            {% endif %}
                        </div>
                        <div class="row">
                            <div>
                                <div class="montant_affectation colonne3">
                                	<p><label>{{ 'HT Facture' | trad }}</label> <span class="montant">{{ facture.TOTAL_HT|number_format(2, '.', ' ') }} {{ facture.DEVISE }}</span></p>
                                    <p><label>{{ 'TVA Facture' | trad }}</label> <span class="montant">{{ (facture.TOTAL_TTC-facture.TOTAL_HT)|number_format(2, '.', ' ') }} {{ facture.DEVISE }}</span></p>
                                </div>
                            	<div class="total_affectation colonne3">
                                	<p><label>{{ 'HT affecté' | trad }}</label> <span class="montant">{{ facture.DEVISE }}</span><span class="montant" id="HT_Affecte">{{ HT|number_format(2, '.', ' ') }}&nbsp;</span></p>
                                    <p><label>{{ 'TVA affecté' | trad }}</label> <span class="montant">{{ facture.DEVISE }}</span><span class="montant" id="TVA_Affecte">{{ TVA|number_format(2, '.', ' ') }}&nbsp;</span></p>
                                </div>
                                <div class="ecart affectation colonne3 last">
                                	<p>
                                		<label>{{ 'Ecart HT' | trad }}</label> 
                                		<span class="ecart{% if (HT - facture.TOTAL_HT)==0 %}{% set ecartHT = 1 %} totaux_egaux{% else %}{% set ecartHT = 0 %} totaux_differents{% endif %}" id="ecart_HT_euro">{% if (HT - facture.TOTAL_HT)>0 %}+{% endif %}{{ ((HT - facture.TOTAL_HT)|number_format(2, '.', ' ')) }} {{ facture.DEVISE }}</span>
                                		<span class="ecart totaux_differents" id="ecart_HT_pourcent">
                                            {% if (HT - facture.TOTAL_HT)>0 %}+{% endif %}
                                            {% if facture.TOTAL_HT == 0 %}
                                                {{ ('0')|number_format(2, '.', '') }} %
                                            {% else %}                                                
                                                {{ ((((HT - facture.TOTAL_HT)/facture.TOTAL_HT)*100)|number_format(2, '.', '')) }} %
                                            {% endif %}
                                        </span>
                                	</p>
                                    <p>
                                    	<label>{{ 'Ecart TVA' | trad }}</label> 
                                    	{% if autoliquidation == 1 %}
                                    		{% set ecartTVA = 1 %}
                                    	    <span class="ecart totaux_egaux" id="ecart_TVA_euro">{{ 'Autoliquidation' | trad }}</span>
                                    	    <span class="ecart" id="ecart_TVA_pourcent" style="display: none;"></span>
                                    	{% elseif (TVA - (facture.TOTAL_TTC-facture.TOTAL_HT))!=0 %}
                                    		{% set ecartTVA = 0 %}
                                            <span class="ecart totaux_differents" id="ecart_TVA_euro">
                                                {% if (TVA - (facture.TOTAL_TTC-facture.TOTAL_HT))>0 %}+{% endif %}
                                                {{ ((TVA - (facture.TOTAL_TTC-facture.TOTAL_HT))|number_format(2, '.', ' ')) }} {{ facture.DEVISE }}
                                            </span> 
                                            <span class="ecart totaux_differents" id="ecart_TVA_pourcent">
                                            {% if (TVA - (facture.TOTAL_TTC-facture.TOTAL_HT))>0 %}+{% endif %}
                                            {% if facture.TOTAL_TTC == 0 %}
                                                {{ '0' |number_format(2, '.', '') }} %
                                            {% elseif (facture.TOTAL_TTC-facture.TOTAL_HT)==0 %}
                                                {{ ((((TVA - (facture.TOTAL_TTC-facture.TOTAL_HT))/(facture.TOTAL_TTC))*100)|number_format(2, '.', '')) }} %
                                            {% else %}
                                                {{ ((((TVA - (facture.TOTAL_TTC-facture.TOTAL_HT))/(facture.TOTAL_TTC-facture.TOTAL_HT))*100)|number_format(2, '.', '')) }} %
                                            {% endif %}
                                            </span>
                                    	{% else %}
                                    		{% set ecartTVA = 1 %}
                                            <span class="ecart totaux_egaux" id="ecart_TVA_euro">{{ '0'|number_format(2, '.', ' ') }} {{ facture.DEVISE }}</span> 
                                            <span class="ecart totaux_egaux" id="ecart_TVA_pourcent">{{ '0'|number_format(2, '.', '') }} %</span>
                                    	{% endif %}
                                    </p>
                                </div>
                                
                            </div>
                            <div id="btnTotaux">
                            {% if droits.HA_FA_VALI == '1' %}
                                <button type="button" class="button principal" name="terminer_valider" id="terminer_valider" onClick="soumissionAffectation('terminer_valider');" {% if ecartHT!=1 or ecartTVA!=1%}style="display:none;"{% endif %}>{{ 'Terminer et Valider' | trad }}</button>
                            {% endif %}
                                <button type="button" class="button {% if droits.HA_FA_VALI == '1' %}secondaire{% else %}principal{% endif %}" name="terminer" id="terminer"  onclick="soumissionAffectation('terminer');" {% if ecartHT!=1 or ecartTVA!=1%}style="display:none;"{% endif %}>{{ 'Terminer' | trad }}</button>
                                <button type="button" class="button {% if ecartHT!=1 or ecartTVA!=1%}principal{% else %}secondaire{% endif %}" name="enregistrer" id="enregistrer" onclick="soumissionAffectation('enregistrer');">{{ 'Enregistrement temporaire' | trad }}</button>
                                <button type="button" class="button secondaire" id="annuler" onclick="{{ arianePrevRouteJsFunc(true) | e('html_attr') }}">{{ 'Annuler' | trad }}</button>
                        	</div>
                            
                        </div>
                	</div>
                	
                	<div class="clearfix" id='divFiltre'>
                            <div class="clearfix padding_form bg_form border_form" style="margin-top:15px;">
                                {% include '@facture/affectation/filtresMasse.twig' %}    
                        	
                                <button type="submit" class="principal button btn_filtre last button_right">{{ 'Filtrer' | trad }}</button>
                                <button type="button" class="secondaire button button_right" onClick="showDivModifGroupe();">{{ 'Modification groupée' | trad }}</button>
                            </div>
                            
                            <div id="MsgErreur">{{ 'Veuillez corriger les erreurs avant de faire une autre action.' | trad }}</div>

                            <div id="modifMass" class="clearfix padding_form bg_form border_form" style="margin-top:10px; display:none;">
                            	<h4>{{ 'Champs modifiables' | trad }} : </h4>
                            	<div class="colonne3">
                                	<div class="row">
                                        {{ inputAdvance('ZOOM',{
                                            'titre' : 'Sect Imp.' | trad,
                                    	    'name' : 'update_CODE_SI',
                                    	    'pahtZoom' : path('Ajax.liste.si'),
                                    	    'titleZoom' : 'Section d\'imputation' | trad,
                                    	    'paramZoom' : "{'CODE_STE' : '"~facture.CODE_STE~"' }", 
                                    	    'pathValidator' : path('Ajax.validator.sectionImputation'),
                                    	    'paramsValidator' : "{'nomChamp' : '"~ 'Section d\'imputation' | trad |e('js')|raw ~"', 'null': true, 'CODE_STE' : '"~facture.CODE_STE~"'}",
                                    	    'Entity' : 'Sectimpu',
                                            'codeSte' : facture.CODE_STE,
                                    	    'widthPopup' : 'modal_large',
                                            'codeSte' : facture.CODE_STE,
                                    	}) }}                                            
                                	</div>
                                    <div class="row">       
                                        {{ inputAdvance('ZOOM',{
                                            'titre' : 'ScptAna' | trad,
                                    	    'name' : 'update_CODE_SCA',
                                    	    'pahtZoom' : path('Ajax.liste.sca'),
                                    	    'titleZoom' : 'Sous compte d\'analyse' | trad,
                                    	    'paramZoom' : "{
                                                    'CODE_STE' : '"~facture.CODE_STE~"',

                                                    'contexte' : 'ligneFAC', 
                                                    'SI' : $('#input_update_CODE_SI').val(),
                                                    'CDC' : $('#input_update_CODE_CDC').val(),
                                                }", 
                                    	    'pathValidator' : path('Ajax.validator.sousCompteAnalyse'),
                                    	    'paramsValidator' : "{'nomChamp' : '"~ 'Sous compte d\'analyse' | trad |e('js')|raw ~"', 'null': true, 'CODE_STE' : '"~facture.CODE_STE~"'}",
                                    	    'addStyle' : 'champs_recherche',
                                    	    'Entity' : 'Sscptana',
                                            'codeSte' : facture.CODE_STE,
                                    	    'widthPopup' : 'modal_large',
                                            'codeSte' : facture.CODE_STE,
                                    	}) }}
                                    </div>
                            	</div>
                                <div class="colonne3">
                                    <div class="row">
                						{{ inputAdvance('TREEVIEW', {
                							'titre' : 'Code gestion' | trad,
                							'name' : 'update_CG',

                							'pathTreeview' : path('Ajax.Treeview.codeGestion'),
                							'paramsTreeview' : "{'CODE_GESTION_PAR_ID' : true,'CODE_STE' : '"~facture.CODE_STE~"', 'CODE_SI': document.getElementById('input_update_CODE_SI').value, 'NUM_LOT': '"~numLot~"', 'AUTHACHAT' : '1', 'inputCG' : 'update_CG', 'cg_valide' : 1}",
                							'titleTreeview' : 'Liste des codes gestion' | trad,
                							
                							'entity' : 'Codgest',                                                        
                							
                							'pathValidator' : path('Ajax.validator.codeGestion'),
                							'paramsValidator' : "{'nomChamp' : '"~ 'Code gestion' | trad |e('js')|raw ~"', 'null' : true, 'CODE_STE' : '"~facture.CODE_STE~"', 'CODE_SI': document.getElementById('input_update_CODE_SI').value, 'NUM_LOT': '"~numLot~"', 'AUTHACHAT' : '1'}",
                							
                							'codeBDD' : 'CODE_GES',
                							'libelleBDD' : 'CODE_AFF',
                							'addStyle' : 'champs_recherche',

                                            'option' : 'readOnly',
                                            'siLink': 'input_update_CODE_SI',
                                            'codeSte' : facture.CODE_STE,
                						}) }}
                                    </div>
                                	<div class="row">
                                        {{ inputAdvance('ZOOM', {
                                            'titre' : 'Taux de TVA' | trad,
                                            'name' : 'update_TAUX_TVA',
                                            'pahtZoom' : path('Ajax.liste.TVA'),                                                    
                                            'titleZoom' : 'Taux de TVA' | trad,                                                    
                                            'pathValidator' : path('Ajax.validator.tauxTva'),
                                            'paramsValidator' : "{'entity' : 'TVA', 'nomChamp' : '"~ 'Taux de TVA' | trad |e('js')|raw ~"'}",
                                            'addStyle' : 'champs_recherche',
                                            'Entity' : 'TVA',
                                            'clickSelect' : true,
                                        }) }}
                                	</div>
                                	
                                </div>
                                <div class="colonne3 last">
                                    <div class="row">
                                        {{ inputAdvance('ZOOM',{
                                            'titre' : 'CodeComp.' | trad,
                                    	    'name' : 'update_CODE_CDC',
                                    	    'pahtZoom' : path('Ajax.liste.cdc'),
                                    	    'titleZoom' : 'Code complémentaire' | trad,
                                    	    'paramZoom' : "{'CODE_STE' : '"~facture.CODE_STE~"' }", 
                                    	    'pathValidator' : path('Ajax.validator.codeComplementaire'),
                                    	    'paramsValidator' : "{'nomChamp' : '"~ 'Code complémentaire' | trad |e('js')|raw ~"', 'null': true, 'CODE_STE' : '"~facture.CODE_STE~"'}",
                                    	    'Entity' : 'Codecomp',
                                            'codeSte' : facture.CODE_STE,
                                    	    'widthPopup' : 'modal_large',
                                            'codeSte' : facture.CODE_STE,
                                    	}) }}
                                	</div>
                                    <div class="row">
                                     	{{ inputAdvance('SELECT',{
                                     	    'titre' : 'Type de TVA :' | trad,
                                     	    'name' : 'update_TYPE_TVA',
                                     	    'listeValue' : listeTypeTva, 
                 	                        'optionVide' : params.AddTypeTvaVide,
                                     	    'affichageId' : false,
                                        }) }}	
                                	</div>
                                </div>
                                <button type="button" class="principal button last button_right" onClick="modificationGroupe('{{ path('Facture.ajax.ajaxModificationGroupe', {numFact:numFact}) }}');">{{ 'Modifier' | trad }}</button>
                            </div>
                            
                            <script>
                                function showDivModifGroupe()
                                {
                                    if($('#modifMass').is(':visible'))
                                    {
                                    	$('#modifMass').hide();
                                    }
                                    else
                                    {
                                        $('#modifMass').show();
                                    }
                                }
                            
								function modificationGroupe(path)
								{
									activeLoader();
									$.ajax({
									  	dataType : 'html',
    									url: path,
    									data: $('#affectation_facture').serialize(),
    									type: "POST",
    									success: function(result){
    										$('#affectation_facture').submit();
    										desactiveLoader();
    									}
    								});
								}
                            </script>
                            
                	</div>
                	
                	<div class="clearfix" style="margin-top:15px;">
                        <div {% if facture.urlImageFacture != '' and facture.urlImageFacture != ' ' %}class="affichageFicLAD"{% endif %} id="tableau_affectations">
                            {% include '@facture/affectation/tableauAffectation.twig' %}    
                            
                            {{ paginations('',infoPagination.nombreDePage, infoPagination.page, infoPagination.post, '') }}
                                                   
                        </div>
                        {% if facture.urlImageFacture != '' and facture.urlImageFacture != ' ' %}
                        <div class="apercu_facture" >
        		            <iframe id="objectFicLad"  width="377px" height="520px;" align="middle"></iframe>
                            
                        </div>
                        <script type="text/javascript">
                            $('iframe').each(function(){
                                var url = $(this).attr("src");
                                $(this).attr("src",url+"#zoom=45?wmode=transparent");
                            });
                        </script>
                        {% endif %}
                        </div>
            			<div id="divEclatementLigne" style="display:none;">
                            <table class="tblEclatementLigne">
                            	<tbody></tbody>
                            </table>
                        	<div class="clearfix" id="btnEclatementLigne">
                    			<button type="button" class="button ajout principal btnAjoutEclatementLigne">{{ 'Ajouter une nouvelle ligne' | trad }}</button>
                    			<button type="button" class="button principal right validerEclatement">{{ 'Valider' | trad }}</button>
                                <button type="button" class="button secondaire right annulerEclatement">{{ 'Annuler' | trad }}</button>
                        	</div>     
                        </div>
                    </form>
            	</div>
            </div>
        </div>
<script>
function soumissionAffectation(typeSoumission)
{
    if($('[id^="eclatementLigneInit"]').length>0){
        activePopupErreur(
            {{ path('Ajax.Erreur.popupErreurAlerteEtAvertissement') | json }},
            '', '', '',
            {'alerte': {{ 'Un éclatement de ligne est en cours de saisie. Veuillez le valider ou l\'annuler avant de lancer l\'enregistrement de vos affectations.' | trad | json }} }
        );
        return;
    }
    
    activeLoader();
    $.ajax({
        dataType : 'JSON',
        url: {{ path(
            'Facture.CreationFacture.enregistrerAffectation', 
            {numFact: numFact, societe: societe}
        ) | json }},
        data: {
            'action' : typeSoumission,
            'listeCheck' : $('#listeCheck').val(),
            'submitForce' : $('#submitForce').val()
        },
        type: 'POST', // la méthode indiquée dans le formulaire (get ou post)
        success: function(data) { // je récupère la réponse du fichier PHP
            if(data.statut == 'enregEnCours') {
                asyncBackground(verifApresEnreg, data);
            }
            if(data.statut == 'redirect') {
                {{ arianePrevRouteJsFunc(true) }};
            }
        }, 
        error: function (data){
            desactiveLoader();
            $("#modal-content").addClass("modal_small");
            $("#modal-body").html(data.responseText);
            activePopup();
        } 
    });
}

function verifApresEnreg(requestData, dataRetourWsdl){
    var payload = {
        dataAsync: requestData,
        dataRetourWsdl: dataRetourWsdl
    };
    var url = {{ path('Facture.CreationFacture.verifApresEnregistrementFacture', {'numFact' : numFact }) | json }};
    var onSuccess = function(data) {
        if (data.statut == 'redirect'){
            return redirectJSWithPost('{{ path('Facture.GestionFacture.index') }}');
        }
        if (data.statut == 'differenceCondPaie'){
            ajaxPopup (data.path, "{{ 'Modif. Choix des modes de paiement et date d\'échéance' | trad |e('js')|raw }}");
            return;
        }
        if (data.statut == 'validEnCours'){
            asyncBackground(validEnCours, data);
            return;
        }
        if (data.status == 'confirmRequired') {
            return popupConfirmSimple(
                data.title,
                data.message,
                url,
                Object.assign(payload,{confirm: 1}),
                onSuccess
            );
        }
    };
    $.ajax({
        dataType : 'JSON',
        url: url,
        data: payload,
        type: 'POST', // la méthode indiquée dans le formulaire (get ou post)
        success: onSuccess, 
        error: function (data){
            desactiveLoader();
            $("#modal-content").addClass("modal_small");
            $("#modal-body").html(data.responseText);
            activePopup();
        } 
    }); 
}

function validEnCours(requestData, dataRetourWsdl) {
    $.ajax({
        dataType : 'JSON',
        url: '{{ path('Facture.CreationFacture.validationViaAffectation', {'numFact' : numFact }) }}',
        data: {
            dataRetourWsdl: dataRetourWsdl,
        },
        type: 'POST', // la méthode indiquée dans le formulaire (get ou post)
        success: function(data) { // je récupère la réponse du fichier PHP
            if (data.statut == 'redirect'){
                redirectJSWithPost('{{ path('Facture.GestionFacture.index') }}');
                return;
            }
            if (data.statut == 'signataire'){
                ajaxPopup('{{ path('Facture.CreationFacture.choixSignataireFacture', {'numFact' : numFact }) }}');
                return;
            }
            if(data.statut == 'ErreurXml'){
                activePopupErreur(
                    {{ path('Ajax.Erreur.popupErreurXml') | json }},
                    window.oxaproc.trad['Erreur'],
                    data.ErreurXml,
                    data.path_next_etat,
                    {
                        type: 'facture',
                        numFact: {{ numFact | json }},
                        pathAsync: data.pathAsync,
                    },
                    '',
                    {{ path('Facture.GestionFacture.index') | json }}
                );
            }
        }, 
        error: function (data){
            desactiveLoader();
            $("#modal-content").addClass("modal_small");
            $("#modal-body").html(data.responseText);
            activePopup();
        } 
    }); 
}

function supprimerAffectations(){
    activeLoader();
    $.ajax({
        dataType : 'JSON',
        url: {{ path(
            'Facture.CreationFacture.supprimerAffectation',
            {'numFact': numFact}
        ) | json }},
        data: {},
        type: 'POST', // la méthode indiquée dans le formulaire (get ou post)
        success: function(data) { // je récupère la réponse du fichier PHP

            if(data.statut == 'supprEnCours'){
                asyncBackground(supprEnCours, data);
                return;
            }
            if(data.statut == 'redirect'){
                redirectJSWithPost('{{ path('Facture.GestionFacture.index') }}');
            }
        }, 
        error: function (data){
            desactiveLoader();
            $("#modal-content").addClass("modal_small");
            $("#modal-body").html(data.responseText);
            activePopup();
        } 
    }); 
}

function supprEnCours(requestData, dataRetourWsdl) {
    $.ajax({
        dataType : 'JSON',
        url: {{ path(
            'Facture.CreationFacture.suppressionAffectationEnCours', 
            {'numFact': numFact}
        ) | json }},
        data: {
            dataRetourWsdl: dataRetourWsdl
        },
        type: 'POST', // la méthode indiquée dans le formulaire (get ou post)
        success: function(data) { // je récupère la réponse du fichier PHP
            if(data.statut == 'redirect'){
                redirectJSWithPost('{{ path('Facture.GestionFacture.index') }}');
            }
        }, 
        error: function (data){
            desactiveLoader();
            $("#modal-content").addClass("modal_small");
            $("#modal-body").html(data.responseText);
            activePopup();
        } 
    }); 
}
</script>
<script>

{# si pas de ligne affectable, popup avec possibilité de creer une ligne manuelle ou d'abandonner la facture#}
{% if nbLignesCde == 0 %}
    {% if choixLad %}
        {% set titrepopup = 'Aucune affectation possible pour les commandes trouvées lors de la LAD.' | trad%}
    {% else %}
        {% set titrepopup = 'La sélection faite ne contient aucun élément en position de faire l\'objet d\'une affectation.' | trad%}
    {% endif %}
	ajaxPopup ('{{ path('Facture.popup.gestionNonFacturable') }}', '{{ titrepopup }}', '','', {'numFact': '{{ numFact }}', 'fournisseur': '{{ fournisseur }}', 'societe': '{{ societe }}', 'numCde': '{{ numCde }}', 'action': '{{ action }}', 'nonAffichageChoixCommande': '{{ nonAffichageChoixCommande }}', 'choixLad': '{{ choixLad }}'});
{% else %}
	calculTotal();
{% endif %}


/* Ajout ligne manuelle */
$('#btnCreationLigneManuelle').click(function() {    
    if($('tr[id^="ligne"]:not(.detail_ligne)').length<99999){
	    ligneAffectation('{{ path('Facture.ajax.ligneAffectation') }}', 'ligneManuelle',  $('#tableau_affectations>table>tbody'), '', '{{ facture.NUM_FACT }}', '{{action}}' );
    }else{
        activePopupErreur('{{ path('Ajax.Erreur.popupErreurAlerteEtAvertissement') }}', '', '', '', {'alerte': '{{ 'Vous ne pouvez pas créer plus de 99 999 lignes par facture.' | trad }}'});
    }
});

$('input, select, textearea').keydown(function(event){
    if(event.keyCode == 13){
    	return false;
    }
});

$(function(){
	$(window).scroll(
    	function () {
        	if ($(this).scrollTop() > 270) { 
            	$('.detail_affectations').addClass("sticky");
                $('.apercu_facture iframe').addClass("fixed custom-fixed");
            	if($(this).innerWidth() < 1280){
            		$('#content.on .detail_affectations.fixed').css('left', '240'-($(this).scrollLeft()));
            		$('#content.off .detail_affectations.fixed').css('left', '70'-($(this).scrollLeft()));
                }else{
                	$('#content.on .detail_affectations.fixed').css('left', '');
            		$('#content.off .detail_affectations.fixed').css('left', '');
                }
        	} 
            if ($(this).scrollTop() < 270) {
                $('.detail_affectations').removeClass("sticky");
                $('.apercu_facture iframe').removeClass("fixed custom-fixed");
            }
        }
	);			 
});

function updateDataBdd(path, numFact, numLig, input, CODE_CHAMPS, modeErreur)
{
	if(modeErreur)
	{
		if($('input.error, select.error, textearea.error').length > 0){
			desactiveAction();
		}
	}
	else if (input)
	{
		if(input.attr('type')=='checkbox')
		{
			var value = input.is(':checked')
		}
		else
		{
			// var value = input.val();
			switch(CODE_CHAMPS){
				case 'QUANTITE_INIT':
				case 'QUANTITE':
				case 'PU_REMISE_INIT':
				case 'PU_REMISE':
				case 'MONTANT_INIT':
				case 'MONTANT':
				case 'MT_TVA_INIT':
				case 'MT_TVA':
					var value = input.val().replace(',', '.').replace(new RegExp(' ', 'g'), '');
					break;
				default:
					var value = input.val();
					break;
			}
		}
	
		$.ajax({
		  	dataType : 'html',
			url: path,
			data: {'numFact' : numFact, 'numLig' : numLig, 'value' : value, 'CODE_CHAMPS' : CODE_CHAMPS},
			type: "POST",
			success: function(result){
				
				var str = input.attr('name');
				var res = str.substr(0, 13);
				
				if(res=='SELECT_LIGNE-' || CODE_CHAMPS == 'MT_TVA')
				{
					calculTotal();
				}

				if($('input.error, select.error, textearea.error').length== 0){
					activeAction();
				}

                if (CODE_CHAMPS == 'CODE_CDC') {
                    {{ specifique('CreationFacture', 'initCsFacLig', {'numFact' : numFact, 'numLig' : numLig, 'codeComp' : value}) }}
                }
	    	}
		});
	}
}


function desactiveAction()
{
	$('#btnTotaux button:not(#annuler)').attr('disabled', 'disabled');
	$('#divFiltre button').attr('disabled', 'disabled');
	$('#pagination li').addClass('disabled');
	$('#MsgErreur').show();
}

{{ specifique('CreationFacture', 'affectationOnChangeCdc', {numFact: numFact}) }}


function activeAction()
{
	$('#btnTotaux button:not(#annuler)').removeAttr('disabled');
	$('#divFiltre button').removeAttr('disabled');
	$('#pagination li').removeClass('disabled');
	$('#MsgErreur').hide();
}

$("[id^=zoom_TAUX_TVA]").click(function(){
	id = $(this).attr('id');
	id_input = id.replace('zoom_', 'input_');
	$('#'+id_input).trigger('focus');
});


$('.calculQTE, .calculPU, .calculMTN, .calculTAUX_TVA, .calculMTN_TVA').focus(function(){

	var id = $(this).attr('id');
	var split_id = id.split('-');

	if($('#SELECT_LIGNE-'+split_id[1]).is(':checked'))
	{
    	HT_OLD_VALUE = $('#input_MONTANT-'+split_id[1]).val();
    	TVA_OLD_VALUE = $('#input_MT_TVA-'+split_id[1]).val();
    
    	HT_OLD_VALUE = HT_OLD_VALUE.replace(' ', '');
    	TVA_OLD_VALUE = TVA_OLD_VALUE.replace(' ', '');
	}
});

$('.calculMTN, .calculMTN_TVA').change(function(){

	var id = $(this).attr('id');
	var split_id = id.split('-');

	if($('#SELECT_LIGNE-'+split_id[1]).is(':checked'))
	{
    	HT_NEW_VALUE = $('#input_MONTANT-'+split_id[1]).val();
    	TVA_NEW_VALUE = $('#input_MT_TVA-'+split_id[1]).val();
    
    	HT_NEW_VALUE = HT_NEW_VALUE.replace(' ', '');
    	TVA_NEW_VALUE = TVA_NEW_VALUE.replace(' ', '');
    
    	calculTotal(true);	
    
    	HT_OLD_VALUE = HT_NEW_VALUE;
    	TVA_OLD_VALUE = TVA_NEW_VALUE;
	}
});

changeIframe('{{facture.FIC_FACTURE_PDF}}');
desactiveLoader();
</script>
{% endblock %}