diff --git a/uniorg/eon/crm/bp/metadata/CREATE_BANK_SEARCH_TABLES.sql b/uniorg/eon/crm/bp/metadata/CREATE_BANK_SEARCH_TABLES.sql index 1d2925e..45326e2 100644 --- a/uniorg/eon/crm/bp/metadata/CREATE_BANK_SEARCH_TABLES.sql +++ b/uniorg/eon/crm/bp/metadata/CREATE_BANK_SEARCH_TABLES.sql @@ -11,7 +11,7 @@ create column table "INTEGRATION_DATA"."BANKS_SCHEMA"( "COUNTRY" VARCHAR (3) nul "LENGTH" SMALLINT null, "START" SMALLINT null, "FULLLENGHTH" SMALLINT null); - + truncate table "INTEGRATION_DATA"."BANKS_SCHEMA" ; insert into "INTEGRATION_DATA"."BANKS_SCHEMA" values('GB',6,9,22); @@ -31,68 +31,73 @@ 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('LT',5,5,20); - - + ALTER FUNCTION "INTEGRATION_DATA".EON_BP_GETBANKDETAILS (IBAN NVARCHAR(100)) RETURNS TABLE ( - IBAN NVARCHAR(100), - COUNTRY NVARCHAR(2), - BANKCODE NVARCHAR(10), - BANKNAME NVARCHAR(250), + IBAN NVARCHAR(100), + COUNTRY NVARCHAR(2), + BANKCODE NVARCHAR(10), + BANKNAME NVARCHAR(250), SWIFTNO NVARCHAR(100), ACCOUNT NVARCHAR(100) ) LANGUAGE SQLSCRIPT SQL SECURITY INVOKER -AS -BEGIN +AS + +BEGIN -- USING SQLSCRIPT_PRINT as LIB; - + DECLARE IBAN_BANKCODE VARCHAR(10) ; DECLARE IBAN_COUNTRY VARCHAR(2) ; DECLARE STARTPARAM SMALLINT = 1; DECLARE LENGTHPARAM SMALLINT = 1; - DECLARE BANKNAMEPARAM NVARCHAR(250); + DECLARE BANKNAMEPARAM NVARCHAR(250); DECLARE SWIFTNOPARAM NVARCHAR(100) = ''; - DECLARE ACCOUNT_PARAM NVARCHAR(100); - + DECLARE ACCOUNT_PARAM NVARCHAR(100); + IBAN := REPLACE(:IBAN,' ',''); IBAN_COUNTRY := SUBSTRING (:IBAN, 1, 2); - + 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; - + IBAN_BANKCODE := SUBSTRING (:IBAN, :STARTPARAM, :LENGTHPARAM); ACCOUNT_PARAM := SUBSTRING(:IBAN, :STARTPARAM + :LENGTHPARAM); - + SELECT TOP 1 "BANKNAME" into BANKNAMEPARAM DEFAULT '' - FROM "INTEGRATION_DATA"."BANKS" + FROM "INTEGRATION_DATA"."BANKS" WHERE COUNTRYCODE = :IBAN_COUNTRY AND BANKCODE = :IBAN_BANKCODE ORDER BY SWIFTNO DESC ; - - + + SELECT TOP 1 "SWIFTNO" into SWIFTNOPARAM DEFAULT '' - FROM "INTEGRATION_DATA"."BANKS" + FROM "INTEGRATION_DATA"."BANKS" WHERE COUNTRYCODE = :IBAN_COUNTRY AND BANKCODE = :IBAN_BANKCODE ORDER BY SWIFTNO DESC ; - - - RETURN - SELECT :IBAN as IBAN, :IBAN_COUNTRY as COUNTRY, :IBAN_BANKCODE AS BANKCODE, LEFT(:BANKNAMEPARAM, 250) as BANKNAME, :SWIFTNOPARAM as SWIFTNO, - :ACCOUNT_PARAM as ACCOUNT - FROM DUMMY; - - - + + + RETURN + SELECT :IBAN as IBAN, + :IBAN_COUNTRY as COUNTRY, + :IBAN_BANKCODE AS BANKCODE, + LEFT(:BANKNAMEPARAM, 250) as BANKNAME, + :SWIFTNOPARAM as SWIFTNO, + :ACCOUNT_PARAM as ACCOUNT + FROM DUMMY; + + + END; + /* --SELECT * FROM "INTEGRATION_DATA".EON_BP_GETBANKDETAILS('GB19 REVO 00997000245823'); @@ -102,23 +107,23 @@ 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 -Osterreich ATpp bbbb bkkk kkkk kkkk +DEpp bbbb bbbb kkkk kkkk kk +Österreich ATpp bbbb bkkk kkkk kkkk Schweiz CHpp bbbb bkkk kkkk kkkk k -Danemark DKpp bbbb kkkk kkkk kK +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 +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 +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 Konigreich (GB) GBpp bbbb ssss sskk kkkk kk +Vereinigtes Königreich (GB) GBpp bbbb ssss sskk kkkk kk */ diff --git a/uniorg/eon/crm/bp/metadata/CREATE_UO_CRM_DATA_BP.sql b/uniorg/eon/crm/bp/metadata/CREATE_UO_CRM_DATA_BP.sql index cb0d5f6..69344b1 100644 --- a/uniorg/eon/crm/bp/metadata/CREATE_UO_CRM_DATA_BP.sql +++ b/uniorg/eon/crm/bp/metadata/CREATE_UO_CRM_DATA_BP.sql @@ -35,4 +35,4 @@ CREATE COLUMN TABLE "NICEPORTAL"."UO_CRM_DATA_BP" ("ID" BIGINT CS_FIXED NOT NULL "CREATE_TS" LONGDATE CS_LONGDATE DEFAULT CURRENT_TIMESTAMP NOT NULL , "UPDATE_TS" LONGDATE CS_LONGDATE NOT NULL , "ERROR_MESSAGE" VARCHAR(500), - PRIMARY KEY ("ID")) UNLOAD PRIORITY 5 AUTO MERGE; + PRIMARY KEY ("ID")) UNLOAD PRIORITY 5 AUTO MERGE; diff --git a/uniorg/eon/crm/bp/v1/duplicate-bp.xsjs b/uniorg/eon/crm/bp/v1/duplicate-bp.xsjs index f311dca..2f1365f 100644 --- a/uniorg/eon/crm/bp/v1/duplicate-bp.xsjs +++ b/uniorg/eon/crm/bp/v1/duplicate-bp.xsjs @@ -1,11 +1,11 @@ -var slib = $.import("uniorg.ServiceLayer", "B1SLLogic"); +var slib = $.import("uniorg.ServiceLayer", "B1SLLogic"); var slfwlib = $.import("uniorg.ServiceLayer", "B1SLFramework"); var datetimelib = $.import("uniorg.libs", "datetime"); var logginglib = $.import("uniorg.libs", "uologging"); var slDest = $.import("uniorg.destinations", "uodestlib"); var bpmaplib = $.import("uniorg.eon.libs", "bpmapping"); var copybplib = $.import("uniorg.eon.libs", "copybp"); - + var ParDebug = false; var mCardCode = ""; var output = {}; @@ -169,3 +169,4 @@ mCardCode = $.request.parameters.get('cardcode'); copyBPlib(); //PutBPDataInTable(); //ende org + diff --git a/uniorg/eon/crm/bp/v1/post-bp.xsjs b/uniorg/eon/crm/bp/v1/post-bp.xsjs index 0a3835f..72d053a 100644 --- a/uniorg/eon/crm/bp/v1/post-bp.xsjs +++ b/uniorg/eon/crm/bp/v1/post-bp.xsjs @@ -5,10 +5,10 @@ // 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-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 +// 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) @@ -17,7 +17,7 @@ // 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 +// 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 // 03.06.2025 BUS-12296 New Endpoint URLs for CRM interfaces // 21.07.2025 Signature Date Pflichtangabe bei SEPA Mandat @@ -121,9 +121,9 @@ function getCustRECACC(custpgnr) { var rs = pstmt.executeQuery(); if (!rs.next()) { - // outMsg = {}; - // outMsg.method = "getnexval from sequence error"; - // outMsg.status = "error"; + // outMsg = {}; + // outMsg.method = "getnexval from sequence error"; + // outMsg.status = "error"; // outMsg.message = e.message; //outMessages.push(outMsg); } else { @@ -147,9 +147,9 @@ function getLanguageCode(ISOCODE) { var rs = pstmt.executeQuery(); if (!rs.next()) { - // outMsg = {}; - // outMsg.method = "getnexval from sequence error"; - // outMsg.status = "error"; + // outMsg = {}; + // outMsg.method = "getnexval from sequence error"; + // outMsg.status = "error"; // outMsg.message = e.message; //outMessages.push(outMsg); } else { @@ -471,7 +471,7 @@ function buildBPObj(JbpObj, SBOOBJ) { { 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(); @@ -499,7 +499,7 @@ function buildBPObj(JbpObj, SBOOBJ) { 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; @@ -558,14 +558,14 @@ function buildBPObj(JbpObj, SBOOBJ) { //mybpAdresses.AddressName3 = myaddress23[1]; mybpAdresses.U_CompanyName2 = mybpaddress23[1]; } - if (JbpObj.addresses[h].address2) { - mybpAdresses.BuildingFloorRoom = JbpObj.addresses[h].address2.toString(); - } + 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.AddressName2 = JbpObj.addresses[h].address2.toString(); // } //mybpAdresses.TypeOfAddress = 'test'; @@ -665,7 +665,7 @@ function buildBPObj(JbpObj, SBOOBJ) { // //bpObj.BPAddresses.push(myaddbpAdresses); // } // } - // //} + // //} bpObj.ContactEmployees = []; var myfoundCP = false; @@ -731,14 +731,14 @@ function buildBPObj(JbpObj, SBOOBJ) { if (JbpObj.bank_account.bic.toString() !== '') { myBPBankAccounts.BICSwiftCode = JbpObj.bank_account.bic.toString(); } - else if (mySwiftNo.toString() !== '') + else if (mySwiftNo.toString() !== '') { myBPBankAccounts.BICSwiftCode = mySwiftNo.toString(); } - - myBPBankAccounts.Country = myCountry; - myBPBankAccounts.BankCode = myBankCode; - myBPBankAccounts.AccountNo = myAccountNo; + + 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(); @@ -757,8 +757,8 @@ function buildBPObj(JbpObj, SBOOBJ) { } //22.07.2024 BUS-7580 if (JbpObj.bank_account.sepa_mandate.toString() == 'Nein') { - bpObj.CollectionAuthorization = 'tNO'; - } + bpObj.CollectionAuthorization = 'tNO'; + } } bpObj.BankCountry = myCountry; bpObj.DefaultBankCode = myBankCode; @@ -786,8 +786,8 @@ function buildBPObj(JbpObj, SBOOBJ) { if (!mySignatureDate) { throw new Error("SEPA mandate without signature date is not allowed."); } - // 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 = 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'; @@ -837,7 +837,7 @@ function upsBP(searchparam, JbpObj) { var slError; - // SL LOGIN + // SL LOGIN var response = slib.SLLogin(JSON.stringify(loginInfo), null, null); // B1SESSION and ROUTEID cookies returned by Login @@ -1032,6 +1032,7 @@ CBU 25.11.2022 outMsg.response = myDebug.responseUpdate; outErrorMessages.push(outMsg); } + outStatus = "error"; } outMessages.push(outMsg); if (outStatus !== "error" && checkSupplierExist(CardCode)) { @@ -1143,7 +1144,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; @@ -1205,7 +1206,7 @@ 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 @@ -1306,15 +1307,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{ - + //addBP(JSON.stringify(bpObj)); //updBP(JSON.stringify(bpObj)); - //GetOrders(req); + //GetOrders(req); } */ \ No newline at end of file