Correct export of Delivery Unit EON_XSJSFRAMEWORK (36 files, replaces incomplete initial export)

This commit is contained in:
Thorsten Schmitz
2026-07-09 02:02:07 +02:00
parent 997ad1c8f6
commit e5d9482cf1
35 changed files with 3067 additions and 918 deletions
+2 -1
View File
@@ -5,7 +5,7 @@ var logginglib = $.import("uniorg.libs", "uologging");
var slDest = $.import("uniorg.destinations", "uodestlib"); var slDest = $.import("uniorg.destinations", "uodestlib");
var bpmaplib = $.import("uniorg.eon.libs", "bpmapping"); var bpmaplib = $.import("uniorg.eon.libs", "bpmapping");
var copybplib = $.import("uniorg.eon.libs", "copybp"); var copybplib = $.import("uniorg.eon.libs", "copybp");
var ParDebug = false; var ParDebug = false;
var mCardCode = ""; var mCardCode = "";
var output = {}; var output = {};
@@ -169,3 +169,4 @@ mCardCode = $.request.parameters.get('cardcode');
copyBPlib(); copyBPlib();
//PutBPDataInTable(); //PutBPDataInTable();
//ende org //ende org
+13 -12
View File
@@ -6,7 +6,7 @@
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<script type="text/javascript"> <script type="text/javascript">
window["sap-ushell-config"] = { window["sap-ushell-config"] = {
defaultRenderer : "fiori2", defaultRenderer : "fiori2",
@@ -31,7 +31,7 @@
}; };
</script> </script>
<script src="https://sapui5.hana.ondemand.com/test-resources/sap/ushell/bootstrap/sandbox.js" id="sap-ushell-bootstrap"></script> <script src="https://sapui5.hana.ondemand.com/test-resources/sap/ushell/bootstrap/sandbox.js" id="sap-ushell-bootstrap"></script>
<title>Item Data Maintenance</title> <title>Item Data Maintenance</title>
<!-- Bootstrap the UI5 core library --> <!-- Bootstrap the UI5 core library -->
@@ -39,28 +39,29 @@
src="https://sapui5.hana.ondemand.com/resources/sap-ui-core.js" src="https://sapui5.hana.ondemand.com/resources/sap-ui-core.js"
data-sap-ui-libs="sap.m,sap.ui.layout,sap.ui.core,sap.ushell" data-sap-ui-libs="sap.m,sap.ui.layout,sap.ui.core,sap.ushell"
data-sap-ui-theme="sap_belize" data-sap-ui-theme="sap_belize"
data-sap-ui-supportedLanguages="en" data-sap-ui-supportedLanguages="en"
data-sap-ui-bindingSyntax="complex" data-sap-ui-bindingSyntax="complex"
data-sap-ui-compatVersion="edge" data-sap-ui-compatVersion="edge"
data-sap-ui-resourceroots='{"uniorg.eon.virtaportalui":"./virtaportalui"}' data-sap-ui-resourceroots='{"uniorg.eon.virtaportalui":"./virtaportalui"}'
data-sap-ui-frameOptions='allow'> // NON-SECURE setting for testing environment data-sap-ui-frameOptions='allow'> // NON-SECURE setting for testing environment
</script> </script>
<script type="text/javascript"> <script type="text/javascript">
sap.ui.getCore().attachInit(function() { sap.ui.getCore().attachInit(function() {
//Fake LREP //Fake LREP
jQuery.sap.require("sap.ui.fl.FakeLrepConnector"); jQuery.sap.require("sap.ui.fl.FakeLrepConnector");
sap.ui.fl.FakeLrepConnector.enableFakeConnector("fakeLRep.json"); sap.ui.fl.FakeLrepConnector.enableFakeConnector("fakeLRep.json");
// initialize the ushell sandbox component // initialize the ushell sandbox component
sap.ushell.Container.createRenderer().placeAt("app"); sap.ushell.Container.createRenderer().placeAt("app");
});
</script> });
</script>
</head> </head>
+29 -28
View File
@@ -6,31 +6,30 @@ function checkvatid(vatid,country,schemaname)
var returnmessage = ""; var returnmessage = "";
var checkiseu = false; var checkiseu = false;
var searchkey = "Code"; var searchkey = "Code";
var searchvalue = country; var searchvalue = country;
var LimitRecords = 1; var LimitRecords = 1;
var UserComp = schemaname; var UserComp = schemaname;
var conn = $.db.getConnection(); var conn = $.db.getConnection();
var pstmt; var pstmt;
//var query = "SELECT T0.\"U_EON_RECACC_REC\" FROM \"A19753_P01_TEST03\".\"@EON_PGN\" T0 WHERE T0.\"Code\" = ?"; //var query = "SELECT T0.\"U_EON_RECACC_REC\" FROM \"A19753_P01_TEST03\".\"@EON_PGN\" T0 WHERE T0.\"Code\" = ?";
//vendeor var query = "SELECT T0.\"U_EON_RECACC_REC\" FROM \"XXREPXX\".\"@EON_PGN\" T0 WHERE T0.\"Code\" = ?"; //vendeor var query = "SELECT T0.\"U_EON_RECACC_REC\" FROM \"XXREPXX\".\"@EON_PGN\" T0 WHERE T0.\"Code\" = ?";
var query = "SELECT \"IsEC\", IFNULL(\"TaxIdDigts\",0) as \"TaxIdDigits\" FROM \"XXREPXX\".\"OCRY\" T0" var query = "SELECT \"IsEC\", IFNULL(\"TaxIdDigts\",0) as \"TaxIdDigits\" FROM \"XXREPXX\".\"OCRY\" T0"
if (searchkey && searchvalue) if (searchkey && searchvalue)
{ {
var query2 =""; var query2 ="";
query = query + " WHERE T0.\"XXREP2XX\" = 'XXREP3XX'"; query = query + " WHERE T0.\"XXREP2XX\" = \'XXREP3XX\'";
query = query.replace(/XXREP2XX/g, searchkey); query = query.replace(/XXREP2XX/g, searchkey);
query = query.replace(/XXREP3XX/g, searchvalue); query = query.replace(/XXREP3XX/g, searchvalue);
} }
if (LimitRecords > 0) if (LimitRecords > 0)
{ {
query = query +" Limit " + LimitRecords.toString(); query = query +" Limit " + LimitRecords.toString();
} }
query = query.replace(/XXREPXX/g, UserComp); query = query.replace(/XXREPXX/g, UserComp);
pstmt = conn.prepareStatement(query); pstmt = conn.prepareStatement(query);
@@ -42,18 +41,18 @@ function checkvatid(vatid,country,schemaname)
rs.close(); rs.close();
pstmt.close(); pstmt.close();
conn.close(); conn.close();
if (country !== vatid.substring(0,2)) if (country !== vatid.substring(0,2))
{ {
returnmessage = country + " Country doesnt match with prefix found " + vatid; returnmessage = country + " Country doesnt match with prefix found " + vatid;
} }
// if (checkiseu != "Y") // if (checkiseu != "Y")
// { // {
// returnmessage = searchvalue + " IS No EU Country"; // returnmessage = searchvalue + " IS No EU Country";
// } // }
if (country == vatid.substring(0,2)) if (country == vatid.substring(0,2))
{ {
var validvatid = false; var validvatid = false;
@@ -66,20 +65,22 @@ function checkvatid(vatid,country,schemaname)
returnmessage = "vatid is too long"; returnmessage = "vatid is too long";
} }
if (mystringlength-2 < taxiddigits ) if (mystringlength-2 < taxiddigits )
{ {
returnmessage = "vatid is too short"; returnmessage = "vatid is too short";
} }
var checkisnum = vatid.substring(2,taxiddigits); var checkisnum = vatid.substring(2,taxiddigits);
if (isNaN(checkisnum) && searchvalue == 'DE') if (isNaN(checkisnum) && searchvalue == 'DE')
{ {
returnmessage = "Number Part is not a number"; returnmessage = "Number Part is not a number";
} }
} }
} }
return returnmessage; return returnmessage;
} }
+39 -38
View File
@@ -33,10 +33,10 @@ function getVendorRECACC(custpgnr)
var query = "SELECT T0.\"U_EON_RECACC_PAY\" FROM \"XXREPXX\".\"@EON_PGN\" T0 WHERE T0.\"Code\" = ?"; var query = "SELECT T0.\"U_EON_RECACC_PAY\" FROM \"XXREPXX\".\"@EON_PGN\" T0 WHERE T0.\"Code\" = ?";
query = query.replace(/XXREPXX/g, UserComp); query = query.replace(/XXREPXX/g, UserComp);
pstmt = conn.prepareStatement(query); pstmt = conn.prepareStatement(query);
pstmt.setString(1,custpgnr); pstmt.setString(1,custpgnr);
var rs = pstmt.executeQuery(); var rs = pstmt.executeQuery();
if (!rs.next()) { if (!rs.next()) {
// outMsg = {}; // outMsg = {};
@@ -51,7 +51,8 @@ function getVendorRECACC(custpgnr)
pstmt.close(); pstmt.close();
conn.close(); conn.close();
} }
@@ -63,35 +64,35 @@ function buildBPObj(cSBOOBJ, vSBOOBJ) {
vSBOOBJ = {}; vSBOOBJ = {};
} }
// switch (JbpObj.group) { // switch (JbpObj.group) {
// case 'B2C': // case 'B2C':
// mycardname = JbpObj.name.toString() + ' ' + JbpObj.surname.toString(); // mycardname = JbpObj.name.toString() + ' ' + JbpObj.surname.toString();
// mybpcontactname = JbpObj.name.toString() + ' ' + JbpObj.surname.toString(); // mybpcontactname = JbpObj.name.toString() + ' ' + JbpObj.surname.toString();
// myseries = series_b2c; // myseries = series_b2c;
// mygroupcode = groupcode_b2c; // mygroupcode = groupcode_b2c;
// mycmpprivate = cmpprivate_b2c; // mycmpprivate = cmpprivate_b2c;
// break; // break;
// case 'B2B': // case 'B2B':
// //mycardname = JbpObj.name.toString(); // //mycardname = JbpObj.name.toString();
// mycardname = JbpObj.addresses[0].address.toString(); // mycardname = JbpObj.addresses[0].address.toString();
// mybpcontactname = JbpObj.name.toString() + ' ' + JbpObj.surname.toString(); // mybpcontactname = JbpObj.name.toString() + ' ' + JbpObj.surname.toString();
// myseries = series_b2b; // myseries = series_b2b;
// mygroupcode = groupcode_b2b; // mygroupcode = groupcode_b2b;
// mycmpprivate = cmpprivate_b2b; // mycmpprivate = cmpprivate_b2b;
// break; // break;
// case 'B2M': // case 'B2M':
// //mycardname = JbpObj.name.toString(); // //mycardname = JbpObj.name.toString();
// mycardname = JbpObj.addresses[0].address.toString(); // mycardname = JbpObj.addresses[0].address.toString();
// mybpcontactname = JbpObj.name.toString() + ' ' + JbpObj.surname.toString(); // mybpcontactname = JbpObj.name.toString() + ' ' + JbpObj.surname.toString();
// myseries = series_b2m; // myseries = series_b2m;
// mygroupcode = groupcode_b2m; // mygroupcode = groupcode_b2m;
// mycmpprivate = cmpprivate_b2m; // mycmpprivate = cmpprivate_b2m;
// break; // break;
// default: // default:
// mycardname = JbpObj.name.toString() + ' ' + JbpObj.surname.toString(); // mycardname = JbpObj.name.toString() + ' ' + JbpObj.surname.toString();
// mybpcontactname = JbpObj.name.toString() + ' ' + JbpObj.surname.toString(); // mybpcontactname = JbpObj.name.toString() + ' ' + JbpObj.surname.toString();
// myseries = series_b2c; // myseries = series_b2c;
// mygroupcode = groupcode_b2c; // mygroupcode = groupcode_b2c;
// mycmpprivate = cmpprivate_b2c; // mycmpprivate = cmpprivate_b2c;
// } // }
var bpObj = {}; var bpObj = {};
@@ -116,7 +117,7 @@ function buildBPObj(cSBOOBJ, vSBOOBJ) {
bpObj.BankCountry = cSBOOBJ.BankCountry; bpObj.BankCountry = cSBOOBJ.BankCountry;
bpObj.DefaultBankCode = cSBOOBJ.DefaultBankCode; bpObj.DefaultBankCode = cSBOOBJ.DefaultBankCode;
bpObj.DefaultAccount = cSBOOBJ.DefaultAccount; bpObj.DefaultAccount = cSBOOBJ.DefaultAccount;
if (cSBOOBJ.U_EON_PGN) if (cSBOOBJ.U_EON_PGN)
{ {
bpObj.DebitorAccount = getVendorRECACC(cSBOOBJ.U_EON_PGN); bpObj.DebitorAccount = getVendorRECACC(cSBOOBJ.U_EON_PGN);
@@ -275,7 +276,7 @@ function buildBPObj(cSBOOBJ, vSBOOBJ) {
myBPBankAccounts.City = cSBOOBJ.BPBankAccounts[bac].City; myBPBankAccounts.City = cSBOOBJ.BPBankAccounts[bac].City;
// myBPBankAccounts.MandateID = JbpObj.bank_account.sepa_mandate_id.toString(); // myBPBankAccounts.MandateID = JbpObj.bank_account.sepa_mandate_id.toString();
myBPBankAccounts.SignatureDate = cSBOOBJ.BPBankAccounts[bac].SignatureDate; myBPBankAccounts.SignatureDate = cSBOOBJ.BPBankAccounts[bac].SignatureDate;
// if (JbpObj.bank_account.sepa_mandate.toString() == 'Ja') { // if (JbpObj.bank_account.sepa_mandate.toString() == 'Ja') {
myBPBankAccounts.MandateID = cSBOOBJ.BPBankAccounts[bac].MandateID; myBPBankAccounts.MandateID = cSBOOBJ.BPBankAccounts[bac].MandateID;
// bpObj.CollectionAuthorization = 'tYES'; // bpObj.CollectionAuthorization = 'tYES';
@@ -283,7 +284,7 @@ function buildBPObj(cSBOOBJ, vSBOOBJ) {
} }
bpObj.BPBankAccounts.push(myBPBankAccounts); bpObj.BPBankAccounts.push(myBPBankAccounts);
} }
for (var bac in cSBOOBJ.BPBankAccounts) { for (var bac in cSBOOBJ.BPBankAccounts) {
var myfoundBank = false; var myfoundBank = false;
for (var bav in vSBOOBJ.BPBankAccounts) { for (var bav in vSBOOBJ.BPBankAccounts) {
@@ -306,10 +307,10 @@ function buildBPObj(cSBOOBJ, vSBOOBJ) {
// myBPBankAccounts.MandateID = JbpObj.bank_account.sepa_mandate_id.toString(); // myBPBankAccounts.MandateID = JbpObj.bank_account.sepa_mandate_id.toString();
myBPBankAccounts.SignatureDate = cSBOOBJ.BPBankAccounts[bac].SignatureDate; myBPBankAccounts.SignatureDate = cSBOOBJ.BPBankAccounts[bac].SignatureDate;
// if (JbpObj.bank_account.sepa_mandate.toString() == 'Ja') { // if (JbpObj.bank_account.sepa_mandate.toString() == 'Ja') {
myBPBankAccounts.MandateID = cSBOOBJ.BPBankAccounts[bac].MandateID; myBPBankAccounts.MandateID = cSBOOBJ.BPBankAccounts[bac].MandateID;
myBPBankAccounts.SEPASeqType = cSBOOBJ.BPBankAccounts[bac].SEPASeqType; myBPBankAccounts.SEPASeqType = cSBOOBJ.BPBankAccounts[bac].SEPASeqType;
// } // }
bpObj.BPBankAccounts.push(myBPBankAccounts); bpObj.BPBankAccounts.push(myBPBankAccounts);
} }
+71 -69
View File
@@ -20,6 +20,7 @@ var service_version = '1.4';
function copyBP(ParDebug,mCardCode) { function copyBP(ParDebug,mCardCode) {
var SESSIONID = ""; var SESSIONID = "";
@@ -40,13 +41,13 @@ function copyBP(ParDebug,mCardCode) {
//searchparam.key = "U_EON_ID_CRM_INTERNAL"; //searchparam.key = "U_EON_ID_CRM_INTERNAL";
searchparamV.key = "CardCode"; searchparamV.key = "CardCode";
searchparamV.value = mCardCode + "-L"; searchparamV.value = mCardCode + "-L";
output.searchparamC = searchparamC; output.searchparamC = searchparamC;
output.searchparamV = searchparamV; output.searchparamV = searchparamV;
var slError; var slError;
// SL LOGIN // SL LOGIN
var response = slib.SLLogin(JSON.stringify(loginInfo), null, null); var response = slib.SLLogin(JSON.stringify(loginInfo), null, null);
// B1SESSION and ROUTEID cookies returned by Login // B1SESSION and ROUTEID cookies returned by Login
@@ -97,77 +98,78 @@ function copyBP(ParDebug,mCardCode) {
var customerObject = slfwlib.getfullBPbysearchParam(searchparamC, SESSIONID, NODEID,ParDebug); var customerObject = slfwlib.getfullBPbysearchParam(searchparamC, SESSIONID, NODEID,ParDebug);
var vendorObject = slfwlib.getfullBPbysearchParam(searchparamV, SESSIONID, NODEID,ParDebug); var vendorObject = slfwlib.getfullBPbysearchParam(searchparamV, SESSIONID, NODEID,ParDebug);
var consBPObject=""; var consBPObject="";
// outMessages.push(customerObject.Messages); // outMessages.push(customerObject.Messages);
// outMessages.push(vendorObject.Messages); // outMessages.push(vendorObject.Messages);
myDebug.customerObject = customerObject; myDebug.customerObject = customerObject;
myDebug.vendorObject = vendorObject; myDebug.vendorObject = vendorObject;
//consBPObject = bpmaplib.buildBPObj(customerObject.BP,vendorObject.BP);
//consBPObject = bpmaplib.buildBPObj(customerObject.BP,vendorObject.BP);
//myDebug.mappedUPDBPObj = consBPObject; //myDebug.mappedUPDBPObj = consBPObject;
if (customerObject.Status == "exists" && vendorObject.Status == "exists") { if (customerObject.Status == "exists" && vendorObject.Status == "exists") {
consBPObject = bpmaplib.buildBPObj(customerObject.BP,vendorObject.BP); consBPObject = bpmaplib.buildBPObj(customerObject.BP,vendorObject.BP);
myDebug.mappedUPDBPObj = consBPObject; myDebug.mappedUPDBPObj = consBPObject;
output.method = "updateVendor"; output.method = "updateVendor";
var responseUpdate = slib.updateBusinessPartner(vendorObject.BP.CardCode, JSON.stringify(consBPObject), SESSIONID, NODEID); var responseUpdate = slib.updateBusinessPartner(vendorObject.BP.CardCode, JSON.stringify(consBPObject), SESSIONID, NODEID);
outMsg = {}; outMsg = {};
outMsg.method = "update"; outMsg.method = "update";
myDebug.statusUpdate = responseUpdate.status; myDebug.statusUpdate = responseUpdate.status;
outMsg.statuscode = responseUpdate.status; outMsg.statuscode = responseUpdate.status;
if (responseUpdate.status >= 200 && responseUpdate.status < 300) { if (responseUpdate.status >= 200 && responseUpdate.status < 300) {
myDebug.Updatemessage = "Update sucessfull"; myDebug.Updatemessage = "Update sucessfull";
outMsg.status = "success"; 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;
slError = myDebug.responseUpdate.error;
if (slError && slError.hasOwnProperty("code") && slError.message && slError.message.value ) {
outMsg.message = slError.message.value + " (Code: " + slError.code.toString() + ")";
} else {
outMsg.message = JSON.stringify(myDebug.responseUpdate);
}
outMsg.response = myDebug.responseUpdate;
}
outStatus = "error";
}
outMessages.push(outMsg);
}
if (customerObject.Status == "exists" && vendorObject.Status == "not exists") {
consBPObject = bpmaplib.buildBPObj(customerObject.BP);
myDebug.mappedCreateBPObj = consBPObject;
output.method = "createVendor";
outMsg = {};
outMsg.method = "create";
var responseCreate = slib.createBusinessPartner(JSON.stringify(consBPObject), 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";
} else {
myDebug.Createmessage = "Create error occured";
output.errorCreatestatus = myDebug.Createmessage;
outMsg.status = "error";
//outMsg.message = myDebug.responseCreate;
outStatus = "error";
slError = myDebug.responseCreate.error;
if (slError && slError.hasOwnProperty("code") && slError.message && slError.message.value ) {
outMsg.message = slError.message.value + " (Code: " + slError.code.toString() + ")";
} else { } else {
outMsg.message = JSON.stringify(myDebug.responseCreate); myDebug.message = "Update error occured";
outMsg.status = "error";
if (responseUpdate.body) {
myDebug.responseUpdate = JSON.parse(responseUpdate.body.asString());
//outMsg.message = myDebug.responseUpdate;
slError = myDebug.responseUpdate.error;
if (slError && slError.hasOwnProperty("code") && slError.message && slError.message.value ) {
outMsg.message = slError.message.value + " (Code: " + slError.code.toString() + ")";
} else {
outMsg.message = JSON.stringify(myDebug.responseUpdate);
}
outMsg.response = myDebug.responseUpdate;
}
outStatus = "error";
} }
outMsg.response = myDebug.responseCreate; outMessages.push(outMsg);
}
if (customerObject.Status == "exists" && vendorObject.Status == "not exists") {
consBPObject = bpmaplib.buildBPObj(customerObject.BP);
myDebug.mappedCreateBPObj = consBPObject;
output.method = "createVendor";
outMsg = {};
outMsg.method = "create";
var responseCreate = slib.createBusinessPartner(JSON.stringify(consBPObject), 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";
} else {
myDebug.Createmessage = "Create error occured";
output.errorCreatestatus = myDebug.Createmessage;
outMsg.status = "error";
//outMsg.message = myDebug.responseCreate;
outStatus = "error";
slError = myDebug.responseCreate.error;
if (slError && slError.hasOwnProperty("code") && slError.message && slError.message.value ) {
outMsg.message = slError.message.value + " (Code: " + slError.code.toString() + ")";
} else {
outMsg.message = JSON.stringify(myDebug.responseCreate);
}
outMsg.response = myDebug.responseCreate;
}
outMessages.push(outMsg);
} }
outMessages.push(outMsg);
}
//output.CardCode = CardCode; //output.CardCode = CardCode;
@@ -182,9 +184,9 @@ function copyBP(ParDebug,mCardCode) {
{ {
output.debug = myDebug; output.debug = myDebug;
} }
return output; return output;
} }
+19 -26
View File
@@ -1,28 +1,21 @@
{ {
"exposed": true, "exposed": true,
"authentication": [ "authentication": [{
{ "method": "Form"
"method": "Form" }],
}
], "mime_mapping": [{
"mime_mapping": [ "extension": "jpg",
{ "mimetype": "image/jpeg"
"extension": "jpg", }],
"mimetype": "image/jpeg" "force_ssl": false,
} "enable_etags": true,
], "prevent_xsrf": true,
"force_ssl": false, "anonymous_connection": null,
"enable_etags": true, "cors": [{
"prevent_xsrf": true, "enabled": true
"anonymous_connection": null, }],
"cors": [ "allowOrigin": ["*"],
{ "cache_control": "no-cache, no-store",
"enabled": true "default_file": "index.html"
}
],
"allowOrigin": [
"*"
],
"cache_control": "no-cache, no-store",
"default_file": "index.html"
} }
@@ -0,0 +1,244 @@
{
"openapi": "3.0.0",
"info": {
"version": "1.0-oas3",
"title": "E.ON CRM Contract API ",
"description": "Mit dieser Schnittstelle werden die Vertragsobjekt-Tabellen (UDO - User Defined Object) in SAP Business One gepflegt. Neue Verträge werden angelegt, existierende Verträg erhalten ein Update. Der Kunde muss in SAP Business One bereits vorhanden sein, dieser wird anhand der CRM-ID gesucht.",
"contact": {
"email": "t.schmitz@uniorg.de",
"name": "Thorsten Schmitz"
},
"license": {
"name": "(C) UNIORG Services GmbH",
"url": "https://www.uniorg.de"
}
},
"servers": [
{
"url": "https://xs-eon.rz4u.de/uniorg/eon/nice/v1",
"description": "productive"
},
{
"url": "https://xs-test-eon.rz4u.de/uniorg/eon/nice/v1",
"description": "development"
}
],
"security": [
{
"basicAuth": []
}
],
"paths": {
"/setcontract.xsjs": {
"post": {
"tags": [
"Contract"
],
"summary": "Pflege Verträge",
"operationId": "setContract",
"description": "Hinzufügen oder Aktualisieren eines Vertrags in SAP Business One.",
"responses": {
"200": {
"description": "successfully received data"
}
},
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Contract"
}
}
},
"description": "Contract object"
}
}
}
},
"components": {
"schemas": {
"Contract": {
"type": "object",
"properties": {
"begin_date": {
"type": "string",
"example": "2021-09-06T00:00:00.0000000"
},
"bp_crm": {
"type": "string",
"example": "10077777"
},
"contract_id": {
"type": "string",
"example": "40022222"
},
"end_date": {
"type": "string",
"example": ""
},
"ev_drivers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"c_id": {
"type": "string",
"example": ""
},
"email": {
"type": "string",
"example": "foo@foo.com"
},
"eoperate_ID": {
"type": "string",
"example": ""
},
"eoperate_valid_from": {
"type": "string",
"example": ""
},
"eoperate_valid_to": {
"type": "string",
"example": ""
},
"ev_driver": {
"type": "string",
"example": "20099999"
},
"ev_driverid": {
"type": "string",
"example": "38f56277-a20e-0000-0000-000d3ad88589",
"maxLength": 36,
"minLength": 36
},
"firstname": {
"type": "string",
"example": "Foo"
},
"lastname": {
"type": "string",
"example": "Foo"
},
"license_plate": {
"type": "string",
"example": ""
},
"nice_valid_from": {
"type": "string",
"example": ""
},
"nice_valid_to": {
"type": "string",
"example": ""
},
"parameters": {
"type": "array",
"items": {
"type": "object",
"properties": {
"component": {
"type": "string",
"example": "RFID_CARD"
},
"numeric1": {
"type": "integer",
"format": "int32",
"example": "0"
},
"numeric2": {
"type": "integer",
"format": "int32",
"example": "0"
},
"text1": {
"type": "string",
"example": "n/a"
},
"text2": {
"type": "string",
"example": ""
},
"valid_from": {
"type": "string",
"example": ""
},
"valid_to": {
"type": "string",
"example": ""
}
}
}
},
"virta_id": {
"type": "string",
"example": "1509999"
},
"virta_valid_from": {
"type": "string",
"example": "2021-09-05T00:00:00.0000000"
},
"virta_valid_to": {
"type": "string",
"example": ""
}
}
}
},
"orderid": {
"type": "string",
"example": ""
},
"prices": {
"type": "array",
"nullable": true,
"items": {
"type": "object",
"properties": {
"factor": {
"type": "number",
"example": "0.1"
},
"item": {
"type": "string",
"example": "BV_COMPENSATION_AC"
},
"price": {
"type": "integer",
"format": "int32",
"example": "0"
},
"valid_from": {
"type": "string",
"example": "2021-11-14T23:00:00.0000000"
},
"valid_to": {
"type": "string",
"example": "9999-12-31T00:00:00.000Z"
}
}
}
},
"product": {
"type": "string",
"example": "E.ON Drive Easy"
},
"projectid": {
"type": "string",
"example": ""
},
"signature_date": {
"type": "string",
"example": "2021-09-06T00:00:00.0000000"
}
}
}
},
"securitySchemes": {
"basicAuth": {
"type": "http",
"scheme": "basic"
}
}
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 665 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 628 B

