function calculeRemise()
{
	var PU = parseFloat($('#input_ligne_PU').val().replace(' ', '').replace(',', '.'));
	var Quantite =parseFloat($('#input_ligne_QTE_COMM').val().replace(' ', '').replace(',', '.'));
	var Remise = parseFloat($('#input_ligne_REMISE').val().replace(' ', '').replace(',', '.'));

	if (!PU) {
		Remise = 0;
	}

	if (!Quantite) {
		Quantite = 0;
	}

	if (!Remise) {
		Remise = 0;
	}

	var puRemise = parseFloat(PU * (1-(Remise/100)));
	var HTremise = parseFloat((PU*Quantite)* (1-(Remise/100)));
	var TTCNonRemise = parseFloat((PU*Quantite));

	$('#input_ligne_PUR').val(formatNombre(puRemise.toFixed(2), ' '));
	$('#input_ligne_HTR').val(formatNombre(HTremise.toFixed(2), ' '));
	$('#input_ligne_HTNR').val(formatNombre(TTCNonRemise.toFixed(2), ' '));
	$('#cellMontantHT').html(formatNombre(HTremise.toFixed(2), ' '));
}

/* on vérifie qu'un input idLigneModeModif existe, 
 * si c'est le cas, c'est qu'une ligne est déjà en création/modification 
 * Dans ce cas, on éxécute la validation de la ligne
 * Si après validation la ligne existe toujours, on fait rien. 
 * La popup d'erreur de la ligne s'affichera et indiquera les elements a corigé a l'utilsateur
 * Dans le cas contraire, la ligne sera créer et une nouvelle ligne s'ouvrira
 */
function addCaLigne() {
	var affichageNewligne = false;
	if($('.idLigneCde').length>998)
	{
		alert('Vous ne pouvez pas créer plus de 999 lignes par commandes.');
		return false;
	}
	
	var modeModifActif = $('#idLigneModeModif').val();
	if(modeModifActif) {
		affichageNewligne = validationLigne(
			window.formCdeUpdateConfig.pathValidateLigne,
			modeModifActif
		);
	} else {
		affichageNewligne = true;
	}

	if(affichageNewligne) {
		activeLoader();
		var index = $('.idLigneCde').last().attr('data-idLigne');
		
		if(index=== undefined)
			index = 0;

		index = parseInt(index) + 1;

		// TODO : investigate when "saving" caLigne every client-side validator are triggered, why ?
		
		$.ajax({
		  	dataType : 'html',
			url: window.formCdeUpdateConfig.pathAddLigne,
//			data: {index : index},
			data : $('#form_creationCde').serialize()+'&index='+index,
			type: "POST",
			success: function(result){
				// TODO : remove
				var parametreJS = '<script type="text/javascript" src="'+baseUrl+'js/parametre.js"/>';
				var globalJS = '<script type="text/javascript" src="'+baseUrl+'js/global.js"/>';
				var validator = '<script type="text/javascript" src="'+baseUrl+'js/validator.js"/>';
	
				$('table#ligneCde tbody tr:last-child').after(result+'<tr id="LIGNE'+index+'JS">'+parametreJS+globalJS+validator+'</tr>');
				
				desactiveLoader();
				document
					.getElementById('LIGNE'+(index))
					.scrollIntoView({ behavior: "smooth", block: "start" });
			}
		});
	}
}

function modificationLigne(index, path, pathValidation)
{
	var affichageNewligne = false;
	var modeModifActif = $('#idLigneModeModif').val();
	if(modeModifActif)
	{
		affichageNewligne = validationLigne(pathValidation, modeModifActif);
	}
	else
	{
		affichageNewligne = true;
	}

	
	if(affichageNewligne)
	{
		activeLoader();

		var cdeExp = false;
		if ($('#input_CDE_EXP').is(':checked')) {
			cdeExp = true;
		}
		
		$.ajax({
		  	dataType : 'html',
			url: path,
			data: {index : index, CDE_EXP : cdeExp},
			type: "POST",
			success: function(result){
				
				var parametreJS = '<script type="text/javascript" src="'+baseUrl+'js/parametre.js"/>';
				var globalJS = '<script type="text/javascript" src="'+baseUrl+'js/global.js"/>';
				var validator = '<script type="text/javascript" src="'+baseUrl+'js/validator.js"/>';
	
				$('#LIGNE'+index+'NON_MODIF').before(result+'<tr id="LIGNE'+index+'JS">'+parametreJS+globalJS+validator+'</tr>');
				
				$('#LIGNE'+index+'NON_MODIF').remove();

				$('#LIGNE'+index+'NON_MODIF_AVLIGNE').remove();
				$('#LIGNE'+index+'NON_MODIF_SSTOAPR').remove();
				
				desactiveLoader();
			}
		});
	}
}

function validationLigne(path, idLigne)
{
    activeLoader();
    $.ajax({
    	dataType : 'html',
    	url : path ,
        type: 'POST',
        async: false,
        data: $('#form_creationCde').serialize(),
		success: function (data) {
			$("#ligneCde > tbody:last").append(data);
			
			$('#LIGNE'+idLigne+'').remove();
			$('#LIGNE'+idLigne+'detail').remove();
			$('#LIGNE'+idLigne+'JS').remove();
			desactiveLoader();

			$('#nb_affectation_ligne').html($('.idLigneCde').length);
			
			refrechDiv(window.location.pathname, 'montantCde', '');
        },
        error: function (xhr){
			desactiveLoader();
            activePopup(
				null,
				xhr.responseText,
				"modal_small"
			); 
        }
    });
};

