Files
Mareon/ax/SRC/F_GetOpdrachtenUitvoer.js
Marcel Bourseau f161ffb7d2 MARX#69220 Koppeling Mareon -> Twinq: statusupdates van opdracht naar Twinq
svn path=/Mareon/trunk/; revision=54249
2021-12-21 15:28:25 +00:00

97 lines
4.1 KiB
JavaScript

// --------------------------------------------------------------------------------------
// F_GetOpdrachtenUitvoer.js
// Copyright 2019 SG|facilitor. 053-4800 700, helpdesk@mareon.nl
// Written by MB (2019)
//
// --------------------------------------------------------------------------------------
function F_GetOpdrachten_Uitvoer()
{
var v_API = "UITVOERING_OPDR_4AX";
var v_APIKEY = G_marx_apikey;
var v_req = "<GetUITVOERING_OPDR_4AX><adapterversion>" + G_Mareon_Adapter + "</adapterversion><APIkey>" + v_APIKEY + "</APIkey></GetUITVOERING_OPDR_4AX>"
var v_type = 1; // xml
var v_soap_envelop = 1; //soap-envelop eromheen
var v_resp = apiFCLT(G_marx_url, v_API, v_APIKEY, v_req, v_type, v_soap_envelop, 0);
var l_node;
__Log("F_GetOpdrachten_Uitvoer: " + v_resp.text, 3);
// Uitlezen van XML's...
var i = 1;
var strQuery = "//xml/mld_ordr[" + i + "]";
var l_deelxml = v_resp.selectSingleNode(strQuery);
while (l_deelxml)
{
l_node = strQuery + "/ax_company_id";
var v_company_id = v_resp.selectSingleNode(l_node).text;
l_node = strQuery + "/mld_opdr_ordernr";
var v_taskId = v_resp.selectSingleNode(l_node).text;
l_node = strQuery + "/mld_opdr_externnr";
var v_externnr = v_resp.selectSingleNode(l_node).text;
var l_node = strQuery + "/mld_opdr_opmerking";
var v_extraInfo = v_resp.selectSingleNode(l_node).text;
__Log("v_company_id: " + v_company_id,2);
__Log("v_taskId: " + v_taskId,2);
__Log("v_externnr: " + v_externnr,2);
__Log("v_extraInfo: " + v_extraInfo,3);
//MARX#56792: XML equivalent van & < > etc toepassen...
v_extraInfo = escapeXml(v_extraInfo);
GEN_UitvoeringServiceTask(v_company_id, "", "", v_taskId, "UIT", v_externnr, v_extraInfo, "-1");
i = i + 1;
var strQuery = "//xml/mld_ordr[" + i + "]";
l_deelxml = v_resp.selectSingleNode(strQuery);
}
}
function GEN_UitvoeringServiceTask(v_company_id, v_woco_gln, v_lev_gln, v_taskId, v_statuscode, v_externnr, v_extraInfo, v_date)
{
var v_resp;
if (AX_or_Tobias() == "A") {
v_resp = A_UpdatePurchStatus(v_company_id, v_statuscode, v_externnr, v_extraInfo, v_date);
}
if (AX_or_Tobias() == "A12") {
v_resp = A2012_UpdatePurchStatus(v_company_id, v_statuscode, v_externnr, v_extraInfo, v_date);
}
if (AX_or_Tobias() == "A365") {
v_resp = A365_StatusLog(v_company_id, v_statuscode, v_externnr, v_extraInfo, v_date, 1);
}
if (AX_or_Tobias() == "T") {
v_resp = {api_status_code: 1, api_status_message: "", api_response_message: ""};
}
if (AX_or_Tobias() == "F") {
v_resp = {api_status_code: 1, api_status_message: "", api_response_message: ""};
}
if (AX_or_Tobias() == "R") {
v_resp = R_SetOpdrachtStatus (v_company_id, v_taskId, v_externnr, v_statuscode, "", v_extraInfo);
}
if (AX_or_Tobias() == "TQ") {
v_resp = TQ_SetOpdrachtStatus (v_company_id, v_woco_gln, v_lev_gln, v_taskId, v_externnr, v_statuscode, v_extraInfo, v_date);
}
return v_resp;
}
// Dezelfde functie als GEN_UitvoeringServiceTask, maar nadat bericht is gestuurd, wordt deze laatste onderbreekstatus in Mareon gewist, voor de volgende keer altijd (=onvoorwaardelijk) een onderbreekcode wordt gestuurd.
function GEN_UitvoeringServiceTask_ResetOnderbreek (v_opdr_key, v_company_id, v_woco_gln, v_lev_gln, v_taskId, v_statuscode, v_externnr, v_extraInfo, v_date){
var v_resp;
//Default gaan we ervan uit dat de response goed gaat/is, en dus de notify uit de queue kan...
v_resp = GEN_UitvoeringServiceTask(v_company_id, v_woco_gln, v_lev_gln, v_taskId, v_statuscode, v_externnr, v_extraInfo, v_date);
if (v_resp.api_status_code == 1){
// then goed verwerkt, stuur naar Mareon dat de (laatst) gestuurde onderbreek-code naar ERP opdrachtgever gewist/gedelete kan worden.
MARX_Send_Succes_Or_Failure(v_opdr_key, "OPDR_POST_ONDERBREEK", "");
}
return v_resp;
}