833 lines
34 KiB
MySQL
833 lines
34 KiB
MySQL
-- dbo.ep_Vyroba_Doklady_Micharna
|
||
CREATE PROCEDURE dbo.ep_Vyroba_Doklady_Micharna
|
||
@idJson INT=NULL
|
||
AS
|
||
|
||
-- !! proceduru neupravujte, bude stejne pregenerovana pri startu pluginu PluginHDCRTN !!
|
||
|
||
SET NOCOUNT ON
|
||
|
||
|
||
DECLARE
|
||
@tranPred INT,
|
||
@cnt INT,
|
||
@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),
|
||
@typDokum NVARCHAR(50),
|
||
@subtypDokum NVARCHAR(50),
|
||
@akce NVARCHAR(50)
|
||
|
||
DECLARE
|
||
@cOrg INT,
|
||
@sklMat NVARCHAR(30),
|
||
@sklTechnicky NVARCHAR(30),
|
||
@sklPek NVARCHAR(30),
|
||
@radaTechVydej NVARCHAR(30)=N'222',
|
||
@radaDZVydejka NVARCHAR(3)=N'',
|
||
@radaDZPrevodV NVARCHAR(3)=N'',
|
||
@prevodka BIT=0,
|
||
@parZnak NVARCHAR(20)
|
||
|
||
DECLARE
|
||
@idPHIdent INT,
|
||
@idPHIdentBak INT,
|
||
@idPHIdent2 INT,
|
||
@idPHObj INT,
|
||
@idPHObjPol INT
|
||
|
||
DECLARE
|
||
@datPorizeni DATETIME,
|
||
@idVPr INT,
|
||
@radaVPr NVARCHAR(10),
|
||
@cisloPrikazu NVARCHAR(20),
|
||
@idVPrNizsi INT,
|
||
@radaVPrNizsi NVARCHAR(10),
|
||
@idVPrVyssi INT,
|
||
@radaVPrVyssi NVARCHAR(10),
|
||
@dilec INT,
|
||
@idZakazka INT,
|
||
@cisloZak NVARCHAR(30),
|
||
@casStart DATETIME,
|
||
@vyrobniDen DATETIME,
|
||
@smena TINYINT,
|
||
@casStartOld DATETIME,
|
||
@viskoz TINYINT,
|
||
@vodaLitry NUMERIC(12,3),
|
||
@moukaKgNorma NUMERIC(19,6),
|
||
@moukaKgFin NUMERIC(19,6),
|
||
@moukaSilo TINYINT,
|
||
@hmotTesta NUMERIC(19,6),
|
||
@idMzda INT,
|
||
@skCasSek INT,
|
||
@casKonec DATETIME,
|
||
@idSS INT,
|
||
@rDoklVyd NVARCHAR(3),
|
||
@idDZ INT,
|
||
@idDZDst INT,
|
||
@idPZ INT,
|
||
@datumDZ DATETIME,
|
||
@datReal DATETIME,
|
||
@menaDZ NVARCHAR(3),
|
||
@kurzDZ NUMERIC(19,6),
|
||
@kurzEDZ NUMERIC(19,6),
|
||
@dpz TINYINT,
|
||
@jednM INT,
|
||
@vstC TINYINT
|
||
|
||
DECLARE
|
||
@idPrKVazby INT,
|
||
@doklPrV INT,
|
||
@altPrV NCHAR(1),
|
||
@oper NVARCHAR(4),
|
||
@pozice NVARCHAR(100),
|
||
@idKZ INT,
|
||
@nazev1 NVARCHAR(100),
|
||
@idVCK INT,
|
||
@idVCS INT,
|
||
@idVCP INT,
|
||
@sz NVARCHAR(3),
|
||
@rc NVARCHAR(30),
|
||
@idUmist INT,
|
||
@sarze NVARCHAR(30),
|
||
@paletList NVARCHAR(30),
|
||
@mnozDilec NUMERIC(19,6),
|
||
@mnoz NUMERIC(19,6),
|
||
@mnoz2 NUMERIC(19,6),
|
||
@mnozVyd NUMERIC(19,6),
|
||
@mnozReq NUMERIC(19,6),
|
||
@mnozNew NUMERIC(19,6)
|
||
|
||
DECLARE
|
||
@idStartStopOp INT,
|
||
@idPracoviste INT,
|
||
@idPracovisteOld INT,
|
||
@idStroj INT,
|
||
@strojPec NVARCHAR(40),
|
||
@statusStroje NVARCHAR(50),
|
||
@idEvROp INT,
|
||
@idEvROpR INT,
|
||
@cisZam INT,
|
||
@idZam INT,
|
||
@doklPrP INT,
|
||
@altPrP NCHAR(1)
|
||
|
||
|
||
|
||
DECLARE @TabPHObj TABLE (ID INT NOT NULL, IDPHIdent INT )
|
||
DECLARE @PrKVazby TABLE (ID INT NOT NULL, Sklad NVARCHAR(30) )
|
||
|
||
|
||
|
||
-- 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))
|
||
|
||
|
||
|
||
IF OBJECT_ID(N'tempdb..#TabDefiniceProMicharnu', N'U') IS NOT NULL
|
||
SELECT TOP(1) @sklMat=HlavniSkladMat, @sklPek=SkladVyrobaPekarna, @sklTechnicky=TechnologickySklad, @radaTechVydej=RadaTechnologickyVydej
|
||
FROM #TabDefiniceProMicharnu
|
||
IF (@sklMat IS NULL)
|
||
SELECT @sklMat=Cislo FROM dbo.TabStrom WHERE Nazev=N'Hlavn<EFBFBD> sklad - Materi<72>l'
|
||
IF (@sklTechnicky IS NULL)
|
||
SELECT @sklTechnicky=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'Technolog%ne<6E><65>%'
|
||
IF (@sklPek IS NULL)
|
||
SELECT @sklPek=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'V<EFBFBD>roba - Pek<65>rna'
|
||
IF (@sklTechnicky IS NULL) AND (@sklPek IS NOT NULL)
|
||
SET @sklTechnicky=@sklPek
|
||
DROP TABLE IF EXISTS #TabDefiniceProMicharnu
|
||
|
||
|
||
|
||
IF (@radaTechVydej IS NOT NULL)
|
||
SET @radaDZVydejka = @radaTechVydej
|
||
|
||
|
||
|
||
IF (@idJson IS NULL)
|
||
DECLARE j CURSOR LOCAL FOR
|
||
SELECT ID, JSONData, Akce
|
||
FROM dbo._hdc_ph_PrijataJsonData
|
||
WHERE DatZpracovani IS NULL
|
||
AND ISNULL(JSONData, N'')<>N''
|
||
ORDER BY DatPorizeni ASC
|
||
ELSE
|
||
DECLARE j CURSOR LOCAL FOR
|
||
SELECT ID, JSONData, Akce
|
||
FROM dbo._hdc_ph_PrijataJsonData
|
||
WHERE ID=@idJson
|
||
OPEN j
|
||
WHILE (1=1)
|
||
BEGIN
|
||
FETCH NEXT FROM j INTO @idJson, @jsonString, @akce
|
||
IF (@@FETCH_STATUS<>0) BREAK
|
||
|
||
IF (ISJSON(@jsonString)=0)
|
||
CONTINUE
|
||
|
||
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 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 TRY
|
||
SET @tranPred = @@TRANCOUNT
|
||
IF (@tranPred=0)
|
||
BEGIN TRAN
|
||
|
||
-- BEGIN: SPOTREBA/ODPIS
|
||
IF (@akce=N'vyroba_spotreba')
|
||
BEGIN
|
||
DELETE FROM @PrKVazby
|
||
|
||
DELETE FROM #TabJSONData
|
||
INSERT #TabJSONData (doc) SELECT @jsonString
|
||
|
||
SELECT @typDokum=u2.typ, @subtypDokum=u2.subtyp
|
||
FROM #TabJSONData d
|
||
CROSS APPLY OPENJSON (d.doc, '$')
|
||
WITH ([data] NVARCHAR(MAX) AS JSON) AS u
|
||
CROSS APPLY OPENJSON ([data])
|
||
WITH (typ NVARCHAR(50), subtyp NVARCHAR(50)) AS u2
|
||
|
||
-- SPOTREBA PLUS UKONCENI OPERACE MICHANI ----------------------------------------------------
|
||
IF (@typDokum='vyroba')
|
||
BEGIN
|
||
SET @vodaLitry = 0
|
||
SET @moukaKgNorma = 0
|
||
SET @moukaKgFin = 0
|
||
SET @moukaSilo = 0
|
||
|
||
SELECT @idStroj=u3.heliosId, @idPHIdent=u2.datazoneId
|
||
FROM #TabJSONData d
|
||
CROSS APPLY OPENJSON (d.doc, '$')
|
||
WITH ([data] NVARCHAR(MAX) AS JSON) AS u
|
||
CROSS APPLY OPENJSON ([data])
|
||
WITH (datazoneId INT, stroj NVARCHAR(MAX) AS JSON) AS u2
|
||
CROSS APPLY OPENJSON (stroj)
|
||
WITH (heliosId INT) u3
|
||
|
||
SELECT @idVPr=u3.heliosId, @casStart=u3.zacatek, @casKonec=u3.konec, @viskoz=u3.viskozita, @moukaSilo=u3.silo
|
||
FROM #TabJSONData d
|
||
CROSS APPLY OPENJSON (d.doc, '$')
|
||
WITH ([data] NVARCHAR(MAX) AS JSON) AS u
|
||
CROSS APPLY OPENJSON ([data])
|
||
WITH (typ NVARCHAR(50), prikaz NVARCHAR(MAX) AS JSON) AS u2
|
||
CROSS APPLY OPENJSON (prikaz)
|
||
WITH (heliosId INT, datazoneId INT, skupzbo NVARCHAR(3), regcis NVARCHAR(30), zacatek DATETIME, konec DATETIME, viskozita TINYINT, silo TINYINT) u3
|
||
|
||
SET @idPHIdentBak = @idPHIdent
|
||
SELECT @vyrobniDen=Datum, @smena=Smena FROM dbo.ef_GetDatumASmenu(@casStart)
|
||
|
||
SELECT @idStartStopOp=ID FROM dbo._TabVyroba_OperaceStartStop WHERE IDPrikaz=@idVPr AND IDPHIdent=@idPHIdent
|
||
|
||
SELECT @dilec=IdTabKmen, @radaVPr=Rada, @idZakazka=IDZakazka, @mnozDilec=kusy_zad FROM dbo.TabPrikaz WHERE ID=@idVPr
|
||
SELECT @cisloZak=CisloZakazky FROM dbo.TabZakazka WHERE ID=@idZakazka
|
||
IF (@radaDZVydejka IS NULL)
|
||
SET @radaDZVydejka = ISNULL( (SELECT RadaDokl_GenerRezVyd_Mat FROM dbo.TabRadyPrikazu WHERE Rada=@radaVPr), @radaDZVydejka)
|
||
-- SET @sklMat = ISNULL( (SELECT VydejMatPol_SkladProGenHlavDZ FROM dbo.TabRadyPrikazu WHERE Rada=@radaVPr), @sklMat)
|
||
|
||
-- povol evidenci a odvod vice ks nez je na prikazu
|
||
UPDATE dbo.TabRadyPrikazu SET NekontrolMnozEvidMezd=1 WHERE Rada=@radaVPr AND NekontrolMnozEvidMezd=0
|
||
UPDATE dbo.TabRadyPrikazu SET NekontrolMnozOdvedFinal=1 WHERE Rada=@radaVPr AND NekontrolMnozOdvedFinal=0
|
||
|
||
|
||
SET @idDZ = (SELECT IDDoklad FROM dbo._hdc_ph_PrijataJsonData WHERE ID=@idJson)
|
||
IF (@idDZ IS NULL) -- @idDZ uz existuje ? Ne, udelej vydejku na prikaz
|
||
BEGIN
|
||
|
||
SELECT @jsonString2=u2.vydej
|
||
FROM #TabJSONData d
|
||
CROSS APPLY OPENJSON (d.doc, '$')
|
||
WITH (akce NVARCHAR(50), [data] NVARCHAR(MAX) AS JSON) AS u
|
||
CROSS APPLY OPENJSON ([data])
|
||
WITH ( vydej NVARCHAR(MAX) AS JSON) AS u2
|
||
|
||
DELETE FROM #TabJSONData
|
||
INSERT #TabJSONData (doc) SELECT @jsonString2
|
||
DECLARE p CURSOR LOCAL FOR
|
||
SELECT u.nazev, u.skupzbo, u.regcis, u.sarze, u.paletovylist, u.mnozstvi, u.mnozstviVychozi, u.datazoneId
|
||
FROM #TabJSONData d
|
||
CROSS APPLY OPENJSON (d.doc, '$')
|
||
WITH ( nazev NVARCHAR(100), skupzbo NVARCHAR(3), regcis NVARCHAR(30), sarze NVARCHAR(30), paletovyList NVARCHAR(30), mnozstvi NUMERIC(19,6), mnozstviVychozi NUMERIC(19,6), datazoneId INT) AS u
|
||
OPEN p
|
||
WHILE (1=1)
|
||
BEGIN
|
||
FETCH NEXT FROM p INTO @nazev1, @sz, @rc, @sarze, @paletList, @mnoz, @mnoz2, @idPHIdent
|
||
IF (@@FETCH_STATUS<>0) BREAK
|
||
|
||
SET @paletList = ISNULL(@paletList, N'')
|
||
IF (@sz=N'101') AND (@rc=N'001000')
|
||
SET @vodaLitry = @mnoz
|
||
IF (@sz=N'101') AND (@nazev1 LIKE N'%mouka%')
|
||
BEGIN
|
||
SET @moukaKgFin = @mnoz
|
||
SET @moukaKgNorma = @mnoz2
|
||
END
|
||
|
||
IF (@idDZ IS NULL)
|
||
BEGIN
|
||
SET @dpz = 4
|
||
EXEC dbo.hp_InsertHlavickyOZ @ident=@idDZ OUT, @Sklad=@sklTechnicky, @DruhPohybu=@dpz, @RadaDokladu=@radaDZVydejka, @CisloOrg=0
|
||
IF (@idDZ IS NOT NULL)
|
||
BEGIN
|
||
IF NOT EXISTS(SELECT 1 FROM dbo.TabDokladyZbozi_EXT WHERE ID=@idDZ)
|
||
INSERT dbo.TabDokladyZbozi_EXT (ID) VALUES (@idDZ)
|
||
UPDATE dbo.TabDokladyZbozi_EXT SET _HDCAPI_PHident=@idJson WHERE ID=@idDZ
|
||
|
||
SELECT @datumDZ=DatPorizeni, @menaDZ=Mena, @kurzDZ=Kurz, @kurzEDZ=KurzEuro, @jednM=JednotkaMeny, @vstC=VstupniCena
|
||
FROM dbo.TabDokladyZbozi WHERE ID=@idDZ
|
||
UPDATE dbo.TabDokladyZbozi SET IDPrikaz=@idVPr, BlokovaniEditoru=0 WHERE ID=@idDZ
|
||
IF (@cisloZak IS NOT NULL)
|
||
UPDATE dbo.TabDokladyZbozi SET CisloZakazky=@cisloZak WHERE ID=@idDZ
|
||
END
|
||
END
|
||
|
||
IF (@idDZ IS NOT NULL)
|
||
BEGIN
|
||
SET @idKZ = (SELECT ID FROM dbo.TabKmenZbozi WHERE Nazev1 NOT LIKE N'%Voda%' AND SkupZbo=@sz AND RegCis=@rc AND (Material=1 OR Dilec=1) AND Sluzba=0)
|
||
IF (@idKZ IS NOT NULL)
|
||
BEGIN
|
||
-- najdi vazbu vc. kontroly jestli polozka neni rezijni material
|
||
SET @idPrKVazby = (SELECT ID FROM dbo.TabPrKVazby WHERE IDPrikaz=@idVPr AND vyssi=@dilec AND nizsi=@idKZ AND IDOdchylkyDo IS NULL AND RezijniMat=0)
|
||
|
||
-- pokud neni material v pozadavcich prikazu, pridej ho (neni v TPV)
|
||
IF (@idPrKVazby IS NULL) AND (@mnoz>0)
|
||
BEGIN
|
||
EXEC @idPrKVazby=dbo.hp_NewPozadavek_TabPrKVazby @IDPrikaz=@idVPr, @IDKmenZbozi=@idKZ, @Mnozstvi=@mnoz, @Mnoz_zad=@mnoz, @VychoziSklad=@sklMat
|
||
END
|
||
|
||
-- pridej do vydejky
|
||
IF (@idPrKVazby IS NOT NULL)
|
||
BEGIN
|
||
INSERT @PrKVazby (ID, Sklad) SELECT ID, Sklad FROM dbo.TabPrKVazby WHERE ID=@idPrKVazby
|
||
UPDATE dbo.TabPrKVazby SET Sklad=@sklTechnicky WHERE ID=@idPrKVazby
|
||
|
||
SET @idSS = (SELECT ID FROM dbo.TabStavSkladu WHERE IDKmenZbozi=@idKZ AND IDSklad=@sklTechnicky)
|
||
IF (@idSS IS NULL)
|
||
EXEC dbo.hp_InsertStavSkladu @IDKmen=@idKZ, @IDSklad=@sklTechnicky, @IDZboSklad=@idSS OUT
|
||
IF (@idSS IS NOT NULL)
|
||
BEGIN
|
||
-- mnoz = mnozstvi realne spotrebovane / mnoz2 = mnozstvi vychozi normovane
|
||
/*
|
||
UPDATE dbo.TabPrKVazby SET mnozstvi=@mnoz, mnoz_zad=@mnoz*@mnozDilec WHERE ID=@idPrKVazby AND mnozstvi<>@mnoz
|
||
*/
|
||
|
||
/*
|
||
SELECT @mnozReq=mnoz_zad, @doklPrV=Doklad FROM dbo.TabPrKVazby WHERE ID=@idPrKVazby
|
||
SET @mnozVyd = ISNULL( (SELECT SUM(pz.Mnozstvi) FROM dbo.TabPohybyZbozi pz INNER JOIN dbo.TabDokladyZbozi dz ON (dz.ID=pz.IDDoklad)
|
||
WHERE dz.DruhPohybuZbo=@dpz AND dz.RadaDokladu=@radaDZVydejka AND pz.IDPrikaz=@idVPr AND pz.TypVyrobnihoDokladu=0), 0)
|
||
SET @mnozNew = @mnozReq - @mnozVyd - @mnoz
|
||
IF (@mnozNew<=0)
|
||
BEGIN
|
||
SET @mnozNew = @mnozVyd + @mnoz
|
||
UPDATE dbo.TabPrKVazby SET mnoz_zad = @mnozNew WHERE ID=@idPrKVazby
|
||
END
|
||
*/
|
||
|
||
EXEC dbo.hp_InsertPolozkyOZ @ident=@idPZ OUT, @IDDoklad=@idDZ, @DruhPohybu=@dpz, @CisloOrg=0, @IDZboSklad=@idSS, @Mena=@menaDZ, @Kurz=@kurzDZ,
|
||
@JednotkaMeny=@jednM, @KurzEuro=@kurzEDZ, @SazbaSD=NULL, @SazbaDPH=NULL, @ZakazanoDPH=0, @VstupniCena=@vstC, @Mnozstvi=@mnoz
|
||
IF (@idPZ IS NOT NULL)
|
||
BEGIN
|
||
IF NOT EXISTS(SELECT 1 FROM dbo.TabPohybyZbozi_EXT WHERE ID=@idPZ)
|
||
INSERT dbo.TabPohybyZbozi_EXT (ID) VALUES (@idPZ)
|
||
|
||
IF (@sz=N'101') AND (@nazev1 LIKE N'%mouka%') AND (@moukaSilo IS NOT NULL)
|
||
BEGIN
|
||
UPDATE dbo.TabPohybyZbozi_EXT SET _Mouka_Silo=@moukaSilo WHERE ID=@idPZ
|
||
/*
|
||
SET @idUmist = (SELECT ID FROM dbo.TabUmisteni WHERE Kod=CONVERT(nvarchar,@moukaSilo) AND IDSklad=@sklTechnicky)
|
||
IF (@idUmist IS NOT NULL)
|
||
UPDATE dbo.TabPohybyZbozi SET IdUmisteni=@idUmist WHERE ID=@idPZ
|
||
*/
|
||
END
|
||
|
||
INSERT dbo._TabVyroba_OperaceStartStopVydej (IDHlava, IDKmenZbozi, Mnozstvi, MnozstviPuvodni, IDPohybZbozi)
|
||
SELECT @idStartStopOp, @idKZ, @mnoz, @mnoz2, @idPZ
|
||
|
||
UPDATE dbo.TabPohybyZbozi SET IDPrikaz=@idVPr, TypVyrobnihoDokladu=1, DokladPrikazu=@doklPrV WHERE ID=@idPZ
|
||
UPDATE dbo.TabPohybyZbozi_EXT SET _HDCAPI_PHident=@idPHIdent WHERE ID=@idPZ
|
||
|
||
IF (ISNULL(@sarze,N'')=N'')
|
||
SET @sarze = (SELECT _Prevod_PosledniSarze FROM dbo.TabStavSkladu_EXT WHERE ID=@idSS)
|
||
|
||
UPDATE dbo.TabPohybyZbozi_EXT SET _Vyroba_PrikazMnoz=@mnoz2, _Vyroba_Sarze=@sarze, _Vyroba_PaletList=@paletList WHERE ID=@idPZ
|
||
END -- @idPZ IS NOT NULL
|
||
END -- @idSS IS NOT NULL
|
||
END -- @idPrKVazby IS NOT NULL
|
||
END -- @idKZ IS NOT NULL
|
||
END -- @idDZ IS NOT NULL
|
||
|
||
END
|
||
CLOSE p
|
||
DEALLOCATE p
|
||
|
||
IF (@idDZ IS NOT NULL)
|
||
BEGIN
|
||
SET @hmotTesta = ISNULL( (SELECT SUM(p.Mnozstvi) FROM dbo.TabPohybyZbozi p INNER JOIN dbo.TabStavSkladu s ON (s.ID=p.IDZboSklad)
|
||
INNER JOIN dbo.TabKmenZbozi k ON (k.ID=s.IDKmenZbozi) WHERE p.IDDoklad=@idDZ AND k.Sluzba=0), 0)
|
||
IF (@hmotTesta>0)
|
||
BEGIN
|
||
SET @hmotTesta = ROUND(@hmotTesta, 2)
|
||
IF NOT EXISTS(SELECT 1 FROM dbo.TabDokladyZbozi_EXT WHERE ID=@idDZ)
|
||
INSERT dbo.TabDokladyZbozi_EXT (ID) VALUES (@idDZ)
|
||
UPDATE dbo.TabDokladyZbozi_EXT SET _Vyroba_HmotTesta=@hmotTesta WHERE ID=@idDZ
|
||
END
|
||
EXEC dbo.hp_VypCenOZPolozek_IDDokladu @idDZ, 0
|
||
UPDATE dbo.TabDokladyZbozi SET BlokovaniEditoru=NULL WHERE ID=@idDZ
|
||
END
|
||
END -- @idDZ uz existuje ?
|
||
|
||
-- konec operace
|
||
SET @idPHIdent = @idPHIdentBak
|
||
IF (@idStartStopOp IS NOT NULL)
|
||
BEGIN
|
||
IF (@idDZ IS NOT NULL)
|
||
UPDATE dbo._TabVyroba_OperaceStartStop SET IDDokladOZ=@idDZ WHERE ID=@idStartStopOp
|
||
SELECT @idEvROp=IDEvidRozpracOper FROM dbo._TabVyroba_OperaceStartStop WHERE ID=@idStartStopOp
|
||
IF (@idEvROp IS NOT NULL)
|
||
BEGIN
|
||
SELECT @idPracovisteOld=IDPracoviste, @idZam=IDZamestnance FROM dbo.TabEvidRozpracOper WHERE ID=@idEvROp
|
||
IF (@idZam IS NULL)
|
||
BEGIN
|
||
IF (ISNULL( (SELECT COUNT(ID) FROM dbo.TabCisZam), 0)=1)
|
||
SELECT TOP(1) @idZam=ID FROM dbo.TabCisZam
|
||
IF (@idZam IS NOT NULL)
|
||
UPDATE dbo.TabEvidRozpracOper SET IDZamestnance=@idZam WHERE ID=@idEvROp
|
||
END
|
||
UPDATE dbo._hdc_ph_PrijataJsonData SET CisloZam=(SELECT Cislo FROM dbo.TabCisZam WHERE ID=@idZam) WHERE ID=@idJson AND CisloZam IS NULL
|
||
|
||
SET @skCasSek = DATEDIFF(s, @casStart, @casKonec)
|
||
|
||
UPDATE dbo.TabEvidRozpracOperR SET Mnoz_odv=1,
|
||
Sk_cas=CASE Sk_Cas_T WHEN 0 THEN @skCasSek WHEN 1 THEN (@skCasSek/60.0) WHEN 2 THEN (@skCasSek/3600.0) END,
|
||
Sk_cas_Obsluhy=CASE Sk_Cas_Obsluhy_T WHEN 0 THEN @skCasSek WHEN 1 THEN (@skCasSek/60.0) WHEN 2 THEN (@skCasSek/3600.0) END
|
||
WHERE IDEvidRozpracOper=@idEvROp
|
||
UPDATE dbo.TabEvidRozpracOper SET CasUkonceni=@casKonec, CelkovyCas_T=0, CelkovyCas=DATEDIFF(s, @casStart, @casKonec) WHERE ID=@idEvROp
|
||
EXEC dbo.hp_EvidRozpracOper_AktualizaceCasuOper @IDEvidRozpracOper=@idEvROp, @CelkovyCas_S=@skCasSek, @KVO=1
|
||
|
||
IF (@idPracovisteOld IS NOT NULL)
|
||
EXEC dbo.hp_EvidRozpracOper_Uzavreni @IDEvidRozpracOper=@idEvROp, @GenerovatEvidenciOperaci=1
|
||
ELSE
|
||
EXEC dbo.hp_EvidRozpracOper_Uzavreni @IDEvidRozpracOper=@idEvROp, @GenerovatEvidenciOperaci=0
|
||
SET @idMzda=NULL
|
||
IF (1=(SELECT COUNT(ID) FROM dbo.TabEvidRozpracOperR WHERE IDEvidRozpracOper=@idEvROp))
|
||
SET @idMzda = (SELECT TOP(1) m.ID FROM dbo.TabPrikazMzdyAZmetky m INNER JOIN dbo.TabEvidRozpracOperR er ON (er.ID=m.IDEvidRozpracOperR)
|
||
WHERE er.IDEvidRozpracOper=@idEvROp)
|
||
UPDATE dbo._TabVyroba_OperaceStartStop SET CasKonec=@casKonec, Ukonceno=1, IDMzda=@idMzda WHERE ID=@idStartStopOp
|
||
UPDATE dbo._hdc_ph_PrijataJsonData SET IDMzda=@idMzda WHERE ID=@idJson
|
||
END
|
||
END
|
||
|
||
MERGE dbo.TabPrKVazby AS T
|
||
USING @PrKVazby AS S ON (T.ID=S.ID)
|
||
WHEN MATCHED THEN UPDATE SET T.Sklad=S.Sklad;
|
||
|
||
-- zapis pro pocitani spotreby testa
|
||
INSERT dbo._TabVyroba_TestoVyroba (IdPHIdent, IDPrikaz, IDDokladVydejMat, IDKmenZbozi, SkupZbo, RegCis, DatPriprava, VyrobniDen, Smena, DatVypousteni,
|
||
IDStrojPek, Viskozita, VodaLitry, MoukaHmot, MoukaSilo)
|
||
SELECT @idPHIdent, @idVPr, @idDZ, @dilec, SkupZbo, RegCis, @casStart, @vyrobniDen, @smena, @casKonec,
|
||
@idStroj, @viskoz, @vodaLitry, @moukaKgFin, @moukaSilo FROM dbo.TabKmenZbozi WHERE ID=@dilec
|
||
|
||
UPDATE dbo._hdc_ph_PrijataJsonData SET DatZpracovani=GETDATE(), IDDoklad=@idDZ WHERE ID=@idJson
|
||
|
||
IF OBJECT_ID(N'tempdb..#TabJSONData', N'U') IS NOT NULL
|
||
DROP TABLE #TabJSONData
|
||
|
||
END -- typ spotreba
|
||
|
||
|
||
|
||
-- ODPIS -----------------------------------------------------------------
|
||
IF (@typDokum='odpis')
|
||
BEGIN
|
||
SET @sklMat = N'211' -- odpis ze skladu Pekarna nebo z 311 - sklad Material ???????
|
||
SET @radaDZVydejka = N'242'
|
||
SET @dpz=4
|
||
|
||
SELECT @jsonString2=u2.vydej
|
||
FROM #TabJSONData d
|
||
CROSS APPLY OPENJSON (d.doc, '$')
|
||
WITH (akce NVARCHAR(50), [data] NVARCHAR(MAX) AS JSON) AS u
|
||
CROSS APPLY OPENJSON ([data])
|
||
WITH ( vydej NVARCHAR(MAX) AS JSON) AS u2
|
||
|
||
DELETE FROM #TabJSONData
|
||
INSERT #TabJSONData (doc) SELECT @jsonString2
|
||
DECLARE p CURSOR LOCAL FOR
|
||
SELECT u.skupzbo, u.regcis, u.sarze, u.paletovylist, u.mnozstvi, u.datazoneId
|
||
FROM #TabJSONData d
|
||
CROSS APPLY OPENJSON (d.doc, '$')
|
||
WITH ( skupzbo NVARCHAR(3), regcis NVARCHAR(30), sarze NVARCHAR(30), paletovyList NVARCHAR(30), mnozstvi NUMERIC(19,6), datazoneId INT) AS u
|
||
OPEN p
|
||
WHILE (1=1)
|
||
BEGIN
|
||
FETCH NEXT FROM p INTO @sz, @rc, @sarze, @paletList, @mnoz, @idPHIdent
|
||
IF (@@FETCH_STATUS<>0) BREAK
|
||
|
||
SET @paletList = ISNULL(@paletList, N'')
|
||
SET @sarze = ISNULL(@sarze, N'')
|
||
|
||
IF (@idDZ IS NULL)
|
||
BEGIN
|
||
EXEC dbo.hp_InsertHlavickyOZ @ident=@idDZ OUT, @Sklad=@sklMat, @DruhPohybu=@dpz, @RadaDokladu=@radaDZVydejka, @CisloOrg=0
|
||
SELECT @datumDZ=DatPorizeni, @menaDZ=Mena, @kurzDZ=Kurz, @kurzEDZ=KurzEuro, @jednM=JednotkaMeny, @vstC=VstupniCena, @parZnak=ParovaciZnak
|
||
FROM dbo.TabDokladyZbozi WHERE ID=@idDZ
|
||
UPDATE dbo.TabDokladyZbozi SET BlokovaniEditoru=0 WHERE ID=@idDZ
|
||
END
|
||
IF (@idDZ IS NOT NULL)
|
||
BEGIN
|
||
SET @idKZ = (SELECT ID FROM dbo.TabKmenZbozi WHERE SkupZbo=@sz AND RegCis=@rc)
|
||
IF (@idKZ IS NOT NULL)
|
||
BEGIN
|
||
SET @idSS = (SELECT ID FROM dbo.TabStavSkladu WHERE IDKmenZbozi=@idKZ AND IDSklad=@sklMat)
|
||
IF (@idSS IS NULL)
|
||
EXEC dbo.hp_InsertStavSkladu @IDKmen=@idKZ, @IDSklad=@sklMat, @IDZboSklad=@idSS OUT
|
||
IF (@idSS IS NOT NULL)
|
||
BEGIN
|
||
EXEC dbo.hp_InsertPolozkyOZ @ident=@idPZ OUT, @IDDoklad=@idDZ, @DruhPohybu=@dpz, @CisloOrg=0, @IDZboSklad=@idSS, @Mena=@menaDZ, @Kurz=@kurzDZ,
|
||
@JednotkaMeny=@jednM, @KurzEuro=@kurzEDZ, @SazbaSD=NULL, @SazbaDPH=NULL, @ZakazanoDPH=0, @VstupniCena=@vstC, @Mnozstvi=@mnoz
|
||
IF (@idPZ IS NOT NULL)
|
||
BEGIN
|
||
UPDATE dbo._hdc_ph_PrijataJsonData SET IdPHIdent=@idPHIdent WHERE ID=@idJson
|
||
IF NOT EXISTS(SELECT 1 FROM dbo.TabPohybyZbozi_EXT WHERE ID=@idPZ)
|
||
INSERT dbo.TabPohybyZbozi_EXT (ID) VALUES (@idPZ)
|
||
|
||
IF (ISNULL(@sarze,N'')=N'')
|
||
SET @sarze = (SELECT _Prevod_PosledniSarze FROM dbo.TabStavSkladu_EXT WHERE ID=@idSS)
|
||
UPDATE dbo.TabPohybyZbozi_EXT SET _HDCAPI_PHident=@idPHIdent, _Vyroba_Sarze=@sarze WHERE ID=@idPZ
|
||
|
||
IF (@paletList<>N'')
|
||
BEGIN
|
||
SET @idVCK = (SELECT ID FROM dbo.TabVyrCK WHERE IDKmenZbozi=@idKZ AND Nazev1=@paletList)
|
||
IF (@idVCK IS NULL)
|
||
EXEC dbo.hp_OZInsertVyrCK @IDVyrCK=@idVCK OUT, @IDKmenZbozi=@idKZ, @Nazev1=@paletList, @Selectem=0
|
||
SET @idVCS = (SELECT ID FROM dbo.TabVyrCS WHERE IDVyrCK=@idVCK AND IDStavSkladu=@idSS AND Nazev1=@paletList)
|
||
IF (@idVCS IS NULL)
|
||
EXEC dbo.hp_OZInsertVyrCS @IDVyrCS=@idVCS OUT, @IDVyrCK=@idVCK, @IDZboSklad=@idSS
|
||
INSERT dbo.TabVyrCP (IDPolozkaDokladu, IDVyrCis, Nazev, Mnozstvi) SELECT @idPZ, @idVCS, @sarze, @mnoz
|
||
END
|
||
|
||
END -- @idPZ IS NOT NULL
|
||
END -- @idSS IS NOT NULL
|
||
END -- @idKZ IS NOT NULL
|
||
END -- @idDZ IS NOT NULL
|
||
|
||
END
|
||
CLOSE p
|
||
DEALLOCATE p
|
||
|
||
IF (@idDZ IS NOT NULL)
|
||
BEGIN
|
||
EXEC dbo.hp_VypCenOZPolozek_IDDokladu @idDZ, 0
|
||
UPDATE dbo.TabDokladyZbozi SET BlokovaniEditoru=NULL WHERE ID=@idDZ
|
||
|
||
|
||
-- musim odepsat i z technologickeho skladu
|
||
EXEC dbo.hp_InsertHlavickyOZ @ident=@idDZDst OUT, @Sklad=@sklTechnicky, @DruhPohybu=@dpz, @RadaDokladu=@radaDZVydejka,
|
||
@Mena=@menaDZ, @CisloOrg=0, @DatumPorizeni=@datumDZ
|
||
IF (@idDZDst IS NOT NULL)
|
||
BEGIN
|
||
IF NOT EXISTS(SELECT 1 FROM dbo.TabDokladyZbozi_EXT WHERE ID=@idDZDst)
|
||
INSERT dbo.TabDokladyZbozi_EXT (ID) VALUES (@idDZDst)
|
||
UPDATE dbo.TabDokladyZbozi_EXT SET _Vyroba_IDPuvodniDoklad=@idDZ WHERE ID=@idDZDst
|
||
SELECT @datReal=DatRealizace FROM dbo.TabDokladyZbozi WHERE ID=@idDZ
|
||
EXEC dbo.hp_generuj_navazny_doklad @IDDokladDst=@idDZDst, @IDDokladSrc=@idDZ, @CisloOrgCil=0, @MUCil=NULL, @MenaCil=@menaDZ,
|
||
@KurzCil=NULL, @JednotkaMenyCil=NULL, @KurzEuroCil=NULL, @CisloZakCil=NULL, @NOkruhCil=NULL,
|
||
@StredNakladCil=NULL, @StredVynosCil=NULL, @FormaDopravyCil=NULL, @VozidloCil=NULL, @ObjednavkaCil=NULL,
|
||
@PopisDodavkyCil=NULL, @NavaznyDobropisCil=NULL, @ZamestnanecCil=NULL, @DodFakCil=NULL, @Nasobek=1,
|
||
@SlevaCil=NULL, @VytvaretDokladovouVazbu=0, @VytvaretPolozkovouVazbu=0, @ChybaSkladana=@errMsg OUT,
|
||
@KopirovaniDokladu=1
|
||
IF EXISTS(SELECT 1 FROM dbo.TabPohybyZbozi WHERE IDDoklad=@idDZDst) AND EXISTS(SELECT 1 FROM dbo.TabDokladyZbozi WHERE Realizovano=1 AND ID=@idDZ)
|
||
EXEC dbo.hp_Realizuj_Vydej @ID=@idDZDst, @DatumRealizace=@datReal, @Uzivatel=0, @Hlidat=0, @BylaChyba=@bChyba OUT, @RealMnoz=1, @RealFin=1
|
||
END
|
||
|
||
|
||
UPDATE dbo._hdc_ph_PrijataJsonData SET DatZpracovani=GETDATE(), IDDoklad=@idDZ WHERE ID=@idJson
|
||
END
|
||
|
||
IF OBJECT_ID(N'tempdb..#TabJSONData', N'U') IS NOT NULL
|
||
DROP TABLE #TabJSONData
|
||
|
||
END -- typ odpis
|
||
|
||
END -- akce: vyroba_spotreba
|
||
-- END: SPOTREBA/ODPIS
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
-- BEGIN: OBJEDNAVKA
|
||
IF (@akce=N'objednavka')
|
||
BEGIN
|
||
-- smaz pomocnou tabulku
|
||
DELETE FROM #TabJSONData
|
||
INSERT #TabJSONData (doc) SELECT @jsonString
|
||
|
||
DELETE FROM @TabPHObj
|
||
|
||
DECLARE p CURSOR LOCAL FOR
|
||
SELECT u2.datazoneId, u3.datazoneId, u2.paletovyList, u2.created, u2.skupzbo, u2.regcis, u3.sarze, u3.mnozstvi, u2.typ, u2.subtyp
|
||
FROM #TabJSONData d
|
||
CROSS APPLY OPENJSON (d.doc, '$')
|
||
WITH ([data] NVARCHAR(MAX) AS JSON) AS u
|
||
CROSS APPLY OPENJSON ([data])
|
||
WITH (typ NVARCHAR(50), subtyp NVARCHAR(50), datazoneId INT, skupzbo NVARCHAR(3), regcis NVARCHAR(30), paletovyList NVARCHAR(50), created DATETIME, items NVARCHAR(MAX) AS JSON) AS u2
|
||
CROSS APPLY OPENJSON (items)
|
||
WITH ( datazoneId INT, heliosId INT, sarze NVARCHAR(30), mnozstvi NUMERIC(19,6) ) AS u3
|
||
OPEN p
|
||
WHILE (1=1)
|
||
BEGIN
|
||
FETCH NEXT FROM p INTO @idPHIdent, @idPHIdent2, @paletList, @datPorizeni, @sz, @rc, @sarze, @mnoz, @typDokum, @subtypDokum
|
||
IF (@@FETCH_STATUS<>0) BREAK
|
||
INSERT dbo._TabVyroba_Objednavky (IDPrijataDataJson, IdPHIdent, IdPHIdent2, SkupZbo, RegCis, PaletovyList, Sarze, Mnozstvi, DatPorizeni)
|
||
SELECT @idJson, @idPHIdent, @idPHIdent2, @sz, @rc, @paletList, @sarze, @mnoz, @datPorizeni
|
||
SET @idPHObj = SCOPE_IDENTITY()
|
||
INSERT @TabPHObj (ID, IDPHIdent) VALUES (@idPHObj, @idPHIdent)
|
||
IF (@typDokum='micharna') AND (@subtypDokum='nocni')
|
||
UPDATE dbo._TabVyroba_Objednavky SET NocniObjednavka=1 WHERE ID=@idPHObj
|
||
END
|
||
CLOSE p
|
||
DEALLOCATE p
|
||
|
||
IF (@typDokum='micharna') AND (@subtypDokum='nocni') AND EXISTS (SELECT 1 FROM @TabPHObj)
|
||
BEGIN
|
||
SET @idDZ = NULL
|
||
SET @prevodka = 1
|
||
SET @radaDZPrevodV = N'231'
|
||
SET @dpz = 4
|
||
|
||
DECLARE p CURSOR LOCAL FOR
|
||
SELECT ID, IDPHIdent FROM @TabPHObj
|
||
OPEN p
|
||
WHILE (1=1)
|
||
BEGIN
|
||
FETCH NEXT FROM p INTO @idPHObj, @idPHIdent
|
||
IF (@@FETCH_STATUS<>0) BREAK
|
||
|
||
IF (@idDZ IS NULL)
|
||
BEGIN
|
||
EXEC dbo.hp_InsertHlavickyOZ @ident=@idDZ OUT, @Sklad=@sklMat, @DruhPohybu=@dpz, @RadaDokladu=@radaDZPrevodV, @CisloOrg=0
|
||
UPDATE dbo.TabDokladyZbozi SET DruhPohybuPrevod=0, TypPrevodky=N'281', IdSkladPrevodu=@sklPek, PrevodRealizovat=1 WHERE ID=@idDZ
|
||
SELECT @menaDZ=Mena, @kurzDZ=Kurz, @kurzEDZ=KurzEuro, @jednM=JednotkaMeny, @vstC=VstupniCena, @parZnak=ParovaciZnak FROM dbo.TabDokladyZbozi WHERE ID=@idDZ
|
||
UPDATE dbo.TabDokladyZbozi SET BlokovaniEditoru=0 WHERE ID=@idDZ
|
||
END
|
||
IF (@idDZ IS NOT NULL)
|
||
BEGIN
|
||
SELECT @sz=SkupZbo, @rc=RegCis, @paletList=PaletovyList, @sarze=Sarze FROM dbo._TabVyroba_Objednavky WHERE ID=@idPHObj
|
||
SET @sarze = ISNULL(@sarze, N'')
|
||
SET @idKZ = (SELECT ID FROM dbo.TabKmenZbozi WHERE SkupZbo=@sz AND RegCis=@rc)
|
||
IF (@idKZ IS NOT NULL)
|
||
BEGIN
|
||
SET @idSS = (SELECT ID FROM dbo.TabStavSkladu WHERE IDKmenZbozi=@idKZ AND IDSklad=@sklMat)
|
||
IF (@idSS IS NULL)
|
||
EXEC dbo.hp_InsertStavSkladu @IDKmen=@idKZ, @IDSklad=@sklMat, @IDZboSklad=@idSS OUT
|
||
IF (@idSS IS NOT NULL)
|
||
BEGIN
|
||
EXEC dbo.hp_InsertPolozkyOZ @ident=@idPZ OUT, @IDDoklad=@idDZ, @DruhPohybu=@dpz, @CisloOrg=0, @IDZboSklad=@idSS, @Mena=@menaDZ, @Kurz=@kurzDZ,
|
||
@JednotkaMeny=@jednM, @KurzEuro=@kurzEDZ, @SazbaSD=NULL, @SazbaDPH=NULL, @ZakazanoDPH=0, @VstupniCena=@vstC, @Mnozstvi=@mnoz
|
||
IF (@idPZ IS NOT NULL)
|
||
BEGIN
|
||
UPDATE dbo.TabPohybyZbozi_EXT SET _HDCAPI_PHident=@idPHIdent WHERE ID=@idPZ
|
||
IF (@@ROWCOUNT=0)
|
||
INSERT dbo.TabPohybyZbozi_EXT (ID, _HDCAPI_PHident) SELECT @idPZ, @idPHIdent
|
||
|
||
IF (@sarze<>N'')
|
||
BEGIN
|
||
IF NOT EXISTS(SELECT 1 FROM dbo.TabKmenZbozi_EXT WHERE ID=@idKZ)
|
||
INSERT dbo.TabKmenZbozi_EXT (ID) SELECT @idKZ
|
||
UPDATE dbo.TabKmenZbozi_EXT SET _Prevod_PosledniSarze=@sarze WHERE ID=@idKZ
|
||
END
|
||
|
||
SET @idVCP = NULL
|
||
IF (@paletList<>N'')
|
||
BEGIN
|
||
SET @idVCK = (SELECT ID FROM dbo.TabVyrCK WHERE IDKmenZbozi=@idKZ AND Nazev1=@paletList)
|
||
IF (@idVCK IS NULL)
|
||
EXEC dbo.hp_OZInsertVyrCK @IDVyrCK=@idVCK OUT, @IDKmenZbozi=@idKZ, @Nazev1=@paletList, @Selectem=0
|
||
SET @idVCS = (SELECT ID FROM dbo.TabVyrCS WHERE IDVyrCK=@idVCK AND IDStavSkladu=@idSS AND Nazev1=@paletList)
|
||
IF (@idVCS IS NULL)
|
||
EXEC dbo.hp_OZInsertVyrCS @IDVyrCS=@idVCS OUT, @IDVyrCK=@idVCK, @IDZboSklad=@idSS
|
||
INSERT dbo.TabVyrCP (IDPolozkaDokladu, IDVyrCis, Nazev, Mnozstvi) SELECT @idPZ, @idVCS, @sarze, @mnoz
|
||
SET @idVCP = SCOPE_IDENTITY()
|
||
END
|
||
INSERT dbo._TabVyroba_Objednavky_Pol (IDHlava, IDDokladOZ, IDPohybOZ, IDVyrCP, Mnozstvi, Sarze)
|
||
SELECT @idPHObj, @idDZ, @idPZ, @idVCP, @mnoz, @paletList
|
||
SET @idPHObjPol = SCOPE_IDENTITY()
|
||
|
||
END -- @idPZ IS NOT NULL
|
||
END -- @idSS IS NOT NULL
|
||
END -- @idKZ IS NOT NULL
|
||
END -- @idDZ IS NOT NULL
|
||
|
||
END
|
||
CLOSE p
|
||
DEALLOCATE p
|
||
|
||
IF (@idDZ IS NOT NULL)
|
||
BEGIN
|
||
UPDATE dbo.TabDokladyZbozi SET BlokovaniEditoru=NULL WHERE ID=@idDZ
|
||
SET @logTyp=3
|
||
SET @logInt=@idDZ
|
||
SET @logStr = @parZnak
|
||
SET @log4Mail = 1
|
||
SET @logText = N'Nelze realizovat v<>dejka no<6E>n<EFBFBD> p<>evodky'
|
||
|
||
SET @aktDatum = GETDATE()
|
||
EXEC dbo.hp_Realizuj_Vydej @ID=@idDZ, @DatumRealizace=@aktDatum, @Uzivatel=0, @Hlidat=0, @BylaChyba=@bChyba OUT
|
||
IF (@bChyba=0)
|
||
BEGIN
|
||
SET @logTyp=0
|
||
SET @logInt=0
|
||
SET @logStr = N''
|
||
SET @log4Mail = 0
|
||
SET @logText = N''
|
||
END
|
||
END
|
||
END -- @subtypDokum='nocni'
|
||
|
||
|
||
UPDATE dbo._hdc_ph_PrijataJsonData SET DatZpracovani=GETDATE(), Blokovano=0 WHERE ID=@idJson
|
||
|
||
END -- akce: objednavka
|
||
-- END: OBJEDNAVKA
|
||
|
||
|
||
|
||
|
||
|
||
|
||
-- BEGIN: ZAHAJENI OPERACE
|
||
IF (@akce=N'vyroba_zacatek')
|
||
BEGIN
|
||
-- smaz pomocnou tabulku
|
||
DELETE FROM #TabJSONData
|
||
INSERT #TabJSONData (doc) SELECT @jsonString
|
||
|
||
IF (1=ISNULL( (SELECT COUNT(ID) FROM dbo.TabCisZam), 0))
|
||
UPDATE dbo._hdc_ph_PrijataJsonData SET CisloZam=(SELECT TOP(1)Cislo FROM dbo.TabCisZam) WHERE ID=@idJson AND CisloZam IS NULL
|
||
ELSE
|
||
UPDATE dbo._hdc_ph_PrijataJsonData SET CisloZam=999999 WHERE ID=@idJson AND CisloZam IS NULL
|
||
|
||
SET @cisZam = NULL
|
||
SET @idZam = NULL
|
||
|
||
SELECT @typDokum=u2.typ, @idVPr=u3.heliosId, @idPHIdent=u2.datazoneId, @idPracoviste=u4.idprac, @idStroj=u4.heliosId, @statusStroje=u3.[status],
|
||
@casStart=u3.zacatek, @sz=u3.skupzbo, @rc=u3.regcis, @idPHIdent2=u4.datazoneId
|
||
FROM #TabJSONData d
|
||
CROSS APPLY OPENJSON (d.doc, '$')
|
||
WITH ([data] NVARCHAR(MAX) AS JSON) AS u
|
||
CROSS APPLY OPENJSON ([data])
|
||
WITH ( typ NVARCHAR(50), prikaz NVARCHAR(MAX) AS JSON, datazoneId INT, stroj NVARCHAR(MAX) AS JSON) AS u2
|
||
CROSS APPLY OPENJSON (prikaz)
|
||
WITH ( heliosId INT, datazoneId INT, skupzbo NVARCHAR(3), regcis NVARCHAR(30), [status] NVARCHAR(20), zacatek DATETIME, konec DATETIME ) AS u3
|
||
CROSS APPLY OPENJSON (stroj)
|
||
WITH ( heliosId INT, datazoneId INT, idprac INT, kod NVARCHAR(20) ) AS u4
|
||
|
||
IF (@cisZam IS NULL)
|
||
SELECT @cisZam=CisloZam FROM dbo._hdc_ph_PrijataJsonData WHERE ID=@idJson
|
||
IF (@cisZam IS NOT NULL)
|
||
SELECT @idZam=ID FROM dbo.TabCisZam WHERE Cislo=@cisZam
|
||
|
||
|
||
IF (@idVPr IS NOT NULL) AND (@idPracoviste IS NOT NULL)
|
||
BEGIN
|
||
-- INSERT dbo._hdc_ph_Log (Typ, LogText, IntValue) SELECT 1, N'Zpracovavam PrijataJsonData jako Vyroba_zacatek', @idJson
|
||
SET @doklPrP = NULL
|
||
SET @altPrP = NULL
|
||
|
||
SELECT @cisloPrikazu = RadaPrikaz FROM dbo.TabPrikaz WHERE ID=@idVPr
|
||
|
||
SET @idStartStopOp = (SELECT ID FROM dbo._TabVyroba_OperaceStartStop WHERE IDPrijataDataJson=@idJson AND IdPHIdent=@idPHIdent)
|
||
IF (@idStartStopOp IS NULL)
|
||
BEGIN
|
||
INSERT dbo._TabVyroba_OperaceStartStop (IDPrijataDataJson, IdPHIdent, IdPHIdent2, IDPrikaz, SkupZbo, RegCis, IDStroj, IDPracoviste, CasStart)
|
||
SELECT @idJson, @idPHIdent, @idPHIdent2, @idVPr, @sz, @rc, @idStroj, @idPracoviste, @casStart
|
||
SET @idStartStopOp = SCOPE_IDENTITY()
|
||
END
|
||
|
||
IF EXISTS (SELECT 1 FROM dbo._TabVyroba_OperaceStartStop WHERE IDPrijataDataJson=@idJson AND IDEvidRozpracOper IS NULL)
|
||
BEGIN
|
||
SELECT @strojPec = Nazev FROM dbo.TabCisStroju WHERE ID=@idStroj
|
||
|
||
SET @doklPrP = NULL
|
||
IF (@sz='701')
|
||
SELECT TOP(1) @doklPrP=Doklad, @altPrP=Alt, @idPracoviste=pracoviste FROM dbo.TabPrPostup
|
||
WHERE IDOdchylkyDo IS NULL AND IDPrikaz=@idVPr AND nazev=N'M<EFBFBD>ch<EFBFBD>n<EFBFBD>'
|
||
|
||
IF (@doklPrP IS NOT NULL)
|
||
BEGIN
|
||
INSERT dbo.TabEvidRozpracOper (IDZamestnance, IDPracoviste, IDStroje, CasZahajeni, Poznamka)
|
||
SELECT @idZam, @idPracoviste, NULL, @casStart, N'M<EFBFBD>ch<EFBFBD>n<EFBFBD> pro stroj ' + ISNULL(@strojPec, N'') + N' *** p<><70>kaz ' + ISNULL(@cisloPrikazu, N'')
|
||
SET @idEvROp = SCOPE_IDENTITY()
|
||
INSERT dbo.TabEvidRozpracOperR (IDEvidRozpracOper, IDPrikaz, DokladPrPostup, AltPrPostup, Mnoz_odv) SELECT @idEvROp, @idVPr, @doklPrP, @altPrP, 1
|
||
UPDATE dbo._TabVyroba_OperaceStartStop SET IDEvidRozpracOper=@idEvROp, DokladPrP=@doklPrP, AltPrP=@altPrP WHERE ID=@idStartStopOp
|
||
UPDATE dbo._hdc_ph_PrijataJsonData SET DatZpracovani=GETDATE(), Blokovano=0, IDEvidRozpOp=@idEvROp WHERE ID=@idJson
|
||
END
|
||
END
|
||
END
|
||
|
||
|
||
END -- akce: vyroba_zacatek
|
||
-- END: ZAHAJENI OPERACE
|
||
|
||
|
||
|
||
|
||
|
||
IF (@tranPred=0) AND (@@TRANCOUNT>0)
|
||
COMMIT TRAN
|
||
END TRY
|
||
BEGIN CATCH
|
||
IF (@tranPred=0) AND (@@TRANCOUNT>0)
|
||
ROLLBACK TRAN
|
||
SET @errMsg = ERROR_PROCEDURE() + N'/r.' + CONVERT(nvarchar, ERROR_LINE()) + N' >> ' + 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
|