-- dbo.ep_V01_HDC1 CREATE PROCEDURE dbo.ep_V01_HDC1 @IDDoklad INT=NULL AS SET NOCOUNT ON -- HD Consulting Strakonice, T. Buzin -- !! proceduru neupravujte, bude stejne pregenerovana pri startu pluginu pro pekarnu nebo Windows sluzby HDCDZApi !! -- doplněk realizace skladových výdejů. Volá se na konci procesu realizace výdejů. Vstupní parametr ID dokladu, výstup není. IF (@IDDoklad IS NULL) -- jistota je jistota RETURN DECLARE @errMsg NVARCHAR(500), @iTemp INT, @bChyba BIT, @iChyba INT DECLARE @rada NVARCHAR(3), @dpz TINYINT, @idSklad NVARCHAR(30), @radaPrev NVARCHAR(3), @idSkladPrev NVARCHAR(30), @sklMatHlavni NVARCHAR(30)=N'311', @sklPekarna NVARCHAR(30)=N'211', @sklTechnolog NVARCHAR(30), @paletList NVARCHAR(100), @sarze NVARCHAR(100), @siloMouka SMALLINT, @idPZ INT, @idPZNew INT IF OBJECT_ID(N'tempdb..#TabExtKom', N'U') IS NULL CREATE TABLE #TabExtKom (Typ TINYINT, Poznamka NVARCHAR(255) ) IF OBJECT_ID(N'tempdb..#HDCTabDefiniceProV01', N'U') IS NOT NULL SELECT TOP(1) @sklMatHlavni=HlavniSkladMat, @sklPekarna=SkladVyrobaPekarna, @sklTechnolog=TechnologickySklad FROM #HDCTabDefiniceProV01 IF (@sklMatHlavni IS NULL) SELECT @sklMatHlavni=Cislo FROM dbo.TabStrom WHERE Nazev=N'Hlavní sklad - Materiál' IF (@sklTechnolog IS NULL) SELECT @sklTechnolog=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'Technolog%neúč%' AND CisloStr LIKE N'2%' IF (@sklPekarna IS NULL) SELECT @sklPekarna=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'Výroba - Pekárna' DROP TABLE IF EXISTS #HDCTabDefiniceProV01 SELECT @rada=RadaDokladu, @idSklad=IDSklad, @dpz=DruhPohybuZbo, @idSkladPrev=IdSkladPrevodu, @radaPrev=TypPrevodky FROM dbo.TabDokladyZbozi WHERE ID=@IDDoklad -- pri prevodce na polozky nasledujici prijemky zapis sarzi/paletovy list/cislo sila u mouky IF (@rada=N'231') AND (@idSklad=@sklMatHlavni) AND (@radaPrev=N'281') AND (@idSkladPrev=@sklPekarna) BEGIN DECLARE c CURSOR LOCAL FOR SELECT p.ID, pe._Vyroba_Sarze, pe._Vyroba_PaletList, pe._Mouka_Silo FROM dbo.TabPohybyZbozi p INNER JOIN dbo.TabPohybyZbozi_EXT pe ON (pe.ID=p.ID) INNER JOIN dbo.TabDokladyZbozi d ON (d.ID=p.IDDoklad) WHERE p.IDDoklad=@IDDoklad AND d.RadaDokladu=N'231' OPEN c WHILE (1=1) BEGIN FETCH NEXT FROM c INTO @idPZ, @sarze, @paletList, @siloMouka IF (@@FETCH_STATUS<>0) BREAK -- dohledej polozku "protilehle" prijemky SET @idPZNew = (SELECT TOP(1) p.ID FROM dbo.TabPohybyZbozi p INNER JOIN dbo.TabDokladyZbozi d ON (d.ID=p.IDDoklad) WHERE d.RadaDokladu=N'281' AND d.DruhPohybuZbo=0 AND p.IDOldPolozka=@idPZ) IF (@idPZNew IS NOT NULL) BEGIN IF NOT EXISTS(SELECT 1 FROM dbo.TabPohybyZbozi_EXT WHERE ID=@idPZNew) INSERT dbo.TabPohybyZbozi_EXT (ID) VALUES (@idPZNew) UPDATE dbo.TabPohybyZbozi_EXT SET _Vyroba_Sarze=@sarze, _Vyroba_PaletList=@paletList, _Mouka_Silo=@siloMouka WHERE ID=@idPZNew END END CLOSE c DEALLOCATE c END -- vydejka/prevodka 231 z hlavniho skladu na pekarnu