{% extends 'layout.twig' %}

{% block body %}

<script>
function actifTrClick(id) 
{
    if(!$(this).hasClass('loupe'))
    {
        var index = $('#'+id).closest('tr').attr('id');

        if ($('#' + index + 'detail').hasClass('hide_detail')) {
            $('.detail_ligne').addClass('hide_detail');
            $('.loupe').removeClass('actif');
            $('table tr').removeAttr('style');
            $('#' + index + 'detail').removeAttr('style');
            $('#'+id).addClass('actif')
            $('#' + index + 'detail').removeClass('hide_detail');
            $('#' + index).css({
            'border': '2px solid rgba(102, 175, 233,0.9)',
            'border-bottom': '0px',
            'border-top': '2px solid rgba(102, 175, 233,0.9)',
            'box-shadow': 'none'
        
            });
            $('#' + index + 'detail').css({
            'background-color': 'rgba(74, 85, 107, 0.06)',
            'border': '2px solid rgba(102, 175, 233,0.9)',
            'border-top': '0px',
            'border-bottom': '2px solid rgba(102, 175, 233,0.9)',
            'box-shadow': 'none'
            });
        } else {
            $('#'+id).removeClass('actif')
            $('#' + index + 'detail').addClass('hide_detail');
            $('#' + index).removeAttr('style');
            $('#' + index + 'detail').removeAttr('style');
      
        }
    }
}

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
            var data_url = URL.createObjectURL(this.response);
            document.querySelector('#objectFicLad').src = data_url;
        document.querySelector('#chrefChange').href = data_url;
        } else {
        console.error('no pdf :(');
        }
    }
}
</script>
	
