Prvni verze
This commit is contained in:
9
sqlDefs/ef_EncodeBase64.sql
Normal file
9
sqlDefs/ef_EncodeBase64.sql
Normal file
@ -0,0 +1,9 @@
|
||||
-- dbo.ef_EncodeBase64
|
||||
CREATE FUNCTION dbo.ef_EncodeBase64 (@source AS varchar(max))
|
||||
RETURNS varchar(max)
|
||||
AS
|
||||
BEGIN
|
||||
DECLARE @bin varbinary(max), @result varchar(max)
|
||||
SET @bin = CONVERT(varbinary(max), @source)
|
||||
RETURN CAST(N'' as xml).value('xs:base64Binary(xs:hexBinary(sql:variable("@bin")))', 'varchar(max)')
|
||||
END
|
||||
169
sqlDefs/ep_HDCDZApi_ZpracujPrijataData.sql
Normal file
169
sqlDefs/ep_HDCDZApi_ZpracujPrijataData.sql
Normal file
@ -0,0 +1,169 @@
|
||||
-- dbo.ep_HDCDZApi_ZpracujPrijataData
|
||||
CREATE PROCEDURE dbo.ep_HDCDZApi_ZpracujPrijataData
|
||||
@idJson INT=NULL
|
||||
AS
|
||||
|
||||
|
||||
-- HD Consulting Strakonice, T. Buzin
|
||||
-- !! proceduru neupravujte, bude stejne pregenerovana pri startu Windows sluzby HDCDZApi !!
|
||||
|
||||
|
||||
SET NOCOUNT ON
|
||||
|
||||
|
||||
DECLARE
|
||||
@tranPred INT,
|
||||
@cnt INT,
|
||||
@sql NVARCHAR(max),
|
||||
@datPorizeni DATETIME,
|
||||
@errMsg NVARCHAR(500),
|
||||
@bChyba BIT,
|
||||
@iChyba INT,
|
||||
@debugXml XML,
|
||||
@aktDatum DATETIME,
|
||||
@logTyp TINYINT,
|
||||
@logText NVARCHAR(500),
|
||||
@logInt INT,
|
||||
@logStr NVARCHAR(255),
|
||||
@log4Mail BIT=0
|
||||
|
||||
DECLARE
|
||||
@jsonString NVARCHAR(MAX),
|
||||
@jsonString2 NVARCHAR(MAX),
|
||||
@phDeviceId NVARCHAR(40),
|
||||
@typDokum NVARCHAR(50),
|
||||
@subtypDokum NVARCHAR(50),
|
||||
@akce NVARCHAR(50),
|
||||
@akceSource NVARCHAR(50),
|
||||
@datumText NVARCHAR(25)
|
||||
|
||||
DECLARE @TabPHObj TABLE (ID INT NOT NULL, IDPHIdent INT)
|
||||
|
||||
|
||||
-- vytvor pomocnou tabulku
|
||||
/*
|
||||
IF OBJECT_ID(N'tempdb..#TabJSONData', N'U') IS NOT NULL
|
||||
DROP TABLE #TabJSONData
|
||||
CREATE TABLE #TabJSONData (ID INT IDENTITY(1,1) NOT NULL, doc NVARCHAR(max))
|
||||
*/
|
||||
DROP TABLE IF EXISTS #TabJSONData
|
||||
CREATE TABLE #TabJSONData (ID INT IDENTITY(1,1) NOT NULL, doc NVARCHAR(max))
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
IF (@idJson IS NULL)
|
||||
DECLARE j CURSOR LOCAL FOR
|
||||
SELECT ID, JSONData, Akce, DatPorizeni
|
||||
FROM dbo._hdc_ph_PrijataJsonData
|
||||
WHERE DatZpracovani IS NULL
|
||||
AND Nezpracovat=0
|
||||
AND ISNULL(JSONData, N'')<>N''
|
||||
ORDER BY DatPorizeni ASC
|
||||
ELSE
|
||||
DECLARE j CURSOR LOCAL FOR
|
||||
SELECT ID, JSONData, Akce, DatPorizeni
|
||||
FROM dbo._hdc_ph_PrijataJsonData
|
||||
WHERE ID=@idJson
|
||||
OPEN j
|
||||
WHILE (1=1)
|
||||
BEGIN
|
||||
FETCH NEXT FROM j INTO @idJson, @jsonString, @akce, @datPorizeni
|
||||
IF (@@FETCH_STATUS<>0) BREAK
|
||||
|
||||
IF (ISJSON(@jsonString)=0)
|
||||
CONTINUE
|
||||
|
||||
|
||||
BEGIN TRY
|
||||
SET @tranPred = @@TRANCOUNT
|
||||
IF (@tranPred=0)
|
||||
BEGIN TRAN
|
||||
|
||||
|
||||
SET @datumText = NULL
|
||||
-- smaz pomocnou tabulku
|
||||
DELETE FROM #TabJSONData
|
||||
INSERT #TabJSONData (doc) SELECT @jsonString
|
||||
SELECT TOP(1) @akce = JSON_VALUE(doc, '$.action'),
|
||||
@akceSource = JSON_VALUE(doc, '$.source'),
|
||||
@datumText = JSON_VALUE(doc, '$.actionAt')
|
||||
FROM #TabJSONData
|
||||
|
||||
SET @akce = ISNULL(@akce, N'')
|
||||
SET @akceSource = ISNULL(@akceSource, N'')
|
||||
SET @datumText = ISNULL(@datumText, N'')
|
||||
IF (@datumText<>N'')
|
||||
SET @datPorizeni = CONVERT(datetime, @datumText, 120)
|
||||
|
||||
IF (@akce<>N'')
|
||||
UPDATE dbo._hdc_ph_PrijataJsonData SET Akce=@akce WHERE ID=@idJson AND Akce IS NULL
|
||||
|
||||
|
||||
IF ISNULL( (SELECT COUNT(ID) FROM dbo._hdc_ph_Log WHERE IdJsonData=@idJson), 0)>=3
|
||||
BEGIN
|
||||
IF EXISTS(SELECT 1 FROM dbo._hdc_ph_PrijataJsonData WHERE ID=@idJson AND ISNULL(PosledniChyba,N'')=N'')
|
||||
UPDATE dbo._hdc_ph_PrijataJsonData SET Nezpracovat=1,
|
||||
PosledniChyba=(SELECT TOP(1) LogText FROM dbo._hdc_ph_Log
|
||||
WHERE IdJsonData=@idJson ORDER BY DatPorizeni DESC)
|
||||
WHERE ID=@idJson
|
||||
CONTINUE
|
||||
END
|
||||
|
||||
|
||||
SET @logTyp = 0
|
||||
SET @logInt = NULL
|
||||
SET @logStr = N''
|
||||
SET @log4Mail = 0
|
||||
SET @logText = N''
|
||||
|
||||
|
||||
|
||||
-- BEGIN: CERVENE TLACITKO
|
||||
IF (@akce=N'click' AND @akceSource='button')
|
||||
BEGIN
|
||||
SELECT TOP(1) @phDeviceId = JSON_VALUE(doc, '$.deviceId') FROM #TabJSONData
|
||||
UPDATE dbo._hdc_ph_PrijataJsonData SET PHDeviceID=@phDeviceId WHERE ID=@idJson
|
||||
|
||||
SET @akce = N''
|
||||
IF OBJECT_ID(N'dbo.ep_HDCDZApi_AkceCerveneTlacitko') IS NOT NULL
|
||||
BEGIN
|
||||
SET @sql = 'EXEC dbo.ep_HDCDZApi_AkceCerveneTlacitko @IDJson=@idJson, @PHDeviceId=@phDeviceId'
|
||||
EXEC sp_executesql @sql, N'@idJson INT, @phDeviceId NVARCHAR(40)', @idJson, @phDeviceId
|
||||
END
|
||||
END -- akce: vyroba_zacatek
|
||||
-- END: CERVENE TLACITKO
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
IF (@tranPred=0) AND (@@TRANCOUNT>0)
|
||||
COMMIT TRAN
|
||||
END TRY
|
||||
BEGIN CATCH
|
||||
IF (@tranPred=0) AND (@@TRANCOUNT>0)
|
||||
ROLLBACK TRAN
|
||||
SET @errMsg = ERROR_MESSAGE()
|
||||
|
||||
UPDATE dbo._hdc_ph_PrijataJsonData SET PosledniChyba=@errMsg WHERE ID=@idJson
|
||||
|
||||
IF (@logTyp>0)
|
||||
INSERT dbo._hdc_ph_Log (Typ, LogText, IntValue, StrValue, IdJsonData, ForMail)
|
||||
SELECT @logTyp, ISNULL(@logText, N'') + NCHAR(13)+NCHAR(10) + @errMsg, @logInt, @logStr, @idJson, @log4Mail
|
||||
ELSE
|
||||
INSERT dbo._hdc_ph_Log (Typ, LogText, IdJsonData, ForMail) SELECT 1, N'Chyba zpracovani PrijataJsonData: ' + @errMsg, @idJson, 1
|
||||
END CATCH
|
||||
SET @logTyp=0
|
||||
|
||||
END
|
||||
CLOSE j
|
||||
DEALLOCATE j
|
||||
|
||||
|
||||
|
||||
|
||||
-- pro jistotu
|
||||
IF OBJECT_ID(N'tempdb..#TabJSONData', N'U') IS NOT NULL
|
||||
DROP TABLE #TabJSONData
|
||||
36
sqlDefs/tbl_hdc_ph_Log.sql
Normal file
36
sqlDefs/tbl_hdc_ph_Log.sql
Normal file
@ -0,0 +1,36 @@
|
||||
IF OBJECT_ID(N'dbo._hdc_ph_Log', N'U') IS NULL
|
||||
CREATE TABLE dbo._hdc_ph_Log (
|
||||
ID int IDENTITY(1, 1) NOT NULL,
|
||||
LogText nvarchar(500) NULL,
|
||||
LogTextLong nvarchar(max) NULL,
|
||||
Typ tinyint NULL,
|
||||
IntValue int NULL,
|
||||
NumValue numeric(19, 6) NULL,
|
||||
StrValue nvarchar(255) NULL,
|
||||
DatValue datetime NULL,
|
||||
MailAddress nvarchar(255) NULL,
|
||||
MailSent datetime NULL,
|
||||
ForMail BIT NOT NULL DEFAULT 0,
|
||||
IdJsonData int NULL,
|
||||
Autor nvarchar(80) DEFAULT suser_sname() NOT NULL,
|
||||
DatPorizeni datetime DEFAULT getdate() NOT NULL,
|
||||
CONSTRAINT PK__hdc_ph_Log PRIMARY KEY CLUSTERED (ID DESC) WITH ( PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF, STATISTICS_NORECOMPUTE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
|
||||
)
|
||||
|
||||
|
||||
/* 12.12.2023 */
|
||||
IF COL_LENGTH(N'dbo._hdc_ph_Log', N'MailAddress') IS NULL ALTER TABLE dbo._hdc_ph_Log ADD MailAddress NVARCHAR(255) NULL
|
||||
IF COL_LENGTH(N'dbo._hdc_ph_Log', N'MailSent') IS NULL ALTER TABLE dbo._hdc_ph_Log ADD MailSent DATETIME NULL
|
||||
|
||||
/* 31.1.2024 */
|
||||
IF COL_LENGTH(N'dbo._hdc_ph_Log', N'IdJsonData') IS NULL ALTER TABLE dbo._hdc_ph_Log ADD IdJsonData INT NULL
|
||||
DROP INDEX IF EXISTS EI_hdc_ph_Log_IdJsonData ON dbo._hdc_ph_Log
|
||||
CREATE NONCLUSTERED INDEX EI_hdc_ph_Log_IdJsonData ON dbo._hdc_ph_Log (IdJsonData)
|
||||
WITH ( PAD_INDEX = OFF, DROP_EXISTING = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
|
||||
|
||||
/* 25.6.2024 */
|
||||
IF COL_LENGTH(N'dbo._hdc_ph_Log', N'ForMail') IS NULL ALTER TABLE dbo._hdc_ph_Log ADD ForMail BIT NOT NULL DEFAULT 0
|
||||
|
||||
/* 7.10.2024 */
|
||||
IF COL_LENGTH(N'dbo._hdc_ph_Log', N'LogTextLong') IS NULL ALTER TABLE dbo._hdc_ph_Log ADD LogTextLong NVARCHAR(max)
|
||||
|
||||
70
sqlDefs/tbl_hdc_ph_PrijataJsonData.sql
Normal file
70
sqlDefs/tbl_hdc_ph_PrijataJsonData.sql
Normal file
@ -0,0 +1,70 @@
|
||||
IF OBJECT_ID(N'dbo._hdc_ph_PrijataJsonData', N'U') IS NULL
|
||||
CREATE TABLE dbo._hdc_ph_PrijataJsonData (
|
||||
ID bigint IDENTITY(1, 1) NOT NULL,
|
||||
GUIDIdent uniqueidentifier DEFAULT newid() NOT NULL,
|
||||
IdPHIdent bigint DEFAULT 0 NOT NULL,
|
||||
PHOznaceni nvarchar(50) NULL,
|
||||
UzivIdent nvarchar(100) NULL,
|
||||
JSONData nvarchar(max) NULL,
|
||||
DatPotvrzeni datetime NULL,
|
||||
DatZpracovani datetime NULL,
|
||||
Nezpracovat bit NOT NULL DEFAULT 0,
|
||||
DatPorizeni datetime DEFAULT getdate() NULL,
|
||||
IDDoklad int NULL,
|
||||
CisloZam int NULL,
|
||||
PosledniChyba nvarchar(255) NULL,
|
||||
Blokovano bit NOT NULL DEFAULT 0,
|
||||
IDMzda int NULL,
|
||||
IDMezd NVARCHAR(max) NULL,
|
||||
IDEvidRozpOp int NULL,
|
||||
Objekt nvarchar(50) NULL,
|
||||
Akce nvarchar(50) NULL,
|
||||
PHDeviceID NVARCHAR(40) NULL,
|
||||
Zpracovano AS CONVERT(bit, CASE WHEN DatZpracovani IS NULL THEN 0 ELSE 1 END),
|
||||
CONSTRAINT PK_hdc_ph_JsonData PRIMARY KEY CLUSTERED (ID DESC)
|
||||
WITH ( PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF, STATISTICS_NORECOMPUTE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
|
||||
)
|
||||
|
||||
|
||||
DROP INDEX IF EXISTS EI_hdc_ph_PrijataJsonData_DokladOZ ON dbo._hdc_ph_PrijataJsonData
|
||||
CREATE NONCLUSTERED INDEX EI_hdc_ph_PrijataJsonData_DokladOZ ON dbo._hdc_ph_PrijataJsonData (IDDoklad)
|
||||
WITH ( PAD_INDEX = OFF, DROP_EXISTING = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
|
||||
|
||||
|
||||
|
||||
/* 28.10.2023 */
|
||||
IF COL_LENGTH(N'dbo._hdc_ph_PrijataJsonData', N'CisloZam') IS NULL ALTER TABLE dbo._hdc_ph_PrijataJsonData ADD CisloZam INT NULL
|
||||
|
||||
/* 26.10.2023 */
|
||||
IF COL_LENGTH(N'dbo._hdc_ph_PrijataJsonData', N'PosledniChyba') IS NULL ALTER TABLE dbo._hdc_ph_PrijataJsonData ADD PosledniChyba NVARCHAR(255) NULL
|
||||
|
||||
/* 27.10.2023 */
|
||||
IF COL_LENGTH(N'dbo._hdc_ph_PrijataJsonData', N'Blokovano') IS NULL ALTER TABLE dbo._hdc_ph_PrijataJsonData ADD Blokovano BIT NOT NULL DEFAULT 0
|
||||
|
||||
/* 31.1.2024 */
|
||||
IF COL_LENGTH(N'dbo._hdc_ph_PrijataJsonData', N'IDMzda') IS NULL ALTER TABLE dbo._hdc_ph_PrijataJsonData ADD IDMzda INT NULL
|
||||
DROP INDEX IF EXISTS EI_hdc_ph_PrijataJsonData_IDMzda ON dbo._hdc_ph_PrijataJsonData
|
||||
CREATE NONCLUSTERED INDEX EI_hdc_ph_PrijataJsonData_IDMzda ON dbo._hdc_ph_PrijataJsonData (IDMzda)
|
||||
WITH ( PAD_INDEX = OFF, DROP_EXISTING = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
|
||||
|
||||
/* 23.6.2024 */
|
||||
IF COL_LENGTH(N'dbo._hdc_ph_PrijataJsonData', N'Objekt') IS NULL ALTER TABLE dbo._hdc_ph_PrijataJsonData ADD Objekt NVARCHAR(50) NULL
|
||||
IF COL_LENGTH(N'dbo._hdc_ph_PrijataJsonData', N'Akce') IS NULL ALTER TABLE dbo._hdc_ph_PrijataJsonData ADD Akce NVARCHAR(50) NULL
|
||||
IF COL_LENGTH(N'dbo._hdc_ph_PrijataJsonData', N'IDEvidRozpOp') IS NULL ALTER TABLE dbo._hdc_ph_PrijataJsonData ADD IDEvidRozpOp INT NULL
|
||||
|
||||
/* 24.7.2024 */
|
||||
IF COL_LENGTH(N'dbo._hdc_ph_PrijataJsonData', N'Nezpracovat') IS NULL ALTER TABLE dbo._hdc_ph_PrijataJsonData ADD Nezpracovat BIT NOT NULL DEFAULT 0
|
||||
|
||||
/* 4.8.2024 */
|
||||
IF COL_LENGTH(N'dbo._hdc_ph_PrijataJsonData', N'PHDeviceID') IS NULL ALTER TABLE dbo._hdc_ph_PrijataJsonData ADD PHDeviceID NVARCHAR(40) NULL
|
||||
IF COL_LENGTH(N'dbo._hdc_ph_PrijataJsonData', N'GUIDIdent') IS NULL ALTER TABLE dbo._hdc_ph_PrijataJsonData ADD GUIDIdent UNIQUEIDENTIFIER DEFAULT newid() NOT NULL
|
||||
|
||||
/* 8.10.2024 */
|
||||
IF COL_LENGTH(N'dbo._hdc_ph_PrijataJsonData', N'IDMezd') IS NULL ALTER TABLE dbo._hdc_ph_PrijataJsonData ADD IDMezd NVARCHAR(MAX) NULL
|
||||
|
||||
/* 10.1.2025 */
|
||||
IF COL_LENGTH(N'dbo._hdc_ph_PrijataJsonData', N'Zpracovano') IS NULL ALTER TABLE dbo._hdc_ph_PrijataJsonData ADD Zpracovano AS CONVERT(bit, CASE WHEN DatZpracovani IS NULL THEN 0 ELSE 1 END)
|
||||
|
||||
/* 23.1.2025 */
|
||||
IF COL_LENGTH(N'dbo._hdc_ph_PrijataJsonData', N'UzivIdent') IS NULL ALTER TABLE dbo._hdc_ph_PrijataJsonData ADD UzivIdent NVARCHAR(100) NULL
|
||||
|
||||
7
sqlDefs/tbl_hdcdzapi_SQLDefs.sql
Normal file
7
sqlDefs/tbl_hdcdzapi_SQLDefs.sql
Normal file
@ -0,0 +1,7 @@
|
||||
IF OBJECT_ID(N'dbo._hdcdzapi_SQLDefs', N'U') IS NULL
|
||||
CREATE TABLE dbo._hdcdzapi_SQLDefs (
|
||||
ID int IDENTITY(1, 1) NOT NULL,
|
||||
SrcName sysname NOT NULL,
|
||||
DatPorizeni DATETIME NOT NULL DEFAULT GETDATE(),
|
||||
CONSTRAINT PK__hdcdzapi_SQLDefs PRIMARY KEY CLUSTERED (ID DESC) WITH ( PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF, STATISTICS_NORECOMPUTE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
|
||||
)
|
||||
25
sqlDefs/trg_hdc_ph_Log_D.sql
Normal file
25
sqlDefs/trg_hdc_ph_Log_D.sql
Normal file
@ -0,0 +1,25 @@
|
||||
-- dbo.ET__hdc_ph_Log_D
|
||||
CREATE TRIGGER dbo.ET__hdc_ph_Log_D ON dbo._hdc_ph_Log
|
||||
WITH EXECUTE AS CALLER
|
||||
FOR DELETE
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON
|
||||
|
||||
-- ! trigger neupravujte, bude stejne pregenerovan pri startu pluginu PluginHDCRTN !
|
||||
|
||||
DECLARE
|
||||
@id INT
|
||||
|
||||
|
||||
|
||||
-- cisteni seedu
|
||||
IF EXISTS(SELECT 1 FROM dbo._hdc_ph_Log)
|
||||
BEGIN
|
||||
SELECT @id=MAX(ID) FROM dbo._hdc_ph_Log
|
||||
DBCC CHECKIDENT(_hdc_ph_Log, RESEED, @id)
|
||||
END
|
||||
ELSE
|
||||
TRUNCATE TABLE dbo._hdc_ph_Log
|
||||
|
||||
END
|
||||
24
sqlDefs/trg_hdc_ph_PrijataJsonData_D.sql
Normal file
24
sqlDefs/trg_hdc_ph_PrijataJsonData_D.sql
Normal file
@ -0,0 +1,24 @@
|
||||
-- dbo.ET_hdc_ph_PrijataJsonData_D
|
||||
CREATE TRIGGER dbo.ET_hdc_ph_PrijataJsonData_D ON dbo._hdc_ph_PrijataJsonData
|
||||
WITH EXECUTE AS CALLER
|
||||
FOR DELETE
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON
|
||||
|
||||
-- !! trigger neupravujte, bude stejne pregenerovan pri startu pluginu HDCDZAPI !!
|
||||
|
||||
DECLARE
|
||||
@id INT
|
||||
|
||||
|
||||
IF NOT EXISTS(SELECT 1 FROM dbo._hdc_ph_PrijataJsonData)
|
||||
TRUNCATE TABLE dbo._hdc_ph_PrijataJsonData
|
||||
ELSE
|
||||
BEGIN
|
||||
SELECT @id=MAX(ID) FROM dbo._hdc_ph_PrijataJsonData
|
||||
DBCC CHECKIDENT (_hdc_ph_PrijataJsonData, RESEED, @id)
|
||||
END
|
||||
|
||||
|
||||
END
|
||||
Reference in New Issue
Block a user