Prvni verze
This commit is contained in:
137
_custom/Rootvin/sql/ep_P01_HDCDZApi1.sql
Normal file
137
_custom/Rootvin/sql/ep_P01_HDCDZApi1.sql
Normal file
@ -0,0 +1,137 @@
|
||||
-- dbo.ep_P01_HDCDZApi1
|
||||
CREATE PROCEDURE dbo.ep_P01_HDCDZApi1
|
||||
@IDDoklad INT
|
||||
AS
|
||||
|
||||
-- HD Consulting Strakonice, T. Buzin
|
||||
-- !! proceduru neupravujte, bude stejne pregenerovana pri startu Windows sluzby HDCDZApi !!
|
||||
-- vola se na konci procesu realizace prijemky (po uskutecneni prijmu ale pred konecnym COMMIT TRAN)
|
||||
-- nastaveni skladu lze ovlivnit pres #TabDefiniceProP01 (HlavniSkladMat NVARCHAR(30), TechnologickySklad NVARCHAR(30), SkladVyrobaPekarna NVARCHAR(30) )
|
||||
|
||||
|
||||
SET NOCOUNT ON
|
||||
|
||||
|
||||
DECLARE
|
||||
@tranPred INT,
|
||||
@cnt INT,
|
||||
@errMsg NVARCHAR(500),
|
||||
@bChyba BIT,
|
||||
@iChyba INT
|
||||
|
||||
DECLARE
|
||||
@sklHlavni NVARCHAR(30),
|
||||
@sklTechnolog NVARCHAR(30),
|
||||
@sklPekarna NVARCHAR(30),
|
||||
@sklPrijem NVARCHAR(30)
|
||||
|
||||
DECLARE
|
||||
@sklDokl NVARCHAR(30),
|
||||
@radaDokl NVARCHAR(3),
|
||||
@cOrg INT,
|
||||
@idDZDst INT,
|
||||
@dpz TINYINT,
|
||||
@dzMena NVARCHAR(3),
|
||||
@dzDatum DATETIME,
|
||||
@datReal DATETIME,
|
||||
@vyrCis NVARCHAR(100),
|
||||
@nazevVyrCis NVARCHAR(100),
|
||||
@poslVyrCis NVARCHAR(100),
|
||||
@idVCK INT,
|
||||
@idVCS INT,
|
||||
@idVCP INT,
|
||||
@idPZ INT,
|
||||
@idZboSklad INT,
|
||||
@idKZ INT
|
||||
|
||||
|
||||
|
||||
|
||||
SELECT @radaDokl=RadaDokladu, @cOrg=CisloOrg, @sklDokl=IDSklad, @dpz=DruhPohybuZbo, @dzMena=Mena, @dzDatum=DatPorizeni
|
||||
FROM dbo.TabDokladyZbozi WHERE ID=@IDDoklad
|
||||
|
||||
|
||||
|
||||
-- zapis posledni prevedene sarze
|
||||
IF (@radaDokl=N'281') AND (@sklDokl=@sklPekarna) // prijemka/prevodka na pekarnu
|
||||
BEGIN
|
||||
DECLARE p CURSOR LOCAL FOR
|
||||
SELECT p.ID, p.IDZboSklad
|
||||
FROM dbo.TabPohybyZbozi p
|
||||
INNER JOIN dbo.TabStavSkladu s ON (s.ID=p.IDZboSklad)
|
||||
INNER JOIN dbo.TabKmenZbozi k ON (k.ID=s.IDKmenZbozi)
|
||||
WHERE p.IDDoklad=@IDDoklad
|
||||
AND k.Sluzba=0
|
||||
ORDER BY p.Poradi
|
||||
OPEN p
|
||||
WHILE (1=1)
|
||||
BEGIN
|
||||
FETCH NEXT FROM p INTO @idPZ, @idZboSklad
|
||||
IF (@@FETCH_STATUS<>0) BREAK
|
||||
|
||||
SET @poslVyrCis = N''
|
||||
DECLARE v CURSOR LOCAL FOR
|
||||
SELECT ID, Nazev
|
||||
FROM dbo.TabVyrCP
|
||||
WHERE IDPolozkaDokladu=@idPZ
|
||||
AND TRIM(ISNULL(Nazev,N''))<>N''
|
||||
ORDER BY ID
|
||||
OPEN v
|
||||
WHILE (1=1)
|
||||
BEGIN
|
||||
FETCH NEXT FROM v INTO @idVCP, @vyrCis
|
||||
IF (@@FETCH_STATUS<>0) BREAK
|
||||
SET @poslVyrCis = @vyrCis
|
||||
END
|
||||
CLOSE v
|
||||
DEALLOCATE v
|
||||
|
||||
IF (@poslVyrCis<>N'')
|
||||
BEGIN
|
||||
IF NOT EXISTS(SELECT 1 FROM dbo.TabStavSkladu_EXT WHERE ID=@idZboSklad)
|
||||
INSERT dbo.TabStavSkladu_EXT (ID) VALUES (@idZboSklad)
|
||||
UPDATE dbo.TabStavSkladu_EXT SET _Prevod_PosledniSarze=@poslVyrCis WHERE ID=@idZboSklad
|
||||
END
|
||||
|
||||
END
|
||||
CLOSE p
|
||||
DEALLOCATE p
|
||||
END -- @radaDokl 281
|
||||
|
||||
|
||||
|
||||
|
||||
-- kopie prevodkove prijemky ze skladu materialu na sklad Vyroba/Pekarna
|
||||
-- na "zrcadlovy" technologicky sklad (neni uctovany), ktery slouzi jen pro vydejky z Vyrobnich prikazu
|
||||
-- z tech se denne generuje sumacni na hlavnim sklade
|
||||
IF OBJECT_ID(N'tempdb..#TabDefiniceProP01', N'U') IS NOT NULL
|
||||
SELECT TOP(1) @sklHlavni=HlavniSkladMat, @sklPekarna=SkladVyrobaPekarna, @sklTechnolog=TechnologickySklad FROM #TabDefiniceProP01
|
||||
IF (@sklHlavni IS NULL)
|
||||
SELECT @sklHlavni=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<4E><45>%'
|
||||
IF (@sklTechnolog IS NULL)
|
||||
SELECT @sklTechnolog=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'Technologick<EFBFBD> sklad%v<>dej%'
|
||||
IF (@sklPekarna IS NULL)
|
||||
SELECT @sklPekarna=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'V<EFBFBD>roba - Pek<65>rna'
|
||||
|
||||
|
||||
-- jen prijemka/prevodka na sklad Pekarna (211)
|
||||
IF (@dpz=0) AND (@radaDokl IN (N'281')) AND (@sklDokl=@sklPekarna) AND (@sklTechnolog IS NOT NULL)
|
||||
BEGIN
|
||||
EXEC dbo.hp_InsertHlavickyOZ @ident=@idDZDst OUT, @Sklad=@sklTechnolog, @DruhPohybu=@dpz, @RadaDokladu=@radaDokl,
|
||||
@Mena=@dzMena, @CisloOrg=@cOrg, @DatumPorizeni=@dzDatum
|
||||
IF (@idDZDst IS NOT NULL)
|
||||
BEGIN
|
||||
SELECT @datReal=DatRealizace FROM dbo.TabDokladyZbozi WHERE ID=@IDDoklad
|
||||
EXEC dbo.hp_generuj_navazny_doklad @IDDokladDst=@idDZDst, @IDDokladSrc=@IDDoklad, @CisloOrgCil=@cOrg, @MUCil=NULL, @MenaCil=@dzMena,
|
||||
@KurzCil=NULL, @JednotkaMenyCil=NULL, @KurzEuroCil=NULL, @CisloZakCil=NULL, @NOkruhCil=NULL,
|
||||
@StredNakladCil=NULL, @StredVynosCil=NULL, @FormaDopravyCil=NULL, @VozidloCil=NULL, @ObjednavkaCil=NULL,
|
||||
@PopisDodavkyCil=NULL, @NavaznyDobropisCil=NULL, @ZamestnanecCil=NULL, @DodFakCil=NULL, @Nasobek=1,
|
||||
@SlevaCil=NULL, @VytvaretDokladovouVazbu=0, @VytvaretPolozkovouVazbu=0, @ChybaSkladana=@errMsg OUT,
|
||||
@KopirovaniDokladu=1
|
||||
IF EXISTS(SELECT 1 FROM dbo.TabPohybyZbozi WHERE IDDoklad=@idDZDst)
|
||||
EXEC dbo.hp_Realizuj_Prijem @ID=@idDZDst, @DatumRealizace=@datReal, @Uzivatel=0, @BylaChyba=@bChyba OUT, @VypnoutUpozorneniPriZajistovani=1
|
||||
END
|
||||
|
||||
END -- prijmka radaDokl 281, prijemkovy sklad Vyroba pekarna ci podobny, technologicky sklad vyplneny
|
||||
Reference in New Issue
Block a user