<div class="contenu clearfix" id="acquisition">

    <h1>
        {{ 'Acquisition des factures' | trad }}

        {{ ButtonExport(path('Facture.FactureImporter.exportFactureImport'), 'form_importation_fact' , path('Ajax.Erreur.popupInformation') , path('Ajax.Outil.appelAsync'), 'Export des Factures à importer' | trad ) }}   
    </h1>
    <ul class="nav nav-tabs">
        <li class="active"><a href="#importation_facture">{{ 'Factures à importer' | trad }}</a></li>
        <li><a href="{{ path('Facture.FactureArchive.listeFactureArchive') }}">{{ 'Factures archivées' | trad }}</a></li>
        <li><a href="{{ path('Facture.FactureArchive.listeFactureArchive', {tab:'error'}) }}">{{ 'Factures en erreur' | trad }}</a></li>
    </ul>
        
    <div class="tab-content">
        <div id="importation_facture" class="tab-pane fade in active clearfix">
            <form action="" method="post" name="form_importation_fact" id="form_importation_fact" class="form clearfix" >
                <div id="tableau_acquisition">
                    <div class="row">
                        <button type="button" id="buttonTransfer" class="principal button_right">{{ 'Transférer la sélection' | trad }} </button>
                        <button type="button" id="buttonArchiverAll" class="secondaire button_right">{{ 'Archiver factures traitées' | trad }}</button>
                    </div>
                    <table class="table table-hover" style="margin-top:35px;" >
                        <thead class="thead-dark" >
                            <tr>
                                <th scope="col" width="5%">{{ 'Type' | trad }}</th>
                                <th scope="col" class ="align-left" width="300px">{{ 'Société' | trad }}</th>
                                <th scope="col" class ="align-left" width="300px">{{ 'Fournisseur' | trad }}</th>
                                <th scope="col" class="align-right">{{ 'Montant HT' | trad }}</th>
                                <th scope="col" class="align-right">{{ 'Montant TTC' | trad }}</th> 
                                <th scope="col" class ="align-right" width="70px">{{ 'Devise' | trad }}</th>            
                                <th scope="col" width="91px">{{ 'Date Scan' | trad }}</th>   
                                <td scope="col" width ="20px"></td>                               
                                <th scope="col" width="90px" data-toggle="tooltip" data-placement="left" data-html="true" class="white-tooltip">
                                    <input type="checkbox"  class="form-control checkbox" name ="clcheckbox" id ="clcheckbox" onClick ="checkAllFacture()"/>
                                </th>                                    
                            </tr>
                        </thead>
                        <tbody>
                            {% for fac in facture.ListeFactures.Facture %}       
                            {% if loop.index == 1 %}
                                <script>changeIframe('{{fac.FIC_FACTURE_PDF}}')</script>
                            {% endif %}                            
                            <tr style="cursor:pointer;" id="acquisition{{loop.index}}" onclick="changeIframe('{{fac.FIC_FACTURE_PDF}}');">
                                <td class="loupe">{{fac.TYPE}} </td>
                                <td onclick="actifTrClick('acquisition{{loop.index}}');">{{fac.SOCIETE}}</td>
                                <td onclick="actifTrClick('acquisition{{loop.index}}');">{{ convertLibelleGlobal('FOURNISS', '', fac.FOURNISSEUR_CODE, true) }}</td>
                                <td onclick="actifTrClick('acquisition{{loop.index}}');" class="montant">{{fac.TOTAL_HT | prix}}</td>
                                <td onclick="actifTrClick('acquisition{{loop.index}}');" class="montant">{{ fac.TOTAL_TTC | prix}}</td>
                                <td onclick="actifTrClick('acquisition{{loop.index}}');">{{fac.DEVISE}}</td>
                                <td onclick="actifTrClick('acquisition{{loop.index}}');">{{fac.DATE_SCAN | dateTrad}}</td>
                                <td>
                                    {% if fac.STATUT_LAD == 'E'%}
                                        <span class="statut enErreur white-tooltip">
                                            <span class="infos_tooltip top-left">
                                                
                                                {% for anomalie in fac.ListeAnomalies %}
                                                    {% if anomalie.Anomalie is iterable %}
                                                        {% for ano in anomalie.Anomalie %}
                                                            {{ano}}
                                                        {% endfor %}
                                                    {% else %}
                                                        {{anomalie.Anomalie}}
                                                    {% endif %}
                                                {% endfor %}
                                            </span>
                                        </span> 
                                    {% endif %}
                                    {% if fac.STATUT_LAD == 'A'%}
                    
                                    {% endif %}
                                    {% if fac.STATUT_LAD == 'T'%}
                                        <span class="statut transferer"></span>
                                    {% endif %}
                                </td>
                                <td>
                                    <input id="pdfNotFound{{loop.index}}" name="pdfNotFound{{loop.index}}" type="hidden" value="{{ fac.pdfNotFound }}" />
                                    {% if fac.STATUT_LAD != 'T'%}
                                    <input id ="check{{loop.index}}" type="checkbox" name="clcheckbox[]" value="{{ fac.NO_RECORD_DANS_XML}}${{ fac.FIC_FACTURE_XML }}" onclick="checkPdfFacture('{{ fac.pdfNotFound }}', 'check{{loop.index}}')" class="form-control checkk checkbox"/>
                                    {% endif %}

                                    <div class="parametrage">
                                        {{ menuContextuel('acquisition' ~ loop.index, false, arrayMenuContextuel[fac.FIC_FACTURE_PDF | convertStr]) }} 
                                    </div>
                                </td>
                            </tr>
                            <tr class="detail_ligne hide_detail" id="acquisition{{loop.index}}detail" >
                                <td colspan="9">
                                    <div class="colonne3">
                                        <p class="informations">
                                            <span class="champs_label">{{ 'Référence :' | trad }}</span>
                                            <span class="resultat">{{fac.REF_FACTURE_FOURN}}</span>
                                        </p>
                                    </div>
                                    <div class="colonne3">
                                        <p class="informations">
                                            <span class="champs_label">{{ 'Date' | trad ~ colon() }}</span>
                                            <span class="resultat">{{fac.DATE_FACTURE_FOURN | dateTrad}}</span>
                                        </p>
                                    </div>
                                </td>
                            </tr>
                            {% endfor %}
                        </tbody>
                    </table>
                </div>
                <div class="apercu_facture">
                    <div class="row">
                        {% if firstFactureValue.FIC_FACTURE_PDF != '' %}
                        <a  width="25%" height="550px;" style="position:fixed" align="middle" id ="chrefChange" href="{{ url_pj | trim}}{{firstFactureValue.FIC_FACTURE_PDF | trim }}" target="_blank" id="btn_afficher_facture"><button type="button" class="secondaire button_right">{{'Afficher' | trad }}</button></a>
                        {% endif %}
                        <button style="position:fixed;right:10px;" class="secondaire button_right">{{'Rafraîchir' | trad}}</button>
                    </div>
                    <iframe id="objectFicLad"  width="25%" height="550px;" style="position:fixed;top:308px" align="middle"></iframe>
                </div>
            </form>
            <script>                    
                {# Lorsque on va cliquer sur une colonne du tablau on va modifier le fichier PDF qui se trouve dans l'iframe #}
                

                function archiver (ficPDF)
                {
                    activeLoader();
                    $.ajax
                    ({
                        url : "{{ path('Facture.FactureImporter.archiver') }}",
                        type: 'POST',
                        dataType : 'JSON',
                        data: {'ficPDF' : ficPDF},
                        success: function (data) 
                        {    
                            desactiveLoader();
                            redirectJSWithPost('{{ path('Facture.FactureArchive.listeFactureArchive') }}');
                        }, 
                        error: function (data){
                            desactiveLoader();
                            $("#modal-content").addClass("modal_small");
                            $("#modal-body").html(data.responseText);
                            activePopup();
                        } 
                    });
                }
                function annulerTransfert (ficPDF)
                {	
                    activeLoader();
                    $.ajax
                    ({
                        url : "{{ path('Facture.FactureImporter.annulerTransfert') }}",
                        type: 'POST',
                        dataType : 'HTML',
                        data: {'ficPDF' : ficPDF},
                        success: function (html) 
                        {    
                            desactiveLoader();
                            // $('#tabClone').append(html);
                        }
                    });
                }
                
                function checkAllFacture()
                {
                    if ($("#clcheckbox").is(':checked')) {
                        // On ne coche que les factures ayant un pdf.
                        facturesSansPdf = 0;
                        $(".checkk").each(function() {
                            numLoop = $(this).attr('id').replace('check', '');
                            if($("#pdfNotFound"+numLoop).val() == 1){
                                facturesSansPdf = 1;
                            }else{
                                $(this).prop('checked', true);
                            }
                        });

                        if(facturesSansPdf){
                            // S'il y a au moins une facture sans pdf, on affiche une popup d'information.
                            ajaxPopup ('{{ path('Ajax.Erreur.popupInformation') }}', '', '','', {'message': '{{ 'Des factures ne sont pas sélectionnées, le fichier image de la facture étant absent' | trad |e('js')|raw }}'});
                        }
                    }
                    else
                    {
                        $(".checkk").prop('checked', false);
                    }
                }
                
                function checkPdfFacture(pdfNotFound, idChamp)
                {
                    // Si la facture n'a pas de pdf, on demande à l'utilisateur s'il souhaite la transférer. S'il répond positivement, la ligne sera cochée.
                    if(pdfNotFound && $("#"+idChamp).is(':checked')){
                        ajaxPopup('{{ path('Facture.FactureImporter.alertePdfNotFound') }}', '', '', '', {'onclickOui' : 'desactivePopup();', 'onclickNon' : '$("#'+idChamp+'").prop("checked", false);desactivePopup();'});
                    }
                }

                function transfertUnitaire(FIC_XML, NUM_RECORD, pdfNotFound)
                {
                    if(pdfNotFound){
                        // Si la facture n'a pas de pdf, on demande à l'utilisateur s'il souhaite la transférer.
                        ajaxPopup('{{ path('Facture.FactureImporter.alertePdfNotFound') }}', '', '', '', {'onclickOui' : 'transfert("'+FIC_XML+'", "'+NUM_RECORD+'");', 'onclickNon' : 'desactivePopup();'});
                    }else{
                        transfert(FIC_XML, NUM_RECORD);
                    }
                }

                function transfert(FIC_XML, NUM_RECORD)
                {	
                    if(NUM_RECORD){
                        data = {'FIC_XML' : FIC_XML, 'NUM_RECORD' : NUM_RECORD};
                    }else{
                        data = $('#form_importation_fact').serialize()
                    }

                    activeLoader();
                    $.ajax({
                        type:"POST", 
                        data: data, 
                        url:"{{ path('Facture.FactureImporter.transfertFacture') }}",
                        success: function(data)
                        {
                                desactiveLoader();
                                $("#modal-content").addClass('modal_small');

                                $("#modal-title").html('{{ 'Transfert Facture' | trad }}');
                                $("#modal-body").html(data);
                                activePopup ();
                                $("#post").html(data);
                        },
                        error: function()
                        {
                            $("#post").html('{{ 'Une erreur est survenue.' | trad }}');
                        }
                    });
                }
                
                {# Cette fonction va nous permettre de soumettre le formulaire pour archiver toutes les factures qui ont le statut T #} 
                $("#buttonArchiverAll" ).click(function() {  
                    activeLoader();
                    $.ajax({
                        type:"POST", 
                        data: $('#form_importation_fact').serialize(), 
                        url:"{{ path('Facture.FactureImporter.archiver') }}",
                        dataType : 'JSON',
                        success: function(data)
                        {
                            desactiveLoader();
                            redirectJSWithPost('{{path('Facture.FactureArchive.listeFactureArchive') }}', data);
                        },
                        error: function()
                        {
                            $("#post").html('{{ 'Une erreur est survenue.' | trad }}');
                        }
                    });

                    return false;
                });
                {# Lorsque on va cliquer sur le boutton transférer la selection  on va soumettre le formulaire sans rafraichir la page #}

                $("#buttonTransfer" ).click(function() {
                    transfert();
                });

                {# Pour gérer le cas de l'Iframe par rapport à la Pop-Up #}                        
                $('#objectFicLad').each(function(){
                    var url = $(this).attr("src");
                    //$(this).attr("src",url+"?wmode=transparent");
                    $(this).attr("wmode","Opaque");
                    $(this).attr("value","transparent")
                });
            </script>
        </div>  
    </div>
</div>
{% endblock %}