/**** AFFECTATIONS - LIGNE AFFECTATION ****/
var HT_OLD_VALUE = 0;
var TVA_OLD_VALUE = 0;
var HT_NEW_VALUE = 0;
var TVA_NEW_VALUE = 0;

function enregLigneModifFichier(input) {
	activeLoader();
	
    if($(input).attr('type') == 'checkbox' && !$(input).is(':checked'))
    {
        var value = '';
    }else
    {
        tblName = $(input).attr('name').split('-');
        switch(tblName[0]){
            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;
        }
    }
	updateDataBdd($('#pathModifFichier').val(), $('#numFact').val(), NO_LIGNE, $(input), tblName[0]);
}
function updateSelectAll(path, idBox)
{
	if ($("#"+idBox).is(':checked')) 
	{
		var post = {'update_SELECTIONNEE' : 1};
	}
	else
	{
		var post = {'update_SELECTIONNEE' : 0};
	}
	
	$.ajax({
	  	dataType : 'html',
		url: path,
		data: post,
		type: "POST",
		success: function(result){
			desactiveLoader();
			
			calculTotal();
		}
	});
}

function updateDataBdd(path, numFact, numLig, input, CODE_CHAMPS, modeErreur, codeSte = '')
{
	console.log(codeSte);

	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, 'codeSte' : codeSte},
			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();
				}
	    	}
		});
	}
}

function calculTotal(withOutAjax)
{
	if(withOutAjax)
	{
		var HT_TMP = $('#HT_Affecte').html();
		var TVA_TMP = $('#TVA_Affecte').html();
		
		HT_TMP = HT_TMP.replace(' ', '');
		TVA_TMP = TVA_TMP.replace(' ', '');

		HT_TMP = parseFloat(HT_TMP) - parseFloat(HT_OLD_VALUE);
		TVA_TMP = parseFloat(TVA_TMP) - parseFloat(TVA_OLD_VALUE);
		
		HT = parseFloat(HT_TMP) + parseFloat(HT_NEW_VALUE);
		TVA = parseFloat(TVA_TMP) + parseFloat(TVA_NEW_VALUE);

		calculTMP(HT, TVA);

	}
	else
	{
		$.ajax({
			url: global_pathCalcul,
			type: 'POST',
			dataType: 'JSON',
			success: function (myObject) 
			{				
				var HT = myObject.HT;
				var TVA = myObject.TVA;
				
				if(!HT)
				{
					HT = 0;
				}
				
				if(!TVA)
				{
					TVA = 0;
				}
				
				calculTMP(HT, TVA);
			}
		});
	}
	
	return '';
	
}

function calculTMP(HT, TVA)
{	

	$('#HT_Affecte').html(formatNombre(parseFloat(HT).toFixed(2), ' '));
	$('#TVA_Affecte').html(formatNombre(parseFloat(TVA).toFixed(2), ' '));

	ttc_facture = $('#TTC_FACTURE').val();
	ht_facture = $('#HT_FACTURE').val();
	tva_facture = $('#TVA_FACTURE').val();
	
	// calcul ecart HT
	ecart_HT = (parseFloat(HT) - parseFloat(ht_facture)).toFixed(2);
	if(ht_facture==0){
		ecart_HT_pourcent = (0).toFixed(2);
	}else{
		ecart_HT_pourcent = (ecart_HT/ht_facture*100).toFixed(2);
	}
	signeEcartHT = '';
	if(ecart_HT>0)
		signeEcartHT = '+';
	$('#ecart_HT_euro').html(signeEcartHT + formatNombre(parseFloat(ecart_HT).toFixed(2), ' ') + ' ' + $('#DEVISE').val());
	$('#ecart_HT_pourcent').html(signeEcartHT + parseFloat(ecart_HT_pourcent).toFixed(2) + ' %');


	if(ecart_HT==0)
	{
		$('#ecart_HT_euro, #ecart_HT_pourcent').removeClass('totaux_differents totaux_egaux').addClass('totaux_egaux');
		statutHT = 1;
	}
	else
	{
		$('#ecart_HT_euro, #ecart_HT_pourcent').removeClass('totaux_egaux totaux_differents').addClass('totaux_differents');
		statutHT = 0;
	}
	
	// calcul ecart TVA
	if(ttc_facture==ht_facture && TVA!=0)
	{
		// autoliquation
		$('#ecart_TVA_euro').removeClass('totaux_differents totaux_egaux').addClass('totaux_egaux').html(Autoliquidation);
		$('#ecart_TVA_pourcent').html('').hide();
		statutTva = 1;
	}
	else
	{
		ecart_TVA = (parseFloat(TVA) - parseFloat(tva_facture)).toFixed(2);
		signeEcartTVA = '';

		if(ecart_TVA>0)
			signeEcartTVA = '+';
		$('#ecart_TVA_euro').html(signeEcartTVA + formatNombre(parseFloat(ecart_TVA).toFixed(2), ' ') + ' ' + $('#DEVISE').val());
		
		if(ecart_TVA==0)
		{
			$('#ecart_TVA_pourcent').html(parseFloat(0).toFixed(2) + ' %').show();
			$('#ecart_TVA_euro, #ecart_TVA_pourcent').removeClass('totaux_differents totaux_egaux').addClass('totaux_egaux');
			statutTva = 1;
		}
		else
		{
			ecart_TVA_pourcent = (ecart_TVA/tva_facture*100).toFixed(2);
			$('#ecart_TVA_pourcent').html(signeEcartTVA + parseFloat(ecart_TVA_pourcent).toFixed(2) + ' %').show();
			$('#ecart_TVA_euro, #ecart_TVA_pourcent').removeClass('totaux_egaux totaux_differents').addClass('totaux_differents');
			statutTva = 0;
		}
	}

	// Si écart HT et TVA ok, alors affichages des boutons "Affecter" et "Affecter et Valider"
	if(statutHT==1 && statutTva==1)
	{
		$('#terminer_valider, #terminer').show();
		$('#enregistrer').removeClass('principal').addClass('secondaire');
	}
	else
	{
		$('#terminer_valider, #terminer').hide();
		$('#enregistrer').removeClass('secondaire').addClass('principal');
	}
	
	if($('.eclatementLigne').length>0)
	{
		$('#btnTotaux button[type=submit]').attr('disabled', 'disabled');
	}
	else
	{
		$('#btnTotaux button[type=submit]').removeAttr('disabled');
	}

}

