120 lines
4.1 KiB
Transact-SQL
120 lines
4.1 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 @sarze = ISNULL(@sarze, N'')
|
|
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
|
|
|
|
IF NOT EXISTS (SELECT 1 FROM dbo.TabPohybyZbozi_EXT WHERE ID=@idPZ)
|
|
INSERT dbo.TabPohybyZbozi_EXT (ID) VALUES (@idPZ)
|
|
UPDATE dbo.TabPohybyZbozi_EXT SET _HDCAPI_PHident=@idPHIdent2 WHERE ID=@idPZ -- jednoznacna identifikace, @idPHIdent je pro dotaz na stejnou polozku stejny, @idPHIdent2 podle sarzi
|
|
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, PaletovyList, Sarze)
|
|
SELECT @idPol, @idDokladOZDst, @idPZ, @idVCP, @mnoz, @paletList, @sarze
|
|
|
|
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
|