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
+139 -537
View File
@@ -1,7 +1,6 @@
var slib = $.import("uniorg.ServiceLayer", "B1SLLogic");
var slDest = $.import("uniorg.destinations", "uodestlib");
var bpbl = $.import("uniorg.eon.libs", "bp_businesslogic");
var copybplib = $.import("uniorg.eon.libs", "copybp");
var ParDebug = false;
var output = {};
@@ -69,10 +68,10 @@ function getCustRECACC(custpgnr) {
var rs = pstmt.executeQuery();
if (!rs.next()) {
// outMsg = {};
// outMsg.method = "getnexval from sequence error";
// outMsg.status = "error";
//outMsg.message = e.message;
// outMsg = {};
// outMsg.method = "getnexval from sequence error";
// outMsg.status = "error";
// outMsg.message = e.message;
//outMessages.push(outMsg);
} else {
return rs.getString(1);
@@ -82,54 +81,6 @@ function getCustRECACC(custpgnr) {
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) {
var mycardnamenew = [];
if (mycardname.length > 50) {
@@ -183,182 +134,6 @@ function getnextvalsepaid() {
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) {
var myseries = '';
var mygroupcode = '';
@@ -367,8 +142,8 @@ function buildBPObj(JbpObj, SBOOBJ) {
var mybpcontactname = '';
switch (JbpObj.group) {
case 'B2C':
mycardname = JbpObj.name.toString().trim() + ' ' + JbpObj.surname.toString().trim();
mybpcontactname = JbpObj.name.toString().trim() + ' ' + JbpObj.surname.toString().trim();
mycardname = JbpObj.name.toString() + ' ' + JbpObj.surname.toString();
mybpcontactname = JbpObj.name.toString() + ' ' + JbpObj.surname.toString();
myseries = series_b2c;
mygroupcode = groupcode_b2c;
mycmpprivate = cmpprivate_b2c;
@@ -376,7 +151,7 @@ function buildBPObj(JbpObj, SBOOBJ) {
case 'B2B':
//mycardname = JbpObj.name.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;
mygroupcode = groupcode_b2b;
mycmpprivate = cmpprivate_b2b;
@@ -384,14 +159,14 @@ function buildBPObj(JbpObj, SBOOBJ) {
case 'B2M':
//mycardname = JbpObj.name.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;
mygroupcode = groupcode_b2m;
mycmpprivate = cmpprivate_b2m;
break;
default:
mycardname = JbpObj.name.toString().trim() + ' ' + JbpObj.surname.toString().trim();
mybpcontactname = JbpObj.name.toString().trim() + ' ' + JbpObj.surname.toString().trim();
mycardname = JbpObj.name.toString() + ' ' + JbpObj.surname.toString();
mybpcontactname = JbpObj.name.toString() + ' ' + JbpObj.surname.toString();
myseries = series_b2c;
mygroupcode = groupcode_b2c;
mycmpprivate = cmpprivate_b2c;
@@ -407,25 +182,18 @@ function buildBPObj(JbpObj, SBOOBJ) {
bpObj.GroupCode = mygroupcode; // JbpObj.group.toString();
bpObj.Phone1 = JbpObj.phone.toString();
bpObj.Cellular = JbpObj.mobile_phone.toString();
// To Do: Language Übersetzen
bpObj.LanguageCode = getLanguageCode(JbpObj.language_code.toString());
if (JbpObj.vatid) {
bpObj.FederalTaxID = JbpObj.vatid.toString();
}
if (JbpObj.bank_account.sepa_mandate.toString() === 'Ja') {
if (JbpObj.bank_account.sepa_mandate.toString() == 'Ja') {
bpObj.PayTermsGrpCode = 13;
}
else if (JbpObj.payment_term)
{
bpObj.PayTermsGrpCode = getPaymentTerm(JbpObj.payment_term);
}
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 && !(SBOOBJ.U_UO_OUTPUT_VSARTAR && SBOOBJ.U_UO_OUTPUT_VSARTAR in ['CSV'])) {
bpObj.U_UO_OUTPUT_VSARTAR = JbpObj.shipping_type.toString();
if (JbpObj.shipping_type)
{
bpObj.U_UO_OUTPUT_VSARTAR = JbpObj.shipping_type.toString();
}
if (!JbpObj.pgnr) {
@@ -439,19 +207,15 @@ function buildBPObj(JbpObj, SBOOBJ) {
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.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;
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) {
@@ -461,24 +225,22 @@ function buildBPObj(JbpObj, SBOOBJ) {
// mybpAdresses.g = g;
// mybpAdresses.h = h;
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.AddressType = SBOOBJ.BPAddresses[g].AddressType;
mybpAdresses.BPCode = SBOOBJ.BPAddresses[g].BPCode;
mybpAdresses.RowNum = SBOOBJ.BPAddresses[g].RowNum;
if (SBOOBJ.BPAddresses[g].U_EON_EXT_ID === JbpObj.addresses[h].addressid.toString() && SBOOBJ.BPAddresses[g].AddressType ===
convertAdrType(JbpObj.addresses[
h].type)) {
if (SBOOBJ.BPAddresses[g].AddressName === myaddressbpname && SBOOBJ.BPAddresses[g].AddressType === convertAdrType(JbpObj.addresses[
h].type)) {
//mybpAdresses.AddressName = JbpObj.addresses[h].address.toString();
mybpAdresses.AddressName = myaddressbpname;
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 === 'yes') {
if (JbpObj.addresses[h].standard = 'ja') {
if (convertAdrType(JbpObj.addresses[h].type) === 'bo_BillTo') {
bpObj.BilltoDefault = myaddressbpname;
}
@@ -492,37 +254,36 @@ function buildBPObj(JbpObj, SBOOBJ) {
//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') {
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];
mybpAdresses.U_CompanyName2 = myaddress23[1];
mybpAdresses.AddressName3 = myaddress23[1];
}
if (JbpObj.addresses[h].address2) {
mybpAdresses.BuildingFloorRoom = JbpObj.addresses[h].address2.toString();
}
if (JbpObj.addresses[h].address3) {
mybpAdresses.AddressName3 = JbpObj.addresses[h].address3.toString();
}
// if (JbpObj.addresses[h].address2) {
// mybpAdresses.AddressName2 = JbpObj.addresses[h].address2.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 nicht ergänzen
//Suche ob Objekte vorhanden wenn nichzt ergänzen
for (var h in JbpObj.addresses) {
var myfound = false;
@@ -530,13 +291,12 @@ function buildBPObj(JbpObj, SBOOBJ) {
var myaddbpname = JbpObj.addresses[h].street.toString() + ' ' + JbpObj.addresses[h].street_no.toString();
for (var g in SBOOBJ.BPAddresses) {
if (SBOOBJ.BPAddresses[g].U_EON_EXT_ID === JbpObj.addresses[h].addressid.toString() && SBOOBJ.BPAddresses[g].AddressType ===
convertAdrType(JbpObj.addresses[h].type)) {
if (SBOOBJ.BPAddresses[g].AddressName === myaddbpname && SBOOBJ.BPAddresses[g].AddressType === convertAdrType(JbpObj.addresses[h].type)) {
myfound = true;
}
}
if (myfound === false) {
if (myfound == false) {
myaddbpAdresses.AddressName = myaddbpname; //JbpObj.addresses[h].address.toString();
myaddbpAdresses.Street = JbpObj.addresses[h].street.toString();
//myaddbpAdresses.Block = 'test';
@@ -548,7 +308,7 @@ function buildBPObj(JbpObj, SBOOBJ) {
//myaddbpAdresses.FederalTaxID = 'test';
//myaddbpAdresses.TaxCode = 'test';
//myaddbpAdresses.BuildingFloorRoom = 'test';
if (JbpObj.addresses[h].standard === 'yes') {
if (JbpObj.addresses[h].standard = 'ja') {
if (convertAdrType(JbpObj.addresses[h].type) === 'bo_BillTo') {
bpObj.BilltoDefault = myaddbpname;
}
@@ -558,15 +318,11 @@ function buildBPObj(JbpObj, SBOOBJ) {
}
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 = myaddress23[0];
//myaddbpAdresses.AddressName3 = myaddress23[1];
myaddbpAdresses.U_CompanyName2 = myaddress23[1];
myaddbpAdresses.AddressName3 = myaddress23[1];
}
if (JbpObj.addresses[h].address2) {
myaddbpAdresses.BuildingFloorRoom = JbpObj.addresses[h].address2.toString();
}
if (JbpObj.addresses[h].address3) {
myaddbpAdresses.AddressName3 = JbpObj.addresses[h].address3.toString();
}
@@ -603,7 +359,7 @@ function buildBPObj(JbpObj, SBOOBJ) {
// //bpObj.BPAddresses.push(myaddbpAdresses);
// }
// }
// //}
// //}
bpObj.ContactEmployees = [];
var myfoundCP = false;
@@ -613,8 +369,8 @@ function buildBPObj(JbpObj, SBOOBJ) {
mybpContactEmployees.CardCode = SBOOBJ.ContactEmployees[cpB1].CardCode;
mybpContactEmployees.InternalCode = SBOOBJ.ContactEmployees[cpB1].InternalCode;
if (SBOOBJ.ContactEmployees[cpB1].Name == mybpcontactname) {
mybpContactEmployees.FirstName = JbpObj.name.toString().trim();
mybpContactEmployees.LastName = JbpObj.surname.toString().trim();
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;
@@ -625,8 +381,8 @@ function buildBPObj(JbpObj, SBOOBJ) {
if (myfoundCP == false) {
mybpContactEmployees = {};
mybpContactEmployees.Name = mybpcontactname; //mycardname;
mybpContactEmployees.FirstName = JbpObj.name.toString().trim();
mybpContactEmployees.LastName = JbpObj.surname.toString().trim();
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;
@@ -636,106 +392,72 @@ function buildBPObj(JbpObj, SBOOBJ) {
bpObj.BPBankAccounts = [];
var myfoundBank = false;
var myIBAN = JbpObj.bank_account.iban.toString().replace(/ /g, '');
if (myIBAN !== '') {
use_iban = true;
} else {
use_iban = false;
}
if (use_iban) {
var bankDetails = parseIBAN(myIBAN);
if (bankDetails === false) {;
} else {
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);
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();
}
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.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';
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.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;
@@ -767,9 +489,7 @@ function upsBP(searchparam, JbpObj) {
loginInfo.Password = UserPass;
loginInfo.CompanyDB = UserComp;
var slError;
// SL LOGIN
// SL LOGIN
var response = slib.SLLogin(JSON.stringify(loginInfo), null, null);
// B1SESSION and ROUTEID cookies returned by Login
@@ -784,31 +504,22 @@ function upsBP(searchparam, JbpObj) {
}
output.loginInfo = loginInfo;
// output.loginResponse = JSON.parse(response.body.asString());
var loginResponse;
try {
loginResponse = JSON.parse(response.body.asString());
output.loginResponse = JSON.parse(response.body.asString());
} catch (e) {
loginResponse = response.body.asString();
output.loginResponse = response.body.asString();
}
output.loginResponse = loginResponse;
if (response.status !== 200) {
outMsg = {};
outMsg.method = "login";
outMsg.status = "error";
//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;
outMsg.message = output.loginResponse;
outMessages.push(outMsg);
outStatus = "error";
}
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") {
outMsg = {};
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") {
outMsg = {};
@@ -868,12 +543,7 @@ CBU 25.11.2022
// Removes metadata
//delete body["odata.metadata"];
var bodyGet;
try {
bodyGet = JSON.parse(responseGet.body.asString());
} catch (e) {
bodyGet = response.responseGet.asString();
}
var bodyGet = JSON.parse(responseGet.body.asString());
myDebug.statusGet = responseGet.status;
myDebug.responseGet = bodyGet;
outMsg.statuscode = responseGet.status;
@@ -885,14 +555,7 @@ CBU 25.11.2022
outMsg.message = "not exists";
} else {
outMsg.status = "error";
//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;
outMsg.message = bodyGet;
outStatus = "error";
}
outMessages.push(outMsg);
@@ -914,26 +577,12 @@ CBU 25.11.2022
outMsg.status = "success";
} else {
outMsg.status = "error";
//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;
outMsg.message = bodyGetFull;
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") {
var consBPObject = buildBPObj(JbpObj, bodyGetFull);
@@ -954,26 +603,12 @@ CBU 25.11.2022
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;
outMsg.message = myDebug.responseUpdate;
outErrorMessages.push(outMsg);
}
outStatus = "error";
}
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 {
output.method = "createBP";
@@ -992,15 +627,8 @@ CBU 25.11.2022
myDebug.Createmessage = "Create error occured";
output.errorCreatestatus = myDebug.Createmessage;
outMsg.status = "error";
//outMsg.message = myDebug.responseCreate;
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;
outErrorMessages.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() {
var conn = $.db.getConnection();
var pstmt;
@@ -1065,8 +671,7 @@ function getnextval() {
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;
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);
@@ -1082,8 +687,7 @@ function setBPCardCode(tableid, bpcardcode) {
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;
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());
@@ -1099,7 +703,7 @@ function setRESPONSE(tableid, respstatus, respmessage, errormessage) {
function PutBPDataInTable() {
var pdcontent = $.request.body.asString();
// pdcontent = pdcontent.replace(/\"([^(\")\"]+)\":/g,"$1:\");
// pdcontent = pdcontent.replace(/\"([^(\")"]+)\":/g,"$1:");
var JbpObj = JSON.parse(pdcontent);
var conn = $.db.getConnection();
var pstmt;
@@ -1161,14 +765,9 @@ function PutBPDataInTable() {
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));
//var retUpsertBP = addBP(JSON.stringify(bpObj));
} catch (e) {
// push last outMsg if missing
if (outMsg.method && outMessages.indexOf(outMsg) === -1) {
outMsg.status = "canceled";
outMessages.push(outMsg);
}
outMsg = {};
outMsg.method = "exceptionHandler";
outMsg.status = "error";
@@ -1192,7 +791,6 @@ function PutBPDataInTable() {
if (ParDebug) {
vals.debug = {};
vals.debug.statement = query;
vals.debugInfo = myDebug;
}
// vals.group = JbpObj.group.toString();
@@ -1206,9 +804,7 @@ function PutBPDataInTable() {
setRESPONSE(mynextval, outMsg.status, errbody, outErrorMessages);
$.response.contentType = 'application/json';
$.response.setBody(errbody);
//$.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;
$.response.status = $.net.http.INTERNAL_SERVER_ERROR;
return;
}
vals.status = outStatus;
@@ -1262,9 +858,15 @@ PutBPDataInTable();
/*var req = 0;
req = $.request.parameters.get('crmid');
if (!req){
output.error = "Invalid BP Request - " + req;
if (!req){
output.error = "Invalid BP Request - " + req;
$.response.status = $.net.http.OK;
$.response.contentType = "application/json";
$.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*/
}else{
//addBP(JSON.stringify(bpObj));
//updBP(JSON.stringify(bpObj));
//GetOrders(req);
}
*/