function calculLigne(idLigne, typeInput, path, typeAction, pathUpdate, numFact, numLig, input, CODE_CHAMPS)
{
	activeLoader();
	if($('#input_QUANTITE-'+idLigne).val()=='' || $('#input_QUANTITE-'+idLigne).val()==' '){
		$('#input_QUANTITE-'+idLigne).val(0);
	}
	if($('#input_PU_REMISE-'+idLigne).val()=='' || $('#input_PU_REMISE-'+idLigne).val()==' '){
		$('#input_PU_REMISE-'+idLigne).val(0);
	}
	if($('#input_TAUX_TVA-'+idLigne).val()=='' || $('#input_TAUX_TVA-'+idLigne).val()==' '){
		$('#input_TAUX_TVA-'+idLigne).val(0);
	}
	if($('#input_MONTANT-'+idLigne).val()=='' || $('#input_MONTANT-'+idLigne).val()==' '){
		$('#input_MONTANT-'+idLigne).val(0);
	}
	
	qte = $('#input_QUANTITE-'+idLigne).val().replace(',', '.').replace(new RegExp(' ', 'g'), '');
	pu_remise = $('#input_PU_REMISE-'+idLigne).val().replace(',', '.').replace(new RegExp(' ', 'g'), '');
	tauxTva = $('#input_TAUX_TVA-'+idLigne).val().replace(',', '.').replace(new RegExp(' ', 'g'), '');
	montant = $('#input_MONTANT-'+idLigne).val().replace(',', '.').replace(new RegExp(' ', 'g'), '');
	qte_init_eclatementLigneInitiale = 0;
	qte_eclatementLigneInitiale = 0;
	quantite_init_eclatement = 0;

	if(typeAction == 'eclatementLigne')
	{
		idLigneInitEclatement = $('#ligne'+idLigne+' #eclatementLignePere-'+idLigne).val();
		$('#typeEclatement-'+idLigneInitEclatement).val('qte');
		qte_init_eclatementLigneInitiale = $('#QUANTITE_INIT_ECLATEMENT-'+idLigneInitEclatement).val();
		qteADeduire = 0;
		$('.tblEclatementLigne').find('[name^="QUANTITE-"]:not([name="QUANTITE-'+idLigneInitEclatement+'"])').each(function(){
			qteADeduire += parseFloat($(this).val());
			
		});

		// mise à jour des valeurs dans la ligne d'origine
		qte_eclatementLigneInitiale = parseFloat(qte_init_eclatementLigneInitiale) - parseFloat(qteADeduire);

		pu_remiseInitEclatement = $('#input_PU_REMISE-'+idLigneInitEclatement).val().replace(',', '.').replace(new RegExp(' ', 'g'), '');
		tauxTvaInitEclatement = $('#input_TAUX_TVA-'+idLigneInitEclatement).val().replace(',', '.').replace(new RegExp(' ', 'g'), '');

		$('#input_QUANTITE-'+idLigneInitEclatement).val(formatNombre(parseFloat(qte_eclatementLigneInitiale).toFixed(3), ' '));
		$('#input_MONTANT-'+idLigneInitEclatement).val(formatNombre(parseFloat(parseFloat(qte_eclatementLigneInitiale) * parseFloat(pu_remiseInitEclatement)).toFixed(2), ' '));
		$('#input_MT_TVA-'+idLigneInitEclatement).val(formatNombre(parseFloat(parseFloat(qte_eclatementLigneInitiale) * parseFloat(pu_remiseInitEclatement) * parseFloat(tauxTvaInitEclatement)/100).toFixed(2), ' '));
	
		quantite_init_eclatement = $('#QUANTITE_INIT_ECLATEMENT-'+idLigne).val().replace(',', '.').replace(new RegExp(' ', 'g'), '');
	}
	
	$('#input_QUANTITE-'+idLigne).val(formatNombre(parseFloat(qte).toFixed(3), ' '));
	$('#input_PU_REMISE-'+idLigne).val(formatNombre(parseFloat(pu_remise).toFixed(arrondiePU), ' '));
	$('#input_MONTANT-'+idLigne).val(formatNombre(parseFloat(parseFloat(qte) * parseFloat(pu_remise)).toFixed(2), ' '));
	$('#input_MT_TVA-'+idLigne).val(formatNombre(parseFloat(parseFloat(qte) * parseFloat(pu_remise) * parseFloat(tauxTva)/100).toFixed(2), ' '));
	
	params = {
		'qte': qte,
		'qte_init': quantite_init_eclatement,
		'qte_init_eclatementLigneInitiale': qte_init_eclatementLigneInitiale,
		'qte_eclatementLigneInitiale': qte_eclatementLigneInitiale,
		'pu_remise': pu_remise,
        'type': $('#TYPE').val(),
        'typeAction' : typeAction
	};
	
	
	if(typeInput=="quantite")
		input = $('#input_QUANTITE-'+idLigne);
	else
		input = $('#input_PU_REMISE-'+idLigne);

	$.ajax({
        url: path,
        type: 'POST',
        dataType: 'JSON',
        data: params,
        success: function (json) {
        	erreur = input.attr("data-original-title") + json.erreur.substring(6);

        	input.attr("data-original-title", erreur);
            if(erreur !='')
            {            	
				input.addClass( "error white-tooltip" );
				
				if(pathUpdate!==undefined && pathUpdate)
				{
					updateDataBdd(pathUpdate, numFact, numLig, input, CODE_CHAMPS, true)
				}
            }
            else
        	{
				input.removeClass( "error white-tooltip" );
            	
            	if(pathUpdate!==undefined && pathUpdate)
        		{
            		updateDataBdd(pathUpdate, numFact, numLig, input, CODE_CHAMPS)
        		}
        	}
        }
	});
	
	$('#triggerInputChange-'+idLigne).val('quantite');
	$('#input_MONTANT-'+idLigne).trigger('change');
}

