Files
Rootvin-pluginHDCRTN/_sql/2UT/utObjednavkyMatPol.sql
2025-06-10 19:43:13 +02:00

308 lines
13 KiB
Transact-SQL

SET NOCOUNT ON
DECLARE
@iTemp INT,
@sql NVARCHAR(3000),
@idTab INT,
@sysTabName NVARCHAR(128),
@hvwName NVARCHAR(128),
@idCol INT,
@trigger NVARCHAR(max)
SET @sysTabName = '_TabVyroba_Objednavky_Pol'
SET @hvwName = 'hvw_Vyroba_ObjednavkyMat_Pol'
SET @iTemp = ISNULL( (SELECT MAX(ID) FROM dbo.TabDefTabUzivTabulka), 1)
DBCC CHECKIDENT (TabDefTabUzivTabulka, RESEED, @iTemp)
SET @iTemp = ISNULL( (SELECT MAX(ID) FROM dbo.TabDefTabUzivAtributy), 1)
DBCC CHECKIDENT (TabDefTabUzivAtributy, RESEED, @iTemp)
SET @iTemp = ISNULL( (SELECT MAX(ID) FROM dbo.TabDefTabUzivConstraint), 1)
DBCC CHECKIDENT (TabDefTabUzivConstraint, RESEED, @iTemp)
-- tabulka
SET @idTab = (SELECT ID FROM dbo.TabDefTabUzivTabulka WHERE NazevTabulky=@sysTabName)
IF (@idTab IS NULL)
BEGIN
INSERT dbo.TabDefTabUzivTabulka (Skupina, Popis, NazevTabulky, NazevPrehledu, NastaveniAkceNovy, NastaveniAkceOprava, NastaveniAkceZrusit)
SELECT N'', 'Zapsané položky objednávky na materiál', @sysTabName, @hvwName, 1, 1, 1
SET @idTab = SCOPE_IDENTITY()
END
-- sloupce
IF (@idTab IS NOT NULL)
BEGIN
/*
INSERT dbo.TabDefTabUzivAtributy
(IDDefinice, Poradi, DTUHeliosAttr, DTUAtrJmenoSys, DTUAtrJmenoVerejne, DTUAtrTyp, DTUAtrDelka, DTUAtrNull, DTUAtrServerDefault, DTUAtrDruh,
DTUAtrPocitany, DTUAtrKonverze, DTUAtrSirkaSloupce, DTUAtrMaska, DTUAtrVerejny, DTUAtrVyzadovany, DTUAtrSumovat, DTUAtrTisk, DTUEditovatelny,
DTUReadOnly, DTUHromadneZmeny, EdAtrEditor, EdAtrPoradi, EdAtrHlidat, EdAtrPrenosAtr, EdAtrSkrytyPrenos, EdAtrInfoAtr1, EdAtrInfoAtr2, EdAtrPrenosDPSN, EdAtrPrenosIDFiltr, EdAtrPodminka)
DTUAtrTyp
0=INT
1=SMALLINT
2=TINYINT
3=BIGINT
4=GUID
5=BIT
6=NVARCHAR
7=NTEXT
8=VARBINARY(MAX)
9=DATETIME
10=NUMERIC(5,2)
11=NUMERIC(19,6)
12=FLOAT
13=VARCHAR
14=NVARCHAR(MAX)
*/
/*
SET @idCol = (SELECT ID FROM dbo.TabDefTabUzivAtributy WHERE IDDefinice=@idTab AND DTUAtrJmenoSys=N'ID')
IF (@idCol IS NULL)
INSERT dbo.TabDefTabUzivAtributy
(IDDefinice, Poradi, DTUAtrJmenoSys, DTUAtrJmenoVerejne, DTUAtrTyp, DTUAtrDelka, DTUAtrNull, DTUAtrServerDefault, DTUAtrDruh,
DTUAtrPocitany, DTUAtrErrTextStr, DTUAtrKonverze, DTUAtrSirkaSloupce, DTUAtrMaska, DTUAtrVerejny, DTUAtrVyzadovany, DTUAtrSumovat, DTUAtrTisk, DTUEditovatelny,
DTUReadOnly, DTUHromadneZmeny, EdAtrPrenosDPSN, EdAtrPrenosAtr)
SELECT @idTab, 1, N'ID', N'Systémové èíslo', 0, 0, 0, N'', 0, -- 0 = int
NULL, NULL, NULL, 20, N'', 0, 1, 0, 1, 0,
0, 0, N'', N''
IF NOT EXISTS(SELECT 1 FROM information_schema.COLUMNS where table_name=@sysTabName AND column_name=N'ID')
BEGIN
SET @sql = N'ALTER TABLE ' + @sysTabName + ' ADD ID INT IDENTITY(1,1) NOT NULL PRIMARY KEY'
EXEC sp_executesql @sql
END
*/
SET @idCol = (SELECT ID FROM dbo.TabDefTabUzivAtributy WHERE IDDefinice=@idTab AND DTUAtrJmenoSys=N'IDHlava')
IF (@idCol IS NULL)
INSERT dbo.TabDefTabUzivAtributy
(IDDefinice, Poradi, DTUAtrJmenoSys, DTUAtrJmenoVerejne, DTUAtrTyp, DTUAtrDelka, DTUAtrNull, DTUAtrServerDefault, DTUAtrDruh,
DTUAtrPocitany, DTUAtrErrTextStr, DTUAtrKonverze, DTUAtrSirkaSloupce, DTUAtrMaska, DTUAtrVerejny, DTUAtrVyzadovany, DTUAtrSumovat, DTUAtrTisk, DTUEditovatelny,
DTUReadOnly, DTUHromadneZmeny, EdAtrPrenosDPSN, EdAtrPrenosAtr)
SELECT @idTab, 2, N'IDHlava', N'Hlavièka', 0, 0, 1, N'', 0, -- 0 = int
NULL, NULL, NULL, 20, N'', 0, 0, 0, 1, 0,
1, 0, N'', N''
IF NOT EXISTS(SELECT 1 FROM information_schema.COLUMNS where table_name=@sysTabName AND column_name=N'IDHlava')
BEGIN
SET @sql = N'ALTER TABLE ' + @sysTabName + ' ADD IDHlava INT NOT NULL'
EXEC sp_executesql @sql
END
SET @idCol = (SELECT ID FROM dbo.TabDefTabUzivAtributy WHERE IDDefinice=@idTab AND DTUAtrJmenoSys=N'IDDokladOZ')
IF (@idCol IS NULL)
INSERT dbo.TabDefTabUzivAtributy
(IDDefinice, Poradi, DTUAtrJmenoSys, DTUAtrJmenoVerejne, DTUAtrTyp, DTUAtrDelka, DTUAtrNull, DTUAtrServerDefault, DTUAtrDruh,
DTUAtrPocitany, DTUAtrErrTextStr, DTUAtrKonverze, DTUAtrSirkaSloupce, DTUAtrMaska, DTUAtrVerejny, DTUAtrVyzadovany, DTUAtrSumovat, DTUAtrTisk, DTUEditovatelny,
DTUReadOnly, DTUHromadneZmeny, EdAtrPrenosDPSN)
SELECT @idTab, 3, N'IDDokladOZ', N'Doklad OZ', 0, 0, 1, N'', 0, -- 3=int
NULL, NULL, NULL, 20, N'', 1, 0, 0, 1, 0,
1, 0, N''
IF NOT EXISTS(SELECT 1 FROM information_schema.COLUMNS where table_name=@sysTabName AND column_name=N'IDDokladOZ')
BEGIN
SET @sql = N'ALTER TABLE ' + @sysTabName + ' ADD IDDokladOZ INT NULL'
EXEC sp_executesql @sql
END
SET @idCol = (SELECT ID FROM dbo.TabDefTabUzivAtributy WHERE IDDefinice=@idTab AND DTUAtrJmenoSys=N'IDPohybOZ')
IF (@idCol IS NULL)
INSERT dbo.TabDefTabUzivAtributy
(IDDefinice, Poradi, DTUAtrJmenoSys, DTUAtrJmenoVerejne, DTUAtrTyp, DTUAtrDelka, DTUAtrNull, DTUAtrServerDefault, DTUAtrDruh,
DTUAtrPocitany, DTUAtrErrTextStr, DTUAtrKonverze, DTUAtrSirkaSloupce, DTUAtrMaska, DTUAtrVerejny, DTUAtrVyzadovany, DTUAtrSumovat, DTUAtrTisk, DTUEditovatelny,
DTUReadOnly, DTUHromadneZmeny, EdAtrPrenosDPSN)
SELECT @idTab, 4, N'IDPohybOZ', N'Položka dokladu OZ', 0, 0, 1, N'', 0, -- 0=int
NULL, NULL, NULL, 20, N'', 1, 0, 0, 1, 0,
1, 0, N''
IF NOT EXISTS(SELECT 1 FROM information_schema.COLUMNS where table_name=@sysTabName AND column_name=N'IDPohybOZ')
BEGIN
SET @sql = N'ALTER TABLE ' + @sysTabName + ' ADD IDPohybOZ INT NULL'
EXEC sp_executesql @sql
END
SET @idCol = (SELECT ID FROM dbo.TabDefTabUzivAtributy WHERE IDDefinice=@idTab AND DTUAtrJmenoSys=N'IDVyrCP')
IF (@idCol IS NULL)
INSERT dbo.TabDefTabUzivAtributy
(IDDefinice, Poradi, DTUAtrJmenoSys, DTUAtrJmenoVerejne, DTUAtrTyp, DTUAtrDelka, DTUAtrNull, DTUAtrServerDefault, DTUAtrDruh,
DTUAtrPocitany, DTUAtrErrTextStr, DTUAtrKonverze, DTUAtrSirkaSloupce, DTUAtrMaska, DTUAtrVerejny, DTUAtrVyzadovany, DTUAtrSumovat, DTUAtrTisk, DTUEditovatelny,
DTUReadOnly, DTUHromadneZmeny, EdAtrPrenosDPSN)
SELECT @idTab, 5, N'IDVyrCP', N'Pohyb VÈ položky OZ', 0, 0, 1, N'', 0, -- 0=int
NULL, NULL, NULL, 20, N'', 1, 0, 0, 1, 0,
1, 0, N''
IF NOT EXISTS(SELECT 1 FROM information_schema.COLUMNS where table_name=@sysTabName AND column_name=N'IDVyrCP')
BEGIN
SET @sql = N'ALTER TABLE ' + @sysTabName + ' ADD IDVyrCP INT NULL'
EXEC sp_executesql @sql
END
SET @idCol = (SELECT ID FROM dbo.TabDefTabUzivAtributy WHERE IDDefinice=@idTab AND DTUAtrJmenoSys=N'SkupZbo')
IF (@idCol IS NULL)
INSERT dbo.TabDefTabUzivAtributy
(IDDefinice, Poradi, DTUAtrJmenoSys, DTUHeliosAttr, DTUAtrJmenoVerejne, DTUAtrTyp, DTUAtrDelka, DTUAtrNull, DTUAtrServerDefault, DTUAtrDruh,
DTUAtrPocitany, DTUAtrErrTextStr, DTUAtrKonverze, DTUAtrSirkaSloupce, DTUAtrMaska, DTUAtrVerejny, DTUAtrVyzadovany, DTUAtrSumovat, DTUAtrTisk, DTUEditovatelny,
DTUReadOnly, DTUHromadneZmeny, EdAtrPrenosDPSN)
SELECT @idTab, 6, N'SkupZbo', N'TabKmenZbozi.SkupZbo', N'', 6, 3, 1, N'', 0, -- 6=nvarchar
NULL, NULL, NULL, 15, N'', 1, 0, 0, 1, 0,
1, 0, N''
IF NOT EXISTS(SELECT 1 FROM information_schema.COLUMNS where table_name=@sysTabName AND column_name=N'SkupZbo')
BEGIN
SET @sql = N'ALTER TABLE ' + @sysTabName + ' ADD SkupZbo NVARCHAR(3) NULL'
EXEC sp_executesql @sql
END
SET @idCol = (SELECT ID FROM dbo.TabDefTabUzivAtributy WHERE IDDefinice=@idTab AND DTUAtrJmenoSys=N'RegCis')
IF (@idCol IS NULL)
INSERT dbo.TabDefTabUzivAtributy
(IDDefinice, Poradi, DTUAtrJmenoSys, DTUHeliosAttr, DTUAtrJmenoVerejne, DTUAtrTyp, DTUAtrDelka, DTUAtrNull, DTUAtrServerDefault, DTUAtrDruh,
DTUAtrPocitany, DTUAtrErrTextStr, DTUAtrKonverze, DTUAtrSirkaSloupce, DTUAtrMaska, DTUAtrVerejny, DTUAtrVyzadovany, DTUAtrSumovat, DTUAtrTisk, DTUEditovatelny,
DTUReadOnly, DTUHromadneZmeny, EdAtrPrenosDPSN)
SELECT @idTab, 7, N'RegCis', N'TabKmenZbozi.RegCis', N'', 6, 30, 1, N'', 0, -- 6 = nvarchar, delka 30
NULL, NULL, NULL, 15, N'', 1, 0, 0, 1, 0,
1, 0, N''
IF NOT EXISTS(SELECT 1 FROM information_schema.COLUMNS where table_name=@sysTabName AND column_name=N'RegCis')
BEGIN
SET @sql = N'ALTER TABLE ' + @sysTabName + ' ADD RegCis NVARCHAR(30) NULL'
EXEC sp_executesql @sql
END
SET @idCol = (SELECT ID FROM dbo.TabDefTabUzivAtributy WHERE IDDefinice=@idTab AND DTUAtrJmenoSys=N'Mnozstvi')
IF (@idCol IS NULL)
INSERT dbo.TabDefTabUzivAtributy
(IDDefinice, Poradi, DTUAtrJmenoSys, DTUAtrJmenoVerejne, DTUAtrTyp, DTUAtrDelka, DTUAtrNull, DTUAtrServerDefault, DTUAtrDruh,
DTUAtrPocitany, DTUAtrErrTextStr, DTUAtrKonverze, DTUAtrSirkaSloupce, DTUAtrMaska, DTUAtrVerejny, DTUAtrVyzadovany, DTUAtrSumovat, DTUAtrTisk, DTUEditovatelny,
DTUReadOnly, DTUHromadneZmeny, EdAtrPrenosDPSN)
SELECT @idTab, 8, N'Mnozstvi', N'Množství', 11, 0, 0, N'0', 0, -- 11 = numeric(19,6)
NULL, NULL, NULL, 70, N'#,##0.##', 1, 1, 1, 1, 1,
1, 0, N''
IF NOT EXISTS(SELECT 1 FROM information_schema.COLUMNS where table_name=@sysTabName AND column_name=N'Mnozstvi')
BEGIN
SET @sql = N'ALTER TABLE ' + @sysTabName + ' ADD Mnozstvi NUMERIC(19,6) NOT NULL DEFAULT 0.0'
EXEC sp_executesql @sql
END
SET @idCol = (SELECT ID FROM dbo.TabDefTabUzivAtributy WHERE IDDefinice=@idTab AND DTUAtrJmenoSys=N'PaletovyList')
IF (@idCol IS NULL)
INSERT dbo.TabDefTabUzivAtributy
(IDDefinice, Poradi, DTUAtrJmenoSys, DTUAtrJmenoVerejne, DTUAtrTyp, DTUAtrDelka, DTUAtrNull, DTUAtrServerDefault, DTUAtrDruh,
DTUAtrPocitany, DTUAtrErrTextStr, DTUAtrKonverze, DTUAtrSirkaSloupce, DTUAtrMaska, DTUAtrVerejny, DTUAtrVyzadovany, DTUAtrSumovat, DTUAtrTisk, DTUEditovatelny,
DTUReadOnly, DTUHromadneZmeny, EdAtrPrenosDPSN)
SELECT @idTab, 9, N'PaletovyList', N'Paletový list', 6, 100, 1, N'', 0, -- 6 = nvarchar, delka 100
NULL, NULL, NULL, 15, N'', 1, 0, 0, 1, 0,
1, 0, N''
IF NOT EXISTS(SELECT 1 FROM information_schema.COLUMNS where table_name=@sysTabName AND column_name=N'PaletovyList')
BEGIN
SET @sql = N'ALTER TABLE ' + @sysTabName + ' ADD PaletovyList NVARCHAR(100) NULL'
EXEC sp_executesql @sql
END
SET @idCol = (SELECT ID FROM dbo.TabDefTabUzivAtributy WHERE IDDefinice=@idTab AND DTUAtrJmenoSys=N'Sarze')
IF (@idCol IS NULL)
INSERT dbo.TabDefTabUzivAtributy
(IDDefinice, Poradi, DTUAtrJmenoSys, DTUAtrJmenoVerejne, DTUAtrTyp, DTUAtrDelka, DTUAtrNull, DTUAtrServerDefault, DTUAtrDruh,
DTUAtrPocitany, DTUAtrErrTextStr, DTUAtrKonverze, DTUAtrSirkaSloupce, DTUAtrMaska, DTUAtrVerejny, DTUAtrVyzadovany, DTUAtrSumovat, DTUAtrTisk, DTUEditovatelny,
DTUReadOnly, DTUHromadneZmeny, EdAtrPrenosDPSN)
SELECT @idTab, 10, N'Sarze', N'Šarže', 6, 100, 1, N'', 0, -- 6 = nvarchar, delka 100
NULL, NULL, NULL, 15, N'', 1, 0, 0, 1, 0,
1, 0, N''
IF NOT EXISTS(SELECT 1 FROM information_schema.COLUMNS where table_name=@sysTabName AND column_name=N'Sarze')
BEGIN
SET @sql = N'ALTER TABLE ' + @sysTabName + ' ADD Sarze NVARCHAR(100) NULL'
EXEC sp_executesql @sql
END
END -- @idTab IS NOT NULL
-- indexy
IF (@idTab IS NOT NULL)
IF NOT EXISTS (SELECT 1 FROM dbo.TabDefTabUzivConstraint WHERE IDDefinice=@idTab AND Typ=1 AND JmenoSys=N'PK__' + @sysTabName + N'__ID')
INSERT dbo.TabDefTabUzivConstraint
(IDDefinice, JmenoSys, Typ, MojeAtributy, CiziTabulka, CiziAtributy, IncludedAttr, VazbaNazevMoje, VazbaNazevMojeSys, VazbaNazevCizi, VazbaNazevCiziSys)
SELECT @idTab, N'PK__' + @sysTabName + N'__ID', 1, N'ID', N'', N'', N'', N'', N'', N'', N''
IF (@idTab IS NOT NULL) AND EXISTS (SELECT 1 FROM dbo.TabDefTabUzivAtributy WHERE IDDefinice=@idTab AND DTUAtrJmenoSys=N'IDHlava')
IF NOT EXISTS (SELECT 1 FROM dbo.TabDefTabUzivConstraint WHERE IDDefinice=@idTab AND Typ=0 AND JmenoSys=N'IX__' + @sysTabName + N'__IDHlava')
INSERT dbo.TabDefTabUzivConstraint
(IDDefinice, JmenoSys, Typ, MojeAtributy, CiziTabulka, CiziAtributy, IncludedAttr, VazbaNazevMoje, VazbaNazevMojeSys, VazbaNazevCizi, VazbaNazevCiziSys)
SELECT @idTab, N'IX__' + @sysTabName + N'__IDHlava', 0, N'IDHlava', N'', N'', N'', N'', N'', N'', N''
IF (@idTab IS NOT NULL) AND EXISTS (SELECT 1 FROM dbo.TabDefTabUzivAtributy WHERE IDDefinice=@idTab AND DTUAtrJmenoSys=N'IDPohybOZ')
IF NOT EXISTS (SELECT 1 FROM dbo.TabDefTabUzivConstraint WHERE IDDefinice=@idTab AND Typ=0 AND JmenoSys=N'IX__' + @sysTabName + N'__IDPohybOZ')
INSERT dbo.TabDefTabUzivConstraint
(IDDefinice, JmenoSys, Typ, MojeAtributy, CiziTabulka, CiziAtributy, IncludedAttr, VazbaNazevMoje, VazbaNazevMojeSys, VazbaNazevCizi, VazbaNazevCiziSys)
SELECT @idTab, N'IX__' + @sysTabName + N'__IDPohybOZ', 0, N'IDPohybOZ', N'', N'', N'', N'', N'', N'', N''
-- hlavni trigger
IF (@idTab IS NOT NULL) AND EXISTS (SELECT 1 FROM dbo.TabDefTabUzivTabulka WHERE DefiniceTriggeru IS NULL)
UPDATE dbo.TabDefTabUzivTabulka SET DefiniceTriggeru=N'CREATE TRIGGER ht_' + @sysTabName + '_DIU ON ' + @sysTabName + '
FOR DELETE,INSERT,UPDATE AS
IF (@@ROWCOUNT=0)
RETURN
SET NOCOUNT ON
-- 1..insert, -1..delete, 0..update
DECLARE @JakaAkce INT
SET @JakaAkce = 0
IF EXISTS(SELECT*FROM INSERTED)
SET @JakaAkce = @JakaAkce + 1
IF EXISTS(SELECT*FROM DELETED)
SET @JakaAkce = @JakaAkce - 1
DECLARE
@id INT
-- begin: cast delete
IF (@JakaAkce=-1)
BEGIN
-- cisteni seedu tabulky
SET @id = ISNULL( (SELECT MAX(ID) FROM dbo._TabVyroba_Objednavky_Pol), 1)
DBCC CHECKIDENT(_TabVyroba_Objednavky_Pol, RESEED, @id)
END
-- end: cast delete
' WHERE ID=@idTab