-- 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