function calculTVALigne(idLigne, type, path, typeAction, pathUpdate, numFact, numLig, input, CODE_CHAMPS)
{
	activeLoader();
	if($('#input_QUANTITE-'+idLigne).val()=='' || $('#input_QUANTITE-'+idLigne).val()==' '){
		$('#input_QUANTITE-'+idLigne).val(0)
	}
	if($('#input_PU_REMISE-'+idLigne).val()=='' || $('#input_PU_REMISE-'+idLigne).val()==' '){
		$('#input_PU_REMISE-'+idLigne).val(0)
	}
	if($('#input_MONTANT-'+idLigne).val()=='' || $('#input_MONTANT-'+idLigne).val()==' '){
		$('#input_MONTANT-'+idLigne).val(0)
	}
	qte = $('#input_QUANTITE-'+idLigne).val().replace(',', '.').replace(new RegExp(' ', 'g'), '');
	pu_remise = $('#input_PU_REMISE-'+idLigne).val().replace(',', '.').replace(new RegExp(' ', 'g'), '');
	ht = $('#input_MONTANT-'+idLigne).val().replace(',', '.').replace(new RegExp(' ', 'g'), '');
	tauxTva = $('#input_TAUX_TVA-'+idLigne).val().replace(',', '.').replace(new RegExp(' ', 'g'), '');
		
	mtt_init_eclatementLigneInitiale = 0;
	mtt_eclatementLigneInitiale = 0;
	
	if(typeAction == 'eclatementLigne' && $('#triggerInputChange-'+idLigne).val()=='')
	{
		idLigneInitEclatement = $('#ligne'+idLigne+' #eclatementLignePere-'+idLigne).val();
		$('#typeEclatement-'+idLigneInitEclatement).val('montant');
		tauxTvaInitEclatement = $('#input_TAUX_TVA-'+idLigneInitEclatement).val().replace(',', '.').replace(new RegExp(' ', 'g'), '');
		montantInitEclatement = $('#MONTANT_INIT_ECLATEMENT-'+idLigneInitEclatement).val().replace(',', '.').replace(new RegExp(' ', 'g'), '');
		
		// calcul du montant facturé et du montant tva facturé de la ligne initiale = idLigneInitEclatement		
		// mtt_eclatementLigneInitiale = parseFloat(montantInitEclatement) - parseFloat(ht);
		montantADeduire = 0;
		$('#eclatementLigne_'+idLigneInitEclatement).find('[name^="MONTANT-"]:not([name="MONTANT-'+idLigneInitEclatement+'"])').each(function(){
			montantADeduire += parseFloat($(this).val().replace(',', '.').replace(new RegExp(' ', 'g'), ''));
			
		});
		
		mtt_eclatementLigneInitiale = parseFloat(montantInitEclatement) - parseFloat(montantADeduire);
		
		// mise à jour des valeurs dans la ligne d'origine
		$('#input_MONTANT-'+idLigneInitEclatement).val(formatNombre(parseFloat(mtt_eclatementLigneInitiale).toFixed(2), ' '));
		$('#input_MT_TVA-'+idLigneInitEclatement).val(formatNombre(parseFloat(parseFloat(mtt_eclatementLigneInitiale) * parseFloat(tauxTvaInitEclatement)/100).toFixed(2), ' '));
		
		// si la réception n'est pas en montant
		if($('#ligneEnMontant-'+idLigne).val() == 0){
			// calcul de la quantité facturée de la ligne initiale = idLigneInitEclatement
			puRemiseInitEclatement = $('#input_PU_REMISE-'+idLigneInitEclatement).val().replace(',', '.').replace(new RegExp(' ', 'g'), '');
			qte_eclatementLigneInitiale = parseFloat(parseFloat(mtt_eclatementLigneInitiale)/parseFloat(puRemiseInitEclatement)).toFixed(3);
			$('#input_QUANTITE-'+idLigneInitEclatement).val(formatNombre(parseFloat(qte_eclatementLigneInitiale), ' '));
			// ajustement du PU_REMISE de la ligne initiale
			// TODO SI QUANTITE RECALCULE = 0
			if(qte_eclatementLigneInitiale==0){
				newPuRemiseInitEclatement = parseFloat(puRemiseInitEclatement);
			}else{
				newPuRemiseInitEclatement = parseFloat(parseFloat(mtt_eclatementLigneInitiale)/parseFloat(qte_eclatementLigneInitiale)).toFixed(5);
			}
				$('.tblEclatementLigne #input_PU_REMISE-'+idLigneInitEclatement).val(formatNombre(parseFloat(newPuRemiseInitEclatement), ' '));

			// calcul de la quantité de la ligne en cours de modification = idLigne
			qteADeduire = 0;
			$('.tblEclatementLigne').find('[name^="QUANTITE-"]:not(#input_QUANTITE-'+idLigne+')').each(function(){
				qteADeduire += parseFloat($(this).val());
			});
			qte = parseFloat($('#QUANTITE_INIT_ECLATEMENT-'+idLigneInitEclatement).val()) - parseFloat(qteADeduire);
			$('#input_QUANTITE-'+idLigne).val(formatNombre(parseFloat(qte).toFixed(3), ' '));
			// l'ajustement du PU_REMISE de la ligne est fait dans la fonction verifTVALigne
		}
	}
	
	$('#input_MONTANT-'+idLigne).val(formatNombre(parseFloat(ht).toFixed(2), ' '));
	if(tauxTva!=''){		
		$('#input_TAUX_TVA-'+idLigne).val(formatNombre(parseFloat(tauxTva).toFixed(2), ' '));
		$('#input_MT_TVA-'+idLigne).val(formatNombre(parseFloat(parseFloat(ht) * parseFloat(tauxTva)/100).toFixed(2), ' '));

		if(tauxTva==0){
			$('#input_MT_TVA-'+idLigne).attr('readonly', 'readonly');
		}
		else{
			$('#input_MT_TVA-'+idLigne).removeAttr('readonly');
		}
	}else{
		$('#input_MT_TVA-'+idLigne).val(formatNombre(parseFloat(0).toFixed(2), ' ')).attr('readonly', 'readonly');
	}
	
	if(type=="montant" && $('#ligneEnMontant-'+idLigne).val()==0 && typeAction != 'eclatementLigne'){
		params = {
				'qte': qte,
				'pu_remise': pu_remise,
				'montant': ht,
				'mtt_init_eclatementLigneInitiale': mtt_init_eclatementLigneInitiale,
				'mtt_eclatementLigneInitiale': mtt_eclatementLigneInitiale,
				'type': $('#TYPE').val(),
				'typeAction' : typeAction,
				'verificationMontantQte': ($('#ligneEnMontant-'+idLigne).val()==0 && $('#ligneManuelle-'+idLigne).val()==0)
			};
			
		$.ajax({
			url: path,
			type: 'POST',
			dataType: 'JSON',
			data: params,
			success: function (json) {
				inputName = $('#input_MONTANT-'+idLigne);
				erreur = inputName.attr("data-original-title") + json.erreur.substring(6);
				inputName.attr("data-original-title", erreur);
				if(erreur !='')
				{
					inputName.addClass( "error white-tooltip" );
					
					if(pathUpdate!==undefined && pathUpdate)
	        		{
	            		updateDataBdd(pathUpdate, numFact, numLig, input, CODE_CHAMPS, true)
	        		}
				}
				else
				{
					inputName.removeClass( "error white-tooltip" );
					
	            	if(pathUpdate!==undefined && pathUpdate)
	        		{
	            		updateDataBdd(pathUpdate, numFact, numLig, input, CODE_CHAMPS)
	        		}
				}
			}
		});
	}
	else
	{
    	if(pathUpdate!==undefined && pathUpdate)
		{
    		updateDataBdd(pathUpdate, numFact, numLig, input, CODE_CHAMPS)
		}
	}
	
	if($('#triggerInputChange-'+idLigne).val()==''){
		$('#triggerInputChange-'+idLigne).val('montantHt');
	}
	$('#input_MT_TVA-'+idLigne).trigger('change');
}