@@ -0,0 +1,16 @@
html {
box-sizing: border-box;
overflow: -moz-scrollbars-vertical;
overflow-y: scroll;
}
*,
*:before,
*:after {
box-sizing: inherit;
}
body {
margin: 0;
background: #fafafa;
}
@@ -0,0 +1,19 @@
<!-- HTML for static distribution bundle build -->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Swagger UI</title>
<link rel="stylesheet" type="text/css" href="./swagger-ui.css" />
<link rel="stylesheet" type="text/css" href="index.css" />
<link rel="icon" type="image/png" href="./favicon-32x32.png" sizes="32x32" />
<link rel="icon" type="image/png" href="./favicon-16x16.png" sizes="16x16" />
</head>
<body>
<div id="swagger-ui"></div>
<script src="./swagger-ui-bundle.js" charset="UTF-8"> </script>
<script src="./swagger-ui-standalone-preset.js" charset="UTF-8"> </script>
<script src="./swagger-initializer.js" charset="UTF-8"> </script>
</body>
</html>
@@ -0,0 +1,79 @@
<!doctype html>
<html lang="en-US">
<head>
<title>Swagger UI: OAuth2 Redirect</title>
</head>
<body>
<script>
'use strict';
function run () {
var oauth2 = window.opener.swaggerUIRedirectOauth2;
var sentState = oauth2.state;
var redirectUrl = oauth2.redirectUrl;
var isValid, qp, arr;
if (/code|token|error/.test(window.location.hash)) {
qp = window.location.hash.substring(1).replace('?', '&');
} else {
qp = location.search.substring(1);
}
arr = qp.split("&");
arr.forEach(function (v,i,_arr) { _arr[i] = '"' + v.replace('=', '":"') + '"';});
qp = qp ? JSON.parse('{' + arr.join() + '}',
function (key, value) {
return key === "" ? value : decodeURIComponent(value);
}
) : {};
isValid = qp.state === sentState;
if ((
oauth2.auth.schema.get("flow") === "accessCode" ||
oauth2.auth.schema.get("flow") === "authorizationCode" ||
oauth2.auth.schema.get("flow") === "authorization_code"
) && !oauth2.auth.code) {
if (!isValid) {
oauth2.errCb({
authId: oauth2.auth.name,
source: "auth",
level: "warning",
message: "Authorization may be unsafe, passed state was changed in server. The passed state wasn't returned from auth server."
});
}
if (qp.code) {
delete oauth2.state;
oauth2.auth.code = qp.code;
oauth2.callback({auth: oauth2.auth, redirectUrl: redirectUrl});
} else {
let oauthErrorMsg;
if (qp.error) {
oauthErrorMsg = "["+qp.error+"]: " +
(qp.error_description ? qp.error_description+ ". " : "no accessCode received from the server. ") +
(qp.error_uri ? "More info: "+qp.error_uri : "");
}
oauth2.errCb({
authId: oauth2.auth.name,
source: "auth",
level: "error",
message: oauthErrorMsg || "[Authorization failed]: no accessCode received from the server."
});
}
} else {
oauth2.callback({auth: oauth2.auth, token: qp, isValid: isValid, redirectUrl: redirectUrl});
}
window.close();
}
if (document.readyState !== 'loading') {
run();
} else {
document.addEventListener('DOMContentLoaded', function () {
run();
});
}
</script>
</body>
</html>
@@ -0,0 +1,20 @@
window.onload = function() {
//<editor-fold desc="Changeable Configuration Block">
// the following lines will be replaced by docker/configurator, when it runs in a docker-container
window.ui = SwaggerUIBundle({
url: "eon_CRM_Contract_API.json",
dom_id: '#swagger-ui',
deepLinking: true,
presets: [
SwaggerUIBundle.presets.apis,
SwaggerUIStandalonePreset
],
plugins: [
SwaggerUIBundle.plugins.DownloadUrl
],
layout: "StandaloneLayout"
});
//</editor-fold>
};
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -11,7 +11,7 @@ create column table "INTEGRATION_DATA"."BANKS_SCHEMA"( "COUNTRY" VARCHAR (3) nul
"LENGTH" SMALLINT null, "LENGTH" SMALLINT null,
"START" SMALLINT null, "START" SMALLINT null,
"FULLLENGHTH" SMALLINT null); "FULLLENGHTH" SMALLINT null);
truncate table "INTEGRATION_DATA"."BANKS_SCHEMA" ; truncate table "INTEGRATION_DATA"."BANKS_SCHEMA" ;
insert into "INTEGRATION_DATA"."BANKS_SCHEMA" values('GB',6,9,22); insert into "INTEGRATION_DATA"."BANKS_SCHEMA" values('GB',6,9,22);
@@ -31,69 +31,99 @@ insert into "INTEGRATION_DATA"."BANKS_SCHEMA" values('SE',4,5,24);
insert into "INTEGRATION_DATA"."BANKS_SCHEMA" values('PL',8,5,28); insert into "INTEGRATION_DATA"."BANKS_SCHEMA" values('PL',8,5,28);
insert into "INTEGRATION_DATA"."BANKS_SCHEMA" values('LT',5,5,20); insert into "INTEGRATION_DATA"."BANKS_SCHEMA" values('LT',5,5,20);
ALTER FUNCTION "INTEGRATION_DATA".EON_BP_GETBANKDETAILS (IBAN NVARCHAR(100)) ALTER FUNCTION "INTEGRATION_DATA".EON_BP_GETBANKDETAILS (IBAN NVARCHAR(100))
RETURNS TABLE RETURNS TABLE
( (
IBAN NVARCHAR(100), IBAN NVARCHAR(100),
COUNTRY NVARCHAR(2), COUNTRY NVARCHAR(2),
BANKCODE NVARCHAR(10), BANKCODE NVARCHAR(10),
BANKNAME NVARCHAR(250), BANKNAME NVARCHAR(250),
SWIFTNO NVARCHAR(100), SWIFTNO NVARCHAR(100),
ACCOUNT NVARCHAR(100) ACCOUNT NVARCHAR(100)
) )
LANGUAGE SQLSCRIPT LANGUAGE SQLSCRIPT
SQL SECURITY INVOKER SQL SECURITY INVOKER
AS AS
BEGIN BEGIN
-- USING SQLSCRIPT_PRINT as LIB; -- USING SQLSCRIPT_PRINT as LIB;
DECLARE IBAN_BANKCODE VARCHAR(10) ; DECLARE IBAN_BANKCODE VARCHAR(10) ;
DECLARE IBAN_COUNTRY VARCHAR(2) ; DECLARE IBAN_COUNTRY VARCHAR(2) ;
DECLARE STARTPARAM SMALLINT = 1; DECLARE STARTPARAM SMALLINT = 1;
DECLARE LENGTHPARAM SMALLINT = 1; DECLARE LENGTHPARAM SMALLINT = 1;
DECLARE BANKNAMEPARAM NVARCHAR(250); DECLARE BANKNAMEPARAM NVARCHAR(250);
DECLARE SWIFTNOPARAM NVARCHAR(100) = ''; DECLARE SWIFTNOPARAM NVARCHAR(100) = '';
DECLARE ACCOUNT_PARAM NVARCHAR(100); DECLARE ACCOUNT_PARAM NVARCHAR(100);
IBAN := REPLACE(:IBAN,' ',''); IBAN := REPLACE(:IBAN,' ','');
IBAN_COUNTRY := SUBSTRING (:IBAN, 1, 2); IBAN_COUNTRY := SUBSTRING (:IBAN, 1, 2);
SELECT "START" into STARTPARAM DEFAULT 1 FROM "INTEGRATION_DATA"."BANKS_SCHEMA" WHERE COUNTRY = :IBAN_COUNTRY; SELECT "START" into STARTPARAM DEFAULT 1 FROM "INTEGRATION_DATA"."BANKS_SCHEMA" WHERE COUNTRY = :IBAN_COUNTRY;
SELECT "LENGTH" into LENGTHPARAM DEFAULT 1 FROM "INTEGRATION_DATA"."BANKS_SCHEMA" WHERE COUNTRY = :IBAN_COUNTRY; SELECT "LENGTH" into LENGTHPARAM DEFAULT 1 FROM "INTEGRATION_DATA"."BANKS_SCHEMA" WHERE COUNTRY = :IBAN_COUNTRY;
IBAN_BANKCODE := SUBSTRING (:IBAN, :STARTPARAM, :LENGTHPARAM); IBAN_BANKCODE := SUBSTRING (:IBAN, :STARTPARAM, :LENGTHPARAM);
ACCOUNT_PARAM := SUBSTRING(:IBAN, :STARTPARAM + :LENGTHPARAM); ACCOUNT_PARAM := SUBSTRING(:IBAN, :STARTPARAM + :LENGTHPARAM);
SELECT TOP 1 "BANKNAME" into BANKNAMEPARAM DEFAULT '' SELECT TOP 1 "BANKNAME" into BANKNAMEPARAM DEFAULT ''
FROM "INTEGRATION_DATA"."BANKS" FROM "INTEGRATION_DATA"."BANKS"
WHERE COUNTRYCODE = :IBAN_COUNTRY AND BANKCODE = :IBAN_BANKCODE WHERE COUNTRYCODE = :IBAN_COUNTRY AND BANKCODE = :IBAN_BANKCODE
ORDER BY SWIFTNO DESC ; ORDER BY SWIFTNO DESC ;
SELECT TOP 1 "SWIFTNO" into SWIFTNOPARAM DEFAULT '' SELECT TOP 1 "SWIFTNO" into SWIFTNOPARAM DEFAULT ''
FROM "INTEGRATION_DATA"."BANKS" FROM "INTEGRATION_DATA"."BANKS"
WHERE COUNTRYCODE = :IBAN_COUNTRY AND BANKCODE = :IBAN_BANKCODE WHERE COUNTRYCODE = :IBAN_COUNTRY AND BANKCODE = :IBAN_BANKCODE
ORDER BY SWIFTNO DESC ; ORDER BY SWIFTNO DESC ;
RETURN RETURN
SELECT :IBAN as IBAN, SELECT :IBAN as IBAN,
:IBAN_COUNTRY as COUNTRY, :IBAN_COUNTRY as COUNTRY,
:IBAN_BANKCODE AS BANKCODE, :IBAN_BANKCODE AS BANKCODE,
LEFT(:BANKNAMEPARAM, 250) as BANKNAME, LEFT(:BANKNAMEPARAM, 250) as BANKNAME,
:SWIFTNOPARAM as SWIFTNO, :SWIFTNOPARAM as SWIFTNO,
:ACCOUNT_PARAM as ACCOUNT :ACCOUNT_PARAM as ACCOUNT
FROM DUMMY; FROM DUMMY;
END; END;
/*
--SELECT * FROM "INTEGRATION_DATA".EON_BP_GETBANKDETAILS('GB19 REVO 00997000245823');
-- select * FROM "A19753_EON_P01".ODSC WHERE "CountryCod" = 'AT'-- "BankCode" = '60000';
SELECT * FROM "INTEGRATION_DATA".EON_BP_GETBANKDETAILS('AT026000000001349870');
https://de.wikipedia.org/wiki/Internationale_Bankkontonummer#IBAN-Struktur_in_verschiedenen_L%C3%A4ndern
DEpp bbbb bbbb kkkk kkkk kk
Österreich ATpp bbbb bkkk kkkk kkkk
Schweiz CHpp bbbb bkkk kkkk kkkk k
Dänemark DKpp bbbb kkkk kkkk kK
Niederlande NLpp bbbb kkkk kkkk kk
Belgien BEpp bbbk kkkk kkKK
Italien ITpp Kbbb bbss sssk kkkk kkkk kkk
Luxemburg LUpp bbbk kkkk kkkk kkkk
Tschechien CZpp bbbb kkkk kkkk kkkk kkkk
Polen PLpp bbbs sssK kkkk kkkk kkkk kkkk
Schweden SEpp bbbk kkkk kkkk kkkk kkkK
Frankreich FRpp bbbb bsss sskk kkkk kkkk kKK
LT Litauen 20 LTpp bbbb bkkk kkkk kkkk
Vereinigtes Königreich (GB) GBpp bbbb ssss sskk kkkk kk
*/
@@ -6,4 +6,4 @@ CREATE COLUMN TABLE "INTEGRATION_DATA"."UO_DOCUMENTS_RAWCALL" ("ID" BIGINT CS_FI
"B1_OBJ" NCLOB MEMORY THRESHOLD 1000, "B1_OBJ" NCLOB MEMORY THRESHOLD 1000,
"CREATE_TS" LONGDATE CS_LONGDATE DEFAULT CURRENT_TIMESTAMP NOT NULL , "CREATE_TS" LONGDATE CS_LONGDATE DEFAULT CURRENT_TIMESTAMP NOT NULL ,
"UPDATE_TS" LONGDATE CS_LONGDATE NOT NULL , "UPDATE_TS" LONGDATE CS_LONGDATE NOT NULL ,
PRIMARY KEY ("ID")) UNLOAD PRIORITY 5 AUTO MERGE PRIMARY KEY ("ID")) UNLOAD PRIORITY 5 AUTO MERGE
+5 -5
View File
@@ -7,10 +7,10 @@ CREATE COLUMN TABLE "NICEPORTAL"."UO_CRM_DATA_CONTRACTS" ("ID" BIGINT CS_FIXED N
"B1_CODE" VARCHAR(50), "B1_CODE" VARCHAR(50),
"CREATE_TS" LONGDATE CS_LONGDATE DEFAULT CURRENT_TIMESTAMP NOT NULL , "CREATE_TS" LONGDATE CS_LONGDATE DEFAULT CURRENT_TIMESTAMP NOT NULL ,
"UPDATE_TS" LONGDATE CS_LONGDATE NOT NULL , "UPDATE_TS" LONGDATE CS_LONGDATE NOT NULL ,
PRIMARY KEY ("ID")) UNLOAD PRIORITY 5 AUTO MERGE; PRIMARY KEY ("ID")) UNLOAD PRIORITY 5 AUTO MERGE;
CREATE SEQUENCE "NICEPORTAL"."SEQ_CONTRACT_ID"; CREATE SEQUENCE "NICEPORTAL"."SEQ_CONTRACT_ID";
CREATE SEQUENCE "NICEPORTAL"."SEQ_CRMBP_ID"; CREATE SEQUENCE "NICEPORTAL"."SEQ_CRMBP_ID";
CREATE SEQUENCE "NICEPORTAL"."SEQ_MAND_ID"; CREATE SEQUENCE "NICEPORTAL"."SEQ_MAND_ID";
@@ -68,4 +68,4 @@ CREATE COLUMN TABLE "NICEPORTAL"."CHARGEDATA" ("ID" BIGINT CS_FIXED NOT NULL ,
"JSONRAW" NCLOB MEMORY THRESHOLD 1000, "JSONRAW" NCLOB MEMORY THRESHOLD 1000,
"CREATE_TS" LONGDATE CS_LONGDATE DEFAULT CURRENT_TIMESTAMP NOT NULL , "CREATE_TS" LONGDATE CS_LONGDATE DEFAULT CURRENT_TIMESTAMP NOT NULL ,
"UPDATE_TS" LONGDATE CS_LONGDATE NOT NULL , "UPDATE_TS" LONGDATE CS_LONGDATE NOT NULL ,
PRIMARY KEY ("ID")) UNLOAD PRIORITY 5 AUTO MERGE PRIMARY KEY ("ID")) UNLOAD PRIORITY 5 AUTO MERGE
+159
View File
@@ -0,0 +1,159 @@
//HTTP CALL
function doHTTPCall(oCdrCallId) {
//http://172.17.12.201:8080/B1iXcellerator/exec/ipo/vP.0010000104.in_HCSX/com.sap.b1i.vplatform.runtime/INB_HT_CALL_SYNC_XPT/INB_HT_CALL_SYNC_XPT.ipo/proc?biu=uni.eon.emob.addcdr&SysId=0010000100&CdrCallId=4aa9b243be184a4abdb4179f375459be
var destn_pkg = "eon.ServiceLayer";
var dest_name = "B1I";
try
{
var dest = $.net.http.readDestination(destn_pkg, dest_name);
var client = new $.net.http.Client();
var req = new $.web.WebRequest($.net.http.GET, "");
var oSysId = "0010000100";
// oCdrCallId = "4aa9b243be184a4abdb4179f375459be";
req.parameters.set("biu", "uni.eon.emob.addcdr");
req.parameters.set("msglog", "true");
req.parameters.set("SysId", oSysId);
req.parameters.set("CdrCallId", oCdrCallId);
//, "/httpdest.png");
client.request(req, dest);
var response = client.getResponse();
var b1iResp = response.body.asString()
$.response.status = $.net.http.OK;
$.response.contentType = "text/xml";
$.response.setBody(b1iResp);
} catch (e) {
$.response.contentType = "text/plain";
$.response.setBody(e.message);
}
}
function PutDataInTable() {
var pdcontent = $.request.body.asString();
// pdcontent = pdcontent.replace(/\"([^(\")"]+)\":/g,"$1:");
var pdcdrObj = JSON.parse(pdcontent);
var conn = $.db.getConnection();
var pstmt;
var rs;
var test;
var query;
var vals = {};
var data = [];
// var query2;
// var output = {results: [] };
try {
query =
"INSERT INTO \"NICEPORTAL\".\"CHARGEDATA\" (ID,CALLID,CDRID,EVSEID,CONTRACTID,INSTANCE,TOKENTYPE,CONSUMEDENERGY,OPERATORID,OPERATORNAME,CHARGEPOINTTYPE,MAXSOCKETPOWER,ADDRESS,ZIP,CITY,COUNTRY,PROVIDERID,PROVIDERNAME,CHARGINGSTARTTIME,CHARGINGSTOPTIME,PARKINGSTARTTIME,PARKINGSTOPTIME,METERSTART,METERSTOP,TARIFF,CURRENCY,VAT,BILLINGVALUEBRUTTO,BILLINGVALUENETTO,PARKINGTIMEPRICEBRUTTO,PARKINGTIMEPRICENETTO,ADITIONALPRICEBRUTTO,ADITIONALPRICENETTO,B2CPRICING,ASSETOWNERPRICING,CPOPRICING,JSONRAW,OPERATORSUBMANDANT,FREECHARGE,CREATE_TS,UPDATE_TS) values (\"NICEPORTAL\".\"SEQ_TRANSACTIONDATA_ID\".NEXTVAL,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,CURRENT_TIMESTAMP,CURRENT_TIMESTAMP)";
//query = "INSERT INTO \"NICEPORTAL\".\"CHARGEDATA\" (ID,CALLID,CDRID,CREATE_TS,UPDATE_TS) values (\"NICEPORTAL\".\"SEQ_TRANSACTIONDATA_ID\".NEXTVAL,?,?,CURRENT_TIMESTAMP,CURRENT_TIMESTAMP)";
pstmt = conn.prepareStatement(query);
pstmt.setString(1, pdcdrObj.callId.toString());
pstmt.setString(2, pdcdrObj.chargeData[0].cdrId.toString());
pstmt.setString(3, pdcdrObj.chargeData[0].evseID.toString());
pstmt.setString(4, pdcdrObj.chargeData[0].contractId.toString());
pstmt.setString(5, pdcdrObj.chargeData[0].emt.instance.toString());
pstmt.setString(6, pdcdrObj.chargeData[0].emt.tokenType.toString());
pstmt.setString(7, pdcdrObj.chargeData[0].consumedEnergy.toString());
pstmt.setString(8, pdcdrObj.chargeData[0].evseDetails.operatorId.toString());
pstmt.setString(9, pdcdrObj.chargeData[0].evseDetails.operatorName.toString());
pstmt.setString(10, pdcdrObj.chargeData[0].evseDetails.connectorType.chargePointType.toString());
pstmt.setString(11, pdcdrObj.chargeData[0].evseDetails.connectorType.maxSocketPower.toString());
pstmt.setString(12, pdcdrObj.chargeData[0].evseDetails.location.address.toString());
pstmt.setString(13, pdcdrObj.chargeData[0].evseDetails.location.zip.toString());
pstmt.setString(14, pdcdrObj.chargeData[0].evseDetails.location.city.toString());
pstmt.setString(15, pdcdrObj.chargeData[0].evseDetails.location.country.toString());
pstmt.setString(16, pdcdrObj.chargeData[0].contractDetails.providerID.toString());
pstmt.setString(17, pdcdrObj.chargeData[0].contractDetails.providerName.toString());
pstmt.setString(18, pdcdrObj.chargeData[0].sessionDetails.chargingSession.startTime.toString());
pstmt.setString(19, pdcdrObj.chargeData[0].sessionDetails.chargingSession.stopTime.toString());
pstmt.setString(20, pdcdrObj.chargeData[0].sessionDetails.parkingSession.startTime.toString());
pstmt.setString(21, pdcdrObj.chargeData[0].sessionDetails.parkingSession.stopTime.toString());
pstmt.setString(22, pdcdrObj.chargeData[0].meterValueDetails.meterStart.toString());
pstmt.setString(23, pdcdrObj.chargeData[0].meterValueDetails.meterStop.toString());
//test = JSON.stringify(pdcdrObj.callId.toString());
pstmt.setString(24, pdcdrObj.chargeData[0].b2cPricing.tariff.toString());
pstmt.setString(25, pdcdrObj.chargeData[0].b2cPricing.currency.toString());
pstmt.setString(26, pdcdrObj.chargeData[0].b2cPricing.vat.toString());
pstmt.setString(27, pdcdrObj.chargeData[0].b2cPricing.billingValueBrutto.toString());
pstmt.setString(28, pdcdrObj.chargeData[0].b2cPricing.billingValueNetto.toString());
pstmt.setString(29, pdcdrObj.chargeData[0].b2cPricing.billingItems[0].itemPriceBrutto.toString());
pstmt.setString(30, pdcdrObj.chargeData[0].b2cPricing.billingItems[0].itemPriceNetto.toString());
pstmt.setString(31, pdcdrObj.chargeData[0].b2cPricing.billingItems[1].itemPriceBrutto.toString());
pstmt.setString(32, pdcdrObj.chargeData[0].b2cPricing.billingItems[1].itemPriceNetto.toString());
pstmt.setString(33, JSON.stringify(pdcdrObj.chargeData[0].b2cPricing));
pstmt.setString(34, JSON.stringify(pdcdrObj.chargeData[0].assetOwnerPricing));
pstmt.setString(35, JSON.stringify(pdcdrObj.chargeData[0].cpoPricing));
pstmt.setString(36, JSON.stringify(pdcdrObj));
pstmt.setString(37, pdcdrObj.chargeData[0].operatorSubmandant.toString());
pstmt.setString(38, pdcdrObj.chargeData[0].freeCharge.toString());
// pstmt.setString(7, JSON.stringify(pdcdrObj.chargeData[0].cdrId));
// pstmt.setString(8, JSON.stringify(pdcdrObj.chargeData[0].cdrId));
// pstmt.setString(3, JSON.stringify(pdcdrObj.evseID));
rs = pstmt.executeUpdate();
pstmt.close();
conn.commit();
conn.close();
//disabled 31.01.2018 für C.Schmidt
// doHTTPCall (pdcdrObj.callId.toString());
// while (rs.next()) {
// var record = {};
// record.productId = rs.getString(1);
// record.productName = rs.getString(2);
// record.supplierCountry = rs.getString(3);
// output.results.push(record);
// }
// rs.close();
// pstmt.close();
// conn.close();
} catch (e) {
vals.status = 'error';
vals.description = e.message;
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 = 'success'
vals.description = 'Data accepted and proceeded'
data.push(vals);
var okbody = JSON.stringify(data);
//var body = JSON.stringify(test);
$.response.contentType = 'application/json';
$.response.setBody(okbody);
$.response.status = $.net.http.OK;
}
var content = $.request.body.asString();
//var cdrObj = JSON.parse(content);
//var ChargeDataObj = cdrObj.chargeData[0].cdrId;
// doHTTPCall("4aa9b243be184a4abdb4179f375459be");
PutDataInTable();
// var result = JSON.stringify(cdrObj.callId);
// var result = JSON.stringify(ChargeDataObj);
// $.response.contentType = 'application/json';
// $.response.setBody(result);
// $.response.status = $.net.http.OK;
+566 -127
View File
@@ -1,6 +1,29 @@
//Letzte Änderung 08.12.2020 (v6.3) Achtung nun Adressmapping über CRM ID
//Letzte Änderung 11.01.2021 v6.4 Implementier duplicatebp für BFV Verträge
// 07.02.2022 Anpassung IT IBAN
// 16.02.2022 IBAN Update nur noch wenn IBAN in Payload vorhanden
// 01.06.2022 Language Code Implementierung
// 19.09.2022 Adress2 Mapping
// 18.10.2022 Versandart wird Pflichtfeld in der GP SST (CBU)
// https://jira.eon.com/browse/EMPEPI1-124
// 18.11.2022 8.2 CBU Banken aus IBAN ableiten
// https://jira.eon.com/browse/EMPEPI1-130
// 24.01.2023 CBU: Existenz einer E-Mail-Adresse bei Versandart M prüfen
// https://jira.eon.com/browse/EMPEPI1-130
// 29.06.2023 https://jira.eon.com/browse/EMPEPI1-281 Prüfung ob Lieferant exisitiert und Update BP -L
// 03.11.2023 Bugfix copybp -L (TS)
// 09.11.2023 fix B2B Adress BuildingFloorRoom
// 25.01.2024 CSV Versandart soll nicht überschrieben werden
// 23.07.2024 BUS-7580 Anpassung Einzugsermächtigung auch auf tNO
// 13.11.2024 BUS-9352 Anpassung Zahlungsbedingung
// 28.11.2024 Beim GP muss der Firmenname > 50 Zeichen angepasst werden, das alles >50Zeichen künfitg in Firmenname 2 statt Adresszeile 3
// 14.03.2025 BUS-11342 SwiftNo/BIC im Update BankAccounts ergänzt
// 23.05.2025 BUS-12158 Erweiterung der Geschäftspartner-API um Parameter f. Buyer/Seller/Leitweg-ID
var slib = $.import("uniorg.ServiceLayer", "B1SLLogic"); var slib = $.import("uniorg.ServiceLayer", "B1SLLogic");
var slDest = $.import("uniorg.destinations", "uodestlib"); var slDest = $.import("uniorg.destinations", "uodestlib");
var bpbl = $.import("uniorg.eon.libs", "bp_businesslogic"); var bpbl = $.import("uniorg.eon.libs", "bp_businesslogic");
var copybplib = $.import("uniorg.eon.libs", "copybp");
var ParDebug = false; var ParDebug = false;
var output = {}; var output = {};
@@ -21,7 +44,8 @@ var groupcode_b2m = 103;
var cmpprivate_b2c = "cPrivate"; var cmpprivate_b2c = "cPrivate";
var cmpprivate_b2b = "cCompany"; var cmpprivate_b2b = "cCompany";
var cmpprivate_b2m = "cCompany"; var cmpprivate_b2m = "cCompany";
var service_version = '6.2'; var use_iban = false;
var service_version = '9.7';
function setOutputMessage() { function setOutputMessage() {
@@ -55,23 +79,46 @@ function convertToISODate(dateString) {
} }
} }
function checkSupplierExist(cardcode) {
var suppcardcode = cardcode + '-L';
var conn = $.db.getConnection();
var pstmt;
var exists = false;
//var query = "SELECT T0.\"U_EON_RECACC_REC\" FROM \"A19753_P01_TEST03\".\"@EON_PGN\" T0 WHERE T0.\"Code\" = ?";
//vendeor var query = "SELECT T0.\"U_EON_RECACC_REC\" FROM \"XXREPXX\".\"@EON_PGN\" T0 WHERE T0.\"Code\" = ?";
var query = "SELECT T0.\"CardCode\" FROM \"XXREPXX\".\"OCRD\" T0 WHERE T0.\"CardCode\" = ?";
query = query.replace(/XXREPXX/g, UserComp);
pstmt = conn.prepareStatement(query);
pstmt.setString(1, suppcardcode);
var rs = pstmt.executeQuery();
exists = rs.next();
rs.close();
pstmt.close();
conn.close();
return exists;
}
function getCustRECACC(custpgnr) { function getCustRECACC(custpgnr) {
var conn = $.db.getConnection(); var conn = $.db.getConnection();
var pstmt; var pstmt;
//var query = "SELECT T0.\"U_EON_RECACC_REC\" FROM \"A19753_P01_TEST03\".\"@EON_PGN\" T0 WHERE T0.\"Code\" = ?"; //var query = "SELECT T0.\"U_EON_RECACC_REC\" FROM \"A19753_P01_TEST03\".\"@EON_PGN\" T0 WHERE T0.\"Code\" = ?";
//vendeor var query = "SELECT T0.\"U_EON_RECACC_REC\" FROM \"XXREPXX\".\"@EON_PGN\" T0 WHERE T0.\"Code\" = ?"; //vendeor var query = "SELECT T0.\"U_EON_RECACC_REC\" FROM \"XXREPXX\".\"@EON_PGN\" T0 WHERE T0.\"Code\" = ?";
var query = "SELECT T0.\"U_EON_RECACC_PAY\" FROM \"XXREPXX\".\"@EON_PGN\" T0 WHERE T0.\"Code\" = ?"; var query = "SELECT T0.\"U_EON_RECACC_PAY\" FROM \"XXREPXX\".\"@EON_PGN\" T0 WHERE T0.\"Code\" = ?";
query = query.replace(/XXREPXX/g, UserComp) query = query.replace(/XXREPXX/g, UserComp);
pstmt = conn.prepareStatement(query); pstmt = conn.prepareStatement(query);
pstmt.setString(1, custpgnr); pstmt.setString(1, custpgnr);
var rs = pstmt.executeQuery(); var rs = pstmt.executeQuery();
if (!rs.next()) { if (!rs.next()) {
// outMsg = {}; // outMsg = {};
// outMsg.method = "getnexval from sequence error"; // outMsg.method = "getnexval from sequence error";
// outMsg.status = "error"; // outMsg.status = "error";
//outMsg.message = e.message; // outMsg.message = e.message;
//outMessages.push(outMsg); //outMessages.push(outMsg);
} else { } else {
return rs.getString(1); return rs.getString(1);
@@ -81,6 +128,54 @@ function getCustRECACC(custpgnr) {
conn.close(); conn.close();
} }
function getLanguageCode(ISOCODE) {
var conn = $.db.getConnection();
var pstmt;
//var query = "SELECT T0.\"U_EON_RECACC_REC\" FROM \"A19753_P01_TEST03\".\"@EON_PGN\" T0 WHERE T0.\"Code\" = ?";
//vendeor var query = "SELECT T0.\"U_EON_RECACC_REC\" FROM \"XXREPXX\".\"@EON_PGN\" T0 WHERE T0.\"Code\" = ?";
var query = 'SELECT T0."Code" FROM "XXREPXX".OLNG T0 WHERE upper(T0."ShortName") = upper(?)';
query = query.replace(/XXREPXX/g, UserComp);
pstmt = conn.prepareStatement(query);
pstmt.setString(1, ISOCODE);
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 getPaymentTerm(PaymentName) {
var conn = $.db.getConnection();
var pstmt;
//var query = "SELECT T0.\"U_EON_RECACC_REC\" FROM \"A19753_P01_TEST03\".\"@EON_PGN\" T0 WHERE T0.\"Code\" = ?";
//vendeor var query = "SELECT T0.\"U_EON_RECACC_REC\" FROM \"XXREPXX\".\"@EON_PGN\" T0 WHERE T0.\"Code\" = ?";
var query = 'SELECT T0."GroupNum" FROM "XXREPXX".OCTG T0 WHERE upper(T0."PymntGroup") = upper(?)';
query = query.replace(/XXREPXX/g, UserComp);
pstmt = conn.prepareStatement(query);
pstmt.setString(1, PaymentName);
var rs = pstmt.executeQuery();
if (!rs.next()) {
throw new Error(PaymentName + " not found in SAP B1 Payment Terms(OCTG).");
} else {
return rs.getInteger(1);
}
rs.close();
pstmt.close();
conn.close();
}
function splitcardname(mycardname) { function splitcardname(mycardname) {
var mycardnamenew = []; var mycardnamenew = [];
if (mycardname.length > 50) { if (mycardname.length > 50) {
@@ -134,6 +229,182 @@ function getnextvalsepaid() {
conn.close(); conn.close();
} }
function parseIBAN(iban) {
var conn = $.hdb.getConnection();
try {
var myCountry = iban.substring(0, 2);
var rs1 = conn.executeQuery('SELECT COUNT(\'A\') as COUNT_COUNTRY FROM "INTEGRATION_DATA".BANKS_SCHEMA WHERE COUNTRY = ? ; ', myCountry);
if (rs1[0].COUNT_COUNTRY == 0) {
throw new Error(myCountry + " IBAN currently not supported.");
}
var rs2 = conn.executeQuery('SELECT FULLLENGHTH FROM "INTEGRATION_DATA".BANKS_SCHEMA WHERE COUNTRY = ? ; ', myCountry);
if (rs2[0].FULLLENGHTH !== iban.length) {
throw new Error(myCountry + " IBAN length invalid.");
}
var rs = conn.executeQuery('SELECT * FROM "INTEGRATION_DATA".EON_BP_GETBANKDETAILS(?); ', iban);
var bankDetails = {
BankCountry: rs[0].COUNTRY,
BankCode: rs[0].BANKCODE,
AccountNo: rs[0].ACCOUNT,
SwiftNo: rs[0].SWIFTNO,
BankName: rs[0].BANKNAME
};
return bankDetails;
} catch (error) {
outMsg = {};
outMsg.method = "parseIBAN";
outMsg.status = "error";
outMsg.message = error.message;
outMessages.push(outMsg);
outStatus = "error";
return false;
} finally {
conn.close();
}
// throw new Error(myCountry + " IBAN currently not supported.")
/*
var myCountry = iban.substring(0, 2);
switch (myCountry) {
case 'DE':
return {
BankCountry: myCountry,
BankCode: iban.substring(4, 12),
AccountNo: iban.substring(12, 23)
};
case 'IT':
return {
BankCountry: myCountry,
BankCode: iban.substring(5, 10),
Branch: iban.substring(10, 15),
AccountNo: iban.substring(15, 27)
};
default:
throw new Error(myCountry + " IBAN currently not supported.")
}
*/
}
function checkShippingType(_shippingType, _schema) {
var conn = $.hdb.getConnection();
try {
conn.executeUpdate("SET SCHEMA \"" + _schema + "\"");
// TODO: Umstellen auf "@UO_SPOOL_TYPES"
var rs = conn.executeQuery('SELECT "Code" FROM "@UO_OUTPUT_RULES" WHERE "Code"=? ', _shippingType);
myDebug.checkShippingType = rs;
return rs.length > 0;
} catch (error) {
outMsg = {};
outMsg.method = "checkShippingType";
outMsg.status = "error";
outMsg.message = error.message;
outMessages.push(outMsg);
return false;
} finally {
conn.close();
}
}
function checkShippingTypeMail(_email) {
if (_email !== undefined) {
if (_email.length === 0) {
outMsg = {};
outMsg.method = "checkShippingTypeMail";
outMsg.status = "error";
outMsg.message = "E-mail address is missing but shipping type is Mail.";
outMessages.push(outMsg);
outStatus = "error";
}
} else {
outMsg = {};
outMsg.method = "checkShippingTypeMail";
outMsg.status = "error";
outMsg.message = "E-mail address is missing but shipping type is Mail.";
outMessages.push(outMsg);
outStatus = "error";
}
}
function createBankIfMissing(iban, SESSIONID, NODEID) {
outMsg = {};
outMsg.method = "checkBank";
outMsg.status = "error";
if (iban) {
var bankDetails = parseIBAN(iban);
if (bankDetails === false) {
return;
}
var conn = $.hdb.getConnection();
conn.executeUpdate("SET SCHEMA \"" + UserComp + "\"");
var rs = conn.executeQuery('SELECT "AbsEntry" FROM ODSC WHERE "BankCode"=? AND "CountryCod"=?', bankDetails.BankCode, bankDetails.BankCountry);
myDebug.queryBankResult = rs;
if (rs.length === 0) {
outMsg.status = "success";
outMsg.message = "not exists";
outMessages.push(outMsg);
outMsg = {};
outMsg.method = "createBank";
var bankObj = {
"BankCode": bankDetails.BankCode,
"CountryCode": bankDetails.BankCountry,
"BankName": bankDetails.BankName,
"SwiftNo": bankDetails.SwiftNo
};
myDebug.createBankObj = bankObj;
var responseCreate = slib.postDynamicEntity("Banks", JSON.stringify(bankObj), SESSIONID, NODEID);
outMsg.statuscode = responseCreate.status;
myDebug.responseBankCreate = JSON.parse(responseCreate.body.asString());
if (responseCreate.status >= 200 && responseCreate.status < 300) {
outMsg.status = "success";
outMessages.push(outMsg);
} else {
outMsg.status = "error";
//outMsg.message = myDebug.responseBankCreate;
outStatus = "error";
var slError = myDebug.responseBankCreate.error;
if (slError && slError.hasOwnProperty("code") && slError.message && slError.message.value) {
outMsg.message = slError.message.value + " (Code: " + slError.code.toString() + ")";
} else {
outMsg.message = JSON.stringify(myDebug.responseBankCreate);
}
outMsg.response = myDebug.responseBankCreate;
outErrorMessages.push(outMsg);
}
} else {
outMsg.status = "success";
outMsg.message = "exists";
outMessages.push(outMsg);
}
conn.close();
} else {
outMsg.status = "error";
outStatus = "error";
outMsg.message = "IBAN is missing";
outMessages.push(outMsg);
}
}
function buildBPObj(JbpObj, SBOOBJ) { function buildBPObj(JbpObj, SBOOBJ) {
var myseries = ''; var myseries = '';
var mygroupcode = ''; var mygroupcode = '';
@@ -142,8 +413,8 @@ function buildBPObj(JbpObj, SBOOBJ) {
var mybpcontactname = ''; var mybpcontactname = '';
switch (JbpObj.group) { switch (JbpObj.group) {
case 'B2C': case 'B2C':
mycardname = JbpObj.name.toString() + ' ' + JbpObj.surname.toString(); mycardname = JbpObj.name.toString().trim() + ' ' + JbpObj.surname.toString().trim();
mybpcontactname = JbpObj.name.toString() + ' ' + JbpObj.surname.toString(); mybpcontactname = JbpObj.name.toString().trim() + ' ' + JbpObj.surname.toString().trim();
myseries = series_b2c; myseries = series_b2c;
mygroupcode = groupcode_b2c; mygroupcode = groupcode_b2c;
mycmpprivate = cmpprivate_b2c; mycmpprivate = cmpprivate_b2c;
@@ -151,7 +422,7 @@ function buildBPObj(JbpObj, SBOOBJ) {
case 'B2B': case 'B2B':
//mycardname = JbpObj.name.toString(); //mycardname = JbpObj.name.toString();
mycardname = JbpObj.addresses[0].address.toString(); mycardname = JbpObj.addresses[0].address.toString();
mybpcontactname = JbpObj.name.toString() + ' ' + JbpObj.surname.toString(); mybpcontactname = JbpObj.name.toString().trim() + ' ' + JbpObj.surname.toString().trim();
myseries = series_b2b; myseries = series_b2b;
mygroupcode = groupcode_b2b; mygroupcode = groupcode_b2b;
mycmpprivate = cmpprivate_b2b; mycmpprivate = cmpprivate_b2b;
@@ -159,14 +430,14 @@ function buildBPObj(JbpObj, SBOOBJ) {
case 'B2M': case 'B2M':
//mycardname = JbpObj.name.toString(); //mycardname = JbpObj.name.toString();
mycardname = JbpObj.addresses[0].address.toString(); mycardname = JbpObj.addresses[0].address.toString();
mybpcontactname = JbpObj.name.toString() + ' ' + JbpObj.surname.toString(); mybpcontactname = JbpObj.name.toString().trim() + ' ' + JbpObj.surname.toString().trim();
myseries = series_b2m; myseries = series_b2m;
mygroupcode = groupcode_b2m; mygroupcode = groupcode_b2m;
mycmpprivate = cmpprivate_b2m; mycmpprivate = cmpprivate_b2m;
break; break;
default: default:
mycardname = JbpObj.name.toString() + ' ' + JbpObj.surname.toString(); mycardname = JbpObj.name.toString().trim() + ' ' + JbpObj.surname.toString().trim();
mybpcontactname = JbpObj.name.toString() + ' ' + JbpObj.surname.toString(); mybpcontactname = JbpObj.name.toString().trim() + ' ' + JbpObj.surname.toString().trim();
myseries = series_b2c; myseries = series_b2c;
mygroupcode = groupcode_b2c; mygroupcode = groupcode_b2c;
mycmpprivate = cmpprivate_b2c; mycmpprivate = cmpprivate_b2c;
@@ -182,18 +453,25 @@ function buildBPObj(JbpObj, SBOOBJ) {
bpObj.GroupCode = mygroupcode; // JbpObj.group.toString(); bpObj.GroupCode = mygroupcode; // JbpObj.group.toString();
bpObj.Phone1 = JbpObj.phone.toString(); bpObj.Phone1 = JbpObj.phone.toString();
bpObj.Cellular = JbpObj.mobile_phone.toString(); bpObj.Cellular = JbpObj.mobile_phone.toString();
// To Do: Language Übersetzen
bpObj.LanguageCode = getLanguageCode(JbpObj.language_code.toString());
if (JbpObj.vatid) { if (JbpObj.vatid) {
bpObj.FederalTaxID = JbpObj.vatid.toString(); bpObj.FederalTaxID = JbpObj.vatid.toString();
} }
if (JbpObj.bank_account.sepa_mandate.toString() == 'Ja') { if (JbpObj.bank_account.sepa_mandate.toString() === 'Ja') {
bpObj.PayTermsGrpCode = 13; bpObj.PayTermsGrpCode = 13;
} }
else if (JbpObj.payment_term)
{
bpObj.PayTermsGrpCode = getPaymentTerm(JbpObj.payment_term);
}
bpObj.EmailAddress = JbpObj.email.toString(); bpObj.EmailAddress = JbpObj.email.toString();
bpObj.U_EON_ID_CRM = JbpObj.id_crm.toString(); bpObj.U_EON_ID_CRM = JbpObj.id_crm.toString();
bpObj.U_EON_ID_CRM_INTERNAL = JbpObj.id_msd.toString(); bpObj.U_EON_ID_CRM_INTERNAL = JbpObj.id_msd.toString();
if (JbpObj.shipping_type)
{ if (JbpObj.shipping_type && !(SBOOBJ.U_UO_OUTPUT_VSARTAR && SBOOBJ.U_UO_OUTPUT_VSARTAR in ['CSV'])) {
bpObj.U_UO_OUTPUT_VSARTAR = JbpObj.shipping_type.toString(); bpObj.U_UO_OUTPUT_VSARTAR = JbpObj.shipping_type.toString();
} }
if (!JbpObj.pgnr) { if (!JbpObj.pgnr) {
@@ -208,14 +486,17 @@ function buildBPObj(JbpObj, SBOOBJ) {
bpObj.Affiliate = 'tYES'; bpObj.Affiliate = 'tYES';
} }
if (JbpObj.res_prop===true) { if (JbpObj.res_prop === true) {
bpObj.U_EON_WVB = 'Y'; bpObj.U_EON_WVB = 'Y';
} }
if (JbpObj.res_prop === false) {
if (JbpObj.res_prop===false) { bpObj.U_EON_WVB = 'N';
bpObj.U_EON_WVB = 'N'; }
}
bpObj.U_UO_EDI_BUYER_ID = JbpObj.e_invoice_buyerid;
bpObj.U_UO_EDI_SELLER_ID = JbpObj.e_invoice_sellerid;
bpObj.U_UO_EDI_ROUTING_ID = JbpObj.e_invoice_routingid;
bpObj.BPAddresses = []; bpObj.BPAddresses = [];
// bpObj.BPAddresses[0].AddressName = 'test'; // bpObj.BPAddresses[0].AddressName = 'test';
@@ -226,22 +507,24 @@ function buildBPObj(JbpObj, SBOOBJ) {
// mybpAdresses.g = g; // mybpAdresses.g = g;
// mybpAdresses.h = h; // mybpAdresses.h = h;
var myaddressbpname = JbpObj.addresses[h].street.toString() + ' ' + JbpObj.addresses[h].street_no.toString(); var myaddressbpname = JbpObj.addresses[h].street.toString() + ' ' + JbpObj.addresses[h].street_no.toString();
//var myaddressbpname = JbpObj.addresses[h].addressid.toString();
mybpAdresses.AddressName = SBOOBJ.BPAddresses[g].AddressName; mybpAdresses.AddressName = SBOOBJ.BPAddresses[g].AddressName;
mybpAdresses.AddressType = SBOOBJ.BPAddresses[g].AddressType; mybpAdresses.AddressType = SBOOBJ.BPAddresses[g].AddressType;
mybpAdresses.BPCode = SBOOBJ.BPAddresses[g].BPCode; mybpAdresses.BPCode = SBOOBJ.BPAddresses[g].BPCode;
mybpAdresses.RowNum = SBOOBJ.BPAddresses[g].RowNum; mybpAdresses.RowNum = SBOOBJ.BPAddresses[g].RowNum;
if (SBOOBJ.BPAddresses[g].AddressName === myaddressbpname && SBOOBJ.BPAddresses[g].AddressType === convertAdrType(JbpObj.addresses[ if (SBOOBJ.BPAddresses[g].U_EON_EXT_ID === JbpObj.addresses[h].addressid.toString() && SBOOBJ.BPAddresses[g].AddressType ===
h].type)) { convertAdrType(JbpObj.addresses[
h].type)) {
//mybpAdresses.AddressName = JbpObj.addresses[h].address.toString(); //mybpAdresses.AddressName = JbpObj.addresses[h].address.toString();
mybpAdresses.AddressName = myaddressbpname;
mybpAdresses.Street = JbpObj.addresses[h].street.toString(); mybpAdresses.Street = JbpObj.addresses[h].street.toString();
//mybpAdresses.Block = 'test'; //mybpAdresses.Block = 'test';
mybpAdresses.ZipCode = JbpObj.addresses[h].zip_code.toString(); mybpAdresses.ZipCode = JbpObj.addresses[h].zip_code.toString();
mybpAdresses.City = JbpObj.addresses[h].city.toString(); mybpAdresses.City = JbpObj.addresses[h].city.toString();
//mybpAdresses.County = 'test'; //mybpAdresses.County = 'test';
mybpAdresses.Country = JbpObj.addresses[h].country.toString(); mybpAdresses.Country = JbpObj.addresses[h].country.toString();
if (JbpObj.addresses[h].standard = 'ja') { if (JbpObj.addresses[h].standard === 'yes') {
if (convertAdrType(JbpObj.addresses[h].type) === 'bo_BillTo') { if (convertAdrType(JbpObj.addresses[h].type) === 'bo_BillTo') {
bpObj.BilltoDefault = myaddressbpname; bpObj.BilltoDefault = myaddressbpname;
} }
@@ -255,20 +538,28 @@ function buildBPObj(JbpObj, SBOOBJ) {
//mybpAdresses.TaxCode = 'test'; //mybpAdresses.TaxCode = 'test';
//mybpAdresses.BuildingFloorRoom = 'test'; //mybpAdresses.BuildingFloorRoom = 'test';
/* /*
if (JbpObj.addresses[h].type === 'B') { if (JbpObj.addresses[h].type === 'B') {
mybpAdresses.AddressType = 'bo_BillTo'; mybpAdresses.AddressType = 'bo_BillTo';
} else { } else {
mybpAdresses.AddressType = 'bo_ShipTo'; mybpAdresses.AddressType = 'bo_ShipTo';
} }
*/ */
if (JbpObj.group == 'B2B' || JbpObj.group == 'B2M') { if (JbpObj.group === 'B2B' || JbpObj.group === 'B2M') {
//mybpAdresses.AddressName2 = mycardname; //mybpAdresses.AddressName2 = mycardname;
mybpAdresses.AddressName2 = myaddress23[0]; mybpAdresses.AddressName2 = myaddress23[0];
mybpAdresses.AddressName3 = myaddress23[1]; //mybpAdresses.AddressName3 = myaddress23[1];
mybpAdresses.U_CompanyName2 = myaddress23[1];
} }
if (JbpObj.addresses[h].address2) {
mybpAdresses.BuildingFloorRoom = JbpObj.addresses[h].address2.toString();
}
if (JbpObj.addresses[h].address3) { if (JbpObj.addresses[h].address3) {
mybpAdresses.AddressName3 = JbpObj.addresses[h].address3.toString(); mybpAdresses.AddressName3 = JbpObj.addresses[h].address3.toString();
} }
// if (JbpObj.addresses[h].address2) {
// mybpAdresses.AddressName2 = JbpObj.addresses[h].address2.toString();
// }
//mybpAdresses.TypeOfAddress = 'test'; //mybpAdresses.TypeOfAddress = 'test';
mybpAdresses.StreetNo = JbpObj.addresses[h].street_no.toString(); mybpAdresses.StreetNo = JbpObj.addresses[h].street_no.toString();
mybpAdresses.U_EON_EXT_ID = JbpObj.addresses[h].addressid.toString(); mybpAdresses.U_EON_EXT_ID = JbpObj.addresses[h].addressid.toString();
@@ -292,12 +583,13 @@ function buildBPObj(JbpObj, SBOOBJ) {
var myaddbpname = JbpObj.addresses[h].street.toString() + ' ' + JbpObj.addresses[h].street_no.toString(); var myaddbpname = JbpObj.addresses[h].street.toString() + ' ' + JbpObj.addresses[h].street_no.toString();
for (var g in SBOOBJ.BPAddresses) { for (var g in SBOOBJ.BPAddresses) {
if (SBOOBJ.BPAddresses[g].AddressName === myaddbpname && SBOOBJ.BPAddresses[g].AddressType === convertAdrType(JbpObj.addresses[h].type)) { if (SBOOBJ.BPAddresses[g].U_EON_EXT_ID === JbpObj.addresses[h].addressid.toString() && SBOOBJ.BPAddresses[g].AddressType ===
convertAdrType(JbpObj.addresses[h].type)) {
myfound = true; myfound = true;
} }
} }
if (myfound == false) { if (myfound === false) {
myaddbpAdresses.AddressName = myaddbpname; //JbpObj.addresses[h].address.toString(); myaddbpAdresses.AddressName = myaddbpname; //JbpObj.addresses[h].address.toString();
myaddbpAdresses.Street = JbpObj.addresses[h].street.toString(); myaddbpAdresses.Street = JbpObj.addresses[h].street.toString();
//myaddbpAdresses.Block = 'test'; //myaddbpAdresses.Block = 'test';
@@ -309,7 +601,7 @@ function buildBPObj(JbpObj, SBOOBJ) {
//myaddbpAdresses.FederalTaxID = 'test'; //myaddbpAdresses.FederalTaxID = 'test';
//myaddbpAdresses.TaxCode = 'test'; //myaddbpAdresses.TaxCode = 'test';
//myaddbpAdresses.BuildingFloorRoom = 'test'; //myaddbpAdresses.BuildingFloorRoom = 'test';
if (JbpObj.addresses[h].standard = 'ja') { if (JbpObj.addresses[h].standard === 'yes') {
if (convertAdrType(JbpObj.addresses[h].type) === 'bo_BillTo') { if (convertAdrType(JbpObj.addresses[h].type) === 'bo_BillTo') {
bpObj.BilltoDefault = myaddbpname; bpObj.BilltoDefault = myaddbpname;
} }
@@ -319,10 +611,14 @@ function buildBPObj(JbpObj, SBOOBJ) {
} }
myaddbpAdresses.AddressType = convertAdrType(JbpObj.addresses[h].type); myaddbpAdresses.AddressType = convertAdrType(JbpObj.addresses[h].type);
if (JbpObj.group == 'B2B' || JbpObj.group == 'B2M') { if (JbpObj.group === 'B2B' || JbpObj.group === 'B2M') {
//myaddbpAdresses.AddressName2 = mycardname; //myaddbpAdresses.AddressName2 = mycardname;
myaddbpAdresses.AddressName2 = myaddress23[0]; myaddbpAdresses.AddressName2 = myaddress23[0];
myaddbpAdresses.AddressName3 = myaddress23[1]; //myaddbpAdresses.AddressName3 = myaddress23[1];
myaddbpAdresses.U_CompanyName2 = myaddress23[1];
}
if (JbpObj.addresses[h].address2) {
myaddbpAdresses.BuildingFloorRoom = JbpObj.addresses[h].address2.toString();
} }
if (JbpObj.addresses[h].address3) { if (JbpObj.addresses[h].address3) {
myaddbpAdresses.AddressName3 = JbpObj.addresses[h].address3.toString(); myaddbpAdresses.AddressName3 = JbpObj.addresses[h].address3.toString();
@@ -360,7 +656,7 @@ function buildBPObj(JbpObj, SBOOBJ) {
// //bpObj.BPAddresses.push(myaddbpAdresses); // //bpObj.BPAddresses.push(myaddbpAdresses);
// } // }
// } // }
// //} // //}
bpObj.ContactEmployees = []; bpObj.ContactEmployees = [];
var myfoundCP = false; var myfoundCP = false;
@@ -370,8 +666,8 @@ function buildBPObj(JbpObj, SBOOBJ) {
mybpContactEmployees.CardCode = SBOOBJ.ContactEmployees[cpB1].CardCode; mybpContactEmployees.CardCode = SBOOBJ.ContactEmployees[cpB1].CardCode;
mybpContactEmployees.InternalCode = SBOOBJ.ContactEmployees[cpB1].InternalCode; mybpContactEmployees.InternalCode = SBOOBJ.ContactEmployees[cpB1].InternalCode;
if (SBOOBJ.ContactEmployees[cpB1].Name == mybpcontactname) { if (SBOOBJ.ContactEmployees[cpB1].Name == mybpcontactname) {
mybpContactEmployees.FirstName = JbpObj.name.toString(); mybpContactEmployees.FirstName = JbpObj.name.toString().trim();
mybpContactEmployees.LastName = JbpObj.surname.toString(); mybpContactEmployees.LastName = JbpObj.surname.toString().trim();
mybpContactEmployees.Title = JbpObj.title.toString(); mybpContactEmployees.Title = JbpObj.title.toString();
mybpContactEmployees.U_EON_SALUTATION = JbpObj.salutation.toString(); mybpContactEmployees.U_EON_SALUTATION = JbpObj.salutation.toString();
bpObj.ContactPerson = mybpcontactname; bpObj.ContactPerson = mybpcontactname;
@@ -382,8 +678,8 @@ function buildBPObj(JbpObj, SBOOBJ) {
if (myfoundCP == false) { if (myfoundCP == false) {
mybpContactEmployees = {}; mybpContactEmployees = {};
mybpContactEmployees.Name = mybpcontactname; //mycardname; mybpContactEmployees.Name = mybpcontactname; //mycardname;
mybpContactEmployees.FirstName = JbpObj.name.toString(); mybpContactEmployees.FirstName = JbpObj.name.toString().trim();
mybpContactEmployees.LastName = JbpObj.surname.toString(); mybpContactEmployees.LastName = JbpObj.surname.toString().trim();
mybpContactEmployees.Title = JbpObj.title.toString(); mybpContactEmployees.Title = JbpObj.title.toString();
mybpContactEmployees.U_EON_SALUTATION = JbpObj.salutation.toString(); mybpContactEmployees.U_EON_SALUTATION = JbpObj.salutation.toString();
bpObj.ContactPerson = mybpcontactname; bpObj.ContactPerson = mybpcontactname;
@@ -393,72 +689,106 @@ function buildBPObj(JbpObj, SBOOBJ) {
bpObj.BPBankAccounts = []; bpObj.BPBankAccounts = [];
var myfoundBank = false; var myfoundBank = false;
var myIBAN = JbpObj.bank_account.iban.toString().replace(/ /g, ''); var myIBAN = JbpObj.bank_account.iban.toString().replace(/ /g, '');
var myCountry = myIBAN.substring(0, 2); if (myIBAN !== '') {
var myBankCode = myIBAN.substring(4, 12); use_iban = true;
var myAccountNo = myIBAN.substring(12, 23); } else {
var mySignatureDate = convertToISODate(JbpObj.bank_account.signature_date); use_iban = false;
for (var ba in SBOOBJ.BPBankAccounts) {
var myBPBankAccounts = {};
myBPBankAccounts.BPCode = SBOOBJ.BPBankAccounts[ba].BPCode;
myBPBankAccounts.InternalKey = SBOOBJ.BPBankAccounts[ba].InternalKey;
myBPBankAccounts.Country = SBOOBJ.BPBankAccounts[ba].Country;
myBPBankAccounts.BankCode = SBOOBJ.BPBankAccounts[ba].BankCode;
myBPBankAccounts.AccountNo = SBOOBJ.BPBankAccounts[ba].AccountNo;
myBPBankAccounts.IBAN = SBOOBJ.BPBankAccounts[ba].IBAN;
if (SBOOBJ.BPBankAccounts[ba].IBAN.replace(/ /g, '') === myIBAN) {
myfoundBank = true;
if (JbpObj.bank_account.bic.toString() !== '') {
myBPBankAccounts.BICSwiftCode = JbpObj.bank_account.bic.toString();
}
myBPBankAccounts.AccountName = JbpObj.bank_account.account_owner.toString();
myBPBankAccounts.Street = JbpObj.bank_account.street.toString() + " " + JbpObj.bank_account.street_no.toString();
myBPBankAccounts.ZipCode = JbpObj.bank_account.zip_code.toString();
myBPBankAccounts.City = JbpObj.bank_account.city.toString();
// myBPBankAccounts.MandateID = JbpObj.bank_account.sepa_mandate_id.toString();
myBPBankAccounts.SignatureDate = mySignatureDate;
if (JbpObj.bank_account.sepa_mandate.toString() == 'Ja') {
if (SBOOBJ.BPBankAccounts[ba].MandateID == null) //|| SBOOBJ.BPBankAccounts[ba].MandateID.substring(0,10) > JbpObj.id_crm )
{
myBPBankAccounts.MandateID = JbpObj.id_crm + getnextvalsepaid();
}
bpObj.CollectionAuthorization = 'tYES';
}
}
bpObj.BankCountry = myCountry;
bpObj.DefaultBankCode = myBankCode;
bpObj.DefaultAccount = myAccountNo;
bpObj.BPBankAccounts.push(myBPBankAccounts);
} }
if (myfoundBank === false) {
myBPBankAccounts = {};
myBPBankAccounts.IBAN = myIBAN;
myBPBankAccounts.Country = myCountry;
myBPBankAccounts.BankCode = myBankCode;
myBPBankAccounts.AccountNo = myAccountNo;
if (JbpObj.bank_account.bic.toString() !== '') {
myBPBankAccounts.BICSwiftCode = JbpObj.bank_account.bic.toString();
}
myBPBankAccounts.AccountName = JbpObj.bank_account.account_owner.toString();
myBPBankAccounts.Street = JbpObj.bank_account.street.toString() + " " + JbpObj.bank_account.street_no.toString();
myBPBankAccounts.ZipCode = JbpObj.bank_account.zip_code.toString();
myBPBankAccounts.City = JbpObj.bank_account.city.toString();
// myBPBankAccounts.MandateID = JbpObj.bank_account.sepa_mandate_id.toString();
myBPBankAccounts.SignatureDate = mySignatureDate;
if (JbpObj.bank_account.sepa_mandate.toString() == 'Ja') { if (use_iban) {
// myBPBankAccounts.MandateID = SBOOBJ.BPBankAccounts[ba].MandateID.substring(0,10);
// if (SBOOBJ.BPBankAccounts[ba].MandateID.IsNullOrEmpty ) //|| SBOOBJ.BPBankAccounts[ba].MandateID.substring(0,10) > JbpObj.id_crm var bankDetails = parseIBAN(myIBAN);
//{
myBPBankAccounts.MandateID = JbpObj.id_crm + getnextvalsepaid(); if (bankDetails === false) {;
bpObj.CollectionAuthorization = 'tYES'; } else {
myBPBankAccounts.SEPASeqType = 'sstFRST';
//} var myCountry = bankDetails.BankCountry;
var myBankCode = bankDetails.BankCode;
var myAccountNo = bankDetails.AccountNo;
var mySwiftNo = bankDetails.SwiftNo;
var mySignatureDate = convertToISODate(JbpObj.bank_account.signature_date);
for (var ba in SBOOBJ.BPBankAccounts) {
var myBPBankAccounts = {};
myBPBankAccounts.BPCode = SBOOBJ.BPBankAccounts[ba].BPCode;
myBPBankAccounts.InternalKey = SBOOBJ.BPBankAccounts[ba].InternalKey;
myBPBankAccounts.Country = SBOOBJ.BPBankAccounts[ba].Country;
myBPBankAccounts.BankCode = SBOOBJ.BPBankAccounts[ba].BankCode;
myBPBankAccounts.AccountNo = SBOOBJ.BPBankAccounts[ba].AccountNo;
myBPBankAccounts.IBAN = SBOOBJ.BPBankAccounts[ba].IBAN;
myBPBankAccounts.MandateID = SBOOBJ.BPBankAccounts[ba].MandateID;
myBPBankAccounts.SEPASeqType = SBOOBJ.BPBankAccounts[ba].SEPASeqType;
if (SBOOBJ.BPBankAccounts[ba].IBAN.replace(/ /g, '') === myIBAN) {
myfoundBank = true;
if (JbpObj.bank_account.bic.toString() !== '') {
myBPBankAccounts.BICSwiftCode = JbpObj.bank_account.bic.toString();
}
else if (mySwiftNo.toString() !== '')
{
myBPBankAccounts.BICSwiftCode = mySwiftNo.toString();
}
myBPBankAccounts.Country = myCountry;
myBPBankAccounts.BankCode = myBankCode;
myBPBankAccounts.AccountNo = myAccountNo;
myBPBankAccounts.AccountName = JbpObj.bank_account.account_owner.toString();
myBPBankAccounts.Street = JbpObj.bank_account.street.toString() + " " + JbpObj.bank_account.street_no.toString();
myBPBankAccounts.ZipCode = JbpObj.bank_account.zip_code.toString();
myBPBankAccounts.City = JbpObj.bank_account.city.toString();
// myBPBankAccounts.MandateID = JbpObj.bank_account.sepa_mandate_id.toString();
myBPBankAccounts.SignatureDate = mySignatureDate;
if (JbpObj.bank_account.sepa_mandate.toString() == 'Ja') {
if (SBOOBJ.BPBankAccounts[ba].MandateID == null) //|| SBOOBJ.BPBankAccounts[ba].MandateID.substring(0,10) > JbpObj.id_crm )
{
myBPBankAccounts.MandateID = JbpObj.id_crm + getnextvalsepaid();
}
bpObj.CollectionAuthorization = 'tYES';
}
//22.07.2024 BUS-7580
if (JbpObj.bank_account.sepa_mandate.toString() == 'Nein') {
bpObj.CollectionAuthorization = 'tNO';
}
}
bpObj.BankCountry = myCountry;
bpObj.DefaultBankCode = myBankCode;
bpObj.DefaultAccount = myAccountNo;
bpObj.BPBankAccounts.push(myBPBankAccounts);
}
if (myfoundBank === false) {
myBPBankAccounts = {};
myBPBankAccounts.IBAN = myIBAN;
myBPBankAccounts.Country = myCountry;
myBPBankAccounts.BankCode = myBankCode;
myBPBankAccounts.AccountNo = myAccountNo;
if (JbpObj.bank_account.bic.toString() !== '') {
myBPBankAccounts.BICSwiftCode = JbpObj.bank_account.bic.toString();
}
myBPBankAccounts.AccountName = JbpObj.bank_account.account_owner.toString();
myBPBankAccounts.Street = JbpObj.bank_account.street.toString() + " " + JbpObj.bank_account.street_no.toString();
myBPBankAccounts.ZipCode = JbpObj.bank_account.zip_code.toString();
myBPBankAccounts.City = JbpObj.bank_account.city.toString();
// myBPBankAccounts.MandateID = JbpObj.bank_account.sepa_mandate_id.toString();
myBPBankAccounts.SignatureDate = mySignatureDate;
if (JbpObj.bank_account.sepa_mandate.toString() == 'Ja') {
// myBPBankAccounts.MandateID = SBOOBJ.BPBankAccounts[ba].MandateID.substring(0,10);
// if (SBOOBJ.BPBankAccounts[ba].MandateID.IsNullOrEmpty ) //|| SBOOBJ.BPBankAccounts[ba].MandateID.substring(0,10) > JbpObj.id_crm
//{
myBPBankAccounts.MandateID = JbpObj.id_crm + getnextvalsepaid();
bpObj.CollectionAuthorization = 'tYES';
myBPBankAccounts.SEPASeqType = 'sstFRST';
//}
}
//23.07.2024 BUS-7580
if (JbpObj.bank_account.sepa_mandate.toString() == 'Nein') {
bpObj.CollectionAuthorization = 'tNO';
}
bpObj.BankCountry = myCountry;
bpObj.DefaultBankCode = myBankCode;
bpObj.DefaultAccount = myAccountNo;
bpObj.BPBankAccounts.push(myBPBankAccounts);
}
} }
bpObj.BankCountry = myCountry;
bpObj.DefaultBankCode = myBankCode;
bpObj.DefaultAccount = myAccountNo;
bpObj.BPBankAccounts.push(myBPBankAccounts);
} }
return bpObj; return bpObj;
@@ -490,7 +820,9 @@ function upsBP(searchparam, JbpObj) {
loginInfo.Password = UserPass; loginInfo.Password = UserPass;
loginInfo.CompanyDB = UserComp; loginInfo.CompanyDB = UserComp;
// SL LOGIN var slError;
// SL LOGIN
var response = slib.SLLogin(JSON.stringify(loginInfo), null, null); var response = slib.SLLogin(JSON.stringify(loginInfo), null, null);
// B1SESSION and ROUTEID cookies returned by Login // B1SESSION and ROUTEID cookies returned by Login
@@ -505,22 +837,31 @@ function upsBP(searchparam, JbpObj) {
} }
output.loginInfo = loginInfo; output.loginInfo = loginInfo;
// output.loginResponse = JSON.parse(response.body.asString()); // output.loginResponse = JSON.parse(response.body.asString());
var loginResponse;
try { try {
output.loginResponse = JSON.parse(response.body.asString()); loginResponse = JSON.parse(response.body.asString());
} catch (e) { } catch (e) {
output.loginResponse = response.body.asString(); loginResponse = response.body.asString();
} }
output.loginResponse = loginResponse;
if (response.status !== 200) { if (response.status !== 200) {
outMsg = {}; outMsg = {};
outMsg.method = "login"; outMsg.method = "login";
outMsg.status = "error"; outMsg.status = "error";
outMsg.message = output.loginResponse; //outMsg.message = output.loginResponse;
slError = loginResponse.error;
if (slError && slError.hasOwnProperty("code") && slError.message && slError.message.value) {
outMsg.message = slError.message.value + " (Code: " + slError.code.toString() + ")";
} else {
outMsg.message = JSON.stringify(loginResponse);
}
outMsg.response = loginResponse;
outMessages.push(outMsg); outMessages.push(outMsg);
outStatus = "error"; outStatus = "error";
} }
if (JbpObj.vatid) { if (JbpObj.vatid) {
var checkmyvatid = bpbl.checkvatid(JbpObj.vatid, JbpObj.addresses[0].country.toUpperCase(), UserComp) var checkmyvatid = bpbl.checkvatid(JbpObj.vatid, JbpObj.vatid.substring(0, 2).toUpperCase(), UserComp);
if (checkmyvatid != "true") { if (checkmyvatid != "true") {
outMsg = {}; outMsg = {};
outMsg.method = "checkVATID"; outMsg.method = "checkVATID";
@@ -531,6 +872,42 @@ function upsBP(searchparam, JbpObj) {
} }
} }
// CBU 18.10.2022 Prüfung Versandart
if (JbpObj.shipping_type) {
var checkShippingTypeResult = checkShippingType(JbpObj.shipping_type, UserComp);
if (!checkShippingTypeResult) {
outMsg = {};
outMsg.method = "shipping_type";
outMsg.status = "error";
outMsg.message = "Shippingtype not valid: " + JbpObj.shipping_type;
outStatus = "error";
outMessages.push(outMsg);
} else {
// CBU 24.01.2023
if (JbpObj.shipping_type === "M") {
checkShippingTypeMail(JbpObj.email);
}
}
} else {
outMsg = {};
outMsg.method = "shipping_type";
outMsg.status = "error";
outMsg.message = "Shipping Type missing";
outStatus = "error";
outMessages.push(outMsg);
}
/*
CBU 25.11.2022
if (outStatus !== "error") {
if (JbpObj.bank_account.iban.toString().replace(/ /g, '') !== '') {
createBankIfMissing(JbpObj.bank_account.iban.toString().replace(/ /g, ''), SESSIONID, NODEID);
}
}
*/
if (outStatus !== "error") { if (outStatus !== "error") {
outMsg = {}; outMsg = {};
@@ -544,7 +921,12 @@ function upsBP(searchparam, JbpObj) {
// Removes metadata // Removes metadata
//delete body["odata.metadata"]; //delete body["odata.metadata"];
var bodyGet = JSON.parse(responseGet.body.asString()); var bodyGet;
try {
bodyGet = JSON.parse(responseGet.body.asString());
} catch (e) {
bodyGet = response.responseGet.asString();
}
myDebug.statusGet = responseGet.status; myDebug.statusGet = responseGet.status;
myDebug.responseGet = bodyGet; myDebug.responseGet = bodyGet;
outMsg.statuscode = responseGet.status; outMsg.statuscode = responseGet.status;
@@ -556,7 +938,14 @@ function upsBP(searchparam, JbpObj) {
outMsg.message = "not exists"; outMsg.message = "not exists";
} else { } else {
outMsg.status = "error"; outMsg.status = "error";
outMsg.message = bodyGet; //outMsg.message = bodyGet;
slError = bodyGet.error;
if (slError && slError.hasOwnProperty("code") && slError.message && slError.message.value) {
outMsg.message = slError.message.value + " (Code: " + slError.code.toString() + ")";
} else {
outMsg.message = JSON.stringify(bodyGet);
}
outMsg.response = bodyGet;
outStatus = "error"; outStatus = "error";
} }
outMessages.push(outMsg); outMessages.push(outMsg);
@@ -578,12 +967,26 @@ function upsBP(searchparam, JbpObj) {
outMsg.status = "success"; outMsg.status = "success";
} else { } else {
outMsg.status = "error"; outMsg.status = "error";
outMsg.message = bodyGetFull; //outMsg.message = bodyGetFull;
slError = bodyGetFull.error;
if (slError && slError.hasOwnProperty("code") && slError.message && slError.message.value) {
outMsg.message = slError.message.value + " (Code: " + slError.code.toString() + ")";
} else {
outMsg.message = JSON.stringify(bodyGetFull);
}
outMsg.response = bodyGetFull;
outStatus = "error"; outStatus = "error";
} }
outMessages.push(outMsg); outMessages.push(outMsg);
} }
// CBU 25.11.2022
if (outStatus !== "error") {
if (JbpObj.bank_account.iban.toString().replace(/ /g, '') !== '') {
createBankIfMissing(JbpObj.bank_account.iban.toString().replace(/ /g, ''), SESSIONID, NODEID);
}
}
if (outStatus !== "error") { if (outStatus !== "error") {
var consBPObject = buildBPObj(JbpObj, bodyGetFull); var consBPObject = buildBPObj(JbpObj, bodyGetFull);
@@ -604,12 +1007,26 @@ function upsBP(searchparam, JbpObj) {
outMsg.status = "error"; outMsg.status = "error";
if (responseUpdate.body) { if (responseUpdate.body) {
myDebug.responseUpdate = JSON.parse(responseUpdate.body.asString()); myDebug.responseUpdate = JSON.parse(responseUpdate.body.asString());
outMsg.message = myDebug.responseUpdate; //outMsg.message = myDebug.responseUpdate;
slError = myDebug.responseUpdate.error;
if (slError && slError.hasOwnProperty("code") && slError.message && slError.message.value) {
outMsg.message = slError.message.value + " (Code: " + slError.code.toString() + ")";
} else {
outMsg.message = JSON.stringify(myDebug.responseUpdate);
}
outMsg.response = myDebug.responseUpdate;
outErrorMessages.push(outMsg); outErrorMessages.push(outMsg);
} }
outStatus = "error"; outStatus = "error";
} }
outMessages.push(outMsg); outMessages.push(outMsg);
if (outStatus !== "error" && checkSupplierExist(CardCode)) {
outMsg.method = "copyBP";
outMsg.paramCardCode = CardCode;
var bpoutput = copybplib.copyBP(ParDebug, CardCode);
outMsg.result = bpoutput;
outMessages.push(outMsg);
}
} else { } else {
output.method = "createBP"; output.method = "createBP";
@@ -628,8 +1045,15 @@ function upsBP(searchparam, JbpObj) {
myDebug.Createmessage = "Create error occured"; myDebug.Createmessage = "Create error occured";
output.errorCreatestatus = myDebug.Createmessage; output.errorCreatestatus = myDebug.Createmessage;
outMsg.status = "error"; outMsg.status = "error";
outMsg.message = myDebug.responseCreate; //outMsg.message = myDebug.responseCreate;
outStatus = "error"; outStatus = "error";
slError = myDebug.responseCreate.error;
if (slError && slError.hasOwnProperty("code") && slError.message && slError.message.value) {
outMsg.message = slError.message.value + " (Code: " + slError.code.toString() + ")";
} else {
outMsg.message = JSON.stringify(myDebug.responseCreate);
}
outMsg.response = myDebug.responseCreate;
outErrorMessages.push(outMsg); outErrorMessages.push(outMsg);
} }
outMessages.push(outMsg); outMessages.push(outMsg);
@@ -672,7 +1096,8 @@ function getnextval() {
function setBPCardCode(tableid, bpcardcode) { function setBPCardCode(tableid, bpcardcode) {
var conn = $.db.getConnection(); var conn = $.db.getConnection();
var pstmt; var pstmt;
var query = "update \"NICEPORTAL\".\"UO_CRM_DATA_BP\" set B1_CARDCODE = '" + bpcardcode + "', UPDATE_TS = CURRENT_TIMESTAMP where ID =" + tableid; var query = "update \"NICEPORTAL\".\"UO_CRM_DATA_BP\" set B1_CARDCODE = '" + bpcardcode + "', UPDATE_TS = CURRENT_TIMESTAMP where ID =" +
tableid;
pstmt = conn.prepareStatement(query); pstmt = conn.prepareStatement(query);
// pstmt.setString(1,bpcardcode); // pstmt.setString(1,bpcardcode);
// pstmt.setString(2,tableid); // pstmt.setString(2,tableid);
@@ -704,7 +1129,7 @@ function setRESPONSE(tableid, respstatus, respmessage, errormessage) {
function PutBPDataInTable() { function PutBPDataInTable() {
var pdcontent = $.request.body.asString(); var pdcontent = $.request.body.asString();
// pdcontent = pdcontent.replace(/\"([^(\")\"]+)\":/g,"$1:\"); // pdcontent = pdcontent.replace(/\"([^(\")"]+)\":/g,"$1:");
var JbpObj = JSON.parse(pdcontent); var JbpObj = JSON.parse(pdcontent);
var conn = $.db.getConnection(); var conn = $.db.getConnection();
var pstmt; var pstmt;
@@ -766,9 +1191,14 @@ function PutBPDataInTable() {
var retUpsertBP = upsBP(searchparam, JbpObj); var retUpsertBP = upsBP(searchparam, JbpObj);
//var retUpsertBP = upsBP(searchparam, JSON.stringify(bpObj),JbpObj); //var retUpsertBP = upsBP(searchparam, JSON.stringify(bpObj),JbpObj);
//var retUpsertBP = upsertBP(searchparam, JSON.stringify(bpObj)); //var retUpsertBP = upsertBP(searchparam, JSON.stringify(bpObj));
//var retUpsertBP = addBP(JSON.stringify(bpObj)); //var retUpsertBP = addBP(JSON.stringify(bpObj));
} catch (e) { } catch (e) {
// push last outMsg if missing
if (outMsg.method && outMessages.indexOf(outMsg) === -1) {
outMsg.status = "canceled";
outMessages.push(outMsg);
}
outMsg = {}; outMsg = {};
outMsg.method = "exceptionHandler"; outMsg.method = "exceptionHandler";
outMsg.status = "error"; outMsg.status = "error";
@@ -792,6 +1222,7 @@ function PutBPDataInTable() {
if (ParDebug) { if (ParDebug) {
vals.debug = {}; vals.debug = {};
vals.debug.statement = query; vals.debug.statement = query;
vals.debugInfo = myDebug;
} }
// vals.group = JbpObj.group.toString(); // vals.group = JbpObj.group.toString();
@@ -805,7 +1236,9 @@ function PutBPDataInTable() {
setRESPONSE(mynextval, outMsg.status, errbody, outErrorMessages); setRESPONSE(mynextval, outMsg.status, errbody, outErrorMessages);
$.response.contentType = 'application/json'; $.response.contentType = 'application/json';
$.response.setBody(errbody); $.response.setBody(errbody);
$.response.status = $.net.http.INTERNAL_SERVER_ERROR; //$.response.status = $.net.http.INTERNAL_SERVER_ERROR;
// auch bei Fehler HTTP Status 200, da der Response im CRM sonst evtl. nicht sauber verarbeitet wird
$.response.status = $.net.http.OK;
return; return;
} }
vals.status = outStatus; vals.status = outStatus;
@@ -859,9 +1292,15 @@ PutBPDataInTable();
/*var req = 0; /*var req = 0;
req = $.request.parameters.get('crmid'); req = $.request.parameters.get('crmid');
if (!req){ if (!req){
output.error = "Invalid BP Request - " + req; output.error = "Invalid BP Request - " + req;
$.response.status = $.net.http.OK; $.response.status = $.net.http.OK;
$.response.contentType = "application/json"; $.response.contentType = "application/json";
$.response.setBody(JSON.stringify(output)); $.response.setBody(JSON.stringify(output));
}else{\n \n //addBP(JSON.stringify(bpObj));\n //updBP(JSON.stringify(bpObj));\n //GetOrders(req); \n}\n*/ }else{
//addBP(JSON.stringify(bpObj));
//updBP(JSON.stringify(bpObj));
//GetOrders(req);
}
*/
+139 -537
View File
@@ -1,7 +1,6 @@
var slib = $.import("uniorg.ServiceLayer", "B1SLLogic"); var slib = $.import("uniorg.ServiceLayer", "B1SLLogic");
var slDest = $.import("uniorg.destinations", "uodestlib"); var slDest = $.import("uniorg.destinations", "uodestlib");
var bpbl = $.import("uniorg.eon.libs", "bp_businesslogic"); var bpbl = $.import("uniorg.eon.libs", "bp_businesslogic");
var copybplib = $.import("uniorg.eon.libs", "copybp");
var ParDebug = false; var ParDebug = false;
var output = {}; var output = {};
@@ -69,10 +68,10 @@ function getCustRECACC(custpgnr) {
var rs = pstmt.executeQuery(); var rs = pstmt.executeQuery();
if (!rs.next()) { if (!rs.next()) {
// outMsg = {}; // outMsg = {};
// outMsg.method = "getnexval from sequence error"; // outMsg.method = "getnexval from sequence error";
// outMsg.status = "error"; // outMsg.status = "error";
//outMsg.message = e.message; // outMsg.message = e.message;
//outMessages.push(outMsg); //outMessages.push(outMsg);
} else { } else {
return rs.getString(1); return rs.getString(1);
@@ -82,54 +81,6 @@ function getCustRECACC(custpgnr) {
conn.close(); conn.close();
} }
function getLanguageCode(ISOCODE) {
var conn = $.db.getConnection();
var pstmt;
//var query = "SELECT T0.\"U_EON_RECACC_REC\" FROM \"A19753_P01_TEST03\".\"@EON_PGN\" T0 WHERE T0.\"Code\" = ?";
//vendeor var query = "SELECT T0.\"U_EON_RECACC_REC\" FROM \"XXREPXX\".\"@EON_PGN\" T0 WHERE T0.\"Code\" = ?";
var query = 'SELECT T0."Code" FROM "XXREPXX".OLNG T0 WHERE upper(T0."ShortName") = upper(?)';
query = query.replace(/XXREPXX/g, UserComp);
pstmt = conn.prepareStatement(query);
pstmt.setString(1, ISOCODE);
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 getPaymentTerm(PaymentName) {
var conn = $.db.getConnection();
var pstmt;
//var query = "SELECT T0.\"U_EON_RECACC_REC\" FROM \"A19753_P01_TEST03\".\"@EON_PGN\" T0 WHERE T0.\"Code\" = ?";
//vendeor var query = "SELECT T0.\"U_EON_RECACC_REC\" FROM \"XXREPXX\".\"@EON_PGN\" T0 WHERE T0.\"Code\" = ?";
var query = 'SELECT T0."GroupNum" FROM "XXREPXX".OCTG T0 WHERE upper(T0."PymntGroup") = upper(?)';
query = query.replace(/XXREPXX/g, UserComp);
pstmt = conn.prepareStatement(query);
pstmt.setString(1, PaymentName);
var rs = pstmt.executeQuery();
if (!rs.next()) {
throw new Error(PaymentName + " not found in SAP B1 Payment Terms(OCTG).");
} else {
return rs.getInteger(1);
}
rs.close();
pstmt.close();
conn.close();
}
function splitcardname(mycardname) { function splitcardname(mycardname) {
var mycardnamenew = []; var mycardnamenew = [];
if (mycardname.length > 50) { if (mycardname.length > 50) {
@@ -183,182 +134,6 @@ function getnextvalsepaid() {
conn.close(); conn.close();
} }
function parseIBAN(iban) {
var conn = $.hdb.getConnection();
try {
var myCountry = iban.substring(0, 2);
var rs1 = conn.executeQuery('SELECT COUNT(\'A\') as COUNT_COUNTRY FROM "INTEGRATION_DATA".BANKS_SCHEMA WHERE COUNTRY = ? ; ', myCountry);
if (rs1[0].COUNT_COUNTRY == 0) {
throw new Error(myCountry + " IBAN currently not supported.");
}
var rs2 = conn.executeQuery('SELECT FULLLENGHTH FROM "INTEGRATION_DATA".BANKS_SCHEMA WHERE COUNTRY = ? ; ', myCountry);
if (rs2[0].FULLLENGHTH !== iban.length) {
throw new Error(myCountry + " IBAN length invalid.");
}
var rs = conn.executeQuery('SELECT * FROM "INTEGRATION_DATA".EON_BP_GETBANKDETAILS(?); ', iban);
var bankDetails = {
BankCountry: rs[0].COUNTRY,
BankCode: rs[0].BANKCODE,
AccountNo: rs[0].ACCOUNT,
SwiftNo: rs[0].SWIFTNO,
BankName: rs[0].BANKNAME
};
return bankDetails;
} catch (error) {
outMsg = {};
outMsg.method = "parseIBAN";
outMsg.status = "error";
outMsg.message = error.message;
outMessages.push(outMsg);
outStatus = "error";
return false;
} finally {
conn.close();
}
// throw new Error(myCountry + " IBAN currently not supported.")
/*
var myCountry = iban.substring(0, 2);
switch (myCountry) {
case 'DE':
return {
BankCountry: myCountry,
BankCode: iban.substring(4, 12),
AccountNo: iban.substring(12, 23)
};
case 'IT':
return {
BankCountry: myCountry,
BankCode: iban.substring(5, 10),
BankBranch: iban.substring(10, 15),
AccountNo: iban.substring(15, 27)
};
default:
throw new Error(myCountry + " IBAN currently not supported.")
}
*/
}
function checkShippingType(_shippingType, _schema) {
var conn = $.hdb.getConnection();
try {
conn.executeUpdate("SET SCHEMA \"" + _schema + "\"");
// TODO: Umstellen auf "@UO_SPOOL_TYPES"
var rs = conn.executeQuery('SELECT "Code" FROM "@UO_OUTPUT_RULES" WHERE "Code"=? ', _shippingType);
myDebug.checkShippingType = rs;
return rs.length > 0;
} catch (error) {
outMsg = {};
outMsg.method = "checkShippingType";
outMsg.status = "error";
outMsg.message = error.message;
outMessages.push(outMsg);
return false;
} finally {
conn.close();
}
}
function checkShippingTypeMail(_email) {
if (_email !== undefined) {
if (_email.length === 0) {
outMsg = {};
outMsg.method = "checkShippingTypeMail";
outMsg.status = "error";
outMsg.message = "E-mail address is missing but shipping type is Mail.";
outMessages.push(outMsg);
outStatus = "error";
}
} else {
outMsg = {};
outMsg.method = "checkShippingTypeMail";
outMsg.status = "error";
outMsg.message = "E-mail address is missing but shipping type is Mail.";
outMessages.push(outMsg);
outStatus = "error";
}
}
function createBankIfMissing(iban, SESSIONID, NODEID) {
outMsg = {};
outMsg.method = "checkBank";
outMsg.status = "error";
if (iban) {
var bankDetails = parseIBAN(iban);
if (bankDetails === false) {
return;
}
var conn = $.hdb.getConnection();
conn.executeUpdate("SET SCHEMA \"" + UserComp + "\"");
var rs = conn.executeQuery('SELECT "AbsEntry" FROM ODSC WHERE "BankCode"=? AND "CountryCod"=?', bankDetails.BankCode, bankDetails.BankCountry);
myDebug.queryBankResult = rs;
if (rs.length === 0) {
outMsg.status = "success";
outMsg.message = "not exists";
outMessages.push(outMsg);
outMsg = {};
outMsg.method = "createBank";
var bankObj = {
"BankCode": bankDetails.BankCode,
"CountryCode": bankDetails.BankCountry,
"BankName": bankDetails.BankName,
"SwiftNo": bankDetails.SwiftNo
};
myDebug.createBankObj = bankObj;
var responseCreate = slib.postDynamicEntity("Banks", JSON.stringify(bankObj), SESSIONID, NODEID);
outMsg.statuscode = responseCreate.status;
myDebug.responseBankCreate = JSON.parse(responseCreate.body.asString());
if (responseCreate.status >= 200 && responseCreate.status < 300) {
outMsg.status = "success";
outMessages.push(outMsg);
} else {
outMsg.status = "error";
//outMsg.message = myDebug.responseBankCreate;
outStatus = "error";
var slError = myDebug.responseBankCreate.error;
if (slError && slError.hasOwnProperty("code") && slError.message && slError.message.value) {
outMsg.message = slError.message.value + " (Code: " + slError.code.toString() + ")";
} else {
outMsg.message = JSON.stringify(myDebug.responseBankCreate);
}
outMsg.response = myDebug.responseBankCreate;
outErrorMessages.push(outMsg);
}
} else {
outMsg.status = "success";
outMsg.message = "exists";
outMessages.push(outMsg);
}
conn.close();
} else {
outMsg.status = "error";
outStatus = "error";
outMsg.message = "IBAN is missing";
outMessages.push(outMsg);
}
}
function buildBPObj(JbpObj, SBOOBJ) { function buildBPObj(JbpObj, SBOOBJ) {
var myseries = ''; var myseries = '';
var mygroupcode = ''; var mygroupcode = '';
@@ -367,8 +142,8 @@ function buildBPObj(JbpObj, SBOOBJ) {
var mybpcontactname = ''; var mybpcontactname = '';
switch (JbpObj.group) { switch (JbpObj.group) {
case 'B2C': case 'B2C':
mycardname = JbpObj.name.toString().trim() + ' ' + JbpObj.surname.toString().trim(); mycardname = JbpObj.name.toString() + ' ' + JbpObj.surname.toString();
mybpcontactname = JbpObj.name.toString().trim() + ' ' + JbpObj.surname.toString().trim(); mybpcontactname = JbpObj.name.toString() + ' ' + JbpObj.surname.toString();
myseries = series_b2c; myseries = series_b2c;
mygroupcode = groupcode_b2c; mygroupcode = groupcode_b2c;
mycmpprivate = cmpprivate_b2c; mycmpprivate = cmpprivate_b2c;
@@ -376,7 +151,7 @@ function buildBPObj(JbpObj, SBOOBJ) {
case 'B2B': case 'B2B':
//mycardname = JbpObj.name.toString(); //mycardname = JbpObj.name.toString();
mycardname = JbpObj.addresses[0].address.toString(); mycardname = JbpObj.addresses[0].address.toString();
mybpcontactname = JbpObj.name.toString().trim() + ' ' + JbpObj.surname.toString().trim(); mybpcontactname = JbpObj.name.toString() + ' ' + JbpObj.surname.toString();
myseries = series_b2b; myseries = series_b2b;
mygroupcode = groupcode_b2b; mygroupcode = groupcode_b2b;
mycmpprivate = cmpprivate_b2b; mycmpprivate = cmpprivate_b2b;
@@ -384,14 +159,14 @@ function buildBPObj(JbpObj, SBOOBJ) {
case 'B2M': case 'B2M':
//mycardname = JbpObj.name.toString(); //mycardname = JbpObj.name.toString();
mycardname = JbpObj.addresses[0].address.toString(); mycardname = JbpObj.addresses[0].address.toString();
mybpcontactname = JbpObj.name.toString().trim() + ' ' + JbpObj.surname.toString().trim(); mybpcontactname = JbpObj.name.toString() + ' ' + JbpObj.surname.toString();
myseries = series_b2m; myseries = series_b2m;
mygroupcode = groupcode_b2m; mygroupcode = groupcode_b2m;
mycmpprivate = cmpprivate_b2m; mycmpprivate = cmpprivate_b2m;
break; break;
default: default:
mycardname = JbpObj.name.toString().trim() + ' ' + JbpObj.surname.toString().trim(); mycardname = JbpObj.name.toString() + ' ' + JbpObj.surname.toString();
mybpcontactname = JbpObj.name.toString().trim() + ' ' + JbpObj.surname.toString().trim(); mybpcontactname = JbpObj.name.toString() + ' ' + JbpObj.surname.toString();
myseries = series_b2c; myseries = series_b2c;
mygroupcode = groupcode_b2c; mygroupcode = groupcode_b2c;
mycmpprivate = cmpprivate_b2c; mycmpprivate = cmpprivate_b2c;
@@ -407,25 +182,18 @@ function buildBPObj(JbpObj, SBOOBJ) {
bpObj.GroupCode = mygroupcode; // JbpObj.group.toString(); bpObj.GroupCode = mygroupcode; // JbpObj.group.toString();
bpObj.Phone1 = JbpObj.phone.toString(); bpObj.Phone1 = JbpObj.phone.toString();
bpObj.Cellular = JbpObj.mobile_phone.toString(); bpObj.Cellular = JbpObj.mobile_phone.toString();
// To Do: Language Übersetzen
bpObj.LanguageCode = getLanguageCode(JbpObj.language_code.toString());
if (JbpObj.vatid) { if (JbpObj.vatid) {
bpObj.FederalTaxID = JbpObj.vatid.toString(); bpObj.FederalTaxID = JbpObj.vatid.toString();
} }
if (JbpObj.bank_account.sepa_mandate.toString() === 'Ja') { if (JbpObj.bank_account.sepa_mandate.toString() == 'Ja') {
bpObj.PayTermsGrpCode = 13; bpObj.PayTermsGrpCode = 13;
} }
else if (JbpObj.payment_term)
{
bpObj.PayTermsGrpCode = getPaymentTerm(JbpObj.payment_term);
}
bpObj.EmailAddress = JbpObj.email.toString(); bpObj.EmailAddress = JbpObj.email.toString();
bpObj.U_EON_ID_CRM = JbpObj.id_crm.toString(); bpObj.U_EON_ID_CRM = JbpObj.id_crm.toString();
bpObj.U_EON_ID_CRM_INTERNAL = JbpObj.id_msd.toString(); bpObj.U_EON_ID_CRM_INTERNAL = JbpObj.id_msd.toString();
if (JbpObj.shipping_type)
if (JbpObj.shipping_type && !(SBOOBJ.U_UO_OUTPUT_VSARTAR && SBOOBJ.U_UO_OUTPUT_VSARTAR in ['CSV'])) { {
bpObj.U_UO_OUTPUT_VSARTAR = JbpObj.shipping_type.toString(); bpObj.U_UO_OUTPUT_VSARTAR = JbpObj.shipping_type.toString();
} }
if (!JbpObj.pgnr) { if (!JbpObj.pgnr) {
@@ -439,19 +207,15 @@ function buildBPObj(JbpObj, SBOOBJ) {
bpObj.U_EON_ASSU = 'Y'; bpObj.U_EON_ASSU = 'Y';
bpObj.Affiliate = 'tYES'; bpObj.Affiliate = 'tYES';
} }
if (JbpObj.res_prop === true) { if (JbpObj.res_prop===true) {
bpObj.U_EON_WVB = 'Y'; bpObj.U_EON_WVB = 'Y';
} }
if (JbpObj.res_prop === false) { if (JbpObj.res_prop===false) {
bpObj.U_EON_WVB = 'N'; bpObj.U_EON_WVB = 'N';
} }
bpObj.U_UO_EDI_BUYER_ID = JbpObj.e_invoice_buyerid;
bpObj.U_UO_EDI_SELLER_ID = JbpObj.e_invoice_sellerid;
bpObj.U_UO_EDI_ROUTING_ID = JbpObj.e_invoice_routingid;
bpObj.BPAddresses = []; bpObj.BPAddresses = [];
// bpObj.BPAddresses[0].AddressName = 'test'; // bpObj.BPAddresses[0].AddressName = 'test';
for (var g in SBOOBJ.BPAddresses) { for (var g in SBOOBJ.BPAddresses) {
@@ -461,24 +225,22 @@ function buildBPObj(JbpObj, SBOOBJ) {
// mybpAdresses.g = g; // mybpAdresses.g = g;
// mybpAdresses.h = h; // mybpAdresses.h = h;
var myaddressbpname = JbpObj.addresses[h].street.toString() + ' ' + JbpObj.addresses[h].street_no.toString(); var myaddressbpname = JbpObj.addresses[h].street.toString() + ' ' + JbpObj.addresses[h].street_no.toString();
//var myaddressbpname = JbpObj.addresses[h].addressid.toString();
mybpAdresses.AddressName = SBOOBJ.BPAddresses[g].AddressName; mybpAdresses.AddressName = SBOOBJ.BPAddresses[g].AddressName;
mybpAdresses.AddressType = SBOOBJ.BPAddresses[g].AddressType; mybpAdresses.AddressType = SBOOBJ.BPAddresses[g].AddressType;
mybpAdresses.BPCode = SBOOBJ.BPAddresses[g].BPCode; mybpAdresses.BPCode = SBOOBJ.BPAddresses[g].BPCode;
mybpAdresses.RowNum = SBOOBJ.BPAddresses[g].RowNum; mybpAdresses.RowNum = SBOOBJ.BPAddresses[g].RowNum;
if (SBOOBJ.BPAddresses[g].U_EON_EXT_ID === JbpObj.addresses[h].addressid.toString() && SBOOBJ.BPAddresses[g].AddressType === if (SBOOBJ.BPAddresses[g].AddressName === myaddressbpname && SBOOBJ.BPAddresses[g].AddressType === convertAdrType(JbpObj.addresses[
convertAdrType(JbpObj.addresses[ h].type)) {
h].type)) {
//mybpAdresses.AddressName = JbpObj.addresses[h].address.toString(); //mybpAdresses.AddressName = JbpObj.addresses[h].address.toString();
mybpAdresses.AddressName = myaddressbpname;
mybpAdresses.Street = JbpObj.addresses[h].street.toString(); mybpAdresses.Street = JbpObj.addresses[h].street.toString();
//mybpAdresses.Block = 'test'; //mybpAdresses.Block = 'test';
mybpAdresses.ZipCode = JbpObj.addresses[h].zip_code.toString(); mybpAdresses.ZipCode = JbpObj.addresses[h].zip_code.toString();
mybpAdresses.City = JbpObj.addresses[h].city.toString(); mybpAdresses.City = JbpObj.addresses[h].city.toString();
//mybpAdresses.County = 'test'; //mybpAdresses.County = 'test';
mybpAdresses.Country = JbpObj.addresses[h].country.toString(); mybpAdresses.Country = JbpObj.addresses[h].country.toString();
if (JbpObj.addresses[h].standard === 'yes') { if (JbpObj.addresses[h].standard = 'ja') {
if (convertAdrType(JbpObj.addresses[h].type) === 'bo_BillTo') { if (convertAdrType(JbpObj.addresses[h].type) === 'bo_BillTo') {
bpObj.BilltoDefault = myaddressbpname; bpObj.BilltoDefault = myaddressbpname;
} }
@@ -492,37 +254,36 @@ function buildBPObj(JbpObj, SBOOBJ) {
//mybpAdresses.TaxCode = 'test'; //mybpAdresses.TaxCode = 'test';
//mybpAdresses.BuildingFloorRoom = 'test'; //mybpAdresses.BuildingFloorRoom = 'test';
/* /*
if (JbpObj.addresses[h].type === 'B') { if (JbpObj.addresses[h].type === 'B') {
mybpAdresses.AddressType = 'bo_BillTo'; mybpAdresses.AddressType = 'bo_BillTo';
} else { } else {
mybpAdresses.AddressType = 'bo_ShipTo'; mybpAdresses.AddressType = 'bo_ShipTo';
} }
*/ */
if (JbpObj.group === 'B2B' || JbpObj.group === 'B2M') { if (JbpObj.group == 'B2B' || JbpObj.group == 'B2M') {
//mybpAdresses.AddressName2 = mycardname; //mybpAdresses.AddressName2 = mycardname;
mybpAdresses.AddressName2 = myaddress23[0]; mybpAdresses.AddressName2 = myaddress23[0];
//mybpAdresses.AddressName3 = myaddress23[1]; mybpAdresses.AddressName3 = myaddress23[1];
mybpAdresses.U_CompanyName2 = myaddress23[1];
} }
if (JbpObj.addresses[h].address2) {
mybpAdresses.BuildingFloorRoom = JbpObj.addresses[h].address2.toString();
}
if (JbpObj.addresses[h].address3) { if (JbpObj.addresses[h].address3) {
mybpAdresses.AddressName3 = JbpObj.addresses[h].address3.toString(); mybpAdresses.AddressName3 = JbpObj.addresses[h].address3.toString();
} }
// if (JbpObj.addresses[h].address2) {
// mybpAdresses.AddressName2 = JbpObj.addresses[h].address2.toString();
// }
//mybpAdresses.TypeOfAddress = 'test'; //mybpAdresses.TypeOfAddress = 'test';
mybpAdresses.StreetNo = JbpObj.addresses[h].street_no.toString(); mybpAdresses.StreetNo = JbpObj.addresses[h].street_no.toString();
mybpAdresses.U_EON_EXT_ID = JbpObj.addresses[h].addressid.toString(); mybpAdresses.U_EON_EXT_ID = JbpObj.addresses[h].addressid.toString();
break; break;
} }
} }
//mybpAdresses.BPCode = 'test';
//mybpAdresses.RowNum = 'test';
//mybpAdresses.GlobalLocationNumber = 'test';
//mybpAdresses.Nationality = 'test';
//mybpAdresses.TaxOffice = 'test';
bpObj.BPAddresses.push(mybpAdresses);
} }
//Suche ob Objekte vorhanden wenn nicht ergänzen //Suche ob Objekte vorhanden wenn nichzt ergänzen
for (var h in JbpObj.addresses) { for (var h in JbpObj.addresses) {
var myfound = false; var myfound = false;
@@ -530,13 +291,12 @@ function buildBPObj(JbpObj, SBOOBJ) {
var myaddbpname = JbpObj.addresses[h].street.toString() + ' ' + JbpObj.addresses[h].street_no.toString(); var myaddbpname = JbpObj.addresses[h].street.toString() + ' ' + JbpObj.addresses[h].street_no.toString();
for (var g in SBOOBJ.BPAddresses) { for (var g in SBOOBJ.BPAddresses) {
if (SBOOBJ.BPAddresses[g].U_EON_EXT_ID === JbpObj.addresses[h].addressid.toString() && SBOOBJ.BPAddresses[g].AddressType === if (SBOOBJ.BPAddresses[g].AddressName === myaddbpname && SBOOBJ.BPAddresses[g].AddressType === convertAdrType(JbpObj.addresses[h].type)) {
convertAdrType(JbpObj.addresses[h].type)) {
myfound = true; myfound = true;
} }
} }
if (myfound === false) { if (myfound == false) {
myaddbpAdresses.AddressName = myaddbpname; //JbpObj.addresses[h].address.toString(); myaddbpAdresses.AddressName = myaddbpname; //JbpObj.addresses[h].address.toString();
myaddbpAdresses.Street = JbpObj.addresses[h].street.toString(); myaddbpAdresses.Street = JbpObj.addresses[h].street.toString();
//myaddbpAdresses.Block = 'test'; //myaddbpAdresses.Block = 'test';
@@ -548,7 +308,7 @@ function buildBPObj(JbpObj, SBOOBJ) {
//myaddbpAdresses.FederalTaxID = 'test'; //myaddbpAdresses.FederalTaxID = 'test';
//myaddbpAdresses.TaxCode = 'test'; //myaddbpAdresses.TaxCode = 'test';
//myaddbpAdresses.BuildingFloorRoom = 'test'; //myaddbpAdresses.BuildingFloorRoom = 'test';
if (JbpObj.addresses[h].standard === 'yes') { if (JbpObj.addresses[h].standard = 'ja') {
if (convertAdrType(JbpObj.addresses[h].type) === 'bo_BillTo') { if (convertAdrType(JbpObj.addresses[h].type) === 'bo_BillTo') {
bpObj.BilltoDefault = myaddbpname; bpObj.BilltoDefault = myaddbpname;
} }
@@ -558,15 +318,11 @@ function buildBPObj(JbpObj, SBOOBJ) {
} }
myaddbpAdresses.AddressType = convertAdrType(JbpObj.addresses[h].type); myaddbpAdresses.AddressType = convertAdrType(JbpObj.addresses[h].type);
if (JbpObj.group === 'B2B' || JbpObj.group === 'B2M') { if (JbpObj.group == 'B2B' || JbpObj.group == 'B2M') {
//myaddbpAdresses.AddressName2 = mycardname; //myaddbpAdresses.AddressName2 = mycardname;
myaddbpAdresses.AddressName2 = myaddress23[0]; myaddbpAdresses.AddressName2 = myaddress23[0];
//myaddbpAdresses.AddressName3 = myaddress23[1]; myaddbpAdresses.AddressName3 = myaddress23[1];
myaddbpAdresses.U_CompanyName2 = myaddress23[1];
} }
if (JbpObj.addresses[h].address2) {
myaddbpAdresses.BuildingFloorRoom = JbpObj.addresses[h].address2.toString();
}
if (JbpObj.addresses[h].address3) { if (JbpObj.addresses[h].address3) {
myaddbpAdresses.AddressName3 = JbpObj.addresses[h].address3.toString(); myaddbpAdresses.AddressName3 = JbpObj.addresses[h].address3.toString();
} }
@@ -603,7 +359,7 @@ function buildBPObj(JbpObj, SBOOBJ) {
// //bpObj.BPAddresses.push(myaddbpAdresses); // //bpObj.BPAddresses.push(myaddbpAdresses);
// } // }
// } // }
// //} // //}
bpObj.ContactEmployees = []; bpObj.ContactEmployees = [];
var myfoundCP = false; var myfoundCP = false;
@@ -613,8 +369,8 @@ function buildBPObj(JbpObj, SBOOBJ) {
mybpContactEmployees.CardCode = SBOOBJ.ContactEmployees[cpB1].CardCode; mybpContactEmployees.CardCode = SBOOBJ.ContactEmployees[cpB1].CardCode;
mybpContactEmployees.InternalCode = SBOOBJ.ContactEmployees[cpB1].InternalCode; mybpContactEmployees.InternalCode = SBOOBJ.ContactEmployees[cpB1].InternalCode;
if (SBOOBJ.ContactEmployees[cpB1].Name == mybpcontactname) { if (SBOOBJ.ContactEmployees[cpB1].Name == mybpcontactname) {
mybpContactEmployees.FirstName = JbpObj.name.toString().trim(); mybpContactEmployees.FirstName = JbpObj.name.toString();
mybpContactEmployees.LastName = JbpObj.surname.toString().trim(); mybpContactEmployees.LastName = JbpObj.surname.toString();
mybpContactEmployees.Title = JbpObj.title.toString(); mybpContactEmployees.Title = JbpObj.title.toString();
mybpContactEmployees.U_EON_SALUTATION = JbpObj.salutation.toString(); mybpContactEmployees.U_EON_SALUTATION = JbpObj.salutation.toString();
bpObj.ContactPerson = mybpcontactname; bpObj.ContactPerson = mybpcontactname;
@@ -625,8 +381,8 @@ function buildBPObj(JbpObj, SBOOBJ) {
if (myfoundCP == false) { if (myfoundCP == false) {
mybpContactEmployees = {}; mybpContactEmployees = {};
mybpContactEmployees.Name = mybpcontactname; //mycardname; mybpContactEmployees.Name = mybpcontactname; //mycardname;
mybpContactEmployees.FirstName = JbpObj.name.toString().trim(); mybpContactEmployees.FirstName = JbpObj.name.toString();
mybpContactEmployees.LastName = JbpObj.surname.toString().trim(); mybpContactEmployees.LastName = JbpObj.surname.toString();
mybpContactEmployees.Title = JbpObj.title.toString(); mybpContactEmployees.Title = JbpObj.title.toString();
mybpContactEmployees.U_EON_SALUTATION = JbpObj.salutation.toString(); mybpContactEmployees.U_EON_SALUTATION = JbpObj.salutation.toString();
bpObj.ContactPerson = mybpcontactname; bpObj.ContactPerson = mybpcontactname;
@@ -636,106 +392,72 @@ function buildBPObj(JbpObj, SBOOBJ) {
bpObj.BPBankAccounts = []; bpObj.BPBankAccounts = [];
var myfoundBank = false; var myfoundBank = false;
var myIBAN = JbpObj.bank_account.iban.toString().replace(/ /g, ''); var myIBAN = JbpObj.bank_account.iban.toString().replace(/ /g, '');
if (myIBAN !== '') { var myCountry = myIBAN.substring(0, 2);
use_iban = true; var myBankCode = myIBAN.substring(4, 12);
} else { var myAccountNo = myIBAN.substring(12, 23);
use_iban = false; var mySignatureDate = convertToISODate(JbpObj.bank_account.signature_date);
} for (var ba in SBOOBJ.BPBankAccounts) {
var myBPBankAccounts = {};
if (use_iban) { myBPBankAccounts.BPCode = SBOOBJ.BPBankAccounts[ba].BPCode;
myBPBankAccounts.InternalKey = SBOOBJ.BPBankAccounts[ba].InternalKey;
var bankDetails = parseIBAN(myIBAN); myBPBankAccounts.Country = SBOOBJ.BPBankAccounts[ba].Country;
myBPBankAccounts.BankCode = SBOOBJ.BPBankAccounts[ba].BankCode;
if (bankDetails === false) {; myBPBankAccounts.AccountNo = SBOOBJ.BPBankAccounts[ba].AccountNo;
} else { myBPBankAccounts.IBAN = SBOOBJ.BPBankAccounts[ba].IBAN;
if (SBOOBJ.BPBankAccounts[ba].IBAN.replace(/ /g, '') === myIBAN) {
var myCountry = bankDetails.BankCountry; myfoundBank = true;
var myBankCode = bankDetails.BankCode; if (JbpObj.bank_account.bic.toString() !== '') {
var myAccountNo = bankDetails.AccountNo; myBPBankAccounts.BICSwiftCode = JbpObj.bank_account.bic.toString();
var mySwiftNo = bankDetails.SwiftNo;
var mySignatureDate = convertToISODate(JbpObj.bank_account.signature_date);
for (var ba in SBOOBJ.BPBankAccounts) {
var myBPBankAccounts = {};
myBPBankAccounts.BPCode = SBOOBJ.BPBankAccounts[ba].BPCode;
myBPBankAccounts.InternalKey = SBOOBJ.BPBankAccounts[ba].InternalKey;
myBPBankAccounts.Country = SBOOBJ.BPBankAccounts[ba].Country;
myBPBankAccounts.BankCode = SBOOBJ.BPBankAccounts[ba].BankCode;
myBPBankAccounts.AccountNo = SBOOBJ.BPBankAccounts[ba].AccountNo;
myBPBankAccounts.IBAN = SBOOBJ.BPBankAccounts[ba].IBAN;
myBPBankAccounts.MandateID = SBOOBJ.BPBankAccounts[ba].MandateID;
myBPBankAccounts.SEPASeqType = SBOOBJ.BPBankAccounts[ba].SEPASeqType;
if (SBOOBJ.BPBankAccounts[ba].IBAN.replace(/ /g, '') === myIBAN) {
myfoundBank = true;
if (JbpObj.bank_account.bic.toString() !== '') {
myBPBankAccounts.BICSwiftCode = JbpObj.bank_account.bic.toString();
}
else if (mySwiftNo.toString() !== '')
{
myBPBankAccounts.BICSwiftCode = mySwiftNo.toString();
}
myBPBankAccounts.Country = myCountry;
myBPBankAccounts.BankCode = myBankCode;
myBPBankAccounts.AccountNo = myAccountNo;
myBPBankAccounts.AccountName = JbpObj.bank_account.account_owner.toString();
myBPBankAccounts.Street = JbpObj.bank_account.street.toString() + " " + JbpObj.bank_account.street_no.toString();
myBPBankAccounts.ZipCode = JbpObj.bank_account.zip_code.toString();
myBPBankAccounts.City = JbpObj.bank_account.city.toString();
// myBPBankAccounts.MandateID = JbpObj.bank_account.sepa_mandate_id.toString();
myBPBankAccounts.SignatureDate = mySignatureDate;
if (JbpObj.bank_account.sepa_mandate.toString() == 'Ja') {
if (SBOOBJ.BPBankAccounts[ba].MandateID == null) //|| SBOOBJ.BPBankAccounts[ba].MandateID.substring(0,10) > JbpObj.id_crm )
{
myBPBankAccounts.MandateID = JbpObj.id_crm + getnextvalsepaid();
}
bpObj.CollectionAuthorization = 'tYES';
}
//22.07.2024 BUS-7580
if (JbpObj.bank_account.sepa_mandate.toString() == 'Nein') {
bpObj.CollectionAuthorization = 'tNO';
}
}
bpObj.BankCountry = myCountry;
bpObj.DefaultBankCode = myBankCode;
bpObj.DefaultAccount = myAccountNo;
bpObj.BPBankAccounts.push(myBPBankAccounts);
} }
myBPBankAccounts.AccountName = JbpObj.bank_account.account_owner.toString();
if (myfoundBank === false) { myBPBankAccounts.Street = JbpObj.bank_account.street.toString() + " " + JbpObj.bank_account.street_no.toString();
myBPBankAccounts = {}; myBPBankAccounts.ZipCode = JbpObj.bank_account.zip_code.toString();
myBPBankAccounts.IBAN = myIBAN; myBPBankAccounts.City = JbpObj.bank_account.city.toString();
myBPBankAccounts.Country = myCountry; // myBPBankAccounts.MandateID = JbpObj.bank_account.sepa_mandate_id.toString();
myBPBankAccounts.BankCode = myBankCode; myBPBankAccounts.SignatureDate = mySignatureDate;
myBPBankAccounts.AccountNo = myAccountNo; if (JbpObj.bank_account.sepa_mandate.toString() == 'Ja') {
if (JbpObj.bank_account.bic.toString() !== '') { if (SBOOBJ.BPBankAccounts[ba].MandateID == null) //|| SBOOBJ.BPBankAccounts[ba].MandateID.substring(0,10) > JbpObj.id_crm )
myBPBankAccounts.BICSwiftCode = JbpObj.bank_account.bic.toString(); {
}
myBPBankAccounts.AccountName = JbpObj.bank_account.account_owner.toString();
myBPBankAccounts.Street = JbpObj.bank_account.street.toString() + " " + JbpObj.bank_account.street_no.toString();
myBPBankAccounts.ZipCode = JbpObj.bank_account.zip_code.toString();
myBPBankAccounts.City = JbpObj.bank_account.city.toString();
// myBPBankAccounts.MandateID = JbpObj.bank_account.sepa_mandate_id.toString();
myBPBankAccounts.SignatureDate = mySignatureDate;
if (JbpObj.bank_account.sepa_mandate.toString() == 'Ja') {
// myBPBankAccounts.MandateID = SBOOBJ.BPBankAccounts[ba].MandateID.substring(0,10);
// if (SBOOBJ.BPBankAccounts[ba].MandateID.IsNullOrEmpty ) //|| SBOOBJ.BPBankAccounts[ba].MandateID.substring(0,10) > JbpObj.id_crm
//{
myBPBankAccounts.MandateID = JbpObj.id_crm + getnextvalsepaid(); myBPBankAccounts.MandateID = JbpObj.id_crm + getnextvalsepaid();
bpObj.CollectionAuthorization = 'tYES';
myBPBankAccounts.SEPASeqType = 'sstFRST';
//}
} }
//23.07.2024 BUS-7580 bpObj.CollectionAuthorization = 'tYES';
if (JbpObj.bank_account.sepa_mandate.toString() == 'Nein') {
bpObj.CollectionAuthorization = 'tNO';
}
bpObj.BankCountry = myCountry;
bpObj.DefaultBankCode = myBankCode;
bpObj.DefaultAccount = myAccountNo;
bpObj.BPBankAccounts.push(myBPBankAccounts);
} }
} }
bpObj.BankCountry = myCountry;
bpObj.DefaultBankCode = myBankCode;
bpObj.DefaultAccount = myAccountNo;
bpObj.BPBankAccounts.push(myBPBankAccounts);
}
if (myfoundBank === false) {
myBPBankAccounts = {};
myBPBankAccounts.IBAN = myIBAN;
myBPBankAccounts.Country = myCountry;
myBPBankAccounts.BankCode = myBankCode;
myBPBankAccounts.AccountNo = myAccountNo;
if (JbpObj.bank_account.bic.toString() !== '') {
myBPBankAccounts.BICSwiftCode = JbpObj.bank_account.bic.toString();
}
myBPBankAccounts.AccountName = JbpObj.bank_account.account_owner.toString();
myBPBankAccounts.Street = JbpObj.bank_account.street.toString() + " " + JbpObj.bank_account.street_no.toString();
myBPBankAccounts.ZipCode = JbpObj.bank_account.zip_code.toString();
myBPBankAccounts.City = JbpObj.bank_account.city.toString();
// myBPBankAccounts.MandateID = JbpObj.bank_account.sepa_mandate_id.toString();
myBPBankAccounts.SignatureDate = mySignatureDate;
if (JbpObj.bank_account.sepa_mandate.toString() == 'Ja') {
// myBPBankAccounts.MandateID = SBOOBJ.BPBankAccounts[ba].MandateID.substring(0,10);
// if (SBOOBJ.BPBankAccounts[ba].MandateID.IsNullOrEmpty ) //|| SBOOBJ.BPBankAccounts[ba].MandateID.substring(0,10) > JbpObj.id_crm
//{
myBPBankAccounts.MandateID = JbpObj.id_crm + getnextvalsepaid();
bpObj.CollectionAuthorization = 'tYES';
myBPBankAccounts.SEPASeqType = 'sstFRST';
//}
}
bpObj.BankCountry = myCountry;
bpObj.DefaultBankCode = myBankCode;
bpObj.DefaultAccount = myAccountNo;
bpObj.BPBankAccounts.push(myBPBankAccounts);
} }
return bpObj; return bpObj;
@@ -767,9 +489,7 @@ function upsBP(searchparam, JbpObj) {
loginInfo.Password = UserPass; loginInfo.Password = UserPass;
loginInfo.CompanyDB = UserComp; loginInfo.CompanyDB = UserComp;
var slError; // SL LOGIN
// SL LOGIN
var response = slib.SLLogin(JSON.stringify(loginInfo), null, null); var response = slib.SLLogin(JSON.stringify(loginInfo), null, null);
// B1SESSION and ROUTEID cookies returned by Login // B1SESSION and ROUTEID cookies returned by Login
@@ -784,31 +504,22 @@ function upsBP(searchparam, JbpObj) {
} }
output.loginInfo = loginInfo; output.loginInfo = loginInfo;
// output.loginResponse = JSON.parse(response.body.asString()); // output.loginResponse = JSON.parse(response.body.asString());
var loginResponse;
try { try {
loginResponse = JSON.parse(response.body.asString()); output.loginResponse = JSON.parse(response.body.asString());
} catch (e) { } catch (e) {
loginResponse = response.body.asString(); output.loginResponse = response.body.asString();
} }
output.loginResponse = loginResponse;
if (response.status !== 200) { if (response.status !== 200) {
outMsg = {}; outMsg = {};
outMsg.method = "login"; outMsg.method = "login";
outMsg.status = "error"; outMsg.status = "error";
//outMsg.message = output.loginResponse; outMsg.message = output.loginResponse;
slError = loginResponse.error;
if (slError && slError.hasOwnProperty("code") && slError.message && slError.message.value) {
outMsg.message = slError.message.value + " (Code: " + slError.code.toString() + ")";
} else {
outMsg.message = JSON.stringify(loginResponse);
}
outMsg.response = loginResponse;
outMessages.push(outMsg); outMessages.push(outMsg);
outStatus = "error"; outStatus = "error";
} }
if (JbpObj.vatid) { if (JbpObj.vatid) {
var checkmyvatid = bpbl.checkvatid(JbpObj.vatid, JbpObj.vatid.substring(0, 2).toUpperCase(), UserComp); var checkmyvatid = bpbl.checkvatid(JbpObj.vatid, JbpObj.addresses[0].country.toUpperCase(), UserComp)
if (checkmyvatid != "true") { if (checkmyvatid != "true") {
outMsg = {}; outMsg = {};
outMsg.method = "checkVATID"; outMsg.method = "checkVATID";
@@ -819,42 +530,6 @@ function upsBP(searchparam, JbpObj) {
} }
} }
// CBU 18.10.2022 Prüfung Versandart
if (JbpObj.shipping_type) {
var checkShippingTypeResult = checkShippingType(JbpObj.shipping_type, UserComp);
if (!checkShippingTypeResult) {
outMsg = {};
outMsg.method = "shipping_type";
outMsg.status = "error";
outMsg.message = "Shippingtype not valid: " + JbpObj.shipping_type;
outStatus = "error";
outMessages.push(outMsg);
} else {
// CBU 24.01.2023
if (JbpObj.shipping_type === "M") {
checkShippingTypeMail(JbpObj.email);
}
}
} else {
outMsg = {};
outMsg.method = "shipping_type";
outMsg.status = "error";
outMsg.message = "Shipping Type missing";
outStatus = "error";
outMessages.push(outMsg);
}
/*
CBU 25.11.2022
if (outStatus !== "error") {
if (JbpObj.bank_account.iban.toString().replace(/ /g, '') !== '') {
createBankIfMissing(JbpObj.bank_account.iban.toString().replace(/ /g, ''), SESSIONID, NODEID);
}
}
*/
if (outStatus !== "error") { if (outStatus !== "error") {
outMsg = {}; outMsg = {};
@@ -868,12 +543,7 @@ CBU 25.11.2022
// Removes metadata // Removes metadata
//delete body["odata.metadata"]; //delete body["odata.metadata"];
var bodyGet; var bodyGet = JSON.parse(responseGet.body.asString());
try {
bodyGet = JSON.parse(responseGet.body.asString());
} catch (e) {
bodyGet = response.responseGet.asString();
}
myDebug.statusGet = responseGet.status; myDebug.statusGet = responseGet.status;
myDebug.responseGet = bodyGet; myDebug.responseGet = bodyGet;
outMsg.statuscode = responseGet.status; outMsg.statuscode = responseGet.status;
@@ -885,14 +555,7 @@ CBU 25.11.2022
outMsg.message = "not exists"; outMsg.message = "not exists";
} else { } else {
outMsg.status = "error"; outMsg.status = "error";
//outMsg.message = bodyGet; outMsg.message = bodyGet;
slError = bodyGet.error;
if (slError && slError.hasOwnProperty("code") && slError.message && slError.message.value) {
outMsg.message = slError.message.value + " (Code: " + slError.code.toString() + ")";
} else {
outMsg.message = JSON.stringify(bodyGet);
}
outMsg.response = bodyGet;
outStatus = "error"; outStatus = "error";
} }
outMessages.push(outMsg); outMessages.push(outMsg);
@@ -914,26 +577,12 @@ CBU 25.11.2022
outMsg.status = "success"; outMsg.status = "success";
} else { } else {
outMsg.status = "error"; outMsg.status = "error";
//outMsg.message = bodyGetFull; outMsg.message = bodyGetFull;
slError = bodyGetFull.error;
if (slError && slError.hasOwnProperty("code") && slError.message && slError.message.value) {
outMsg.message = slError.message.value + " (Code: " + slError.code.toString() + ")";
} else {
outMsg.message = JSON.stringify(bodyGetFull);
}
outMsg.response = bodyGetFull;
outStatus = "error"; outStatus = "error";
} }
outMessages.push(outMsg); outMessages.push(outMsg);
} }
// CBU 25.11.2022
if (outStatus !== "error") {
if (JbpObj.bank_account.iban.toString().replace(/ /g, '') !== '') {
createBankIfMissing(JbpObj.bank_account.iban.toString().replace(/ /g, ''), SESSIONID, NODEID);
}
}
if (outStatus !== "error") { if (outStatus !== "error") {
var consBPObject = buildBPObj(JbpObj, bodyGetFull); var consBPObject = buildBPObj(JbpObj, bodyGetFull);
@@ -954,26 +603,12 @@ CBU 25.11.2022
outMsg.status = "error"; outMsg.status = "error";
if (responseUpdate.body) { if (responseUpdate.body) {
myDebug.responseUpdate = JSON.parse(responseUpdate.body.asString()); myDebug.responseUpdate = JSON.parse(responseUpdate.body.asString());
//outMsg.message = myDebug.responseUpdate; outMsg.message = myDebug.responseUpdate;
slError = myDebug.responseUpdate.error;
if (slError && slError.hasOwnProperty("code") && slError.message && slError.message.value) {
outMsg.message = slError.message.value + " (Code: " + slError.code.toString() + ")";
} else {
outMsg.message = JSON.stringify(myDebug.responseUpdate);
}
outMsg.response = myDebug.responseUpdate;
outErrorMessages.push(outMsg); outErrorMessages.push(outMsg);
} }
outStatus = "error"; outStatus = "error";
} }
outMessages.push(outMsg); outMessages.push(outMsg);
if (outStatus !== "error" && checkSupplierExist(CardCode)) {
outMsg.method = "copyBP";
outMsg.paramCardCode = CardCode;
var bpoutput = copybplib.copyBP(ParDebug, CardCode);
outMsg.result = bpoutput;
outMessages.push(outMsg);
}
} else { } else {
output.method = "createBP"; output.method = "createBP";
@@ -992,15 +627,8 @@ CBU 25.11.2022
myDebug.Createmessage = "Create error occured"; myDebug.Createmessage = "Create error occured";
output.errorCreatestatus = myDebug.Createmessage; output.errorCreatestatus = myDebug.Createmessage;
outMsg.status = "error"; outMsg.status = "error";
//outMsg.message = myDebug.responseCreate; outMsg.message = myDebug.responseCreate;
outStatus = "error"; outStatus = "error";
slError = myDebug.responseCreate.error;
if (slError && slError.hasOwnProperty("code") && slError.message && slError.message.value) {
outMsg.message = slError.message.value + " (Code: " + slError.code.toString() + ")";
} else {
outMsg.message = JSON.stringify(myDebug.responseCreate);
}
outMsg.response = myDebug.responseCreate;
outErrorMessages.push(outMsg); outErrorMessages.push(outMsg);
} }
outMessages.push(outMsg); outMessages.push(outMsg);
@@ -1020,28 +648,6 @@ CBU 25.11.2022
} }
function checkSupplierExist(cardcode) {
var suppcardcode = cardcode + '-L';
var conn = $.db.getConnection();
var pstmt;
//var query = "SELECT T0.\"U_EON_RECACC_REC\" FROM \"A19753_P01_TEST03\".\"@EON_PGN\" T0 WHERE T0.\"Code\" = ?";
//vendeor var query = "SELECT T0.\"U_EON_RECACC_REC\" FROM \"XXREPXX\".\"@EON_PGN\" T0 WHERE T0.\"Code\" = ?";
var query = "SELECT T0.\"CardCode\" FROM \"XXREPXX\".\"OCRD\" T0 WHERE T0.\"CardCode\" = ?";
query = query.replace(/XXREPXX/g, UserComp);
pstmt = conn.prepareStatement(query);
pstmt.setString(1, suppcardcode);
var rs = pstmt.executeQuery();
exists = rs.next();
rs.close();
pstmt.close();
conn.close();
return exists;
}
function getnextval() { function getnextval() {
var conn = $.db.getConnection(); var conn = $.db.getConnection();
var pstmt; var pstmt;
@@ -1065,8 +671,7 @@ function getnextval() {
function setBPCardCode(tableid, bpcardcode) { function setBPCardCode(tableid, bpcardcode) {
var conn = $.db.getConnection(); var conn = $.db.getConnection();
var pstmt; var pstmt;
var query = "update \"NICEPORTAL\".\"UO_CRM_DATA_BP\" set B1_CARDCODE = '" + bpcardcode + "', UPDATE_TS = CURRENT_TIMESTAMP where ID =" + var query = "update \"NICEPORTAL\".\"UO_CRM_DATA_BP\" set B1_CARDCODE = '" + bpcardcode + "', UPDATE_TS = CURRENT_TIMESTAMP where ID =" + tableid;
tableid;
pstmt = conn.prepareStatement(query); pstmt = conn.prepareStatement(query);
// pstmt.setString(1,bpcardcode); // pstmt.setString(1,bpcardcode);
// pstmt.setString(2,tableid); // pstmt.setString(2,tableid);
@@ -1082,8 +687,7 @@ function setBPCardCode(tableid, bpcardcode) {
function setRESPONSE(tableid, respstatus, respmessage, errormessage) { function setRESPONSE(tableid, respstatus, respmessage, errormessage) {
var conn = $.db.getConnection(); var conn = $.db.getConnection();
var pstmt; var pstmt;
var query = var query = "update \"NICEPORTAL\".\"UO_CRM_DATA_BP\" set RESPONSE_STATUS = ? , RESPONSE_MESSAGE =?, ERROR_MESSAGE=? where ID =" + tableid;
"update \"NICEPORTAL\".\"UO_CRM_DATA_BP\" set RESPONSE_STATUS = ? , RESPONSE_MESSAGE =?, ERROR_MESSAGE=? where ID =" + tableid;
pstmt = conn.prepareStatement(query); pstmt = conn.prepareStatement(query);
pstmt.setString(1, respstatus.toString()); pstmt.setString(1, respstatus.toString());
pstmt.setString(2, respmessage.toString()); pstmt.setString(2, respmessage.toString());
@@ -1099,7 +703,7 @@ function setRESPONSE(tableid, respstatus, respmessage, errormessage) {
function PutBPDataInTable() { function PutBPDataInTable() {
var pdcontent = $.request.body.asString(); var pdcontent = $.request.body.asString();
// pdcontent = pdcontent.replace(/\"([^(\")\"]+)\":/g,"$1:\"); // pdcontent = pdcontent.replace(/\"([^(\")"]+)\":/g,"$1:");
var JbpObj = JSON.parse(pdcontent); var JbpObj = JSON.parse(pdcontent);
var conn = $.db.getConnection(); var conn = $.db.getConnection();
var pstmt; var pstmt;
@@ -1161,14 +765,9 @@ function PutBPDataInTable() {
var retUpsertBP = upsBP(searchparam, JbpObj); var retUpsertBP = upsBP(searchparam, JbpObj);
//var retUpsertBP = upsBP(searchparam, JSON.stringify(bpObj),JbpObj); //var retUpsertBP = upsBP(searchparam, JSON.stringify(bpObj),JbpObj);
//var retUpsertBP = upsertBP(searchparam, JSON.stringify(bpObj)); //var retUpsertBP = upsertBP(searchparam, JSON.stringify(bpObj));
//var retUpsertBP = addBP(JSON.stringify(bpObj)); //var retUpsertBP = addBP(JSON.stringify(bpObj));
} catch (e) { } catch (e) {
// push last outMsg if missing
if (outMsg.method && outMessages.indexOf(outMsg) === -1) {
outMsg.status = "canceled";
outMessages.push(outMsg);
}
outMsg = {}; outMsg = {};
outMsg.method = "exceptionHandler"; outMsg.method = "exceptionHandler";
outMsg.status = "error"; outMsg.status = "error";
@@ -1192,7 +791,6 @@ function PutBPDataInTable() {
if (ParDebug) { if (ParDebug) {
vals.debug = {}; vals.debug = {};
vals.debug.statement = query; vals.debug.statement = query;
vals.debugInfo = myDebug;
} }
// vals.group = JbpObj.group.toString(); // vals.group = JbpObj.group.toString();
@@ -1206,9 +804,7 @@ function PutBPDataInTable() {
setRESPONSE(mynextval, outMsg.status, errbody, outErrorMessages); setRESPONSE(mynextval, outMsg.status, errbody, outErrorMessages);
$.response.contentType = 'application/json'; $.response.contentType = 'application/json';
$.response.setBody(errbody); $.response.setBody(errbody);
//$.response.status = $.net.http.INTERNAL_SERVER_ERROR; $.response.status = $.net.http.INTERNAL_SERVER_ERROR;
// auch bei Fehler HTTP Status 200, da der Response im CRM sonst evtl. nicht sauber verarbeitet wird
$.response.status = $.net.http.OK;
return; return;
} }
vals.status = outStatus; vals.status = outStatus;
@@ -1262,9 +858,15 @@ PutBPDataInTable();
/*var req = 0; /*var req = 0;
req = $.request.parameters.get('crmid'); req = $.request.parameters.get('crmid');
if (!req){ if (!req){
output.error = "Invalid BP Request - " + req; output.error = "Invalid BP Request - " + req;
$.response.status = $.net.http.OK; $.response.status = $.net.http.OK;
$.response.contentType = "application/json"; $.response.contentType = "application/json";
$.response.setBody(JSON.stringify(output)); $.response.setBody(JSON.stringify(output));
}else{\n \n //addBP(JSON.stringify(bpObj));\n //updBP(JSON.stringify(bpObj));\n //GetOrders(req); \n}\n*/ }else{
//addBP(JSON.stringify(bpObj));
//updBP(JSON.stringify(bpObj));
//GetOrders(req);
}
*/
+23 -23
View File
@@ -1,4 +1,4 @@
var slib = $.import("uniorg.ServiceLayer", "B1SLLogic"); var slib = $.import("uniorg.ServiceLayer", "B1SLLogic");
var slDest = $.import("uniorg.destinations", "uodestlib"); var slDest = $.import("uniorg.destinations", "uodestlib");
var copybplib = $.import("uniorg.eon.libs", "copybp"); var copybplib = $.import("uniorg.eon.libs", "copybp");
var dateTimeLib = $.import("uniorg.libs", "datetime"); var dateTimeLib = $.import("uniorg.libs", "datetime");
@@ -27,23 +27,23 @@ var cmpprivate_b2m = "cCompany";
var service_version = '5.2'; var service_version = '5.2';
// 03.11.2020 U_ORDER_ID (262) // 03.11.2020 U_ORDER_ID (262)
// last changes: 31.03.2020 eoperate Felder // last changes: 31.03.2020 eoperate Felder
// Mapping Verträge 19.05.2020 // Mapping Verträge 19.05.2020
// Mapping evdriver undefined 12.08.2020 // Mapping evdriver undefined 12.08.2020
//17.08.2020 Parameter können nun auch ohne evdriver gesnedet werden. //17.08.2020 Parameter können nun auch ohne evdriver gesnedet werden.
//16.09.2020 Erweiterung Aktivierungsgebühr //16.09.2020 Erweiterung Aktivierungsgebühr
//Mazda 6 monatige RabattGebühr //Mazda 6 monatige RabattGebühr
//19.01.2021 duplicatebp lib Implementierung bei BFV Verträgen //19.01.2021 duplicatebp lib Implementierung bei BFV Verträgen
//06.10.2021 GP_DISCOUNT_MONTH //06.10.2021 GP_DISCOUNT_MONTH
//22.11.2021 Factor für BFV Verträge in Price Kollektion implementiert //22.11.2021 Factor für BFV Verträge in Price Kollektion implementiert
//29.11.2022 EMPEPI1-145: Erweiterung Contract SST/ Prüfung alte Projektnummern //29.11.2022 EMPEPI1-145: Erweiterung Contract SST/ Prüfung alte Projektnummern
//23.06.2023 EMPEPI1-277: Validierungsprüfung BV ohne Chargepoint Parameter / Paramater ohne valid_from //23.06.2023 EMPEPI1-277: Validierungsprüfung BV ohne Chargepoint Parameter / Paramater ohne valid_from
//18.09.2023 EMPEPI1-316: zeitl. Abgrenzung für AG Flag //18.09.2023 EMPEPI1-316: zeitl. Abgrenzung für AG Flag
//15.12.2023 EMPEPI1-327: Fehlerbehandlung bei leerem valid_from in prices //15.12.2023 EMPEPI1-327: Fehlerbehandlung bei leerem valid_from in prices
//05.03.2024 EMPEPI1-347: BMW: PO-No. Zeitscheibensystem //05.03.2024 EMPEPI1-347: BMW: PO-No. Zeitscheibensystem
//19.07.2024 BUS-7346: Error message for contract transmission to B1 //19.07.2024 BUS-7346: Error message for contract transmission to B1
//19.07.2024 BUS-7579: BMW-CCA-Abrechnung eoperate_valid_to < eoperate_valid_from //19.07.2024 BUS-7579: BMW-CCA-Abrechnung eoperate_valid_to < eoperate_valid_from
//01.08.2024 Implementierung Rechnungsadresse //01.08.2024 Implementierung Rechnungsadresse
//13.12.2024 BUS-9963: Bestellnummern am E.ON-Vertrag "einfach" überschreiben //13.12.2024 BUS-9963: Bestellnummern am E.ON-Vertrag "einfach" überschreiben
//11.02.2025 BUS-10922: RFID_CARD ohne Text1 und Text2 ablehnen //11.02.2025 BUS-10922: RFID_CARD ohne Text1 und Text2 ablehnen
var debugLevel = 0; var debugLevel = 0;
@@ -97,7 +97,7 @@ function convertToISODate(dateString) {
function getProductId(prodID) { function getProductId(prodID) {
/* switch (prodID) { /* switch (prodID) {
case "E.ON Drive Business ohne Grundgebühr": case "E.ON Drive Business ohne Grundgebühr":
prodID='E.ON Drive Business Comfort'; prodID='E.ON Drive Business Comfort';
break; break;
@@ -368,7 +368,7 @@ function buildContractObj(InObj, SBOOBJ, billingMode) {
} }
// Sonderpreise für Rabattmonate // Sonderpreise für Rabattmonate
prodComponentsGP_DISCOUNT_MONTH.concat(prodComponentsTP_DISCOUNT_MONTH).forEach(function(pc) { prodComponentsGP_DISCOUNT_MONTH.concat(prodComponentsTP_DISCOUNT_MONTH).forEach(function(pc) {
if (SBOOBJ.EON_CONTRACT_PRICECollection === undefined || SBOOBJ.EON_CONTRACT_PRICECollection.findIndex(function(x) { if (SBOOBJ.EON_CONTRACT_PRICECollection === undefined || SBOOBJ.EON_CONTRACT_PRICECollection.findIndex(function(x) {
return x.U_ITEM === pc.U_ITEM; return x.U_ITEM === pc.U_ITEM;
@@ -385,7 +385,7 @@ function buildContractObj(InObj, SBOOBJ, billingMode) {
} }
}); });
// Sonderpreise für kostenfreie Monate BFV BFV_BILLING // Sonderpreise für kostenfreie Monate BFV BFV_BILLING
if (InObj.costfree_months && InObj.costfree_months > 0) { if (InObj.costfree_months && InObj.costfree_months > 0) {
prodComponentsBFV_BILLING.forEach(function(pc) { prodComponentsBFV_BILLING.forEach(function(pc) {
var connection = $.hdb.getConnection(); var connection = $.hdb.getConnection();
@@ -412,7 +412,7 @@ function buildContractObj(InObj, SBOOBJ, billingMode) {
} }
}); });
} }
// bestehenden Sonderpreis entfernen, falls kostenfreie Monate auf 0 geändert werden // bestehenden Sonderpreis entfernen, falls kostenfreie Monate auf 0 geändert werden
if (InObj.hasOwnProperty('costfree_months') && InObj.costfree_months === 0 && UDOObj.EON_CONTRACT_PRICECollection.length > 0) { if (InObj.hasOwnProperty('costfree_months') && InObj.costfree_months === 0 && UDOObj.EON_CONTRACT_PRICECollection.length > 0) {
prodComponentsBFV_BILLING.forEach(function(pc) { prodComponentsBFV_BILLING.forEach(function(pc) {
for (var x = UDOObj.EON_CONTRACT_PRICECollection.length - 1; x >= 0; x--) { for (var x = UDOObj.EON_CONTRACT_PRICECollection.length - 1; x >= 0; x--) {
@@ -424,7 +424,7 @@ function buildContractObj(InObj, SBOOBJ, billingMode) {
}); });
} }
//Suche ob Objekte vorhanden wenn nicht ergänzen //Suche ob Objekte vorhanden wenn nicht ergänzen
for (var h in InObj.prices) { for (var h in InObj.prices) {
var myfound = false; var myfound = false;
@@ -492,7 +492,7 @@ function buildContractObj(InObj, SBOOBJ, billingMode) {
} }
//Suche ob Objekte vorhanden wenn nicht ergänzen //Suche ob Objekte vorhanden wenn nicht ergänzen
for (var h in InObj.ev_drivers) { for (var h in InObj.ev_drivers) {
var myfound = false; var myfound = false;
@@ -599,7 +599,7 @@ function buildContractObj(InObj, SBOOBJ, billingMode) {
UDOObj.EON_CONTRACT_PARAMCollection.push(myParam2); UDOObj.EON_CONTRACT_PARAMCollection.push(myParam2);
} }
// neue Aktivierungsgebühr hinzufügen // neue Aktivierungsgebühr hinzufügen
if (prodComponentsAG.length > 0 && (SBOOBJ.EON_CONTRACT_PARAMCollection === undefined || SBOOBJ.EON_CONTRACT_PARAMCollection.findIndex( if (prodComponentsAG.length > 0 && (SBOOBJ.EON_CONTRACT_PARAMCollection === undefined || SBOOBJ.EON_CONTRACT_PARAMCollection.findIndex(
function(x) { function(x) {
return x.U_COMPONENT === "AG"; return x.U_COMPONENT === "AG";
@@ -614,7 +614,7 @@ function buildContractObj(InObj, SBOOBJ, billingMode) {
}); });
} }
// neue Rabattmonate hinzufügen // neue Rabattmonate hinzufügen
prodComponentsTP_DISCOUNT_MONTH.forEach(function(pc) { prodComponentsTP_DISCOUNT_MONTH.forEach(function(pc) {
if (SBOOBJ.EON_CONTRACT_PARAMCollection === undefined || SBOOBJ.EON_CONTRACT_PARAMCollection.findIndex(function(x) { if (SBOOBJ.EON_CONTRACT_PARAMCollection === undefined || SBOOBJ.EON_CONTRACT_PARAMCollection.findIndex(function(x) {
return x.U_COMPONENT === pc.U_DATA_TEXT; return x.U_COMPONENT === pc.U_DATA_TEXT;
@@ -633,7 +633,7 @@ function buildContractObj(InObj, SBOOBJ, billingMode) {
} }
}); });
// neue Grundpreis Rabattmonate hinzufügen // neue Grundpreis Rabattmonate hinzufügen
prodComponentsGP_DISCOUNT_MONTH.forEach(function(pc) { prodComponentsGP_DISCOUNT_MONTH.forEach(function(pc) {
if (SBOOBJ.EON_CONTRACT_PARAMCollection === undefined || SBOOBJ.EON_CONTRACT_PARAMCollection.findIndex(function(x) { if (SBOOBJ.EON_CONTRACT_PARAMCollection === undefined || SBOOBJ.EON_CONTRACT_PARAMCollection.findIndex(function(x) {
return x.U_COMPONENT === pc.U_DATA_TEXT; return x.U_COMPONENT === pc.U_DATA_TEXT;
@@ -652,7 +652,7 @@ function buildContractObj(InObj, SBOOBJ, billingMode) {
} }
}); });
// neue Parameter aus ev_drivers.parameters hinzufügen // neue Parameter aus ev_drivers.parameters hinzufügen
for (var h in InObj.ev_drivers) { for (var h in InObj.ev_drivers) {
for (var k in InObj.ev_drivers[h].parameters) { for (var k in InObj.ev_drivers[h].parameters) {
var myfound2 = false; var myfound2 = false;
@@ -684,7 +684,7 @@ function buildContractObj(InObj, SBOOBJ, billingMode) {
} }
} }
} }
// neue Parameter aus Kopfebene hinzufügen // neue Parameter aus Kopfebene hinzufügen
for (var k in InObj.parameters) { for (var k in InObj.parameters) {
var myfound3 = false; var myfound3 = false;
for (var l in SBOOBJ.EON_CONTRACT_PARAMCollection) { for (var l in SBOOBJ.EON_CONTRACT_PARAMCollection) {
@@ -1317,4 +1317,4 @@ if (!req){
//updBP(JSON.stringify(bpObj)); //updBP(JSON.stringify(bpObj));
//GetOrders(req); //GetOrders(req);
} }
*/ */
+4 -4
View File
@@ -92,7 +92,7 @@ function slLogin() {
loginInfo.Password = UserPass; loginInfo.Password = UserPass;
loginInfo.CompanyDB = UserComp; loginInfo.CompanyDB = UserComp;
// SL LOGIN // SL LOGIN
var response = slLib.SLLogin(JSON.stringify(loginInfo), null, null); var response = slLib.SLLogin(JSON.stringify(loginInfo), null, null);
// B1SESSION and ROUTEID cookies returned by Login // B1SESSION and ROUTEID cookies returned by Login
@@ -239,8 +239,8 @@ function repairContractHistory() {
U_OBJTYPE: row.ObjType, U_OBJTYPE: row.ObjType,
U_DOCENTRY: row.DocEntry, U_DOCENTRY: row.DocEntry,
U_DOCNUM: row.DocNum U_DOCNUM: row.DocNum
} }
] ]
}; };
result.slContractObj = slContractObj; result.slContractObj = slContractObj;
var responseContract = slLib.patchDynamicEntity('EON_CONTR', row.U_EON_CONTRACT, JSON.stringify(slContractObj), SESSIONID, NODEID, var responseContract = slLib.patchDynamicEntity('EON_CONTR', row.U_EON_CONTRACT, JSON.stringify(slContractObj), SESSIONID, NODEID,
@@ -265,7 +265,7 @@ function repairContractHistory() {
}); });
output.durationMilliseconds = new Date() - startTS; output.durationMilliseconds = new Date() - startTS;
outMessages.push(outMsg); outMessages.push(outMsg);
try { try {
if (slLoggedIn) { if (slLoggedIn) {
slLib.SLLogout(SESSIONID, NODEID); slLib.SLLogout(SESSIONID, NODEID);
+658 -12
View File
@@ -89,22 +89,22 @@ function getProductId(prodID) {
case "E.ON Drive Business ohne Grundgebühr": case "E.ON Drive Business ohne Grundgebühr":
prodID='E.ON Drive Business Comfort'; prodID='E.ON Drive Business Comfort';
break; break;
case "LT_E.ON Drive ElectricFleet E.ON Konzern Ladetarif": case "LT_E.ON Drive ElectricFleet E.ON Konzern Ladetarif":
prodID='LT_E.ON DRIVE ELECTRICFLEET E.ON KONZERN LADETARIF'; prodID='LT_E.ON DRIVE ELECTRICFLEET E.ON KONZERN LADETARIF';
break; break;
case "LT_E.ON Drive ElectricFleet Ladetarif": case "LT_E.ON Drive ElectricFleet Ladetarif":
prodID='E.ON DRIVE ELECTRICFLEET LADETARIF'; prodID='E.ON DRIVE ELECTRICFLEET LADETARIF';
break; break;
case "BMW Group Corporate Charging CCA Ladetarif": case "BMW Group Corporate Charging CCA Ladetarif":
prodID='BMW GROUP CORPORATE CHARGING CCA LADETARIF'; prodID='BMW GROUP CORPORATE CHARGING CCA LADETARIF';
break; break;
case "LT_BMW Group Corporate Charging MA Ladetarif": case "LT_BMW Group Corporate Charging MA Ladetarif":
prodID='BMW GROUP CORPORATE CHARGING MA LADETARIF'; prodID='BMW GROUP CORPORATE CHARGING MA LADETARIF';
break; break;
default: default:
prodID = prodID; prodID = prodID;
}*/ }*/
@@ -112,7 +112,7 @@ function getProductId(prodID) {
var pstmt; var pstmt;
var query = 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\" " + "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\""; prodID + "') GROUP BY T0.\"U_BILLING_MODE\"";
query = query.replace(/XXREPXX/g, UserComp); query = query.replace(/XXREPXX/g, UserComp);
pstmt = conn.prepareStatement(query); pstmt = conn.prepareStatement(query);
@@ -335,7 +335,7 @@ function buildContractObj(InObj, SBOOBJ, billingMode) {
for (var g in SBOOBJ.EON_CONTRACT_EVDRVCollection) { for (var g in SBOOBJ.EON_CONTRACT_EVDRVCollection) {
var myEVDRV = {}; var myEVDRV = {};
// copy existing // copy existing
myEVDRV = SBOOBJ.EON_CONTRACT_EVDRVCollection[g]; myEVDRV = SBOOBJ.EON_CONTRACT_EVDRVCollection[g];
for (var h in InObj.ev_drivers) { 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_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_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_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_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_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; 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_EV_DRIVERID = InObj.ev_drivers[h].ev_driverid;
myEVDRV.U_FIRSTNAME = InObj.ev_drivers[h].firstname; myEVDRV.U_FIRSTNAME = InObj.ev_drivers[h].firstname;
myEVDRV.U_LASTNAME = InObj.ev_drivers[h].lastname; 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_LICENSE_PLATE = InObj.ev_drivers[h].license_plate;
myEVDRV.U_VIRTA_ID = InObj.ev_drivers[h].virta_id; myEVDRV.U_VIRTA_ID = InObj.ev_drivers[h].virta_id;
myEVDRV.U_VIRTA_VALID_TO = InObj.ev_drivers[h].virta_valid_to; 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 = []; 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; return UDOObj;
} }
@@ -425,13 +581,503 @@ function mockbuildBPObj() {
return bpObj; 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(); //testmain();
// begin org // begin org
var content = $.request.body.asString(); ParDebug = $.request.parameters.get('debug') && $.request.parameters.get('debug').toLowerCase() === "true";
ParRecallIdList = $.request.parameters.get('recallidlist');
setOutputMessage(); if (ParRecallIdList) {
ParRecallMode = true;
recallJSONRAW(ParRecallIdList);
} else {
var content = $.request.body.asString();
PutBPDataInTable();
}
//ende org //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);
}
*/
+875 -2
View File
@@ -156,7 +156,7 @@ function slLogin() {
loginInfo.Password = UserPass; loginInfo.Password = UserPass;
loginInfo.CompanyDB = UserComp; loginInfo.CompanyDB = UserComp;
// SL LOGIN // SL LOGIN
var response = slib.SLLogin(JSON.stringify(loginInfo), null, null); var response = slib.SLLogin(JSON.stringify(loginInfo), null, null);
// B1SESSION and ROUTEID cookies returned by Login // B1SESSION and ROUTEID cookies returned by Login
@@ -199,4 +199,877 @@ function slLogin() {
outStatus = "error"; outStatus = "error";
} }
return loginResult; return loginResult;
} }
function checkItemCode(inItemCode) {
var ItemCode = ""; // return value if document doesn't exist
outMsg = {};
outMsg.method = "checkItemCodeExistsinSAP";
outMsg.ItemCode = inItemCode;
outMsg.status = "success";
outMsg.message = "not exists";
if (inItemCode !== "") {
var conn = $.db.getConnection();
var pstmt;
var query =
"SELECT T0.\"ItemCode\" FROM \"XXREPXX\".\"OITM\" T0 WHERE T0.\"ItemCode\"= ?";
query = query.replace(/XXREPXX/g, UserComp);
pstmt = conn.prepareStatement(query);
pstmt.setNString(1, inItemCode);
try {
var rs = pstmt.executeQuery();
var Documents = [];
while (rs.next()) {
var Document = {};
Document.ItemCode = rs.getNString(1);
Documents.push(Document);
// return AbsId from last result
ItemCode = Document.ItemCode;
outMsg.ItemCode = ItemCode;
outMsg.message = "exists";
}
outMsg.Document = Documents;
rs.close();
} finally {
pstmt.close();
conn.close();
if (debugLevel > 0) {
outMsg.Query = query;
outMessages.push(outMsg);
}
}
} else {
outStatus = "error";
outMsg.status = "error";
outMsg.message = "ItemCode: " + inItemCode + " not exists in SAP (OITM)";
outMessages.push(outMsg);
}
return ItemCode;
}
function getItemCode(product_id) {
var ItemCode = ""; // return value if product doesn't exist
outMsg = {};
outMsg.method = "checkProductIdExistsinMappingTable";
outMsg.product_id = product_id;
outMsg.status = "error";
outMsg.message = "not exists";
if (product_id) {
var conn = $.db.getConnection();
var pstmt;
var query =
"SELECT T0.\"U_ITEMCODE\" FROM \"XXREPXX\".\"@UO_CRM_PRODUCT\" T0 WHERE T0.\"U_CRM_PRODUCT_ID\"= ?";
query = query.replace(/XXREPXX/g, UserComp);
if (debugLevel > 0) {
outMsg.Query = query;
}
pstmt = conn.prepareStatement(query);
pstmt.setNString(1, product_id);
try {
var rs = pstmt.executeQuery();
var Products = [];
while (rs.next()) {
var Product = {};
Product.ItemCode = rs.getNString(1);
Products.push(Product);
ItemCode = Product.ItemCode;
outMsg.ItemCode = ItemCode;
outMsg.status = "success";
outMsg.message = "exists";
}
if (debugLevel > 0) {
outMsg.Products = Products;
}
rs.close();
} finally {
pstmt.close();
conn.close();
if (outMsg.status === 'error') {
throw new Error("Product not found in mapping table: " + product_id);
}
if (debugLevel > 0) {
outMessages.push(outMsg);
}
}
} else {
outStatus = "error";
outMsg.status = "error";
outMsg.message = "Mandatory parameter is missing in payload (product_id)";
//outMessages.push(outMsg);
throw new Error(outMsg.message);
}
checkItemCode(ItemCode);
return ItemCode;
}
function getDocEntry(invoiceGUID) {
var DocEntry = -1; // return value if document doesn't exist
outMsg = {};
outMsg.method = "checkDocumentExists";
outMsg.invoiceGUID = invoiceGUID;
//outMsg.CardCode = CardCode;
outMsg.status = "success";
outMsg.message = "not exists";
if (invoiceGUID) {
var conn = $.db.getConnection();
var pstmt;
var query =
"SELECT T0.\"DocEntry\", T0.\"DocNum\", T0.\"NumAtCard\", T0.\"CardCode\", T0.\"DocStatus\", T0.\"U_EON_SRC_ID\" FROM \"XXREPXX\".\"OINV\" T0 WHERE T0.\"U_EON_SRC_GUID\"= ? AND T0.\"U_EON_SRC_SYSTEM\"= 'crm' ";
query = query.replace(/XXREPXX/g, UserComp);
pstmt = conn.prepareStatement(query);
pstmt.setNString(1, invoiceGUID);
//pstmt.setNString(2, CardCode.toString());
try {
var rs = pstmt.executeQuery();
var Documents = [];
while (rs.next()) {
var Document = {};
Document.DocEntry = rs.getInteger(1);
Document.DocNum = rs.getNString(2);
Document.NumAtCard = rs.getNString(3);
Document.CardCode = rs.getNString(4);
Document.DocStatus = rs.getNString(5);
Document.U_EON_SRC_ID = rs.getNString(6);
Document.U_EON_SRC_GUID = invoiceGUID;
Documents.push(Document);
// return AbsId from last result
DocEntry = Document.DocEntry;
outMsg.DocEntry = DocEntry;
outMsg.message = "exists";
outMsg.status = "error";
outStatus = "error";
}
outMsg.Document = Documents;
rs.close();
} finally {
pstmt.close();
conn.close();
if (debugLevel > 0 || outMsg.status === "error") {
//outMsg.Query = query;
outMessages.push(outMsg);
}
}
} else {
outStatus = "error";
outMsg.status = "error";
outMsg.message = "Mandatory parameter is missing in payload (invoice_crm_guid)";
outMessages.push(outMsg);
}
return DocEntry;
}
function getCardCode(CRMID) {
var CardCode = ""; // return value if customer doesn't exist
outMsg = {};
outMsg.method = "getCardCode";
outMsg.CRMID = CRMID;
outMsg.status = "error";
outMsg.message = "customer not found";
if (CRMID) {
var conn = $.db.getConnection();
var pstmt;
var query =
"SELECT T0.\"CardCode\",T0.\"U_EON_PGN\" FROM \"XXREPXX\".\"OCRD\" T0 WHERE T0.\"CardType\"=\'C\' AND T0.\"U_EON_ID_CRM\"= ?";
query = query.replace(/XXREPXX/g, UserComp);
pstmt = conn.prepareStatement(query);
pstmt.setNString(1, CRMID);
try {
var rs = pstmt.executeQuery();
while (rs.next()) {
CardCode = rs.getNString(1);
outMsg.CardCode = CardCode;
outMsg.U_EON_PGN = rs.getNString(2);
outMsg.status = "success";
outMsg.message = "exists";
}
rs.close();
} finally {
pstmt.close();
conn.close();
if (debugLevel > 0 || CardCode === "") {
if (debugLevel > 0) {
outMsg.Query = query;
}
outMessages.push(outMsg);
}
}
} else {
//outStatus = "error";
outMsg.status = "error";
outMsg.message = "Mandatory parameter is missing in payload (CRM ID)";
outMessages.push(outMsg);
}
if (CardCode === "") {
outStatus = "error";
}
return CardCode;
}
function getSignatureDate(ContractID) {
var sigdate;
outMsg = {};
outMsg.method = "getSignatureDate";
outMsg.ContractID = ContractID;
outMsg.status = "error";
outMsg.message = "invalid ContractID";
if (ContractID) {
var conn = $.db.getConnection();
var pstmt;
var query =
"SELECT T0.\"U_SIGNATURE_DATE\" FROM \"XXREPXX\".\"@EON_CONTRACT\" T0 WHERE T0.\"U_EXT_ID_CRM\"= ?";
query = query.replace(/XXREPXX/g, UserComp);
pstmt = conn.prepareStatement(query);
pstmt.setNString(1, ContractID);
try {
var rs = pstmt.executeQuery();
while (rs.next()) {
sigdate = rs.getNString(1);
outMsg.sigdate = sigdate;
outMsg.ContractID = ContractID;
outMsg.status = "success";
outMsg.message = "exists";
}
rs.close();
} finally {
pstmt.close();
conn.close();
if (debugLevel > 0 || sigdate === "") {
if (debugLevel > 0) {
outMsg.Query = query;
}
outMessages.push(outMsg);
}
}
} else {
//outStatus = "error";
outMsg.status = "error";
outMsg.message = "Mandatory parameter is missing in payload (ContractID)";
outMessages.push(outMsg);
}
if (sigdate === "") {
outStatus = "error";
}
return sigdate;
}
function getSeries(objectCode, seriesName) {
var series = 0; // return value if series doesn't exist
outMsg = {};
outMsg.method = "getSeries";
outMsg.seriesName = seriesName;
outMsg.status = "error";
outMsg.message = "invalid document series";
if (seriesName) {
var conn = $.db.getConnection();
var pstmt;
var query =
"SELECT T0.\"Series\" FROM \"XXREPXX\".\"NNM1\" T0 WHERE T0.\"ObjectCode\"= ? AND T0.\"SeriesName\"= ?";
query = query.replace(/XXREPXX/g, UserComp);
pstmt = conn.prepareStatement(query);
pstmt.setNString(1, objectCode);
pstmt.setNString(2, seriesName);
try {
var rs = pstmt.executeQuery();
while (rs.next()) {
series = rs.getInteger(1);
outMsg.series = series;
outMsg.status = "success";
outMsg.message = "exists";
}
rs.close();
} finally {
pstmt.close();
conn.close();
if (debugLevel > 0 || series === 0) {
if (debugLevel > 0) {
outMsg.Query = query;
}
outMessages.push(outMsg);
}
}
} else {
//outStatus = "error";
outMsg.status = "error";
outMsg.message = "Mandatory parameter is missing in payload (OrderType)";
outMessages.push(outMsg);
}
if (series === 0) {
outStatus = "error";
}
return series;
}
function getDocDates() {
var docDate, taxDate;
outMsg = {};
outMsg.method = "getDocDates";
outMsg.status = "error";
var conn = $.db.getConnection();
var pstmt;
var query =
'with currentPeriod as (select * from "XXREPXX".OFPR where current_date between "F_RefDate" and "T_RefDate"), \
nextPeriod as (select top 1 * from "XXREPXX".OFPR where "F_RefDate" > current_date order by "F_RefDate") \
select case when currentPeriod."PeriodStat"=\'N\' then current_date \
else to_date(nextPeriod."F_RefDate") end "DocDate", current_date as "TaxDate" \
from currentPeriod left join nextPeriod on 1=1';
query = query.replace(/XXREPXX/g, UserComp);
pstmt = conn.prepareStatement(query);
try {
var rs = pstmt.executeQuery();
while (rs.next()) {
docDate = rs.getDate(1);
taxDate = rs.getDate(2);
outMsg.docDate = docDate;
outMsg.taxDate = taxDate;
outMsg.status = "success";
}
rs.close();
} finally {
pstmt.close();
conn.close();
if (debugLevel > 0) {
if (debugLevel > 0) {
outMsg.Query = query;
}
outMessages.push(outMsg);
}
}
return {
docDate: docDate,
taxDate: taxDate
};
}
function splitcardname(mycardname) {
var mycardnamenew = [];
if (mycardname.length > 50) {
var mycardname1 = mycardname.substring(0, 50);
var mylastindex1 = mycardname1.lastIndexOf(' ');
var mylastindex2 = mycardname1.lastIndexOf('-');
var mylastindex3 = mycardname1.lastIndexOf('&');
var mylastindex = Math.max(mylastindex1, mylastindex2, mylastindex3);
mycardname1 = mycardname.substring(0, mylastindex);
var mycardname2 = mycardname.substring(mylastindex + 1, 100);
mycardnamenew.push(mycardname1);
mycardnamenew.push(mycardname2);
} else {
mycardnamenew.push(mycardname);
mycardnamenew.push("");
}
return mycardnamenew;
}
function buildDocument(DocumentIn, AttachmentEntry) {
var DocumentNew = {};
draftMode = DocumentIn.draft_state;
myDebug.draftMode = draftMode;
if (draftMode) {
DocumentNew.DocObjectCode = objecttype;
}
myDebug.MapperMode = "CREATE";
DocumentNew.CardCode = getCardCode(DocumentIn.account.gp_number);
const {
docDate, taxDate
} = getDocDates();
DocumentNew.DocDate = datetimelib.convertToISODate(docDate);
DocumentNew.TaxDate = datetimelib.convertToISODate(taxDate);
DocumentNew.NumAtCard = DocumentIn.web_orderid;
//: DocumentIn.invoice_crm_id;
DocumentNew.DocCurrency = DocumentIn.CurrencyISOCode;
DocumentNew.Comments = DocumentIn.ShippingComments;
DocumentNew.U_EON_CRM_REF = DocumentIn.contract_id;
DocumentNew.TransportationCode = DocumentIn.TransportMethod;
if (DocumentIn.invoicetype === 'Sammelrechnung') {
DocumentNew.U_EON_PERIOD_FROM = datetimelib.convertToISODate(DocumentIn.billing_period.start);
DocumentNew.U_EON_PERIOD_TO = datetimelib.convertToISODate(DocumentIn.billing_period.end);
//Muss aus Vertrag gezogen werden...
//DocumentNew.U_EON_SIGNATURE_DATE = datetimelib.convertToISODate(new Date());
DocumentNew.U_EON_SIGNATURE_DATE = getSignatureDate(DocumentIn.contract_id);
DocumentNew.U_EON_CRM_REF = DocumentIn.contract_id;
} else {
DocumentNew.U_EON_PERIOD_FROM = DocumentIn.order_completed.substring(0, 10);
DocumentNew.U_EON_PERIOD_TO = DocumentIn.order_completed.substring(0, 10);
DocumentNew.U_EON_SIGNATURE_DATE = datetimelib.convertToISODate(DocumentIn.signature_date);
}
DocumentNew.U_EON_SRC_SYSTEM = 'crm';
DocumentNew.U_EON_SRC_ID = DocumentIn.invoice_crm_id;
DocumentNew.U_EON_SRC_GUID = DocumentIn.invoice_crm_guid;
DocumentNew.AttachmentEntry = AttachmentEntry;
var invoiceAddressExists = DocumentIn.invoice_address && DocumentIn.invoice_address.address && DocumentIn.invoice_address.address.city;
var shippingAddressExists = DocumentIn.shipping_address && DocumentIn.shipping_address.address && DocumentIn.shipping_address.address.city;
if (invoiceAddressExists && DocumentIn.invoice_address.person.name) {
DocumentNew.ContactPersonCode = 0;
}
if (DocumentIn.description) {
DocumentNew.Comments = DocumentIn.description.substring(0, 254);
}
DocumentNew.DocumentReferences = [
{
RefObjType: 'rot_ExternalDocument',
ExtDocNum: logTableId.toString(),
Remark: 'UO_DOCUMENTS_RAWCALL'
}
];
if (invoiceAddressExists || shippingAddressExists) {
DocumentNew.AddressExtension = {};
if (invoiceAddressExists) {
DocumentNew.AddressExtension.BillToAddress2 = splitcardname(DocumentIn.invoice_address.person.company_name)[0];
DocumentNew.AddressExtension.U_CompanyName2B = splitcardname(DocumentIn.invoice_address.person.company_name)[1].substring(0, 50);
DocumentNew.AddressExtension.BillToBuilding = DocumentIn.invoice_address.address.street_addon;
DocumentNew.AddressExtension.BillToAddress3 = DocumentIn.invoice_address.person.salutation + " " + DocumentIn.invoice_address.person.name;
DocumentNew.AddressExtension.BillToStreet = DocumentIn.invoice_address.address.street_name;
DocumentNew.AddressExtension.BillToStreetNo = DocumentIn.invoice_address.address.housenumber;
DocumentNew.AddressExtension.BillToZipCode = DocumentIn.invoice_address.address.postalcode;
DocumentNew.AddressExtension.BillToCity = DocumentIn.invoice_address.address.city;
DocumentNew.AddressExtension.BillToCountry = DocumentIn.invoice_address.address.country;
}
if (shippingAddressExists) {
DocumentNew.AddressExtension.ShipToAddress2 = splitcardname(DocumentIn.shipping_address.person.company_name)[0];
DocumentNew.AddressExtension.U_CompanyName2S = splitcardname(DocumentIn.shipping_address.person.company_name)[1].substring(0, 50);
DocumentNew.AddressExtension.ShipToAddress3 = DocumentIn.shipping_address.person.salutation + " " + DocumentIn.shipping_address.person.name;
DocumentNew.AddressExtension.ShipToStreet = DocumentIn.shipping_address.address.street_name;
DocumentNew.AddressExtension.ShipToStreetNo = DocumentIn.shipping_address.address.housenumber;
DocumentNew.AddressExtension.ShipToZipCode = DocumentIn.shipping_address.address.postalcode;
DocumentNew.AddressExtension.ShipToCity = DocumentIn.shipping_address.address.city;
DocumentNew.AddressExtension.ShipToCountry = DocumentIn.shipping_address.address.country;
DocumentNew.AddressExtension.ShipToBuilding = DocumentIn.shipping_address.address.street_addon;
}
}
DocumentNew.DocumentLines = [];
var needsSpecialLines = DocumentIn.products.findIndex(function(p) {
return p.product_crm_title && p.product_crm_title.startsWith('IN_ZUS');
}) > -1;
if (needsSpecialLines) {
DocumentNew.DocumentSpecialLines = [];
DocumentNew.DocumentSpecialLines.push({
AfterLineNumber: -1,
LineType: "dslt_Text",
LineText: "Im Paket enthalten:"
});
}
// Hauptprodukte
for (var g in DocumentIn.products) {
var myItemLines = {};
if (!(DocumentIn.products[g].product_crm_title && DocumentIn.products[g].product_crm_title.startsWith('IN_ZUS'))) {
myItemLines.ItemCode = getItemCode(DocumentIn.products[g].product_id);
myItemLines.ItemDescription = DocumentIn.products[g].product_invoice_title;
myItemLines.Quantity = DocumentIn.products[g].amount;
// myItemLines.WarehouseCode = DocumentIn.products[g].Warehouse;
myItemLines.UnitPrice = DocumentIn.products[g].discounted_single_price;
myItemLines.U_EON_PERIOD_FROM = DocumentIn.invoicetype === 'Sammelrechnung' ? datetimelib.convertToISODate(DocumentIn.billing_period.start) :
DocumentIn.order_completed.substring(0, 10);
myItemLines.U_EON_PERIOD_TO = DocumentIn.invoicetype === 'Sammelrechnung' ? datetimelib.convertToISODate(DocumentIn.billing_period.end) :
DocumentIn.order_completed.substring(0, 10);
// myItemLines.DiscountPercent = DocumentIn.OrderLineItems[g].RowDiscount;
myItemLines.ProjectCode = DocumentIn.products[g].orderid;
/*var locationsAdressExists = DocumentIn.locations && DocumentIn.locations[0].address && DocumentIn.locations[0].address.city;
// myItemLines.U_KU_SONumber = DocumentIn.OrderLineItems[g].RelatedSalesOrder ? DocumentIn.OrderLineItems[g].RelatedSalesOrder : null;
if (g==='0' && locationsAdressExists)
{
var locationsText = "Standort:";
DocumentIn.locations.forEach(function (loc) {
locationsText += "\n" + loc.address.street_name + " " + loc.address.housenumber + "\n" + loc.address.postalcode + " " + loc.address.city;
});
myItemLines.ItemDetails = locationsText;
}*/
if (DocumentIn.products[g].service_description) {
myItemLines.ItemDetails = DocumentIn.products[g].service_description;
}
DocumentNew.DocumentLines.push(myItemLines);
}
}
if (needsSpecialLines) {
DocumentNew.DocumentSpecialLines.push({
AfterLineNumber: DocumentNew.DocumentLines.length - 1,
LineType: "dslt_Subtotal",
LineText: "Zwischensumme"
});
DocumentNew.DocumentSpecialLines.push({
AfterLineNumber: DocumentNew.DocumentLines.length - 1,
LineType: "dslt_Text",
LineText: "Zusatzleistungen:"
});
}
// Zusatzprodukte
for (var g in DocumentIn.products) {
var myItemLines = {};
if (DocumentIn.products[g].product_crm_title && DocumentIn.products[g].product_crm_title.startsWith('IN_ZUS')) {
myItemLines.ItemCode = getItemCode(DocumentIn.products[g].product_id);
myItemLines.ItemDescription = DocumentIn.products[g].product_invoice_title;
myItemLines.Quantity = DocumentIn.products[g].amount;
// myItemLines.WarehouseCode = DocumentIn.products[g].Warehouse;
myItemLines.UnitPrice = DocumentIn.products[g].discounted_single_price;
myItemLines.U_EON_PERIOD_FROM = DocumentIn.invoicetype === 'Sammelrechnung' ? datetimelib.convertToISODate(DocumentIn.billing_period.start) :
DocumentIn.order_completed.substring(0, 10);
myItemLines.U_EON_PERIOD_TO = DocumentIn.invoicetype === 'Sammelrechnung' ? datetimelib.convertToISODate(DocumentIn.billing_period.end) :
DocumentIn.order_completed.substring(0, 10);
// myItemLines.DiscountPercent = DocumentIn.OrderLineItems[g].RowDiscount;
myItemLines.ProjectCode = DocumentIn.products[g].orderid;
/*var locationsAdressExists = DocumentIn.locations && DocumentIn.locations[0].address && DocumentIn.locations[0].address.city;
// myItemLines.U_KU_SONumber = DocumentIn.OrderLineItems[g].RelatedSalesOrder ? DocumentIn.OrderLineItems[g].RelatedSalesOrder : null;
if (g==='0' && locationsAdressExists)
{
var locationsText = "Standort:";
DocumentIn.locations.forEach(function (loc) {
locationsText += "\n" + loc.address.street_name + " " + loc.address.housenumber + "\n" + loc.address.postalcode + " " + loc.address.city;
});
myItemLines.ItemDetails = locationsText;
}*/
if (DocumentIn.products[g].service_description) {
myItemLines.ItemDetails = DocumentIn.products[g].service_description;
}
DocumentNew.DocumentLines.push(myItemLines);
}
}
if (needsSpecialLines) {
DocumentNew.DocumentSpecialLines.push({
AfterLineNumber: DocumentNew.DocumentLines.length - 1,
LineType: "dslt_Subtotal",
LineText: "Zwischensumme"
});
}
return DocumentNew;
}
function setAperiodicAccounts(createBody) {
var newBody = JSON.parse(JSON.stringify(createBody));
var accountList = [];
var aperiodicAccountAssignment = [];
outMsg = {};
outMsg.method = "setAperiodicAccounts.previewInvoice";
outMsg.status = "error";
//create preview invoice
var responsePreview = slib.previewInvoice(JSON.stringify({
Document: createBody
}), SESSIONID, NODEID);
myDebug.statusPreview = responsePreview.status;
outMsg.statuscode = responsePreview.status;
myDebug.responsePreview = JSON.parse(responsePreview.body.asString());
if (responsePreview.status >= 200 && responsePreview.status < 300) {
outMsg.status = "success";
var previewInvObj = JSON.parse(responsePreview.body.asString());
// erstelle eine eindeutige Liste von Konten, basierend auf Zeilen mit aperiodischem Zeitraum
accountList = previewInvObj.DocumentLines.filter(function(dl) {
return dl.U_EON_PERIOD_TO.substring(0, 4) < createBody.DocDate.substring(0, 4)
})
.map(function(al) {
return al.AccountCode
})
.filter(function(account, index, inputArray) {
return inputArray.indexOf(account) == index;
});
myDebug.accountListOfAperiodicLines = accountList;
if (debugLevel > 0) {
outMessages.push(outMsg);
}
//lookup aperiodic accounts
outMsg = {};
outMsg.method = "setAperiodicAccounts.lookupAccounts";
outMsg.status = "error";
//"SELECT T0.\"U_EON_ACCAPER\", T0.\"AcctName\" FROM OACT T0 WHERE T0.\"AcctCode\" = ?
var conn = $.hdb.getConnection();
accountList.forEach(function(accountCode) {
var rs = conn.executeQuery('SELECT T0."U_EON_ACCAPER", T0."AcctCode", T0."AcctName" FROM "' + UserComp +
'".OACT T0 WHERE T0."AcctCode" = ?', accountCode);
if (rs[0].U_EON_ACCAPER) {
aperiodicAccountAssignment.push({
accountCode: rs[0].AcctCode,
aperiodicAccountCode: rs[0].U_EON_ACCAPER
})
}
});
conn.close();
outMsg.aperiodicAccountAssignment = aperiodicAccountAssignment;
// aperiodische Konten in Belegzeilen setzen
for (var i = 0; i < previewInvObj.DocumentLines.length; i++) {
var oldAccount = previewInvObj.DocumentLines[i].AccountCode;
var accountMapping = aperiodicAccountAssignment.find(function(a) {
return a.accountCode === oldAccount
});
if (accountMapping && accountMapping.aperiodicAccountCode) {
newBody.DocumentLines[i].AccountCode = accountMapping.aperiodicAccountCode;
}
}
outMsg.status = "success";
} else {
outMsg.status = "error";
//outMsg.message = myDebug.responsePreview;
outStatus = "error";
var slError = myDebug.responsePreview.error;
if (slError && slError.hasOwnProperty("code") && slError.message && slError.message.value) {
outMsg.message = slError.message.value + " (Code: " + slError.code.toString() + ")";
} else {
outMsg.message = JSON.stringify(myDebug.responsePreview);
}
outMsg.response = myDebug.responsePreview;
}
if (debugLevel > 0 || outMsg.status == "error") {
outMessages.push(outMsg);
}
return newBody;
}
function buildFilesObj(crmAttachments) {
var filesObj;
outMsg = {};
outMsg.method = "lookup MIME Types";
outMsg.status = 'success';
var conn = $.hdb.getConnection();
filesObj = crmAttachments.map(function(a) {
var rs = conn.executeQuery('SELECT T0."Code", T0."Name" FROM "' + UserComp + '"."@UO_MIME_TYPES" T0 WHERE T0."Code" = ?', a.document_mime_type);
if (rs.length > 0) {
return {
contentType: rs[0].Name,
fileName: $.util.createUuid() + "_" + a.document_name,
b64Content: a.document_content
}
} else {
outMsg.status = "error";
outStatus = "error";
outMsg.message = "MIME Type '" + a.document_mime_type + "' not found";
}
});
conn.close();
if (debugLevel > 0) {
outMsg.filesObj = filesObj;
}
if (debugLevel > 0 || outMsg.status == "error") {
outMessages.push(outMsg);
}
return filesObj;
}
function upsertDocument(inObj) {
try {
var DocumentIn = JSON.parse(inObj);
var DocEntry = getDocEntry(DocumentIn.invoice_crm_guid);
var attachmentEntry = -1;
if (outStatus !== "error") {
slLoggedIn = slLogin();
if (outStatus !== "error" && outStatus !== "exists" && DocumentIn.attachments) {
// Erstellung des Attachments Objekt inkl. Hochladen der Dateien - POST /b1s/v1/Attachments2
var filesObj = buildFilesObj(DocumentIn.attachments);
if (outStatus !== "error") {
outMsg = {};
outMsg.method = "uploadAttachments";
outMsg.status = "error";
var response = slib.callServiceLayerFileUpload('/b1s/v1/Attachments2', $.net.http.POST, filesObj, SESSIONID, NODEID);
outMsg.statuscode = response.status;
var parsedResponseUpload = response.body ? JSON.parse(response.body.asString()) : {};
if (response.status >= 200 && response.status < 300) {
outMsg.status = "success";
var attachmentObjResponse = parsedResponseUpload;
// attachmentEntry = AbsoluteEntry aus Response
if (attachmentObjResponse.AbsoluteEntry > 0) {
attachmentEntry = attachmentObjResponse.AbsoluteEntry;
outMsg.AttachmentEntry = attachmentEntry;
}
} else if (response.exception) {
outStatus = "error";
outMsg.status = "error";
outMsg.message = response.exception;
} else {
outStatus = "error";
outMsg.status = "error";
var slError = parsedResponseUpload.error;
if (slError && slError.hasOwnProperty("code") && slError.message && slError.message.value) {
outMsg.message = slError.message.value + " (Code: " + slError.code.toString() + ")";
} else {
outMsg.message = JSON.stringify(parsedResponseUpload);
}
}
if (debugLevel > 0 || outMsg.status == "error") {
outMessages.push(outMsg);
}
}
// Anreicherung der UDFs - PATCH /b1s/v1/Attachments2
if (outStatus !== 'error') {
outMsg = {};
outMsg.method = "updateAttachments";
outMsg.status = "error";
var attachmentPatchBody = {
AbsoluteEntry: attachmentEntry,
Attachments2_Lines: DocumentIn.attachments.map(function(a, idx) {
return {
AbsoluteEntry: attachmentEntry,
LineNum: idx + 1,
Override: 'tYES',
U_EON_EDOC_REL: 'Y',
U_EON_ORIG_FILE: a.document_name,
U_EON_MIME_TYPE: a.document_mime_type,
U_EON_DOC_GUID: a.document_guid,
U_EON_TRANS_KEY: a.transmission_key
};
})
};
if (debugLevel > 0) {
outMsg.requestBody = attachmentPatchBody;
}
var response = slib.patchDynamicEntity('Attachments2', attachmentEntry, JSON.stringify(attachmentPatchBody), SESSIONID, NODEID, false);
outMsg.statuscode = response.status;
var parsedResponseUpdate = response.body ? JSON.parse(response.body.asString()) : {};
if (response.status >= 200 && response.status < 300) {
outMsg.status = "success";
} else if (response.exception) {
outStatus = "error";
outMsg.status = "error";
outMsg.message = response.exception;
} else {
outStatus = "error";
outMsg.status = "error";
var slError = parsedResponseUpdate.error;
if (slError && slError.hasOwnProperty("code") && slError.message && slError.message.value) {
outMsg.message = slError.message.value + " (Code: " + slError.code.toString() + ")";
} else {
outMsg.message = JSON.stringify(parsedResponseUpdate);
}
}
if (debugLevel > 0 || outMsg.status == "error") {
outMessages.push(outMsg);
}
}
}
if (outStatus !== "error" && outStatus !== "exists") {
//myDebug.CreateCode = "activated";
var createBody = buildDocument(DocumentIn, attachmentEntry);
myDebug.CreateObj = createBody;
var aperiodicLines = createBody.DocumentLines.filter(function(dl) {
return dl.U_EON_PERIOD_TO.substring(0, 4) < createBody.DocDate.substring(0, 4)
});
if (aperiodicLines.length > 0) {
createBody = setAperiodicAccounts(createBody);
}
// EMPEPI1-141: Ablehnung von Rechnungen im Entwurfsmodus ab 25.11.2022
const today = new Date();
const draftNotAllowedFrom = new Date('2022-11-28T00:00:00+01:00');
const draftNotAllowedUntil = new Date('2022-12-06T23:59:59+01:00');
if (draftMode && today >= draftNotAllowedFrom && today <= draftNotAllowedUntil) {
outMsg = {};
outMsg.method = "checkDraft";
outMsg.status = "error";
outMsg.message = "Draft documents are currently not allowed";
outMessages.push(outMsg);
outStatus = "error";
} else {
outMsg = {};
outMsg.method = "create";
//consDoc = buildSCObj(jsonSFCall, currentSC, addrObj, output.method);
//outMsg.CreateObj = createBody;
var responseCreate;
if (draftMode) {
responseCreate = slib.createDraft(JSON.stringify(createBody), SESSIONID, NODEID);
} else {
responseCreate = slib.createInvoice(JSON.stringify(createBody), 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 createdInvObj = JSON.parse(responseCreate.body.asString());
outMsg.DocEntry = createdInvObj.DocEntry;
logDocEntry = createdInvObj.DocEntry;
outMsg.DocNum = createdInvObj.DocNum;
//outMsg.currentOBJECT = createdInvObj;
} else {
myDebug.Createmessage = "Create error occured";
//output.errorCreatestatus = myDebug.Createmessage;
outStatus = "error";
outMsg.status = "error";
var slError = myDebug.responseCreate.error;
if (slError && slError.hasOwnProperty("code") && slError.message && slError.message.value) {
outMsg.message = slError.message.value + " (Code: " + slError.code.toString() + ")";
} else {
outMsg.message = JSON.stringify(myDebug.responseCreate);
}
outMsg.response = myDebug.responseCreate;
}
outMessages.push(outMsg);
}
}
}
// }
} catch (e) {
exceptionHandler(e);
return;
}
if (slLoggedIn) {
slib.SLLogout(SESSIONID, NODEID);
}
}
var content = $.request.body.asString();
try {
outMsg = {};
outMsg.method = "logRequest";
outMsg.status = "error";
logTableId = logginglib.logCall2Table(content, "UO_DOCUMENTS_RAWCALL", objecttype, serviceName, true);
outMsg.logTableId = logTableId;
if (logTableId > 0) {
outMsg.status = "success";
}
if (debugLevel > 0) {
outMessages.push(outMsg);
}
} catch (e) {
outStatus = "error";
exceptionHandler(e);
}
setConnectionParams(content);
if (outStatus !== "error") {
upsertDocument(content);
}
updateLogEntry(logTableId, logDocEntry, draftMode ? '112' : objecttype);
setOutputMessage();