Files
Rootvin-pluginHDCRTN/_sql/ep_HDC_PZ_ZapisPolozek.sql
2025-05-21 21:06:33 +02:00

118 lines
3.9 KiB
Transact-SQL

-- dbo.ep_HDC_PZ_ZapisPolozek
CREATE PROCEDURE dbo.ep_HDC_PZ_ZapisPolozek
@typ INT,
@idDokladOZDst INT=NULL
AS
SET NOCOUNT ON
DECLARE
@idPol INT,
@idPHIdent INT,
@idPHIdent2 INT,
@sz NVARCHAR(3),
@rc NVARCHAR(30),
@idKmen INT,
@idStav INT,
@idPZ INT,
@idVCK INT,
@idVCS INT,
@idVCP INT,
@sklad NVARCHAR(30),
@mnoz NUMERIC(19,6),
@paletList NVARCHAR(50),
@sarze NVARCHAR(50)
DECLARE
@dpz TINYINT,
@cisOrg INT,
@vstC TINYINT,
@jednM INT,
@dzMena NVARCHAR(3),
@dzKurz NUMERIC(19,6),
@dzKurzE NUMERIC(19,6)
IF OBJECT_ID(N'tempdb..#TabTempUziv', N'U') IS NULL
CREATE TABLE #TabTempUziv (Tabulka NVARCHAR(255) NOT NULL, SCOPE_IDENTITY INT NULL, Datum DATETIME NULL)
IF (@typ=1) -- zapis z dbo._TabVyroba_Objednavky do dokladu výdejky
BEGIN
IF (@idDokladOZDst IS NULL)
RETURN
IF OBJECT_ID(N'tempdb..#TabZapisPolozekOZ', N'U') IS NULL
RETURN
SELECT @cisOrg=CisloOrg, @dpz=DruhPohybuZbo, @vstC=VstupniCena, @jednM=JednotkaMeny, @dzMena=Mena, @dzKurz=Kurz, @dzKurzE=KurzEuro, @sklad=IDSklad
FROM dbo.TabDokladyZbozi WHERE ID=@idDokladOZDst
DECLARE c CURSOR LOCAL FOR
SELECT IDPolozky FROM #TabZapisPolozekOZ ORDER BY ID
OPEN c
WHILE (1=1)
BEGIN
FETCH NEXT FROM c INTO @idPol
IF (@@FETCH_STATUS<>0) BREAK
SELECT @idPHIdent=IdPHIdent, @idPHIdent2=IdPHIdent2, @idKmen=IDKmenZbozi, @sz=SkupZbo, @rc=RegCis, @mnoz=Mnozstvi, @paletList=PaletovyList, @sarze=Sarze
FROM dbo._TabVyroba_Objednavky WHERE ID=@idPol
SET @paletList = ISNULL(@paletList, N'')
IF (@idKmen IS NOT NULL)
BEGIN
SET @idStav = (SELECT ID FROM dbo.TabStavSkladu WHERE IDSklad=@sklad AND IDKmenZbozi=@idKmen)
IF (@idStav IS NULL)
EXEC dbo.hp_InsertStavSkladu @IDKmen=@idKmen, @IDSklad=@sklad, @IDZboSklad=@idStav OUT
IF (@idStav IS NOT NULL)
BEGIN
EXEC dbo.hp_InsertPolozkyOZ @Ident=@idPZ OUT, @IDDoklad=@idDokladOZDst, @DruhPohybu=@dpz, @CisloOrg=@cisOrg, @IDZboSklad=@idStav, @Mena=@dzMena, @Kurz=@dzKurz, @KurzEuro=@dzKurzE,
@JednotkaMeny=@jednM, @SazbaSD=NULL, @SazbaDPH=NULL, @ZakazanoDPH=NULL, @VstupniCena=@vstC, @Mnozstvi=@mnoz, @PovolitDuplicitu=1
IF (@idPZ IS NOT NULL)
BEGIN
UPDATE dbo._TabVyroba_Objednavky SET Blokovano=1 WHERE ID=@idPol
UPDATE dbo.TabPohybyZbozi_EXT SET _HDCAPI_PHident=@idPol WHERE ID=@idPZ
IF (@@ROWCOUNT=0)
INSERT dbo.TabPohybyZbozi_EXT (ID, _HDCAPI_PHident) SELECT @idPZ, @idPol
UPDATE dbo.TabPohybyZbozi_EXT SET _Vyroba_Sarze=@sarze, _Vyroba_PaletList=@paletList WHERE ID=@idPZ
/*
SET @idVCK=(SELECT ID FROM dbo.TabVyrCK WHERE IDKmenZbozi=@idKmen AND Nazev1=@paletList)
IF (@idVCK IS NULL)
EXEC dbo.hp_OZInsertVyrCK @IDVyrCK=@idVCK OUT, @IDKmenZbozi=@idKmen, @Selectem=0, @Nazev1=@paletList
IF (@idVCK IS NOT NULL)
BEGIN
SET @idVCS = (SELECT ID FROM dbo.TabVyrCS WHERE IDVyrCK=@idVCK AND IDStavSkladu=@idStav AND Nazev1=@paletList)
IF (@idVCS IS NULL)
EXEC dbo.hp_OZInsertVyrCS @IDVyrCS=@idVCS OUT, @IDVyrCK=@idVCK, @IDZboSklad=@idStav, @Nazev1=@paletList
IF (@idVCS IS NOT NULL)
BEGIN
INSERT dbo.TabVyrCP (IDPolozkaDokladu, IDVyrCis, Nazev, Mnozstvi) SELECT @idPZ, @idVCS, @sarze, @mnoz
SET @idVCP = SCOPE_IDENTITY()
END
END -- @idVCK
*/
INSERT dbo._TabVyroba_Objednavky_Pol (IDHlava, IDDokladOZ, IDPohybOZ, IDVyrCP, Mnozstvi, Sarze) VALUES (@idPol, @idDokladOZDst, @idPZ, @idVCP, @mnoz, @paletList)
END -- @idPZ
END -- @idStav
END -- @idKmen
UPDATE dbo._TabVyroba_Objednavky SET Blokovano=0,
MnozKVydeji=Mnozstvi - ISNULL( (SELECT SUM(Mnozstvi) FROM dbo._TabVyroba_Objednavky_Pol WHERE IDHlava=@idPol), 0)
WHERE ID=@idPol
END
CLOSE c
DEALLOCATE c
END