function verifTVALigne(idLigne, path, typeAction,pathUpdate, numFact, numLig, input, CODE_CHAMPS)
{
	activeLoader();
	if($('#input_QUANTITE-'+idLigne).val()=='' || $('#input_QUANTITE-'+idLigne).val()==' '){
		$('#input_QUANTITE-'+idLigne).val(0)
	}
	if($('#input_PU_REMISE-'+idLigne).val()=='' || $('#input_PU_REMISE-'+idLigne).val()==' '){
		$('#input_PU_REMISE-'+idLigne).val(0)
	}
	if($('#input_MONTANT-'+idLigne).val()=='' || $('#input_MONTANT-'+idLigne).val()==' '){
		$('#input_MONTANT-'+idLigne).val(0)
	}
	montantTva = $('#input_MT_TVA-'+idLigne).val().replace(',', '.').replace(new RegExp(' ', 'g'), '');
	tauxTva = $('#input_TAUX_TVA-'+idLigne).val().replace(',', '.').replace(new RegExp(' ', 'g'), '');
	
	mtt_tva_init_eclatementLigneInitiale = 0;
	mtt_tva_eclatementLigneInitiale = 0;

	if(typeAction == 'eclatementLigne')
	{
		if($('#triggerInputChange-'+idLigne).val()==''){
			idLigneInitEclatement = $('#ligne'+idLigne+' #eclatementLignePere-'+idLigne).val();
			$('#typeEclatement-'+idLigneInitEclatement).val('montantTva');
			tauxTvaInitEclatement = $('#input_TAUX_TVA-'+idLigneInitEclatement).val().replace(',', '.').replace(new RegExp(' ', 'g'), '');
			mtt_tva_init_eclatementLigneInitiale = $('#MT_TVA_INIT_ECLATEMENT-'+idLigneInitEclatement).val().replace(',', '.').replace(new RegExp(' ', 'g'), '');
			mtt_init_eclatementLigneInitiale = $('#MONTANT_INIT_ECLATEMENT-'+idLigneInitEclatement).val().replace(',', '.').replace(new RegExp(' ', 'g'), '');
			
			if(tauxTvaInitEclatement == '' || parseFloat(tauxTvaInitEclatement)*100 == 0)	{
				return false;
			}

			// calcul du montant tva facturé et du montant facturé de la ligne initiale = idLigneInitEclatement	
			mttTvaADeduire = 0;
			$('.tblEclatementLigne').find('[name^="MT_TVA-"]:not(#input_MT_TVA-'+idLigneInitEclatement+')').each(function(){
				mttTvaADeduire = parseFloat(mttTvaADeduire) + parseFloat($(this).val());
			});
			mtt_tva_eclatementLigneInitiale = parseFloat(mtt_tva_init_eclatementLigneInitiale) - parseFloat(mttTvaADeduire);
			mtt_eclatementLigneInitiale = parseFloat(mtt_tva_eclatementLigneInitiale) / parseFloat(tauxTvaInitEclatement) * 100;
			$('#input_MT_TVA-'+idLigneInitEclatement).val(formatNombre(parseFloat(mtt_tva_eclatementLigneInitiale).toFixed(2), ' '));
			$('#input_MONTANT-'+idLigneInitEclatement).val(formatNombre(parseFloat(mtt_eclatementLigneInitiale).toFixed(2), ' '));
			
			// calcul du montant de la ligne en cours de modification = idLigne
			montant = parseFloat(montantTva) / parseFloat(tauxTva) * 100;
			$('#input_MONTANT-'+idLigne).val(formatNombre(parseFloat(montant).toFixed(2), ' '));
			
			// si la réception n'est pas en montant
			if($('#ligneEnMontant-'+idLigne).val()==0){
				// calcul de la quantité facturée de la ligne initiale = idLigneInitEclatement			
				puRemiseInitEclatement = $('#input_PU_REMISE-'+idLigneInitEclatement).val().replace(',', '.').replace(new RegExp(' ', 'g'), '');
				qte_eclatementLigneInitiale = parseFloat(mtt_eclatementLigneInitiale)/parseFloat(puRemiseInitEclatement);
				$('#input_QUANTITE-'+idLigneInitEclatement).val(formatNombre(parseFloat(qte_eclatementLigneInitiale).toFixed(3), ' '));

				// calcul de la quantité de la ligne en cours de modification = idLigne
				puRemise = $('#input_PU_REMISE-'+idLigne).val().replace(',', '.').replace(new RegExp(' ', 'g'), '');
				qte = parseFloat(montant)/parseFloat(puRemise);
				$('#input_QUANTITE-'+idLigne).val(formatNombre(parseFloat(qte).toFixed(3), ' '));

				// ajustement du PU_REMISE de la ligne
				pu_remise = parseFloat(montant)/parseFloat(qte).toFixed(5);
				$('#input_PU_REMISE-'+idLigne).val(formatNombre(parseFloat(pu_remise).toFixed(5), ' '));
			}
		}else{
			if($('#ligneEnMontant-'+idLigne).val()==0){				
				// ajustement du PU_REMISE de la ligne
				montant = $('#input_MONTANT-'+idLigne).val().replace(',', '.').replace(new RegExp(' ', 'g'), '');
				qte = $('#input_QUANTITE-'+idLigne).val().replace(',', '.').replace(new RegExp(' ', 'g'), '');
				pu_remise = parseFloat(montant).toFixed(3)/parseFloat(qte).toFixed(5);
				
				if (isNaN(pu_remise)) {
					pu_remise = 0;
				}
				$('#input_PU_REMISE-'+idLigne).val(formatNombre(parseFloat(pu_remise).toFixed(5), ' '));
			}
		}
	}

	
	//calculTotal();

	if($('#input_TAUX_TVA-'+idLigne).val().replace(',', '.').replace(new RegExp(' ', 'g'), '') != ''){
		params = {
			'montant': $('#input_MONTANT-'+idLigne).val().replace(',', '.').replace(new RegExp(' ', 'g'), ''),
			'tauxTva': $('#input_TAUX_TVA-'+idLigne).val().replace(',', '.').replace(new RegExp(' ', 'g'), ''),
			'montantTva': montantTva,
			'mtt_tva_init_eclatementLigneInitiale' : mtt_tva_init_eclatementLigneInitiale,
			'mtt_tva_eclatementLigneInitiale' : mtt_tva_eclatementLigneInitiale,
	        'type': $('#TYPE').val()
		};
		
		$('#input_MT_TVA-'+idLigne).val(formatNombre(parseFloat(montantTva).toFixed(2), ' '));
		
		$.ajax({
			url: path,
			type: 'POST',
			dataType: 'JSON',
			data: params,
			success: function (json) {
				inputName = $('#input_MT_TVA-'+idLigne);
				erreur = inputName.attr("data-original-title") + json.erreur.substring(6);
				
				inputName.attr("data-original-title", erreur);
				if(erreur !='')
				{
					inputName.addClass( "error white-tooltip" );
					
					if(pathUpdate!==undefined && pathUpdate)
	        		{
	            		updateDataBdd(pathUpdate, numFact, numLig, input, CODE_CHAMPS, true)
	        		}
				}
				else
				{
					inputName.removeClass( "error white-tooltip" );
			
	            	if(pathUpdate!==undefined && pathUpdate)
	        		{
	            		updateDataBdd(pathUpdate, numFact, numLig, input, CODE_CHAMPS)
	        		}
				}
				desactiveLoader();
			}
		});	
		
	}
	else
	{
    	if(pathUpdate!==undefined && pathUpdate)
		{
    		updateDataBdd(pathUpdate, numFact, numLig, input, CODE_CHAMPS)
		}
	}
	
	$('#triggerInputChange-'+idLigne).val('');
	desactiveLoader();
}

function changeSousFamille(numFact, idLigne, path, pathUpdate, input, CODE_CHAMPS)
{
	if(path && $('#triggerInputChange-'+idLigne).val()==''){
		activeLoader();
		$.ajax({
			url: path,
			type: 'POST',
			dataType: 'JSON',
			data: {'CODE_SFAM' : $('#input_CODE_SFAM-'+idLigne).val(), 'societe' : $('#societe').val(), 'CODE_SI' : $('#input_CODE_SI-'+idLigne).val(), 'CODE_CDC' : $('#input_CODE_CDC-'+idLigne).val(), 'CODE_SCA' : $('#input_CODE_SCA-'+idLigne).val(), 'ID_LIGNE' : idLigne},
			success: function (json) {
				if(json.si != ''){	
					$('#input_CODE_SI-'+idLigne).val(json.si).removeClass( "error white-tooltip" ).attr("data-original-title", '').trigger('change');

					if(json.codeGestionSaisie)
					{
						$('#vide-'+idLigne).hide();
						$('#span_CG-'+idLigne).show();
						$('#CG_nonObligatoire-'+idLigne).val(json.codeGestionNonObligatoire);
					}
					else
					{
						$('#vide-'+idLigne).show();
						$('#span_CG-'+idLigne).hide();
						$('#CG_nonObligatoire-'+idLigne).val('1');
					}
					
					$('#input_ID_CG-'+idLigne).val('').trigger('change');
					$('#text_ID_CG-'+idLigne).val('').removeClass( "error white-tooltip" ).attr("data-original-title", '');
					$('#span_CG-'+idLigne).parent().removeClass('white-tooltip');
					$('#span_CG-'+idLigne).parent().find('.sec-label-tooltip').text('');
				}
				if(json.cdc != ''){	
					$('#input_CODE_CDC-'+idLigne).val(json.cdc).removeClass( "error white-tooltip" ).attr("data-original-title", '').trigger('change');
					changeCdc(numFact, idLigne);
				}
				if(json.sca != ''){	
					$('#input_CODE_SCA-'+idLigne).val(json.sca).removeClass( "error white-tooltip" ).attr("data-original-title", '').trigger('change');
				}
				desactiveLoader();				
			}, 
			error: function (data){
				desactiveLoader();
				$("#modal-content").addClass("modal_small");
				$("#modal-body").html(data.responseText);
				activePopup();
			}
		});	
	}
	var numFactCS = String(numFact).padStart(9, '0');
	initCs(window.oxaproc.path.pathInitCS, 'FAC_LIG','SSFAMILL', $('#input_CODE_SFAM-'+idLigne).val(), numFactCS+idLigne, '');

	$('#triggerInputChange-'+idLigne).val('');
	if(typeof(changeSousFamilleSpec) === 'function'){
		changeSousFamilleSpec(numFact, idLigne, pathUpdate, input, CODE_CHAMPS);
	}
}

