Export from HANA XS Repository - Complete DU2 with all services and metadata

This commit is contained in:
Claude Agent
2026-07-08 23:16:42 +02:00
parent d323936c75
commit 997ad1c8f6
10 changed files with 4563 additions and 0 deletions
+867
View File
@@ -0,0 +1,867 @@
var slib = $.import("uniorg.ServiceLayer", "B1SLLogic");
var slDest = $.import("uniorg.destinations", "uodestlib");
var bpbl = $.import("uniorg.eon.libs", "bp_businesslogic");
var ParDebug = false;
var output = {};
var outMessages = [];
var outErrorMessages = [];
var outMsg = {};
var outStatus = "success";
var myDebug = {};
var UserName = slDest.uniorg_eon_nice_v1_UserName;
var UserPass = slDest.uniorg_eon_nice_v1_UserPass;
var UserComp = slDest.uniorg_eon_nice_v1_UserComp;
var series_b2c = 68;
var series_b2b = 69;
var series_b2m = 70;
var groupcode_b2c = 100;
var groupcode_b2b = 102;
var groupcode_b2m = 103;
var cmpprivate_b2c = "cPrivate";
var cmpprivate_b2b = "cCompany";
var cmpprivate_b2m = "cCompany";
var service_version = '6.2';
function setOutputMessage() {
$.response.contentType = "application/json";
$.response.setBody(JSON.stringify(output));
$.response.status = $.net.http.OK;
}
function pad(number) {
var r = String(number);
if (r.length === 1) {
r = '0' + r;
}
return r;
}
function convertToISODate(dateString) {
try {
//var options = { year: 'numeric', month: '2-digit', day: '2-digit' };
var d = new Date(dateString);
if (!isNaN(d)) {
//var convDate = d.toLocaleDateString('de-DE', options);
var convDate = d.getFullYear() + '-' + pad(d.getMonth() + 1) + '-' + pad(d.getDate());
return convDate;
} else {
return dateString;
}
} catch (err) {
return (err);
}
}
function getCustRECACC(custpgnr) {
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.\"U_EON_RECACC_PAY\" FROM \"XXREPXX\".\"@EON_PGN\" T0 WHERE T0.\"Code\" = ?";
query = query.replace(/XXREPXX/g, UserComp)
pstmt = conn.prepareStatement(query);
pstmt.setString(1, custpgnr);
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 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 convertAdrType(adrtype) {
switch (adrtype) {
case '1':
case 'S':
return 'bo_ShipTo';
case '2':
case '3':
case 'B':
return 'bo_BillTo';
default:
return 'bo_BillTo';
}
}
function getnextvalsepaid() {
var conn = $.db.getConnection();
var pstmt;
var query = "select lpad(\"NICEPORTAL\".\"SEQ_MAND_ID\".NEXTVAL ,10,'0') 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 buildBPObj(JbpObj, SBOOBJ) {
var myseries = '';
var mygroupcode = '';
var mycardname = '';
var mycmpprivate = '';
var mybpcontactname = '';
switch (JbpObj.group) {
case 'B2C':
mycardname = JbpObj.name.toString() + ' ' + JbpObj.surname.toString();
mybpcontactname = JbpObj.name.toString() + ' ' + JbpObj.surname.toString();
myseries = series_b2c;
mygroupcode = groupcode_b2c;
mycmpprivate = cmpprivate_b2c;
break;
case 'B2B':
//mycardname = JbpObj.name.toString();
mycardname = JbpObj.addresses[0].address.toString();
mybpcontactname = JbpObj.name.toString() + ' ' + JbpObj.surname.toString();
myseries = series_b2b;
mygroupcode = groupcode_b2b;
mycmpprivate = cmpprivate_b2b;
break;
case 'B2M':
//mycardname = JbpObj.name.toString();
mycardname = JbpObj.addresses[0].address.toString();
mybpcontactname = JbpObj.name.toString() + ' ' + JbpObj.surname.toString();
myseries = series_b2m;
mygroupcode = groupcode_b2m;
mycmpprivate = cmpprivate_b2m;
break;
default:
mycardname = JbpObj.name.toString() + ' ' + JbpObj.surname.toString();
mybpcontactname = JbpObj.name.toString() + ' ' + JbpObj.surname.toString();
myseries = series_b2c;
mygroupcode = groupcode_b2c;
mycmpprivate = cmpprivate_b2c;
}
var myaddress23 = splitcardname(mycardname);
var bpObj = {};
bpObj.Series = myseries;
bpObj.CompanyPrivate = mycmpprivate; // JbpObj.type.toString();
bpObj.CardName = mycardname;
bpObj.CardType = 'C';
bpObj.GroupCode = mygroupcode; // JbpObj.group.toString();
bpObj.Phone1 = JbpObj.phone.toString();
bpObj.Cellular = JbpObj.mobile_phone.toString();
if (JbpObj.vatid) {
bpObj.FederalTaxID = JbpObj.vatid.toString();
}
if (JbpObj.bank_account.sepa_mandate.toString() == 'Ja') {
bpObj.PayTermsGrpCode = 13;
}
bpObj.EmailAddress = JbpObj.email.toString();
bpObj.U_EON_ID_CRM = JbpObj.id_crm.toString();
bpObj.U_EON_ID_CRM_INTERNAL = JbpObj.id_msd.toString();
if (JbpObj.shipping_type)
{
bpObj.U_UO_OUTPUT_VSARTAR = JbpObj.shipping_type.toString();
}
if (!JbpObj.pgnr) {
bpObj.U_EON_ASSU = 'N';
bpObj.Affiliate = 'tNO';
}
if (JbpObj.pgnr) {
bpObj.U_EON_PGN = JbpObj.pgnr.toString();
bpObj.DebitorAccount = getCustRECACC(JbpObj.pgnr.toString());
bpObj.U_EON_ASSU = 'Y';
bpObj.Affiliate = 'tYES';
}
if (JbpObj.res_prop===true) {
bpObj.U_EON_WVB = 'Y';
}
if (JbpObj.res_prop===false) {
bpObj.U_EON_WVB = 'N';
}
bpObj.BPAddresses = [];
// bpObj.BPAddresses[0].AddressName = 'test';
for (var g in SBOOBJ.BPAddresses) {
for (var h in JbpObj.addresses) {
var mybpAdresses = {};
// mybpAdresses.g = g;
// mybpAdresses.h = h;
var myaddressbpname = JbpObj.addresses[h].street.toString() + ' ' + JbpObj.addresses[h].street_no.toString();
mybpAdresses.AddressName = SBOOBJ.BPAddresses[g].AddressName;
mybpAdresses.AddressType = SBOOBJ.BPAddresses[g].AddressType;
mybpAdresses.BPCode = SBOOBJ.BPAddresses[g].BPCode;
mybpAdresses.RowNum = SBOOBJ.BPAddresses[g].RowNum;
if (SBOOBJ.BPAddresses[g].AddressName === myaddressbpname && SBOOBJ.BPAddresses[g].AddressType === convertAdrType(JbpObj.addresses[
h].type)) {
//mybpAdresses.AddressName = JbpObj.addresses[h].address.toString();
mybpAdresses.Street = JbpObj.addresses[h].street.toString();
//mybpAdresses.Block = 'test';
mybpAdresses.ZipCode = JbpObj.addresses[h].zip_code.toString();
mybpAdresses.City = JbpObj.addresses[h].city.toString();
//mybpAdresses.County = 'test';
mybpAdresses.Country = JbpObj.addresses[h].country.toString();
if (JbpObj.addresses[h].standard = 'ja') {
if (convertAdrType(JbpObj.addresses[h].type) === 'bo_BillTo') {
bpObj.BilltoDefault = myaddressbpname;
}
if (convertAdrType(JbpObj.addresses[h].type) === 'bo_ShipTo') {
bpObj.ShipToDefault = myaddressbpname;
}
}
//mybpAdresses.State = 'test';
//mybpAdresses.FederalTaxID = 'test';
//mybpAdresses.TaxCode = 'test';
//mybpAdresses.BuildingFloorRoom = 'test';
/*
if (JbpObj.addresses[h].type === 'B') {
mybpAdresses.AddressType = 'bo_BillTo';
} else {
mybpAdresses.AddressType = 'bo_ShipTo';
}
*/
if (JbpObj.group == 'B2B' || JbpObj.group == 'B2M') {
//mybpAdresses.AddressName2 = mycardname;
mybpAdresses.AddressName2 = myaddress23[0];
mybpAdresses.AddressName3 = myaddress23[1];
}
if (JbpObj.addresses[h].address3) {
mybpAdresses.AddressName3 = JbpObj.addresses[h].address3.toString();
}
//mybpAdresses.TypeOfAddress = 'test';
mybpAdresses.StreetNo = JbpObj.addresses[h].street_no.toString();
mybpAdresses.U_EON_EXT_ID = JbpObj.addresses[h].addressid.toString();
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 nichzt ergänzen
for (var h in JbpObj.addresses) {
var myfound = false;
var myaddbpAdresses = {};
var myaddbpname = JbpObj.addresses[h].street.toString() + ' ' + JbpObj.addresses[h].street_no.toString();
for (var g in SBOOBJ.BPAddresses) {
if (SBOOBJ.BPAddresses[g].AddressName === myaddbpname && SBOOBJ.BPAddresses[g].AddressType === convertAdrType(JbpObj.addresses[h].type)) {
myfound = true;
}
}
if (myfound == false) {
myaddbpAdresses.AddressName = myaddbpname; //JbpObj.addresses[h].address.toString();
myaddbpAdresses.Street = JbpObj.addresses[h].street.toString();
//myaddbpAdresses.Block = 'test';
myaddbpAdresses.ZipCode = JbpObj.addresses[h].zip_code.toString();
myaddbpAdresses.City = JbpObj.addresses[h].city.toString();
//myaddbpAdresses.County = 'test';
myaddbpAdresses.Country = JbpObj.addresses[h].country.toString();
//myaddbpAdresses.State = 'test';
//myaddbpAdresses.FederalTaxID = 'test';
//myaddbpAdresses.TaxCode = 'test';
//myaddbpAdresses.BuildingFloorRoom = 'test';
if (JbpObj.addresses[h].standard = 'ja') {
if (convertAdrType(JbpObj.addresses[h].type) === 'bo_BillTo') {
bpObj.BilltoDefault = myaddbpname;
}
if (convertAdrType(JbpObj.addresses[h].type) === 'bo_ShipTo') {
bpObj.ShipToDefault = myaddbpname;
}
}
myaddbpAdresses.AddressType = convertAdrType(JbpObj.addresses[h].type);
if (JbpObj.group == 'B2B' || JbpObj.group == 'B2M') {
//myaddbpAdresses.AddressName2 = mycardname;
myaddbpAdresses.AddressName2 = myaddress23[0];
myaddbpAdresses.AddressName3 = myaddress23[1];
}
if (JbpObj.addresses[h].address3) {
myaddbpAdresses.AddressName3 = JbpObj.addresses[h].address3.toString();
}
//myaddbpAdresses.TypeOfAddress = 'test';
myaddbpAdresses.StreetNo = JbpObj.addresses[h].street_no.toString();
myaddbpAdresses.U_EON_EXT_ID = JbpObj.addresses[h].addressid.toString();
bpObj.BPAddresses.push(myaddbpAdresses);
}
}
// var myaddbpAdresses = {};
// //for (var i in bpObj.BPAddresses) {
// var myfound = false;
// for (var j in JbpObj.addresses) {
// // console.log("i=" + i + "Name:" + bpObj.BPAddresses[i].AddressName);
// console.log("j=" + j + "Name:" + JbpObj.addresses[j].address);
// console.log(bpObj.BPAddresses.(Addressname, 0, JbpObj.addresses[j].address));
// // if (bpObj.BPAddresses[i].AddressName == JbpObj.addresses[j].address) {
// if (bpObj.BPAddresses.indexOf(JbpObj.addresses[j].address) > 0) {
// console.log("FOUND");
// myfound = true;
// //((myaddbpAdresses.found = myfound;
// //myaddbpAdresses.i = i;
// //myaddbpAdresses.j = j;
// //bpObj.BPAddresses.push(myaddbpAdresses);
// }
// else {
// myfound = false
// console.log("NOT FOUND");
//// myaddbpAdresses.found = myfound;
// //bpObj.BPAddresses.push(myaddbpAdresses);
// }
// }
// //}
bpObj.ContactEmployees = [];
var myfoundCP = false;
for (var cpB1 in SBOOBJ.ContactEmployees) {
var mybpContactEmployees = {};
mybpContactEmployees.Name = SBOOBJ.ContactEmployees[cpB1].Name;
mybpContactEmployees.CardCode = SBOOBJ.ContactEmployees[cpB1].CardCode;
mybpContactEmployees.InternalCode = SBOOBJ.ContactEmployees[cpB1].InternalCode;
if (SBOOBJ.ContactEmployees[cpB1].Name == mybpcontactname) {
mybpContactEmployees.FirstName = JbpObj.name.toString();
mybpContactEmployees.LastName = JbpObj.surname.toString();
mybpContactEmployees.Title = JbpObj.title.toString();
mybpContactEmployees.U_EON_SALUTATION = JbpObj.salutation.toString();
bpObj.ContactPerson = mybpcontactname;
myfoundCP = true;
}
bpObj.ContactEmployees.push(mybpContactEmployees);
}
if (myfoundCP == false) {
mybpContactEmployees = {};
mybpContactEmployees.Name = mybpcontactname; //mycardname;
mybpContactEmployees.FirstName = JbpObj.name.toString();
mybpContactEmployees.LastName = JbpObj.surname.toString();
mybpContactEmployees.Title = JbpObj.title.toString();
mybpContactEmployees.U_EON_SALUTATION = JbpObj.salutation.toString();
bpObj.ContactPerson = mybpcontactname;
bpObj.ContactEmployees.push(mybpContactEmployees);
}
bpObj.BPBankAccounts = [];
var myfoundBank = false;
var myIBAN = JbpObj.bank_account.iban.toString().replace(/ /g, '');
var myCountry = myIBAN.substring(0, 2);
var myBankCode = myIBAN.substring(4, 12);
var myAccountNo = myIBAN.substring(12, 23);
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;
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') {
// 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;
}
function mockbuildBPObj() {
var bpObj = {};
bpObj.Series = series_b2b;
bpObj.CompanyPrivate = "I"; // JbpObj.type.toString();
bpObj.CardName = 'Burgmueller';
//bpObj.CardType = 'C';
//bpObj.GroupCode = 100; // JbpObj.group.toString();
//bpObj.Phone1 = JbpObj.phone.toString();
//bpObj.Cellular = JbpObj.mobile_phone.toString();
//bpObj.EmailAddress = JbpObj.email.toString();
bpObj.U_EON_ID_CRM = 'BP777888999';
bpObj.U_EON_ASSU = 'N';
return bpObj;
}
function upsBP(searchparam, JbpObj) {
var SESSIONID = "";
var NODEID = "";
// SL credentials
var loginInfo = {};
loginInfo.UserName = UserName;
loginInfo.Password = UserPass;
loginInfo.CompanyDB = UserComp;
// 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;
}
}
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 (JbpObj.vatid) {
var checkmyvatid = bpbl.checkvatid(JbpObj.vatid, JbpObj.addresses[0].country.toUpperCase(), UserComp)
if (checkmyvatid != "true") {
outMsg = {};
outMsg.method = "checkVATID";
outMsg.status = "error";
outMsg.message = checkmyvatid;
outStatus = "error";
outMessages.push(outMsg);
}
}
if (outStatus !== "error") {
outMsg = {};
outMsg.method = "checkExists";
//Add BP
//response = slib.createBusinessPartner(BPObject, SESSIONID,NODEID);
var responseGet = slib.getBusinessPartner(searchparam, SESSIONID, NODEID);
//var logoutresponse = slib.SLLogout(JSON.stringify(loginInfo), null, null);
//Parse response body
// Removes metadata
//delete body["odata.metadata"];
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";
outMsg.message = "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);
var CardCode = "";
var bodyGetFull = {};
if (bodyGet.value[0]) {
CardCode = 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 consBPObject = buildBPObj(JbpObj, bodyGetFull);
myDebug.BPObj = consBPObject;
if (CardCode !== "") {
output.method = "updateBP";
var responseUpdate = slib.updateBusinessPartner(CardCode, JSON.stringify(consBPObject), SESSIONID, NODEID);
outMsg = {};
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;
outErrorMessages.push(outMsg);
}
outStatus = "error";
}
outMessages.push(outMsg);
} else {
output.method = "createBP";
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";
var createJbpObj = JSON.parse(responseCreate.body.asString());
CardCode = createJbpObj.CardCode;
} else {
myDebug.Createmessage = "Create error occured";
output.errorCreatestatus = myDebug.Createmessage;
outMsg.status = "error";
outMsg.message = myDebug.responseCreate;
outStatus = "error";
outErrorMessages.push(outMsg);
}
outMessages.push(outMsg);
}
}
output.CardCode = CardCode;
//output.CardName = body.CardName;
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_CRMBP_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_BP\" 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();
myDebug.UpdateQuery = query;
pstmt.close();
conn.commit();
conn.close();
}
function setRESPONSE(tableid, respstatus, respmessage, errormessage) {
var conn = $.db.getConnection();
var pstmt;
var query = "update \"NICEPORTAL\".\"UO_CRM_DATA_BP\" set RESPONSE_STATUS = ? , RESPONSE_MESSAGE =?, ERROR_MESSAGE=? where ID =" + tableid;
pstmt = conn.prepareStatement(query);
pstmt.setString(1, respstatus.toString());
pstmt.setString(2, respmessage.toString());
pstmt.setString(3, errormessage.toString());
var rs = pstmt.executeUpdate();
myDebug.UpdateQuery = query;
pstmt.close();
conn.commit();
conn.close();
}
function PutBPDataInTable() {
var 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: [] };
var mynextval = getnextval();
myDebug.mynextval = mynextval;
try {
// 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_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 (" +
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.id_msd.toString());
pstmt.setString(2, JbpObj.id_crm.toString());
pstmt.setString(3, JbpObj.type.toString());
pstmt.setString(4, JbpObj.group.toString());
pstmt.setString(5, JbpObj.salutation.toString());
pstmt.setString(6, JbpObj.title.toString());
pstmt.setString(7, JbpObj.name.toString());
pstmt.setString(8, JbpObj.surname.toString());
pstmt.setString(9, JbpObj.phone.toString());
pstmt.setString(10, JbpObj.mobile_phone.toString());
pstmt.setString(11, JbpObj.email.toString());
pstmt.setString(12, JSON.stringify(JbpObj.addresses));
pstmt.setString(13, JbpObj.bank_account.iban.toString());
pstmt.setString(14, JbpObj.bank_account.bic.toString());
pstmt.setString(15, JbpObj.bank_account.sepa_mandate_id.toString());
pstmt.setString(16, JbpObj.bank_account.signature_date.toString());
pstmt.setString(17, JbpObj.bank_account.account_owner.toString());
pstmt.setString(18, JbpObj.bank_account.street.toString());
pstmt.setString(19, JbpObj.bank_account.street_no.toString());
pstmt.setString(20, JbpObj.bank_account.zip_code.toString());
pstmt.setString(21, JbpObj.bank_account.city.toString());
pstmt.setString(22, JSON.stringify(JbpObj));
var rs = pstmt.executeUpdate();
pstmt.close();
conn.commit();
conn.close();
outMsg = {};
outMsg.method = "insertDB";
outMsg.status = "success";
outMessages.push(outMsg);
var searchparam = {};
searchparam.key = "U_EON_ID_CRM_INTERNAL";
searchparam.value = JbpObj.id_msd.toString();
//var bpObj = buildBPObj(JbpObj);
var retUpsertBP = upsBP(searchparam, JbpObj);
//var retUpsertBP = upsBP(searchparam, JSON.stringify(bpObj),JbpObj);
//var retUpsertBP = upsertBP(searchparam, JSON.stringify(bpObj));
//var retUpsertBP = addBP(JSON.stringify(bpObj));
} catch (e) {
outMsg = {};
outMsg.method = "exceptionHandler";
outMsg.status = "error";
outMsg.message = e.toString();
if (ParDebug) {
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;
}
// 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);
setRESPONSE(mynextval, outMsg.status, errbody, outErrorMessages);
$.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) {
vals.debug = retUpsertBP;
}
//vals.mode = JSON.stringify(retUpsertBP.mode);
data.push(vals);
var okbody = JSON.stringify(data);
setRESPONSE(mynextval, outMsg.status, okbody, JSON.stringify(outErrorMessages));
//var body = JSON.stringify(test);
$.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();
}
//testmain();
// begin org
var content = $.request.body.asString();
ParDebug = $.request.parameters.get('debug') && $.request.parameters.get('debug').toLowerCase() === "true";
PutBPDataInTable();
//ende org
//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{\n \n //addBP(JSON.stringify(bpObj));\n //updBP(JSON.stringify(bpObj));\n //GetOrders(req); \n}\n*/