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*/