function confirmationAxeImputation(params, idLigne)
{
	activeLoader();
	$('#ajaxSousFamille [type=checkbox]:checked').each(function(){
		imputation = $(this).attr('id');
		
		if(imputation == 'SI'){
			$('#input_CODE_SI-'+idLigne).val(params.SI.NewValeur).removeClass( "error white-tooltip" ).attr("data-original-title", '').trigger('change');
			if(params.SI.codeGestionSaisie)
			{
				$('#vide-'+idLigne).hide();
				$('#span_CG-'+idLigne).show();
				$('#CG_nonObligatoire-'+idLigne).val(params.SI.codeGestionNonObligatoire);
			}
			else
			{
				$('#vide-'+idLigne).show();
				$('#span_CG-'+idLigne).hide();
				$('#CG_nonObligatoire-'+idLigne).val('1');
			}
			$('#input_ID_CG-'+idLigne).val('').trigger('change');
			$('#text_ID_CG-'+idLigne).val('').removeClass( "error white-tooltip" ).attr("data-original-title", '');
			$('#span_CG-'+idLigne).parent().removeClass('white-tooltip');
			$('#span_CG-'+idLigne).parent().find('.sec-label-tooltip').text('');
	
		}
		if(imputation == 'CDC'){
			$('#input_CODE_CDC-'+idLigne).val(params.CDC.NewValeur).removeClass( "error white-tooltip" ).attr("data-original-title", '').trigger('change');
		}
		if(imputation == 'SCA'){
			$('#input_CODE_SCA-'+idLigne).val(params.SCA.NewValeur).removeClass( "error white-tooltip" ).attr("data-original-title", '').trigger('change');
		}
	});
	desactiveLoader();
}

function changeCdc(numFact, idLigne, pathUpdate, input, CODE_CHAMPS){
	if(typeof(changeCdcSpec) === 'function'){
		changeCdcSpec(numFact, idLigne, pathUpdate, input, CODE_CHAMPS);
	}
}


function changeTypeTva(numLig, idLigne, pathUpdate, input, CODE_CHAMPS){
	if(typeof(changeTypeTvaSpec) === 'function'){
		changeTypeTvaSpec(numLig, idLigne, pathUpdate, input, CODE_CHAMPS);
	}
}

function changeArticle(idLigne, path)
{
	activeLoader();
	$('#input_CODE_ART-'+idLigne).val();
	if($('#input_CODE_ART-'+idLigne).val()!='')
	{
		$.ajax({
			url : path,
			type : 'POST',
			dataType : 'JSON',
			data: {'CODE_ART' : $('#input_CODE_ART-'+idLigne).val(), 'CODE_STE' : $('#societe').val()},
			success : function(json){	
				$('#triggerInputChange-'+idLigne).val('article');

				$('#input_DESIGNAT-'+idLigne).val(json.DESIGN).removeClass( "error white-tooltip" ).attr("data-original-title", '');
				$('#input_DESIGNAT-'+idLigne).trigger('change');

				$('#input_CODE_SI-'+idLigne).val(json.CODE_SI).removeClass( "error white-tooltip" ).attr("data-original-title", '');
				$('#input_CODE_SI-'+idLigne).trigger('change');

				if(json.codeGestionSaisie)
				{
					$('#vide-'+idLigne).hide();
					$('#span_CG-'+idLigne).show();
					$('#CG_nonObligatoire-'+idLigne).val(json.codeGestionNonObligatoire);
				}
				else
				{
					$('#vide-'+idLigne).show();
					$('#span_CG-'+idLigne).hide();
					$('#CG_nonObligatoire-'+idLigne).val('1');
				}
				$('#input_ID_CG-'+idLigne).val('').trigger('change');
				$('#text_ID_CG-'+idLigne).val('').removeClass( "error white-tooltip" ).attr("data-original-title", '');
				$('#span_CG-'+idLigne).parent().removeClass('white-tooltip');
				$('#span_CG-'+idLigne).parent().find('.sec-label-tooltip').text('');

				$('#input_CODE_CDC-'+idLigne).val(json.CODE_CDC).removeClass( "error white-tooltip" ).attr("data-original-title", '');
				$('#input_CODE_CDC-'+idLigne).trigger('change');

				$('#input_CODE_SCA-'+idLigne).val(json.CODE_SCA).removeClass( "error white-tooltip" ).attr("data-original-title", '');
				$('#input_CODE_SCA-'+idLigne).trigger('change');
				
				$('#input_CODE_SFAM-'+idLigne).val(json.SSFAM).removeClass( "error white-tooltip" ).attr("data-original-title", '');
				$('#input_CODE_SFAM-'+idLigne).trigger('change');
	       }
	    }); 
	}
	desactiveLoader();
}

function changeArticleSiCdcSca(idLigne, path)
{
	activeLoader();
	$('#input_CODE_ART-'+idLigne).val();
	if($('#input_CODE_ART-'+idLigne).val()!='')
	{
		$.ajax({
			url : path,
			type : 'POST',
			dataType : 'JSON',
			data: {'CODE_ART' : $('#input_CODE_ART-'+idLigne).val(), 'CODE_STE' : $('#societe').val()},
			success : function(json){				
				$('#triggerInputChange-'+idLigne).val('article');

				$('#input_DESIGNAT-'+idLigne).val(json.DESIGNAT).removeClass( "error white-tooltip" ).attr("data-original-title", '');
				$('#input_DESIGNAT-'+idLigne).trigger('change');

				$('#input_CODE_SI-'+idLigne).val(json.CODE_SI).removeClass( "error white-tooltip" ).attr("data-original-title", '');
				$('#input_CODE_SI-'+idLigne).trigger('change');

				// if(json.codeGestionSaisie)
				// {
				// 	$('#vide-'+idLigne).hide();
				// 	$('#span_CG-'+idLigne).show();
				// 	$('#CG_nonObligatoire-'+idLigne).val(json.codeGestionNonObligatoire);
				// }
				// else
				// {
				// 	$('#vide-'+idLigne).show();
				// 	$('#span_CG-'+idLigne).hide();
				// 	$('#CG_nonObligatoire-'+idLigne).val('1');
				// }
				// $('#input_ID_CG-'+idLigne).val('').trigger('change');
				// $('#text_ID_CG-'+idLigne).val('').removeClass( "error white-tooltip" ).attr("data-original-title", '');
				// $('#span_CG-'+idLigne).parent().removeClass('white-tooltip');
				// $('#span_CG-'+idLigne).parent().find('.sec-label-tooltip').text('');

				$('#input_CODE_CDC-'+idLigne).val(json.CODE_CDC).removeClass( "error white-tooltip" ).attr("data-original-title", '');
				$('#input_CODE_CDC-'+idLigne).trigger('change');

				$('#input_CODE_SCA-'+idLigne).val(json.CODE_SCA).removeClass( "error white-tooltip" ).attr("data-original-title", '');
				$('#input_CODE_SCA-'+idLigne).trigger('change');
				
				$('#input_CODE_SFAM-'+idLigne).val(json.CODE_SFAM).removeClass( "error white-tooltip" ).attr("data-original-title", '');
				$('#input_CODE_SFAM-'+idLigne).trigger('change');
	       }
	    }); 
	}
	desactiveLoader();
}

