Correct export of Delivery Unit EON_XSJSFRAMEWORK (36 files, replaces incomplete initial export)
This commit is contained in:
@@ -89,22 +89,22 @@ function getProductId(prodID) {
|
||||
case "E.ON Drive Business ohne Grundgebühr":
|
||||
prodID='E.ON Drive Business Comfort';
|
||||
break;
|
||||
|
||||
|
||||
case "LT_E.ON Drive ElectricFleet E.ON Konzern Ladetarif":
|
||||
prodID='LT_E.ON DRIVE ELECTRICFLEET E.ON KONZERN LADETARIF';
|
||||
break;
|
||||
|
||||
|
||||
case "LT_E.ON Drive ElectricFleet Ladetarif":
|
||||
prodID='E.ON DRIVE ELECTRICFLEET LADETARIF';
|
||||
break;
|
||||
|
||||
|
||||
case "BMW Group Corporate Charging CCA Ladetarif":
|
||||
prodID='BMW GROUP CORPORATE CHARGING CCA LADETARIF';
|
||||
break;
|
||||
case "LT_BMW Group Corporate Charging MA Ladetarif":
|
||||
prodID='BMW GROUP CORPORATE CHARGING MA LADETARIF';
|
||||
break;
|
||||
|
||||
|
||||
default:
|
||||
prodID = prodID;
|
||||
}*/
|
||||
@@ -112,7 +112,7 @@ function getProductId(prodID) {
|
||||
var pstmt;
|
||||
var query =
|
||||
"SELECT MIN(T1.\"Code\") as \"Code\", T0.\"U_BILLING_MODE\" FROM \"XXREPXX\".\"@EON_PRODUCT\" T0 INNER JOIN \"XXREPXX\".\"@EON_PRODUCT_PARAM\" T1 ON T0.\"Code\"=T1.\"Code\" " +
|
||||
"WHERE T1.U_COMPONENT = 'CRM_PRODUCT_ID' AND UPPER(T1.\"U_ITEM\") = UPPER('" +
|
||||
"WHERE T1.U_COMPONENT = \'CRM_PRODUCT_ID\' AND UPPER(T1.\"U_ITEM\") = UPPER('" +
|
||||
prodID + "') GROUP BY T0.\"U_BILLING_MODE\"";
|
||||
query = query.replace(/XXREPXX/g, UserComp);
|
||||
pstmt = conn.prepareStatement(query);
|
||||
@@ -335,7 +335,7 @@ function buildContractObj(InObj, SBOOBJ, billingMode) {
|
||||
|
||||
for (var g in SBOOBJ.EON_CONTRACT_EVDRVCollection) {
|
||||
var myEVDRV = {};
|
||||
// copy existing
|
||||
// copy existing
|
||||
myEVDRV = SBOOBJ.EON_CONTRACT_EVDRVCollection[g];
|
||||
|
||||
for (var h in InObj.ev_drivers) {
|
||||
@@ -346,7 +346,7 @@ function buildContractObj(InObj, SBOOBJ, billingMode) {
|
||||
myEVDRV.U_NICE_ID = InObj.ev_drivers[h].c_id;
|
||||
myEVDRV.U_FIRSTNAME = (InObj.ev_drivers[h].firstname === null) ? myEVDRV.U_FIRSTNAME : InObj.ev_drivers[h].firstname;
|
||||
myEVDRV.U_LASTNAME = (InObj.ev_drivers[h].lastname === null) ? myEVDRV.U_LASTNAME : InObj.ev_drivers[h].lastname;
|
||||
// myEVDRV.U_EMAIL = (InObj.ev_drivers[h].email === null) ? myEVDRV.U_EMAIL : InObj.ev_drivers[h].email;
|
||||
// myParam.U_EMAIL = (InObj.ev_drivers[h].email === null) ? myEVDRV.U_EMAIL : InObj.ev_drivers[h].email;
|
||||
myEVDRV.U_LICENSE_PLATE = (InObj.ev_drivers[h].license_plate === null) ? myEVDRV.U_LICENSE_PLATE : InObj.ev_drivers[h].license_plate;
|
||||
myEVDRV.U_VIRTA_ID = (InObj.ev_drivers[h].virta_id === null) ? myEVDRV.U_VIRTA_ID : InObj.ev_drivers[h].virta_id;
|
||||
myEVDRV.U_VIRTA_VALID_FROM = (InObj.ev_drivers[h].virta_valid_from === null) ? myEVDRV.U_VIRTA_VALID_FROM : InObj.ev_drivers[h].virta_valid_from;
|
||||
@@ -386,7 +386,7 @@ function buildContractObj(InObj, SBOOBJ, billingMode) {
|
||||
myEVDRV.U_EV_DRIVERID = InObj.ev_drivers[h].ev_driverid;
|
||||
myEVDRV.U_FIRSTNAME = InObj.ev_drivers[h].firstname;
|
||||
myEVDRV.U_LASTNAME = InObj.ev_drivers[h].lastname;
|
||||
// myEVDRV.U_EMAIL = InObj.ev_drivers[h].email;
|
||||
// myParam.U_EMAIL = InObj.ev_drivers[h].email;
|
||||
myEVDRV.U_LICENSE_PLATE = InObj.ev_drivers[h].license_plate;
|
||||
myEVDRV.U_VIRTA_ID = InObj.ev_drivers[h].virta_id;
|
||||
myEVDRV.U_VIRTA_VALID_TO = InObj.ev_drivers[h].virta_valid_to;
|
||||
@@ -407,6 +407,162 @@ function buildContractObj(InObj, SBOOBJ, billingMode) {
|
||||
|
||||
UDOObj.EON_CONTRACT_PARAMCollection = [];
|
||||
|
||||
//LOOP durch existierende Parameter
|
||||
loopParamsB1: for (var i in SBOOBJ.EON_CONTRACT_PARAMCollection) {
|
||||
var myParam2 = {};
|
||||
// copy existing
|
||||
myParam2 = SBOOBJ.EON_CONTRACT_PARAMCollection[i];
|
||||
// Abgleich mit Parameters aus ev_drivers.parameters
|
||||
loopEVDriversInObj: for (var h in InObj.ev_drivers) {
|
||||
loopParamsInObj: for (var j in InObj.ev_drivers[h].parameters) {
|
||||
if (myParam2.U_DATA_TEXT === InObj.ev_drivers[h].parameters[j].text1) {
|
||||
//myParam.DocEntry=SBOOBJ.EON_CONTRACT_PARAMCollection[g].DocEntry;
|
||||
//myParam.LineId=SBOOBJ.EON_CONTRACT_PARAMCollection[g].LineId;
|
||||
//myParam.VisOrder=SBOOBJ.EON_CONTRACT_PARAMCollection[g].VisOrder;
|
||||
//myParam.Object=SBOOBJ.EON_CONTRACT_PARAMCollection[g].Object;
|
||||
myParam2.U_COMPONENT = (InObj.ev_drivers[h].parameters[j].component === null) ? myParam2.U_COMPONENT :
|
||||
InObj.ev_drivers[h].parameters[j].component;
|
||||
//myParam.U_DESCRIPTION=SBOOBJ.EON_CONTRACT_PARAMCollection[g].U_DESCRIPTION;
|
||||
//myParam.U_RULE=SBOOBJ.EON_CONTRACT_PARAMCollection[g].U_RULE;
|
||||
myParam2.U_DATA_TEXT = (InObj.ev_drivers[h].parameters[j].text1 === null) ? myParam2.U_DATA_TEXT :
|
||||
InObj.ev_drivers[h].parameters[j].text1;
|
||||
myParam2.U_DATA_NUMERIC = (InObj.ev_drivers[h].parameters[j].numeric1 === null) ? myParam2.U_DATA_NUMERIC :
|
||||
InObj.ev_drivers[h].parameters[j].numeric1;
|
||||
myParam2.U_DATA_TEXT2 = (InObj.ev_drivers[h].parameters[j].text2 === null) ? myParam2.U_DATA_TEXT2 :
|
||||
InObj.ev_drivers[h].parameters[j].text2;
|
||||
myParam2.U_DATE_NUMERIC2 = (InObj.ev_drivers[h].parameters[j].numeric2 === null) ? myParam2.U_DATE_NUMERIC2 :
|
||||
InObj.ev_drivers[h].parameters[j].numeric2;
|
||||
myParam2.U_VALID_FROM = (InObj.ev_drivers[h].parameters[j].valid_from === null) ? myParam2.U_VALID_FROM :
|
||||
InObj.ev_drivers[h].parameters[j].valid_from;
|
||||
myParam2.U_VALID_TO = (InObj.ev_drivers[h].parameters[j].valid_to === null) ? myParam2.U_VALID_TO :
|
||||
InObj.ev_drivers[h].parameters[j].valid_to;
|
||||
//myParam.U_ITEM=SBOOBJ.EON_CONTRACT_PARAMCollection[g].U_ITEM;
|
||||
myParam2.U_DATA_TEXT3 = (InObj.ev_drivers[h].ev_driverid === null) ? myParam2.U_DATA_TEXT3 : InObj.ev_drivers[h].ev_driverid;
|
||||
break loopEVDriversInObj;
|
||||
}
|
||||
}
|
||||
}
|
||||
// Abgleich mit Parametern aus Kopfebene
|
||||
for (var j in InObj.parameters) {
|
||||
if (myParam2.U_DATA_TEXT === InObj.parameters[j].text1) {
|
||||
myParam2.U_COMPONENT = (InObj.parameters[j].component === null) ? myParam2.U_COMPONENT :
|
||||
InObj.parameters[j].component;
|
||||
myParam2.U_RULE = "data";
|
||||
//myParam.U_DESCRIPTION=SBOOBJ.EON_CONTRACT_PARAMCollection[g].U_DESCRIPTION;
|
||||
//myParam.U_RULE=SBOOBJ.EON_CONTRACT_PARAMCollection[g].U_RULE;
|
||||
myParam2.U_DATA_TEXT = (InObj.parameters[j].text1 === null) ? myParam2.U_DATA_TEXT :
|
||||
InObj.parameters[j].text1;
|
||||
myParam2.U_DATA_NUMERIC = (InObj.parameters[j].numeric1 === null) ? myParam2.U_DATA_NUMERIC :
|
||||
InObj.parameters[j].numeric1;
|
||||
myParam2.U_DATA_TEXT2 = (InObj.parameters[j].text2 === null) ? myParam2.U_DATA_TEXT2 :
|
||||
InObj.parameters[j].text2;
|
||||
myParam2.U_DATA_NUMERIC2 = (InObj.parameters[j].numeric2 === null) ? myParam2.U_DATA_NUMERIC2 :
|
||||
InObj.parameters[j].numeric2;
|
||||
myParam2.U_VALID_FROM = (InObj.parameters[j].valid_from === null) ? myParam2.U_VALID_FROM :
|
||||
InObj.parameters[j].valid_from;
|
||||
myParam2.U_VALID_TO = (InObj.parameters[j].valid_to === null) ? myParam2.U_VALID_TO :
|
||||
InObj.parameters[j].valid_to;
|
||||
myParam2.U_DATA_PRICE1 = (InObj.parameters[j].price1 === null) ? myParam2.U_DATA_PRICE1 :
|
||||
InObj.parameters[j].price1;
|
||||
//myParam.U_ITEM=SBOOBJ.EON_CONTRACT_PARAMCollection[g].U_ITEM;
|
||||
myParam2.U_DATA_TEXT3 = (InObj.parameters[j].text3 === null) ? myParam2.U_DATA_TEXT3 :
|
||||
InObj.parameters[j].text3;
|
||||
}
|
||||
}
|
||||
UDOObj.EON_CONTRACT_PARAMCollection.push(myParam2);
|
||||
}
|
||||
|
||||
// neue Aktivierungsgebühr hinzufügen
|
||||
var prodComponentsAG = getProductComponents(productCode, "AG");
|
||||
if (prodComponentsAG.length > 0 && (SBOOBJ.EON_CONTRACT_PARAMCollection === undefined || SBOOBJ.EON_CONTRACT_PARAMCollection.findIndex(
|
||||
function(x) {
|
||||
return x.U_COMPONENT === "AG";
|
||||
}) === -1)) {
|
||||
UDOObj.EON_CONTRACT_PARAMCollection.push({
|
||||
U_COMPONENT: prodComponentsAG[0].U_COMPONENT,
|
||||
U_DESCRIPTION: prodComponentsAG[0].U_DESCRIPTION,
|
||||
U_RULE: "const1",
|
||||
U_ITEM: prodComponentsAG[0].U_ITEM,
|
||||
U_VALID_FROM: InObj.begin_date,
|
||||
U_VALID_TO: InObj.begin_date
|
||||
});
|
||||
}
|
||||
|
||||
// neue Rabattmonate hinzufügen
|
||||
var prodComponentsTP_DISCOUNT_MONTH = getProductComponents(productCode, "TP_DISCOUNT_MONTH");
|
||||
prodComponentsTP_DISCOUNT_MONTH.forEach(function(pc) {
|
||||
if (SBOOBJ.EON_CONTRACT_PARAMCollection === undefined || SBOOBJ.EON_CONTRACT_PARAMCollection.findIndex(function(x) {
|
||||
return x.U_COMPONENT === pc.U_DATA_TEXT;
|
||||
}) === -1) {
|
||||
var connection = $.hdb.getConnection();
|
||||
var validToDate = connection.executeQuery('SELECT ADD_MONTHS(?,?) FROM DUMMY', InObj.begin_date, pc.U_DATA_NUMERIC)[0][0];
|
||||
connection.close();
|
||||
UDOObj.EON_CONTRACT_PARAMCollection.push({
|
||||
U_COMPONENT: pc.U_DATA_TEXT,
|
||||
U_DESCRIPTION: pc.U_DESCRIPTION,
|
||||
U_RULE: "QxP",
|
||||
U_ITEM: pc.U_ITEM,
|
||||
U_VALID_FROM: InObj.begin_date,
|
||||
U_VALID_TO: validToDate
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
// neue Parameter aus ev_drivers.parameters hinzufügen
|
||||
for (var h in InObj.ev_drivers) {
|
||||
for (var k in InObj.ev_drivers[h].parameters) {
|
||||
var myfound2 = false;
|
||||
for (var l in SBOOBJ.EON_CONTRACT_PARAMCollection) {
|
||||
if (SBOOBJ.EON_CONTRACT_PARAMCollection[l].U_DATA_TEXT === InObj.ev_drivers[h].parameters[k].text1) {
|
||||
myfound2 = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (myfound2 === false) {
|
||||
var myParam3 = {};
|
||||
|
||||
myParam3.U_COMPONENT = InObj.ev_drivers[h].parameters[k].component;
|
||||
//myParam.U_DESCRIPTION="";
|
||||
myParam3.U_RULE = "data";
|
||||
myParam3.U_DATA_TEXT = InObj.ev_drivers[h].parameters[k].text1;
|
||||
myParam3.U_DATA_NUMERIC = InObj.ev_drivers[h].parameters[k].numeric1;
|
||||
myParam3.U_DATA_TEXT2 = InObj.ev_drivers[h].parameters[k].text2;
|
||||
myParam3.U_DATE_NUMERIC2 = InObj.ev_drivers[h].parameters[k].numeric2;
|
||||
myParam3.U_VALID_FROM = InObj.ev_drivers[h].parameters[k].valid_from;
|
||||
myParam3.U_VALID_TO = InObj.ev_drivers[h].parameters[k].valid_to;
|
||||
myParam3.U_DATA_TEXT3 = InObj.ev_drivers[h].ev_driverid;
|
||||
//myParam.U_ITEM="";
|
||||
|
||||
UDOObj.EON_CONTRACT_PARAMCollection.push(myParam3);
|
||||
}
|
||||
}
|
||||
}
|
||||
// neue Parameter aus Kopfebene hinzufügen
|
||||
for (var k in InObj.parameters) {
|
||||
var myfound3 = false;
|
||||
for (var l in SBOOBJ.EON_CONTRACT_PARAMCollection) {
|
||||
if (SBOOBJ.EON_CONTRACT_PARAMCollection[l].U_DATA_TEXT === InObj.parameters[k].text1) {
|
||||
myfound3 = true;
|
||||
}
|
||||
}
|
||||
if (myfound3 === false) {
|
||||
var myParam4 = {};
|
||||
myParam4.U_COMPONENT = InObj.parameters[k].component;
|
||||
//myParam.U_DESCRIPTION="";
|
||||
myParam4.U_RULE = "data";
|
||||
myParam4.U_DATA_TEXT = InObj.parameters[k].text1;
|
||||
myParam4.U_DATA_NUMERIC = InObj.parameters[k].numeric1;
|
||||
myParam4.U_DATA_TEXT2 = InObj.parameters[k].text2;
|
||||
myParam4.U_DATE_NUMERIC2 = InObj.parameters[k].numeric2;
|
||||
myParam4.U_VALID_FROM = InObj.parameters[k].valid_from;
|
||||
myParam4.U_VALID_TO = InObj.parameters[k].valid_to;
|
||||
myParam4.U_DATA_PRICE1 = InObj.parameters[k].price1;
|
||||
myParam4.U_DATA_TEXT3 = InObj.parameters[k].text3;
|
||||
//myParam.U_ITEM="";
|
||||
UDOObj.EON_CONTRACT_PARAMCollection.push(myParam4);
|
||||
}
|
||||
}
|
||||
|
||||
return UDOObj;
|
||||
}
|
||||
|
||||
@@ -425,13 +581,503 @@ function mockbuildBPObj() {
|
||||
return bpObj;
|
||||
}
|
||||
|
||||
function upsContract(searchparam, InObj, billingMode) {
|
||||
|
||||
var output = {};
|
||||
var myDebug = {
|
||||
billingMode: billingMode,
|
||||
searchparam: searchparam
|
||||
};
|
||||
var SESSIONID = "";
|
||||
var NODEID = "";
|
||||
|
||||
// SL credentials
|
||||
var loginInfo = {};
|
||||
loginInfo.UserName = UserName;
|
||||
loginInfo.Password = UserPass;
|
||||
loginInfo.CompanyDB = UserComp;
|
||||
|
||||
//getProductId(InObj.product);
|
||||
if (outStatus !== "error") {
|
||||
// SL LOGIN
|
||||
var response = slib.SLLogin(JSON.stringify(loginInfo), null, null);
|
||||
|
||||
// B1SESSION and ROUTEID cookies returned by Login
|
||||
for (var j in response.cookies) {
|
||||
if (response.cookies[j].name == "B1SESSION") {
|
||||
SESSIONID = response.cookies[j].value;
|
||||
output.SessionID = SESSIONID;
|
||||
} else if (response.cookies[j].name == "ROUTEID") {
|
||||
NODEID = response.cookies[j].value;
|
||||
output.NodeID = NODEID;
|
||||
}
|
||||
}
|
||||
if (ParDebug) {
|
||||
//output.loginInfo = loginInfo;
|
||||
}
|
||||
// output.loginResponse = JSON.parse(response.body.asString());
|
||||
try {
|
||||
output.loginResponse = JSON.parse(response.body.asString());
|
||||
} catch (e) {
|
||||
output.loginResponse = response.body.asString();
|
||||
}
|
||||
if (response.status !== 200) {
|
||||
outMsg = {};
|
||||
outMsg.method = "login";
|
||||
outMsg.status = "error";
|
||||
outMsg.message = output.loginResponse;
|
||||
outMessages.push(outMsg);
|
||||
outStatus = "error";
|
||||
}
|
||||
|
||||
if (outStatus !== "error") {
|
||||
|
||||
outMsg = {};
|
||||
if (ParRecallMode) {
|
||||
outMsg.id = globalDebug.mynextval;
|
||||
}
|
||||
outMsg.method = "check " + ContractUDOID + " Exists";
|
||||
//Add BP
|
||||
//response = slib.createBusinessPartner(BPObject, SESSIONID,NODEID);
|
||||
//var responseGet = slib.getBusinessPartner(searchparam, SESSIONID, NODEID);
|
||||
var responseGet = slib.getDocUDO(ContractUDOID, searchparam, SESSIONID, NODEID);
|
||||
//var logoutresponse = slib.SLLogout(JSON.stringify(loginInfo), null, null);
|
||||
//Parse response body
|
||||
|
||||
// Removes metadata
|
||||
//delete body["odata.metadata"];
|
||||
|
||||
var DocEntry = 0;
|
||||
var bodyGetFull = {};
|
||||
|
||||
var bodyGet = JSON.parse(responseGet.body.asString());
|
||||
myDebug.statusGet = responseGet.status;
|
||||
myDebug.responseGet = bodyGet;
|
||||
|
||||
outMsg.statuscode = responseGet.status;
|
||||
if (responseGet.status >= 200 && responseGet.status < 300) {
|
||||
outMsg.status = "success";
|
||||
if (bodyGet.value[0]) {
|
||||
DocEntry = bodyGet.value[0].DocEntry;
|
||||
bodyGetFull = bodyGet.value[0];
|
||||
outMsg.message = "exists";
|
||||
} else {
|
||||
outMsg.message = "not exists";
|
||||
}
|
||||
} else if (responseGet.status === 404) {
|
||||
outMsg.status = "success";
|
||||
outMsg.message = "not exists";
|
||||
} else {
|
||||
outMsg.status = "error";
|
||||
outMsg.message = bodyGet;
|
||||
outStatus = "error";
|
||||
}
|
||||
outMessages.push(outMsg);
|
||||
|
||||
/* if (DocEntry > 0) {
|
||||
outMsg = {};
|
||||
outMsg.method = "get";
|
||||
outMsg.status = "success";
|
||||
outMsg.message = bodyGetFull;
|
||||
outMessages.push(outMsg);
|
||||
}*/
|
||||
|
||||
/* var Code = "";
|
||||
var bodyGetFull = {};
|
||||
if (bodyGet.value[0]) {
|
||||
//Code = bodyGet.value[0].CardCode;
|
||||
|
||||
outMsg = {};
|
||||
outMsg.method = "get";
|
||||
|
||||
var responseGetFull = slib.getBusinessPartnerFull(CardCode, SESSIONID, NODEID);
|
||||
myDebug.statusGetFull = responseGetFull.status;
|
||||
// bodyGetFull = JSON.parse(responseGetFull.body.asString());
|
||||
myDebug.responseGetFull = bodyGetFull;
|
||||
outMsg.statuscode = responseGetFull.status;
|
||||
if (responseGetFull.status >= 200 && responseGetFull.status < 300) {
|
||||
outMsg.status = "success";
|
||||
} else {
|
||||
outMsg.status = "error";
|
||||
outMsg.message = bodyGetFull;
|
||||
outStatus = "error";
|
||||
}
|
||||
outMessages.push(outMsg);
|
||||
}*/
|
||||
|
||||
if (outStatus !== "error") {
|
||||
|
||||
var consContractObject = buildContractObj(InObj, bodyGetFull, billingMode);
|
||||
myDebug.ContractObj = consContractObject;
|
||||
|
||||
if (DocEntry > 0) {
|
||||
output.method = "update";
|
||||
var responseUpdate = slib.updateDocUDO(ContractUDOID, DocEntry, JSON.stringify(consContractObject), SESSIONID, NODEID);
|
||||
outMsg = {};
|
||||
if (ParRecallMode) {
|
||||
outMsg.id = globalDebug.mynextval;
|
||||
}
|
||||
outMsg.method = "update";
|
||||
myDebug.statusUpdate = responseUpdate.status;
|
||||
outMsg.statuscode = responseUpdate.status;
|
||||
if (responseUpdate.status >= 200 && responseUpdate.status < 300) {
|
||||
myDebug.Updatemessage = "Update sucessfull";
|
||||
outMsg.status = "success";
|
||||
} else {
|
||||
myDebug.message = "Update error occured";
|
||||
outMsg.status = "error";
|
||||
if (responseUpdate.body) {
|
||||
myDebug.responseUpdate = JSON.parse(responseUpdate.body.asString());
|
||||
outMsg.message = myDebug.responseUpdate;
|
||||
}
|
||||
outStatus = "error";
|
||||
}
|
||||
outMessages.push(outMsg);
|
||||
|
||||
} else {
|
||||
|
||||
outMsg = {};
|
||||
if (ParRecallMode) {
|
||||
outMsg.id = globalDebug.mynextval;
|
||||
}
|
||||
outMsg.method = "create";
|
||||
var responseCreate = slib.createDocUDO(ContractUDOID, JSON.stringify(consContractObject), SESSIONID, NODEID);
|
||||
myDebug.statusCreate = responseCreate.status;
|
||||
outMsg.statuscode = responseCreate.status;
|
||||
myDebug.responseCreate = JSON.parse(responseCreate.body.asString());
|
||||
if (responseCreate.status >= 200 && responseCreate.status < 300) {
|
||||
myDebug.Createmessage = "Create sucessfull";
|
||||
outMsg.status = "success";
|
||||
var createUDOObj = JSON.parse(responseCreate.body.asString());
|
||||
DocEntry = createUDOObj.DocEntry;
|
||||
} else {
|
||||
myDebug.Createmessage = "Create error occured";
|
||||
output.errorCreatestatus = myDebug.Createmessage;
|
||||
outMsg.status = "error";
|
||||
outMsg.message = myDebug.responseCreate;
|
||||
outStatus = "error";
|
||||
}
|
||||
outMessages.push(outMsg);
|
||||
}
|
||||
|
||||
}
|
||||
output.DocEntry = DocEntry;
|
||||
|
||||
slib.SLLogout(SESSIONID, NODEID);
|
||||
}
|
||||
}
|
||||
output.debug = myDebug;
|
||||
//$.trace.debug("DEBUG body.Get: " + JSON.stringify(myDebug));
|
||||
return output;
|
||||
//setOutputMessage();
|
||||
//return 0;
|
||||
|
||||
}
|
||||
|
||||
function getnextval() {
|
||||
var conn = $.db.getConnection();
|
||||
var pstmt;
|
||||
var query = "select \"NICEPORTAL\".\"SEQ_CONTRACT_ID\".NEXTVAL from dummy";
|
||||
pstmt = conn.prepareStatement(query);
|
||||
var rs = pstmt.executeQuery();
|
||||
if (!rs.next()) {
|
||||
outMsg = {};
|
||||
outMsg.method = "getnexval from sequence error";
|
||||
outMsg.status = "error";
|
||||
// outMsg.message = e.message;
|
||||
outMessages.push(outMsg);
|
||||
} else {
|
||||
return rs.getString(1);
|
||||
}
|
||||
rs.close();
|
||||
pstmt.close();
|
||||
conn.close();
|
||||
}
|
||||
|
||||
function setBPCardCode(tableid, bpcardcode) {
|
||||
var conn = $.db.getConnection();
|
||||
var pstmt;
|
||||
var query = "update \"NICEPORTAL\".\"UO_CRM_DATA_CONTRACTS\" set B1_CARDCODE = '" + bpcardcode +
|
||||
"', UPDATE_TS = CURRENT_TIMESTAMP where ID =" + tableid;
|
||||
pstmt = conn.prepareStatement(query);
|
||||
// pstmt.setString(1,bpcardcode);
|
||||
// pstmt.setString(2,tableid);
|
||||
var rs = pstmt.executeUpdate();
|
||||
globalDebug.UpdateQuery = query;
|
||||
|
||||
pstmt.close();
|
||||
conn.commit();
|
||||
conn.close();
|
||||
|
||||
}
|
||||
|
||||
function setRESPONSE(tableid, respstatus, respmessage) {
|
||||
var conn = $.db.getConnection();
|
||||
var pstmt;
|
||||
var query =
|
||||
"update \"NICEPORTAL\".\"UO_CRM_DATA_CONTRACTS\" set RESPONSE_STATUS = ? , RESPONSE_MESSAGE =?, UPDATE_TS = CURRENT_TIMESTAMP where ID =" +
|
||||
tableid;
|
||||
pstmt = conn.prepareStatement(query);
|
||||
pstmt.setString(1, respstatus.toString());
|
||||
pstmt.setString(2, respmessage.toString());
|
||||
|
||||
var rs = pstmt.executeUpdate();
|
||||
globalDebug.UpdateQuery = query;
|
||||
|
||||
pstmt.close();
|
||||
conn.commit();
|
||||
conn.close();
|
||||
|
||||
}
|
||||
|
||||
function PutBPDataInTable(recalljsonRaw, id) {
|
||||
var mynextval;
|
||||
|
||||
var pdcontent = ""
|
||||
if (ParRecallMode) {
|
||||
pdcontent = recalljsonRaw;
|
||||
mynextval = id;
|
||||
globalDebug.mynextval = mynextval;
|
||||
} else {
|
||||
mynextval = getnextval();
|
||||
globalDebug.mynextval = mynextval;
|
||||
pdcontent = $.request.body.asString();
|
||||
}
|
||||
|
||||
// pdcontent = pdcontent.replace(/\"([^(\")"]+)\":/g,"$1:");
|
||||
var JbpObj = JSON.parse(pdcontent);
|
||||
var conn = $.db.getConnection();
|
||||
var pstmt;
|
||||
var query;
|
||||
var vals = {};
|
||||
var data = [];
|
||||
// var query2;
|
||||
// var output = {results: [] };
|
||||
|
||||
try {
|
||||
|
||||
if (!ParRecallMode) {
|
||||
// query = "INSERT INTO \"NICEPORTAL\".\"UO_CRM_DATA_BP\" (ID,ID_MSD,TYPE,GROUP,SALUTATION,TITLE,NAME,SURNAME,PHONE,MOBILE_PHONE,EMAIL,ADDRESS_JSON,IBAN,BIC,SEPA_MANDATE_ID,SIGNATURE_DATE,ACCOUNT_OWNER,STREET,STREET_NO,ZIP_CODE,CITY,JSONRAW,CREATE_TS,UPDATE_TS) values (\"NICEPORTAL\".\"SEQ_CRMBP_ID\".NEXTVAL,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,CURRENT_TIMESTAMP,CURRENT_TIMESTAMP)";
|
||||
query =
|
||||
"INSERT INTO \"NICEPORTAL\".\"UO_CRM_DATA_CONTRACTS\" (ID,ID_MSD,ID_CRM,JSONRAW,B1_CODE,CREATE_TS,UPDATE_TS) values (" + mynextval +
|
||||
",?,?,?,?,CURRENT_TIMESTAMP,CURRENT_TIMESTAMP)";
|
||||
// "INSERT INTO \"NICEPORTAL\".\"UO_CRM_DATA_BP\" (ID,ID_MSD,ID_CRM,TYPE,BPGROUP,SALUTATION,TITLE,NAME,SURNAME,PHONE,MOBILE_PHONE,EMAIL,ADDRESS_JSON,IBAN,BIC,SEPA_MANDATE_ID,SIGNATURE_DATE,ACCOUNT_OWNER,STREET,STREET_NO,ZIP_CODE,CITY,JSONRAW,CREATE_TS,UPDATE_TS) values (\"NICEPORTAL\".\"SEQ_CRMBP_ID\".NEXTVAL,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,CURRENT_TIMESTAMP,CURRENT_TIMESTAMP)";
|
||||
|
||||
pstmt = conn.prepareStatement(query);
|
||||
pstmt.setString(1, JbpObj.contract_id.toString());
|
||||
pstmt.setString(2, JbpObj.bp_crm.toString());
|
||||
pstmt.setString(3, JSON.stringify(JbpObj));
|
||||
pstmt.setString(4, getCardcodebyCRMID(JbpObj.bp_crm));
|
||||
var rs = pstmt.executeUpdate();
|
||||
pstmt.close();
|
||||
conn.commit();
|
||||
conn.close();
|
||||
|
||||
outMsg = {};
|
||||
outMsg.method = "insertDB";
|
||||
outMsg.status = "success";
|
||||
outMessages.push(outMsg);
|
||||
}
|
||||
var cardCode = getCardcodebyCRMID(JbpObj.bp_crm);
|
||||
if (cardCode) {
|
||||
var productList = getProductId(JbpObj.product);
|
||||
var retUpsertContract = [];
|
||||
if (productList) {
|
||||
productList.forEach(function(p) {
|
||||
if (p.BillingMode === 'AO') {
|
||||
outMsg = {};
|
||||
if (ParRecallMode) {
|
||||
outMsg.id = globalDebug.mynextval;
|
||||
}
|
||||
outMsg.method = "copyBP";
|
||||
var bpoutput = copybplib.copyBP(cardCode);
|
||||
outMsg.result = bpoutput;
|
||||
outMessages.push(outMsg);
|
||||
|
||||
var searchparam2 = {};
|
||||
searchparam2.key = "U_CUSTOMER eq '" + cardCode + "-L' and " + "U_EXT_ID_CRM";
|
||||
searchparam2.value = JbpObj.contract_id.toString();
|
||||
retUpsertContract.push(upsContract(searchparam2, JbpObj, p.BillingMode));
|
||||
} else {
|
||||
var searchparam1 = {};
|
||||
searchparam1.key = "U_CUSTOMER eq '" + cardCode + "' and " + "U_EXT_ID_CRM";
|
||||
searchparam1.value = JbpObj.contract_id.toString();
|
||||
retUpsertContract.push(upsContract(searchparam1, JbpObj, p.BillingMode));
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
//var retUpsertBP = upsBP(searchparam, JSON.stringify(bpObj),JbpObj);
|
||||
//var retUpsertBP = upsertBP(searchparam, JSON.stringify(bpObj));
|
||||
//var retUpsertBP = addBP(JSON.stringify(bpObj));
|
||||
|
||||
} catch (e) {
|
||||
$.trace.error(e.message);
|
||||
outMsg = {};
|
||||
if (ParRecallMode) {
|
||||
outMsg.id = globalDebug.mynextval;
|
||||
}
|
||||
outMsg.method = "exceptionHandler";
|
||||
outMsg.status = "error";
|
||||
outMsg.message = e.message;
|
||||
if (debugLevel > 0) {
|
||||
outMsg.exceptionInfo = {};
|
||||
outMsg.exceptionInfo.name = e.name;
|
||||
outMsg.exceptionInfo.message = e.message;
|
||||
outMsg.exceptionInfo.fileName = e.fileName;
|
||||
outMsg.exceptionInfo.lineNumber = e.lineNumber;
|
||||
outMsg.exceptionInfo.columnNumber = e.columnNumber;
|
||||
outMsg.exceptionInfo.stack = e.stack;
|
||||
//outMsg.exceptionInfo.source = e.toSource();
|
||||
}
|
||||
outMessages.push(outMsg);
|
||||
|
||||
vals.status = 'error';
|
||||
//vals.description = e.message;
|
||||
vals.messages = outMessages;
|
||||
|
||||
if (ParDebug) {
|
||||
vals.debug = {};
|
||||
vals.debug.statement = query;
|
||||
}
|
||||
if (debugLevel > 0) {
|
||||
vals.debugInfos = globalDebug;
|
||||
}
|
||||
|
||||
// vals.group = JbpObj.group.toString();
|
||||
// vals.bpobjekt = JSON.stringify(JbpObj);
|
||||
// vals.SLBPObj = JSON.stringify(bpObj);
|
||||
// vals.ResponsUPSER = JSON.stringify(retUpsertBP);
|
||||
// vals.CardCode = retUpsertBP.CardCode;
|
||||
//vals.mode = JSON.stringify(retUpsertBP.mode);
|
||||
data.push(vals);
|
||||
var errbody = JSON.stringify(data);
|
||||
|
||||
$.response.contentType = 'application/json';
|
||||
$.response.setBody(errbody);
|
||||
$.response.status = $.net.http.INTERNAL_SERVER_ERROR;
|
||||
return;
|
||||
}
|
||||
vals.status = outStatus;
|
||||
//vals.description = 'Data accepted and proceeded';
|
||||
// vals.id_crm = JbpObj.id_crm.toString();
|
||||
//vals.id_msd = JbpObj.id_msd.toString();
|
||||
//vals.id_b1 = retUpsertBP.CardCode;
|
||||
//vals.CardCode = retUpsertBP.CardCode;
|
||||
vals.messages = outMessages;
|
||||
//setBPCardCode(mynextval,retUpsertBP.CardCode);
|
||||
//vals.RespnUPSERJ = JSON.stringify(retUpsertBP);
|
||||
if (ParDebug) {
|
||||
if (debugLevel > 0) {
|
||||
vals.debugInfos = globalDebug;
|
||||
}
|
||||
vals.debug = {
|
||||
productList: productList,
|
||||
upsert: retUpsertContract
|
||||
};
|
||||
}
|
||||
//vals.mode = JSON.stringify(retUpsertBP.mode);
|
||||
data.push(vals);
|
||||
var okbody = JSON.stringify(data);
|
||||
//var body = JSON.stringify(test);
|
||||
setRESPONSE(mynextval, outMsg.status, okbody);
|
||||
$.response.contentType = 'application/json';
|
||||
$.response.setBody(okbody);
|
||||
$.response.status = $.net.http.OK;
|
||||
}
|
||||
|
||||
function testmain() {
|
||||
|
||||
var searchparam = {};
|
||||
searchparam.key = "U_EON_ID_CRM";
|
||||
searchparam.value = 'BP777888999x';
|
||||
|
||||
var bpObj = mockbuildBPObj();
|
||||
|
||||
var retUpsertBP = upsBP(searchparam, JSON.stringify(bpObj));
|
||||
|
||||
// setOutputMessage();
|
||||
}
|
||||
|
||||
function recallJSONRAW(idList) {
|
||||
|
||||
var vals = {};
|
||||
var data = [];
|
||||
var conn = $.db.getConnection();
|
||||
var pstmt;
|
||||
var query = "SELECT \"JSONRAW\",\"ID\" FROM \"NICEPORTAL\".\"UO_CRM_DATA_CONTRACTS\" WHERE ID IN ( " + idList + ")";
|
||||
pstmt = conn.prepareStatement(query);
|
||||
//pstmt.setString(1, prodID);
|
||||
var rs = pstmt.executeQuery();
|
||||
if (!rs.next()) {
|
||||
outMsg = {};
|
||||
outMsg.method = "recallJSONRAW";
|
||||
outMsg.message = "Empty ID List Parameter: " + idList;
|
||||
if (debugLevel > 0) {
|
||||
outMsg.message += " / Query: " + query;
|
||||
}
|
||||
outMsg.status = "error";
|
||||
outStatus = "error";
|
||||
// outMsg.message = e.message;
|
||||
outMessages.push(outMsg);
|
||||
|
||||
vals.status = 'error';
|
||||
//vals.description = e.message;
|
||||
vals.messages = outMessages;
|
||||
|
||||
if (ParDebug) {
|
||||
vals.debug = {};
|
||||
vals.debug.statement = query;
|
||||
}
|
||||
if (debugLevel > 0) {
|
||||
vals.debugInfos = globalDebug;
|
||||
}
|
||||
data.push(vals);
|
||||
var errbody = JSON.stringify(data);
|
||||
$.response.contentType = 'application/json';
|
||||
$.response.setBody(errbody);
|
||||
$.response.status = $.net.http.INTERNAL_SERVER_ERROR;
|
||||
} else {
|
||||
do {
|
||||
PutBPDataInTable(rs.getNString(1), rs.getInteger(2));
|
||||
} while (rs.next());
|
||||
}
|
||||
|
||||
// }
|
||||
rs.close();
|
||||
pstmt.close();
|
||||
conn.close();
|
||||
}
|
||||
|
||||
//testmain();
|
||||
|
||||
// begin org
|
||||
|
||||
var content = $.request.body.asString();
|
||||
|
||||
setOutputMessage();
|
||||
ParDebug = $.request.parameters.get('debug') && $.request.parameters.get('debug').toLowerCase() === "true";
|
||||
ParRecallIdList = $.request.parameters.get('recallidlist');
|
||||
if (ParRecallIdList) {
|
||||
ParRecallMode = true;
|
||||
recallJSONRAW(ParRecallIdList);
|
||||
} else {
|
||||
var content = $.request.body.asString();
|
||||
PutBPDataInTable();
|
||||
}
|
||||
//ende org
|
||||
|
||||
//SlLogin();
|
||||
//SlLogin();
|
||||
|
||||
/*var req = 0;
|
||||
req = $.request.parameters.get('crmid');
|
||||
|
||||
if (!req){
|
||||
output.error = "Invalid BP Request - " + req;
|
||||
$.response.status = $.net.http.OK;
|
||||
$.response.contentType = "application/json";
|
||||
$.response.setBody(JSON.stringify(output));
|
||||
}else{
|
||||
|
||||
//addBP(JSON.stringify(bpObj));
|
||||
//updBP(JSON.stringify(bpObj));
|
||||
//GetOrders(req);
|
||||
}
|
||||
*/
|
||||
Reference in New Issue
Block a user