function validationCde(confirm)
{
	
	let form = document.getElementById('form_creationCde');
	let formData = new FormData(form);
	if ( confirm ) {
		formData.append('confirm','1');
	}
	activeLoader();
	$.ajax({
		url: form.action,
		type: 'POST',
		dataType: 'html',
		data: formData,
		contentType: false,
        processData: false,
		success: function (htmlData) {
			$("#modal-content").addClass("modal_small");
			$("#modal-body").html(htmlData);
			activePopup();
			desactiveLoader();
		},
		error: function (xhr){
			
			let response = JSON.parse(xhr.responseText);
			if (response.type == 'confirm') {
				desactiveLoader();
				activePopup(
					'Erreur validation', // TODO : translate
					response.popupHtml,
					'modal_small'
				);
				document.querySelector('[data-popupwarning-cancel]')
					.addEventListener('click', function () {
						desactivePopup();
					});
				document.querySelector('[data-popupwarning-continue]')
					.addEventListener('click', function () {
						// Resend form with confirm
						validationCde(true);
						desactivePopup();
					});
				return;
			}

			window.location.href = response.path;
		}
	});
}




/* CLAUSE */

function ajoutClause(path, pathValidation)
{
	var affichageNewClause = false;
	var index = $('.idClauseCde').last().attr('data-idClause');
	if(index=== undefined)
	{
		index = 1;
	}
	else
	{
		index = parseInt(index)+1;
	}
	
	var clauseModifActif = $('#clause_NO_ORDRE').val();

	if(clauseModifActif)
	{
		affichageNewClause = validationClause(pathValidation, clauseModifActif);
		console.log(affichageNewClause);
	}
	else
	{
		affichageNewClause = true;
	}

	if(affichageNewClause)
	{
		$.ajax({
		  	dataType : 'html',
			url: path,
			data: {index : index},
			type: "POST",
			success: function(result){
				
				var parametreJS = '<script type="text/javascript" src="'+baseUrl+'js/parametre.js"/>';
				var globalJS = '<script type="text/javascript" src="'+baseUrl+'js/global.js"/>';
				var validator = '<script type="text/javascript" src="'+baseUrl+'js/validator.js"/>';
	
				$('table#tabClause tbody tr:last-child').before(result+'<tr id="CLAUSE'+(parseInt(index))+'JS">'+parametreJS+globalJS+validator+'</tr>');
				
				desactiveLoader();
				//$('html,body').animate({scrollTop: $('#CLAUSE'+(parseInt(index)+1)+'').offset().top},'slow');
			}
		});
	}
}

function modificationClause(index, path, pathValidation)
{
	console.log(index);
	var affichageNewClause = false;
	var clauseModifActif = $('#clause_NO_ORDRE').val();
	if(clauseModifActif)
	{
		affichageNewClause = validationLigne(pathValidation, clauseModifActif);
	}
	else
	{
		affichageNewClause = true;
	}

	
	if(affichageNewClause)
	{
		activeLoader();
		
		$.ajax({
		  	dataType : 'html',
			url: path,
			data: {index : index},
			type: "POST",
			success: function(result){
				
				var parametreJS = '<script type="text/javascript" src="'+baseUrl+'js/parametre.js"/>';
				var globalJS = '<script type="text/javascript" src="'+baseUrl+'js/global.js"/>';
				var validator = '<script type="text/javascript" src="'+baseUrl+'js/validator.js"/>';
	
				$('#CLAUSE'+index+'NON_MODIF').before(result+'<tr id="CLAUSE'+index+'JS">'+parametreJS+globalJS+validator+'</tr>');
				$('#CLAUSE'+index+'NON_MODIF').remove();

				
				desactiveLoader();
			}
		});
	}
}

function validationClause(path, idClause)
{
	var test;
	activeLoader();
    $.ajax({
    	dataType : 'html',
    	url : path ,
        type: 'POST',
        async: false,
        data: $('#form_creationCde').serialize(),
        success: function (data) {       
        	desactiveLoader();
            $("#modal-content").addClass("modal_small");
    		$("#modal-body").html(data);
            activePopup();
            test = false;
        },
        error: function (data){
			$('#CLAUSE'+idClause+'JS').after(data.responseText);
			
			$('#CLAUSE'+idClause+'').remove();
			$('#CLAUSE'+idClause+'JS').remove();
			desactiveLoader();

			 test = true;
        }
    });
    
    return test;
};

function deleteClause(path, idClause)
{
	var confirmation = confirm(messageDeleteClause+' '+idClause+' ?');
	
	if(confirmation)
	{
		activeLoader();
	    $.ajax({
	    	dataType : 'html',
	    	url : path ,
	        type: 'POST',
	        data: {clause_NO_ORDRE : idClause},
	        success: function (data) {       
	        	desactiveLoader();
	
	        	$('#CLAUSE'+idClause+'NON_MODIF').remove();
	        },
	    });
	}
}

function deleteLigne(path, idLigne)
{
	var confirmation = confirm(messageDeleteLigne+' '+idLigne+' ?');
	
	if(confirmation)
	{
		activeLoader();
	    $.ajax({
	    	dataType : 'html',
	    	url : path ,
	        type: 'POST',
	        success: function (data) {       
	        	desactiveLoader();
	
	        	$('#LIGNE'+idLigne+'NON_MODIF').remove();

				refrechDiv(window.location.pathname, 'montantCde');
	        },
	    });
	}
}