function changeSI(idLigne, path)
{
	activeLoader();

	// on transforme le code en uppercase pour l'autocomplete mais on garde la version originale pour les SI dont le code est en lowercase
	var SI = $('#input_CODE_SI-'+idLigne).val().toUpperCase();
	var SITmp = $('#input_CODE_SI-'+idLigne).val();
	
	if($('#input_CODE_SI-'+idLigne).val()!='')
	{
		$.ajax({
			url : path,
			type : 'POST',
			dataType : 'JSON',
			data: {'CODE_SI' : SI, 'CODE_STE' : $('#societe').val(), 'NO_LIGNE' : idLigne, 'NUM_FACT' : $('#numFact').val()},
			success : function(json){
				var custom_tooltip_SI = $('#input_CODE_SI-'+idLigne).parent().find('.sec-label-tooltip');
				
				if (custom_tooltip_SI.length > 0) {
					custom_tooltip_SI.text(SITmp);
				}

				if(json.saisie)
				{
					$('#vide-'+idLigne).hide();
					$('#span_CG-'+idLigne).show();
					$('#CG_nonObligatoire-'+idLigne).val(json.nonObligatoire);
				}
				else
				{
					$('#vide-'+idLigne).show();
					$('#span_CG-'+idLigne).hide();
					$('#CG_nonObligatoire-'+idLigne).val('1');
					
				}
				$('#span_CG-'+idLigne).find('input').val('').removeClass( "error white-tooltip" ).attr("data-original-title", '');
				$('#span_CG-'+idLigne).parent().removeClass('white-tooltip');
				$('#span_CG-'+idLigne).parent().find('.sec-label-tooltip').text('');
				desactiveLoader();
	       }
	    }); 
	}
	else{
		$('#span_CG-'+idLigne).find('input').val('').removeClass( "error white-tooltip" ).attr("data-original-title", '').trigger('change');
 	    $('#CG_nonObligatoire-'+idLigne).val('1');
		$('#vide-'+idLigne).show();
		$('#span_CG-'+idLigne).hide();
		desactiveLoader();
	}
}

function openDetail(idLigne)
{
	$('#ligne'+idLigne+'detail').toggle();
}

function setLastNoLigne(last_NO_LIGNE, last_NO_LIGNE_tmp)
{
	$('#last_NO_LIGNE').val(last_NO_LIGNE);
	if(last_NO_LIGNE_tmp)
		$('#last_NO_LIGNE_tmp').val(last_NO_LIGNE_tmp);
	else
		$('#last_NO_LIGNE_tmp').val(last_NO_LIGNE);
}

function eclatementLigne(path, idLigne, data, facture, pathValidation, pathErreur, mode)
{
	activeLoader();
	params = {
		'facture': facture,
		'last_NO_LIGNE' : $('#last_NO_LIGNE').val(),
		'last_NO_LIGNE_tmp' : $('#last_NO_LIGNE_tmp').val(),
		'mode' : mode,
	}
	params['data'] = {};
	params['data'][0] = data;
	params['data'][0]['typeAction'] = 'eclatementLigneInit';
	params['data'][0]['QUANTITE_INIT_ECLATEMENT'] = data.QUANTITE;
	params['data'][0]['PU_REMISE_INIT_ECLATEMENT'] = data.PU_REMISE;
	params['data'][0]['MONTANT_INIT_ECLATEMENT'] = data.MONTANT;
	params['data'][0]['TAUX_TVA_INIT_ECLATEMENT'] = data.TAUX_TVA;
	params['data'][0]['MT_TVA_INIT_ECLATEMENT'] = data.MT_TVA;
	
	// remplacement du tr de la ligne a eclater par le tableau avec nouvelles lignes + boutons ajouter, annuler et valider
	if($('.eclatementLigne').length == 0){
		$('#ligne'+idLigne).replaceWith('<tr class="eclatementLigne" id="eclatementLigne_'+idLigne+'"><td colspan="11"></td></tr>');
		$('#ligne'+idLigne+'detail').remove();
		$('#eclatementLigne_'+idLigne+' td').append($('#divEclatementLigne').html());

		// Btn annuler : remettre le tr avec les anciennes valeurs
		$('#eclatementLigne_'+idLigne).find('.annulerEclatement').click(function() {
			annulerEclatement(idLigne, path, data, facture, mode);
		});
		// Btn ajout de nouvelles lignes d'éclatement
		$('#eclatementLigne_'+idLigne).find('.btnAjoutEclatementLigne').click(function() {
			ligneAffectation(path, 'eclatementLigne', $('#eclatementLigne_'+idLigne+' .tblEclatementLigne tbody'), data, facture, mode);
		});		
		// Btn valider : remettre le tr avec les nouvelles valeurs + ajouter les nouvelles lignes
		$('#eclatementLigne_'+idLigne).find('.validerEclatement').click(function() {
			validerEclatement(idLigne, path, facture, pathValidation, pathErreur, mode);
		});
	}
	else{
		$('#ligne'+idLigne).replaceWith('<tr class="eclatementLigne" id="eclatementLigne_'+idLigne+'"><td colspan="11"><div id="divEclatementLigne"><table class="tblEclatementLigne"><tbody></tbody></table></div></td></tr>');
		$('#ligne'+idLigne+'detail').remove();
	}
	
	$.ajax
	({
		url: path,
		type: 'POST',
		dataType: 'html',
		data: params,
		success: function (htmlData) 
		{
			$('#eclatementLigne_'+idLigne+' table tbody').append(htmlData);
			$('#last_NO_LIGNE_tmp').val(parseInt($('#last_NO_LIGNE_tmp').val()) + parseInt(1));
			calculTotal();
			desactiveLoader();
		}
	});
}

function annulerEclatement(idLigneInit, path, data, facture, mode)
{
	activeLoader();
	params = {
		'facture': facture,
		'mode' : mode,
	}
	
	params['data'] = {};
	params['data'][0] = data;
	params['data'][0]['typeAction'] = 'annulerEclatement';


	$.ajax
	({
		url: path,
		type: 'POST',
		dataType: 'html',
		data: params,
		success: function (htmlData) 
		{
			$('#eclatementLigne_'+idLigneInit).replaceWith(htmlData);
			$('#last_NO_LIGNE_tmp').val($('#last_NO_LIGNE').val());
			calculTotal();
			desactiveLoader();
		}
	});	
}

function validerEclatement(idLigneInit, path, facture, pathValidation, pathErreur, mode)
{
	activeLoader();
	params = {
		'facture': facture,
		'data': {},
		'idLigneInitEclatement': idLigneInit,
		'tblIdLigne': {},
		'mode' : mode,
		'typeAction' : 'valideEclatement',
	};	
	
	tblIdLigne = {};
	$('#eclatementLigne_'+idLigneInit+' .tblEclatementLigne tr:even ').each(function(){
		idLigne = $(this).find('[name^="NO_LIGNE-"]').attr('name').split('-')[1];
		params['tblIdLigne'][idLigne] = idLigne;
    });
	
	$('#eclatementLigne_'+idLigneInit+' .tblEclatementLigne tr').find('input:not([type=checkbox]), select, textearea').each(function(){
		params['data'][$(this).attr('name')] = $(this).val();
	});
	$('#eclatementLigne_'+idLigneInit+' .tblEclatementLigne tr').find('input[type=checkbox]').each(function(){
		value = '';
		if($(this).is(':checked')){
			value = 'on';
		}
		params['data'][$(this).attr('name')] = value;
	});

	$.ajax
	({
		url: pathValidation,
		type: 'POST',
		dataType: 'JSON',
		data: params,
		success: function (json) 
		{
			if(json.erreur == '')
			{
				params['data'] = json.data;
				$.ajax
				({
					url: path,
					type: 'POST',
					dataType: 'html',
					data: params,
					success: function (htmlData) 
					{
						$('#eclatementLigne_'+idLigneInit).replaceWith(htmlData);
						$('#last_NO_LIGNE').val($('#last_NO_LIGNE_tmp').val());
						calculTotal();
						desactiveLoader();
					}
				});	
			}
			else
			{
				desactiveLoader();
				activePopupErreur(pathErreur, '', json.erreur);
			}
		}
	});	
}

