Prvni verze
This commit is contained in:
93
_sql/ep_V01_HDC1.sql
Normal file
93
_sql/ep_V01_HDC1.sql
Normal file
@ -0,0 +1,93 @@
|
||||
-- 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<6C>k realizace skladov<6F>ch v<>dej<65>. Vol<6F> se na konci procesu realizace v<>dej<65>. Vstupn<70> parametr ID dokladu, v<>stup nen<65>.
|
||||
|
||||
|
||||
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<EFBFBD> sklad - Materi<72>l'
|
||||
IF (@sklTechnolog IS NULL)
|
||||
SELECT @sklTechnolog=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'Technolog%ne<6E><65>%' AND CisloStr LIKE N'2%'
|
||||
IF (@sklPekarna IS NULL)
|
||||
SELECT @sklPekarna=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'V<EFBFBD>roba - Pek<65>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
|
||||
|
||||
Reference in New Issue
Block a user