Export from HANA XS Repository - Complete DU2 with all services and metadata
This commit is contained in:
@@ -0,0 +1,99 @@
|
|||||||
|
CREATE COLUMN TABLE "INTEGRATION_DATA"."BANKS" ("COUNTRYCODE" VARCHAR(3) NOT NULL ,
|
||||||
|
"BANKCODE" VARCHAR(20),
|
||||||
|
"BANKNAME" VARCHAR(100),
|
||||||
|
"SWIFTNO" VARCHAR(20),
|
||||||
|
"CITY" VARCHAR(100)) UNLOAD PRIORITY 5 AUTO MERGE ;
|
||||||
|
|
||||||
|
/* BANKS_SCHEMA */
|
||||||
|
DROP TABLE "INTEGRATION_DATA"."BANKS_SCHEMA";
|
||||||
|
|
||||||
|
create column table "INTEGRATION_DATA"."BANKS_SCHEMA"( "COUNTRY" VARCHAR (3) null,
|
||||||
|
"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);
|
||||||
|
insert into "INTEGRATION_DATA"."BANKS_SCHEMA" values('DE',8,5,22);
|
||||||
|
insert into "INTEGRATION_DATA"."BANKS_SCHEMA" values('AT',5,5,20);
|
||||||
|
insert into "INTEGRATION_DATA"."BANKS_SCHEMA" values('FR',10,5,27);
|
||||||
|
|
||||||
|
insert into "INTEGRATION_DATA"."BANKS_SCHEMA" values('IT',10,6,27);
|
||||||
|
insert into "INTEGRATION_DATA"."BANKS_SCHEMA" values('CH',5,5,21);
|
||||||
|
insert into "INTEGRATION_DATA"."BANKS_SCHEMA" values('DK',5,4,18);
|
||||||
|
insert into "INTEGRATION_DATA"."BANKS_SCHEMA" values('NL',4,5, 18);
|
||||||
|
insert into "INTEGRATION_DATA"."BANKS_SCHEMA" values('BE',3,5,16);
|
||||||
|
insert into "INTEGRATION_DATA"."BANKS_SCHEMA" values('LU',4,5,20);
|
||||||
|
insert into "INTEGRATION_DATA"."BANKS_SCHEMA" values('CZ',4,5,24);
|
||||||
|
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),
|
||||||
|
SWIFTNO NVARCHAR(100),
|
||||||
|
ACCOUNT NVARCHAR(100)
|
||||||
|
)
|
||||||
|
LANGUAGE SQLSCRIPT
|
||||||
|
SQL SECURITY INVOKER
|
||||||
|
|
||||||
|
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 SWIFTNOPARAM 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"
|
||||||
|
WHERE COUNTRYCODE = :IBAN_COUNTRY AND BANKCODE = :IBAN_BANKCODE
|
||||||
|
ORDER BY SWIFTNO DESC ;
|
||||||
|
|
||||||
|
|
||||||
|
SELECT TOP 1 "SWIFTNO" into SWIFTNOPARAM DEFAULT ''
|
||||||
|
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;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
END;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
CREATE COLUMN TABLE "INTEGRATION_DATA"."UO_DOCUMENTS_RAWCALL" ("ID" BIGINT CS_FIXED NOT NULL ,
|
||||||
|
"DOCTYPE" VARCHAR(50),
|
||||||
|
"XSINTERFACE" VARCHAR(50),
|
||||||
|
"JSONRAW" NCLOB MEMORY THRESHOLD 1000,
|
||||||
|
"B1_PK" VARCHAR(50),
|
||||||
|
"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
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
ALTER TABLE "NICEPORTAL"."UO_CRM_DATA_CONTRACTS" ADD ("RESPONSE_STATUS" VARCHAR(50));
|
||||||
|
ALTER TABLE "NICEPORTAL"."UO_CRM_DATA_CONTRACTS" ADD ("RESPONSE_MESSAGE" NCLOB MEMORY THRESHOLD 1000);
|
||||||
@@ -0,0 +1,71 @@
|
|||||||
|
|
||||||
|
CREATE SCHEMA NICEPORTAL;
|
||||||
|
CREATE COLUMN TABLE "NICEPORTAL"."UO_CRM_DATA_CONTRACTS" ("ID" BIGINT CS_FIXED NOT NULL ,
|
||||||
|
"ID_MSD" VARCHAR(50) NOT NULL ,
|
||||||
|
"ID_CRM" VARCHAR(30) NOT NULL ,
|
||||||
|
"JSONRAW" NCLOB MEMORY THRESHOLD 1000,
|
||||||
|
"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;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
CREATE SEQUENCE "NICEPORTAL"."SEQ_CONTRACT_ID";
|
||||||
|
CREATE SEQUENCE "NICEPORTAL"."SEQ_CRMBP_ID";
|
||||||
|
CREATE SEQUENCE "NICEPORTAL"."SEQ_MAND_ID";
|
||||||
|
CREATE SEQUENCE "NICEPORTAL"."SEQ_TRANSACTIONDATA_ID";
|
||||||
|
|
||||||
|
--DROP TABLE "NICEPORTAL"."UO_CRM_DATA_BP";
|
||||||
|
|
||||||
|
CREATE COLUMN TABLE "NICEPORTAL"."UO_CRM_DATA_BP" ("ID" BIGINT CS_FIXED NOT NULL , "ID_MSD" VARCHAR(50) NOT NULL , "ID_CRM" VARCHAR(30) NOT NULL , "TYPE" VARCHAR(1) NOT NULL , "BPGROUP" VARCHAR(10) NOT NULL , "SALUTATION" VARCHAR(20), "TITLE" VARCHAR(20), "NAME" VARCHAR(50) NOT NULL , "SURNAME" VARCHAR(50), "PHONE" VARCHAR(30), "MOBILE_PHONE" VARCHAR(30), "EMAIL" VARCHAR(100), "ADDRESS_JSON" NCLOB MEMORY THRESHOLD 1000, "IBAN" VARCHAR(40), "BIC" VARCHAR(10), "SEPA_MANDATE_ID" VARCHAR(30), "SIGNATURE_DATE" VARCHAR(30), "ACCOUNT_OWNER" VARCHAR(50), "STREET" VARCHAR(50), "STREET_NO" VARCHAR(10), "ZIP_CODE" VARCHAR(10), "CITY" VARCHAR(30), "JSONRAW" NCLOB MEMORY THRESHOLD 1000, "B1_CARDCODE" VARCHAR(50),"RESPONSE_STATUS" VARCHAR(50),"RESPONSE_MESSAGE" NCLOB MEMORY THRESHOLD 1000,"ERROR_MESSAGE" VARCHAR(500), "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
|
||||||
|
;
|
||||||
|
--DROP TABLE "NICEPORTAL"."CHARGEDATA";
|
||||||
|
CREATE COLUMN TABLE "NICEPORTAL"."CHARGEDATA" ("ID" BIGINT CS_FIXED NOT NULL ,
|
||||||
|
"CALLID" NVARCHAR(50) NOT NULL UNIQUE,
|
||||||
|
"CDRID" NVARCHAR(50) NOT NULL ,
|
||||||
|
"EVSEID" NVARCHAR(50),
|
||||||
|
"CONTRACTID" NVARCHAR(50),
|
||||||
|
"INSTANCE" NVARCHAR(200),
|
||||||
|
"TOKENTYPE" NVARCHAR(50),
|
||||||
|
"CONSUMEDENERGY" DECIMAL(17,3) CS_FIXED,
|
||||||
|
"OPERATORID" NVARCHAR(50),
|
||||||
|
"OPERATORNAME" NVARCHAR(50),
|
||||||
|
"OPERATORSUBMANDANT" NVARCHAR(50),
|
||||||
|
"FREECHARGE" NVARCHAR(50),
|
||||||
|
"CHARGEPOINTTYPE" NVARCHAR(50),
|
||||||
|
"MAXSOCKETPOWER" DECIMAL(17,3) CS_FIXED,
|
||||||
|
"ADDRESS" NVARCHAR(50),
|
||||||
|
"ZIP" NVARCHAR(50),
|
||||||
|
"CITY" NVARCHAR(50),
|
||||||
|
"COUNTRY" NVARCHAR(50),
|
||||||
|
"PROVIDERID" NVARCHAR(200),
|
||||||
|
"PROVIDERNAME" NVARCHAR(50),
|
||||||
|
"CHARGINGSTARTTIME" NVARCHAR(50),
|
||||||
|
"CHARGINGSTOPTIME" NVARCHAR(50),
|
||||||
|
"PARKINGSTARTTIME" NVARCHAR(50),
|
||||||
|
"PARKINGSTOPTIME" NVARCHAR(50),
|
||||||
|
"METERSTART" DECIMAL(17,3) CS_FIXED,
|
||||||
|
"METERSTOP" DECIMAL(17,3) CS_FIXED,
|
||||||
|
"TARIFF" NVARCHAR(50),
|
||||||
|
"CURRENCY" NVARCHAR(3),
|
||||||
|
"VAT" DECIMAL(17,3) CS_FIXED,
|
||||||
|
"BILLINGVALUEBRUTTO" DECIMAL(17,
|
||||||
|
3) CS_FIXED,
|
||||||
|
"BILLINGVALUENETTO" DECIMAL(17,
|
||||||
|
3) CS_FIXED,
|
||||||
|
"PARKINGTIMEPRICEBRUTTO" DECIMAL(17,
|
||||||
|
3) CS_FIXED,
|
||||||
|
"PARKINGTIMEPRICENETTO" DECIMAL(17,
|
||||||
|
3) CS_FIXED,
|
||||||
|
"ADITIONALPRICEBRUTTO" DECIMAL(17,
|
||||||
|
3) CS_FIXED,
|
||||||
|
"ADITIONALPRICENETTO" DECIMAL(17,
|
||||||
|
3) CS_FIXED,
|
||||||
|
"B2CPRICING" NCLOB MEMORY THRESHOLD 1000,
|
||||||
|
"ASSETOWNERPRICING" NCLOB MEMORY THRESHOLD 1000,
|
||||||
|
"CPOPRICING" NCLOB MEMORY THRESHOLD 1000,
|
||||||
|
"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
|
||||||
@@ -0,0 +1,867 @@
|
|||||||
|
var slib = $.import("uniorg.ServiceLayer", "B1SLLogic");
|
||||||
|
var slDest = $.import("uniorg.destinations", "uodestlib");
|
||||||
|
var bpbl = $.import("uniorg.eon.libs", "bp_businesslogic");
|
||||||
|
|
||||||
|
var ParDebug = false;
|
||||||
|
var output = {};
|
||||||
|
var outMessages = [];
|
||||||
|
var outErrorMessages = [];
|
||||||
|
var outMsg = {};
|
||||||
|
var outStatus = "success";
|
||||||
|
var myDebug = {};
|
||||||
|
var UserName = slDest.uniorg_eon_nice_v1_UserName;
|
||||||
|
var UserPass = slDest.uniorg_eon_nice_v1_UserPass;
|
||||||
|
var UserComp = slDest.uniorg_eon_nice_v1_UserComp;
|
||||||
|
var series_b2c = 68;
|
||||||
|
var series_b2b = 69;
|
||||||
|
var series_b2m = 70;
|
||||||
|
var groupcode_b2c = 100;
|
||||||
|
var groupcode_b2b = 102;
|
||||||
|
var groupcode_b2m = 103;
|
||||||
|
var cmpprivate_b2c = "cPrivate";
|
||||||
|
var cmpprivate_b2b = "cCompany";
|
||||||
|
var cmpprivate_b2m = "cCompany";
|
||||||
|
var service_version = '6.2';
|
||||||
|
|
||||||
|
function setOutputMessage() {
|
||||||
|
|
||||||
|
$.response.contentType = "application/json";
|
||||||
|
$.response.setBody(JSON.stringify(output));
|
||||||
|
$.response.status = $.net.http.OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
function pad(number) {
|
||||||
|
var r = String(number);
|
||||||
|
if (r.length === 1) {
|
||||||
|
r = '0' + r;
|
||||||
|
}
|
||||||
|
return r;
|
||||||
|
}
|
||||||
|
|
||||||
|
function convertToISODate(dateString) {
|
||||||
|
try {
|
||||||
|
//var options = { year: 'numeric', month: '2-digit', day: '2-digit' };
|
||||||
|
var d = new Date(dateString);
|
||||||
|
if (!isNaN(d)) {
|
||||||
|
//var convDate = d.toLocaleDateString('de-DE', options);
|
||||||
|
var convDate = d.getFullYear() + '-' + pad(d.getMonth() + 1) + '-' + pad(d.getDate());
|
||||||
|
return convDate;
|
||||||
|
} else {
|
||||||
|
return dateString;
|
||||||
|
}
|
||||||
|
|
||||||
|
} catch (err) {
|
||||||
|
return (err);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function getCustRECACC(custpgnr) {
|
||||||
|
var conn = $.db.getConnection();
|
||||||
|
var pstmt;
|
||||||
|
//var query = "SELECT T0.\"U_EON_RECACC_REC\" FROM \"A19753_P01_TEST03\".\"@EON_PGN\" T0 WHERE T0.\"Code\" = ?";
|
||||||
|
//vendeor var query = "SELECT T0.\"U_EON_RECACC_REC\" FROM \"XXREPXX\".\"@EON_PGN\" T0 WHERE T0.\"Code\" = ?";
|
||||||
|
var query = "SELECT T0.\"U_EON_RECACC_PAY\" FROM \"XXREPXX\".\"@EON_PGN\" T0 WHERE T0.\"Code\" = ?";
|
||||||
|
query = query.replace(/XXREPXX/g, UserComp)
|
||||||
|
pstmt = conn.prepareStatement(query);
|
||||||
|
|
||||||
|
pstmt.setString(1, custpgnr);
|
||||||
|
|
||||||
|
var rs = pstmt.executeQuery();
|
||||||
|
if (!rs.next()) {
|
||||||
|
// outMsg = {};
|
||||||
|
// outMsg.method = "getnexval from sequence error";
|
||||||
|
// outMsg.status = "error";
|
||||||
|
//outMsg.message = e.message;
|
||||||
|
//outMessages.push(outMsg);
|
||||||
|
} else {
|
||||||
|
return rs.getString(1);
|
||||||
|
}
|
||||||
|
rs.close();
|
||||||
|
pstmt.close();
|
||||||
|
conn.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
function splitcardname(mycardname) {
|
||||||
|
var mycardnamenew = [];
|
||||||
|
if (mycardname.length > 50) {
|
||||||
|
var mycardname1 = mycardname.substring(0, 50);
|
||||||
|
var mylastindex1 = mycardname1.lastIndexOf(' ');
|
||||||
|
var mylastindex2 = mycardname1.lastIndexOf('-');
|
||||||
|
var mylastindex3 = mycardname1.lastIndexOf('&');
|
||||||
|
var mylastindex = Math.max(mylastindex1, mylastindex2, mylastindex3);
|
||||||
|
mycardname1 = mycardname.substring(0, mylastindex);
|
||||||
|
var mycardname2 = mycardname.substring(mylastindex + 1, 100);
|
||||||
|
mycardnamenew.push(mycardname1);
|
||||||
|
mycardnamenew.push(mycardname2);
|
||||||
|
} else {
|
||||||
|
mycardnamenew.push(mycardname);
|
||||||
|
mycardnamenew.push("");
|
||||||
|
}
|
||||||
|
return mycardnamenew;
|
||||||
|
}
|
||||||
|
|
||||||
|
function convertAdrType(adrtype) {
|
||||||
|
switch (adrtype) {
|
||||||
|
case '1':
|
||||||
|
case 'S':
|
||||||
|
return 'bo_ShipTo';
|
||||||
|
case '2':
|
||||||
|
case '3':
|
||||||
|
case 'B':
|
||||||
|
return 'bo_BillTo';
|
||||||
|
default:
|
||||||
|
return 'bo_BillTo';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function getnextvalsepaid() {
|
||||||
|
var conn = $.db.getConnection();
|
||||||
|
var pstmt;
|
||||||
|
var query = "select lpad(\"NICEPORTAL\".\"SEQ_MAND_ID\".NEXTVAL ,10,'0') from dummy";
|
||||||
|
pstmt = conn.prepareStatement(query);
|
||||||
|
var rs = pstmt.executeQuery();
|
||||||
|
if (!rs.next()) {
|
||||||
|
outMsg = {};
|
||||||
|
outMsg.method = "getnexval from sequence error";
|
||||||
|
outMsg.status = "error";
|
||||||
|
// outMsg.message = e.message;
|
||||||
|
outMessages.push(outMsg);
|
||||||
|
} else {
|
||||||
|
return rs.getString(1);
|
||||||
|
}
|
||||||
|
rs.close();
|
||||||
|
pstmt.close();
|
||||||
|
conn.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
function buildBPObj(JbpObj, SBOOBJ) {
|
||||||
|
var myseries = '';
|
||||||
|
var mygroupcode = '';
|
||||||
|
var mycardname = '';
|
||||||
|
var mycmpprivate = '';
|
||||||
|
var mybpcontactname = '';
|
||||||
|
switch (JbpObj.group) {
|
||||||
|
case 'B2C':
|
||||||
|
mycardname = JbpObj.name.toString() + ' ' + JbpObj.surname.toString();
|
||||||
|
mybpcontactname = JbpObj.name.toString() + ' ' + JbpObj.surname.toString();
|
||||||
|
myseries = series_b2c;
|
||||||
|
mygroupcode = groupcode_b2c;
|
||||||
|
mycmpprivate = cmpprivate_b2c;
|
||||||
|
break;
|
||||||
|
case 'B2B':
|
||||||
|
//mycardname = JbpObj.name.toString();
|
||||||
|
mycardname = JbpObj.addresses[0].address.toString();
|
||||||
|
mybpcontactname = JbpObj.name.toString() + ' ' + JbpObj.surname.toString();
|
||||||
|
myseries = series_b2b;
|
||||||
|
mygroupcode = groupcode_b2b;
|
||||||
|
mycmpprivate = cmpprivate_b2b;
|
||||||
|
break;
|
||||||
|
case 'B2M':
|
||||||
|
//mycardname = JbpObj.name.toString();
|
||||||
|
mycardname = JbpObj.addresses[0].address.toString();
|
||||||
|
mybpcontactname = JbpObj.name.toString() + ' ' + JbpObj.surname.toString();
|
||||||
|
myseries = series_b2m;
|
||||||
|
mygroupcode = groupcode_b2m;
|
||||||
|
mycmpprivate = cmpprivate_b2m;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
mycardname = JbpObj.name.toString() + ' ' + JbpObj.surname.toString();
|
||||||
|
mybpcontactname = JbpObj.name.toString() + ' ' + JbpObj.surname.toString();
|
||||||
|
myseries = series_b2c;
|
||||||
|
mygroupcode = groupcode_b2c;
|
||||||
|
mycmpprivate = cmpprivate_b2c;
|
||||||
|
}
|
||||||
|
|
||||||
|
var myaddress23 = splitcardname(mycardname);
|
||||||
|
|
||||||
|
var bpObj = {};
|
||||||
|
bpObj.Series = myseries;
|
||||||
|
bpObj.CompanyPrivate = mycmpprivate; // JbpObj.type.toString();
|
||||||
|
bpObj.CardName = mycardname;
|
||||||
|
bpObj.CardType = 'C';
|
||||||
|
bpObj.GroupCode = mygroupcode; // JbpObj.group.toString();
|
||||||
|
bpObj.Phone1 = JbpObj.phone.toString();
|
||||||
|
bpObj.Cellular = JbpObj.mobile_phone.toString();
|
||||||
|
if (JbpObj.vatid) {
|
||||||
|
bpObj.FederalTaxID = JbpObj.vatid.toString();
|
||||||
|
}
|
||||||
|
if (JbpObj.bank_account.sepa_mandate.toString() == 'Ja') {
|
||||||
|
bpObj.PayTermsGrpCode = 13;
|
||||||
|
}
|
||||||
|
bpObj.EmailAddress = JbpObj.email.toString();
|
||||||
|
bpObj.U_EON_ID_CRM = JbpObj.id_crm.toString();
|
||||||
|
bpObj.U_EON_ID_CRM_INTERNAL = JbpObj.id_msd.toString();
|
||||||
|
if (JbpObj.shipping_type)
|
||||||
|
{
|
||||||
|
bpObj.U_UO_OUTPUT_VSARTAR = JbpObj.shipping_type.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!JbpObj.pgnr) {
|
||||||
|
bpObj.U_EON_ASSU = 'N';
|
||||||
|
bpObj.Affiliate = 'tNO';
|
||||||
|
}
|
||||||
|
|
||||||
|
if (JbpObj.pgnr) {
|
||||||
|
bpObj.U_EON_PGN = JbpObj.pgnr.toString();
|
||||||
|
bpObj.DebitorAccount = getCustRECACC(JbpObj.pgnr.toString());
|
||||||
|
bpObj.U_EON_ASSU = 'Y';
|
||||||
|
bpObj.Affiliate = 'tYES';
|
||||||
|
}
|
||||||
|
|
||||||
|
if (JbpObj.res_prop===true) {
|
||||||
|
bpObj.U_EON_WVB = 'Y';
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (JbpObj.res_prop===false) {
|
||||||
|
bpObj.U_EON_WVB = 'N';
|
||||||
|
}
|
||||||
|
|
||||||
|
bpObj.BPAddresses = [];
|
||||||
|
// bpObj.BPAddresses[0].AddressName = 'test';
|
||||||
|
for (var g in SBOOBJ.BPAddresses) {
|
||||||
|
|
||||||
|
for (var h in JbpObj.addresses) {
|
||||||
|
var mybpAdresses = {};
|
||||||
|
// mybpAdresses.g = g;
|
||||||
|
// mybpAdresses.h = h;
|
||||||
|
var myaddressbpname = JbpObj.addresses[h].street.toString() + ' ' + JbpObj.addresses[h].street_no.toString();
|
||||||
|
|
||||||
|
mybpAdresses.AddressName = SBOOBJ.BPAddresses[g].AddressName;
|
||||||
|
mybpAdresses.AddressType = SBOOBJ.BPAddresses[g].AddressType;
|
||||||
|
mybpAdresses.BPCode = SBOOBJ.BPAddresses[g].BPCode;
|
||||||
|
mybpAdresses.RowNum = SBOOBJ.BPAddresses[g].RowNum;
|
||||||
|
if (SBOOBJ.BPAddresses[g].AddressName === myaddressbpname && SBOOBJ.BPAddresses[g].AddressType === convertAdrType(JbpObj.addresses[
|
||||||
|
h].type)) {
|
||||||
|
|
||||||
|
//mybpAdresses.AddressName = JbpObj.addresses[h].address.toString();
|
||||||
|
mybpAdresses.Street = JbpObj.addresses[h].street.toString();
|
||||||
|
//mybpAdresses.Block = 'test';
|
||||||
|
mybpAdresses.ZipCode = JbpObj.addresses[h].zip_code.toString();
|
||||||
|
mybpAdresses.City = JbpObj.addresses[h].city.toString();
|
||||||
|
//mybpAdresses.County = 'test';
|
||||||
|
mybpAdresses.Country = JbpObj.addresses[h].country.toString();
|
||||||
|
if (JbpObj.addresses[h].standard = 'ja') {
|
||||||
|
if (convertAdrType(JbpObj.addresses[h].type) === 'bo_BillTo') {
|
||||||
|
bpObj.BilltoDefault = myaddressbpname;
|
||||||
|
}
|
||||||
|
if (convertAdrType(JbpObj.addresses[h].type) === 'bo_ShipTo') {
|
||||||
|
bpObj.ShipToDefault = myaddressbpname;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//mybpAdresses.State = 'test';
|
||||||
|
//mybpAdresses.FederalTaxID = 'test';
|
||||||
|
//mybpAdresses.TaxCode = 'test';
|
||||||
|
//mybpAdresses.BuildingFloorRoom = 'test';
|
||||||
|
/*
|
||||||
|
if (JbpObj.addresses[h].type === 'B') {
|
||||||
|
mybpAdresses.AddressType = 'bo_BillTo';
|
||||||
|
} else {
|
||||||
|
mybpAdresses.AddressType = 'bo_ShipTo';
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
if (JbpObj.group == 'B2B' || JbpObj.group == 'B2M') {
|
||||||
|
//mybpAdresses.AddressName2 = mycardname;
|
||||||
|
mybpAdresses.AddressName2 = myaddress23[0];
|
||||||
|
mybpAdresses.AddressName3 = myaddress23[1];
|
||||||
|
}
|
||||||
|
if (JbpObj.addresses[h].address3) {
|
||||||
|
mybpAdresses.AddressName3 = JbpObj.addresses[h].address3.toString();
|
||||||
|
}
|
||||||
|
//mybpAdresses.TypeOfAddress = 'test';
|
||||||
|
mybpAdresses.StreetNo = JbpObj.addresses[h].street_no.toString();
|
||||||
|
mybpAdresses.U_EON_EXT_ID = JbpObj.addresses[h].addressid.toString();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//mybpAdresses.BPCode = 'test';
|
||||||
|
//mybpAdresses.RowNum = 'test';
|
||||||
|
//mybpAdresses.GlobalLocationNumber = 'test';
|
||||||
|
//mybpAdresses.Nationality = 'test';
|
||||||
|
//mybpAdresses.TaxOffice = 'test';
|
||||||
|
bpObj.BPAddresses.push(mybpAdresses);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//Suche ob Objekte vorhanden wenn nichzt ergänzen
|
||||||
|
|
||||||
|
for (var h in JbpObj.addresses) {
|
||||||
|
var myfound = false;
|
||||||
|
var myaddbpAdresses = {};
|
||||||
|
var myaddbpname = JbpObj.addresses[h].street.toString() + ' ' + JbpObj.addresses[h].street_no.toString();
|
||||||
|
|
||||||
|
for (var g in SBOOBJ.BPAddresses) {
|
||||||
|
if (SBOOBJ.BPAddresses[g].AddressName === myaddbpname && SBOOBJ.BPAddresses[g].AddressType === convertAdrType(JbpObj.addresses[h].type)) {
|
||||||
|
myfound = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (myfound == false) {
|
||||||
|
myaddbpAdresses.AddressName = myaddbpname; //JbpObj.addresses[h].address.toString();
|
||||||
|
myaddbpAdresses.Street = JbpObj.addresses[h].street.toString();
|
||||||
|
//myaddbpAdresses.Block = 'test';
|
||||||
|
myaddbpAdresses.ZipCode = JbpObj.addresses[h].zip_code.toString();
|
||||||
|
myaddbpAdresses.City = JbpObj.addresses[h].city.toString();
|
||||||
|
//myaddbpAdresses.County = 'test';
|
||||||
|
myaddbpAdresses.Country = JbpObj.addresses[h].country.toString();
|
||||||
|
//myaddbpAdresses.State = 'test';
|
||||||
|
//myaddbpAdresses.FederalTaxID = 'test';
|
||||||
|
//myaddbpAdresses.TaxCode = 'test';
|
||||||
|
//myaddbpAdresses.BuildingFloorRoom = 'test';
|
||||||
|
if (JbpObj.addresses[h].standard = 'ja') {
|
||||||
|
if (convertAdrType(JbpObj.addresses[h].type) === 'bo_BillTo') {
|
||||||
|
bpObj.BilltoDefault = myaddbpname;
|
||||||
|
}
|
||||||
|
if (convertAdrType(JbpObj.addresses[h].type) === 'bo_ShipTo') {
|
||||||
|
bpObj.ShipToDefault = myaddbpname;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
myaddbpAdresses.AddressType = convertAdrType(JbpObj.addresses[h].type);
|
||||||
|
if (JbpObj.group == 'B2B' || JbpObj.group == 'B2M') {
|
||||||
|
//myaddbpAdresses.AddressName2 = mycardname;
|
||||||
|
myaddbpAdresses.AddressName2 = myaddress23[0];
|
||||||
|
myaddbpAdresses.AddressName3 = myaddress23[1];
|
||||||
|
}
|
||||||
|
if (JbpObj.addresses[h].address3) {
|
||||||
|
myaddbpAdresses.AddressName3 = JbpObj.addresses[h].address3.toString();
|
||||||
|
}
|
||||||
|
//myaddbpAdresses.TypeOfAddress = 'test';
|
||||||
|
myaddbpAdresses.StreetNo = JbpObj.addresses[h].street_no.toString();
|
||||||
|
myaddbpAdresses.U_EON_EXT_ID = JbpObj.addresses[h].addressid.toString();
|
||||||
|
|
||||||
|
bpObj.BPAddresses.push(myaddbpAdresses);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// var myaddbpAdresses = {};
|
||||||
|
// //for (var i in bpObj.BPAddresses) {
|
||||||
|
// var myfound = false;
|
||||||
|
// for (var j in JbpObj.addresses) {
|
||||||
|
// // console.log("i=" + i + "Name:" + bpObj.BPAddresses[i].AddressName);
|
||||||
|
// console.log("j=" + j + "Name:" + JbpObj.addresses[j].address);
|
||||||
|
// console.log(bpObj.BPAddresses.(Addressname, 0, JbpObj.addresses[j].address));
|
||||||
|
// // if (bpObj.BPAddresses[i].AddressName == JbpObj.addresses[j].address) {
|
||||||
|
// if (bpObj.BPAddresses.indexOf(JbpObj.addresses[j].address) > 0) {
|
||||||
|
// console.log("FOUND");
|
||||||
|
// myfound = true;
|
||||||
|
// //((myaddbpAdresses.found = myfound;
|
||||||
|
// //myaddbpAdresses.i = i;
|
||||||
|
// //myaddbpAdresses.j = j;
|
||||||
|
|
||||||
|
// //bpObj.BPAddresses.push(myaddbpAdresses);
|
||||||
|
// }
|
||||||
|
// else {
|
||||||
|
// myfound = false
|
||||||
|
// console.log("NOT FOUND");
|
||||||
|
//// myaddbpAdresses.found = myfound;
|
||||||
|
// //bpObj.BPAddresses.push(myaddbpAdresses);
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// //}
|
||||||
|
|
||||||
|
bpObj.ContactEmployees = [];
|
||||||
|
var myfoundCP = false;
|
||||||
|
for (var cpB1 in SBOOBJ.ContactEmployees) {
|
||||||
|
var mybpContactEmployees = {};
|
||||||
|
mybpContactEmployees.Name = SBOOBJ.ContactEmployees[cpB1].Name;
|
||||||
|
mybpContactEmployees.CardCode = SBOOBJ.ContactEmployees[cpB1].CardCode;
|
||||||
|
mybpContactEmployees.InternalCode = SBOOBJ.ContactEmployees[cpB1].InternalCode;
|
||||||
|
if (SBOOBJ.ContactEmployees[cpB1].Name == mybpcontactname) {
|
||||||
|
mybpContactEmployees.FirstName = JbpObj.name.toString();
|
||||||
|
mybpContactEmployees.LastName = JbpObj.surname.toString();
|
||||||
|
mybpContactEmployees.Title = JbpObj.title.toString();
|
||||||
|
mybpContactEmployees.U_EON_SALUTATION = JbpObj.salutation.toString();
|
||||||
|
bpObj.ContactPerson = mybpcontactname;
|
||||||
|
myfoundCP = true;
|
||||||
|
}
|
||||||
|
bpObj.ContactEmployees.push(mybpContactEmployees);
|
||||||
|
}
|
||||||
|
if (myfoundCP == false) {
|
||||||
|
mybpContactEmployees = {};
|
||||||
|
mybpContactEmployees.Name = mybpcontactname; //mycardname;
|
||||||
|
mybpContactEmployees.FirstName = JbpObj.name.toString();
|
||||||
|
mybpContactEmployees.LastName = JbpObj.surname.toString();
|
||||||
|
mybpContactEmployees.Title = JbpObj.title.toString();
|
||||||
|
mybpContactEmployees.U_EON_SALUTATION = JbpObj.salutation.toString();
|
||||||
|
bpObj.ContactPerson = mybpcontactname;
|
||||||
|
bpObj.ContactEmployees.push(mybpContactEmployees);
|
||||||
|
}
|
||||||
|
|
||||||
|
bpObj.BPBankAccounts = [];
|
||||||
|
var myfoundBank = false;
|
||||||
|
var myIBAN = JbpObj.bank_account.iban.toString().replace(/ /g, '');
|
||||||
|
var myCountry = myIBAN.substring(0, 2);
|
||||||
|
var myBankCode = myIBAN.substring(4, 12);
|
||||||
|
var myAccountNo = myIBAN.substring(12, 23);
|
||||||
|
var mySignatureDate = convertToISODate(JbpObj.bank_account.signature_date);
|
||||||
|
for (var ba in SBOOBJ.BPBankAccounts) {
|
||||||
|
var myBPBankAccounts = {};
|
||||||
|
myBPBankAccounts.BPCode = SBOOBJ.BPBankAccounts[ba].BPCode;
|
||||||
|
myBPBankAccounts.InternalKey = SBOOBJ.BPBankAccounts[ba].InternalKey;
|
||||||
|
myBPBankAccounts.Country = SBOOBJ.BPBankAccounts[ba].Country;
|
||||||
|
myBPBankAccounts.BankCode = SBOOBJ.BPBankAccounts[ba].BankCode;
|
||||||
|
myBPBankAccounts.AccountNo = SBOOBJ.BPBankAccounts[ba].AccountNo;
|
||||||
|
myBPBankAccounts.IBAN = SBOOBJ.BPBankAccounts[ba].IBAN;
|
||||||
|
if (SBOOBJ.BPBankAccounts[ba].IBAN.replace(/ /g, '') === myIBAN) {
|
||||||
|
myfoundBank = true;
|
||||||
|
if (JbpObj.bank_account.bic.toString() !== '') {
|
||||||
|
myBPBankAccounts.BICSwiftCode = JbpObj.bank_account.bic.toString();
|
||||||
|
}
|
||||||
|
myBPBankAccounts.AccountName = JbpObj.bank_account.account_owner.toString();
|
||||||
|
myBPBankAccounts.Street = JbpObj.bank_account.street.toString() + " " + JbpObj.bank_account.street_no.toString();
|
||||||
|
myBPBankAccounts.ZipCode = JbpObj.bank_account.zip_code.toString();
|
||||||
|
myBPBankAccounts.City = JbpObj.bank_account.city.toString();
|
||||||
|
// myBPBankAccounts.MandateID = JbpObj.bank_account.sepa_mandate_id.toString();
|
||||||
|
myBPBankAccounts.SignatureDate = mySignatureDate;
|
||||||
|
if (JbpObj.bank_account.sepa_mandate.toString() == 'Ja') {
|
||||||
|
if (SBOOBJ.BPBankAccounts[ba].MandateID == null) //|| SBOOBJ.BPBankAccounts[ba].MandateID.substring(0,10) > JbpObj.id_crm )
|
||||||
|
{
|
||||||
|
myBPBankAccounts.MandateID = JbpObj.id_crm + getnextvalsepaid();
|
||||||
|
}
|
||||||
|
bpObj.CollectionAuthorization = 'tYES';
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
bpObj.BankCountry = myCountry;
|
||||||
|
bpObj.DefaultBankCode = myBankCode;
|
||||||
|
bpObj.DefaultAccount = myAccountNo;
|
||||||
|
bpObj.BPBankAccounts.push(myBPBankAccounts);
|
||||||
|
}
|
||||||
|
if (myfoundBank === false) {
|
||||||
|
myBPBankAccounts = {};
|
||||||
|
myBPBankAccounts.IBAN = myIBAN;
|
||||||
|
myBPBankAccounts.Country = myCountry;
|
||||||
|
myBPBankAccounts.BankCode = myBankCode;
|
||||||
|
myBPBankAccounts.AccountNo = myAccountNo;
|
||||||
|
if (JbpObj.bank_account.bic.toString() !== '') {
|
||||||
|
myBPBankAccounts.BICSwiftCode = JbpObj.bank_account.bic.toString();
|
||||||
|
}
|
||||||
|
myBPBankAccounts.AccountName = JbpObj.bank_account.account_owner.toString();
|
||||||
|
myBPBankAccounts.Street = JbpObj.bank_account.street.toString() + " " + JbpObj.bank_account.street_no.toString();
|
||||||
|
myBPBankAccounts.ZipCode = JbpObj.bank_account.zip_code.toString();
|
||||||
|
myBPBankAccounts.City = JbpObj.bank_account.city.toString();
|
||||||
|
// myBPBankAccounts.MandateID = JbpObj.bank_account.sepa_mandate_id.toString();
|
||||||
|
myBPBankAccounts.SignatureDate = mySignatureDate;
|
||||||
|
|
||||||
|
if (JbpObj.bank_account.sepa_mandate.toString() == 'Ja') {
|
||||||
|
// myBPBankAccounts.MandateID = SBOOBJ.BPBankAccounts[ba].MandateID.substring(0,10);
|
||||||
|
// if (SBOOBJ.BPBankAccounts[ba].MandateID.IsNullOrEmpty ) //|| SBOOBJ.BPBankAccounts[ba].MandateID.substring(0,10) > JbpObj.id_crm
|
||||||
|
//{
|
||||||
|
myBPBankAccounts.MandateID = JbpObj.id_crm + getnextvalsepaid();
|
||||||
|
bpObj.CollectionAuthorization = 'tYES';
|
||||||
|
myBPBankAccounts.SEPASeqType = 'sstFRST';
|
||||||
|
//}
|
||||||
|
}
|
||||||
|
bpObj.BankCountry = myCountry;
|
||||||
|
bpObj.DefaultBankCode = myBankCode;
|
||||||
|
bpObj.DefaultAccount = myAccountNo;
|
||||||
|
bpObj.BPBankAccounts.push(myBPBankAccounts);
|
||||||
|
}
|
||||||
|
|
||||||
|
return bpObj;
|
||||||
|
}
|
||||||
|
|
||||||
|
function mockbuildBPObj() {
|
||||||
|
var bpObj = {};
|
||||||
|
bpObj.Series = series_b2b;
|
||||||
|
bpObj.CompanyPrivate = "I"; // JbpObj.type.toString();
|
||||||
|
bpObj.CardName = 'Burgmueller';
|
||||||
|
//bpObj.CardType = 'C';
|
||||||
|
//bpObj.GroupCode = 100; // JbpObj.group.toString();
|
||||||
|
//bpObj.Phone1 = JbpObj.phone.toString();
|
||||||
|
//bpObj.Cellular = JbpObj.mobile_phone.toString();
|
||||||
|
//bpObj.EmailAddress = JbpObj.email.toString();
|
||||||
|
bpObj.U_EON_ID_CRM = 'BP777888999';
|
||||||
|
bpObj.U_EON_ASSU = 'N';
|
||||||
|
return bpObj;
|
||||||
|
}
|
||||||
|
|
||||||
|
function upsBP(searchparam, JbpObj) {
|
||||||
|
|
||||||
|
var SESSIONID = "";
|
||||||
|
var NODEID = "";
|
||||||
|
|
||||||
|
// SL credentials
|
||||||
|
var loginInfo = {};
|
||||||
|
loginInfo.UserName = UserName;
|
||||||
|
loginInfo.Password = UserPass;
|
||||||
|
loginInfo.CompanyDB = UserComp;
|
||||||
|
|
||||||
|
// SL LOGIN
|
||||||
|
var response = slib.SLLogin(JSON.stringify(loginInfo), null, null);
|
||||||
|
|
||||||
|
// B1SESSION and ROUTEID cookies returned by Login
|
||||||
|
for (var j in response.cookies) {
|
||||||
|
if (response.cookies[j].name == "B1SESSION") {
|
||||||
|
SESSIONID = response.cookies[j].value;
|
||||||
|
output.SessionID = SESSIONID;
|
||||||
|
} else if (response.cookies[j].name == "ROUTEID") {
|
||||||
|
NODEID = response.cookies[j].value;
|
||||||
|
output.NodeID = NODEID;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
output.loginInfo = loginInfo;
|
||||||
|
// output.loginResponse = JSON.parse(response.body.asString());
|
||||||
|
try {
|
||||||
|
output.loginResponse = JSON.parse(response.body.asString());
|
||||||
|
} catch (e) {
|
||||||
|
output.loginResponse = response.body.asString();
|
||||||
|
}
|
||||||
|
if (response.status !== 200) {
|
||||||
|
outMsg = {};
|
||||||
|
outMsg.method = "login";
|
||||||
|
outMsg.status = "error";
|
||||||
|
outMsg.message = output.loginResponse;
|
||||||
|
outMessages.push(outMsg);
|
||||||
|
outStatus = "error";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (JbpObj.vatid) {
|
||||||
|
var checkmyvatid = bpbl.checkvatid(JbpObj.vatid, JbpObj.addresses[0].country.toUpperCase(), UserComp)
|
||||||
|
if (checkmyvatid != "true") {
|
||||||
|
outMsg = {};
|
||||||
|
outMsg.method = "checkVATID";
|
||||||
|
outMsg.status = "error";
|
||||||
|
outMsg.message = checkmyvatid;
|
||||||
|
outStatus = "error";
|
||||||
|
outMessages.push(outMsg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (outStatus !== "error") {
|
||||||
|
|
||||||
|
outMsg = {};
|
||||||
|
outMsg.method = "checkExists";
|
||||||
|
//Add BP
|
||||||
|
//response = slib.createBusinessPartner(BPObject, SESSIONID,NODEID);
|
||||||
|
var responseGet = slib.getBusinessPartner(searchparam, SESSIONID, NODEID);
|
||||||
|
//var logoutresponse = slib.SLLogout(JSON.stringify(loginInfo), null, null);
|
||||||
|
//Parse response body
|
||||||
|
|
||||||
|
// Removes metadata
|
||||||
|
//delete body["odata.metadata"];
|
||||||
|
|
||||||
|
var bodyGet = JSON.parse(responseGet.body.asString());
|
||||||
|
myDebug.statusGet = responseGet.status;
|
||||||
|
myDebug.responseGet = bodyGet;
|
||||||
|
outMsg.statuscode = responseGet.status;
|
||||||
|
if (responseGet.status >= 200 && responseGet.status < 300) {
|
||||||
|
outMsg.status = "success";
|
||||||
|
outMsg.message = "exists";
|
||||||
|
} else if (responseGet.status === 404) {
|
||||||
|
outMsg.status = "success";
|
||||||
|
outMsg.message = "not exists";
|
||||||
|
} else {
|
||||||
|
outMsg.status = "error";
|
||||||
|
outMsg.message = bodyGet;
|
||||||
|
outStatus = "error";
|
||||||
|
}
|
||||||
|
outMessages.push(outMsg);
|
||||||
|
|
||||||
|
var CardCode = "";
|
||||||
|
var bodyGetFull = {};
|
||||||
|
if (bodyGet.value[0]) {
|
||||||
|
CardCode = bodyGet.value[0].CardCode;
|
||||||
|
|
||||||
|
outMsg = {};
|
||||||
|
outMsg.method = "get";
|
||||||
|
|
||||||
|
var responseGetFull = slib.getBusinessPartnerFull(CardCode, SESSIONID, NODEID);
|
||||||
|
myDebug.statusGetFull = responseGetFull.status;
|
||||||
|
bodyGetFull = JSON.parse(responseGetFull.body.asString());
|
||||||
|
myDebug.responseGetFull = bodyGetFull;
|
||||||
|
outMsg.statuscode = responseGetFull.status;
|
||||||
|
if (responseGetFull.status >= 200 && responseGetFull.status < 300) {
|
||||||
|
outMsg.status = "success";
|
||||||
|
} else {
|
||||||
|
outMsg.status = "error";
|
||||||
|
outMsg.message = bodyGetFull;
|
||||||
|
outStatus = "error";
|
||||||
|
}
|
||||||
|
outMessages.push(outMsg);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (outStatus !== "error") {
|
||||||
|
|
||||||
|
var consBPObject = buildBPObj(JbpObj, bodyGetFull);
|
||||||
|
myDebug.BPObj = consBPObject;
|
||||||
|
|
||||||
|
if (CardCode !== "") {
|
||||||
|
output.method = "updateBP";
|
||||||
|
var responseUpdate = slib.updateBusinessPartner(CardCode, JSON.stringify(consBPObject), SESSIONID, NODEID);
|
||||||
|
outMsg = {};
|
||||||
|
outMsg.method = "update";
|
||||||
|
myDebug.statusUpdate = responseUpdate.status;
|
||||||
|
outMsg.statuscode = responseUpdate.status;
|
||||||
|
if (responseUpdate.status >= 200 && responseUpdate.status < 300) {
|
||||||
|
myDebug.Updatemessage = "Update sucessfull";
|
||||||
|
outMsg.status = "success";
|
||||||
|
} else {
|
||||||
|
myDebug.message = "Update error occured";
|
||||||
|
outMsg.status = "error";
|
||||||
|
if (responseUpdate.body) {
|
||||||
|
myDebug.responseUpdate = JSON.parse(responseUpdate.body.asString());
|
||||||
|
outMsg.message = myDebug.responseUpdate;
|
||||||
|
outErrorMessages.push(outMsg);
|
||||||
|
}
|
||||||
|
outStatus = "error";
|
||||||
|
}
|
||||||
|
outMessages.push(outMsg);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
output.method = "createBP";
|
||||||
|
outMsg = {};
|
||||||
|
outMsg.method = "create";
|
||||||
|
var responseCreate = slib.createBusinessPartner(JSON.stringify(consBPObject), SESSIONID, NODEID);
|
||||||
|
myDebug.statusCreate = responseCreate.status;
|
||||||
|
outMsg.statuscode = responseCreate.status;
|
||||||
|
myDebug.responseCreate = JSON.parse(responseCreate.body.asString());
|
||||||
|
if (responseCreate.status >= 200 && responseCreate.status < 300) {
|
||||||
|
myDebug.Createmessage = "Create sucessfull";
|
||||||
|
outMsg.status = "success";
|
||||||
|
var createJbpObj = JSON.parse(responseCreate.body.asString());
|
||||||
|
CardCode = createJbpObj.CardCode;
|
||||||
|
} else {
|
||||||
|
myDebug.Createmessage = "Create error occured";
|
||||||
|
output.errorCreatestatus = myDebug.Createmessage;
|
||||||
|
outMsg.status = "error";
|
||||||
|
outMsg.message = myDebug.responseCreate;
|
||||||
|
outStatus = "error";
|
||||||
|
outErrorMessages.push(outMsg);
|
||||||
|
}
|
||||||
|
outMessages.push(outMsg);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
output.CardCode = CardCode;
|
||||||
|
//output.CardName = body.CardName;
|
||||||
|
|
||||||
|
slib.SLLogout(SESSIONID, NODEID);
|
||||||
|
}
|
||||||
|
output.debug = myDebug;
|
||||||
|
$.trace.debug("DEBUG body.Get: " + JSON.stringify(myDebug));
|
||||||
|
return output;
|
||||||
|
//setOutputMessage();
|
||||||
|
//return 0;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function getnextval() {
|
||||||
|
var conn = $.db.getConnection();
|
||||||
|
var pstmt;
|
||||||
|
var query = "select \"NICEPORTAL\".\"SEQ_CRMBP_ID\".NEXTVAL from dummy";
|
||||||
|
pstmt = conn.prepareStatement(query);
|
||||||
|
var rs = pstmt.executeQuery();
|
||||||
|
if (!rs.next()) {
|
||||||
|
outMsg = {};
|
||||||
|
outMsg.method = "getnexval from sequence error";
|
||||||
|
outMsg.status = "error";
|
||||||
|
// outMsg.message = e.message;
|
||||||
|
outMessages.push(outMsg);
|
||||||
|
} else {
|
||||||
|
return rs.getString(1);
|
||||||
|
}
|
||||||
|
rs.close();
|
||||||
|
pstmt.close();
|
||||||
|
conn.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
function setBPCardCode(tableid, bpcardcode) {
|
||||||
|
var conn = $.db.getConnection();
|
||||||
|
var pstmt;
|
||||||
|
var query = "update \"NICEPORTAL\".\"UO_CRM_DATA_BP\" set B1_CARDCODE = '" + bpcardcode + "', UPDATE_TS = CURRENT_TIMESTAMP where ID =" + tableid;
|
||||||
|
pstmt = conn.prepareStatement(query);
|
||||||
|
// pstmt.setString(1,bpcardcode);
|
||||||
|
// pstmt.setString(2,tableid);
|
||||||
|
var rs = pstmt.executeUpdate();
|
||||||
|
myDebug.UpdateQuery = query;
|
||||||
|
|
||||||
|
pstmt.close();
|
||||||
|
conn.commit();
|
||||||
|
conn.close();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function setRESPONSE(tableid, respstatus, respmessage, errormessage) {
|
||||||
|
var conn = $.db.getConnection();
|
||||||
|
var pstmt;
|
||||||
|
var query = "update \"NICEPORTAL\".\"UO_CRM_DATA_BP\" set RESPONSE_STATUS = ? , RESPONSE_MESSAGE =?, ERROR_MESSAGE=? where ID =" + tableid;
|
||||||
|
pstmt = conn.prepareStatement(query);
|
||||||
|
pstmt.setString(1, respstatus.toString());
|
||||||
|
pstmt.setString(2, respmessage.toString());
|
||||||
|
pstmt.setString(3, errormessage.toString());
|
||||||
|
var rs = pstmt.executeUpdate();
|
||||||
|
myDebug.UpdateQuery = query;
|
||||||
|
|
||||||
|
pstmt.close();
|
||||||
|
conn.commit();
|
||||||
|
conn.close();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function PutBPDataInTable() {
|
||||||
|
var pdcontent = $.request.body.asString();
|
||||||
|
// pdcontent = pdcontent.replace(/\"([^(\")\"]+)\":/g,"$1:\");
|
||||||
|
var JbpObj = JSON.parse(pdcontent);
|
||||||
|
var conn = $.db.getConnection();
|
||||||
|
var pstmt;
|
||||||
|
var query;
|
||||||
|
var vals = {};
|
||||||
|
var data = [];
|
||||||
|
// var query2;
|
||||||
|
// var output = {results: [] };
|
||||||
|
var mynextval = getnextval();
|
||||||
|
myDebug.mynextval = mynextval;
|
||||||
|
try {
|
||||||
|
|
||||||
|
// query = "INSERT INTO \"NICEPORTAL\".\"UO_CRM_DATA_BP\" (ID,ID_MSD,TYPE,GROUP,SALUTATION,TITLE,NAME,SURNAME,PHONE,MOBILE_PHONE,EMAIL,ADDRESS_JSON,IBAN,BIC,SEPA_MANDATE_ID,SIGNATURE_DATE,ACCOUNT_OWNER,STREET,STREET_NO,ZIP_CODE,CITY,JSONRAW,CREATE_TS,UPDATE_TS) values (\"NICEPORTAL\".\"SEQ_CRMBP_ID\".NEXTVAL,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,CURRENT_TIMESTAMP,CURRENT_TIMESTAMP)";
|
||||||
|
query =
|
||||||
|
"INSERT INTO \"NICEPORTAL\".\"UO_CRM_DATA_BP\" (ID,ID_MSD,ID_CRM,TYPE,BPGROUP,SALUTATION,TITLE,NAME,SURNAME,PHONE,MOBILE_PHONE,EMAIL,ADDRESS_JSON,IBAN,BIC,SEPA_MANDATE_ID,SIGNATURE_DATE,ACCOUNT_OWNER,STREET,STREET_NO,ZIP_CODE,CITY,JSONRAW,CREATE_TS,UPDATE_TS) values (" +
|
||||||
|
mynextval + ",?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,CURRENT_TIMESTAMP,CURRENT_TIMESTAMP)";
|
||||||
|
// "INSERT INTO \"NICEPORTAL\".\"UO_CRM_DATA_BP\" (ID,ID_MSD,ID_CRM,TYPE,BPGROUP,SALUTATION,TITLE,NAME,SURNAME,PHONE,MOBILE_PHONE,EMAIL,ADDRESS_JSON,IBAN,BIC,SEPA_MANDATE_ID,SIGNATURE_DATE,ACCOUNT_OWNER,STREET,STREET_NO,ZIP_CODE,CITY,JSONRAW,CREATE_TS,UPDATE_TS) values (\"NICEPORTAL\".\"SEQ_CRMBP_ID\".NEXTVAL,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,CURRENT_TIMESTAMP,CURRENT_TIMESTAMP)";
|
||||||
|
|
||||||
|
pstmt = conn.prepareStatement(query);
|
||||||
|
pstmt.setString(1, JbpObj.id_msd.toString());
|
||||||
|
pstmt.setString(2, JbpObj.id_crm.toString());
|
||||||
|
pstmt.setString(3, JbpObj.type.toString());
|
||||||
|
pstmt.setString(4, JbpObj.group.toString());
|
||||||
|
pstmt.setString(5, JbpObj.salutation.toString());
|
||||||
|
pstmt.setString(6, JbpObj.title.toString());
|
||||||
|
pstmt.setString(7, JbpObj.name.toString());
|
||||||
|
pstmt.setString(8, JbpObj.surname.toString());
|
||||||
|
pstmt.setString(9, JbpObj.phone.toString());
|
||||||
|
pstmt.setString(10, JbpObj.mobile_phone.toString());
|
||||||
|
pstmt.setString(11, JbpObj.email.toString());
|
||||||
|
pstmt.setString(12, JSON.stringify(JbpObj.addresses));
|
||||||
|
pstmt.setString(13, JbpObj.bank_account.iban.toString());
|
||||||
|
pstmt.setString(14, JbpObj.bank_account.bic.toString());
|
||||||
|
pstmt.setString(15, JbpObj.bank_account.sepa_mandate_id.toString());
|
||||||
|
pstmt.setString(16, JbpObj.bank_account.signature_date.toString());
|
||||||
|
pstmt.setString(17, JbpObj.bank_account.account_owner.toString());
|
||||||
|
pstmt.setString(18, JbpObj.bank_account.street.toString());
|
||||||
|
pstmt.setString(19, JbpObj.bank_account.street_no.toString());
|
||||||
|
pstmt.setString(20, JbpObj.bank_account.zip_code.toString());
|
||||||
|
pstmt.setString(21, JbpObj.bank_account.city.toString());
|
||||||
|
pstmt.setString(22, JSON.stringify(JbpObj));
|
||||||
|
|
||||||
|
var rs = pstmt.executeUpdate();
|
||||||
|
pstmt.close();
|
||||||
|
conn.commit();
|
||||||
|
conn.close();
|
||||||
|
|
||||||
|
outMsg = {};
|
||||||
|
outMsg.method = "insertDB";
|
||||||
|
outMsg.status = "success";
|
||||||
|
outMessages.push(outMsg);
|
||||||
|
|
||||||
|
var searchparam = {};
|
||||||
|
searchparam.key = "U_EON_ID_CRM_INTERNAL";
|
||||||
|
searchparam.value = JbpObj.id_msd.toString();
|
||||||
|
|
||||||
|
//var bpObj = buildBPObj(JbpObj);
|
||||||
|
|
||||||
|
var retUpsertBP = upsBP(searchparam, JbpObj);
|
||||||
|
//var retUpsertBP = upsBP(searchparam, JSON.stringify(bpObj),JbpObj);
|
||||||
|
//var retUpsertBP = upsertBP(searchparam, JSON.stringify(bpObj));
|
||||||
|
//var retUpsertBP = addBP(JSON.stringify(bpObj));
|
||||||
|
|
||||||
|
} catch (e) {
|
||||||
|
outMsg = {};
|
||||||
|
outMsg.method = "exceptionHandler";
|
||||||
|
outMsg.status = "error";
|
||||||
|
outMsg.message = e.toString();
|
||||||
|
if (ParDebug) {
|
||||||
|
outMsg.exceptionInfo = {};
|
||||||
|
outMsg.exceptionInfo.name = e.name;
|
||||||
|
outMsg.exceptionInfo.message = e.message;
|
||||||
|
outMsg.exceptionInfo.fileName = e.fileName;
|
||||||
|
outMsg.exceptionInfo.lineNumber = e.lineNumber;
|
||||||
|
outMsg.exceptionInfo.columnNumber = e.columnNumber;
|
||||||
|
outMsg.exceptionInfo.stack = e.stack;
|
||||||
|
//outMsg.exceptionInfo.source = e.toSource();
|
||||||
|
}
|
||||||
|
outMessages.push(outMsg);
|
||||||
|
|
||||||
|
vals.status = 'error';
|
||||||
|
//vals.description = e.message;
|
||||||
|
vals.messages = outMessages;
|
||||||
|
|
||||||
|
if (ParDebug) {
|
||||||
|
vals.debug = {};
|
||||||
|
vals.debug.statement = query;
|
||||||
|
}
|
||||||
|
|
||||||
|
// vals.group = JbpObj.group.toString();
|
||||||
|
// vals.bpobjekt = JSON.stringify(JbpObj);
|
||||||
|
// vals.SLBPObj = JSON.stringify(bpObj);
|
||||||
|
// vals.ResponsUPSER = JSON.stringify(retUpsertBP);
|
||||||
|
// vals.CardCode = retUpsertBP.CardCode;
|
||||||
|
//vals.mode = JSON.stringify(retUpsertBP.mode);
|
||||||
|
data.push(vals);
|
||||||
|
var errbody = JSON.stringify(data);
|
||||||
|
setRESPONSE(mynextval, outMsg.status, errbody, outErrorMessages);
|
||||||
|
$.response.contentType = 'application/json';
|
||||||
|
$.response.setBody(errbody);
|
||||||
|
$.response.status = $.net.http.INTERNAL_SERVER_ERROR;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
vals.status = outStatus;
|
||||||
|
//vals.description = 'Data accepted and proceeded';
|
||||||
|
vals.id_crm = JbpObj.id_crm.toString();
|
||||||
|
vals.id_msd = JbpObj.id_msd.toString();
|
||||||
|
vals.id_b1 = retUpsertBP.CardCode;
|
||||||
|
vals.CardCode = retUpsertBP.CardCode;
|
||||||
|
vals.messages = outMessages;
|
||||||
|
setBPCardCode(mynextval, retUpsertBP.CardCode);
|
||||||
|
|
||||||
|
//vals.RespnUPSERJ = JSON.stringify(retUpsertBP);
|
||||||
|
if (ParDebug) {
|
||||||
|
vals.debug = retUpsertBP;
|
||||||
|
}
|
||||||
|
//vals.mode = JSON.stringify(retUpsertBP.mode);
|
||||||
|
data.push(vals);
|
||||||
|
var okbody = JSON.stringify(data);
|
||||||
|
setRESPONSE(mynextval, outMsg.status, okbody, JSON.stringify(outErrorMessages));
|
||||||
|
//var body = JSON.stringify(test);
|
||||||
|
$.response.contentType = 'application/json';
|
||||||
|
$.response.setBody(okbody);
|
||||||
|
$.response.status = $.net.http.OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
function testmain() {
|
||||||
|
|
||||||
|
var searchparam = {};
|
||||||
|
searchparam.key = "U_EON_ID_CRM";
|
||||||
|
searchparam.value = 'BP777888999x';
|
||||||
|
|
||||||
|
var bpObj = mockbuildBPObj();
|
||||||
|
|
||||||
|
var retUpsertBP = upsBP(searchparam, JSON.stringify(bpObj));
|
||||||
|
|
||||||
|
// setOutputMessage();
|
||||||
|
}
|
||||||
|
|
||||||
|
//testmain();
|
||||||
|
|
||||||
|
// begin org
|
||||||
|
|
||||||
|
var content = $.request.body.asString();
|
||||||
|
ParDebug = $.request.parameters.get('debug') && $.request.parameters.get('debug').toLowerCase() === "true";
|
||||||
|
|
||||||
|
PutBPDataInTable();
|
||||||
|
//ende org
|
||||||
|
|
||||||
|
//SlLogin();
|
||||||
|
|
||||||
|
/*var req = 0;
|
||||||
|
req = $.request.parameters.get('crmid');
|
||||||
|
|
||||||
|
if (!req){
|
||||||
|
output.error = "Invalid BP Request - " + req;
|
||||||
|
$.response.status = $.net.http.OK;
|
||||||
|
$.response.contentType = "application/json";
|
||||||
|
$.response.setBody(JSON.stringify(output));
|
||||||
|
}else{\n \n //addBP(JSON.stringify(bpObj));\n //updBP(JSON.stringify(bpObj));\n //GetOrders(req); \n}\n*/
|
||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,286 @@
|
|||||||
|
var slLib = $.import("uniorg.ServiceLayer", "B1SLLogic");
|
||||||
|
var slDest = $.import("uniorg.destinations", "uodestlib");
|
||||||
|
var datetimelib = $.import("uniorg.libs", "datetime");
|
||||||
|
|
||||||
|
var outMessages = [];
|
||||||
|
var output = {};
|
||||||
|
var outMsg = {};
|
||||||
|
var outStatus = "success";
|
||||||
|
var myDebug = {};
|
||||||
|
var SESSIONID = "";
|
||||||
|
var NODEID = "";
|
||||||
|
var slLoggedIn = false;
|
||||||
|
var UserName = slDest.uniorg_eon_nice_v1_UserName;
|
||||||
|
var UserPass = slDest.uniorg_eon_nice_v1_UserPass;
|
||||||
|
var UserComp = slDest.uniorg_eon_nice_v1_UserComp;
|
||||||
|
var ContractUDOID = "EON_CONTR";
|
||||||
|
|
||||||
|
var service_version = '1.0';
|
||||||
|
|
||||||
|
var debugLevel = 0;
|
||||||
|
switch ($.request.parameters.get("debug")) {
|
||||||
|
case "true":
|
||||||
|
case "yes":
|
||||||
|
case "1":
|
||||||
|
debugLevel = 1;
|
||||||
|
break;
|
||||||
|
case "full":
|
||||||
|
case "2":
|
||||||
|
debugLevel = 2;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (debugLevel > 1) {
|
||||||
|
myDebug.requestParams = $.request.parameters;
|
||||||
|
}
|
||||||
|
|
||||||
|
function setOutputMessage() {
|
||||||
|
output.status = outStatus;
|
||||||
|
if (debugLevel > 0) {
|
||||||
|
output.debugInfos = myDebug;
|
||||||
|
}
|
||||||
|
output.messages = outMessages;
|
||||||
|
$.response.contentType = "application/json";
|
||||||
|
$.response.setBody(JSON.stringify(output));
|
||||||
|
$.response.status = $.net.http.OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
function exceptionHandler(ex) {
|
||||||
|
if (outMsg.method) {
|
||||||
|
outMessages.push(outMsg);
|
||||||
|
}
|
||||||
|
outMsg = {};
|
||||||
|
outMsg.method = "exceptionHandler";
|
||||||
|
outMsg.status = "error";
|
||||||
|
outMsg.message = ex.toString();
|
||||||
|
if (debugLevel > 0) {
|
||||||
|
outMsg.exceptionInfo = {};
|
||||||
|
outMsg.exceptionInfo.name = ex.name;
|
||||||
|
outMsg.exceptionInfo.message = ex.message;
|
||||||
|
outMsg.exceptionInfo.fileName = ex.fileName;
|
||||||
|
outMsg.exceptionInfo.lineNumber = ex.lineNumber;
|
||||||
|
outMsg.exceptionInfo.columnNumber = ex.columnNumber;
|
||||||
|
outMsg.exceptionInfo.stack = ex.stack;
|
||||||
|
//outMsg.exceptionInfo.source = ex.toSource();
|
||||||
|
}
|
||||||
|
outMessages.push(outMsg);
|
||||||
|
outStatus = "error";
|
||||||
|
output.status = outStatus;
|
||||||
|
if (debugLevel > 0) {
|
||||||
|
output.debugInfos = myDebug;
|
||||||
|
}
|
||||||
|
output.messages = outMessages;
|
||||||
|
|
||||||
|
var errbody = JSON.stringify(output);
|
||||||
|
$.response.contentType = 'application/json';
|
||||||
|
$.response.setBody(errbody);
|
||||||
|
$.response.status = $.net.http.INTERNAL_SERVER_ERROR;
|
||||||
|
|
||||||
|
try {
|
||||||
|
if (slLoggedIn) {
|
||||||
|
slLib.SLLogout(SESSIONID, NODEID);
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function slLogin() {
|
||||||
|
var loginResult = false;
|
||||||
|
var loginInfo = {};
|
||||||
|
loginInfo.UserName = UserName;
|
||||||
|
loginInfo.Password = UserPass;
|
||||||
|
loginInfo.CompanyDB = UserComp;
|
||||||
|
|
||||||
|
// SL LOGIN
|
||||||
|
var response = slLib.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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var loginResponse;
|
||||||
|
try {
|
||||||
|
loginResponse = JSON.parse(response.body.asString());
|
||||||
|
} catch (e) {
|
||||||
|
loginResponse = response.body.asString();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (debugLevel > 1) {
|
||||||
|
myDebug.loginInfo = loginInfo;
|
||||||
|
}
|
||||||
|
myDebug.loginResponse = loginResponse;
|
||||||
|
if (response.status === 200) {
|
||||||
|
loginResult = true;
|
||||||
|
} else {
|
||||||
|
outMsg = {};
|
||||||
|
outMsg.method = "login";
|
||||||
|
outMsg.status = "error";
|
||||||
|
outMsg.message = loginResponse;
|
||||||
|
outMessages.push(outMsg);
|
||||||
|
outStatus = "error";
|
||||||
|
}
|
||||||
|
return loginResult;
|
||||||
|
}
|
||||||
|
|
||||||
|
function getViewData() {
|
||||||
|
var rsMsg = {};
|
||||||
|
var conn = $.db.getConnection();
|
||||||
|
var pstmt;
|
||||||
|
var query =
|
||||||
|
'SELECT "DocEntry", "ObjType", "DocNum", U_EON_CONTRACT, U_EON_PERIOD_FROM, U_EON_PERIOD_TO, "DocDate", "DocTotal" from A19753_EON_P01.V_UO_LOST_CONTRACT_HISTORY_RECORDS';
|
||||||
|
pstmt = conn.prepareStatement(query);
|
||||||
|
var rs = pstmt.executeQuery();
|
||||||
|
var rsmd = rs.getMetaData();
|
||||||
|
var colCount = rsmd.getColumnCount();
|
||||||
|
var rc = 0;
|
||||||
|
var rows = [];
|
||||||
|
while (rs.next()) {
|
||||||
|
var row = {};
|
||||||
|
rc++;
|
||||||
|
for (var c = 1; c <= colCount; c++) {
|
||||||
|
var colName = rsmd.getColumnName(c);
|
||||||
|
var colType = rsmd.getColumnTypeName(c);
|
||||||
|
switch (colType) {
|
||||||
|
case 'TINYINT':
|
||||||
|
case 'SMALLINT':
|
||||||
|
case 'INT':
|
||||||
|
case 'INTEGER':
|
||||||
|
case 'BIGINT':
|
||||||
|
row[colName] = rs.getInteger(c);
|
||||||
|
break;
|
||||||
|
case 'DECIMAL':
|
||||||
|
row[colName] = rs.getDecimal(c);
|
||||||
|
break;
|
||||||
|
case 'REAL':
|
||||||
|
case 'DOUBLE':
|
||||||
|
case 'FLOAT':
|
||||||
|
row[colName] = rs.getDouble(c);
|
||||||
|
break;
|
||||||
|
case 'NVARCHAR':
|
||||||
|
case 'NCHAR':
|
||||||
|
case 'SHORTTEXT':
|
||||||
|
row[colName] = rs.getNString(c);
|
||||||
|
break;
|
||||||
|
case 'VARCHAR':
|
||||||
|
case 'CHAR':
|
||||||
|
row[colName] = rs.getString(c);
|
||||||
|
break;
|
||||||
|
case 'BINARY':
|
||||||
|
case 'VARBINARY':
|
||||||
|
row[colName] = rs.getBString(c);
|
||||||
|
break;
|
||||||
|
case 'DATE':
|
||||||
|
row[colName] = rs.getDate(c);
|
||||||
|
break;
|
||||||
|
case 'TIME':
|
||||||
|
row[colName] = rs.getTime(c);
|
||||||
|
break;
|
||||||
|
case 'TIMESTAMP':
|
||||||
|
row[colName] = rs.getTimestamp(c);
|
||||||
|
break;
|
||||||
|
case 'CLOB':
|
||||||
|
row[colName] = rs.getClob(c);
|
||||||
|
break;
|
||||||
|
case 'NCLOB':
|
||||||
|
case 'TEXT':
|
||||||
|
row[colName] = rs.getNClob(c);
|
||||||
|
break;
|
||||||
|
case 'BLOB':
|
||||||
|
row[colName] = rs.getBlob(c);
|
||||||
|
break;
|
||||||
|
case 'SECONDDATE':
|
||||||
|
row[colName] = rs.getSeconddate(c);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
rows.push(row);
|
||||||
|
}
|
||||||
|
rsMsg.rowCount = rc;
|
||||||
|
rsMsg.rows = rows;
|
||||||
|
rs.close();
|
||||||
|
pstmt.close();
|
||||||
|
conn.close();
|
||||||
|
return rsMsg;
|
||||||
|
}
|
||||||
|
|
||||||
|
function repairContractHistory() {
|
||||||
|
var docData = getViewData();
|
||||||
|
myDebug.docData = docData;
|
||||||
|
var startTS = new Date();
|
||||||
|
if (docData.rowCount === 0) {
|
||||||
|
outMsg = {};
|
||||||
|
outMsg.method = "updateContract";
|
||||||
|
outMsg.result = "nothing to do";
|
||||||
|
outMessages.push(outMsg);
|
||||||
|
} else {
|
||||||
|
slLogin();
|
||||||
|
|
||||||
|
outMsg = {};
|
||||||
|
outMsg.method = "updateContract";
|
||||||
|
outMsg.results = [];
|
||||||
|
|
||||||
|
docData.rows.forEach(function(row) {
|
||||||
|
var result = {};
|
||||||
|
var slContractObj = {
|
||||||
|
EON_CONTRACT_BILLCollection: [
|
||||||
|
{
|
||||||
|
U_PERIOD_FROM: datetimelib.convertToISODate(row.U_EON_PERIOD_FROM),
|
||||||
|
U_PERIOD_TO: datetimelib.convertToISODate(row.U_EON_PERIOD_TO),
|
||||||
|
U_DOCDATE: datetimelib.convertToISODate(row.DocDate),
|
||||||
|
U_DOCTOTAL: row.DocTotal,
|
||||||
|
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,
|
||||||
|
false);
|
||||||
|
if (responseContract.status >= 200 && responseContract.status < 300) {
|
||||||
|
result.status = 'success';
|
||||||
|
} else {
|
||||||
|
result.success = 'failure';
|
||||||
|
outStatus = 'error';
|
||||||
|
if (responseContract.body) {
|
||||||
|
try {
|
||||||
|
result.slResponse = JSON.parse(responseContract.body.asString());
|
||||||
|
} catch (e) {
|
||||||
|
result.slResponse = responseContract.body.asString();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
result.slResponse = responseContract;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
outMsg.results.push(result);
|
||||||
|
});
|
||||||
|
output.durationMilliseconds = new Date() - startTS;
|
||||||
|
outMessages.push(outMsg);
|
||||||
|
|
||||||
|
try {
|
||||||
|
if (slLoggedIn) {
|
||||||
|
slLib.SLLogout(SESSIONID, NODEID);
|
||||||
|
}
|
||||||
|
} catch (e) {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//testmain();
|
||||||
|
|
||||||
|
// begin org
|
||||||
|
try {
|
||||||
|
repairContractHistory();
|
||||||
|
} catch (e) {
|
||||||
|
exceptionHandler(e);
|
||||||
|
}
|
||||||
|
setOutputMessage();
|
||||||
|
//ende org
|
||||||
@@ -0,0 +1,437 @@
|
|||||||
|
var slib = $.import("uniorg.ServiceLayer", "B1SLLogic");
|
||||||
|
var slDest = $.import("uniorg.destinations", "uodestlib");
|
||||||
|
var copybplib = $.import("uniorg.eon.libs", "copybp");
|
||||||
|
|
||||||
|
var ParDebug = false;
|
||||||
|
var ParRecallIdList = "";
|
||||||
|
var ParRecallMode = false;
|
||||||
|
var outMessages = [];
|
||||||
|
var outMsg = {};
|
||||||
|
var outStatus = "success";
|
||||||
|
var globalDebug = {};
|
||||||
|
var UserName = slDest.uniorg_eon_nice_v1_UserName;
|
||||||
|
var UserPass = slDest.uniorg_eon_nice_v1_UserPass;
|
||||||
|
var UserComp = slDest.uniorg_eon_nice_v1_UserComp;
|
||||||
|
var ContractUDOID = "EON_CONTR";
|
||||||
|
|
||||||
|
var series_b2c = 68;
|
||||||
|
var series_b2b = 69;
|
||||||
|
var series_b2m = 70;
|
||||||
|
var groupcode_b2c = 100;
|
||||||
|
var groupcode_b2b = 102;
|
||||||
|
var groupcode_b2m = 103;
|
||||||
|
var cmpprivate_b2c = "cPrivate";
|
||||||
|
var cmpprivate_b2b = "cCompany";
|
||||||
|
var cmpprivate_b2m = "cCompany";
|
||||||
|
var service_version = '3.4';
|
||||||
|
// 03.11.2020 U_ORDER_ID (262)
|
||||||
|
// last changes: 31.03.2020 eoperate Felder
|
||||||
|
// 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
|
||||||
|
|
||||||
|
//logininfo auskommentiert
|
||||||
|
|
||||||
|
var debugLevel = 0;
|
||||||
|
switch ($.request.parameters.get("debug")) {
|
||||||
|
case "true":
|
||||||
|
case "yes":
|
||||||
|
case "1":
|
||||||
|
debugLevel = 1;
|
||||||
|
break;
|
||||||
|
case "full":
|
||||||
|
case "2":
|
||||||
|
debugLevel = 2;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (debugLevel > 1) {
|
||||||
|
globalDebug.requestParams = $.request.parameters;
|
||||||
|
}
|
||||||
|
|
||||||
|
function setOutputMessage() {
|
||||||
|
|
||||||
|
$.response.contentType = "application/json";
|
||||||
|
$.response.setBody(JSON.stringify(output));
|
||||||
|
$.response.status = $.net.http.OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
function pad(number) {
|
||||||
|
var r = String(number);
|
||||||
|
if (r.length === 1) {
|
||||||
|
r = '0' + r;
|
||||||
|
}
|
||||||
|
return r;
|
||||||
|
}
|
||||||
|
|
||||||
|
function convertToISODate(dateString) {
|
||||||
|
try {
|
||||||
|
//var options = { year: 'numeric', month: '2-digit', day: '2-digit' };
|
||||||
|
var d = new Date(dateString);
|
||||||
|
if (!isNaN(d)) {
|
||||||
|
//var convDate = d.toLocaleDateString('de-DE', options);
|
||||||
|
var convDate = d.getFullYear() + '-' + pad(d.getMonth() + 1) + '-' + pad(d.getDate());
|
||||||
|
return convDate;
|
||||||
|
} else {
|
||||||
|
return dateString;
|
||||||
|
}
|
||||||
|
|
||||||
|
} catch (err) {
|
||||||
|
return (err);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function getProductId(prodID) {
|
||||||
|
/* switch (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;
|
||||||
|
}*/
|
||||||
|
var conn = $.db.getConnection();
|
||||||
|
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('" +
|
||||||
|
prodID + "') GROUP BY T0.\"U_BILLING_MODE\"";
|
||||||
|
query = query.replace(/XXREPXX/g, UserComp);
|
||||||
|
pstmt = conn.prepareStatement(query);
|
||||||
|
//pstmt.setString(1, prodID);
|
||||||
|
var rs = pstmt.executeQuery();
|
||||||
|
if (!rs.next()) {
|
||||||
|
outMsg = {};
|
||||||
|
outMsg.method = "getProductId";
|
||||||
|
outMsg.message = "wrong ProductID - not exists in Table Product Param. ProductID: " + prodID;
|
||||||
|
if (debugLevel > 0) {
|
||||||
|
outMsg.message += " / Query: " + query;
|
||||||
|
}
|
||||||
|
outMsg.status = "error";
|
||||||
|
outStatus = "error";
|
||||||
|
// outMsg.message = e.message;
|
||||||
|
outMessages.push(outMsg);
|
||||||
|
} else {
|
||||||
|
var prodList = [];
|
||||||
|
do {
|
||||||
|
prodList.push({
|
||||||
|
Code: rs.getNString(1),
|
||||||
|
BillingMode: rs.getString(2)
|
||||||
|
});
|
||||||
|
} while (rs.next());
|
||||||
|
return prodList;
|
||||||
|
}
|
||||||
|
rs.close();
|
||||||
|
pstmt.close();
|
||||||
|
conn.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
function getProductComponents(prodCode, component) {
|
||||||
|
var prodComponents = [];
|
||||||
|
var conn = $.db.getConnection();
|
||||||
|
var pstmt;
|
||||||
|
var query =
|
||||||
|
"SELECT \"LineId\", \"U_COMPONENT\", \"U_DESCRIPTION\", \"U_RULE\", \"U_ITEM\", \"U_VALID_FROM\", \"U_VALID_TO\", \"U_DATA_TEXT\", \"U_DATA_NUMERIC\", \"U_DATA_TEXT2\", \"U_DATA_NUMERIC2\" FROM \"XXREPXX\".\"@EON_PRODUCT_PARAM\" WHERE \"Code\"= ? AND \"U_COMPONENT\" = ?";
|
||||||
|
query = query.replace(/XXREPXX/g, UserComp);
|
||||||
|
pstmt = conn.prepareStatement(query);
|
||||||
|
pstmt.setNString(1, prodCode);
|
||||||
|
pstmt.setNString(2, component);
|
||||||
|
globalDebug.getProductComponents = {
|
||||||
|
query: query,
|
||||||
|
prodCode: prodCode,
|
||||||
|
component: component
|
||||||
|
};
|
||||||
|
var rs = pstmt.executeQuery();
|
||||||
|
while (rs.next()) {
|
||||||
|
prodComponents.push({
|
||||||
|
LineId: rs.getInteger(1),
|
||||||
|
U_COMPONENT: rs.getNString(2),
|
||||||
|
U_DESCRIPTION: rs.getNString(3),
|
||||||
|
U_RULE: rs.getNString(4),
|
||||||
|
U_ITEM: rs.getNString(5),
|
||||||
|
U_VALID_FROM: rs.getDate(6),
|
||||||
|
U_VALID_TO: rs.getDate(7),
|
||||||
|
U_DATA_TEXT: rs.getNString(8),
|
||||||
|
U_DATA_NUMERIC: rs.getInteger(9),
|
||||||
|
U_DATA_TEXT2: rs.getNString(10),
|
||||||
|
U_DATA_NUMERIC2: rs.getInteger(11)
|
||||||
|
});
|
||||||
|
}
|
||||||
|
rs.close();
|
||||||
|
pstmt.close();
|
||||||
|
conn.close();
|
||||||
|
return prodComponents;
|
||||||
|
}
|
||||||
|
|
||||||
|
function getCardcodebyCRMID(mycrmid) {
|
||||||
|
var conn = $.db.getConnection();
|
||||||
|
try {
|
||||||
|
var pstmt;
|
||||||
|
//var query = "select CARDCODE from TEST.OCRD WHERE U_EON_CRM_ID = " + crmid;
|
||||||
|
var query = "SELECT T0.\"CardCode\" FROM " + UserComp + ".\"OCRD\" T0 WHERE T0.\"CardType\" = 'C' AND T0.\"U_EON_ID_CRM\" = '" + mycrmid +
|
||||||
|
"'";
|
||||||
|
pstmt = conn.prepareStatement(query);
|
||||||
|
var rs = pstmt.executeQuery();
|
||||||
|
if (!rs.next()) {
|
||||||
|
outMsg = {};
|
||||||
|
outMsg.method = "getCardCodebyCRMID";
|
||||||
|
outMsg.message = "not found. CRM ID: " + mycrmid;
|
||||||
|
if (debugLevel > 0) {
|
||||||
|
outMsg.message += " / Query: " + query;
|
||||||
|
}
|
||||||
|
outMsg.status = "error";
|
||||||
|
outStatus = "error";
|
||||||
|
// outMsg.message = e.message;
|
||||||
|
outMessages.push(outMsg);
|
||||||
|
} else {
|
||||||
|
return rs.getString(1);
|
||||||
|
}
|
||||||
|
rs.close();
|
||||||
|
pstmt.close();
|
||||||
|
} catch (e) {
|
||||||
|
$.trace.error(e.message);
|
||||||
|
outMsg = {};
|
||||||
|
outMsg.method = "getCardCodebyCRMID";
|
||||||
|
outMsg.message = "getcardcodebycrmid error: " + query;
|
||||||
|
outMsg.status = "error";
|
||||||
|
// outMsg.message = e.message;
|
||||||
|
outMessages.push(outMsg);
|
||||||
|
throw e;
|
||||||
|
} finally {
|
||||||
|
conn.close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function convertAdrType(adrtype) {
|
||||||
|
switch (adrtype) {
|
||||||
|
case '1':
|
||||||
|
case 'S':
|
||||||
|
return 'bo_ShipTo';
|
||||||
|
case '2':
|
||||||
|
case '3':
|
||||||
|
case 'B':
|
||||||
|
return 'bo_BillTo';
|
||||||
|
default:
|
||||||
|
return 'bo_BillTo';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function buildContractObj(InObj, SBOOBJ, billingMode) {
|
||||||
|
var isAO = billingMode === 'AO';
|
||||||
|
|
||||||
|
var UDOObj = {};
|
||||||
|
UDOObj.U_VALID_FROM = isAO ? InObj.implementation_date : InObj.begin_date;
|
||||||
|
UDOObj.U_VALID_TO = InObj.end_date;
|
||||||
|
UDOObj.U_EXT_ID_CRM = InObj.contract_id;
|
||||||
|
UDOObj.U_EXT_ID_PREBILLING = InObj.c_id;
|
||||||
|
UDOObj.U_PROJECT = InObj.project;
|
||||||
|
UDOObj.U_ORDER_ID = InObj.orderid;
|
||||||
|
|
||||||
|
var productCode = getProductId(InObj.product).find(function(p) {
|
||||||
|
return p.BillingMode === billingMode;
|
||||||
|
}).Code;
|
||||||
|
UDOObj.U_PRODUCT = productCode;
|
||||||
|
if (InObj.product_customer_name) {
|
||||||
|
UDOObj.U_ORDER_ID = InObj.product_customer_name;
|
||||||
|
}
|
||||||
|
if (isAO) {
|
||||||
|
UDOObj.U_CUSTOMER = getCardcodebyCRMID(InObj.bp_crm) + '-L';
|
||||||
|
/*} else if (InObj.ev_drivers != undefined) {
|
||||||
|
if (InObj.ev_drivers[0].parameters[0].component === "RFID_CARD") {
|
||||||
|
UDOObj.U_CUSTOMER = getCardcodebyCRMID(InObj.bp_crm);
|
||||||
|
}*/
|
||||||
|
} else {
|
||||||
|
UDOObj.U_CUSTOMER = getCardcodebyCRMID(InObj.bp_crm);
|
||||||
|
}
|
||||||
|
|
||||||
|
UDOObj.U_SIGNATURE_DATE = (InObj.signature_date === null) ? SBOOBJ.U_SIGNATURE_DATE : InObj.signature_date;
|
||||||
|
|
||||||
|
// Price Collection
|
||||||
|
|
||||||
|
UDOObj.EON_CONTRACT_PRICECollection = [];
|
||||||
|
|
||||||
|
for (var g in SBOOBJ.EON_CONTRACT_PRICECollection) {
|
||||||
|
var myPrice = {};
|
||||||
|
// copy existing
|
||||||
|
myPrice = SBOOBJ.EON_CONTRACT_PRICECollection[g];
|
||||||
|
|
||||||
|
for (var h in InObj.prices) {
|
||||||
|
|
||||||
|
if (SBOOBJ.EON_CONTRACT_PRICECollection[g].U_ITEM === InObj.prices[h].item) {
|
||||||
|
myPrice.U_VALID_FROM = (InObj.prices[h].valid_from === null) ? SBOOBJ.EON_CONTRACT_PRICECollection[g].U_VALID_FROM : InObj.prices[h].valid_from;
|
||||||
|
myPrice.U_VALID_TO = (InObj.prices[h].valid_to === null) ? SBOOBJ.EON_CONTRACT_PRICECollection[g].U_VALID_TO : InObj.prices[h].valid_to;
|
||||||
|
myPrice.U_PRICE = (InObj.prices[h].price === null) ? SBOOBJ.EON_CONTRACT_PRICECollection[g].U_PRICE : InObj.prices[h].price;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
UDOObj.EON_CONTRACT_PRICECollection.push(myPrice);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
var prodComponentsTP_DISCOUNT_MONTH = getProductComponents(productCode, "TP_DISCOUNT_MONTH");
|
||||||
|
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;
|
||||||
|
}) === -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_PRICECollection.push({
|
||||||
|
U_ITEM: pc.U_ITEM,
|
||||||
|
U_VALID_FROM: InObj.begin_date,
|
||||||
|
U_VALID_TO: validToDate,
|
||||||
|
U_PRICE: parseFloat(pc.U_DATA_TEXT2.replace(/,/g, '.'))
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
//Suche ob Objekte vorhanden wenn nicht ergänzen
|
||||||
|
|
||||||
|
for (var h in InObj.prices) {
|
||||||
|
var myfound = false;
|
||||||
|
for (var g in SBOOBJ.EON_CONTRACT_PRICECollection) {
|
||||||
|
if (SBOOBJ.EON_CONTRACT_PRICECollection[g].U_ITEM === InObj.prices[h].item) {
|
||||||
|
myfound = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (myfound === false) {
|
||||||
|
var myPrice = {};
|
||||||
|
|
||||||
|
myPrice.U_VALID_FROM = InObj.prices[h].valid_from;
|
||||||
|
myPrice.U_VALID_TO = InObj.prices[h].valid_to;
|
||||||
|
myPrice.U_PRICE = InObj.prices[h].price;
|
||||||
|
myPrice.U_ITEM = InObj.prices[h].item;
|
||||||
|
|
||||||
|
UDOObj.EON_CONTRACT_PRICECollection.push(myPrice);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// REMOVE PRICES SONDERFUNKTION:
|
||||||
|
UDOObj.EON_CONTRACT_PRICECollection = [];
|
||||||
|
|
||||||
|
//EV Drivers neu 4.2.2019
|
||||||
|
// EVDRIVERS Collection
|
||||||
|
|
||||||
|
UDOObj.EON_CONTRACT_EVDRVCollection = [];
|
||||||
|
|
||||||
|
for (var g in SBOOBJ.EON_CONTRACT_EVDRVCollection) {
|
||||||
|
var myEVDRV = {};
|
||||||
|
// copy existing
|
||||||
|
myEVDRV = SBOOBJ.EON_CONTRACT_EVDRVCollection[g];
|
||||||
|
|
||||||
|
for (var h in InObj.ev_drivers) {
|
||||||
|
|
||||||
|
if (myEVDRV.U_EV_DRIVERID === InObj.ev_drivers[h].ev_driverid) {
|
||||||
|
UDOObj.U_EXT_ID_PREBILLING = InObj.ev_drivers[h].c_id;
|
||||||
|
myEVDRV.U_EV_DRIVER = InObj.ev_drivers[h].ev_driver;
|
||||||
|
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;
|
||||||
|
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;
|
||||||
|
myEVDRV.U_VIRTA_VALID_TO = (InObj.ev_drivers[h].virta_valid_to === null) ? myEVDRV.U_VIRTA_VALID_TO : InObj.ev_drivers[h].virta_valid_to;
|
||||||
|
|
||||||
|
myEVDRV.U_NICE_VALID_FROM = (InObj.ev_drivers[h].nice_valid_from === null) ? myEVDRV.U_NICE_VALID_FROM : InObj.ev_drivers[h].nice_valid_from;
|
||||||
|
myEVDRV.U_NICE_VALID_TO = (InObj.ev_drivers[h].nice_valid_to === null) ? myEVDRV.U_NICE_VALID_TO : InObj.ev_drivers[h].nice_valid_to;
|
||||||
|
//neu 31.03.2020 eoperate Felder
|
||||||
|
myEVDRV.U_EOPERATE_ID = (InObj.ev_drivers[h].eoperate_ID === null) ? myEVDRV.U_EOPERATE_ID : InObj.ev_drivers[h].eoperate_ID;
|
||||||
|
myEVDRV.U_EOPERATE_VALID_FROM = (InObj.ev_drivers[h].eoperate_valid_from === null) ? myEVDRV.U_EOPERATE_VALID_FROM : InObj.ev_drivers[h]
|
||||||
|
.eoperate_valid_from;
|
||||||
|
myEVDRV.U_EOPERATE_VALID_TO = (InObj.ev_drivers[h].eoperate_valid_to === null) ? myEVDRV.U_EOPERATE_VALID_TO : InObj.ev_drivers[h].eoperate_valid_to;
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
UDOObj.EON_CONTRACT_EVDRVCollection.push(myEVDRV);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//Suche ob Objekte vorhanden wenn nicht ergänzen
|
||||||
|
|
||||||
|
for (var h in InObj.ev_drivers) {
|
||||||
|
var myfound = false;
|
||||||
|
for (var g in SBOOBJ.EON_CONTRACT_EVDRVCollection) {
|
||||||
|
if (SBOOBJ.EON_CONTRACT_EVDRVCollection[g].U_EV_DRIVERID === InObj.ev_drivers[h].ev_driverid) {
|
||||||
|
myfound = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (myfound === false) {
|
||||||
|
var myEVDRV = {};
|
||||||
|
UDOObj.U_EXT_ID_PREBILLING = InObj.ev_drivers[h].c_id;
|
||||||
|
myEVDRV.U_EV_DRIVER = InObj.ev_drivers[h].ev_driver;
|
||||||
|
myEVDRV.U_NICE_ID = InObj.ev_drivers[h].c_id;
|
||||||
|
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;
|
||||||
|
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;
|
||||||
|
myEVDRV.U_VIRTA_VALID_FROM = InObj.ev_drivers[h].virta_valid_from;
|
||||||
|
myEVDRV.U_NICE_VALID_FROM = InObj.ev_drivers[h].nice_valid_from;
|
||||||
|
myEVDRV.U_NICE_VALID_TO = InObj.ev_drivers[h].nice_valid_to;
|
||||||
|
//neu 31.03.2020 eoperate Felder
|
||||||
|
myEVDRV.U_EOPERATE_ID = InObj.ev_drivers[h].eoperate_ID;
|
||||||
|
myEVDRV.U_EOPERATE_VALID_FROM = InObj.ev_drivers[h].eoperate_valid_from;
|
||||||
|
myEVDRV.U_EOPERATE_VALID_TO = InObj.ev_drivers[h].eoperate_valid_to;
|
||||||
|
|
||||||
|
UDOObj.EON_CONTRACT_EVDRVCollection.push(myEVDRV);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// Param Collection
|
||||||
|
|
||||||
|
UDOObj.EON_CONTRACT_PARAMCollection = [];
|
||||||
|
|
||||||
|
return UDOObj;
|
||||||
|
}
|
||||||
|
|
||||||
|
function mockbuildBPObj() {
|
||||||
|
var bpObj = {};
|
||||||
|
bpObj.Series = series_b2b;
|
||||||
|
bpObj.CompanyPrivate = "I"; // JbpObj.type.toString();
|
||||||
|
bpObj.CardName = 'Burgmueller';
|
||||||
|
//bpObj.CardType = 'C';
|
||||||
|
//bpObj.GroupCode = 100; // JbpObj.group.toString();
|
||||||
|
//bpObj.Phone1 = JbpObj.phone.toString();
|
||||||
|
//bpObj.Cellular = JbpObj.mobile_phone.toString();
|
||||||
|
//bpObj.EmailAddress = JbpObj.email.toString();
|
||||||
|
bpObj.U_EON_ID_CRM = 'BP777888999';
|
||||||
|
bpObj.U_EON_ASSU = 'N';
|
||||||
|
return bpObj;
|
||||||
|
}
|
||||||
|
|
||||||
|
//testmain();
|
||||||
|
|
||||||
|
// begin org
|
||||||
|
|
||||||
|
var content = $.request.body.asString();
|
||||||
|
|
||||||
|
setOutputMessage();
|
||||||
|
//ende org
|
||||||
|
|
||||||
|
//SlLogin();
|
||||||
@@ -0,0 +1,202 @@
|
|||||||
|
// Changelog
|
||||||
|
// 2022-11-23: EMPEPI1-141: Ablehnung von Rechnungen im Entwurfsmodus ab 25.11.2022
|
||||||
|
// EMPEPI1-148: eMobility PEPI Anpassung des Mappings API-Einmalabrechnung
|
||||||
|
// 2023-01-18: EMPEPI1-193: Korrektur aperiodische Buchungen
|
||||||
|
// 2023-02-22: EMPEPI1-157: Zeilenerweiterung per SST auf Rechnung
|
||||||
|
// 2023-03-07: EMPEPI1-230: Anpassungen der Schnittstellen-Fehlermeldungen
|
||||||
|
// 2023-08-07: EMPEPI1-273: Anpassungen Invoice Adresse
|
||||||
|
// 2023-11-29: EMPEPI1-329: Struktur Haupt-/Zusatzartikel
|
||||||
|
// 2023-12-07: EMPEPI1-341: Korrektur Adressmapping
|
||||||
|
// 2024-09-13: BUS-6987: Feld Firmenname auf 50 Zeichen begrenzt, führt zu inkonsitenten Rechnungsadressen
|
||||||
|
// 2025-04-15: BUS-11743: Feld Comments begrenzen auf 254 Zeichen
|
||||||
|
// 2025-05-19: BUS-12136: Erweiterung CRM Invoice Schnittstelle für rechnungsbegleitende Unterlagen
|
||||||
|
var slib = $.import("uniorg.ServiceLayer", "B1SLLogic");
|
||||||
|
var datetimelib = $.import("uniorg.libs", "datetime");
|
||||||
|
var logginglib = $.import("uniorg.libs", "uologging");
|
||||||
|
var slDest = $.import("uniorg.destinations", "uodestlib");
|
||||||
|
var slfwlib = $.import("uniorg.ServiceLayer", "B1SLFramework");
|
||||||
|
|
||||||
|
var serviceName = "nice.v1.setinvoice.xsjs";
|
||||||
|
var serviceVersion = '3.2';
|
||||||
|
|
||||||
|
var output = {};
|
||||||
|
var outMessages = [];
|
||||||
|
var outMsg = {};
|
||||||
|
var outStatus = "success";
|
||||||
|
var myDebug = {};
|
||||||
|
|
||||||
|
var companyid = 0;
|
||||||
|
var UserName = '';
|
||||||
|
var UserPass = '';
|
||||||
|
var UserComp = '';
|
||||||
|
|
||||||
|
var SESSIONID = "";
|
||||||
|
var NODEID = "";
|
||||||
|
var slLoggedIn = false;
|
||||||
|
var logTableId = 0;
|
||||||
|
var logDocEntry = -1;
|
||||||
|
|
||||||
|
var objecttype = "13";
|
||||||
|
|
||||||
|
var debugLevel = 0;
|
||||||
|
switch ($.request.parameters.get("debug")) {
|
||||||
|
case "true":
|
||||||
|
case "yes":
|
||||||
|
case "1":
|
||||||
|
debugLevel = 1;
|
||||||
|
break;
|
||||||
|
case "full":
|
||||||
|
case "2":
|
||||||
|
debugLevel = 2;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (debugLevel > 0) {
|
||||||
|
output.requestParams = $.request.parameters;
|
||||||
|
}
|
||||||
|
|
||||||
|
var draftMode = true;
|
||||||
|
|
||||||
|
function updateLogEntry(id, docEntry, b1Obj) {
|
||||||
|
var conn = $.hdb.getConnection();
|
||||||
|
try {
|
||||||
|
conn.executeUpdate(
|
||||||
|
"UPDATE \"INTEGRATION_DATA\".\"UO_DOCUMENTS_RAWCALL\" SET \"B1_PK\" = ?, \"B1_OBJ\" = ?, \"UPDATE_TS\" = CURRENT_TIMESTAMP WHERE \"ID\" = ?",
|
||||||
|
docEntry, b1Obj, id);
|
||||||
|
conn.commit();
|
||||||
|
} catch (e) {
|
||||||
|
exceptionHandler(e);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function setOutputMessage() {
|
||||||
|
output.status = outStatus;
|
||||||
|
if (debugLevel > 0) {
|
||||||
|
output.debugInfos = myDebug;
|
||||||
|
}
|
||||||
|
output.messages = outMessages;
|
||||||
|
$.response.contentType = "application/json";
|
||||||
|
$.response.setBody(JSON.stringify(output));
|
||||||
|
$.response.status = $.net.http.OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
function exceptionHandler(ex) {
|
||||||
|
if (outMsg.method) {
|
||||||
|
outMessages.push(outMsg);
|
||||||
|
}
|
||||||
|
outMsg = {};
|
||||||
|
outMsg.method = "exceptionHandler";
|
||||||
|
outMsg.status = "error";
|
||||||
|
outMsg.message = ex.toString();
|
||||||
|
if (debugLevel > 0) {
|
||||||
|
outMsg.exceptionInfo = {};
|
||||||
|
outMsg.exceptionInfo.name = ex.name;
|
||||||
|
outMsg.exceptionInfo.message = ex.message;
|
||||||
|
outMsg.exceptionInfo.fileName = ex.fileName;
|
||||||
|
outMsg.exceptionInfo.lineNumber = ex.lineNumber;
|
||||||
|
outMsg.exceptionInfo.columnNumber = ex.columnNumber;
|
||||||
|
outMsg.exceptionInfo.stack = ex.stack;
|
||||||
|
//outMsg.exceptionInfo.source = ex.toSource();
|
||||||
|
}
|
||||||
|
outMessages.push(outMsg);
|
||||||
|
outStatus = "error";
|
||||||
|
output.status = outStatus;
|
||||||
|
if (debugLevel > 0) {
|
||||||
|
output.debugInfos = myDebug;
|
||||||
|
}
|
||||||
|
output.messages = outMessages;
|
||||||
|
|
||||||
|
var errbody = JSON.stringify(output);
|
||||||
|
$.response.contentType = 'application/json';
|
||||||
|
$.response.setBody(errbody);
|
||||||
|
//$.response.status = $.net.http.INTERNAL_SERVER_ERROR;
|
||||||
|
// Workaround, weil CRM scheinbar Probleme mit anderen Statuscodes hat
|
||||||
|
$.response.status = $.net.http.OK;
|
||||||
|
|
||||||
|
try {
|
||||||
|
if (slLoggedIn) {
|
||||||
|
slib.SLLogout(SESSIONID, NODEID);
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function setConnectionParams(sfcall) {
|
||||||
|
var jsonSFCall = JSON.parse(sfcall);
|
||||||
|
|
||||||
|
var idValue = "A19753_EON_P01";
|
||||||
|
var idFieldname = 'SYS_NAME';
|
||||||
|
var CompanyConfig = slDest.getCompanyCfg(idValue, idFieldname);
|
||||||
|
UserComp = CompanyConfig.COMPANYNAME;
|
||||||
|
UserName = CompanyConfig.USERNAME;
|
||||||
|
UserPass = slDest.readSecureStore(CompanyConfig.ID);
|
||||||
|
if (debugLevel > 1) {
|
||||||
|
myDebug.connectionParams = CompanyConfig;
|
||||||
|
}
|
||||||
|
myDebug.idValue = idValue;
|
||||||
|
myDebug.idFieldname = idFieldname;
|
||||||
|
if (CompanyConfig.COMPANYNAME === undefined) {
|
||||||
|
outMsg = {};
|
||||||
|
outMsg.method = "getCompany";
|
||||||
|
outStatus = "error";
|
||||||
|
outMsg.status = "error";
|
||||||
|
outMsg.message = "ERPInstanceName is invalid for this endpoint";
|
||||||
|
outMessages.push(outMsg);
|
||||||
|
}
|
||||||
|
|
||||||
|
myDebug.CompanyName = UserComp;
|
||||||
|
}
|
||||||
|
|
||||||
|
function slLogin() {
|
||||||
|
var loginResult = false;
|
||||||
|
var loginInfo = {};
|
||||||
|
loginInfo.UserName = UserName;
|
||||||
|
loginInfo.Password = UserPass;
|
||||||
|
loginInfo.CompanyDB = UserComp;
|
||||||
|
|
||||||
|
// SL LOGIN
|
||||||
|
var response = slib.SLLogin(JSON.stringify(loginInfo), null, null);
|
||||||
|
|
||||||
|
// B1SESSION and ROUTEID cookies returned by Login
|
||||||
|
for (var j in response.cookies) {
|
||||||
|
if (response.cookies[j].name == "B1SESSION") {
|
||||||
|
SESSIONID = response.cookies[j].value;
|
||||||
|
//output.SessionID = SESSIONID;
|
||||||
|
} else if (response.cookies[j].name == "ROUTEID") {
|
||||||
|
NODEID = response.cookies[j].value;
|
||||||
|
//output.NodeID = NODEID;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var loginResponse;
|
||||||
|
try {
|
||||||
|
loginResponse = JSON.parse(response.body.asString());
|
||||||
|
} catch (e) {
|
||||||
|
loginResponse = response.body.asString();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (debugLevel > 1) {
|
||||||
|
myDebug.loginInfo = loginInfo;
|
||||||
|
}
|
||||||
|
myDebug.loginResponse = loginResponse;
|
||||||
|
if (response.status === 200) {
|
||||||
|
loginResult = true;
|
||||||
|
} else {
|
||||||
|
outMsg = {};
|
||||||
|
outMsg.method = "login";
|
||||||
|
outMsg.status = "error";
|
||||||
|
var slError = myDebug.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(myDebug.loginResponse);
|
||||||
|
}
|
||||||
|
outMsg.response = myDebug.loginResponse;
|
||||||
|
//outMsg.message = loginResponse;
|
||||||
|
outMessages.push(outMsg);
|
||||||
|
outStatus = "error";
|
||||||
|
}
|
||||||
|
return loginResult;
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user