function suppressionLigneEclatement(idLigne)
{
	activeLoader();
	idLigneInitEclatement = $('#ligne'+idLigne+' #eclatementLignePere-'+idLigne).val();
	$('[id^=ligne'+idLigne+']').remove();

	// mise à jour des valeurs dans la ligne initiale = idLigneInitEclatement	
	typeEclatement = $('#typeEclatement-'+idLigneInitEclatement).val();
	switch(typeEclatement){
		case 'qte':
			qte_init_eclatementLigneInitiale = $('#QUANTITE_INIT_ECLATEMENT-'+idLigneInitEclatement).val();
			qteADeduire = 0;
			$('.tblEclatementLigne').find('[name^="QUANTITE-"]:not([name="QUANTITE-'+idLigneInitEclatement+'"])').each(function(){
				qteADeduire += parseFloat($(this).val());
			});
			qte_eclatementLigneInitiale = parseFloat(qte_init_eclatementLigneInitiale) - parseFloat(qteADeduire);

			pu_remiseInitEclatement = $('#input_PU_REMISE-'+idLigneInitEclatement).val().replace(',', '.').replace(new RegExp(' ', 'g'), '');
			tauxTvaInitEclatement = $('#input_TAUX_TVA-'+idLigneInitEclatement).val().replace(',', '.').replace(new RegExp(' ', 'g'), '');

			$('#input_QUANTITE-'+idLigneInitEclatement).val(formatNombre(parseFloat(qte_eclatementLigneInitiale).toFixed(3), ' '));
			$('#input_MONTANT-'+idLigneInitEclatement).val(formatNombre(parseFloat(parseFloat(qte_eclatementLigneInitiale) * parseFloat(pu_remiseInitEclatement)).toFixed(2), ' '));
			$('#input_MT_TVA-'+idLigneInitEclatement).val(formatNombre(parseFloat(parseFloat(qte_eclatementLigneInitiale) * parseFloat(pu_remiseInitEclatement) * parseFloat(tauxTvaInitEclatement)/100).toFixed(2), ' '));
			break;
		case 'montant':
			tauxTvaInitEclatement = $('#input_TAUX_TVA-'+idLigneInitEclatement).val().replace(',', '.').replace(new RegExp(' ', 'g'), '');
			montantInitEclatement = $('#MONTANT_INIT_ECLATEMENT-'+idLigneInitEclatement).val().replace(',', '.').replace(new RegExp(' ', 'g'), '');
			
			// calcul du montant facturé et du montant tva facturé de la ligne initiale = idLigneInitEclatement		
			// mtt_eclatementLigneInitiale = parseFloat(montantInitEclatement) - parseFloat(ht);
			montantADeduire = 0;
			$('#eclatementLigne_'+idLigneInitEclatement).find('[name^="MONTANT-"]:not([name="MONTANT-'+idLigneInitEclatement+'"])').each(function(){
				montantADeduire += parseFloat($(this).val().replace(',', '.').replace(new RegExp(' ', 'g'), ''));				
			});			
			mtt_eclatementLigneInitiale = parseFloat(montantInitEclatement) - parseFloat(montantADeduire);
			
			// mise à jour des valeurs dans la ligne d'origine
			$('#input_MONTANT-'+idLigneInitEclatement).val(formatNombre(parseFloat(mtt_eclatementLigneInitiale).toFixed(2), ' '));
			$('#input_MT_TVA-'+idLigneInitEclatement).val(formatNombre(parseFloat(parseFloat(mtt_eclatementLigneInitiale) * parseFloat(tauxTvaInitEclatement)/100).toFixed(2), ' '));
			
			// si la réception n'est pas en montant
			if($('#ligneEnMontant-'+idLigneInitEclatement).val()==0){
				// calcul de la quantité facturée de la ligne initiale = idLigneInitEclatement
				puRemiseInitEclatement = $('#input_PU_REMISE-'+idLigneInitEclatement).val().replace(',', '.').replace(new RegExp(' ', 'g'), '');
				qte_eclatementLigneInitiale = parseFloat(mtt_eclatementLigneInitiale)/parseFloat(puRemiseInitEclatement);
				$('#input_QUANTITE-'+idLigneInitEclatement).val(formatNombre(parseFloat(qte_eclatementLigneInitiale).toFixed(3), ' '));
				// ajustement du PU_REMISE de la ligne initiale
				newPuRemiseInitEclatement = parseFloat(mtt_eclatementLigneInitiale)/parseFloat(qte_eclatementLigneInitiale).toFixed(3);
				$('.tblEclatementLigne #input_PU_REMISE-'+idLigneInitEclatement).val(formatNombre(parseFloat(newPuRemiseInitEclatement).toFixed(5), ' '));
			}
			break;
		case 'montantTva':
			tauxTvaInitEclatement = $('#input_TAUX_TVA-'+idLigneInitEclatement).val().replace(',', '.').replace(new RegExp(' ', 'g'), '');
			mtt_tva_init_eclatementLigneInitiale = $('#MT_TVA_INIT_ECLATEMENT-'+idLigneInitEclatement).val().replace(',', '.').replace(new RegExp(' ', 'g'), '');
			mtt_init_eclatementLigneInitiale = $('#MONTANT_INIT_ECLATEMENT-'+idLigneInitEclatement).val().replace(',', '.').replace(new RegExp(' ', 'g'), '');
			
			if(tauxTvaInitEclatement == '' || parseFloat(tauxTvaInitEclatement)*100 == 0)	{
				return false;
			}
			
			// calcul du montant tva facturé et du montant facturé de la ligne initiale = idLigneInitEclatement	
			mttTvaADeduire = 0;
			$('#eclatementLigne_'+idLigneInitEclatement).find('[name^="MT_TVA-"]:not(#input_MT_TVA-'+idLigneInitEclatement+')').each(function(){
				mttTvaADeduire = parseFloat(mttTvaADeduire) + parseFloat($(this).val());
			});
			mtt_tva_eclatementLigneInitiale = parseFloat(mtt_tva_init_eclatementLigneInitiale) - parseFloat(mttTvaADeduire);
			mtt_eclatementLigneInitiale = parseFloat(mtt_tva_eclatementLigneInitiale) / parseFloat(tauxTvaInitEclatement) * 100;
			$('#input_MT_TVA-'+idLigneInitEclatement).val(formatNombre(parseFloat(mtt_tva_eclatementLigneInitiale).toFixed(2), ' '));
			$('#input_MONTANT-'+idLigneInitEclatement).val(formatNombre(parseFloat(mtt_eclatementLigneInitiale).toFixed(2), ' '));
			
			// si la réception n'est pas en montant
			if($('#ligneEnMontant-'+idLigneInitEclatement).val()==0){
				// calcul de la quantité facturée de la ligne initiale = idLigneInitEclatement			
				puRemiseInitEclatement = $('#input_PU_REMISE-'+idLigneInitEclatement).val().replace(',', '.').replace(new RegExp(' ', 'g'), '');
				qte_eclatementLigneInitiale = parseFloat(mtt_eclatementLigneInitiale)/parseFloat(puRemiseInitEclatement);
				$('#input_QUANTITE-'+idLigneInitEclatement).val(formatNombre(parseFloat(qte_eclatementLigneInitiale).toFixed(3), ' '));
			}
			break;
	}
	
	
	desactiveLoader();
}

