commit 84e31a40ae7de6b31019141499b981de6bbab5e6 Author: Claude Agent Date: Wed Jul 8 23:03:56 2026 +0200 Export from HANA XS Repository diff --git a/uniorg/eon/eoperate/meta/2023-04-21_V_CHARGEDATA.sql b/uniorg/eon/eoperate/meta/2023-04-21_V_CHARGEDATA.sql new file mode 100644 index 0000000..4a3c488 --- /dev/null +++ b/uniorg/eon/eoperate/meta/2023-04-21_V_CHARGEDATA.sql @@ -0,0 +1,138 @@ +CREATE VIEW "EOPERATE"."V_CHARGEDATA" ( "CHECK_CONSUMED_WATTHOUR", + "CHECK_START_STOP", + "CHECK_DURATION", + "CHECK_CONTRACT_EXISTS", + "CHECK_BILLING", + "BILLING_ID", + "BDR_ID", + "EMAID", + "UNIQUE_ID", + "CREATION_DATE_UTC", + "CHARGEPOINT_ID", + "CHARGEPOINT_TYPE", + "CHARGEPOINT_METER_ID", + "CHARGEPOINT_ADDRESS_COUNTRY", + "CHARGEPOINT_ADDRESS_POSTALCODE", + "CHARGEPOINT_ADDRESS_CITY", + "CHARGEPOINT_ADDRESS_STREET", + "CHARGEPOINT_OPERATOR_ID", + "CHARGEPOINT_OPERATOR_NAME", + "EMOBILITY_PROVIDER_ID", + "EMOBILITY_PROVIDER_NAME", + "CHARGE_DATA_AUTHORIZATION_TYPE", + "CHARGE_DATA_CONSUMPTION_KWH", + "CHARGE_DATA_BEGIN_UTC", + "CHARGE_DATA_END_UTC", + "CHARGE_DATA_TIME_ZONE", + "CHARGE_DATA_EKA_STATUS", + "SUBSCRIPTION_ID", + "PRICING_ITEMS_1_TYPE", + "PRICING_ITEMS_1_UNIT", + "PRICING_ITEMS_1_UNIT_PRICE", + "PRICING_ITEMS_1_QUANTITY", + "PRICING_ITEMS_1_NET_AMOUNT", + "PRICING_ITEMS_1_CURRENCY", + "PRICING_ITEMS_2_TYPE", + "PRICING_ITEMS_2_UNIT", + "PRICING_ITEMS_2_UNIT_PRICE", + "PRICING_ITEMS_2_QUANTITY", + "PRICING_ITEMS_2_NET_AMOUNT", + "PRICING_ITEMS_2_CURRENCY", + "PRICING_ITEMS_3_TYPE", + "PRICING_ITEMS_3_UNIT", + "PRICING_ITEMS_3_UNIT_PRICE", + "PRICING_ITEMS_3_QUANTITY", + "PRICING_ITEMS_3_NET_AMOUNT", + "PRICING_ITEMS_3_CURRENCY", + "PRICING_ITEMS_4_TYPE", + "PRICING_ITEMS_4_UNIT", + "PRICING_ITEMS_4_UNIT_PRICE", + "PRICING_ITEMS_4_QUANTITY", + "PRICING_ITEMS_4_NET_AMOUNT", + "PRICING_ITEMS_4_CURRENCY", + "CREATE_TS", + "UPDATE_TS", + "CREATE_USER", + "UPDATE_USER" ) AS WITH "EVDRV" AS (select + distinct U_EOPERATE_ID + from "A19753_EON_P01"."@EON_CONTRACT_EVDRV" + where U_EOPERATE_ID <> '') SELECT + CASE WHEN CHARGE_DATA_CONSUMPTION_KWH > 120 +OR CHARGE_DATA_CONSUMPTION_KWH = 0 +THEN 'INVALID' +ELSE 'OK' +END as "CHECK_CONSUMED_WATTHOUR", + CASE WHEN CHARGE_DATA_BEGIN_UTC IS NULL +THEN 'NULL' WHEN CHARGE_DATA_BEGIN_UTC = CHARGE_DATA_END_UTC +THEN 'EQUAL' WHEN CHARGE_DATA_END_UTC < CHARGE_DATA_BEGIN_UTC +THEN 'INVALID' +ELSE 'OK' +END AS "CHECK_START_STOP", + 'OK' AS "CHECK_DURATION", + CASE WHEN EVDRV.U_EOPERATE_ID IS NULL +THEN 'NO CONTRACT' +ELSE 'OK' +END as "CHECK_CONTRACT_EXISTS", + (SELECT + LAST_VALUE(STATUS + order by ID) + FROM "A19753_EON_P01"."EON_CHARGEDATA" CD + WHERE CD.NICE_CDRID = ET.UNIQUE_ID + AND CD.BILLING_MODE = 'EMP' ) as CHECK_BILLING, + (SELECT + MAX(ID ) + FROM "A19753_EON_P01"."EON_CHARGEDATA" CD + WHERE CD.NICE_CDRID = ET.UNIQUE_ID + AND CD.BILLING_MODE = 'EMP' ) as BILLING_ID, + "BDR_ID", + "EMAID", + "UNIQUE_ID", + "CREATION_DATE_UTC", + "CHARGEPOINT_ID", + "CHARGEPOINT_TYPE", + "CHARGEPOINT_METER_ID", + "CHARGEPOINT_ADDRESS_COUNTRY", + "CHARGEPOINT_ADDRESS_POSTALCODE", + "CHARGEPOINT_ADDRESS_CITY", + "CHARGEPOINT_ADDRESS_STREET", + "CHARGEPOINT_OPERATOR_ID", + "CHARGEPOINT_OPERATOR_NAME", + "EMOBILITY_PROVIDER_ID", + "EMOBILITY_PROVIDER_NAME", + "CHARGE_DATA_AUTHORIZATION_TYPE", + "CHARGE_DATA_CONSUMPTION_KWH", + "CHARGE_DATA_BEGIN_UTC", + "CHARGE_DATA_END_UTC", + "CHARGE_DATA_TIME_ZONE", + "CHARGE_DATA_EKA_STATUS", + "SUBSCRIPTION_ID", + "PRICING_ITEMS_1_TYPE", + "PRICING_ITEMS_1_UNIT", + "PRICING_ITEMS_1_UNIT_PRICE", + "PRICING_ITEMS_1_QUANTITY", + "PRICING_ITEMS_1_NET_AMOUNT", + "PRICING_ITEMS_1_CURRENCY", + "PRICING_ITEMS_2_TYPE", + "PRICING_ITEMS_2_UNIT", + "PRICING_ITEMS_2_UNIT_PRICE", + "PRICING_ITEMS_2_QUANTITY", + "PRICING_ITEMS_2_NET_AMOUNT", + "PRICING_ITEMS_2_CURRENCY", + "PRICING_ITEMS_3_TYPE", + "PRICING_ITEMS_3_UNIT", + "PRICING_ITEMS_3_UNIT_PRICE", + "PRICING_ITEMS_3_QUANTITY", + "PRICING_ITEMS_3_NET_AMOUNT", + "PRICING_ITEMS_3_CURRENCY", + "PRICING_ITEMS_4_TYPE", + "PRICING_ITEMS_4_UNIT", + "PRICING_ITEMS_4_UNIT_PRICE", + "PRICING_ITEMS_4_QUANTITY", + "PRICING_ITEMS_4_NET_AMOUNT", + "PRICING_ITEMS_4_CURRENCY", + "CREATE_TS", + "UPDATE_TS", + "CREATE_USER", + "UPDATE_USER" +from "EOPERATE"."CHARGEDATA" ET +LEFT OUTER join EVDRV on ET."EMAID" = EVDRV.U_EOPERATE_ID WITH READ ONLY \ No newline at end of file diff --git a/uniorg/eon/eoperate/meta/2023-04-21_V_CHARGEDATA_DUPLICATES.sql b/uniorg/eon/eoperate/meta/2023-04-21_V_CHARGEDATA_DUPLICATES.sql new file mode 100644 index 0000000..3c993d0 --- /dev/null +++ b/uniorg/eon/eoperate/meta/2023-04-21_V_CHARGEDATA_DUPLICATES.sql @@ -0,0 +1,79 @@ +CREATE VIEW "EOPERATE"."V_CHARGEDATA_DUPLICATES" ( "UNIQUE_ID", + "BDR_ID", + "EMAID", + "CHARGEPOINT_ID", + "CHARGE_DATA_BEGIN_UTC", + "CHARGE_DATA_END_UTC", + "CHARGE_DATA_CONSUMPTION_KWH", + "CHECK_BILLING", + "CREATE_TS", + "UPDATE_TS", + "RANK" ) AS WITH "VALID" AS (SELECT + UNIQUE_ID , + BDR_ID , + EMAID , + CHARGEPOINT_ID, + CHARGE_DATA_BEGIN_UTC, + CHARGE_DATA_END_UTC , + CHARGE_DATA_CONSUMPTION_KWH, + IFNULL(CHECK_BILLING, + 'Z') AS CHECK_BILLING, + CREATE_TS, + UPDATE_TS + FROM "EOPERATE"."V_CHARGEDATA" AS V + WHERE CHECK_CONTRACT_EXISTS = 'OK' --AND CHECK_CONSUMED_WATTHOUR = 'OK' + --AND CHECK_START_STOP = 'OK' + + AND CHECK_DURATION = 'OK' + AND UPDATE_TS > '20220101'), + "HAVING_DUPLICATES" AS (SELECT + EMAID, + CHARGEPOINT_ID, + CHARGE_DATA_BEGIN_UTC, + COUNT(*) AS DUPLICATES + FROM VALID + GROUP BY EMAID, + CHARGEPOINT_ID, + CHARGE_DATA_BEGIN_UTC HAVING COUNT(*) > 1), + "DUPLICATE_WITH_RANK" AS (SELECT + "V"."UNIQUE_ID" , + "V"."BDR_ID" , + "V"."EMAID" , + "V"."CHARGEPOINT_ID" , + "V"."CHARGE_DATA_BEGIN_UTC" , + "V"."CHARGE_DATA_END_UTC" , + "V"."CHARGE_DATA_CONSUMPTION_KWH" , + IFNULL("V"."CHECK_BILLING", + 'Z') AS CHECK_BILLING, + "V"."CREATE_TS" , + "V"."UPDATE_TS" , + RANK() OVER ( PARTITION BY EMAID, + CHARGEPOINT_ID, + CHARGE_DATA_BEGIN_UTC + ORDER BY CHECK_BILLING, + CHARGE_DATA_CONSUMPTION_KWH DESC, + BDR_ID DESC ) AS Rank + FROM "VALID" V + WHERE EXISTS (SELECT + 1 + FROM HAVING_DUPLICATES D + WHERE D.CHARGEPOINT_ID = V.CHARGEPOINT_ID + AND D.CHARGE_DATA_BEGIN_UTC = V.CHARGE_DATA_BEGIN_UTC + AND D.EMAID = V.EMAID)) SELECT + "D"."UNIQUE_ID" , + "D"."BDR_ID" , + "D"."EMAID" , + "D"."CHARGEPOINT_ID" , + "D"."CHARGE_DATA_BEGIN_UTC" , + "D"."CHARGE_DATA_END_UTC" , + "D"."CHARGE_DATA_CONSUMPTION_KWH" , + IFNULL("D"."CHECK_BILLING", + 'Z') AS CHECK_BILLING, + "D"."CREATE_TS" , + "D"."UPDATE_TS" , + "D"."RANK" +FROM "DUPLICATE_WITH_RANK" D +WHERE UPDATE_TS > '20230101' +ORDER BY D.CHARGE_DATA_BEGIN_UTC DESC , + D.CHARGEPOINT_ID, + D.RANK WITH READ ONLY \ No newline at end of file diff --git a/uniorg/eon/eoperate/meta/create_emobilityview_eoperate.sql b/uniorg/eon/eoperate/meta/create_emobilityview_eoperate.sql new file mode 100644 index 0000000..5e359fa --- /dev/null +++ b/uniorg/eon/eoperate/meta/create_emobilityview_eoperate.sql @@ -0,0 +1,106 @@ +ALTER VIEW "EMOBILITY"."V_CHARGEDATA_EMP_EOPERATE" ( "ID", "CALLID", "CDRID", "EVSEID", "CONTRACTID", "RFID", "INSTANCE", "TOKENTYPE", "CONSUMEDENERGY", +"OPERATORID", "OPERATORNAME", "OPERATORSUBMANDANT", "FREECHARGE", "CHARGEPOINTTYPE", "METERID", "MAXSOCKETPOWER", "ADDRESS", "ZIP", "CITY", "COUNTRY", "PROVIDERID", +"PROVIDERNAME", "CHARGINGSTARTTIME", "CHARGINGSTOPTIME", "PARKINGSTARTTIME", "PARKINGSTOPTIME", "METERSTART", "METERSTOP", "TARIFF", "CURRENCY", "VAT", +"BILLINGVALUEBRUTTO", "BILLINGVALUENETTO", "PARKINGTIMEPRICEBRUTTO", "PARKINGTIMEPRICENETTO", "ADITIONALPRICEBRUTTO", "ADITIONALPRICENETTO", "KWHNETPRICE", +"MINUTENETPRICE", "SESSIONNETPRICE", "DURATION", "EICHRECHTTYPE", "MILEAGE", "SUBSCRIPTION_ID", "CREATE_TS", "UPDATE_TS", "STATUS", "BILLING", "SYSTYPE", "VIEWVERSION" + ) AS +select + 'EOP' || "BDR_ID", + "BDR_ID", + "BDR_ID", + "CHARGEPOINT_ID", + "EMAID", + UPPER("UNIQUE_ID"), + UPPER("UNIQUE_ID"), + "CHARGE_DATA_AUTHORIZATION_TYPE", + "CHARGE_DATA_CONSUMPTION_KWH" * 1000, + "CHARGEPOINT_OPERATOR_ID", + "CHARGEPOINT_OPERATOR_NAME", + 'OPERATORSUBMANDANT', + 'false', + "CHARGEPOINT_TYPE", + "CHARGEPOINT_METER_ID", + 0, +"CHARGEPOINT_ADDRESS_STREET", + "CHARGEPOINT_ADDRESS_POSTALCODE", + "CHARGEPOINT_ADDRESS_CITY", + "CHARGEPOINT_ADDRESS_COUNTRY", + "EMOBILITY_PROVIDER_ID", + "EMOBILITY_PROVIDER_NAME", +"CHARGE_DATA_BEGIN_UTC", +"CHARGE_DATA_END_UTC", +"CHARGE_DATA_BEGIN_UTC", +"CHARGE_DATA_END_UTC", + 0, + 0, + 'TARIFF', + CASE + WHEN "PRICING_ITEMS_1_TYPE" = 'CUS' THEN "PRICING_ITEMS_1_CURRENCY" + WHEN "PRICING_ITEMS_2_TYPE" = 'CUS' THEN "PRICING_ITEMS_2_CURRENCY" + WHEN "PRICING_ITEMS_3_TYPE" = 'CUS' THEN "PRICING_ITEMS_3_CURRENCY" + WHEN "PRICING_ITEMS_4_TYPE" = 'CUS' THEN "PRICING_ITEMS_4_CURRENCY" + ELSE NULL + END, + 0, +0, + CASE + WHEN "PRICING_ITEMS_1_TYPE" = 'CUS' THEN "PRICING_ITEMS_1_NET_AMOUNT" + WHEN "PRICING_ITEMS_2_TYPE" = 'CUS' THEN "PRICING_ITEMS_2_NET_AMOUNT" + WHEN "PRICING_ITEMS_3_TYPE" = 'CUS' THEN "PRICING_ITEMS_3_NET_AMOUNT" + WHEN "PRICING_ITEMS_4_TYPE" = 'CUS' THEN "PRICING_ITEMS_4_NET_AMOUNT" + ELSE NULL + END, +0, +0, +0, +0, + CASE + WHEN "PRICING_ITEMS_1_TYPE" = 'CUS' AND "PRICING_ITEMS_1_UNIT" = 'KWH' THEN "PRICING_ITEMS_1_UNIT_PRICE" + WHEN "PRICING_ITEMS_2_TYPE" = 'CUS' AND "PRICING_ITEMS_2_UNIT" = 'KWH' THEN "PRICING_ITEMS_2_UNIT_PRICE" + WHEN "PRICING_ITEMS_3_TYPE" = 'CUS' AND "PRICING_ITEMS_3_UNIT" = 'KWH' THEN "PRICING_ITEMS_3_UNIT_PRICE" + WHEN "PRICING_ITEMS_4_TYPE" = 'CUS' AND "PRICING_ITEMS_4_UNIT" = 'KWH' THEN "PRICING_ITEMS_4_UNIT_PRICE" + ELSE NULL + END, + CASE + WHEN "PRICING_ITEMS_1_TYPE" = 'CUS' AND "PRICING_ITEMS_1_UNIT" = 'MIN' THEN "PRICING_ITEMS_1_UNIT_PRICE" + WHEN "PRICING_ITEMS_2_TYPE" = 'CUS' AND "PRICING_ITEMS_2_UNIT" = 'MIN' THEN "PRICING_ITEMS_2_UNIT_PRICE" + WHEN "PRICING_ITEMS_3_TYPE" = 'CUS' AND "PRICING_ITEMS_3_UNIT" = 'MIN' THEN "PRICING_ITEMS_3_UNIT_PRICE" + WHEN "PRICING_ITEMS_4_TYPE" = 'CUS' AND "PRICING_ITEMS_4_UNIT" = 'MIN' THEN "PRICING_ITEMS_4_UNIT_PRICE" + ELSE NULL + END, + CASE + WHEN "PRICING_ITEMS_1_TYPE" = 'CUS' AND "PRICING_ITEMS_1_UNIT" = 'ST' THEN "PRICING_ITEMS_1_UNIT_PRICE" + WHEN "PRICING_ITEMS_2_TYPE" = 'CUS' AND "PRICING_ITEMS_2_UNIT" = 'ST' THEN "PRICING_ITEMS_2_UNIT_PRICE" + WHEN "PRICING_ITEMS_3_TYPE" = 'CUS' AND "PRICING_ITEMS_3_UNIT" = 'ST' THEN "PRICING_ITEMS_3_UNIT_PRICE" + WHEN "PRICING_ITEMS_4_TYPE" = 'CUS' AND "PRICING_ITEMS_4_UNIT" = 'ST' THEN "PRICING_ITEMS_4_UNIT_PRICE" + ELSE NULL + END, + CASE + WHEN "PRICING_ITEMS_1_TYPE" = 'CUS' AND "PRICING_ITEMS_1_UNIT" = 'MIN' THEN "PRICING_ITEMS_1_QUANTITY" + WHEN "PRICING_ITEMS_2_TYPE" = 'CUS' AND "PRICING_ITEMS_2_UNIT" = 'MIN' THEN "PRICING_ITEMS_2_QUANTITY" + WHEN "PRICING_ITEMS_3_TYPE" = 'CUS' AND "PRICING_ITEMS_3_UNIT" = 'MIN' THEN "PRICING_ITEMS_3_QUANTITY" + WHEN "PRICING_ITEMS_4_TYPE" = 'CUS' AND "PRICING_ITEMS_4_UNIT" = 'MIN' THEN "PRICING_ITEMS_4_QUANTITY" + ELSE 0 + END, + "CHARGE_DATA_EKA_STATUS", + 0, + "SUBSCRIPTION_ID", +"CREATE_TS", +"UPDATE_TS", +'','Y', + 'EOPERATE', + 'V 1.4/28.09.2020' +from "EOPERATE"."CHARGEDATA" +where + ( + "PRICING_ITEMS_1_TYPE" = 'CUS' AND ("PRICING_ITEMS_1_QUANTITY" > 2 OR "PRICING_ITEMS_1_UNIT" != 'MIN') + OR + "PRICING_ITEMS_2_TYPE" = 'CUS' AND ("PRICING_ITEMS_2_QUANTITY" > 2 OR "PRICING_ITEMS_2_UNIT" != 'MIN') + OR + "PRICING_ITEMS_3_TYPE" = 'CUS' AND ("PRICING_ITEMS_3_QUANTITY" > 2 OR "PRICING_ITEMS_3_UNIT" != 'MIN') + OR + "PRICING_ITEMS_4_TYPE" = 'CUS' AND ("PRICING_ITEMS_4_QUANTITY" > 2 OR "PRICING_ITEMS_4_UNIT" != 'MIN') + ) +and "CHARGE_DATA_CONSUMPTION_KWH" > 0 +and "SUBSCRIPTION_ID" <> 'SU20200729002' +--and "PLUGTYPE" IS NOT NULL \ No newline at end of file diff --git a/uniorg/eon/eoperate/meta/create_eoperate.sql b/uniorg/eon/eoperate/meta/create_eoperate.sql new file mode 100644 index 0000000..3a909ac --- /dev/null +++ b/uniorg/eon/eoperate/meta/create_eoperate.sql @@ -0,0 +1,102 @@ +create schema EOPERATE; + +-- Version 1.2 / 25.09.2020 +-- DROP SEQUENCE "EOPERATE"."SEQ_TRANSACTIONDATA_ID"; +-- CREATE SEQUENCE "EOPERATE"."SEQ_TRANSACTIONDATA_ID"; +DROP TABLE "EOPERATE"."CHARGEDATA"; +CREATE COLUMN TABLE "EOPERATE"."CHARGEDATA" ("BDR_ID" NVARCHAR(50) NOT NULL, + "EMAID" NVARCHAR(50) NOT NULL , + "UNIQUE_ID" NVARCHAR(50) , + "CREATION_DATE_UTC" NVARCHAR(50), + "CHARGEPOINT_ID" NVARCHAR(50), + "CHARGEPOINT_TYPE" NVARCHAR(10), + "CHARGEPOINT_METER_ID" NVARCHAR(50), + "CHARGEPOINT_ADDRESS_COUNTRY" NVARCHAR(50), + "CHARGEPOINT_ADDRESS_POSTALCODE" NVARCHAR(50), + "CHARGEPOINT_ADDRESS_CITY" NVARCHAR(50), + "CHARGEPOINT_ADDRESS_STREET" NVARCHAR(50), + "CHARGEPOINT_OPERATOR_ID" NVARCHAR(50), + "CHARGEPOINT_OPERATOR_NAME" NVARCHAR(100), + "EMOBILITY_PROVIDER_ID" NVARCHAR(50), + "EMOBILITY_PROVIDER_NAME" NVARCHAR(50), + "CHARGE_DATA_AUTHORIZATION_TYPE" NVARCHAR(50), + "CHARGE_DATA_CONSUMPTION_KWH" DECIMAL(17,3) CS_FIXED, + "CHARGE_DATA_BEGIN_UTC" NVARCHAR(50), + "CHARGE_DATA_END_UTC" NVARCHAR(50), + "CHARGE_DATA_TIME_ZONE" NVARCHAR(10), + "CHARGE_DATA_EKA_STATUS" NVARCHAR(10), + "SUBSCRIPTION_ID" NVARCHAR(50), + "PRICING_ITEMS_1_TYPE" NVARCHAR(10), + "PRICING_ITEMS_1_UNIT" NVARCHAR(10), + "PRICING_ITEMS_1_UNIT_PRICE" DECIMAL(17,3) CS_FIXED, + "PRICING_ITEMS_1_QUANTITY" DECIMAL(17,3) CS_FIXED, + "PRICING_ITEMS_1_NET_AMOUNT" DECIMAL(17,3) CS_FIXED, + "PRICING_ITEMS_1_CURRENCY" NVARCHAR(50), + "PRICING_ITEMS_2_TYPE" NVARCHAR(10), + "PRICING_ITEMS_2_UNIT" NVARCHAR(10), + "PRICING_ITEMS_2_UNIT_PRICE" DECIMAL(17,3) CS_FIXED, + "PRICING_ITEMS_2_QUANTITY" DECIMAL(17,3) CS_FIXED, + "PRICING_ITEMS_2_NET_AMOUNT" DECIMAL(17,3) CS_FIXED, + "PRICING_ITEMS_2_CURRENCY" NVARCHAR(50), + "PRICING_ITEMS_3_TYPE" NVARCHAR(10), + "PRICING_ITEMS_3_UNIT" NVARCHAR(10), + "PRICING_ITEMS_3_UNIT_PRICE" DECIMAL(17,3) CS_FIXED, + "PRICING_ITEMS_3_QUANTITY" DECIMAL(17,3) CS_FIXED, + "PRICING_ITEMS_3_NET_AMOUNT" DECIMAL(17,3) CS_FIXED, + "PRICING_ITEMS_3_CURRENCY" NVARCHAR(50), + "PRICING_ITEMS_4_TYPE" NVARCHAR(10), + "PRICING_ITEMS_4_UNIT" NVARCHAR(10), + "PRICING_ITEMS_4_UNIT_PRICE" DECIMAL(17,3) CS_FIXED, + "PRICING_ITEMS_4_QUANTITY" DECIMAL(17,3) CS_FIXED, + "PRICING_ITEMS_4_NET_AMOUNT" DECIMAL(17,3) CS_FIXED, + "PRICING_ITEMS_4_CURRENCY" NVARCHAR(50), + "JSONRAW" NCLOB MEMORY THRESHOLD 1000, + "CREATE_TS" LONGDATE CS_LONGDATE DEFAULT CURRENT_TIMESTAMP NOT NULL , + "UPDATE_TS" LONGDATE CS_LONGDATE NOT NULL , + PRIMARY KEY ("BDR_ID")) UNLOAD PRIORITY 5 AUTO MERGE; + +/* +-- Changes v1.1 +ALTER TABLE "EOPERATE"."CHARGEDATA" ADD ( + "SUBSCRIPTION_ID" NVARCHAR(50) +); +*/ + + +ALTER TABLE "EOPERATE"."CHARGEDATA" ADD ( +"CREATE_USER" NVARCHAR(50) DEFAULT CURRENT_USER NOT NULL +); + + +ALTER TABLE "EOPERATE"."CHARGEDATA" ADD ( +"UPDATE_USER" NVARCHAR(50) DEFAULT CURRENT_USER NOT NULL +); + +ALTER TABLE "EOPERATE"."CHARGEDATA" ADD ( +"BUSINESSVALIDATIONRESULT" NVARCHAR(100), +"TECHVALIDATIONRESULT" NVARCHAR(100) +); + +ALTER TABLE "EOPERATE"."CHARGEDATA" ADD ( +"NOTBILLABLEREASON" NVARCHAR(200) +); + +ALTER TABLE "EOPERATE"."CHARGEDATA" ADD ( + "DURATION" DECIMAL AS IFNULL(CEIL((SECONDS_BETWEEN(TO_TIMESTAMP("CHARGE_DATA_BEGIN_UTC"),TO_TIMESTAMP("CHARGE_DATA_END_UTC")) / 60 )),0) +); + +ALTER TABLE "EOPERATE"."CHARGEDATA" ALTER ( + "CHARGE_DATA_CONSUMPTION_KWH" DECIMAL(21,6) CS_FIXED, + "PRICING_ITEMS_1_UNIT_PRICE" DECIMAL(21,6) CS_FIXED, + "PRICING_ITEMS_1_QUANTITY" DECIMAL(21,6) CS_FIXED, + "PRICING_ITEMS_1_NET_AMOUNT" DECIMAL(21,6) CS_FIXED, + "PRICING_ITEMS_2_UNIT_PRICE" DECIMAL(21,6) CS_FIXED, + "PRICING_ITEMS_2_QUANTITY" DECIMAL(21,6) CS_FIXED, + "PRICING_ITEMS_2_NET_AMOUNT" DECIMAL(21,6) CS_FIXED, + "PRICING_ITEMS_3_UNIT_PRICE" DECIMAL(21,6) CS_FIXED, + "PRICING_ITEMS_3_QUANTITY" DECIMAL(21,6) CS_FIXED, + "PRICING_ITEMS_3_NET_AMOUNT" DECIMAL(21,6) CS_FIXED, + "PRICING_ITEMS_4_UNIT_PRICE" DECIMAL(21,6) CS_FIXED, + "PRICING_ITEMS_4_QUANTITY" DECIMAL(21,6) CS_FIXED, + "PRICING_ITEMS_4_NET_AMOUNT" DECIMAL(21,6) CS_FIXED +); \ No newline at end of file diff --git a/uniorg/eon/eoperate/meta/emobility_view_v15.sql b/uniorg/eon/eoperate/meta/emobility_view_v15.sql new file mode 100644 index 0000000..532cdc2 --- /dev/null +++ b/uniorg/eon/eoperate/meta/emobility_view_v15.sql @@ -0,0 +1,161 @@ +ALTER VIEW "EMOBILITY"."V_CHARGEDATA_EMP" ( "ID", + "CALLID", + "CDRID", + "EVSEID", + "CONTRACTID", + "RFID", + "INSTANCE", + "TOKENTYPE", + "CONSUMEDENERGY", + "OPERATORID", + "OPERATORNAME", + "OPERATORSUBMANDANT", + "FREECHARGE", + "CHARGEPOINTTYPE", + " METERID", + "MAXSOCKETPOWER", + "ADDRESS", + "ZIP", + "CITY", + "COUNTRY", + "PROVIDERID", + "PROVIDERNAME", + "CHARGINGSTARTTIME", + "CHARGINGSTOPTIME", + "PARKINGSTARTTIME", + "PARKINGSTOPTIME", + "METERSTART", + "METERSTOP", + "TARIFF", + "CURRENCY", + "VAT", + "BILLINGVALUEBRUTTO", + "BILLINGVALUENETTO", + "PARKINGTIMEPRICEBRUTTO", + "PARKINGTIMEPRICENETTO", + "ADITIONALPRICEBRUTTO", + "ADITIONALPRICENETTO", + "KWHNETPRICE", + "MINUTENETPRICE", + "SESSIONNETPRICE", + "EICHRECHTTYPE", + "MILEAGE", + "CREATE_TS", + "UPDATE_TS", + "STATUS", + "BILLING", + "SYSTYPE", + "VIEWVERSION" ) AS select + "UUID", + "UUID", + "UUID", + "FULLEVSEID", + "CUSTOMERID", + UPPER("RFID"), + UPPER("RFID"), + 'RFID', + IFNULL("WATTHOUR", + 0), + 'CPOOPERATORID', + 'OPERATORNAME', + 'true', + CASE "FREECHARGING" WHEN 'yes' +THEN 'true' WHEN 'no' +then 'false' +ELSE '' +END as FREECHARGE, + "PLUGTYPE", + 0, + 'METERID', +"LOCATION_ADDRESS", + '', + --LOCATION ZIP + "LOCATION_CITY", + 'DE', + 'PROVIDERID', + 'PROVIDERNAME', + +left("STARTTIME", + 19), + +left("STOPTIME", + 19), + +left("STARTTIME", + 19), + +left("STOPTIME", + 19), + IFNULL( "METERSTART", + 0), + IFNULL( "METERSTOP", + 0), + 'TARIFF', + "CURRENCY", + 0, + --'VAT', +0, + --'BILLINGVALUEBRUTTO', +0, + --'BILLINGVALUENETTO', +0, + --'PARKINGTIMEPRICEBRUTTO', +0, + --'PARKINGTIMEPRICENETTO', +0, + --'ADITIONALPRICEBRUTTO', +0, + --'ADITIONALPRICENETTO', + "KWHGROSSPRICE" / '1.16', + "MINUTEGROSSPRICE" / '1.16', + "SESSIONGROSSPRICE" / '1.16', + -- "SESSIONGROSSPRICE" , + "EICHRECHTTYPE", + "MILEAGE", + --'B2CPRICING', +--'ASSETOWNERPRICING', +--'CPOPRICING', + /* "STATIONUUID", + "CUSTOMERID", + "STARTTIME", + "STOPTIME", + "DURATION", + "WATTHOUR", + "AMOUNT", + "CURRENCY", + "TRANSACTIONTYPE", + "CREATED", + "RFID", + "STATION", + "CUSTOMERGROUPID", + "CUSTOMERGROUPNAME", + "ORGANIZATIONID", + "PAYMENTTYPE", + "EVSEID", + "PLUGTYPE", + "EMPSHARE", + "SIGNEDMETERVALUEBEGIN", + "SIGNEDMETERVALUEEND", + "OPERATORPRICE", + "OPERATORCURRENCY", + "OPERATORID", + "FREECHARGING", + "EMPTARIFFID", + "EMPTARIFFNAME", + "FULLEVSEID", + "METERSTART", + "METERSTOP", + "NOTES", + "MILEAGE", + */ --"JSONRAW", +"CREATE_TS", + "UPDATE_TS", + "STATUS", + "BILLING", + 'VIRTAPORTAL', + 'V 1.6/24.09.2020' +from "VIRTAPORTAL"."EMP_TRANSACTIONS" +where "TRANSACTIONTYPE" = 'charge' +and "WATTHOUR" > 0 +and "DURATION" > 2 +UNION ALL select * from "EMOBILITY"."V_CHARGEDATA_EMP_EOPERATE" \ No newline at end of file diff --git a/uniorg/eon/eoperate/meta/emobility_view_v16.sql b/uniorg/eon/eoperate/meta/emobility_view_v16.sql new file mode 100644 index 0000000..ced77ef --- /dev/null +++ b/uniorg/eon/eoperate/meta/emobility_view_v16.sql @@ -0,0 +1,216 @@ +DROP VIEW "EMOBILITY"."V_CHARGEDATA_EMP"; +CREATE VIEW "EMOBILITY"."V_CHARGEDATA_EMP" ( "ID", + "CALLID", + "CDRID", + "EVSEID", + "CONTRACTID", + "RFID", + "INSTANCE", + "TOKENTYPE", + "CONSUMEDENERGY", + "OPERATORID", + "OPERATORNAME", + "OPERATORSUBMANDANT", + "FREECHARGE", + "CHARGEPOINTTYPE", + "METERID", + "MAXSOCKETPOWER", + "ADDRESS", + "ZIP", + "CITY", + "COUNTRY", + "PROVIDERID", + "PROVIDERNAME", + "CHARGINGSTARTTIME", + "CHARGINGSTOPTIME", + "PARKINGSTARTTIME", + "PARKINGSTOPTIME", + "METERSTART", + "METERSTOP", + "TARIFF", + "CURRENCY", + "VAT", + "BILLINGVALUEBRUTTO", + "BILLINGVALUENETTO", + "PARKINGTIMEPRICEBRUTTO", + "PARKINGTIMEPRICENETTO", + "ADITIONALPRICEBRUTTO", + "ADITIONALPRICENETTO", + "KWHNETPRICE", + "MINUTENETPRICE", + "SESSIONNETPRICE", + "DURATION", + "EICHRECHTTYPE", + "MILEAGE", + "SUBSCRIPTION_ID", + "CREATE_TS", + "UPDATE_TS", + "STATUS", + "BILLING", + "SYSTYPE", + "VIEWVERSION" ) AS ((select + "UUID", + "UUID", + "UUID", + "FULLEVSEID", + TO_NVARCHAR("CUSTOMERID"), + UPPER("RFID"), + UPPER("RFID"), + 'RFID', + IFNULL("WATTHOUR", + 0), + CPOOPERATORID, + 'OPERATORNAME', + 'true', + CASE "FREECHARGING" WHEN 'yes' + THEN 'true' WHEN 'no' + then 'false' + ELSE '' + END as FREECHARGE, + "PLUGTYPE", + 'METERID', + 0, +"LOCATION_ADDRESS", + '', + --LOCATION ZIP + "LOCATION_CITY", + 'DE', + 'PROVIDERID', + 'PROVIDERNAME', + + left("STARTTIME", + 19), + + left("STOPTIME", + 19), + + left("STARTTIME", + 19), + + left("STOPTIME", + 19), + IFNULL( "METERSTART", + 0), + IFNULL( "METERSTOP", + 0), + 'TARIFF', + "CURRENCY", + 0, + --'VAT', +0, + --'BILLINGVALUEBRUTTO', +0, + --'BILLINGVALUENETTO', +0, + --'PARKINGTIMEPRICEBRUTTO', +0, + --'PARKINGTIMEPRICENETTO', +0, + --'ADITIONALPRICEBRUTTO', +0, + --'ADITIONALPRICENETTO', + "KWHGROSSPRICE" / '1.16', + "MINUTEGROSSPRICE" / '1.16', + "SESSIONGROSSPRICE" / '1.16', + "DURATION" , + "EICHRECHTTYPE", + "MILEAGE", + '', + --'B2CPRICING', +--'ASSETOWNERPRICING', +--'CPOPRICING', + /* "STATIONUUID", + "CUSTOMERID", + "STARTTIME", + "STOPTIME", + "DURATION", + "WATTHOUR", + "AMOUNT", + "CURRENCY", + "TRANSACTIONTYPE", + "CREATED", + "RFID", + "STATION", + "CUSTOMERGROUPID", + "CUSTOMERGROUPNAME", + "ORGANIZATIONID", + "PAYMENTTYPE", + "EVSEID", + "PLUGTYPE", + "EMPSHARE", + "SIGNEDMETERVALUEBEGIN", + "SIGNEDMETERVALUEEND", + "OPERATORPRICE", + "OPERATORCURRENCY", + "OPERATORID", + "FREECHARGING", + "EMPTARIFFID", + "EMPTARIFFNAME", + "FULLEVSEID", + "METERSTART", + "METERSTOP", + "NOTES", + "MILEAGE", + */ --"JSONRAW", +"CREATE_TS", + "UPDATE_TS", + "STATUS", + "BILLING", + 'VIRTAPORTAL', + 'V 1.6/25.09.2020' + from "VIRTAPORTAL"."EMP_TRANSACTIONS" + where "TRANSACTIONTYPE" = 'charge' + and "WATTHOUR" > 0 + and "DURATION" > 2) + UNION ALL (SELECT + "ID" , + "CALLID" , + "CDRID" , + "EVSEID" , + "CONTRACTID" , + "RFID" , + "INSTANCE" , + "TOKENTYPE" , + "CONSUMEDENERGY" , + "OPERATORID" , + "OPERATORNAME" , + "OPERATORSUBMANDANT" , + "FREECHARGE" , + "CHARGEPOINTTYPE" , + "METERID" , + "MAXSOCKETPOWER" , + "ADDRESS" , + "ZIP" , + "CITY" , + "COUNTRY" , + "PROVIDERID" , + "PROVIDERNAME" , + "CHARGINGSTARTTIME" , + "CHARGINGSTOPTIME" , + "PARKINGSTARTTIME" , + "PARKINGSTOPTIME" , + "METERSTART" , + "METERSTOP" , + "TARIFF" , + "CURRENCY" , + "VAT" , + "BILLINGVALUEBRUTTO" , + "BILLINGVALUENETTO" , + "PARKINGTIMEPRICEBRUTTO" , + "PARKINGTIMEPRICENETTO" , + "ADITIONALPRICEBRUTTO" , + "ADITIONALPRICENETTO" , + "KWHNETPRICE" , + "MINUTENETPRICE" , + "SESSIONNETPRICE" , + "DURATION" , + "EICHRECHTTYPE" , + "MILEAGE" , + "SUBSCRIPTION_ID" , + "CREATE_TS" , + "UPDATE_TS" , + "STATUS" , + "BILLING" , + "SYSTYPE" , + "VIEWVERSION" + from "EMOBILITY"."V_CHARGEDATA_EMP_EOPERATE")) WITH READ ONLY \ No newline at end of file diff --git a/uniorg/eon/eoperate/meta/emobility_view_v18.sql b/uniorg/eon/eoperate/meta/emobility_view_v18.sql new file mode 100644 index 0000000..cc9ea7e --- /dev/null +++ b/uniorg/eon/eoperate/meta/emobility_view_v18.sql @@ -0,0 +1,219 @@ +ALTER VIEW "EMOBILITY"."V_CHARGEDATA_EMP" ( "ID", + "CALLID", + "CDRID", + "EVSEID", + "CONTRACTID", + "RFID", + "INSTANCE", + "TOKENTYPE", + "CONSUMEDENERGY", + "OPERATORID", + "OPERATORNAME", + "OPERATORSUBMANDANT", + "FREECHARGE", + "CHARGEPOINTTYPE", + "METERID", + "MAXSOCKETPOWER", + "ADDRESS", + "ZIP", + "CITY", + "COUNTRY", + "PROVIDERID", + "PROVIDERNAME", + "CHARGINGSTARTTIME", + "CHARGINGSTOPTIME", + "PARKINGSTARTTIME", + "PARKINGSTOPTIME", + "METERSTART", + "METERSTOP", + "TARIFF", + "CURRENCY", + "VAT", + "BILLINGVALUEBRUTTO", + "BILLINGVALUENETTO", + "PARKINGTIMEPRICEBRUTTO", + "PARKINGTIMEPRICENETTO", + "ADITIONALPRICEBRUTTO", + "ADITIONALPRICENETTO", + "KWHNETPRICE", + "MINUTENETPRICE", + "SESSIONNETPRICE", + "DURATION", + "EICHRECHTTYPE", + "MILEAGE", + "SUBSCRIPTION_ID", + "CREATE_TS", + "UPDATE_TS", + "STATUS", + "BILLING", + "SYSTYPE", + "VIEWVERSION" ) AS ((select + "UUID", + "UUID", + "UUID", + "FULLEVSEID", + TO_NVARCHAR("CUSTOMERID"), + UPPER("RFID"), + UPPER("RFID"), + 'RFID', + IFNULL("WATTHOUR", + 0), + CPOOPERATORID, + 'OPERATORNAME', + 'true', + CASE "FREECHARGING" WHEN 'yes' + THEN 'true' WHEN 'no' + then 'false' + ELSE '' + END as FREECHARGE, + CASE CPOOPERATORID + WHEN 'DE*ION' THEN 'ION' + WHEN 'DE*UFC' THEN 'UFC' + ELSE "PLUGTYPE" + END as "PLUGTYPE", + 'METERID', + 0, + "LOCATION_ADDRESS", + '', + --LOCATION ZIP + "LOCATION_CITY", + 'DE', + 'PROVIDERID', + 'PROVIDERNAME', + + left("STARTTIME", + 19), + + left("STOPTIME", + 19), + + left("STARTTIME", + 19), + + left("STOPTIME", + 19), + IFNULL( "METERSTART", + 0), + IFNULL( "METERSTOP", + 0), + 'TARIFF', + "CURRENCY", + 0, + --'VAT', +0, + --'BILLINGVALUEBRUTTO', +0, + --'BILLINGVALUENETTO', +0, + --'PARKINGTIMEPRICEBRUTTO', +0, + --'PARKINGTIMEPRICENETTO', +0, + --'ADITIONALPRICEBRUTTO', +0, + --'ADITIONALPRICENETTO', + "KWHGROSSPRICE" / '1.16', + "MINUTEGROSSPRICE" / '1.16', + "SESSIONGROSSPRICE" / '1.16', + "DURATION" , + "EICHRECHTTYPE", + "MILEAGE", + '', + --'B2CPRICING', +--'ASSETOWNERPRICING', +--'CPOPRICING', + /* "STATIONUUID", + "CUSTOMERID", + "STARTTIME", + "STOPTIME", + "DURATION", + "WATTHOUR", + "AMOUNT", + "CURRENCY", + "TRANSACTIONTYPE", + "CREATED", + "RFID", + "STATION", + "CUSTOMERGROUPID", + "CUSTOMERGROUPNAME", + "ORGANIZATIONID", + "PAYMENTTYPE", + "EVSEID", + "PLUGTYPE", + "EMPSHARE", + "SIGNEDMETERVALUEBEGIN", + "SIGNEDMETERVALUEEND", + "OPERATORPRICE", + "OPERATORCURRENCY", + "OPERATORID", + "FREECHARGING", + "EMPTARIFFID", + "EMPTARIFFNAME", + "FULLEVSEID", + "METERSTART", + "METERSTOP", + "NOTES", + "MILEAGE", + */ --"JSONRAW", +"CREATE_TS", + "UPDATE_TS", + "STATUS", + "BILLING", + 'VIRTAPORTAL', + 'V 1.8/23.10.2020' + from "VIRTAPORTAL"."EMP_TRANSACTIONS" + where "TRANSACTIONTYPE" = 'charge' + and "WATTHOUR" > 0 + and "DURATION" > 2) + UNION ALL (SELECT + "ID" , + "CALLID" , + "CDRID" , + "EVSEID" , + "CONTRACTID" , + "RFID" , + "INSTANCE" , + "TOKENTYPE" , + "CONSUMEDENERGY" , + "OPERATORID" , + "OPERATORNAME" , + "OPERATORSUBMANDANT" , + "FREECHARGE" , + "CHARGEPOINTTYPE" , + "METERID" , + "MAXSOCKETPOWER" , + "ADDRESS" , + "ZIP" , + "CITY" , + "COUNTRY" , + "PROVIDERID" , + "PROVIDERNAME" , + "CHARGINGSTARTTIME" , + "CHARGINGSTOPTIME" , + "PARKINGSTARTTIME" , + "PARKINGSTOPTIME" , + "METERSTART" , + "METERSTOP" , + "TARIFF" , + "CURRENCY" , + "VAT" , + "BILLINGVALUEBRUTTO" , + "BILLINGVALUENETTO" , + "PARKINGTIMEPRICEBRUTTO" , + "PARKINGTIMEPRICENETTO" , + "ADITIONALPRICEBRUTTO" , + "ADITIONALPRICENETTO" , + "KWHNETPRICE" , + "MINUTENETPRICE" , + "SESSIONNETPRICE" , + "DURATION" , + "EICHRECHTTYPE" , + "MILEAGE" , + "SUBSCRIPTION_ID" , + "CREATE_TS" , + "UPDATE_TS" , + "STATUS" , + "BILLING" , + "SYSTYPE" , + "VIEWVERSION" + from "EMOBILITY"."V_CHARGEDATA_EMP_EOPERATE")) WITH READ ONLY \ No newline at end of file diff --git a/uniorg/eon/eoperate/v1/setchargedata.xsjs b/uniorg/eon/eoperate/v1/setchargedata.xsjs new file mode 100644 index 0000000..6b1efeb --- /dev/null +++ b/uniorg/eon/eoperate/v1/setchargedata.xsjs @@ -0,0 +1,524 @@ +//eoperate Chargedata Interface +// 09.03.2020 +// Erweiterung 29.6.2019 +//16. und 17.11.2021 Abschalten der Plausi Prüfung Anpassung auf setnull +//20.09.2022 Anpassung User Felder Update und Insert Statements TS +//04.05.2023 Anpassung Validation Felder +//12.07.2023 Nur CUS Preiselemente +//07.08.2023 Erweiterung Dezimalgenauigkeit Preise (EMPEPI1-296) + NOT_BILLABLE_REASON + +var ServiceVersion = "1.6"; + +var ParDebug = false; +var output = {}; +var outMessages = []; +var outErrorMessages = []; +var outMsg = {}; +var outStatus = "success"; +var myDebug = {}; + +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; +} + +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 roundTo(n, digits) { + var negative = false; + if (digits === undefined) { + digits = 0; + } + if (n < 0) { + negative = true; + n = n * -1; + } + var multiplicator = Math.pow(10, digits); + n = parseFloat((n * multiplicator).toFixed(11)); + n = (Math.round(n) / multiplicator).toFixed(digits); + if (negative) { + n = (n * -1).toFixed(digits); + } + return n; +} + +function checkBDRID(myBDRID) { + var exists = false; + var conn = $.db.getConnection(); + var pstmt; + var query = "select \"BDR_ID\" from \"EOPERATE\".\"CHARGEDATA\" where BDR_ID = ?"; + pstmt = conn.prepareStatement(query); + pstmt.setNString(1, myBDRID); + var rs = pstmt.executeQuery(); + if (rs.next()) { + exists = true; + } + rs.close(); + pstmt.close(); + conn.close(); + return exists; +} + +/*function getnextval() { + var conn = $.db.getConnection(); + var pstmt; + var query = "select \"EOPERATE\".\"SEQ_TRANSACTIONDATA_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 exceptionHandler(ex) { + 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; +} + +function checkPayload(inObj) { + var isValid = true; + var reason = ""; + try { + var aCDR = JSON.parse(inObj); + if (Array.isArray(aCDR)) { + aCDR.forEach(function(cdrObj) { + if (!cdrObj.hasOwnProperty('BDR_ID') || !cdrObj.hasOwnProperty('EMAID') || !cdrObj.hasOwnProperty('CREATION_DATE_UTC') || !cdrObj.hasOwnProperty( + 'CHARGEPOINT') || !cdrObj.CHARGEPOINT.hasOwnProperty('ID') || !cdrObj.CHARGEPOINT.hasOwnProperty('TYPE') || !cdrObj.CHARGEPOINT.hasOwnProperty( + 'METER_ID') || !cdrObj.CHARGEPOINT.hasOwnProperty('ADDRESS') || !cdrObj.CHARGEPOINT.ADDRESS.hasOwnProperty('COUNTRY') || !cdrObj.CHARGEPOINT + .ADDRESS.hasOwnProperty('POSTALCODE') || !cdrObj.CHARGEPOINT.ADDRESS.hasOwnProperty('CITY') || !cdrObj.CHARGEPOINT.ADDRESS.hasOwnProperty( + 'STREET') || !cdrObj.hasOwnProperty('CHARGEPOINT_OPERATOR') || !cdrObj.CHARGEPOINT_OPERATOR.hasOwnProperty('ID') || !cdrObj.CHARGEPOINT_OPERATOR + .hasOwnProperty('NAME') || !cdrObj.hasOwnProperty('EMOBILITY_PROVIDER') || !cdrObj.EMOBILITY_PROVIDER.hasOwnProperty('ID') || !cdrObj + .EMOBILITY_PROVIDER.hasOwnProperty('NAME') || !cdrObj.hasOwnProperty('CHARGE_DATA') || !cdrObj.CHARGE_DATA.hasOwnProperty( + 'AUTHORIZATION_TYPE') || !cdrObj.CHARGE_DATA.hasOwnProperty('CONSUMPTION_KWH') || !cdrObj.CHARGE_DATA.hasOwnProperty('BEGIN_UTC') || + !cdrObj.CHARGE_DATA.hasOwnProperty('END_UTC') || !cdrObj.CHARGE_DATA.hasOwnProperty('TIME_ZONE') || !cdrObj.hasOwnProperty('PRICING') || + !cdrObj.PRICING.hasOwnProperty('ITEMS') || !Array.isArray(cdrObj.PRICING.ITEMS) + ) { + isValid = false; + reason = + " (mandatory properties are: BDR_ID, EMAID, CREATION_DATE_UTC, CHARGEPOINT.ID, CHARGEPOINT.TYPE, \nCHARGEPOINT.METER_ID, CHARGEPOINT.ADDRESS.COUNTRY, CHARGEPOINT.ADDRESS.POSTALCODE, CHARGEPOINT.ADDRESS.CITY, \nCHARGEPOINT.ADDRESS.COUNTRY, CHARGEPOINT_OPERATOR.ID, CHARGEPOINT_OPERATOR.NAME, EMOBILITY_PROVIDER.ID, \nEMOBILITY_PROVIDER.NAME, CHARGE_DATA.AUTHORIZATION_TYPE, CHARGE_DATA.CONSUMPTION_KWH, CHARGE_DATA.BEGIN_UTC, \nCHARGE_DATA.END_UTC, CHARGE_DATA.TIME_ZONE, PRICING.ITEMS[])"; + } else { + cdrObj.PRICING.ITEMS.forEach(function(pricingItem) { + if (!pricingItem.hasOwnProperty('TYPE') || !pricingItem.hasOwnProperty('UNIT') || !pricingItem.hasOwnProperty('UNIT_PRICE') || ! + pricingItem.hasOwnProperty('QUANTITY') || !pricingItem.hasOwnProperty('NET_AMOUNT') || !pricingItem.hasOwnProperty('CURRENCY') + ) { + isValid = false; + reason = " (mandatory properties for PRICING.ITEMS Array are: TYPE, UNIT, UNIT_PRICE, QUANTITY, NET_AMOUNT, CURRENCY)"; + } + }); + } + }); + } else { + isValid = false; + reason = " (payload is not an array)"; + } + } catch (e) { + exceptionHandler(e); + isValid = false; + } + if (!isValid) { + outMsg = {}; + outMsg.method = "checkPayload"; + outMsg.status = "error"; + outStatus = "error"; + $.response.status = $.net.http.BAD_REQUEST; + outMsg.message = "invalid payload structure" + reason; + outMessages.push(outMsg); + } + return isValid; +} + +function PutDataInTable() { + outMsg = {}; + outMsg.method = "saveData"; + 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 isUpdateMode = false; + // var query2; + // var output = {results: [] }; + // + // var mynextval = getnextval(); + // myDebug.mynextval = mynextval; + try { + var myBDRID = pdcdrObj[0].BDR_ID.toString(); + isUpdateMode = checkBDRID(myBDRID); + if (isUpdateMode) { + // "UPDATE \"EOPERATE\".\"CHARGEDATA\" SET BDR_ID = ?,EMAID =? ,UNIQUE_ID = ?, CREATION_DATE_UTC = ?,CHARGEPOINT_ID= ?,CHARGEPOINT_TYPE= ?,CHARGEPOINT_METER_ID= ?,CHARGEPOINT_ADDRESS_COUNTRY= ?,CHARGEPOINT_ADDRESS_POSTALCODE= ?,CHARGEPOINT_ADDRESS_CITY= ?,CHARGEPOINT_ADDRESS_STREET= ?,CHARGEPOINT_OPERATOR_ID= ?,CHARGEPOINT_OPERATOR_NAME= ?,EMOBILITY_PROVIDER_ID= ?,EMOBILITY_PROVIDER_NAME= ?,CHARGE_DATA_AUTHORIZATION_TYPE= ?,CHARGE_DATA_CONSUMPTION_KWH= ?,CHARGE_DATA_BEGIN_UTC= ?,CHARGE_DATA_END_UTC= ?,CHARGE_DATA_TIME_ZONE= ?,CHARGE_DATA_EKA_STATUS= ?,PRICING_ITEMS_1_TYPE= ?,PRICING_ITEMS_1_UNIT= ?,PRICING_ITEMS_1_UNIT_PRICE= ?,PRICING_ITEMS_1_QUANTITY= ?,PRICING_ITEMS_1_NET_AMOUNT= ?,PRICING_ITEMS_1_CURRENCY= ?,PRICING_ITEMS_2_TYPE= ?,PRICING_ITEMS_2_UNIT= ?,PRICING_ITEMS_2_UNIT_PRICE= ?,PRICING_ITEMS_2_QUANTITY= ?,PRICING_ITEMS_2_NET_AMOUNT= ?,PRICING_ITEMS_2_CURRENCY= ?,PRICING_ITEMS_3_TYPE= ?,PRICING_ITEMS_3_UNIT= ?,PRICING_ITEMS_3_UNIT_PRICE= ?,PRICING_ITEMS_3_QUANTITY= ?,PRICING_ITEMS_3_NET_AMOUNT= ?,PRICING_ITEMS_3_CURRENCY= ?,PRICING_ITEMS_4_TYPE= ?,PRICING_ITEMS_4_UNIT= ?,PRICING_ITEMS_4_UNIT_PRICE= ?,PRICING_ITEMS_4_QUANTITY= ?,PRICING_ITEMS_4_NET_AMOUNT= ?,PRICING_ITEMS_4_CURRENCY= ?,SUBSCRIPTION_ID= ?,JSONRAW= ?,UPDATE_TS= CURRENT_TIMESTAMP,UPDATE_USER= CURRENT_USER)"; + query = + "UPDATE \"EOPERATE\".\"CHARGEDATA\" SET BDR_ID = ?,EMAID =? ,UNIQUE_ID = ?, CREATION_DATE_UTC = ?,CHARGEPOINT_ID= ?,CHARGEPOINT_TYPE= ?,CHARGEPOINT_METER_ID= ?,CHARGEPOINT_ADDRESS_COUNTRY= ?,CHARGEPOINT_ADDRESS_POSTALCODE= ?,CHARGEPOINT_ADDRESS_CITY= ?,CHARGEPOINT_ADDRESS_STREET= ?,CHARGEPOINT_OPERATOR_ID= ?,CHARGEPOINT_OPERATOR_NAME= ?,EMOBILITY_PROVIDER_ID= ?,EMOBILITY_PROVIDER_NAME= ?,CHARGE_DATA_AUTHORIZATION_TYPE= ?,CHARGE_DATA_CONSUMPTION_KWH= ?,CHARGE_DATA_BEGIN_UTC= ?,CHARGE_DATA_END_UTC= ?,CHARGE_DATA_TIME_ZONE= ?,CHARGE_DATA_EKA_STATUS= ?,PRICING_ITEMS_1_TYPE= ?,PRICING_ITEMS_1_UNIT= ?,PRICING_ITEMS_1_UNIT_PRICE= ?,PRICING_ITEMS_1_QUANTITY= ?,PRICING_ITEMS_1_NET_AMOUNT= ?,PRICING_ITEMS_1_CURRENCY= ?,PRICING_ITEMS_2_TYPE= ?,PRICING_ITEMS_2_UNIT= ?,PRICING_ITEMS_2_UNIT_PRICE= ?,PRICING_ITEMS_2_QUANTITY= ?,PRICING_ITEMS_2_NET_AMOUNT= ?,PRICING_ITEMS_2_CURRENCY= ?,PRICING_ITEMS_3_TYPE= ?,PRICING_ITEMS_3_UNIT= ?,PRICING_ITEMS_3_UNIT_PRICE= ?,PRICING_ITEMS_3_QUANTITY= ?,PRICING_ITEMS_3_NET_AMOUNT= ?,PRICING_ITEMS_3_CURRENCY= ?,PRICING_ITEMS_4_TYPE= ?,PRICING_ITEMS_4_UNIT= ?,PRICING_ITEMS_4_UNIT_PRICE= ?,PRICING_ITEMS_4_QUANTITY= ?,PRICING_ITEMS_4_NET_AMOUNT= ?,PRICING_ITEMS_4_CURRENCY= ?,SUBSCRIPTION_ID= ?,JSONRAW= ?,UPDATE_TS= CURRENT_TIMESTAMP,UPDATE_USER= CURRENT_USER,BUSINESSVALIDATIONRESULT=?,TECHVALIDATIONRESULT=?,NOTBILLABLEREASON=? where BDR_ID = ?"; + outMsg.method = "Update Data BDR_ID: " + myBDRID; + } else { + query = + "INSERT INTO \"EOPERATE\".\"CHARGEDATA\" (BDR_ID,EMAID,UNIQUE_ID,CREATION_DATE_UTC,CHARGEPOINT_ID,CHARGEPOINT_TYPE,CHARGEPOINT_METER_ID,CHARGEPOINT_ADDRESS_COUNTRY,CHARGEPOINT_ADDRESS_POSTALCODE,CHARGEPOINT_ADDRESS_CITY,CHARGEPOINT_ADDRESS_STREET,CHARGEPOINT_OPERATOR_ID,CHARGEPOINT_OPERATOR_NAME,EMOBILITY_PROVIDER_ID,EMOBILITY_PROVIDER_NAME,CHARGE_DATA_AUTHORIZATION_TYPE,CHARGE_DATA_CONSUMPTION_KWH,CHARGE_DATA_BEGIN_UTC,CHARGE_DATA_END_UTC,CHARGE_DATA_TIME_ZONE,CHARGE_DATA_EKA_STATUS,PRICING_ITEMS_1_TYPE,PRICING_ITEMS_1_UNIT,PRICING_ITEMS_1_UNIT_PRICE,PRICING_ITEMS_1_QUANTITY,PRICING_ITEMS_1_NET_AMOUNT,PRICING_ITEMS_1_CURRENCY,PRICING_ITEMS_2_TYPE,PRICING_ITEMS_2_UNIT,PRICING_ITEMS_2_UNIT_PRICE,PRICING_ITEMS_2_QUANTITY,PRICING_ITEMS_2_NET_AMOUNT,PRICING_ITEMS_2_CURRENCY,PRICING_ITEMS_3_TYPE,PRICING_ITEMS_3_UNIT,PRICING_ITEMS_3_UNIT_PRICE,PRICING_ITEMS_3_QUANTITY,PRICING_ITEMS_3_NET_AMOUNT,PRICING_ITEMS_3_CURRENCY,PRICING_ITEMS_4_TYPE,PRICING_ITEMS_4_UNIT,PRICING_ITEMS_4_UNIT_PRICE,PRICING_ITEMS_4_QUANTITY,PRICING_ITEMS_4_NET_AMOUNT,PRICING_ITEMS_4_CURRENCY,SUBSCRIPTION_ID,JSONRAW,UPDATE_TS,UPDATE_USER,BUSINESSVALIDATIONRESULT,TECHVALIDATIONRESULT,NOTBILLABLEREASON) values (" + + "?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,CURRENT_TIMESTAMP, CURRENT_USER,?,?,?)"; + outMsg.method = "Insert DataBDR_ID: " + myBDRID; + } + myDebug.query = query; + /* + outMsg = {}; + outMsg.method = "query"; + outMsg.status = "info"; + outStatus = "info"; + outMsg.message = query; + outMessages.push(outMsg); +*/ + pstmt = conn.prepareStatement(query); + pstmt.setNString(1, pdcdrObj[0].BDR_ID.toString()); + if (pdcdrObj[0].EMAID) { + pstmt.setNString(2, pdcdrObj[0].EMAID.toString()); + } else { + pstmt.setNull(2); + } + if (pdcdrObj[0].UNIQUE_ID) { + pstmt.setNString(3, pdcdrObj[0].UNIQUE_ID.toString()); + } else { + pstmt.setNString(3, ''); + } + if (pdcdrObj[0].CREATION_DATE_UTC) { + pstmt.setNString(4, pdcdrObj[0].CREATION_DATE_UTC.toString()); + } else { + pstmt.setNull(4); + } + if (pdcdrObj[0].CHARGEPOINT.ID) { + pstmt.setNString(5, pdcdrObj[0].CHARGEPOINT.ID.toString()); + } else { + pstmt.setNull(5); + } + if (pdcdrObj[0].CHARGEPOINT.TYPE) { + pstmt.setNString(6, pdcdrObj[0].CHARGEPOINT.TYPE.toString()); + } else { + pstmt.setNull(6); + } + if (pdcdrObj[0].CHARGEPOINT.METER_ID) { + pstmt.setNString(7, pdcdrObj[0].CHARGEPOINT.METER_ID.toString()); + } else { + pstmt.setNull(7); + } + + if (pdcdrObj[0].CHARGEPOINT.ADDRESS.COUNTRY) { + pstmt.setNString(8, pdcdrObj[0].CHARGEPOINT.ADDRESS.COUNTRY.toString()); + } else { + pstmt.setNull(8); + } + if (pdcdrObj[0].CHARGEPOINT.ADDRESS.POSTALCODE) { + pstmt.setNString(9, pdcdrObj[0].CHARGEPOINT.ADDRESS.POSTALCODE.toString()); + } else { + pstmt.setNull(9); + } + if (pdcdrObj[0].CHARGEPOINT.ADDRESS.CITY) { + pstmt.setNString(10, pdcdrObj[0].CHARGEPOINT.ADDRESS.CITY.toString()); + } else { + pstmt.setNull(10); + } + if (pdcdrObj[0].CHARGEPOINT.ADDRESS.STREET) { + pstmt.setNString(11, pdcdrObj[0].CHARGEPOINT.ADDRESS.STREET.toString()); + } else { + pstmt.setNull(11); + } + if (pdcdrObj[0].CHARGEPOINT_OPERATOR.ID) { + pstmt.setNString(12, pdcdrObj[0].CHARGEPOINT_OPERATOR.ID.toString()); + } else { + pstmt.setNull(12); + } + if (pdcdrObj[0].CHARGEPOINT_OPERATOR.NAME) { + pstmt.setNString(13, pdcdrObj[0].CHARGEPOINT_OPERATOR.NAME.toString()); + } else { + pstmt.setNull(13); + } + if (pdcdrObj[0].EMOBILITY_PROVIDER.ID) { + pstmt.setNString(14, pdcdrObj[0].EMOBILITY_PROVIDER.ID.toString()); + } else { + pstmt.setNull(14); + } + if (pdcdrObj[0].EMOBILITY_PROVIDER.NAME) { + pstmt.setNString(15, pdcdrObj[0].EMOBILITY_PROVIDER.NAME.toString()); + } else { + pstmt.setNull(15); + } + if (pdcdrObj[0].CHARGE_DATA.AUTHORIZATION_TYPE) { + pstmt.setNString(16, pdcdrObj[0].CHARGE_DATA.AUTHORIZATION_TYPE.toString()); + } else { + pstmt.setNull(16); + } + if (pdcdrObj[0].CHARGE_DATA.CONSUMPTION_KWH) { + pstmt.setDecimal(17, roundTo(pdcdrObj[0].CHARGE_DATA.CONSUMPTION_KWH, 3)); //TODO: clarify rounding + } else { + pstmt.setNull(17); + } + if (pdcdrObj[0].CHARGE_DATA.BEGIN_UTC) { + pstmt.setNString(18, pdcdrObj[0].CHARGE_DATA.BEGIN_UTC.toString()); + } else { + pstmt.setNull(18); + } + if (pdcdrObj[0].CHARGE_DATA.END_UTC) { + pstmt.setNString(19, pdcdrObj[0].CHARGE_DATA.END_UTC.toString()); + } else { + pstmt.setNull(19); + } + if (pdcdrObj[0].CHARGE_DATA.TIME_ZONE) { + pstmt.setNString(20, pdcdrObj[0].CHARGE_DATA.TIME_ZONE.toString()); + } else { + pstmt.setNull(20); + } + if (pdcdrObj[0].CHARGE_DATA.EKA_STATUS) { + pstmt.setNString(21, pdcdrObj[0].CHARGE_DATA.EKA_STATUS.toString()); + } else { + pstmt.setNull(21); + } + + if (pdcdrObj[0].PRICING && pdcdrObj[0].PRICING.ITEMS) { + + var pricingItemsCUS = pdcdrObj[0].PRICING.ITEMS.filter(function(pricingItem) { + return pricingItem.TYPE === "CUS"; + }); + + if (pricingItemsCUS[0]) { + pstmt.setNString(22, pricingItemsCUS[0].TYPE.toString()); + pstmt.setNString(23, pricingItemsCUS[0].UNIT.toString()); + pstmt.setDecimal(24, roundTo(pricingItemsCUS[0].UNIT_PRICE, 4)); + pstmt.setDecimal(25, roundTo(pricingItemsCUS[0].QUANTITY, 3)); //TODO: clarify rounding + pstmt.setDecimal(26, roundTo(pricingItemsCUS[0].NET_AMOUNT, 3)); //TODO: clarify rounding + pstmt.setNString(27, pricingItemsCUS[0].CURRENCY.toString()); + } else { + pstmt.setNull(22); + pstmt.setNull(23); + pstmt.setNull(24); + pstmt.setNull(25); + pstmt.setNull(26); + pstmt.setNull(27); + } + + if (pricingItemsCUS[1]) { + pstmt.setNString(28, pricingItemsCUS[1].TYPE.toString()); + pstmt.setNString(29, pricingItemsCUS[1].UNIT.toString()); + pstmt.setDecimal(30, roundTo(pricingItemsCUS[1].UNIT_PRICE, 4)); + pstmt.setDecimal(31, roundTo(pricingItemsCUS[1].QUANTITY, 3)); //TODO: clarify rounding + pstmt.setDecimal(32, roundTo(pricingItemsCUS[1].NET_AMOUNT, 3)); //TODO: clarify rounding + pstmt.setNString(33, pricingItemsCUS[1].CURRENCY.toString()); + } else { + pstmt.setNull(28); + pstmt.setNull(29); + pstmt.setNull(30); + pstmt.setNull(31); + pstmt.setNull(32); + pstmt.setNull(33); + } + + if (pricingItemsCUS[2]) { + pstmt.setNString(34, pricingItemsCUS[2].TYPE.toString()); + pstmt.setNString(35, pricingItemsCUS[2].UNIT.toString()); + pstmt.setDecimal(36, roundTo(pricingItemsCUS[2].UNIT_PRICE, 4)); + pstmt.setDecimal(37, roundTo(pricingItemsCUS[2].QUANTITY, 3)); //TODO: clarify rounding + pstmt.setDecimal(38, roundTo(pricingItemsCUS[2].NET_AMOUNT, 3)); //TODO: clarify rounding + pstmt.setNString(39, pricingItemsCUS[2].CURRENCY.toString()); + } else { + pstmt.setNull(34); + pstmt.setNull(35); + pstmt.setNull(36); + pstmt.setNull(37); + pstmt.setNull(38); + pstmt.setNull(39); + } + + if (pricingItemsCUS[3]) { + pstmt.setNString(40, pricingItemsCUS[3].TYPE.toString()); + pstmt.setNString(41, pricingItemsCUS[3].UNIT.toString()); + pstmt.setDecimal(42, roundTo(pricingItemsCUS[3].UNIT_PRICE, 4)); + pstmt.setDecimal(43, roundTo(pricingItemsCUS[3].QUANTITY, 3)); //TODO: clarify rounding + pstmt.setDecimal(44, roundTo(pricingItemsCUS[3].NET_AMOUNT, 3)); //TODO: clarify rounding + pstmt.setNString(45, pricingItemsCUS[3].CURRENCY.toString()); + } else { + pstmt.setNull(40); + pstmt.setNull(41); + pstmt.setNull(42); + pstmt.setNull(43); + pstmt.setNull(44); + pstmt.setNull(45); + } + + } else { + pstmt.setNull(22); + pstmt.setNull(23); + pstmt.setNull(24); + pstmt.setNull(25); + pstmt.setNull(26); + pstmt.setNull(27); + + pstmt.setNull(28); + pstmt.setNull(29); + pstmt.setNull(30); + pstmt.setNull(31); + pstmt.setNull(32); + pstmt.setNull(33); + + pstmt.setNull(34); + pstmt.setNull(35); + pstmt.setNull(36); + pstmt.setNull(37); + pstmt.setNull(38); + pstmt.setNull(39); + pstmt.setNull(40); + pstmt.setNull(41); + pstmt.setNull(42); + pstmt.setNull(43); + pstmt.setNull(44); + pstmt.setNull(45); + + } + + if (pdcdrObj[0].CHARGE_DATA.SUBSCRIPTION_ID) { + pstmt.setNString(46, pdcdrObj[0].CHARGE_DATA.SUBSCRIPTION_ID); + } else { + pstmt.setNull(46); + } + pstmt.setNClob(47, pdcontent); + //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)); + + //04.05.2023 Erweiterung PlausiheckFelder + if (pdcdrObj[0].BUSINESS_VALIDATION_RESULT) { + pstmt.setNString(48, pdcdrObj[0].BUSINESS_VALIDATION_RESULT.toString()); + } else { + pstmt.setNull(48); + } + + if (pdcdrObj[0].TECH_VALIDATION_RESULT) { + pstmt.setNString(49, pdcdrObj[0].TECH_VALIDATION_RESULT.toString()); + } else { + pstmt.setNull(49); + } + + if (pdcdrObj[0].NOT_BILLABLE_REASON) { + pstmt.setNString(50, pdcdrObj[0].NOT_BILLABLE_REASON.toString()); + } else { + pstmt.setNull(50); + } + + + if (isUpdateMode) { + pstmt.setNString(51, myBDRID); + } + + rs = pstmt.executeUpdate(); + myDebug.result = rs; + 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) { + outMsg.status = "error"; + outMessages.push(outMsg); + exceptionHandler(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; + } + outMsg.status = 'success'; + // vals.description = 'Data accepted and proceeded with ID:' + mynextval; + // 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; + outMessages.push(outMsg); + return; +} + +var content = $.request.body.asString(); +//var cdrObj = JSON.parse(content); +//var ChargeDataObj = cdrObj.chargeData[0].cdrId; +// doHTTPCall("4aa9b243be184a4abdb4179f375459be"); +// 16:11:2021 Validierung nicht mehr gewünscht +//if (checkPayload(content)) { +PutDataInTable(); +//} +setOutputMessage(); +// var result = JSON.stringify(cdrObj.callId); +// var result = JSON.stringify(ChargeDataObj); +// $.response.contentType = 'application/json'; +// $.response.setBody(result); +// $.response.status = $.net.http.OK; \ No newline at end of file