Index: Consistency via DMS metadata

  • DMS API key to change
  • DMS ID to change
  • Find the document on the DMS via the document’s Metadata ID number 11350Type ***** (enter the correct ID)
  • Comparison of the Account and the amount found on the DMS doc. Metadata ID 11349 and 11355, respectively

/*---------------  DMS CONNEXION  ------------------*/

var portal_api_key = "5c62623b0f63**********262475fc9dff10a1ee252a74959a068d26d***************6c1ddcf14a171591f45b85";
var pHeader = {};
pHeader["Authorization"] = "Key "+portal_api_key;
var ws = new JSE_WebService("127.0.0.1", "http", 8000);


/*--------------- FUNCTIONS ----------------------*/

var getIDDMSFromNumBL = function(pNumBL){
	var pQueryParams = {};
	pQueryParams["metadatas[11350]"] = pNumBL;
	pQueryParams["documentType"] = "****";
	pQueryParams["itemPerPage"] = 1;
	pQueryParams["page"] = 0;
	pQueryParams["includeFolders"] = "false";

	var res = ws.send("/ws/v2/search", "GET", pHeader, 60000, true, pQueryParams);
	if(res == null)
		return "";

	var jsonResponse = JSON.parse(res.StringResponse);
	if(jsonResponse != null && jsonResponse.documents != null && jsonResponse.documents.length > 0)
		return jsonResponse.documents[0].document.idDocument;

	return "";
}

/*--------------- MAIN CODE ----------------------*/

var numBL = getTextFromIndexInfo(getFirstIndexFromID(pParameters,"NUM_BL_INDEX"));
var montant = getTextFromIndexInfo(getFirstIndexFromID(pParameters,"AMOUNT_INCLUDING_VAT_INDEX"));
var compteTF = THIRDPART.personalAccount.personalAccountNumber;
var gap_montant = 0.02;

var result = new JSE_Result();
result.values = ["BL COHERENT","PETIT ECART","ECART CONSEQUENT","PAS DE COHERENCE"];
result.calculatedValue = "PAS DE COHERENCE";

if(numBL  != null && numBL != "" && montant != null && montant != ""){
	var idDMSBL = getIDDMSFromNumBL(numBL);
	if(idDMSBL == "" || idDMSBL == null)
		return result;

	var res = ws.send("/ws/v2/document/"+idDMSBL, "GET", pHeader, 60000);
	if(res == null)
		return result;

	var jsonResponse = JSON.parse(res.StringResponse);
	if(jsonResponse == null || jsonResponse.metadatas == null || jsonResponse.metadatas.length == 0)
		return result;
	
	var metadatas = jsonResponse.metadatas;
	var montantF = Math.abs(parseFloat(montant.replace(',', '.')));
	var montantBL = 0;
	var compteTBL = "";

	for(var i =0; i< metadatas.length;i++){
		if(metadatas[i].metadata.idMetadata == "11349")
		   compteTBL = metadatas[i].metadata.value;
		if(metadatas[i].metadata.idMetadata == "11355" && metadatas[i].metadata.value != "")
			montantBL = Math.abs(parseFloat(metadatas[i].metadata.value.replace(',', '.')));
	}

	if(compteTF == compteTBL){
	   if(montantF == montantBL)
		   result.calculatedValue = "BL COHERENT";
	   else if(Math.abs(montantF - montantBL) <= gap_montant)
		   result.calculatedValue = "PETIT ECART";
	   else if(Math.abs(montantF - montantBL) > gap_montant)
		   result.calculatedValue = "ECART CONSEQUENT";
	}
}

return result;