function ligneAffectation(path, type, div, data, facture, mode, ligFact)
{
	activeLoader();
	params = {
		'data': data,
		'facture': facture,
		'mode' : mode,
		'ligFact' : ligFact,
	}
	
	if(type=="ligneManuelle" || type=="duplicationLigne")
	{
		params['data'] = {};
		params['data'][0] = {};
		if($('#last_NO_LIGNE').val())
			last_NO_LIGNE = $('#last_NO_LIGNE').val();
		else
			last_NO_LIGNE = 0;
		params['data'][0]['NO_LIGNE'] = parseInt(last_NO_LIGNE)+parseInt(1);
		$('#last_NO_LIGNE').val(parseInt(last_NO_LIGNE)+parseInt(1));
	}
	else if(type=="eclatementLigne")
	{
		if($('#eclatementLignePere-'+data['NO_LIGNE']).length == 1 && $('#eclatementLignePere-'+data['NO_LIGNE']).val() != ''){
			lignePere = $('#eclatementLignePere-'+data['NO_LIGNE']).val();
		}
		else{
			lignePere = data['NO_LIGNE'];
		}
		
		params['data'] = {};
		params['data'][0] = data;
		last_NO_LIGNE = $('#last_NO_LIGNE_tmp').val();
		params['data'][0]['NO_LIGNE_PERE'] = lignePere;
		params['data'][0]['NO_LIGNE'] = parseInt(last_NO_LIGNE)+parseInt(1);
	}
	
	params['typeAction'] = type;
	if(type!=''){
		$.each(params['data'], function( index, value ) {
			params['data'][index]['typeAction'] = type;
		});
	}

	
	$.ajax
	({
		url: path,
		type: 'POST',
		dataType: 'html',
		data: params,
		success: function (htmlData) 
		{
			switch(type)
			{
				case 'eclatementLigne':
					div.append(htmlData);
					$('#last_NO_LIGNE_tmp').val(params['data'][0]['NO_LIGNE']);
					calculTotal();
					break;
				case 'ligneManuelle':
					div.append(htmlData);
					$('#last_NO_LIGNE').val(params['data'][0]['NO_LIGNE']);
					$('#last_NO_LIGNE_tmp').val(params['data'][0]['NO_LIGNE']);
					$('#input_NUM_CDE-'+params['data'][0]['NO_LIGNE']).focus();
					break;
				case 'duplicationLigne':
					div.append(htmlData);
					calculTotal();
					break;
				default:
					div.append(htmlData);
					break;
			}
			getAllSelectInputCdeArt();
			desactiveLoader();
		}
	});	
}

function handleSwitchOptionNUMCDEorCODEARTICLE(e)
	{
		const parentChildren = e.target.parentElement.parentElement.children;
		
		if($(e.target).val() == 'numCde' )
		{
			$(parentChildren[2].children[0].children[0]).val('');
			$(parentChildren[1].children[0].children[0]).val('');
			$(parentChildren[2]).hide();
			$(parentChildren[1]).show();
		}
		else
		{
			$(parentChildren[2].children[0].children[0]).val('');
			$(parentChildren[1].children[0].children[0]).val('');
			$(parentChildren[1]).hide();
			$(parentChildren[2]).show();	
		}
	}

function getAllSelectInputCdeArt() {
		const allLines = document.querySelectorAll('[id^="input_selectOptionNUMCDEorCODEARTICLE"]');

		for(line of allLines)
		{			
			line.addEventListener('change', handleSwitchOptionNUMCDEorCODEARTICLE);
			line.parentElement.classList.add('inputSelectCdeArtLine');
			$(line.parentElement.parentElement.children[2]).hide();
			$(line.parentElement.parentElement.children[1]).show();

			line.parentElement.parentElement.children[1].style.maxWidth = '50%';
			line.parentElement.parentElement.children[2].style.maxWidth = '50%';
		}
	}


/**** POPUP FACTURE CALCUL POURCENTAGE ****/
function calculPourcentage(formCalculPourcentage)
{
	montant = $('#'+formCalculPourcentage+' #input_MONTANT').val().replace(',', '.').replace(new RegExp(' ', 'g'), '');
	PU_REMISE_INIT = $('#'+formCalculPourcentage+' #PU_REMISE_INIT').val().replace(',', '.').replace(new RegExp(' ', 'g'), '');
	
	if($.isNumeric(montant)){
		$('#'+formCalculPourcentage+' button.principal').removeAttr('disabled').show();
		if(montant==$('#'+formCalculPourcentage+' #MONTANT_INIT').val().replace(',', '.').replace(new RegExp(' ', 'g'), '')){
			$('#'+formCalculPourcentage+' #input_MONTANT').val(formatNombre(parseFloat(montant).toFixed(2), ' '));
			$('#'+formCalculPourcentage+' #input_PU').val(formatNombre(parseFloat(PU_REMISE_INIT).toFixed(5), ' '));
			QUANTITE_INIT = $('#'+formCalculPourcentage+' #QUANTITE_INIT').val().replace(',', '.').replace(new RegExp(' ', 'g'), '');
			$('#'+formCalculPourcentage+' #input_QUANTITE').val(formatNombre(parseFloat(QUANTITE_INIT).toFixed(3), ' '));
		}
		else{
			quantite = parseFloat(montant) / parseFloat(PU_REMISE_INIT);
			pu_remise = parseFloat(montant).toFixed(5) / parseFloat(quantite).toFixed(3);
			
			$('#'+formCalculPourcentage+' #input_MONTANT').val(formatNombre(parseFloat(montant).toFixed(2), ' '));
			$('#'+formCalculPourcentage+' #input_PU').val(formatNombre(parseFloat(pu_remise).toFixed(5), ' '));
			$('#'+formCalculPourcentage+' #input_QUANTITE').val(formatNombre(parseFloat(quantite).toFixed(3), ' '));
		}
	}
	else{
		$('#'+formCalculPourcentage+' button.principal').attr('disabled', 'disabled').hide();
	}
}

function validerCalculPourcentage(formCalculPourcentage, formAffectation, pathVerifHTLigne)
{
	activeLoader();
	NO_LIGNE = $('#'+formCalculPourcentage+' #NO_LIGNE').val();
	$('#'+formAffectation+' #input_MONTANT-'+NO_LIGNE).val($('#'+formCalculPourcentage+' #input_MONTANT').val()).removeClass( "error white-tooltip" ).attr("data-original-title", '');
	$('#'+formAffectation+' #input_PU_REMISE-'+NO_LIGNE).val($('#'+formCalculPourcentage+' #input_PU').val()).removeClass( "error white-tooltip" ).attr("data-original-title", '');
	$('#'+formAffectation+' #input_QUANTITE-'+NO_LIGNE).val($('#'+formCalculPourcentage+' #input_QUANTITE').val()).removeClass( "error white-tooltip" ).attr("data-original-title", '');
	calculTVALigne(NO_LIGNE, 'montant', pathVerifHTLigne);
	
	enregLigneModifFichier($('#'+formAffectation+' #input_MONTANT-'+NO_LIGNE)); 
	enregLigneModifFichier($('#'+formAffectation+' #input_PU_REMISE-'+NO_LIGNE)); 
	enregLigneModifFichier($('#'+formAffectation+' #input_QUANTITE-'+NO_LIGNE));
	
	// calculTotal();
	desactiveLoader();
}

function duplicateLigne(path, numFact, ligne, action)
{
	ligneAffectation(path, 'duplicationLigne',  $('#tableau_affectations>table>tbody'), '', numFact, action, ligne );
}