Correct export of Delivery Unit EON_XSJSFRAMEWORK (36 files, replaces incomplete initial export)
This commit is contained in:
@@ -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,69 +31,99 @@ insert into "INTEGRATION_DATA"."BANKS_SCHEMA" values('SE',4,5,24);
|
||||
insert into "INTEGRATION_DATA"."BANKS_SCHEMA" values('PL',8,5,28);
|
||||
|
||||
insert into "INTEGRATION_DATA"."BANKS_SCHEMA" values('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');
|
||||
|
||||
-- select * FROM "A19753_EON_P01".ODSC WHERE "CountryCod" = 'AT'-- "BankCode" = '60000';
|
||||
|
||||
SELECT * FROM "INTEGRATION_DATA".EON_BP_GETBANKDETAILS('AT026000000001349870');
|
||||
|
||||
https://de.wikipedia.org/wiki/Internationale_Bankkontonummer#IBAN-Struktur_in_verschiedenen_L%C3%A4ndern
|
||||
|
||||
DEpp bbbb bbbb kkkk kkkk kk
|
||||
Österreich ATpp bbbb bkkk kkkk kkkk
|
||||
Schweiz CHpp bbbb bkkk kkkk kkkk k
|
||||
Dänemark DKpp bbbb kkkk kkkk kK
|
||||
Niederlande NLpp bbbb kkkk kkkk kk
|
||||
Belgien BEpp bbbk kkkk kkKK
|
||||
Italien ITpp Kbbb bbss sssk kkkk kkkk kkk
|
||||
Luxemburg LUpp bbbk kkkk kkkk kkkk
|
||||
Tschechien CZpp bbbb kkkk kkkk kkkk kkkk
|
||||
Polen PLpp bbbs sssK kkkk kkkk kkkk kkkk
|
||||
Schweden SEpp bbbk kkkk kkkk kkkk kkkK
|
||||
Frankreich FRpp bbbb bsss sskk kkkk kkkk kKK
|
||||
|
||||
LT Litauen 20 LTpp bbbb bkkk kkkk kkkk
|
||||
|
||||
|
||||
Vereinigtes Königreich (GB) GBpp bbbb ssss sskk kkkk kk
|
||||
|
||||
|
||||
*/
|
||||
|
||||
@@ -6,4 +6,4 @@ CREATE COLUMN TABLE "INTEGRATION_DATA"."UO_DOCUMENTS_RAWCALL" ("ID" BIGINT CS_FI
|
||||
"B1_OBJ" NCLOB MEMORY THRESHOLD 1000,
|
||||
"CREATE_TS" LONGDATE CS_LONGDATE DEFAULT CURRENT_TIMESTAMP NOT NULL ,
|
||||
"UPDATE_TS" LONGDATE CS_LONGDATE NOT NULL ,
|
||||
PRIMARY KEY ("ID")) UNLOAD PRIORITY 5 AUTO MERGE
|
||||
PRIMARY KEY ("ID")) UNLOAD PRIORITY 5 AUTO MERGE
|
||||
@@ -7,10 +7,10 @@ CREATE COLUMN TABLE "NICEPORTAL"."UO_CRM_DATA_CONTRACTS" ("ID" BIGINT CS_FIXED N
|
||||
"B1_CODE" VARCHAR(50),
|
||||
"CREATE_TS" LONGDATE CS_LONGDATE DEFAULT CURRENT_TIMESTAMP NOT NULL ,
|
||||
"UPDATE_TS" LONGDATE CS_LONGDATE NOT NULL ,
|
||||
PRIMARY KEY ("ID")) UNLOAD PRIORITY 5 AUTO MERGE;
|
||||
|
||||
|
||||
|
||||
PRIMARY KEY ("ID")) UNLOAD PRIORITY 5 AUTO MERGE;
|
||||
|
||||
|
||||
|
||||
CREATE SEQUENCE "NICEPORTAL"."SEQ_CONTRACT_ID";
|
||||
CREATE SEQUENCE "NICEPORTAL"."SEQ_CRMBP_ID";
|
||||
CREATE SEQUENCE "NICEPORTAL"."SEQ_MAND_ID";
|
||||
@@ -68,4 +68,4 @@ CREATE COLUMN TABLE "NICEPORTAL"."CHARGEDATA" ("ID" BIGINT CS_FIXED NOT NULL ,
|
||||
"JSONRAW" NCLOB MEMORY THRESHOLD 1000,
|
||||
"CREATE_TS" LONGDATE CS_LONGDATE DEFAULT CURRENT_TIMESTAMP NOT NULL ,
|
||||
"UPDATE_TS" LONGDATE CS_LONGDATE NOT NULL ,
|
||||
PRIMARY KEY ("ID")) UNLOAD PRIORITY 5 AUTO MERGE
|
||||
PRIMARY KEY ("ID")) UNLOAD PRIORITY 5 AUTO MERGE
|
||||
@@ -0,0 +1,159 @@
|
||||
//HTTP CALL
|
||||
function doHTTPCall(oCdrCallId) {
|
||||
|
||||
//http://172.17.12.201:8080/B1iXcellerator/exec/ipo/vP.0010000104.in_HCSX/com.sap.b1i.vplatform.runtime/INB_HT_CALL_SYNC_XPT/INB_HT_CALL_SYNC_XPT.ipo/proc?biu=uni.eon.emob.addcdr&SysId=0010000100&CdrCallId=4aa9b243be184a4abdb4179f375459be
|
||||
|
||||
var destn_pkg = "eon.ServiceLayer";
|
||||
var dest_name = "B1I";
|
||||
|
||||
try
|
||||
|
||||
{
|
||||
|
||||
var dest = $.net.http.readDestination(destn_pkg, dest_name);
|
||||
var client = new $.net.http.Client();
|
||||
var req = new $.web.WebRequest($.net.http.GET, "");
|
||||
var oSysId = "0010000100";
|
||||
// oCdrCallId = "4aa9b243be184a4abdb4179f375459be";
|
||||
req.parameters.set("biu", "uni.eon.emob.addcdr");
|
||||
req.parameters.set("msglog", "true");
|
||||
req.parameters.set("SysId", oSysId);
|
||||
req.parameters.set("CdrCallId", oCdrCallId);
|
||||
|
||||
//, "/httpdest.png");
|
||||
|
||||
client.request(req, dest);
|
||||
|
||||
var response = client.getResponse();
|
||||
|
||||
var b1iResp = response.body.asString()
|
||||
|
||||
$.response.status = $.net.http.OK;
|
||||
|
||||
$.response.contentType = "text/xml";
|
||||
|
||||
$.response.setBody(b1iResp);
|
||||
|
||||
} catch (e) {
|
||||
|
||||
$.response.contentType = "text/plain";
|
||||
|
||||
$.response.setBody(e.message);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function PutDataInTable() {
|
||||
var pdcontent = $.request.body.asString();
|
||||
// pdcontent = pdcontent.replace(/\"([^(\")"]+)\":/g,"$1:");
|
||||
var pdcdrObj = JSON.parse(pdcontent);
|
||||
var conn = $.db.getConnection();
|
||||
var pstmt;
|
||||
var rs;
|
||||
var test;
|
||||
var query;
|
||||
var vals = {};
|
||||
var data = [];
|
||||
// var query2;
|
||||
// var output = {results: [] };
|
||||
try {
|
||||
|
||||
query =
|
||||
"INSERT INTO \"NICEPORTAL\".\"CHARGEDATA\" (ID,CALLID,CDRID,EVSEID,CONTRACTID,INSTANCE,TOKENTYPE,CONSUMEDENERGY,OPERATORID,OPERATORNAME,CHARGEPOINTTYPE,MAXSOCKETPOWER,ADDRESS,ZIP,CITY,COUNTRY,PROVIDERID,PROVIDERNAME,CHARGINGSTARTTIME,CHARGINGSTOPTIME,PARKINGSTARTTIME,PARKINGSTOPTIME,METERSTART,METERSTOP,TARIFF,CURRENCY,VAT,BILLINGVALUEBRUTTO,BILLINGVALUENETTO,PARKINGTIMEPRICEBRUTTO,PARKINGTIMEPRICENETTO,ADITIONALPRICEBRUTTO,ADITIONALPRICENETTO,B2CPRICING,ASSETOWNERPRICING,CPOPRICING,JSONRAW,OPERATORSUBMANDANT,FREECHARGE,CREATE_TS,UPDATE_TS) values (\"NICEPORTAL\".\"SEQ_TRANSACTIONDATA_ID\".NEXTVAL,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,CURRENT_TIMESTAMP,CURRENT_TIMESTAMP)";
|
||||
//query = "INSERT INTO \"NICEPORTAL\".\"CHARGEDATA\" (ID,CALLID,CDRID,CREATE_TS,UPDATE_TS) values (\"NICEPORTAL\".\"SEQ_TRANSACTIONDATA_ID\".NEXTVAL,?,?,CURRENT_TIMESTAMP,CURRENT_TIMESTAMP)";
|
||||
|
||||
pstmt = conn.prepareStatement(query);
|
||||
pstmt.setString(1, pdcdrObj.callId.toString());
|
||||
pstmt.setString(2, pdcdrObj.chargeData[0].cdrId.toString());
|
||||
pstmt.setString(3, pdcdrObj.chargeData[0].evseID.toString());
|
||||
pstmt.setString(4, pdcdrObj.chargeData[0].contractId.toString());
|
||||
pstmt.setString(5, pdcdrObj.chargeData[0].emt.instance.toString());
|
||||
pstmt.setString(6, pdcdrObj.chargeData[0].emt.tokenType.toString());
|
||||
pstmt.setString(7, pdcdrObj.chargeData[0].consumedEnergy.toString());
|
||||
pstmt.setString(8, pdcdrObj.chargeData[0].evseDetails.operatorId.toString());
|
||||
pstmt.setString(9, pdcdrObj.chargeData[0].evseDetails.operatorName.toString());
|
||||
pstmt.setString(10, pdcdrObj.chargeData[0].evseDetails.connectorType.chargePointType.toString());
|
||||
pstmt.setString(11, pdcdrObj.chargeData[0].evseDetails.connectorType.maxSocketPower.toString());
|
||||
pstmt.setString(12, pdcdrObj.chargeData[0].evseDetails.location.address.toString());
|
||||
pstmt.setString(13, pdcdrObj.chargeData[0].evseDetails.location.zip.toString());
|
||||
pstmt.setString(14, pdcdrObj.chargeData[0].evseDetails.location.city.toString());
|
||||
pstmt.setString(15, pdcdrObj.chargeData[0].evseDetails.location.country.toString());
|
||||
pstmt.setString(16, pdcdrObj.chargeData[0].contractDetails.providerID.toString());
|
||||
pstmt.setString(17, pdcdrObj.chargeData[0].contractDetails.providerName.toString());
|
||||
pstmt.setString(18, pdcdrObj.chargeData[0].sessionDetails.chargingSession.startTime.toString());
|
||||
pstmt.setString(19, pdcdrObj.chargeData[0].sessionDetails.chargingSession.stopTime.toString());
|
||||
pstmt.setString(20, pdcdrObj.chargeData[0].sessionDetails.parkingSession.startTime.toString());
|
||||
pstmt.setString(21, pdcdrObj.chargeData[0].sessionDetails.parkingSession.stopTime.toString());
|
||||
pstmt.setString(22, pdcdrObj.chargeData[0].meterValueDetails.meterStart.toString());
|
||||
pstmt.setString(23, pdcdrObj.chargeData[0].meterValueDetails.meterStop.toString());
|
||||
//test = JSON.stringify(pdcdrObj.callId.toString());
|
||||
pstmt.setString(24, pdcdrObj.chargeData[0].b2cPricing.tariff.toString());
|
||||
pstmt.setString(25, pdcdrObj.chargeData[0].b2cPricing.currency.toString());
|
||||
pstmt.setString(26, pdcdrObj.chargeData[0].b2cPricing.vat.toString());
|
||||
pstmt.setString(27, pdcdrObj.chargeData[0].b2cPricing.billingValueBrutto.toString());
|
||||
pstmt.setString(28, pdcdrObj.chargeData[0].b2cPricing.billingValueNetto.toString());
|
||||
pstmt.setString(29, pdcdrObj.chargeData[0].b2cPricing.billingItems[0].itemPriceBrutto.toString());
|
||||
pstmt.setString(30, pdcdrObj.chargeData[0].b2cPricing.billingItems[0].itemPriceNetto.toString());
|
||||
pstmt.setString(31, pdcdrObj.chargeData[0].b2cPricing.billingItems[1].itemPriceBrutto.toString());
|
||||
pstmt.setString(32, pdcdrObj.chargeData[0].b2cPricing.billingItems[1].itemPriceNetto.toString());
|
||||
pstmt.setString(33, JSON.stringify(pdcdrObj.chargeData[0].b2cPricing));
|
||||
pstmt.setString(34, JSON.stringify(pdcdrObj.chargeData[0].assetOwnerPricing));
|
||||
pstmt.setString(35, JSON.stringify(pdcdrObj.chargeData[0].cpoPricing));
|
||||
pstmt.setString(36, JSON.stringify(pdcdrObj));
|
||||
pstmt.setString(37, pdcdrObj.chargeData[0].operatorSubmandant.toString());
|
||||
pstmt.setString(38, pdcdrObj.chargeData[0].freeCharge.toString());
|
||||
|
||||
// pstmt.setString(7, JSON.stringify(pdcdrObj.chargeData[0].cdrId));
|
||||
// pstmt.setString(8, JSON.stringify(pdcdrObj.chargeData[0].cdrId));
|
||||
|
||||
// pstmt.setString(3, JSON.stringify(pdcdrObj.evseID));
|
||||
|
||||
rs = pstmt.executeUpdate();
|
||||
pstmt.close();
|
||||
conn.commit();
|
||||
conn.close();
|
||||
//disabled 31.01.2018 für C.Schmidt
|
||||
// doHTTPCall (pdcdrObj.callId.toString());
|
||||
// while (rs.next()) {
|
||||
// var record = {};
|
||||
// record.productId = rs.getString(1);
|
||||
// record.productName = rs.getString(2);
|
||||
// record.supplierCountry = rs.getString(3);
|
||||
// output.results.push(record);
|
||||
// }
|
||||
// rs.close();
|
||||
// pstmt.close();
|
||||
// conn.close();
|
||||
} catch (e) {
|
||||
vals.status = 'error';
|
||||
vals.description = e.message;
|
||||
data.push(vals);
|
||||
var errbody = JSON.stringify(data);
|
||||
|
||||
$.response.contentType = 'application/json';
|
||||
$.response.setBody(errbody);
|
||||
$.response.status = $.net.http.INTERNAL_SERVER_ERROR;
|
||||
return;
|
||||
}
|
||||
vals.status = 'success'
|
||||
vals.description = 'Data accepted and proceeded'
|
||||
data.push(vals);
|
||||
var okbody = JSON.stringify(data);
|
||||
//var body = JSON.stringify(test);
|
||||
$.response.contentType = 'application/json';
|
||||
$.response.setBody(okbody);
|
||||
$.response.status = $.net.http.OK;
|
||||
}
|
||||
|
||||
var content = $.request.body.asString();
|
||||
//var cdrObj = JSON.parse(content);
|
||||
//var ChargeDataObj = cdrObj.chargeData[0].cdrId;
|
||||
// doHTTPCall("4aa9b243be184a4abdb4179f375459be");
|
||||
PutDataInTable();
|
||||
|
||||
// var result = JSON.stringify(cdrObj.callId);
|
||||
// var result = JSON.stringify(ChargeDataObj);
|
||||
// $.response.contentType = 'application/json';
|
||||
// $.response.setBody(result);
|
||||
// $.response.status = $.net.http.OK;
|
||||
+566
-127
@@ -1,6 +1,29 @@
|
||||
//Letzte Änderung 08.12.2020 (v6.3) Achtung nun Adressmapping über CRM ID
|
||||
//Letzte Änderung 11.01.2021 v6.4 Implementier duplicatebp für BFV Verträge
|
||||
// 07.02.2022 Anpassung IT IBAN
|
||||
// 16.02.2022 IBAN Update nur noch wenn IBAN in Payload vorhanden
|
||||
// 01.06.2022 Language Code Implementierung
|
||||
// 19.09.2022 Adress2 Mapping
|
||||
// 18.10.2022 Versandart wird Pflichtfeld in der GP SST (CBU)
|
||||
// https://jira.eon.com/browse/EMPEPI1-124
|
||||
// 18.11.2022 8.2 CBU Banken aus IBAN ableiten
|
||||
// https://jira.eon.com/browse/EMPEPI1-130
|
||||
// 24.01.2023 CBU: Existenz einer E-Mail-Adresse bei Versandart M prüfen
|
||||
// https://jira.eon.com/browse/EMPEPI1-130
|
||||
// 29.06.2023 https://jira.eon.com/browse/EMPEPI1-281 Prüfung ob Lieferant exisitiert und Update BP -L
|
||||
// 03.11.2023 Bugfix copybp -L (TS)
|
||||
// 09.11.2023 fix B2B Adress BuildingFloorRoom
|
||||
// 25.01.2024 CSV Versandart soll nicht überschrieben werden
|
||||
// 23.07.2024 BUS-7580 Anpassung Einzugsermächtigung auch auf tNO
|
||||
// 13.11.2024 BUS-9352 Anpassung Zahlungsbedingung
|
||||
// 28.11.2024 Beim GP muss der Firmenname > 50 Zeichen angepasst werden, das alles >50Zeichen künfitg in Firmenname 2 statt Adresszeile 3
|
||||
// 14.03.2025 BUS-11342 SwiftNo/BIC im Update BankAccounts ergänzt
|
||||
// 23.05.2025 BUS-12158 Erweiterung der Geschäftspartner-API um Parameter f. Buyer/Seller/Leitweg-ID
|
||||
|
||||
var slib = $.import("uniorg.ServiceLayer", "B1SLLogic");
|
||||
var 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 = {};
|
||||
@@ -21,7 +44,8 @@ var groupcode_b2m = 103;
|
||||
var cmpprivate_b2c = "cPrivate";
|
||||
var cmpprivate_b2b = "cCompany";
|
||||
var cmpprivate_b2m = "cCompany";
|
||||
var service_version = '6.2';
|
||||
var use_iban = false;
|
||||
var service_version = '9.7';
|
||||
|
||||
function setOutputMessage() {
|
||||
|
||||
@@ -55,23 +79,46 @@ function convertToISODate(dateString) {
|
||||
}
|
||||
}
|
||||
|
||||
function checkSupplierExist(cardcode) {
|
||||
|
||||
var suppcardcode = cardcode + '-L';
|
||||
var conn = $.db.getConnection();
|
||||
var pstmt;
|
||||
var exists = false;
|
||||
//var query = "SELECT T0.\"U_EON_RECACC_REC\" FROM \"A19753_P01_TEST03\".\"@EON_PGN\" T0 WHERE T0.\"Code\" = ?";
|
||||
//vendeor var query = "SELECT T0.\"U_EON_RECACC_REC\" FROM \"XXREPXX\".\"@EON_PGN\" T0 WHERE T0.\"Code\" = ?";
|
||||
var query = "SELECT T0.\"CardCode\" FROM \"XXREPXX\".\"OCRD\" T0 WHERE T0.\"CardCode\" = ?";
|
||||
query = query.replace(/XXREPXX/g, UserComp);
|
||||
pstmt = conn.prepareStatement(query);
|
||||
|
||||
pstmt.setString(1, suppcardcode);
|
||||
|
||||
var rs = pstmt.executeQuery();
|
||||
exists = rs.next();
|
||||
|
||||
rs.close();
|
||||
pstmt.close();
|
||||
conn.close();
|
||||
return exists;
|
||||
}
|
||||
|
||||
function getCustRECACC(custpgnr) {
|
||||
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)
|
||||
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;
|
||||
// outMsg = {};
|
||||
// outMsg.method = "getnexval from sequence error";
|
||||
// outMsg.status = "error";
|
||||
// outMsg.message = e.message;
|
||||
//outMessages.push(outMsg);
|
||||
} else {
|
||||
return rs.getString(1);
|
||||
@@ -81,6 +128,54 @@ 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) {
|
||||
@@ -134,6 +229,182 @@ 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),
|
||||
Branch: iban.substring(10, 15),
|
||||
AccountNo: iban.substring(15, 27)
|
||||
};
|
||||
default:
|
||||
throw new Error(myCountry + " IBAN currently not supported.")
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
function checkShippingType(_shippingType, _schema) {
|
||||
|
||||
var conn = $.hdb.getConnection();
|
||||
try {
|
||||
conn.executeUpdate("SET SCHEMA \"" + _schema + "\"");
|
||||
// TODO: Umstellen auf "@UO_SPOOL_TYPES"
|
||||
var rs = conn.executeQuery('SELECT "Code" FROM "@UO_OUTPUT_RULES" WHERE "Code"=? ', _shippingType);
|
||||
|
||||
myDebug.checkShippingType = rs;
|
||||
|
||||
return rs.length > 0;
|
||||
|
||||
} catch (error) {
|
||||
outMsg = {};
|
||||
outMsg.method = "checkShippingType";
|
||||
outMsg.status = "error";
|
||||
outMsg.message = error.message;
|
||||
outMessages.push(outMsg);
|
||||
return false;
|
||||
} finally {
|
||||
conn.close();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function checkShippingTypeMail(_email) {
|
||||
if (_email !== undefined) {
|
||||
|
||||
if (_email.length === 0) {
|
||||
outMsg = {};
|
||||
outMsg.method = "checkShippingTypeMail";
|
||||
outMsg.status = "error";
|
||||
outMsg.message = "E-mail address is missing but shipping type is Mail.";
|
||||
outMessages.push(outMsg);
|
||||
|
||||
outStatus = "error";
|
||||
|
||||
}
|
||||
} else {
|
||||
outMsg = {};
|
||||
outMsg.method = "checkShippingTypeMail";
|
||||
outMsg.status = "error";
|
||||
outMsg.message = "E-mail address is missing but shipping type is Mail.";
|
||||
outMessages.push(outMsg);
|
||||
outStatus = "error";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function createBankIfMissing(iban, SESSIONID, NODEID) {
|
||||
outMsg = {};
|
||||
outMsg.method = "checkBank";
|
||||
outMsg.status = "error";
|
||||
if (iban) {
|
||||
var bankDetails = parseIBAN(iban);
|
||||
|
||||
if (bankDetails === false) {
|
||||
return;
|
||||
}
|
||||
var conn = $.hdb.getConnection();
|
||||
conn.executeUpdate("SET SCHEMA \"" + UserComp + "\"");
|
||||
var rs = conn.executeQuery('SELECT "AbsEntry" FROM ODSC WHERE "BankCode"=? AND "CountryCod"=?', bankDetails.BankCode, bankDetails.BankCountry);
|
||||
myDebug.queryBankResult = rs;
|
||||
if (rs.length === 0) {
|
||||
outMsg.status = "success";
|
||||
outMsg.message = "not exists";
|
||||
outMessages.push(outMsg);
|
||||
|
||||
outMsg = {};
|
||||
outMsg.method = "createBank";
|
||||
var bankObj = {
|
||||
"BankCode": bankDetails.BankCode,
|
||||
"CountryCode": bankDetails.BankCountry,
|
||||
"BankName": bankDetails.BankName,
|
||||
"SwiftNo": bankDetails.SwiftNo
|
||||
};
|
||||
myDebug.createBankObj = bankObj;
|
||||
var responseCreate = slib.postDynamicEntity("Banks", JSON.stringify(bankObj), SESSIONID, NODEID);
|
||||
outMsg.statuscode = responseCreate.status;
|
||||
myDebug.responseBankCreate = JSON.parse(responseCreate.body.asString());
|
||||
if (responseCreate.status >= 200 && responseCreate.status < 300) {
|
||||
outMsg.status = "success";
|
||||
outMessages.push(outMsg);
|
||||
} else {
|
||||
outMsg.status = "error";
|
||||
//outMsg.message = myDebug.responseBankCreate;
|
||||
outStatus = "error";
|
||||
var slError = myDebug.responseBankCreate.error;
|
||||
if (slError && slError.hasOwnProperty("code") && slError.message && slError.message.value) {
|
||||
outMsg.message = slError.message.value + " (Code: " + slError.code.toString() + ")";
|
||||
} else {
|
||||
outMsg.message = JSON.stringify(myDebug.responseBankCreate);
|
||||
}
|
||||
outMsg.response = myDebug.responseBankCreate;
|
||||
outErrorMessages.push(outMsg);
|
||||
}
|
||||
} else {
|
||||
outMsg.status = "success";
|
||||
outMsg.message = "exists";
|
||||
outMessages.push(outMsg);
|
||||
|
||||
}
|
||||
conn.close();
|
||||
} else {
|
||||
outMsg.status = "error";
|
||||
outStatus = "error";
|
||||
outMsg.message = "IBAN is missing";
|
||||
outMessages.push(outMsg);
|
||||
}
|
||||
}
|
||||
|
||||
function buildBPObj(JbpObj, SBOOBJ) {
|
||||
var myseries = '';
|
||||
var mygroupcode = '';
|
||||
@@ -142,8 +413,8 @@ function buildBPObj(JbpObj, SBOOBJ) {
|
||||
var mybpcontactname = '';
|
||||
switch (JbpObj.group) {
|
||||
case 'B2C':
|
||||
mycardname = JbpObj.name.toString() + ' ' + JbpObj.surname.toString();
|
||||
mybpcontactname = JbpObj.name.toString() + ' ' + JbpObj.surname.toString();
|
||||
mycardname = JbpObj.name.toString().trim() + ' ' + JbpObj.surname.toString().trim();
|
||||
mybpcontactname = JbpObj.name.toString().trim() + ' ' + JbpObj.surname.toString().trim();
|
||||
myseries = series_b2c;
|
||||
mygroupcode = groupcode_b2c;
|
||||
mycmpprivate = cmpprivate_b2c;
|
||||
@@ -151,7 +422,7 @@ function buildBPObj(JbpObj, SBOOBJ) {
|
||||
case 'B2B':
|
||||
//mycardname = JbpObj.name.toString();
|
||||
mycardname = JbpObj.addresses[0].address.toString();
|
||||
mybpcontactname = JbpObj.name.toString() + ' ' + JbpObj.surname.toString();
|
||||
mybpcontactname = JbpObj.name.toString().trim() + ' ' + JbpObj.surname.toString().trim();
|
||||
myseries = series_b2b;
|
||||
mygroupcode = groupcode_b2b;
|
||||
mycmpprivate = cmpprivate_b2b;
|
||||
@@ -159,14 +430,14 @@ function buildBPObj(JbpObj, SBOOBJ) {
|
||||
case 'B2M':
|
||||
//mycardname = JbpObj.name.toString();
|
||||
mycardname = JbpObj.addresses[0].address.toString();
|
||||
mybpcontactname = JbpObj.name.toString() + ' ' + JbpObj.surname.toString();
|
||||
mybpcontactname = JbpObj.name.toString().trim() + ' ' + JbpObj.surname.toString().trim();
|
||||
myseries = series_b2m;
|
||||
mygroupcode = groupcode_b2m;
|
||||
mycmpprivate = cmpprivate_b2m;
|
||||
break;
|
||||
default:
|
||||
mycardname = JbpObj.name.toString() + ' ' + JbpObj.surname.toString();
|
||||
mybpcontactname = JbpObj.name.toString() + ' ' + JbpObj.surname.toString();
|
||||
mycardname = JbpObj.name.toString().trim() + ' ' + JbpObj.surname.toString().trim();
|
||||
mybpcontactname = JbpObj.name.toString().trim() + ' ' + JbpObj.surname.toString().trim();
|
||||
myseries = series_b2c;
|
||||
mygroupcode = groupcode_b2c;
|
||||
mycmpprivate = cmpprivate_b2c;
|
||||
@@ -182,18 +453,25 @@ 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)
|
||||
{
|
||||
bpObj.U_UO_OUTPUT_VSARTAR = JbpObj.shipping_type.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.pgnr) {
|
||||
@@ -208,14 +486,17 @@ function buildBPObj(JbpObj, SBOOBJ) {
|
||||
bpObj.Affiliate = 'tYES';
|
||||
}
|
||||
|
||||
if (JbpObj.res_prop===true) {
|
||||
bpObj.U_EON_WVB = 'Y';
|
||||
}
|
||||
if (JbpObj.res_prop === true) {
|
||||
bpObj.U_EON_WVB = 'Y';
|
||||
}
|
||||
|
||||
|
||||
if (JbpObj.res_prop===false) {
|
||||
bpObj.U_EON_WVB = 'N';
|
||||
}
|
||||
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;
|
||||
|
||||
bpObj.BPAddresses = [];
|
||||
// bpObj.BPAddresses[0].AddressName = 'test';
|
||||
@@ -226,22 +507,24 @@ 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].AddressName === myaddressbpname && SBOOBJ.BPAddresses[g].AddressType === convertAdrType(JbpObj.addresses[
|
||||
h].type)) {
|
||||
if (SBOOBJ.BPAddresses[g].U_EON_EXT_ID === JbpObj.addresses[h].addressid.toString() && SBOOBJ.BPAddresses[g].AddressType ===
|
||||
convertAdrType(JbpObj.addresses[
|
||||
h].type)) {
|
||||
|
||||
//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 = 'ja') {
|
||||
if (JbpObj.addresses[h].standard === 'yes') {
|
||||
if (convertAdrType(JbpObj.addresses[h].type) === 'bo_BillTo') {
|
||||
bpObj.BilltoDefault = myaddressbpname;
|
||||
}
|
||||
@@ -255,20 +538,28 @@ 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.AddressName3 = myaddress23[1];
|
||||
mybpAdresses.U_CompanyName2 = myaddress23[1];
|
||||
}
|
||||
if (JbpObj.addresses[h].address2) {
|
||||
mybpAdresses.BuildingFloorRoom = JbpObj.addresses[h].address2.toString();
|
||||
}
|
||||
if (JbpObj.addresses[h].address3) {
|
||||
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();
|
||||
@@ -292,12 +583,13 @@ 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].AddressName === myaddbpname && SBOOBJ.BPAddresses[g].AddressType === convertAdrType(JbpObj.addresses[h].type)) {
|
||||
if (SBOOBJ.BPAddresses[g].U_EON_EXT_ID === JbpObj.addresses[h].addressid.toString() && SBOOBJ.BPAddresses[g].AddressType ===
|
||||
convertAdrType(JbpObj.addresses[h].type)) {
|
||||
myfound = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (myfound == false) {
|
||||
if (myfound === false) {
|
||||
myaddbpAdresses.AddressName = myaddbpname; //JbpObj.addresses[h].address.toString();
|
||||
myaddbpAdresses.Street = JbpObj.addresses[h].street.toString();
|
||||
//myaddbpAdresses.Block = 'test';
|
||||
@@ -309,7 +601,7 @@ function buildBPObj(JbpObj, SBOOBJ) {
|
||||
//myaddbpAdresses.FederalTaxID = 'test';
|
||||
//myaddbpAdresses.TaxCode = 'test';
|
||||
//myaddbpAdresses.BuildingFloorRoom = 'test';
|
||||
if (JbpObj.addresses[h].standard = 'ja') {
|
||||
if (JbpObj.addresses[h].standard === 'yes') {
|
||||
if (convertAdrType(JbpObj.addresses[h].type) === 'bo_BillTo') {
|
||||
bpObj.BilltoDefault = myaddbpname;
|
||||
}
|
||||
@@ -319,10 +611,14 @@ 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.AddressName3 = myaddress23[1];
|
||||
myaddbpAdresses.U_CompanyName2 = myaddress23[1];
|
||||
}
|
||||
if (JbpObj.addresses[h].address2) {
|
||||
myaddbpAdresses.BuildingFloorRoom = JbpObj.addresses[h].address2.toString();
|
||||
}
|
||||
if (JbpObj.addresses[h].address3) {
|
||||
myaddbpAdresses.AddressName3 = JbpObj.addresses[h].address3.toString();
|
||||
@@ -360,7 +656,7 @@ function buildBPObj(JbpObj, SBOOBJ) {
|
||||
// //bpObj.BPAddresses.push(myaddbpAdresses);
|
||||
// }
|
||||
// }
|
||||
// //}
|
||||
// //}
|
||||
|
||||
bpObj.ContactEmployees = [];
|
||||
var myfoundCP = false;
|
||||
@@ -370,8 +666,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();
|
||||
mybpContactEmployees.LastName = JbpObj.surname.toString();
|
||||
mybpContactEmployees.FirstName = JbpObj.name.toString().trim();
|
||||
mybpContactEmployees.LastName = JbpObj.surname.toString().trim();
|
||||
mybpContactEmployees.Title = JbpObj.title.toString();
|
||||
mybpContactEmployees.U_EON_SALUTATION = JbpObj.salutation.toString();
|
||||
bpObj.ContactPerson = mybpcontactname;
|
||||
@@ -382,8 +678,8 @@ function buildBPObj(JbpObj, SBOOBJ) {
|
||||
if (myfoundCP == false) {
|
||||
mybpContactEmployees = {};
|
||||
mybpContactEmployees.Name = mybpcontactname; //mycardname;
|
||||
mybpContactEmployees.FirstName = JbpObj.name.toString();
|
||||
mybpContactEmployees.LastName = JbpObj.surname.toString();
|
||||
mybpContactEmployees.FirstName = JbpObj.name.toString().trim();
|
||||
mybpContactEmployees.LastName = JbpObj.surname.toString().trim();
|
||||
mybpContactEmployees.Title = JbpObj.title.toString();
|
||||
mybpContactEmployees.U_EON_SALUTATION = JbpObj.salutation.toString();
|
||||
bpObj.ContactPerson = mybpcontactname;
|
||||
@@ -393,72 +689,106 @@ function buildBPObj(JbpObj, SBOOBJ) {
|
||||
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 (myIBAN !== '') {
|
||||
use_iban = true;
|
||||
} else {
|
||||
use_iban = false;
|
||||
}
|
||||
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';
|
||||
//}
|
||||
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);
|
||||
}
|
||||
|
||||
if (myfoundBank === false) {
|
||||
myBPBankAccounts = {};
|
||||
myBPBankAccounts.IBAN = myIBAN;
|
||||
myBPBankAccounts.Country = myCountry;
|
||||
myBPBankAccounts.BankCode = myBankCode;
|
||||
myBPBankAccounts.AccountNo = myAccountNo;
|
||||
if (JbpObj.bank_account.bic.toString() !== '') {
|
||||
myBPBankAccounts.BICSwiftCode = JbpObj.bank_account.bic.toString();
|
||||
}
|
||||
myBPBankAccounts.AccountName = JbpObj.bank_account.account_owner.toString();
|
||||
myBPBankAccounts.Street = JbpObj.bank_account.street.toString() + " " + JbpObj.bank_account.street_no.toString();
|
||||
myBPBankAccounts.ZipCode = JbpObj.bank_account.zip_code.toString();
|
||||
myBPBankAccounts.City = JbpObj.bank_account.city.toString();
|
||||
// myBPBankAccounts.MandateID = JbpObj.bank_account.sepa_mandate_id.toString();
|
||||
myBPBankAccounts.SignatureDate = mySignatureDate;
|
||||
|
||||
if (JbpObj.bank_account.sepa_mandate.toString() == 'Ja') {
|
||||
// myBPBankAccounts.MandateID = SBOOBJ.BPBankAccounts[ba].MandateID.substring(0,10);
|
||||
// if (SBOOBJ.BPBankAccounts[ba].MandateID.IsNullOrEmpty ) //|| SBOOBJ.BPBankAccounts[ba].MandateID.substring(0,10) > JbpObj.id_crm
|
||||
//{
|
||||
myBPBankAccounts.MandateID = JbpObj.id_crm + getnextvalsepaid();
|
||||
bpObj.CollectionAuthorization = 'tYES';
|
||||
myBPBankAccounts.SEPASeqType = 'sstFRST';
|
||||
//}
|
||||
}
|
||||
//23.07.2024 BUS-7580
|
||||
if (JbpObj.bank_account.sepa_mandate.toString() == 'Nein') {
|
||||
bpObj.CollectionAuthorization = 'tNO';
|
||||
}
|
||||
bpObj.BankCountry = myCountry;
|
||||
bpObj.DefaultBankCode = myBankCode;
|
||||
bpObj.DefaultAccount = myAccountNo;
|
||||
bpObj.BPBankAccounts.push(myBPBankAccounts);
|
||||
}
|
||||
}
|
||||
bpObj.BankCountry = myCountry;
|
||||
bpObj.DefaultBankCode = myBankCode;
|
||||
bpObj.DefaultAccount = myAccountNo;
|
||||
bpObj.BPBankAccounts.push(myBPBankAccounts);
|
||||
}
|
||||
|
||||
return bpObj;
|
||||
@@ -490,7 +820,9 @@ function upsBP(searchparam, JbpObj) {
|
||||
loginInfo.Password = UserPass;
|
||||
loginInfo.CompanyDB = UserComp;
|
||||
|
||||
// SL LOGIN
|
||||
var slError;
|
||||
|
||||
// SL LOGIN
|
||||
var response = slib.SLLogin(JSON.stringify(loginInfo), null, null);
|
||||
|
||||
// B1SESSION and ROUTEID cookies returned by Login
|
||||
@@ -505,22 +837,31 @@ function upsBP(searchparam, JbpObj) {
|
||||
}
|
||||
output.loginInfo = loginInfo;
|
||||
// output.loginResponse = JSON.parse(response.body.asString());
|
||||
var loginResponse;
|
||||
try {
|
||||
output.loginResponse = JSON.parse(response.body.asString());
|
||||
loginResponse = JSON.parse(response.body.asString());
|
||||
} catch (e) {
|
||||
output.loginResponse = response.body.asString();
|
||||
loginResponse = response.body.asString();
|
||||
}
|
||||
output.loginResponse = loginResponse;
|
||||
if (response.status !== 200) {
|
||||
outMsg = {};
|
||||
outMsg.method = "login";
|
||||
outMsg.status = "error";
|
||||
outMsg.message = output.loginResponse;
|
||||
//outMsg.message = output.loginResponse;
|
||||
slError = loginResponse.error;
|
||||
if (slError && slError.hasOwnProperty("code") && slError.message && slError.message.value) {
|
||||
outMsg.message = slError.message.value + " (Code: " + slError.code.toString() + ")";
|
||||
} else {
|
||||
outMsg.message = JSON.stringify(loginResponse);
|
||||
}
|
||||
outMsg.response = loginResponse;
|
||||
outMessages.push(outMsg);
|
||||
outStatus = "error";
|
||||
}
|
||||
|
||||
if (JbpObj.vatid) {
|
||||
var checkmyvatid = bpbl.checkvatid(JbpObj.vatid, JbpObj.addresses[0].country.toUpperCase(), UserComp)
|
||||
var checkmyvatid = bpbl.checkvatid(JbpObj.vatid, JbpObj.vatid.substring(0, 2).toUpperCase(), UserComp);
|
||||
if (checkmyvatid != "true") {
|
||||
outMsg = {};
|
||||
outMsg.method = "checkVATID";
|
||||
@@ -531,6 +872,42 @@ function upsBP(searchparam, JbpObj) {
|
||||
}
|
||||
}
|
||||
|
||||
// CBU 18.10.2022 Prüfung Versandart
|
||||
if (JbpObj.shipping_type) {
|
||||
var checkShippingTypeResult = checkShippingType(JbpObj.shipping_type, UserComp);
|
||||
|
||||
if (!checkShippingTypeResult) {
|
||||
outMsg = {};
|
||||
outMsg.method = "shipping_type";
|
||||
outMsg.status = "error";
|
||||
outMsg.message = "Shippingtype not valid: " + JbpObj.shipping_type;
|
||||
outStatus = "error";
|
||||
outMessages.push(outMsg);
|
||||
} else {
|
||||
|
||||
// CBU 24.01.2023
|
||||
if (JbpObj.shipping_type === "M") {
|
||||
checkShippingTypeMail(JbpObj.email);
|
||||
}
|
||||
}
|
||||
|
||||
} else {
|
||||
outMsg = {};
|
||||
outMsg.method = "shipping_type";
|
||||
outMsg.status = "error";
|
||||
outMsg.message = "Shipping Type missing";
|
||||
outStatus = "error";
|
||||
outMessages.push(outMsg);
|
||||
}
|
||||
|
||||
/*
|
||||
CBU 25.11.2022
|
||||
if (outStatus !== "error") {
|
||||
if (JbpObj.bank_account.iban.toString().replace(/ /g, '') !== '') {
|
||||
createBankIfMissing(JbpObj.bank_account.iban.toString().replace(/ /g, ''), SESSIONID, NODEID);
|
||||
}
|
||||
}
|
||||
*/
|
||||
if (outStatus !== "error") {
|
||||
|
||||
outMsg = {};
|
||||
@@ -544,7 +921,12 @@ function upsBP(searchparam, JbpObj) {
|
||||
// Removes metadata
|
||||
//delete body["odata.metadata"];
|
||||
|
||||
var bodyGet = JSON.parse(responseGet.body.asString());
|
||||
var bodyGet;
|
||||
try {
|
||||
bodyGet = JSON.parse(responseGet.body.asString());
|
||||
} catch (e) {
|
||||
bodyGet = response.responseGet.asString();
|
||||
}
|
||||
myDebug.statusGet = responseGet.status;
|
||||
myDebug.responseGet = bodyGet;
|
||||
outMsg.statuscode = responseGet.status;
|
||||
@@ -556,7 +938,14 @@ function upsBP(searchparam, JbpObj) {
|
||||
outMsg.message = "not exists";
|
||||
} else {
|
||||
outMsg.status = "error";
|
||||
outMsg.message = bodyGet;
|
||||
//outMsg.message = bodyGet;
|
||||
slError = bodyGet.error;
|
||||
if (slError && slError.hasOwnProperty("code") && slError.message && slError.message.value) {
|
||||
outMsg.message = slError.message.value + " (Code: " + slError.code.toString() + ")";
|
||||
} else {
|
||||
outMsg.message = JSON.stringify(bodyGet);
|
||||
}
|
||||
outMsg.response = bodyGet;
|
||||
outStatus = "error";
|
||||
}
|
||||
outMessages.push(outMsg);
|
||||
@@ -578,12 +967,26 @@ function upsBP(searchparam, JbpObj) {
|
||||
outMsg.status = "success";
|
||||
} else {
|
||||
outMsg.status = "error";
|
||||
outMsg.message = bodyGetFull;
|
||||
//outMsg.message = bodyGetFull;
|
||||
slError = bodyGetFull.error;
|
||||
if (slError && slError.hasOwnProperty("code") && slError.message && slError.message.value) {
|
||||
outMsg.message = slError.message.value + " (Code: " + slError.code.toString() + ")";
|
||||
} else {
|
||||
outMsg.message = JSON.stringify(bodyGetFull);
|
||||
}
|
||||
outMsg.response = bodyGetFull;
|
||||
outStatus = "error";
|
||||
}
|
||||
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);
|
||||
@@ -604,12 +1007,26 @@ function upsBP(searchparam, JbpObj) {
|
||||
outMsg.status = "error";
|
||||
if (responseUpdate.body) {
|
||||
myDebug.responseUpdate = JSON.parse(responseUpdate.body.asString());
|
||||
outMsg.message = myDebug.responseUpdate;
|
||||
//outMsg.message = myDebug.responseUpdate;
|
||||
slError = myDebug.responseUpdate.error;
|
||||
if (slError && slError.hasOwnProperty("code") && slError.message && slError.message.value) {
|
||||
outMsg.message = slError.message.value + " (Code: " + slError.code.toString() + ")";
|
||||
} else {
|
||||
outMsg.message = JSON.stringify(myDebug.responseUpdate);
|
||||
}
|
||||
outMsg.response = myDebug.responseUpdate;
|
||||
outErrorMessages.push(outMsg);
|
||||
}
|
||||
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";
|
||||
@@ -628,8 +1045,15 @@ function upsBP(searchparam, JbpObj) {
|
||||
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);
|
||||
@@ -672,7 +1096,8 @@ 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);
|
||||
@@ -704,7 +1129,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;
|
||||
@@ -766,9 +1191,14 @@ 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";
|
||||
@@ -792,6 +1222,7 @@ function PutBPDataInTable() {
|
||||
if (ParDebug) {
|
||||
vals.debug = {};
|
||||
vals.debug.statement = query;
|
||||
vals.debugInfo = myDebug;
|
||||
}
|
||||
|
||||
// vals.group = JbpObj.group.toString();
|
||||
@@ -805,7 +1236,9 @@ function PutBPDataInTable() {
|
||||
setRESPONSE(mynextval, outMsg.status, errbody, outErrorMessages);
|
||||
$.response.contentType = 'application/json';
|
||||
$.response.setBody(errbody);
|
||||
$.response.status = $.net.http.INTERNAL_SERVER_ERROR;
|
||||
//$.response.status = $.net.http.INTERNAL_SERVER_ERROR;
|
||||
// auch bei Fehler HTTP Status 200, da der Response im CRM sonst evtl. nicht sauber verarbeitet wird
|
||||
$.response.status = $.net.http.OK;
|
||||
return;
|
||||
}
|
||||
vals.status = outStatus;
|
||||
@@ -859,9 +1292,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.setBody(JSON.stringify(output));
|
||||
}else{\n \n //addBP(JSON.stringify(bpObj));\n //updBP(JSON.stringify(bpObj));\n //GetOrders(req); \n}\n*/
|
||||
$.response.contentType = "application/json";
|
||||
$.response.setBody(JSON.stringify(output));
|
||||
}else{
|
||||
|
||||
//addBP(JSON.stringify(bpObj));
|
||||
//updBP(JSON.stringify(bpObj));
|
||||
//GetOrders(req);
|
||||
}
|
||||
*/
|
||||
+139
-537
@@ -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);
|
||||
}
|
||||
*/
|
||||
@@ -1,4 +1,4 @@
|
||||
var slib = $.import("uniorg.ServiceLayer", "B1SLLogic");
|
||||
var slib = $.import("uniorg.ServiceLayer", "B1SLLogic");
|
||||
var slDest = $.import("uniorg.destinations", "uodestlib");
|
||||
var copybplib = $.import("uniorg.eon.libs", "copybp");
|
||||
var dateTimeLib = $.import("uniorg.libs", "datetime");
|
||||
@@ -27,23 +27,23 @@ var cmpprivate_b2m = "cCompany";
|
||||
var service_version = '5.2';
|
||||
// 03.11.2020 U_ORDER_ID (262)
|
||||
// last changes: 31.03.2020 eoperate Felder
|
||||
// Mapping Verträge 19.05.2020
|
||||
// Mapping Verträge 19.05.2020
|
||||
// Mapping evdriver undefined 12.08.2020
|
||||
//17.08.2020 Parameter können nun auch ohne evdriver gesnedet werden.
|
||||
//16.09.2020 Erweiterung Aktivierungsgebühr
|
||||
//Mazda 6 monatige RabattGebühr
|
||||
//19.01.2021 duplicatebp lib Implementierung bei BFV Verträgen
|
||||
//17.08.2020 Parameter können nun auch ohne evdriver gesnedet werden.
|
||||
//16.09.2020 Erweiterung Aktivierungsgebühr
|
||||
//Mazda 6 monatige RabattGebühr
|
||||
//19.01.2021 duplicatebp lib Implementierung bei BFV Verträgen
|
||||
//06.10.2021 GP_DISCOUNT_MONTH
|
||||
//22.11.2021 Factor für BFV Verträge in Price Kollektion implementiert
|
||||
//29.11.2022 EMPEPI1-145: Erweiterung Contract SST/ Prüfung alte Projektnummern
|
||||
//23.06.2023 EMPEPI1-277: Validierungsprüfung BV ohne Chargepoint Parameter / Paramater ohne valid_from
|
||||
//18.09.2023 EMPEPI1-316: zeitl. Abgrenzung für AG Flag
|
||||
//22.11.2021 Factor für BFV Verträge in Price Kollektion implementiert
|
||||
//29.11.2022 EMPEPI1-145: Erweiterung Contract SST/ Prüfung alte Projektnummern
|
||||
//23.06.2023 EMPEPI1-277: Validierungsprüfung BV ohne Chargepoint Parameter / Paramater ohne valid_from
|
||||
//18.09.2023 EMPEPI1-316: zeitl. Abgrenzung für AG Flag
|
||||
//15.12.2023 EMPEPI1-327: Fehlerbehandlung bei leerem valid_from in prices
|
||||
//05.03.2024 EMPEPI1-347: BMW: PO-No. Zeitscheibensystem
|
||||
//19.07.2024 BUS-7346: Error message for contract transmission to B1
|
||||
//19.07.2024 BUS-7579: BMW-CCA-Abrechnung eoperate_valid_to < eoperate_valid_from
|
||||
//01.08.2024 Implementierung Rechnungsadresse
|
||||
//13.12.2024 BUS-9963: Bestellnummern am E.ON-Vertrag "einfach" überschreiben
|
||||
//13.12.2024 BUS-9963: Bestellnummern am E.ON-Vertrag "einfach" überschreiben
|
||||
//11.02.2025 BUS-10922: RFID_CARD ohne Text1 und Text2 ablehnen
|
||||
|
||||
var debugLevel = 0;
|
||||
@@ -97,7 +97,7 @@ function convertToISODate(dateString) {
|
||||
|
||||
function getProductId(prodID) {
|
||||
/* switch (prodID) {
|
||||
case "E.ON Drive Business ohne Grundgebühr":
|
||||
case "E.ON Drive Business ohne Grundgebühr":
|
||||
prodID='E.ON Drive Business Comfort';
|
||||
break;
|
||||
|
||||
@@ -368,7 +368,7 @@ function buildContractObj(InObj, SBOOBJ, billingMode) {
|
||||
|
||||
}
|
||||
|
||||
// Sonderpreise für Rabattmonate
|
||||
// Sonderpreise für Rabattmonate
|
||||
prodComponentsGP_DISCOUNT_MONTH.concat(prodComponentsTP_DISCOUNT_MONTH).forEach(function(pc) {
|
||||
if (SBOOBJ.EON_CONTRACT_PRICECollection === undefined || SBOOBJ.EON_CONTRACT_PRICECollection.findIndex(function(x) {
|
||||
return x.U_ITEM === pc.U_ITEM;
|
||||
@@ -385,7 +385,7 @@ function buildContractObj(InObj, SBOOBJ, billingMode) {
|
||||
}
|
||||
});
|
||||
|
||||
// Sonderpreise für kostenfreie Monate BFV BFV_BILLING
|
||||
// Sonderpreise für kostenfreie Monate BFV BFV_BILLING
|
||||
if (InObj.costfree_months && InObj.costfree_months > 0) {
|
||||
prodComponentsBFV_BILLING.forEach(function(pc) {
|
||||
var connection = $.hdb.getConnection();
|
||||
@@ -412,7 +412,7 @@ function buildContractObj(InObj, SBOOBJ, billingMode) {
|
||||
}
|
||||
});
|
||||
}
|
||||
// bestehenden Sonderpreis entfernen, falls kostenfreie Monate auf 0 geändert werden
|
||||
// bestehenden Sonderpreis entfernen, falls kostenfreie Monate auf 0 geändert werden
|
||||
if (InObj.hasOwnProperty('costfree_months') && InObj.costfree_months === 0 && UDOObj.EON_CONTRACT_PRICECollection.length > 0) {
|
||||
prodComponentsBFV_BILLING.forEach(function(pc) {
|
||||
for (var x = UDOObj.EON_CONTRACT_PRICECollection.length - 1; x >= 0; x--) {
|
||||
@@ -424,7 +424,7 @@ function buildContractObj(InObj, SBOOBJ, billingMode) {
|
||||
});
|
||||
}
|
||||
|
||||
//Suche ob Objekte vorhanden wenn nicht ergänzen
|
||||
//Suche ob Objekte vorhanden wenn nicht ergänzen
|
||||
|
||||
for (var h in InObj.prices) {
|
||||
var myfound = false;
|
||||
@@ -492,7 +492,7 @@ function buildContractObj(InObj, SBOOBJ, billingMode) {
|
||||
|
||||
}
|
||||
|
||||
//Suche ob Objekte vorhanden wenn nicht ergänzen
|
||||
//Suche ob Objekte vorhanden wenn nicht ergänzen
|
||||
|
||||
for (var h in InObj.ev_drivers) {
|
||||
var myfound = false;
|
||||
@@ -599,7 +599,7 @@ function buildContractObj(InObj, SBOOBJ, billingMode) {
|
||||
UDOObj.EON_CONTRACT_PARAMCollection.push(myParam2);
|
||||
}
|
||||
|
||||
// neue Aktivierungsgebühr hinzufügen
|
||||
// neue Aktivierungsgebühr hinzufügen
|
||||
if (prodComponentsAG.length > 0 && (SBOOBJ.EON_CONTRACT_PARAMCollection === undefined || SBOOBJ.EON_CONTRACT_PARAMCollection.findIndex(
|
||||
function(x) {
|
||||
return x.U_COMPONENT === "AG";
|
||||
@@ -614,7 +614,7 @@ function buildContractObj(InObj, SBOOBJ, billingMode) {
|
||||
});
|
||||
}
|
||||
|
||||
// neue Rabattmonate hinzufügen
|
||||
// neue Rabattmonate hinzufügen
|
||||
prodComponentsTP_DISCOUNT_MONTH.forEach(function(pc) {
|
||||
if (SBOOBJ.EON_CONTRACT_PARAMCollection === undefined || SBOOBJ.EON_CONTRACT_PARAMCollection.findIndex(function(x) {
|
||||
return x.U_COMPONENT === pc.U_DATA_TEXT;
|
||||
@@ -633,7 +633,7 @@ function buildContractObj(InObj, SBOOBJ, billingMode) {
|
||||
}
|
||||
});
|
||||
|
||||
// neue Grundpreis Rabattmonate hinzufügen
|
||||
// neue Grundpreis Rabattmonate hinzufügen
|
||||
prodComponentsGP_DISCOUNT_MONTH.forEach(function(pc) {
|
||||
if (SBOOBJ.EON_CONTRACT_PARAMCollection === undefined || SBOOBJ.EON_CONTRACT_PARAMCollection.findIndex(function(x) {
|
||||
return x.U_COMPONENT === pc.U_DATA_TEXT;
|
||||
@@ -652,7 +652,7 @@ function buildContractObj(InObj, SBOOBJ, billingMode) {
|
||||
}
|
||||
});
|
||||
|
||||
// neue Parameter aus ev_drivers.parameters hinzufügen
|
||||
// neue Parameter aus ev_drivers.parameters hinzufügen
|
||||
for (var h in InObj.ev_drivers) {
|
||||
for (var k in InObj.ev_drivers[h].parameters) {
|
||||
var myfound2 = false;
|
||||
@@ -684,7 +684,7 @@ function buildContractObj(InObj, SBOOBJ, billingMode) {
|
||||
}
|
||||
}
|
||||
}
|
||||
// neue Parameter aus Kopfebene hinzufügen
|
||||
// neue Parameter aus Kopfebene hinzufügen
|
||||
for (var k in InObj.parameters) {
|
||||
var myfound3 = false;
|
||||
for (var l in SBOOBJ.EON_CONTRACT_PARAMCollection) {
|
||||
@@ -1317,4 +1317,4 @@ if (!req){
|
||||
//updBP(JSON.stringify(bpObj));
|
||||
//GetOrders(req);
|
||||
}
|
||||
*/
|
||||
*/
|
||||
@@ -92,7 +92,7 @@ function slLogin() {
|
||||
loginInfo.Password = UserPass;
|
||||
loginInfo.CompanyDB = UserComp;
|
||||
|
||||
// SL LOGIN
|
||||
// SL LOGIN
|
||||
var response = slLib.SLLogin(JSON.stringify(loginInfo), null, null);
|
||||
|
||||
// B1SESSION and ROUTEID cookies returned by Login
|
||||
@@ -239,8 +239,8 @@ function repairContractHistory() {
|
||||
U_OBJTYPE: row.ObjType,
|
||||
U_DOCENTRY: row.DocEntry,
|
||||
U_DOCNUM: row.DocNum
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
};
|
||||
result.slContractObj = slContractObj;
|
||||
var responseContract = slLib.patchDynamicEntity('EON_CONTR', row.U_EON_CONTRACT, JSON.stringify(slContractObj), SESSIONID, NODEID,
|
||||
@@ -265,7 +265,7 @@ function repairContractHistory() {
|
||||
});
|
||||
output.durationMilliseconds = new Date() - startTS;
|
||||
outMessages.push(outMsg);
|
||||
|
||||
|
||||
try {
|
||||
if (slLoggedIn) {
|
||||
slLib.SLLogout(SESSIONID, NODEID);
|
||||
|
||||
@@ -89,22 +89,22 @@ function getProductId(prodID) {
|
||||
case "E.ON Drive Business ohne Grundgebühr":
|
||||
prodID='E.ON Drive Business Comfort';
|
||||
break;
|
||||
|
||||
|
||||
case "LT_E.ON Drive ElectricFleet E.ON Konzern Ladetarif":
|
||||
prodID='LT_E.ON DRIVE ELECTRICFLEET E.ON KONZERN LADETARIF';
|
||||
break;
|
||||
|
||||
|
||||
case "LT_E.ON Drive ElectricFleet Ladetarif":
|
||||
prodID='E.ON DRIVE ELECTRICFLEET LADETARIF';
|
||||
break;
|
||||
|
||||
|
||||
case "BMW Group Corporate Charging CCA Ladetarif":
|
||||
prodID='BMW GROUP CORPORATE CHARGING CCA LADETARIF';
|
||||
break;
|
||||
case "LT_BMW Group Corporate Charging MA Ladetarif":
|
||||
prodID='BMW GROUP CORPORATE CHARGING MA LADETARIF';
|
||||
break;
|
||||
|
||||
|
||||
default:
|
||||
prodID = prodID;
|
||||
}*/
|
||||
@@ -112,7 +112,7 @@ function getProductId(prodID) {
|
||||
var pstmt;
|
||||
var query =
|
||||
"SELECT MIN(T1.\"Code\") as \"Code\", T0.\"U_BILLING_MODE\" FROM \"XXREPXX\".\"@EON_PRODUCT\" T0 INNER JOIN \"XXREPXX\".\"@EON_PRODUCT_PARAM\" T1 ON T0.\"Code\"=T1.\"Code\" " +
|
||||
"WHERE T1.U_COMPONENT = 'CRM_PRODUCT_ID' AND UPPER(T1.\"U_ITEM\") = UPPER('" +
|
||||
"WHERE T1.U_COMPONENT = \'CRM_PRODUCT_ID\' AND UPPER(T1.\"U_ITEM\") = UPPER('" +
|
||||
prodID + "') GROUP BY T0.\"U_BILLING_MODE\"";
|
||||
query = query.replace(/XXREPXX/g, UserComp);
|
||||
pstmt = conn.prepareStatement(query);
|
||||
@@ -335,7 +335,7 @@ function buildContractObj(InObj, SBOOBJ, billingMode) {
|
||||
|
||||
for (var g in SBOOBJ.EON_CONTRACT_EVDRVCollection) {
|
||||
var myEVDRV = {};
|
||||
// copy existing
|
||||
// copy existing
|
||||
myEVDRV = SBOOBJ.EON_CONTRACT_EVDRVCollection[g];
|
||||
|
||||
for (var h in InObj.ev_drivers) {
|
||||
@@ -346,7 +346,7 @@ function buildContractObj(InObj, SBOOBJ, billingMode) {
|
||||
myEVDRV.U_NICE_ID = InObj.ev_drivers[h].c_id;
|
||||
myEVDRV.U_FIRSTNAME = (InObj.ev_drivers[h].firstname === null) ? myEVDRV.U_FIRSTNAME : InObj.ev_drivers[h].firstname;
|
||||
myEVDRV.U_LASTNAME = (InObj.ev_drivers[h].lastname === null) ? myEVDRV.U_LASTNAME : InObj.ev_drivers[h].lastname;
|
||||
// myEVDRV.U_EMAIL = (InObj.ev_drivers[h].email === null) ? myEVDRV.U_EMAIL : InObj.ev_drivers[h].email;
|
||||
// myParam.U_EMAIL = (InObj.ev_drivers[h].email === null) ? myEVDRV.U_EMAIL : InObj.ev_drivers[h].email;
|
||||
myEVDRV.U_LICENSE_PLATE = (InObj.ev_drivers[h].license_plate === null) ? myEVDRV.U_LICENSE_PLATE : InObj.ev_drivers[h].license_plate;
|
||||
myEVDRV.U_VIRTA_ID = (InObj.ev_drivers[h].virta_id === null) ? myEVDRV.U_VIRTA_ID : InObj.ev_drivers[h].virta_id;
|
||||
myEVDRV.U_VIRTA_VALID_FROM = (InObj.ev_drivers[h].virta_valid_from === null) ? myEVDRV.U_VIRTA_VALID_FROM : InObj.ev_drivers[h].virta_valid_from;
|
||||
@@ -386,7 +386,7 @@ function buildContractObj(InObj, SBOOBJ, billingMode) {
|
||||
myEVDRV.U_EV_DRIVERID = InObj.ev_drivers[h].ev_driverid;
|
||||
myEVDRV.U_FIRSTNAME = InObj.ev_drivers[h].firstname;
|
||||
myEVDRV.U_LASTNAME = InObj.ev_drivers[h].lastname;
|
||||
// myEVDRV.U_EMAIL = InObj.ev_drivers[h].email;
|
||||
// myParam.U_EMAIL = InObj.ev_drivers[h].email;
|
||||
myEVDRV.U_LICENSE_PLATE = InObj.ev_drivers[h].license_plate;
|
||||
myEVDRV.U_VIRTA_ID = InObj.ev_drivers[h].virta_id;
|
||||
myEVDRV.U_VIRTA_VALID_TO = InObj.ev_drivers[h].virta_valid_to;
|
||||
@@ -407,6 +407,162 @@ function buildContractObj(InObj, SBOOBJ, billingMode) {
|
||||
|
||||
UDOObj.EON_CONTRACT_PARAMCollection = [];
|
||||
|
||||
//LOOP durch existierende Parameter
|
||||
loopParamsB1: for (var i in SBOOBJ.EON_CONTRACT_PARAMCollection) {
|
||||
var myParam2 = {};
|
||||
// copy existing
|
||||
myParam2 = SBOOBJ.EON_CONTRACT_PARAMCollection[i];
|
||||
// Abgleich mit Parameters aus ev_drivers.parameters
|
||||
loopEVDriversInObj: for (var h in InObj.ev_drivers) {
|
||||
loopParamsInObj: for (var j in InObj.ev_drivers[h].parameters) {
|
||||
if (myParam2.U_DATA_TEXT === InObj.ev_drivers[h].parameters[j].text1) {
|
||||
//myParam.DocEntry=SBOOBJ.EON_CONTRACT_PARAMCollection[g].DocEntry;
|
||||
//myParam.LineId=SBOOBJ.EON_CONTRACT_PARAMCollection[g].LineId;
|
||||
//myParam.VisOrder=SBOOBJ.EON_CONTRACT_PARAMCollection[g].VisOrder;
|
||||
//myParam.Object=SBOOBJ.EON_CONTRACT_PARAMCollection[g].Object;
|
||||
myParam2.U_COMPONENT = (InObj.ev_drivers[h].parameters[j].component === null) ? myParam2.U_COMPONENT :
|
||||
InObj.ev_drivers[h].parameters[j].component;
|
||||
//myParam.U_DESCRIPTION=SBOOBJ.EON_CONTRACT_PARAMCollection[g].U_DESCRIPTION;
|
||||
//myParam.U_RULE=SBOOBJ.EON_CONTRACT_PARAMCollection[g].U_RULE;
|
||||
myParam2.U_DATA_TEXT = (InObj.ev_drivers[h].parameters[j].text1 === null) ? myParam2.U_DATA_TEXT :
|
||||
InObj.ev_drivers[h].parameters[j].text1;
|
||||
myParam2.U_DATA_NUMERIC = (InObj.ev_drivers[h].parameters[j].numeric1 === null) ? myParam2.U_DATA_NUMERIC :
|
||||
InObj.ev_drivers[h].parameters[j].numeric1;
|
||||
myParam2.U_DATA_TEXT2 = (InObj.ev_drivers[h].parameters[j].text2 === null) ? myParam2.U_DATA_TEXT2 :
|
||||
InObj.ev_drivers[h].parameters[j].text2;
|
||||
myParam2.U_DATE_NUMERIC2 = (InObj.ev_drivers[h].parameters[j].numeric2 === null) ? myParam2.U_DATE_NUMERIC2 :
|
||||
InObj.ev_drivers[h].parameters[j].numeric2;
|
||||
myParam2.U_VALID_FROM = (InObj.ev_drivers[h].parameters[j].valid_from === null) ? myParam2.U_VALID_FROM :
|
||||
InObj.ev_drivers[h].parameters[j].valid_from;
|
||||
myParam2.U_VALID_TO = (InObj.ev_drivers[h].parameters[j].valid_to === null) ? myParam2.U_VALID_TO :
|
||||
InObj.ev_drivers[h].parameters[j].valid_to;
|
||||
//myParam.U_ITEM=SBOOBJ.EON_CONTRACT_PARAMCollection[g].U_ITEM;
|
||||
myParam2.U_DATA_TEXT3 = (InObj.ev_drivers[h].ev_driverid === null) ? myParam2.U_DATA_TEXT3 : InObj.ev_drivers[h].ev_driverid;
|
||||
break loopEVDriversInObj;
|
||||
}
|
||||
}
|
||||
}
|
||||
// Abgleich mit Parametern aus Kopfebene
|
||||
for (var j in InObj.parameters) {
|
||||
if (myParam2.U_DATA_TEXT === InObj.parameters[j].text1) {
|
||||
myParam2.U_COMPONENT = (InObj.parameters[j].component === null) ? myParam2.U_COMPONENT :
|
||||
InObj.parameters[j].component;
|
||||
myParam2.U_RULE = "data";
|
||||
//myParam.U_DESCRIPTION=SBOOBJ.EON_CONTRACT_PARAMCollection[g].U_DESCRIPTION;
|
||||
//myParam.U_RULE=SBOOBJ.EON_CONTRACT_PARAMCollection[g].U_RULE;
|
||||
myParam2.U_DATA_TEXT = (InObj.parameters[j].text1 === null) ? myParam2.U_DATA_TEXT :
|
||||
InObj.parameters[j].text1;
|
||||
myParam2.U_DATA_NUMERIC = (InObj.parameters[j].numeric1 === null) ? myParam2.U_DATA_NUMERIC :
|
||||
InObj.parameters[j].numeric1;
|
||||
myParam2.U_DATA_TEXT2 = (InObj.parameters[j].text2 === null) ? myParam2.U_DATA_TEXT2 :
|
||||
InObj.parameters[j].text2;
|
||||
myParam2.U_DATA_NUMERIC2 = (InObj.parameters[j].numeric2 === null) ? myParam2.U_DATA_NUMERIC2 :
|
||||
InObj.parameters[j].numeric2;
|
||||
myParam2.U_VALID_FROM = (InObj.parameters[j].valid_from === null) ? myParam2.U_VALID_FROM :
|
||||
InObj.parameters[j].valid_from;
|
||||
myParam2.U_VALID_TO = (InObj.parameters[j].valid_to === null) ? myParam2.U_VALID_TO :
|
||||
InObj.parameters[j].valid_to;
|
||||
myParam2.U_DATA_PRICE1 = (InObj.parameters[j].price1 === null) ? myParam2.U_DATA_PRICE1 :
|
||||
InObj.parameters[j].price1;
|
||||
//myParam.U_ITEM=SBOOBJ.EON_CONTRACT_PARAMCollection[g].U_ITEM;
|
||||
myParam2.U_DATA_TEXT3 = (InObj.parameters[j].text3 === null) ? myParam2.U_DATA_TEXT3 :
|
||||
InObj.parameters[j].text3;
|
||||
}
|
||||
}
|
||||
UDOObj.EON_CONTRACT_PARAMCollection.push(myParam2);
|
||||
}
|
||||
|
||||
// neue Aktivierungsgebühr hinzufügen
|
||||
var prodComponentsAG = getProductComponents(productCode, "AG");
|
||||
if (prodComponentsAG.length > 0 && (SBOOBJ.EON_CONTRACT_PARAMCollection === undefined || SBOOBJ.EON_CONTRACT_PARAMCollection.findIndex(
|
||||
function(x) {
|
||||
return x.U_COMPONENT === "AG";
|
||||
}) === -1)) {
|
||||
UDOObj.EON_CONTRACT_PARAMCollection.push({
|
||||
U_COMPONENT: prodComponentsAG[0].U_COMPONENT,
|
||||
U_DESCRIPTION: prodComponentsAG[0].U_DESCRIPTION,
|
||||
U_RULE: "const1",
|
||||
U_ITEM: prodComponentsAG[0].U_ITEM,
|
||||
U_VALID_FROM: InObj.begin_date,
|
||||
U_VALID_TO: InObj.begin_date
|
||||
});
|
||||
}
|
||||
|
||||
// neue Rabattmonate hinzufügen
|
||||
var prodComponentsTP_DISCOUNT_MONTH = getProductComponents(productCode, "TP_DISCOUNT_MONTH");
|
||||
prodComponentsTP_DISCOUNT_MONTH.forEach(function(pc) {
|
||||
if (SBOOBJ.EON_CONTRACT_PARAMCollection === undefined || SBOOBJ.EON_CONTRACT_PARAMCollection.findIndex(function(x) {
|
||||
return x.U_COMPONENT === pc.U_DATA_TEXT;
|
||||
}) === -1) {
|
||||
var connection = $.hdb.getConnection();
|
||||
var validToDate = connection.executeQuery('SELECT ADD_MONTHS(?,?) FROM DUMMY', InObj.begin_date, pc.U_DATA_NUMERIC)[0][0];
|
||||
connection.close();
|
||||
UDOObj.EON_CONTRACT_PARAMCollection.push({
|
||||
U_COMPONENT: pc.U_DATA_TEXT,
|
||||
U_DESCRIPTION: pc.U_DESCRIPTION,
|
||||
U_RULE: "QxP",
|
||||
U_ITEM: pc.U_ITEM,
|
||||
U_VALID_FROM: InObj.begin_date,
|
||||
U_VALID_TO: validToDate
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
// neue Parameter aus ev_drivers.parameters hinzufügen
|
||||
for (var h in InObj.ev_drivers) {
|
||||
for (var k in InObj.ev_drivers[h].parameters) {
|
||||
var myfound2 = false;
|
||||
for (var l in SBOOBJ.EON_CONTRACT_PARAMCollection) {
|
||||
if (SBOOBJ.EON_CONTRACT_PARAMCollection[l].U_DATA_TEXT === InObj.ev_drivers[h].parameters[k].text1) {
|
||||
myfound2 = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (myfound2 === false) {
|
||||
var myParam3 = {};
|
||||
|
||||
myParam3.U_COMPONENT = InObj.ev_drivers[h].parameters[k].component;
|
||||
//myParam.U_DESCRIPTION="";
|
||||
myParam3.U_RULE = "data";
|
||||
myParam3.U_DATA_TEXT = InObj.ev_drivers[h].parameters[k].text1;
|
||||
myParam3.U_DATA_NUMERIC = InObj.ev_drivers[h].parameters[k].numeric1;
|
||||
myParam3.U_DATA_TEXT2 = InObj.ev_drivers[h].parameters[k].text2;
|
||||
myParam3.U_DATE_NUMERIC2 = InObj.ev_drivers[h].parameters[k].numeric2;
|
||||
myParam3.U_VALID_FROM = InObj.ev_drivers[h].parameters[k].valid_from;
|
||||
myParam3.U_VALID_TO = InObj.ev_drivers[h].parameters[k].valid_to;
|
||||
myParam3.U_DATA_TEXT3 = InObj.ev_drivers[h].ev_driverid;
|
||||
//myParam.U_ITEM="";
|
||||
|
||||
UDOObj.EON_CONTRACT_PARAMCollection.push(myParam3);
|
||||
}
|
||||
}
|
||||
}
|
||||
// neue Parameter aus Kopfebene hinzufügen
|
||||
for (var k in InObj.parameters) {
|
||||
var myfound3 = false;
|
||||
for (var l in SBOOBJ.EON_CONTRACT_PARAMCollection) {
|
||||
if (SBOOBJ.EON_CONTRACT_PARAMCollection[l].U_DATA_TEXT === InObj.parameters[k].text1) {
|
||||
myfound3 = true;
|
||||
}
|
||||
}
|
||||
if (myfound3 === false) {
|
||||
var myParam4 = {};
|
||||
myParam4.U_COMPONENT = InObj.parameters[k].component;
|
||||
//myParam.U_DESCRIPTION="";
|
||||
myParam4.U_RULE = "data";
|
||||
myParam4.U_DATA_TEXT = InObj.parameters[k].text1;
|
||||
myParam4.U_DATA_NUMERIC = InObj.parameters[k].numeric1;
|
||||
myParam4.U_DATA_TEXT2 = InObj.parameters[k].text2;
|
||||
myParam4.U_DATE_NUMERIC2 = InObj.parameters[k].numeric2;
|
||||
myParam4.U_VALID_FROM = InObj.parameters[k].valid_from;
|
||||
myParam4.U_VALID_TO = InObj.parameters[k].valid_to;
|
||||
myParam4.U_DATA_PRICE1 = InObj.parameters[k].price1;
|
||||
myParam4.U_DATA_TEXT3 = InObj.parameters[k].text3;
|
||||
//myParam.U_ITEM="";
|
||||
UDOObj.EON_CONTRACT_PARAMCollection.push(myParam4);
|
||||
}
|
||||
}
|
||||
|
||||
return UDOObj;
|
||||
}
|
||||
|
||||
@@ -425,13 +581,503 @@ function mockbuildBPObj() {
|
||||
return bpObj;
|
||||
}
|
||||
|
||||
function upsContract(searchparam, InObj, billingMode) {
|
||||
|
||||
var output = {};
|
||||
var myDebug = {
|
||||
billingMode: billingMode,
|
||||
searchparam: searchparam
|
||||
};
|
||||
var SESSIONID = "";
|
||||
var NODEID = "";
|
||||
|
||||
// SL credentials
|
||||
var loginInfo = {};
|
||||
loginInfo.UserName = UserName;
|
||||
loginInfo.Password = UserPass;
|
||||
loginInfo.CompanyDB = UserComp;
|
||||
|
||||
//getProductId(InObj.product);
|
||||
if (outStatus !== "error") {
|
||||
// SL LOGIN
|
||||
var response = slib.SLLogin(JSON.stringify(loginInfo), null, null);
|
||||
|
||||
// B1SESSION and ROUTEID cookies returned by Login
|
||||
for (var j in response.cookies) {
|
||||
if (response.cookies[j].name == "B1SESSION") {
|
||||
SESSIONID = response.cookies[j].value;
|
||||
output.SessionID = SESSIONID;
|
||||
} else if (response.cookies[j].name == "ROUTEID") {
|
||||
NODEID = response.cookies[j].value;
|
||||
output.NodeID = NODEID;
|
||||
}
|
||||
}
|
||||
if (ParDebug) {
|
||||
//output.loginInfo = loginInfo;
|
||||
}
|
||||
// output.loginResponse = JSON.parse(response.body.asString());
|
||||
try {
|
||||
output.loginResponse = JSON.parse(response.body.asString());
|
||||
} catch (e) {
|
||||
output.loginResponse = response.body.asString();
|
||||
}
|
||||
if (response.status !== 200) {
|
||||
outMsg = {};
|
||||
outMsg.method = "login";
|
||||
outMsg.status = "error";
|
||||
outMsg.message = output.loginResponse;
|
||||
outMessages.push(outMsg);
|
||||
outStatus = "error";
|
||||
}
|
||||
|
||||
if (outStatus !== "error") {
|
||||
|
||||
outMsg = {};
|
||||
if (ParRecallMode) {
|
||||
outMsg.id = globalDebug.mynextval;
|
||||
}
|
||||
outMsg.method = "check " + ContractUDOID + " Exists";
|
||||
//Add BP
|
||||
//response = slib.createBusinessPartner(BPObject, SESSIONID,NODEID);
|
||||
//var responseGet = slib.getBusinessPartner(searchparam, SESSIONID, NODEID);
|
||||
var responseGet = slib.getDocUDO(ContractUDOID, searchparam, SESSIONID, NODEID);
|
||||
//var logoutresponse = slib.SLLogout(JSON.stringify(loginInfo), null, null);
|
||||
//Parse response body
|
||||
|
||||
// Removes metadata
|
||||
//delete body["odata.metadata"];
|
||||
|
||||
var DocEntry = 0;
|
||||
var bodyGetFull = {};
|
||||
|
||||
var bodyGet = JSON.parse(responseGet.body.asString());
|
||||
myDebug.statusGet = responseGet.status;
|
||||
myDebug.responseGet = bodyGet;
|
||||
|
||||
outMsg.statuscode = responseGet.status;
|
||||
if (responseGet.status >= 200 && responseGet.status < 300) {
|
||||
outMsg.status = "success";
|
||||
if (bodyGet.value[0]) {
|
||||
DocEntry = bodyGet.value[0].DocEntry;
|
||||
bodyGetFull = bodyGet.value[0];
|
||||
outMsg.message = "exists";
|
||||
} else {
|
||||
outMsg.message = "not exists";
|
||||
}
|
||||
} else if (responseGet.status === 404) {
|
||||
outMsg.status = "success";
|
||||
outMsg.message = "not exists";
|
||||
} else {
|
||||
outMsg.status = "error";
|
||||
outMsg.message = bodyGet;
|
||||
outStatus = "error";
|
||||
}
|
||||
outMessages.push(outMsg);
|
||||
|
||||
/* if (DocEntry > 0) {
|
||||
outMsg = {};
|
||||
outMsg.method = "get";
|
||||
outMsg.status = "success";
|
||||
outMsg.message = bodyGetFull;
|
||||
outMessages.push(outMsg);
|
||||
}*/
|
||||
|
||||
/* var Code = "";
|
||||
var bodyGetFull = {};
|
||||
if (bodyGet.value[0]) {
|
||||
//Code = bodyGet.value[0].CardCode;
|
||||
|
||||
outMsg = {};
|
||||
outMsg.method = "get";
|
||||
|
||||
var responseGetFull = slib.getBusinessPartnerFull(CardCode, SESSIONID, NODEID);
|
||||
myDebug.statusGetFull = responseGetFull.status;
|
||||
// bodyGetFull = JSON.parse(responseGetFull.body.asString());
|
||||
myDebug.responseGetFull = bodyGetFull;
|
||||
outMsg.statuscode = responseGetFull.status;
|
||||
if (responseGetFull.status >= 200 && responseGetFull.status < 300) {
|
||||
outMsg.status = "success";
|
||||
} else {
|
||||
outMsg.status = "error";
|
||||
outMsg.message = bodyGetFull;
|
||||
outStatus = "error";
|
||||
}
|
||||
outMessages.push(outMsg);
|
||||
}*/
|
||||
|
||||
if (outStatus !== "error") {
|
||||
|
||||
var consContractObject = buildContractObj(InObj, bodyGetFull, billingMode);
|
||||
myDebug.ContractObj = consContractObject;
|
||||
|
||||
if (DocEntry > 0) {
|
||||
output.method = "update";
|
||||
var responseUpdate = slib.updateDocUDO(ContractUDOID, DocEntry, JSON.stringify(consContractObject), SESSIONID, NODEID);
|
||||
outMsg = {};
|
||||
if (ParRecallMode) {
|
||||
outMsg.id = globalDebug.mynextval;
|
||||
}
|
||||
outMsg.method = "update";
|
||||
myDebug.statusUpdate = responseUpdate.status;
|
||||
outMsg.statuscode = responseUpdate.status;
|
||||
if (responseUpdate.status >= 200 && responseUpdate.status < 300) {
|
||||
myDebug.Updatemessage = "Update sucessfull";
|
||||
outMsg.status = "success";
|
||||
} else {
|
||||
myDebug.message = "Update error occured";
|
||||
outMsg.status = "error";
|
||||
if (responseUpdate.body) {
|
||||
myDebug.responseUpdate = JSON.parse(responseUpdate.body.asString());
|
||||
outMsg.message = myDebug.responseUpdate;
|
||||
}
|
||||
outStatus = "error";
|
||||
}
|
||||
outMessages.push(outMsg);
|
||||
|
||||
} else {
|
||||
|
||||
outMsg = {};
|
||||
if (ParRecallMode) {
|
||||
outMsg.id = globalDebug.mynextval;
|
||||
}
|
||||
outMsg.method = "create";
|
||||
var responseCreate = slib.createDocUDO(ContractUDOID, JSON.stringify(consContractObject), SESSIONID, NODEID);
|
||||
myDebug.statusCreate = responseCreate.status;
|
||||
outMsg.statuscode = responseCreate.status;
|
||||
myDebug.responseCreate = JSON.parse(responseCreate.body.asString());
|
||||
if (responseCreate.status >= 200 && responseCreate.status < 300) {
|
||||
myDebug.Createmessage = "Create sucessfull";
|
||||
outMsg.status = "success";
|
||||
var createUDOObj = JSON.parse(responseCreate.body.asString());
|
||||
DocEntry = createUDOObj.DocEntry;
|
||||
} else {
|
||||
myDebug.Createmessage = "Create error occured";
|
||||
output.errorCreatestatus = myDebug.Createmessage;
|
||||
outMsg.status = "error";
|
||||
outMsg.message = myDebug.responseCreate;
|
||||
outStatus = "error";
|
||||
}
|
||||
outMessages.push(outMsg);
|
||||
}
|
||||
|
||||
}
|
||||
output.DocEntry = DocEntry;
|
||||
|
||||
slib.SLLogout(SESSIONID, NODEID);
|
||||
}
|
||||
}
|
||||
output.debug = myDebug;
|
||||
//$.trace.debug("DEBUG body.Get: " + JSON.stringify(myDebug));
|
||||
return output;
|
||||
//setOutputMessage();
|
||||
//return 0;
|
||||
|
||||
}
|
||||
|
||||
function getnextval() {
|
||||
var conn = $.db.getConnection();
|
||||
var pstmt;
|
||||
var query = "select \"NICEPORTAL\".\"SEQ_CONTRACT_ID\".NEXTVAL from dummy";
|
||||
pstmt = conn.prepareStatement(query);
|
||||
var rs = pstmt.executeQuery();
|
||||
if (!rs.next()) {
|
||||
outMsg = {};
|
||||
outMsg.method = "getnexval from sequence error";
|
||||
outMsg.status = "error";
|
||||
// outMsg.message = e.message;
|
||||
outMessages.push(outMsg);
|
||||
} else {
|
||||
return rs.getString(1);
|
||||
}
|
||||
rs.close();
|
||||
pstmt.close();
|
||||
conn.close();
|
||||
}
|
||||
|
||||
function setBPCardCode(tableid, bpcardcode) {
|
||||
var conn = $.db.getConnection();
|
||||
var pstmt;
|
||||
var query = "update \"NICEPORTAL\".\"UO_CRM_DATA_CONTRACTS\" set B1_CARDCODE = '" + bpcardcode +
|
||||
"', UPDATE_TS = CURRENT_TIMESTAMP where ID =" + tableid;
|
||||
pstmt = conn.prepareStatement(query);
|
||||
// pstmt.setString(1,bpcardcode);
|
||||
// pstmt.setString(2,tableid);
|
||||
var rs = pstmt.executeUpdate();
|
||||
globalDebug.UpdateQuery = query;
|
||||
|
||||
pstmt.close();
|
||||
conn.commit();
|
||||
conn.close();
|
||||
|
||||
}
|
||||
|
||||
function setRESPONSE(tableid, respstatus, respmessage) {
|
||||
var conn = $.db.getConnection();
|
||||
var pstmt;
|
||||
var query =
|
||||
"update \"NICEPORTAL\".\"UO_CRM_DATA_CONTRACTS\" set RESPONSE_STATUS = ? , RESPONSE_MESSAGE =?, UPDATE_TS = CURRENT_TIMESTAMP where ID =" +
|
||||
tableid;
|
||||
pstmt = conn.prepareStatement(query);
|
||||
pstmt.setString(1, respstatus.toString());
|
||||
pstmt.setString(2, respmessage.toString());
|
||||
|
||||
var rs = pstmt.executeUpdate();
|
||||
globalDebug.UpdateQuery = query;
|
||||
|
||||
pstmt.close();
|
||||
conn.commit();
|
||||
conn.close();
|
||||
|
||||
}
|
||||
|
||||
function PutBPDataInTable(recalljsonRaw, id) {
|
||||
var mynextval;
|
||||
|
||||
var pdcontent = ""
|
||||
if (ParRecallMode) {
|
||||
pdcontent = recalljsonRaw;
|
||||
mynextval = id;
|
||||
globalDebug.mynextval = mynextval;
|
||||
} else {
|
||||
mynextval = getnextval();
|
||||
globalDebug.mynextval = mynextval;
|
||||
pdcontent = $.request.body.asString();
|
||||
}
|
||||
|
||||
// pdcontent = pdcontent.replace(/\"([^(\")"]+)\":/g,"$1:");
|
||||
var JbpObj = JSON.parse(pdcontent);
|
||||
var conn = $.db.getConnection();
|
||||
var pstmt;
|
||||
var query;
|
||||
var vals = {};
|
||||
var data = [];
|
||||
// var query2;
|
||||
// var output = {results: [] };
|
||||
|
||||
try {
|
||||
|
||||
if (!ParRecallMode) {
|
||||
// query = "INSERT INTO \"NICEPORTAL\".\"UO_CRM_DATA_BP\" (ID,ID_MSD,TYPE,GROUP,SALUTATION,TITLE,NAME,SURNAME,PHONE,MOBILE_PHONE,EMAIL,ADDRESS_JSON,IBAN,BIC,SEPA_MANDATE_ID,SIGNATURE_DATE,ACCOUNT_OWNER,STREET,STREET_NO,ZIP_CODE,CITY,JSONRAW,CREATE_TS,UPDATE_TS) values (\"NICEPORTAL\".\"SEQ_CRMBP_ID\".NEXTVAL,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,CURRENT_TIMESTAMP,CURRENT_TIMESTAMP)";
|
||||
query =
|
||||
"INSERT INTO \"NICEPORTAL\".\"UO_CRM_DATA_CONTRACTS\" (ID,ID_MSD,ID_CRM,JSONRAW,B1_CODE,CREATE_TS,UPDATE_TS) values (" + mynextval +
|
||||
",?,?,?,?,CURRENT_TIMESTAMP,CURRENT_TIMESTAMP)";
|
||||
// "INSERT INTO \"NICEPORTAL\".\"UO_CRM_DATA_BP\" (ID,ID_MSD,ID_CRM,TYPE,BPGROUP,SALUTATION,TITLE,NAME,SURNAME,PHONE,MOBILE_PHONE,EMAIL,ADDRESS_JSON,IBAN,BIC,SEPA_MANDATE_ID,SIGNATURE_DATE,ACCOUNT_OWNER,STREET,STREET_NO,ZIP_CODE,CITY,JSONRAW,CREATE_TS,UPDATE_TS) values (\"NICEPORTAL\".\"SEQ_CRMBP_ID\".NEXTVAL,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,CURRENT_TIMESTAMP,CURRENT_TIMESTAMP)";
|
||||
|
||||
pstmt = conn.prepareStatement(query);
|
||||
pstmt.setString(1, JbpObj.contract_id.toString());
|
||||
pstmt.setString(2, JbpObj.bp_crm.toString());
|
||||
pstmt.setString(3, JSON.stringify(JbpObj));
|
||||
pstmt.setString(4, getCardcodebyCRMID(JbpObj.bp_crm));
|
||||
var rs = pstmt.executeUpdate();
|
||||
pstmt.close();
|
||||
conn.commit();
|
||||
conn.close();
|
||||
|
||||
outMsg = {};
|
||||
outMsg.method = "insertDB";
|
||||
outMsg.status = "success";
|
||||
outMessages.push(outMsg);
|
||||
}
|
||||
var cardCode = getCardcodebyCRMID(JbpObj.bp_crm);
|
||||
if (cardCode) {
|
||||
var productList = getProductId(JbpObj.product);
|
||||
var retUpsertContract = [];
|
||||
if (productList) {
|
||||
productList.forEach(function(p) {
|
||||
if (p.BillingMode === 'AO') {
|
||||
outMsg = {};
|
||||
if (ParRecallMode) {
|
||||
outMsg.id = globalDebug.mynextval;
|
||||
}
|
||||
outMsg.method = "copyBP";
|
||||
var bpoutput = copybplib.copyBP(cardCode);
|
||||
outMsg.result = bpoutput;
|
||||
outMessages.push(outMsg);
|
||||
|
||||
var searchparam2 = {};
|
||||
searchparam2.key = "U_CUSTOMER eq '" + cardCode + "-L' and " + "U_EXT_ID_CRM";
|
||||
searchparam2.value = JbpObj.contract_id.toString();
|
||||
retUpsertContract.push(upsContract(searchparam2, JbpObj, p.BillingMode));
|
||||
} else {
|
||||
var searchparam1 = {};
|
||||
searchparam1.key = "U_CUSTOMER eq '" + cardCode + "' and " + "U_EXT_ID_CRM";
|
||||
searchparam1.value = JbpObj.contract_id.toString();
|
||||
retUpsertContract.push(upsContract(searchparam1, JbpObj, p.BillingMode));
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
//var retUpsertBP = upsBP(searchparam, JSON.stringify(bpObj),JbpObj);
|
||||
//var retUpsertBP = upsertBP(searchparam, JSON.stringify(bpObj));
|
||||
//var retUpsertBP = addBP(JSON.stringify(bpObj));
|
||||
|
||||
} catch (e) {
|
||||
$.trace.error(e.message);
|
||||
outMsg = {};
|
||||
if (ParRecallMode) {
|
||||
outMsg.id = globalDebug.mynextval;
|
||||
}
|
||||
outMsg.method = "exceptionHandler";
|
||||
outMsg.status = "error";
|
||||
outMsg.message = e.message;
|
||||
if (debugLevel > 0) {
|
||||
outMsg.exceptionInfo = {};
|
||||
outMsg.exceptionInfo.name = e.name;
|
||||
outMsg.exceptionInfo.message = e.message;
|
||||
outMsg.exceptionInfo.fileName = e.fileName;
|
||||
outMsg.exceptionInfo.lineNumber = e.lineNumber;
|
||||
outMsg.exceptionInfo.columnNumber = e.columnNumber;
|
||||
outMsg.exceptionInfo.stack = e.stack;
|
||||
//outMsg.exceptionInfo.source = e.toSource();
|
||||
}
|
||||
outMessages.push(outMsg);
|
||||
|
||||
vals.status = 'error';
|
||||
//vals.description = e.message;
|
||||
vals.messages = outMessages;
|
||||
|
||||
if (ParDebug) {
|
||||
vals.debug = {};
|
||||
vals.debug.statement = query;
|
||||
}
|
||||
if (debugLevel > 0) {
|
||||
vals.debugInfos = globalDebug;
|
||||
}
|
||||
|
||||
// vals.group = JbpObj.group.toString();
|
||||
// vals.bpobjekt = JSON.stringify(JbpObj);
|
||||
// vals.SLBPObj = JSON.stringify(bpObj);
|
||||
// vals.ResponsUPSER = JSON.stringify(retUpsertBP);
|
||||
// vals.CardCode = retUpsertBP.CardCode;
|
||||
//vals.mode = JSON.stringify(retUpsertBP.mode);
|
||||
data.push(vals);
|
||||
var errbody = JSON.stringify(data);
|
||||
|
||||
$.response.contentType = 'application/json';
|
||||
$.response.setBody(errbody);
|
||||
$.response.status = $.net.http.INTERNAL_SERVER_ERROR;
|
||||
return;
|
||||
}
|
||||
vals.status = outStatus;
|
||||
//vals.description = 'Data accepted and proceeded';
|
||||
// vals.id_crm = JbpObj.id_crm.toString();
|
||||
//vals.id_msd = JbpObj.id_msd.toString();
|
||||
//vals.id_b1 = retUpsertBP.CardCode;
|
||||
//vals.CardCode = retUpsertBP.CardCode;
|
||||
vals.messages = outMessages;
|
||||
//setBPCardCode(mynextval,retUpsertBP.CardCode);
|
||||
//vals.RespnUPSERJ = JSON.stringify(retUpsertBP);
|
||||
if (ParDebug) {
|
||||
if (debugLevel > 0) {
|
||||
vals.debugInfos = globalDebug;
|
||||
}
|
||||
vals.debug = {
|
||||
productList: productList,
|
||||
upsert: retUpsertContract
|
||||
};
|
||||
}
|
||||
//vals.mode = JSON.stringify(retUpsertBP.mode);
|
||||
data.push(vals);
|
||||
var okbody = JSON.stringify(data);
|
||||
//var body = JSON.stringify(test);
|
||||
setRESPONSE(mynextval, outMsg.status, okbody);
|
||||
$.response.contentType = 'application/json';
|
||||
$.response.setBody(okbody);
|
||||
$.response.status = $.net.http.OK;
|
||||
}
|
||||
|
||||
function testmain() {
|
||||
|
||||
var searchparam = {};
|
||||
searchparam.key = "U_EON_ID_CRM";
|
||||
searchparam.value = 'BP777888999x';
|
||||
|
||||
var bpObj = mockbuildBPObj();
|
||||
|
||||
var retUpsertBP = upsBP(searchparam, JSON.stringify(bpObj));
|
||||
|
||||
// setOutputMessage();
|
||||
}
|
||||
|
||||
function recallJSONRAW(idList) {
|
||||
|
||||
var vals = {};
|
||||
var data = [];
|
||||
var conn = $.db.getConnection();
|
||||
var pstmt;
|
||||
var query = "SELECT \"JSONRAW\",\"ID\" FROM \"NICEPORTAL\".\"UO_CRM_DATA_CONTRACTS\" WHERE ID IN ( " + idList + ")";
|
||||
pstmt = conn.prepareStatement(query);
|
||||
//pstmt.setString(1, prodID);
|
||||
var rs = pstmt.executeQuery();
|
||||
if (!rs.next()) {
|
||||
outMsg = {};
|
||||
outMsg.method = "recallJSONRAW";
|
||||
outMsg.message = "Empty ID List Parameter: " + idList;
|
||||
if (debugLevel > 0) {
|
||||
outMsg.message += " / Query: " + query;
|
||||
}
|
||||
outMsg.status = "error";
|
||||
outStatus = "error";
|
||||
// outMsg.message = e.message;
|
||||
outMessages.push(outMsg);
|
||||
|
||||
vals.status = 'error';
|
||||
//vals.description = e.message;
|
||||
vals.messages = outMessages;
|
||||
|
||||
if (ParDebug) {
|
||||
vals.debug = {};
|
||||
vals.debug.statement = query;
|
||||
}
|
||||
if (debugLevel > 0) {
|
||||
vals.debugInfos = globalDebug;
|
||||
}
|
||||
data.push(vals);
|
||||
var errbody = JSON.stringify(data);
|
||||
$.response.contentType = 'application/json';
|
||||
$.response.setBody(errbody);
|
||||
$.response.status = $.net.http.INTERNAL_SERVER_ERROR;
|
||||
} else {
|
||||
do {
|
||||
PutBPDataInTable(rs.getNString(1), rs.getInteger(2));
|
||||
} while (rs.next());
|
||||
}
|
||||
|
||||
// }
|
||||
rs.close();
|
||||
pstmt.close();
|
||||
conn.close();
|
||||
}
|
||||
|
||||
//testmain();
|
||||
|
||||
// begin org
|
||||
|
||||
var content = $.request.body.asString();
|
||||
|
||||
setOutputMessage();
|
||||
ParDebug = $.request.parameters.get('debug') && $.request.parameters.get('debug').toLowerCase() === "true";
|
||||
ParRecallIdList = $.request.parameters.get('recallidlist');
|
||||
if (ParRecallIdList) {
|
||||
ParRecallMode = true;
|
||||
recallJSONRAW(ParRecallIdList);
|
||||
} else {
|
||||
var content = $.request.body.asString();
|
||||
PutBPDataInTable();
|
||||
}
|
||||
//ende org
|
||||
|
||||
//SlLogin();
|
||||
//SlLogin();
|
||||
|
||||
/*var req = 0;
|
||||
req = $.request.parameters.get('crmid');
|
||||
|
||||
if (!req){
|
||||
output.error = "Invalid BP Request - " + req;
|
||||
$.response.status = $.net.http.OK;
|
||||
$.response.contentType = "application/json";
|
||||
$.response.setBody(JSON.stringify(output));
|
||||
}else{
|
||||
|
||||
//addBP(JSON.stringify(bpObj));
|
||||
//updBP(JSON.stringify(bpObj));
|
||||
//GetOrders(req);
|
||||
}
|
||||
*/
|
||||
@@ -156,7 +156,7 @@ function slLogin() {
|
||||
loginInfo.Password = UserPass;
|
||||
loginInfo.CompanyDB = UserComp;
|
||||
|
||||
// SL LOGIN
|
||||
// SL LOGIN
|
||||
var response = slib.SLLogin(JSON.stringify(loginInfo), null, null);
|
||||
|
||||
// B1SESSION and ROUTEID cookies returned by Login
|
||||
@@ -199,4 +199,877 @@ function slLogin() {
|
||||
outStatus = "error";
|
||||
}
|
||||
return loginResult;
|
||||
}
|
||||
}
|
||||
|
||||
function checkItemCode(inItemCode) {
|
||||
var ItemCode = ""; // return value if document doesn't exist
|
||||
outMsg = {};
|
||||
outMsg.method = "checkItemCodeExistsinSAP";
|
||||
outMsg.ItemCode = inItemCode;
|
||||
outMsg.status = "success";
|
||||
outMsg.message = "not exists";
|
||||
if (inItemCode !== "") {
|
||||
var conn = $.db.getConnection();
|
||||
var pstmt;
|
||||
var query =
|
||||
"SELECT T0.\"ItemCode\" FROM \"XXREPXX\".\"OITM\" T0 WHERE T0.\"ItemCode\"= ?";
|
||||
|
||||
query = query.replace(/XXREPXX/g, UserComp);
|
||||
|
||||
pstmt = conn.prepareStatement(query);
|
||||
|
||||
pstmt.setNString(1, inItemCode);
|
||||
|
||||
try {
|
||||
var rs = pstmt.executeQuery();
|
||||
var Documents = [];
|
||||
while (rs.next()) {
|
||||
var Document = {};
|
||||
Document.ItemCode = rs.getNString(1);
|
||||
Documents.push(Document);
|
||||
// return AbsId from last result
|
||||
ItemCode = Document.ItemCode;
|
||||
outMsg.ItemCode = ItemCode;
|
||||
outMsg.message = "exists";
|
||||
}
|
||||
outMsg.Document = Documents;
|
||||
|
||||
rs.close();
|
||||
} finally {
|
||||
pstmt.close();
|
||||
conn.close();
|
||||
|
||||
if (debugLevel > 0) {
|
||||
outMsg.Query = query;
|
||||
outMessages.push(outMsg);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
outStatus = "error";
|
||||
outMsg.status = "error";
|
||||
outMsg.message = "ItemCode: " + inItemCode + " not exists in SAP (OITM)";
|
||||
outMessages.push(outMsg);
|
||||
}
|
||||
return ItemCode;
|
||||
}
|
||||
|
||||
function getItemCode(product_id) {
|
||||
var ItemCode = ""; // return value if product doesn't exist
|
||||
outMsg = {};
|
||||
outMsg.method = "checkProductIdExistsinMappingTable";
|
||||
outMsg.product_id = product_id;
|
||||
outMsg.status = "error";
|
||||
outMsg.message = "not exists";
|
||||
if (product_id) {
|
||||
var conn = $.db.getConnection();
|
||||
var pstmt;
|
||||
var query =
|
||||
"SELECT T0.\"U_ITEMCODE\" FROM \"XXREPXX\".\"@UO_CRM_PRODUCT\" T0 WHERE T0.\"U_CRM_PRODUCT_ID\"= ?";
|
||||
|
||||
query = query.replace(/XXREPXX/g, UserComp);
|
||||
|
||||
if (debugLevel > 0) {
|
||||
outMsg.Query = query;
|
||||
}
|
||||
|
||||
pstmt = conn.prepareStatement(query);
|
||||
|
||||
pstmt.setNString(1, product_id);
|
||||
|
||||
try {
|
||||
var rs = pstmt.executeQuery();
|
||||
var Products = [];
|
||||
while (rs.next()) {
|
||||
var Product = {};
|
||||
Product.ItemCode = rs.getNString(1);
|
||||
Products.push(Product);
|
||||
ItemCode = Product.ItemCode;
|
||||
outMsg.ItemCode = ItemCode;
|
||||
outMsg.status = "success";
|
||||
outMsg.message = "exists";
|
||||
}
|
||||
if (debugLevel > 0) {
|
||||
outMsg.Products = Products;
|
||||
}
|
||||
rs.close();
|
||||
} finally {
|
||||
pstmt.close();
|
||||
conn.close();
|
||||
if (outMsg.status === 'error') {
|
||||
throw new Error("Product not found in mapping table: " + product_id);
|
||||
}
|
||||
if (debugLevel > 0) {
|
||||
outMessages.push(outMsg);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
outStatus = "error";
|
||||
outMsg.status = "error";
|
||||
outMsg.message = "Mandatory parameter is missing in payload (product_id)";
|
||||
//outMessages.push(outMsg);
|
||||
throw new Error(outMsg.message);
|
||||
}
|
||||
checkItemCode(ItemCode);
|
||||
return ItemCode;
|
||||
}
|
||||
|
||||
function getDocEntry(invoiceGUID) {
|
||||
var DocEntry = -1; // return value if document doesn't exist
|
||||
outMsg = {};
|
||||
outMsg.method = "checkDocumentExists";
|
||||
outMsg.invoiceGUID = invoiceGUID;
|
||||
//outMsg.CardCode = CardCode;
|
||||
outMsg.status = "success";
|
||||
outMsg.message = "not exists";
|
||||
if (invoiceGUID) {
|
||||
var conn = $.db.getConnection();
|
||||
var pstmt;
|
||||
var query =
|
||||
"SELECT T0.\"DocEntry\", T0.\"DocNum\", T0.\"NumAtCard\", T0.\"CardCode\", T0.\"DocStatus\", T0.\"U_EON_SRC_ID\" FROM \"XXREPXX\".\"OINV\" T0 WHERE T0.\"U_EON_SRC_GUID\"= ? AND T0.\"U_EON_SRC_SYSTEM\"= 'crm' ";
|
||||
|
||||
query = query.replace(/XXREPXX/g, UserComp);
|
||||
|
||||
pstmt = conn.prepareStatement(query);
|
||||
|
||||
pstmt.setNString(1, invoiceGUID);
|
||||
//pstmt.setNString(2, CardCode.toString());
|
||||
|
||||
try {
|
||||
var rs = pstmt.executeQuery();
|
||||
var Documents = [];
|
||||
while (rs.next()) {
|
||||
var Document = {};
|
||||
Document.DocEntry = rs.getInteger(1);
|
||||
Document.DocNum = rs.getNString(2);
|
||||
Document.NumAtCard = rs.getNString(3);
|
||||
Document.CardCode = rs.getNString(4);
|
||||
Document.DocStatus = rs.getNString(5);
|
||||
Document.U_EON_SRC_ID = rs.getNString(6);
|
||||
Document.U_EON_SRC_GUID = invoiceGUID;
|
||||
Documents.push(Document);
|
||||
// return AbsId from last result
|
||||
DocEntry = Document.DocEntry;
|
||||
outMsg.DocEntry = DocEntry;
|
||||
outMsg.message = "exists";
|
||||
outMsg.status = "error";
|
||||
outStatus = "error";
|
||||
}
|
||||
outMsg.Document = Documents;
|
||||
|
||||
rs.close();
|
||||
} finally {
|
||||
pstmt.close();
|
||||
conn.close();
|
||||
|
||||
if (debugLevel > 0 || outMsg.status === "error") {
|
||||
//outMsg.Query = query;
|
||||
outMessages.push(outMsg);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
outStatus = "error";
|
||||
outMsg.status = "error";
|
||||
outMsg.message = "Mandatory parameter is missing in payload (invoice_crm_guid)";
|
||||
outMessages.push(outMsg);
|
||||
}
|
||||
|
||||
return DocEntry;
|
||||
}
|
||||
|
||||
function getCardCode(CRMID) {
|
||||
var CardCode = ""; // return value if customer doesn't exist
|
||||
outMsg = {};
|
||||
outMsg.method = "getCardCode";
|
||||
outMsg.CRMID = CRMID;
|
||||
outMsg.status = "error";
|
||||
outMsg.message = "customer not found";
|
||||
if (CRMID) {
|
||||
var conn = $.db.getConnection();
|
||||
var pstmt;
|
||||
var query =
|
||||
"SELECT T0.\"CardCode\",T0.\"U_EON_PGN\" FROM \"XXREPXX\".\"OCRD\" T0 WHERE T0.\"CardType\"=\'C\' AND T0.\"U_EON_ID_CRM\"= ?";
|
||||
|
||||
query = query.replace(/XXREPXX/g, UserComp);
|
||||
|
||||
pstmt = conn.prepareStatement(query);
|
||||
|
||||
pstmt.setNString(1, CRMID);
|
||||
|
||||
try {
|
||||
var rs = pstmt.executeQuery();
|
||||
while (rs.next()) {
|
||||
CardCode = rs.getNString(1);
|
||||
outMsg.CardCode = CardCode;
|
||||
outMsg.U_EON_PGN = rs.getNString(2);
|
||||
outMsg.status = "success";
|
||||
outMsg.message = "exists";
|
||||
}
|
||||
|
||||
rs.close();
|
||||
} finally {
|
||||
pstmt.close();
|
||||
conn.close();
|
||||
|
||||
if (debugLevel > 0 || CardCode === "") {
|
||||
if (debugLevel > 0) {
|
||||
outMsg.Query = query;
|
||||
}
|
||||
outMessages.push(outMsg);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
//outStatus = "error";
|
||||
outMsg.status = "error";
|
||||
outMsg.message = "Mandatory parameter is missing in payload (CRM ID)";
|
||||
outMessages.push(outMsg);
|
||||
}
|
||||
if (CardCode === "") {
|
||||
outStatus = "error";
|
||||
}
|
||||
return CardCode;
|
||||
}
|
||||
|
||||
function getSignatureDate(ContractID) {
|
||||
var sigdate;
|
||||
outMsg = {};
|
||||
outMsg.method = "getSignatureDate";
|
||||
outMsg.ContractID = ContractID;
|
||||
outMsg.status = "error";
|
||||
outMsg.message = "invalid ContractID";
|
||||
if (ContractID) {
|
||||
var conn = $.db.getConnection();
|
||||
var pstmt;
|
||||
var query =
|
||||
"SELECT T0.\"U_SIGNATURE_DATE\" FROM \"XXREPXX\".\"@EON_CONTRACT\" T0 WHERE T0.\"U_EXT_ID_CRM\"= ?";
|
||||
|
||||
query = query.replace(/XXREPXX/g, UserComp);
|
||||
|
||||
pstmt = conn.prepareStatement(query);
|
||||
|
||||
pstmt.setNString(1, ContractID);
|
||||
|
||||
try {
|
||||
var rs = pstmt.executeQuery();
|
||||
while (rs.next()) {
|
||||
sigdate = rs.getNString(1);
|
||||
outMsg.sigdate = sigdate;
|
||||
outMsg.ContractID = ContractID;
|
||||
outMsg.status = "success";
|
||||
outMsg.message = "exists";
|
||||
}
|
||||
|
||||
rs.close();
|
||||
} finally {
|
||||
pstmt.close();
|
||||
conn.close();
|
||||
|
||||
if (debugLevel > 0 || sigdate === "") {
|
||||
if (debugLevel > 0) {
|
||||
outMsg.Query = query;
|
||||
}
|
||||
outMessages.push(outMsg);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
//outStatus = "error";
|
||||
outMsg.status = "error";
|
||||
outMsg.message = "Mandatory parameter is missing in payload (ContractID)";
|
||||
outMessages.push(outMsg);
|
||||
}
|
||||
if (sigdate === "") {
|
||||
outStatus = "error";
|
||||
}
|
||||
return sigdate;
|
||||
}
|
||||
|
||||
function getSeries(objectCode, seriesName) {
|
||||
var series = 0; // return value if series doesn't exist
|
||||
outMsg = {};
|
||||
outMsg.method = "getSeries";
|
||||
outMsg.seriesName = seriesName;
|
||||
outMsg.status = "error";
|
||||
outMsg.message = "invalid document series";
|
||||
if (seriesName) {
|
||||
var conn = $.db.getConnection();
|
||||
var pstmt;
|
||||
var query =
|
||||
"SELECT T0.\"Series\" FROM \"XXREPXX\".\"NNM1\" T0 WHERE T0.\"ObjectCode\"= ? AND T0.\"SeriesName\"= ?";
|
||||
|
||||
query = query.replace(/XXREPXX/g, UserComp);
|
||||
|
||||
pstmt = conn.prepareStatement(query);
|
||||
|
||||
pstmt.setNString(1, objectCode);
|
||||
pstmt.setNString(2, seriesName);
|
||||
|
||||
try {
|
||||
var rs = pstmt.executeQuery();
|
||||
while (rs.next()) {
|
||||
series = rs.getInteger(1);
|
||||
outMsg.series = series;
|
||||
outMsg.status = "success";
|
||||
outMsg.message = "exists";
|
||||
}
|
||||
|
||||
rs.close();
|
||||
} finally {
|
||||
pstmt.close();
|
||||
conn.close();
|
||||
|
||||
if (debugLevel > 0 || series === 0) {
|
||||
if (debugLevel > 0) {
|
||||
outMsg.Query = query;
|
||||
}
|
||||
outMessages.push(outMsg);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
//outStatus = "error";
|
||||
outMsg.status = "error";
|
||||
outMsg.message = "Mandatory parameter is missing in payload (OrderType)";
|
||||
outMessages.push(outMsg);
|
||||
}
|
||||
if (series === 0) {
|
||||
outStatus = "error";
|
||||
}
|
||||
return series;
|
||||
}
|
||||
|
||||
function getDocDates() {
|
||||
var docDate, taxDate;
|
||||
outMsg = {};
|
||||
outMsg.method = "getDocDates";
|
||||
outMsg.status = "error";
|
||||
var conn = $.db.getConnection();
|
||||
var pstmt;
|
||||
var query =
|
||||
'with currentPeriod as (select * from "XXREPXX".OFPR where current_date between "F_RefDate" and "T_RefDate"), \
|
||||
nextPeriod as (select top 1 * from "XXREPXX".OFPR where "F_RefDate" > current_date order by "F_RefDate") \
|
||||
select case when currentPeriod."PeriodStat"=\'N\' then current_date \
|
||||
else to_date(nextPeriod."F_RefDate") end "DocDate", current_date as "TaxDate" \
|
||||
from currentPeriod left join nextPeriod on 1=1';
|
||||
query = query.replace(/XXREPXX/g, UserComp);
|
||||
pstmt = conn.prepareStatement(query);
|
||||
|
||||
try {
|
||||
var rs = pstmt.executeQuery();
|
||||
while (rs.next()) {
|
||||
docDate = rs.getDate(1);
|
||||
taxDate = rs.getDate(2);
|
||||
outMsg.docDate = docDate;
|
||||
outMsg.taxDate = taxDate;
|
||||
outMsg.status = "success";
|
||||
}
|
||||
|
||||
rs.close();
|
||||
} finally {
|
||||
pstmt.close();
|
||||
conn.close();
|
||||
|
||||
if (debugLevel > 0) {
|
||||
if (debugLevel > 0) {
|
||||
outMsg.Query = query;
|
||||
}
|
||||
outMessages.push(outMsg);
|
||||
}
|
||||
}
|
||||
return {
|
||||
docDate: docDate,
|
||||
taxDate: taxDate
|
||||
};
|
||||
}
|
||||
|
||||
function splitcardname(mycardname) {
|
||||
var mycardnamenew = [];
|
||||
if (mycardname.length > 50) {
|
||||
var mycardname1 = mycardname.substring(0, 50);
|
||||
var mylastindex1 = mycardname1.lastIndexOf(' ');
|
||||
var mylastindex2 = mycardname1.lastIndexOf('-');
|
||||
var mylastindex3 = mycardname1.lastIndexOf('&');
|
||||
var mylastindex = Math.max(mylastindex1, mylastindex2, mylastindex3);
|
||||
mycardname1 = mycardname.substring(0, mylastindex);
|
||||
var mycardname2 = mycardname.substring(mylastindex + 1, 100);
|
||||
mycardnamenew.push(mycardname1);
|
||||
mycardnamenew.push(mycardname2);
|
||||
} else {
|
||||
mycardnamenew.push(mycardname);
|
||||
mycardnamenew.push("");
|
||||
}
|
||||
return mycardnamenew;
|
||||
}
|
||||
|
||||
function buildDocument(DocumentIn, AttachmentEntry) {
|
||||
var DocumentNew = {};
|
||||
draftMode = DocumentIn.draft_state;
|
||||
myDebug.draftMode = draftMode;
|
||||
if (draftMode) {
|
||||
DocumentNew.DocObjectCode = objecttype;
|
||||
}
|
||||
myDebug.MapperMode = "CREATE";
|
||||
DocumentNew.CardCode = getCardCode(DocumentIn.account.gp_number);
|
||||
const {
|
||||
docDate, taxDate
|
||||
} = getDocDates();
|
||||
DocumentNew.DocDate = datetimelib.convertToISODate(docDate);
|
||||
DocumentNew.TaxDate = datetimelib.convertToISODate(taxDate);
|
||||
DocumentNew.NumAtCard = DocumentIn.web_orderid;
|
||||
//: DocumentIn.invoice_crm_id;
|
||||
DocumentNew.DocCurrency = DocumentIn.CurrencyISOCode;
|
||||
DocumentNew.Comments = DocumentIn.ShippingComments;
|
||||
DocumentNew.U_EON_CRM_REF = DocumentIn.contract_id;
|
||||
DocumentNew.TransportationCode = DocumentIn.TransportMethod;
|
||||
if (DocumentIn.invoicetype === 'Sammelrechnung') {
|
||||
DocumentNew.U_EON_PERIOD_FROM = datetimelib.convertToISODate(DocumentIn.billing_period.start);
|
||||
DocumentNew.U_EON_PERIOD_TO = datetimelib.convertToISODate(DocumentIn.billing_period.end);
|
||||
//Muss aus Vertrag gezogen werden...
|
||||
//DocumentNew.U_EON_SIGNATURE_DATE = datetimelib.convertToISODate(new Date());
|
||||
DocumentNew.U_EON_SIGNATURE_DATE = getSignatureDate(DocumentIn.contract_id);
|
||||
DocumentNew.U_EON_CRM_REF = DocumentIn.contract_id;
|
||||
} else {
|
||||
DocumentNew.U_EON_PERIOD_FROM = DocumentIn.order_completed.substring(0, 10);
|
||||
DocumentNew.U_EON_PERIOD_TO = DocumentIn.order_completed.substring(0, 10);
|
||||
DocumentNew.U_EON_SIGNATURE_DATE = datetimelib.convertToISODate(DocumentIn.signature_date);
|
||||
}
|
||||
DocumentNew.U_EON_SRC_SYSTEM = 'crm';
|
||||
DocumentNew.U_EON_SRC_ID = DocumentIn.invoice_crm_id;
|
||||
DocumentNew.U_EON_SRC_GUID = DocumentIn.invoice_crm_guid;
|
||||
DocumentNew.AttachmentEntry = AttachmentEntry;
|
||||
var invoiceAddressExists = DocumentIn.invoice_address && DocumentIn.invoice_address.address && DocumentIn.invoice_address.address.city;
|
||||
var shippingAddressExists = DocumentIn.shipping_address && DocumentIn.shipping_address.address && DocumentIn.shipping_address.address.city;
|
||||
if (invoiceAddressExists && DocumentIn.invoice_address.person.name) {
|
||||
DocumentNew.ContactPersonCode = 0;
|
||||
}
|
||||
if (DocumentIn.description) {
|
||||
DocumentNew.Comments = DocumentIn.description.substring(0, 254);
|
||||
}
|
||||
DocumentNew.DocumentReferences = [
|
||||
{
|
||||
RefObjType: 'rot_ExternalDocument',
|
||||
ExtDocNum: logTableId.toString(),
|
||||
Remark: 'UO_DOCUMENTS_RAWCALL'
|
||||
}
|
||||
];
|
||||
if (invoiceAddressExists || shippingAddressExists) {
|
||||
DocumentNew.AddressExtension = {};
|
||||
if (invoiceAddressExists) {
|
||||
DocumentNew.AddressExtension.BillToAddress2 = splitcardname(DocumentIn.invoice_address.person.company_name)[0];
|
||||
DocumentNew.AddressExtension.U_CompanyName2B = splitcardname(DocumentIn.invoice_address.person.company_name)[1].substring(0, 50);
|
||||
DocumentNew.AddressExtension.BillToBuilding = DocumentIn.invoice_address.address.street_addon;
|
||||
DocumentNew.AddressExtension.BillToAddress3 = DocumentIn.invoice_address.person.salutation + " " + DocumentIn.invoice_address.person.name;
|
||||
DocumentNew.AddressExtension.BillToStreet = DocumentIn.invoice_address.address.street_name;
|
||||
DocumentNew.AddressExtension.BillToStreetNo = DocumentIn.invoice_address.address.housenumber;
|
||||
DocumentNew.AddressExtension.BillToZipCode = DocumentIn.invoice_address.address.postalcode;
|
||||
DocumentNew.AddressExtension.BillToCity = DocumentIn.invoice_address.address.city;
|
||||
DocumentNew.AddressExtension.BillToCountry = DocumentIn.invoice_address.address.country;
|
||||
|
||||
}
|
||||
if (shippingAddressExists) {
|
||||
DocumentNew.AddressExtension.ShipToAddress2 = splitcardname(DocumentIn.shipping_address.person.company_name)[0];
|
||||
DocumentNew.AddressExtension.U_CompanyName2S = splitcardname(DocumentIn.shipping_address.person.company_name)[1].substring(0, 50);
|
||||
DocumentNew.AddressExtension.ShipToAddress3 = DocumentIn.shipping_address.person.salutation + " " + DocumentIn.shipping_address.person.name;
|
||||
DocumentNew.AddressExtension.ShipToStreet = DocumentIn.shipping_address.address.street_name;
|
||||
DocumentNew.AddressExtension.ShipToStreetNo = DocumentIn.shipping_address.address.housenumber;
|
||||
DocumentNew.AddressExtension.ShipToZipCode = DocumentIn.shipping_address.address.postalcode;
|
||||
DocumentNew.AddressExtension.ShipToCity = DocumentIn.shipping_address.address.city;
|
||||
DocumentNew.AddressExtension.ShipToCountry = DocumentIn.shipping_address.address.country;
|
||||
DocumentNew.AddressExtension.ShipToBuilding = DocumentIn.shipping_address.address.street_addon;
|
||||
}
|
||||
}
|
||||
|
||||
DocumentNew.DocumentLines = [];
|
||||
var needsSpecialLines = DocumentIn.products.findIndex(function(p) {
|
||||
return p.product_crm_title && p.product_crm_title.startsWith('IN_ZUS');
|
||||
}) > -1;
|
||||
if (needsSpecialLines) {
|
||||
DocumentNew.DocumentSpecialLines = [];
|
||||
DocumentNew.DocumentSpecialLines.push({
|
||||
AfterLineNumber: -1,
|
||||
LineType: "dslt_Text",
|
||||
LineText: "Im Paket enthalten:"
|
||||
});
|
||||
}
|
||||
// Hauptprodukte
|
||||
for (var g in DocumentIn.products) {
|
||||
var myItemLines = {};
|
||||
if (!(DocumentIn.products[g].product_crm_title && DocumentIn.products[g].product_crm_title.startsWith('IN_ZUS'))) {
|
||||
myItemLines.ItemCode = getItemCode(DocumentIn.products[g].product_id);
|
||||
myItemLines.ItemDescription = DocumentIn.products[g].product_invoice_title;
|
||||
myItemLines.Quantity = DocumentIn.products[g].amount;
|
||||
// myItemLines.WarehouseCode = DocumentIn.products[g].Warehouse;
|
||||
myItemLines.UnitPrice = DocumentIn.products[g].discounted_single_price;
|
||||
myItemLines.U_EON_PERIOD_FROM = DocumentIn.invoicetype === 'Sammelrechnung' ? datetimelib.convertToISODate(DocumentIn.billing_period.start) :
|
||||
DocumentIn.order_completed.substring(0, 10);
|
||||
myItemLines.U_EON_PERIOD_TO = DocumentIn.invoicetype === 'Sammelrechnung' ? datetimelib.convertToISODate(DocumentIn.billing_period.end) :
|
||||
DocumentIn.order_completed.substring(0, 10);
|
||||
// myItemLines.DiscountPercent = DocumentIn.OrderLineItems[g].RowDiscount;
|
||||
myItemLines.ProjectCode = DocumentIn.products[g].orderid;
|
||||
/*var locationsAdressExists = DocumentIn.locations && DocumentIn.locations[0].address && DocumentIn.locations[0].address.city;
|
||||
|
||||
// myItemLines.U_KU_SONumber = DocumentIn.OrderLineItems[g].RelatedSalesOrder ? DocumentIn.OrderLineItems[g].RelatedSalesOrder : null;
|
||||
if (g==='0' && locationsAdressExists)
|
||||
{
|
||||
var locationsText = "Standort:";
|
||||
DocumentIn.locations.forEach(function (loc) {
|
||||
locationsText += "\n" + loc.address.street_name + " " + loc.address.housenumber + "\n" + loc.address.postalcode + " " + loc.address.city;
|
||||
});
|
||||
myItemLines.ItemDetails = locationsText;
|
||||
}*/
|
||||
if (DocumentIn.products[g].service_description) {
|
||||
myItemLines.ItemDetails = DocumentIn.products[g].service_description;
|
||||
}
|
||||
DocumentNew.DocumentLines.push(myItemLines);
|
||||
}
|
||||
}
|
||||
if (needsSpecialLines) {
|
||||
DocumentNew.DocumentSpecialLines.push({
|
||||
AfterLineNumber: DocumentNew.DocumentLines.length - 1,
|
||||
LineType: "dslt_Subtotal",
|
||||
LineText: "Zwischensumme"
|
||||
});
|
||||
DocumentNew.DocumentSpecialLines.push({
|
||||
AfterLineNumber: DocumentNew.DocumentLines.length - 1,
|
||||
LineType: "dslt_Text",
|
||||
LineText: "Zusatzleistungen:"
|
||||
});
|
||||
}
|
||||
// Zusatzprodukte
|
||||
for (var g in DocumentIn.products) {
|
||||
var myItemLines = {};
|
||||
if (DocumentIn.products[g].product_crm_title && DocumentIn.products[g].product_crm_title.startsWith('IN_ZUS')) {
|
||||
myItemLines.ItemCode = getItemCode(DocumentIn.products[g].product_id);
|
||||
myItemLines.ItemDescription = DocumentIn.products[g].product_invoice_title;
|
||||
myItemLines.Quantity = DocumentIn.products[g].amount;
|
||||
// myItemLines.WarehouseCode = DocumentIn.products[g].Warehouse;
|
||||
myItemLines.UnitPrice = DocumentIn.products[g].discounted_single_price;
|
||||
myItemLines.U_EON_PERIOD_FROM = DocumentIn.invoicetype === 'Sammelrechnung' ? datetimelib.convertToISODate(DocumentIn.billing_period.start) :
|
||||
DocumentIn.order_completed.substring(0, 10);
|
||||
myItemLines.U_EON_PERIOD_TO = DocumentIn.invoicetype === 'Sammelrechnung' ? datetimelib.convertToISODate(DocumentIn.billing_period.end) :
|
||||
DocumentIn.order_completed.substring(0, 10);
|
||||
// myItemLines.DiscountPercent = DocumentIn.OrderLineItems[g].RowDiscount;
|
||||
myItemLines.ProjectCode = DocumentIn.products[g].orderid;
|
||||
/*var locationsAdressExists = DocumentIn.locations && DocumentIn.locations[0].address && DocumentIn.locations[0].address.city;
|
||||
|
||||
// myItemLines.U_KU_SONumber = DocumentIn.OrderLineItems[g].RelatedSalesOrder ? DocumentIn.OrderLineItems[g].RelatedSalesOrder : null;
|
||||
if (g==='0' && locationsAdressExists)
|
||||
{
|
||||
var locationsText = "Standort:";
|
||||
DocumentIn.locations.forEach(function (loc) {
|
||||
locationsText += "\n" + loc.address.street_name + " " + loc.address.housenumber + "\n" + loc.address.postalcode + " " + loc.address.city;
|
||||
});
|
||||
myItemLines.ItemDetails = locationsText;
|
||||
}*/
|
||||
if (DocumentIn.products[g].service_description) {
|
||||
myItemLines.ItemDetails = DocumentIn.products[g].service_description;
|
||||
}
|
||||
DocumentNew.DocumentLines.push(myItemLines);
|
||||
}
|
||||
}
|
||||
if (needsSpecialLines) {
|
||||
DocumentNew.DocumentSpecialLines.push({
|
||||
AfterLineNumber: DocumentNew.DocumentLines.length - 1,
|
||||
LineType: "dslt_Subtotal",
|
||||
LineText: "Zwischensumme"
|
||||
});
|
||||
}
|
||||
|
||||
return DocumentNew;
|
||||
}
|
||||
|
||||
function setAperiodicAccounts(createBody) {
|
||||
var newBody = JSON.parse(JSON.stringify(createBody));
|
||||
var accountList = [];
|
||||
var aperiodicAccountAssignment = [];
|
||||
outMsg = {};
|
||||
outMsg.method = "setAperiodicAccounts.previewInvoice";
|
||||
outMsg.status = "error";
|
||||
|
||||
//create preview invoice
|
||||
var responsePreview = slib.previewInvoice(JSON.stringify({
|
||||
Document: createBody
|
||||
}), SESSIONID, NODEID);
|
||||
myDebug.statusPreview = responsePreview.status;
|
||||
outMsg.statuscode = responsePreview.status;
|
||||
myDebug.responsePreview = JSON.parse(responsePreview.body.asString());
|
||||
if (responsePreview.status >= 200 && responsePreview.status < 300) {
|
||||
outMsg.status = "success";
|
||||
var previewInvObj = JSON.parse(responsePreview.body.asString());
|
||||
// erstelle eine eindeutige Liste von Konten, basierend auf Zeilen mit aperiodischem Zeitraum
|
||||
accountList = previewInvObj.DocumentLines.filter(function(dl) {
|
||||
return dl.U_EON_PERIOD_TO.substring(0, 4) < createBody.DocDate.substring(0, 4)
|
||||
})
|
||||
.map(function(al) {
|
||||
return al.AccountCode
|
||||
})
|
||||
.filter(function(account, index, inputArray) {
|
||||
return inputArray.indexOf(account) == index;
|
||||
});
|
||||
myDebug.accountListOfAperiodicLines = accountList;
|
||||
if (debugLevel > 0) {
|
||||
outMessages.push(outMsg);
|
||||
}
|
||||
//lookup aperiodic accounts
|
||||
outMsg = {};
|
||||
outMsg.method = "setAperiodicAccounts.lookupAccounts";
|
||||
outMsg.status = "error";
|
||||
//"SELECT T0.\"U_EON_ACCAPER\", T0.\"AcctName\" FROM OACT T0 WHERE T0.\"AcctCode\" = ?
|
||||
var conn = $.hdb.getConnection();
|
||||
accountList.forEach(function(accountCode) {
|
||||
var rs = conn.executeQuery('SELECT T0."U_EON_ACCAPER", T0."AcctCode", T0."AcctName" FROM "' + UserComp +
|
||||
'".OACT T0 WHERE T0."AcctCode" = ?', accountCode);
|
||||
if (rs[0].U_EON_ACCAPER) {
|
||||
aperiodicAccountAssignment.push({
|
||||
accountCode: rs[0].AcctCode,
|
||||
aperiodicAccountCode: rs[0].U_EON_ACCAPER
|
||||
})
|
||||
}
|
||||
});
|
||||
conn.close();
|
||||
outMsg.aperiodicAccountAssignment = aperiodicAccountAssignment;
|
||||
// aperiodische Konten in Belegzeilen setzen
|
||||
for (var i = 0; i < previewInvObj.DocumentLines.length; i++) {
|
||||
var oldAccount = previewInvObj.DocumentLines[i].AccountCode;
|
||||
var accountMapping = aperiodicAccountAssignment.find(function(a) {
|
||||
return a.accountCode === oldAccount
|
||||
});
|
||||
if (accountMapping && accountMapping.aperiodicAccountCode) {
|
||||
newBody.DocumentLines[i].AccountCode = accountMapping.aperiodicAccountCode;
|
||||
}
|
||||
}
|
||||
outMsg.status = "success";
|
||||
} else {
|
||||
outMsg.status = "error";
|
||||
//outMsg.message = myDebug.responsePreview;
|
||||
outStatus = "error";
|
||||
var slError = myDebug.responsePreview.error;
|
||||
if (slError && slError.hasOwnProperty("code") && slError.message && slError.message.value) {
|
||||
outMsg.message = slError.message.value + " (Code: " + slError.code.toString() + ")";
|
||||
} else {
|
||||
outMsg.message = JSON.stringify(myDebug.responsePreview);
|
||||
}
|
||||
outMsg.response = myDebug.responsePreview;
|
||||
}
|
||||
if (debugLevel > 0 || outMsg.status == "error") {
|
||||
outMessages.push(outMsg);
|
||||
}
|
||||
return newBody;
|
||||
}
|
||||
|
||||
function buildFilesObj(crmAttachments) {
|
||||
var filesObj;
|
||||
outMsg = {};
|
||||
outMsg.method = "lookup MIME Types";
|
||||
outMsg.status = 'success';
|
||||
var conn = $.hdb.getConnection();
|
||||
filesObj = crmAttachments.map(function(a) {
|
||||
var rs = conn.executeQuery('SELECT T0."Code", T0."Name" FROM "' + UserComp + '"."@UO_MIME_TYPES" T0 WHERE T0."Code" = ?', a.document_mime_type);
|
||||
if (rs.length > 0) {
|
||||
return {
|
||||
contentType: rs[0].Name,
|
||||
fileName: $.util.createUuid() + "_" + a.document_name,
|
||||
b64Content: a.document_content
|
||||
}
|
||||
} else {
|
||||
outMsg.status = "error";
|
||||
outStatus = "error";
|
||||
outMsg.message = "MIME Type '" + a.document_mime_type + "' not found";
|
||||
}
|
||||
});
|
||||
conn.close();
|
||||
if (debugLevel > 0) {
|
||||
outMsg.filesObj = filesObj;
|
||||
}
|
||||
if (debugLevel > 0 || outMsg.status == "error") {
|
||||
outMessages.push(outMsg);
|
||||
}
|
||||
return filesObj;
|
||||
}
|
||||
|
||||
function upsertDocument(inObj) {
|
||||
try {
|
||||
var DocumentIn = JSON.parse(inObj);
|
||||
var DocEntry = getDocEntry(DocumentIn.invoice_crm_guid);
|
||||
var attachmentEntry = -1;
|
||||
|
||||
if (outStatus !== "error") {
|
||||
slLoggedIn = slLogin();
|
||||
if (outStatus !== "error" && outStatus !== "exists" && DocumentIn.attachments) {
|
||||
// Erstellung des Attachments Objekt inkl. Hochladen der Dateien - POST /b1s/v1/Attachments2
|
||||
var filesObj = buildFilesObj(DocumentIn.attachments);
|
||||
if (outStatus !== "error") {
|
||||
outMsg = {};
|
||||
outMsg.method = "uploadAttachments";
|
||||
outMsg.status = "error";
|
||||
var response = slib.callServiceLayerFileUpload('/b1s/v1/Attachments2', $.net.http.POST, filesObj, SESSIONID, NODEID);
|
||||
outMsg.statuscode = response.status;
|
||||
var parsedResponseUpload = response.body ? JSON.parse(response.body.asString()) : {};
|
||||
if (response.status >= 200 && response.status < 300) {
|
||||
outMsg.status = "success";
|
||||
var attachmentObjResponse = parsedResponseUpload;
|
||||
// attachmentEntry = AbsoluteEntry aus Response
|
||||
if (attachmentObjResponse.AbsoluteEntry > 0) {
|
||||
attachmentEntry = attachmentObjResponse.AbsoluteEntry;
|
||||
outMsg.AttachmentEntry = attachmentEntry;
|
||||
}
|
||||
} else if (response.exception) {
|
||||
outStatus = "error";
|
||||
outMsg.status = "error";
|
||||
outMsg.message = response.exception;
|
||||
} else {
|
||||
outStatus = "error";
|
||||
outMsg.status = "error";
|
||||
var slError = parsedResponseUpload.error;
|
||||
if (slError && slError.hasOwnProperty("code") && slError.message && slError.message.value) {
|
||||
outMsg.message = slError.message.value + " (Code: " + slError.code.toString() + ")";
|
||||
} else {
|
||||
outMsg.message = JSON.stringify(parsedResponseUpload);
|
||||
}
|
||||
}
|
||||
if (debugLevel > 0 || outMsg.status == "error") {
|
||||
outMessages.push(outMsg);
|
||||
}
|
||||
}
|
||||
// Anreicherung der UDFs - PATCH /b1s/v1/Attachments2
|
||||
if (outStatus !== 'error') {
|
||||
outMsg = {};
|
||||
outMsg.method = "updateAttachments";
|
||||
outMsg.status = "error";
|
||||
var attachmentPatchBody = {
|
||||
AbsoluteEntry: attachmentEntry,
|
||||
Attachments2_Lines: DocumentIn.attachments.map(function(a, idx) {
|
||||
return {
|
||||
AbsoluteEntry: attachmentEntry,
|
||||
LineNum: idx + 1,
|
||||
Override: 'tYES',
|
||||
U_EON_EDOC_REL: 'Y',
|
||||
U_EON_ORIG_FILE: a.document_name,
|
||||
U_EON_MIME_TYPE: a.document_mime_type,
|
||||
U_EON_DOC_GUID: a.document_guid,
|
||||
U_EON_TRANS_KEY: a.transmission_key
|
||||
};
|
||||
})
|
||||
};
|
||||
if (debugLevel > 0) {
|
||||
outMsg.requestBody = attachmentPatchBody;
|
||||
}
|
||||
var response = slib.patchDynamicEntity('Attachments2', attachmentEntry, JSON.stringify(attachmentPatchBody), SESSIONID, NODEID, false);
|
||||
|
||||
outMsg.statuscode = response.status;
|
||||
var parsedResponseUpdate = response.body ? JSON.parse(response.body.asString()) : {};
|
||||
if (response.status >= 200 && response.status < 300) {
|
||||
outMsg.status = "success";
|
||||
} else if (response.exception) {
|
||||
outStatus = "error";
|
||||
outMsg.status = "error";
|
||||
outMsg.message = response.exception;
|
||||
} else {
|
||||
outStatus = "error";
|
||||
outMsg.status = "error";
|
||||
var slError = parsedResponseUpdate.error;
|
||||
if (slError && slError.hasOwnProperty("code") && slError.message && slError.message.value) {
|
||||
outMsg.message = slError.message.value + " (Code: " + slError.code.toString() + ")";
|
||||
} else {
|
||||
outMsg.message = JSON.stringify(parsedResponseUpdate);
|
||||
}
|
||||
}
|
||||
if (debugLevel > 0 || outMsg.status == "error") {
|
||||
outMessages.push(outMsg);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (outStatus !== "error" && outStatus !== "exists") {
|
||||
//myDebug.CreateCode = "activated";
|
||||
var createBody = buildDocument(DocumentIn, attachmentEntry);
|
||||
myDebug.CreateObj = createBody;
|
||||
var aperiodicLines = createBody.DocumentLines.filter(function(dl) {
|
||||
return dl.U_EON_PERIOD_TO.substring(0, 4) < createBody.DocDate.substring(0, 4)
|
||||
});
|
||||
if (aperiodicLines.length > 0) {
|
||||
createBody = setAperiodicAccounts(createBody);
|
||||
}
|
||||
// EMPEPI1-141: Ablehnung von Rechnungen im Entwurfsmodus ab 25.11.2022
|
||||
const today = new Date();
|
||||
const draftNotAllowedFrom = new Date('2022-11-28T00:00:00+01:00');
|
||||
const draftNotAllowedUntil = new Date('2022-12-06T23:59:59+01:00');
|
||||
if (draftMode && today >= draftNotAllowedFrom && today <= draftNotAllowedUntil) {
|
||||
outMsg = {};
|
||||
outMsg.method = "checkDraft";
|
||||
outMsg.status = "error";
|
||||
outMsg.message = "Draft documents are currently not allowed";
|
||||
outMessages.push(outMsg);
|
||||
outStatus = "error";
|
||||
} else {
|
||||
outMsg = {};
|
||||
outMsg.method = "create";
|
||||
//consDoc = buildSCObj(jsonSFCall, currentSC, addrObj, output.method);
|
||||
//outMsg.CreateObj = createBody;
|
||||
|
||||
var responseCreate;
|
||||
if (draftMode) {
|
||||
responseCreate = slib.createDraft(JSON.stringify(createBody), SESSIONID, NODEID);
|
||||
} else {
|
||||
responseCreate = slib.createInvoice(JSON.stringify(createBody), SESSIONID, NODEID);
|
||||
}
|
||||
myDebug.statusCreate = responseCreate.status;
|
||||
outMsg.statuscode = responseCreate.status;
|
||||
myDebug.responseCreate = JSON.parse(responseCreate.body.asString());
|
||||
if (responseCreate.status >= 200 && responseCreate.status < 300) {
|
||||
myDebug.Createmessage = "Create sucessfull";
|
||||
outMsg.status = "success";
|
||||
var createdInvObj = JSON.parse(responseCreate.body.asString());
|
||||
outMsg.DocEntry = createdInvObj.DocEntry;
|
||||
logDocEntry = createdInvObj.DocEntry;
|
||||
outMsg.DocNum = createdInvObj.DocNum;
|
||||
//outMsg.currentOBJECT = createdInvObj;
|
||||
} else {
|
||||
myDebug.Createmessage = "Create error occured";
|
||||
//output.errorCreatestatus = myDebug.Createmessage;
|
||||
outStatus = "error";
|
||||
outMsg.status = "error";
|
||||
var slError = myDebug.responseCreate.error;
|
||||
if (slError && slError.hasOwnProperty("code") && slError.message && slError.message.value) {
|
||||
outMsg.message = slError.message.value + " (Code: " + slError.code.toString() + ")";
|
||||
} else {
|
||||
outMsg.message = JSON.stringify(myDebug.responseCreate);
|
||||
}
|
||||
outMsg.response = myDebug.responseCreate;
|
||||
}
|
||||
outMessages.push(outMsg);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// }
|
||||
} catch (e) {
|
||||
exceptionHandler(e);
|
||||
return;
|
||||
}
|
||||
|
||||
if (slLoggedIn) {
|
||||
slib.SLLogout(SESSIONID, NODEID);
|
||||
}
|
||||
}
|
||||
var content = $.request.body.asString();
|
||||
try {
|
||||
outMsg = {};
|
||||
outMsg.method = "logRequest";
|
||||
outMsg.status = "error";
|
||||
logTableId = logginglib.logCall2Table(content, "UO_DOCUMENTS_RAWCALL", objecttype, serviceName, true);
|
||||
outMsg.logTableId = logTableId;
|
||||
if (logTableId > 0) {
|
||||
outMsg.status = "success";
|
||||
}
|
||||
if (debugLevel > 0) {
|
||||
outMessages.push(outMsg);
|
||||
}
|
||||
} catch (e) {
|
||||
outStatus = "error";
|
||||
exceptionHandler(e);
|
||||
}
|
||||
setConnectionParams(content);
|
||||
if (outStatus !== "error") {
|
||||
upsertDocument(content);
|
||||
}
|
||||
|
||||
updateLogEntry(logTableId, logDocEntry, draftMode ? '112' : objecttype);
|
||||
|
||||
setOutputMessage();
|
||||
Reference in New Issue
Block a user