Dalsi zmeny
This commit is contained in:
@ -6,7 +6,7 @@ CREATE PROCEDURE dbo.ep_Vyroba_GenOdvodZeMzdy
|
||||
@skladOdvod NVARCHAR(30)=NULL,
|
||||
@realizujPrijem BIT=0,
|
||||
@prevodDoVyssiho BIT=0,
|
||||
@kopiiNaTechSklad BIT=0,
|
||||
@kopiiNaTechSklad BIT=1,
|
||||
@errMsg NVARCHAR(500)=N'' OUT
|
||||
AS
|
||||
|
||||
@ -18,37 +18,83 @@ AS
|
||||
|
||||
SET NOCOUNT ON
|
||||
|
||||
IF EXISTS(SELECT 1 FROM dbo.TabPrikazMzdyAZmetky WHERE GenerovanoOdvadeni=1 AND ID=@IDMzdy)
|
||||
RETURN
|
||||
|
||||
|
||||
DECLARE
|
||||
@iTemp INT,
|
||||
@aktDatum DATETIME=GETDATE(),
|
||||
@datPrijem DATETIME,
|
||||
@bChyba BIT,
|
||||
@ret INT,
|
||||
@cnt INT,
|
||||
@jeOdvOper BIT=0,
|
||||
@idUziv INT,
|
||||
@IDPrikaz INT,
|
||||
@IDZakazModif INT,
|
||||
@IDPrikazVyssi INT,
|
||||
@doklPrPostup INT,
|
||||
@altPrPostup NCHAR(1),
|
||||
@doklKV INT,
|
||||
@IDKmen INT,
|
||||
@mjEvid NVARCHAR(10),
|
||||
@jeFinal BIT=0,
|
||||
@idPZ INT,
|
||||
@idPZOld INT,
|
||||
@idPZOld2 INT,
|
||||
@idPZSberna INT,
|
||||
@idSS INT,
|
||||
@idVCS INT,
|
||||
@idVCP INT,
|
||||
@idVPrVC INT,
|
||||
@vc NVARCHAR(100),
|
||||
@NekontrolMnozOdvedFinal BIT=0,
|
||||
@mnozstvi NUMERIC(19,6)=0,
|
||||
@mnozstviKA NUMERIC(19,6)=0,
|
||||
@radaOdvNaSklad NVARCHAR(3)=N'273',
|
||||
@sklProOdvod NVARCHAR(30)=N'261',
|
||||
@sklProOdvodHV NVARCHAR(30)=N'262',
|
||||
@sklProPolo NVARCHAR(30)=N'311',
|
||||
@sklProFinal NVARCHAR(30)=N'312',
|
||||
@sklPrijem NVARCHAR(30),
|
||||
@radaVPr NVARCHAR(10),
|
||||
@idPrij INT,
|
||||
@idPrijOld INT,
|
||||
@idPrijSberna INT,
|
||||
@uklidPomocTab BIT,
|
||||
@idPrijKopie INT,
|
||||
@sklTechnicky NVARCHAR(30),
|
||||
@sklTechnolog NVARCHAR(30),
|
||||
@sklTechnologHV NVARCHAR(30),
|
||||
@dpz TINYINT,
|
||||
@cOrg INT,
|
||||
@dzDatum DATETIME,
|
||||
@dzMena NVARCHAR(3)
|
||||
@dzMena NVARCHAR(3),
|
||||
@dzKurz NUMERIC(19,6),
|
||||
@dzKurzE NUMERIC(19,6),
|
||||
@vstC TINYINT,
|
||||
@jednM INT
|
||||
DECLARE
|
||||
@idDZPomocPrijem INT,
|
||||
@idPZPomocPrijem INT,
|
||||
@idSSPomocPrijem INT,
|
||||
@mnozPrijem NUMERIC(19,6)
|
||||
@mnozPrijem NUMERIC(19,6),
|
||||
@idPalety INT,
|
||||
@paletList NVARCHAR(100),
|
||||
@sarze NVARCHAR(30)
|
||||
DECLARE
|
||||
@ksOdv NUMERIC(19,6),
|
||||
@ksOdv_ks NUMERIC(19,6),
|
||||
@idDavkaPomoc INT,
|
||||
@mnozDavkaPomoc NUMERIC(19,6)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
SET @uklidPomocTab = 0
|
||||
|
||||
SELECT @jeOdvOper=pp.Odvadeci
|
||||
FROM dbo.TabPrikazMzdyAZmetky pmz
|
||||
INNER JOIN dbo.TabPrPostup pp ON (pp.IDPrikaz=pmz.IDPrikaz AND pp.Doklad=pmz.DokladPrPostup AND pp.Alt=pmz.AltPrPostup AND pp.IDOdchylkyDo IS NULL)
|
||||
@ -59,24 +105,37 @@ IF (@jeOdvOper=0)
|
||||
|
||||
|
||||
|
||||
IF OBJECT_ID(N'dbo.TabUserCfg', N'U') IS NOT NULL
|
||||
IF OBJECT_ID(N'dbo.TabUserCfg', 'U') IS NOT NULL
|
||||
SET @idUziv = (SELECT ID FROM dbo.TabUserCfg WHERE LoginName=SUSER_SNAME())
|
||||
SET @idUziv = ISNULL(@idUziv, 0)
|
||||
|
||||
|
||||
-- CREATE TABLE #HDCTabGenOdvodZeMzdyKonfig (RadaOdvodNaSklad NVARCHAR(3), SkladProOdvod NVARCHAR(30), BezVyrobnichCisel BIT=0, IDUziv INT)
|
||||
IF OBJECT_ID(N'tempdb..#HDCTabGenOdvodZeMzdyKonfig', N'U') IS NOT NULL
|
||||
IF OBJECT_ID(N'tempdb..#HDCTabGenOdvodZeMzdyKonfig', 'U') IS NOT NULL
|
||||
SELECT TOP(1) @radaOdvNaSklad=ISNULL(RadaOdvodNaSklad, @radaOdvNaSklad), @sklProOdvod=ISNULL(SkladProOdvod, @sklProOdvod),
|
||||
@bezVyrCis=ISNULL(BezVyrobnichCisel, @bezVyrCis), @idUziv=ISNULL(IDUziv, @idUziv)
|
||||
FROM #HDCTabGenOdvodZeMzdyKonfig
|
||||
|
||||
|
||||
IF (@sklTechnicky IS NULL)
|
||||
SELECT @sklTechnicky=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'Technolog%NE<EFBFBD><EFBFBD>%'
|
||||
SELECT @sklTechnicky=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'Technolog%NE%' AND Nazev NOT LIKE N'%polotov%' AND Nazev NOT LIKE N'%HV%' AND CisloStr LIKE N'2%'
|
||||
IF (@sklTechnicky IS NULL)
|
||||
SELECT @sklTechnicky=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'Technolog%sklad%v<>dej%'
|
||||
|
||||
|
||||
IF (@sklTechnolog IS NULL)
|
||||
SELECT @sklTechnolog=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'Technolog%NE%' AND Nazev NOT LIKE N'%polotov%' AND Nazev NOT LIKE N'%HV%' AND CisloStr LIKE N'2%'
|
||||
IF (@sklTechnolog IS NULL)
|
||||
SET @sklTechnolog = N'261'
|
||||
IF (@sklTechnologHV IS NULL)
|
||||
SELECT @sklTechnologHV=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'Technolog%NE%' AND Nazev LIKE N'%HV%' AND CisloStr LIKE N'2%'
|
||||
IF (@sklTechnologHV IS NULL)
|
||||
SET @sklTechnologHV = N'262'
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS #TabOdved
|
||||
CREATE TABLE #TabOdved (
|
||||
@ -138,11 +197,9 @@ CREATE TABLE #TabGenPrijem (ID INT NOT NULL, PRIMARY KEY(ID))
|
||||
|
||||
|
||||
|
||||
IF EXISTS(SELECT 1 FROM dbo.TabPrikazMzdyAZmetky WHERE GenerovanoOdvadeni=1 AND ID=@IDMzdy)
|
||||
RETURN
|
||||
|
||||
|
||||
SELECT @mnozstvi=kusy_odv FROM dbo.TabPrikazMzdyAZmetky WHERE ID=@IDMzdy
|
||||
SELECT @mnozstvi=kusy_odv, @doklPrPostup=DokladPrPostup, @altPrPostup=AltPrPostup FROM dbo.TabPrikazMzdyAZmetky WHERE ID=@IDMzdy
|
||||
SET @mnozstviKA = 0
|
||||
|
||||
UPDATE dbo.TabPrikazMzdyAZmetky SET GenerovanoOdvadeni=1 WHERE ID=@IDMzdy
|
||||
IF (@@ROWCOUNT=0) RETURN
|
||||
@ -155,6 +212,19 @@ SELECT @IDPrikaz=IDPrikaz FROM dbo.TabPrikazMzdyAZmetky WHERE ID=@IDMzdy
|
||||
SELECT @radaVPr=Rada, @IDKmen=IDTabKmen, @IDZakazModif=IDZakazModif, @IDPrikazVyssi=IDPrikazVyssi
|
||||
FROM dbo.TabPrikaz WHERE ID=@IDPrikaz
|
||||
|
||||
|
||||
SELECT @mjEvid=MJEvidence FROM dbo.TabKmenZbozi WHERE ID=@IDKmen
|
||||
IF (@mjEvid=N'KA')
|
||||
SET @mnozstviKA = @mnozstvi
|
||||
|
||||
|
||||
SET @jeFinal = 0
|
||||
IF EXISTS (SELECT 1 FROM dbo.TabParKmZ WHERE IDKmenZbozi=@IDKmen AND TypDilce=0)
|
||||
SET @jeFinal = 1
|
||||
|
||||
|
||||
|
||||
|
||||
-- nastav sklad pro odvod podle karty
|
||||
IF (@sklProOdvod IS NULL)
|
||||
SELECT @sklProOdvod=VychoziSklad FROM dbo.TabParKmZ WHERE IDKmenZbozi=@IDKmen
|
||||
@ -167,8 +237,24 @@ SELECT @radaOdvNaSklad=CASE WHEN RadaDokl_OdvedeniPrikazu IS NULL THEN @radaOdvN
|
||||
|
||||
IF (@radaOdvod IS NOT NULL)
|
||||
SET @radaOdvNaSklad=@radaOdvod
|
||||
IF (@skladOdvod IS NOT NULL)
|
||||
SET @sklProOdvod = @skladOdvod
|
||||
|
||||
/*
|
||||
IF (@skladOdvod IS NULL)
|
||||
BEGIN
|
||||
SET @sklProOdvod = @sklProPolo
|
||||
IF (@jeFinal=1)
|
||||
SET @sklProOdvod = @sklProFinal
|
||||
END
|
||||
ELSE
|
||||
SET @sklProOdvod = @skladOdvod
|
||||
*/
|
||||
|
||||
IF (@jeFinal=1)
|
||||
SET @sklProOdvod = @sklTechnologHV
|
||||
ELSE
|
||||
SET @sklProOdvod = @sklTechnolog
|
||||
|
||||
|
||||
|
||||
|
||||
UPDATE #tabOdved SET mnozstvi=CASE WHEN @NekontrolMnozOdvedFinal=0 AND mnozstvi+@mnozstvi>maxMnozstvi THEN maxMnozstvi ELSE mnozstvi+@mnozstvi END WHERE IDPrikaz=@IDPrikaz
|
||||
@ -203,6 +289,8 @@ DELETE #TabVyrCisProGenOdv WHERE IDOdvedeni IN (SELECT O2.ID FROM #tabOdved O2
|
||||
DELETE #TabPolotovProGenOdv WHERE IDOdvedeni IN (SELECT O2.ID FROM #tabOdved O2 WHERE O2.Mnozstvi<=0.0)
|
||||
DELETE #tabOdved WHERE Mnozstvi<=0.0
|
||||
|
||||
SELECT @iTemp = 1 + ISNULL( (SELECT MAX(ID) FROM dbo.TabVyrCP), 0)
|
||||
DBCC CHECKIDENT (TabVyrCP, RESEED, @iTemp)
|
||||
|
||||
IF (@sklProOdvod IS NOT NULL)
|
||||
UPDATE #tabOdved SET Sklad=@sklProOdvod
|
||||
@ -217,6 +305,7 @@ IF (@bezVyrCis=1)
|
||||
IF (@prevodDoVyssiho=0)
|
||||
BEGIN
|
||||
BEGIN TRY
|
||||
-- pozor, nelze predem zadat do jake prijemky polozky odvodu generovat, vzdy se generuje nova, o prevedeni polozek se postarame nize
|
||||
EXEC @ret=dbo.hp_OdvedeniPrikazu @RadaDokladu=@radaOdvNaSklad, @IDObdobi=NULL, @KonecneOdvedeni=0, @DatPorizeni=NULL, @SekejZakazky=1, @SekejPrikazy=1
|
||||
END TRY
|
||||
BEGIN CATCH
|
||||
@ -227,15 +316,16 @@ IF (@prevodDoVyssiho=0)
|
||||
BEGIN
|
||||
IF (@IDPrikazVyssi IS NOT NULL)
|
||||
BEGIN
|
||||
IF OBJECT_ID(N'tempdb..#TabOdved_IDMzdy', N'U') IS NOT NULL
|
||||
IF OBJECT_ID(N'tempdb..#TabOdved_IDMzdy', 'U') IS NOT NULL
|
||||
DELETE FROM #TabOdved_IDMzdy
|
||||
INSERT #TabOdved_IDMzdy (IDPrikaz, IDMzdy) SELECT @idPrikaz, @idMzdy
|
||||
|
||||
SET @doklKV = (SELECT ID FROM dbo.TabPrKVazby WHERE IDPrikaz=@IDPrikazVyssi AND nizsi=@IDKmen AND IDOdchylkyDo IS NULL)
|
||||
|
||||
-- @idPZ je TabPrikazPrevodPolotov.ID
|
||||
EXEC @idPZ=dbo.hp_OdvedeniPrikazuPrevodem @DatPripadu=@aktDatum, @KonecneOdvedeniNatvrdo=0, @IDPrikazZdroj=@idPrikaz, @IDPrikazCil=@IDPrikazVyssi,
|
||||
@Doklad=@doklKV, @IDDilec=@IDKmen, @mnozstvi=@mnozstvi, @IDOdvedeniVC=0, @IDZakazModif=@IDZakazModif
|
||||
IF OBJECT_ID(N'tempdb..#TabGenPrijem', N'U') IS NOT NULL
|
||||
IF OBJECT_ID(N'tempdb..#TabGenPrijem', 'U') IS NOT NULL
|
||||
DELETE FROM #TabGenPrijem
|
||||
END -- @IDPrikazVyssi IS NOT NULL
|
||||
END
|
||||
@ -244,49 +334,189 @@ IF (@prevodDoVyssiho=0)
|
||||
|
||||
|
||||
|
||||
DECLARE prij CURSOR LOCAL FOR
|
||||
SELECT ID FROM #TabGenPrijem
|
||||
OPEN prij
|
||||
WHILE (1=1)
|
||||
IF (@jeFinal=0)
|
||||
SET @sklPrijem=@sklProPolo
|
||||
ELSE
|
||||
SET @sklPrijem=@sklProFinal
|
||||
|
||||
|
||||
IF (@sklPrijem<>N'')
|
||||
BEGIN
|
||||
FETCH NEXT FROM prij INTO @idPrij
|
||||
IF (@@FETCH_STATUS<>0) BREAK
|
||||
|
||||
-- kopie na technologicky sklad, aby se mohly delat vydejky
|
||||
SET @idPrijKopie = NULL
|
||||
IF (@kopiiNaTechSklad=1) AND (@sklTechnicky IS NOT NULL)
|
||||
DECLARE prij CURSOR LOCAL FOR
|
||||
SELECT ID FROM #TabGenPrijem
|
||||
OPEN prij
|
||||
WHILE (1=1)
|
||||
BEGIN
|
||||
SELECT @dpz=DruhPohybuZbo, @dzDatum=DatPorizeni, @dzMena=Mena FROM dbo.TabPohybyZbozi WHERE ID=@idPrij
|
||||
EXEC dbo.hp_InsertHlavickyOZ @ident=@idPrijKopie OUT, @Sklad=@sklTechnicky, @DruhPohybu=@dpz, @RadaDokladu=@radaOdvNaSklad,
|
||||
@Mena=@dzMena, @CisloOrg=0, @DatumPorizeni=@dzDatum
|
||||
IF (@idPrijKopie IS NOT NULL)
|
||||
EXEC dbo.hp_generuj_navazny_doklad @IDDokladDst=@idPrijKopie, @IDDokladSrc=@idPrij, @CisloOrgCil=0, @MUCil=NULL, @MenaCil=NULL,
|
||||
@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=0
|
||||
END -- kopii na TechSklad
|
||||
FETCH NEXT FROM prij INTO @idPrij
|
||||
IF (@@FETCH_STATUS<>0) BREAK
|
||||
|
||||
SELECT @datPrijem=DatPorizeni FROM dbo.TabDokladyZbozi WHERE ID=@idPrij
|
||||
|
||||
|
||||
|
||||
|
||||
IF (@realizujPrijem=1)
|
||||
BEGIN
|
||||
BEGIN TRY
|
||||
EXEC dbo.hp_Realizuj_Prijem @ID=@idPrij, @DatumRealizace=NULL, @Uzivatel=@idUziv, @BylaChyba=@bChyba OUT, @VypnoutUpozorneniPriZajistovani=1
|
||||
IF (@bChyba=1)
|
||||
INSERT dbo.Tabx_Vyroba_Log (Kategorie, Typ, LogText, iHodnota) SELECT 1, 1, 'Chyba realizace neidentifikovan<61>', @idPrij
|
||||
ELSE
|
||||
BEGIN
|
||||
SET @idPrijOld = NULL
|
||||
SET @idPrijSberna = NULL
|
||||
|
||||
-- zjisti jestli na cilovem skladu mame nejakou otevrenou prijemku z dnesniho dne
|
||||
SET @cnt = ISNULL( (SELECT COUNT(ID) FROM dbo.TabDokladyZbozi WHERE ID<>@idPrij AND PoradoveCislo>0 AND DruhPohybuZbo=0 AND RadaDokladu=@radaOdvNaSklad
|
||||
AND CisloOrg=0 AND IDSklad=@sklPrijem AND Realizovano=0 AND BlokovaniEditoru IS NULL AND dbo.hf_TruncDate(DatPorizeni)=dbo.hf_TruncDate(@datPrijem))
|
||||
, 0)
|
||||
IF (@cnt=0) -- nemame, vygeneruj ji
|
||||
BEGIN
|
||||
SELECT @dpz=DruhPohybuZbo, @dzDatum=DatPorizeni, @dzMena=Mena FROM dbo.TabDokladyZbozi WHERE ID=@idPrij
|
||||
SET @datPrijem = @dzDatum
|
||||
EXEC dbo.hp_InsertHlavickyOZ @ident=@idPrijSberna OUT, @Sklad=@sklPrijem, @DruhPohybu=@dpz, @RadaDokladu=@radaOdvNaSklad,
|
||||
@Mena=@dzMena, @CisloOrg=0, @DatumPorizeni=@datPrijem
|
||||
END
|
||||
IF (@cnt=1) -- ma jen jednu
|
||||
BEGIN
|
||||
SELECT TOP(1) @idPrijSberna=ID FROM dbo.TabDokladyZbozi WHERE ID<>@idPrij AND PoradoveCislo>0 AND DruhPohybuZbo=0 AND RadaDokladu=@radaOdvNaSklad
|
||||
AND CisloOrg=0 AND IDSklad=@sklPrijem AND Realizovano=0 AND BlokovaniEditoru IS NULL AND dbo.hf_TruncDate(DatPorizeni)=dbo.hf_TruncDate(@datPrijem)
|
||||
END
|
||||
IF (@cnt>1) -- mam jich vic, vezmi tu posledni (nejnovejsi)
|
||||
BEGIN
|
||||
SET @idPrijSberna = (SELECT TOP(1) ID FROM dbo.TabDokladyZbozi WHERE ID<>@idPrij AND PoradoveCislo>0 AND DruhPohybuZbo=0 AND RadaDokladu=@radaOdvNaSklad
|
||||
AND CisloOrg=0 AND IDSklad=@sklPrijem AND Realizovano=0 AND BlokovaniEditoru IS NULL
|
||||
AND dbo.hf_TruncDate(DatPorizeni)=dbo.hf_TruncDate(@datPrijem)
|
||||
ORDER BY DatPorizeni DESC)
|
||||
END
|
||||
|
||||
-- pokud ji mam, nakopiruj do ni novou polozku
|
||||
IF (@idPrijSberna IS NOT NULL)
|
||||
BEGIN
|
||||
EXEC dbo.hp_generuj_navazny_doklad @IDDokladDst=@idPrijSberna, @IDDokladSrc=@idPrij, @CisloOrgCil=0, @MUCil=NULL, @MenaCil=NULL,
|
||||
@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=0
|
||||
|
||||
SET @vc = NULL
|
||||
SET @idVPrVC = (SELECT IDVyrCis FROM dbo.TabPrikazMzdyAZmetky WHERE ID=@IDMzdy)
|
||||
IF (@idVPrVC IS NOT NULL)
|
||||
SET @vc = (SELECT VyrCislo FROM dbo.TabVyrCisPrikaz WHERE ID=@idVPrVC)
|
||||
IF (@vc IS NULL)
|
||||
SELECT TOP(1) @idPalety=ID, @vc=CisloPalety FROM dbo._TabVyroba_Palety WHERE IDMzda=@IDMzdy AND IDPrikaz=@idPrikaz
|
||||
|
||||
SET @paletList = N''
|
||||
IF (@vc IS NOT NULL)
|
||||
SET @paletList = @vc
|
||||
|
||||
SET @idPZSberna = NULL
|
||||
SET @idVCP = (SELECT TOP(1) vcp.ID FROM dbo.TabPohybyZbozi p WITH(NOLOCK) JOIN dbo.TabDokladyZbozi d WITH(NOLOCK) ON (d.ID=p.IDDoklad)
|
||||
JOIN dbo.TabStavSkladu s WITH(NOLOCK) ON (s.ID=p.IDZboSklad) JOIN dbo.TabVyrCP vcp WITH(NOLOCK) ON (vcp.IDPolozkaDokladu=p.ID)
|
||||
JOIN dbo.TabVyrCS vcs ON (vcs.ID=vcp.IDVyrCis)
|
||||
WHERE d.ID=@idPrij AND d.DruhPohybuZbo=0 AND p.TypVyrobnihoDokladu IN (0) AND s.IDKmenZbozi=@IDKmen AND vcs.Nazev1=@vc)
|
||||
IF (@vc IS NOT NULL)
|
||||
SET @idPZSberna = (SELECT TOP(1) p.ID FROM dbo.TabPohybyZbozi p WITH(NOLOCK) JOIN dbo.TabDokladyZbozi d WITH(NOLOCK) ON (d.ID=p.IDDoklad)
|
||||
JOIN dbo.TabStavSkladu s WITH(NOLOCK) ON (s.ID=p.IDZboSklad) JOIN dbo.TabVyrCP vcp WITH(NOLOCK) ON (vcp.IDPolozkaDokladu=p.ID)
|
||||
JOIN dbo.TabVyrCS vcs ON (vcs.ID=vcp.IDVyrCis)
|
||||
WHERE p.IDDoklad=@idPrijSberna AND d.DruhPohybuZbo=0 AND p.TypVyrobnihoDokladu IN (0) AND s.IDKmenZbozi=@IDKmen AND vcs.Nazev1=@vc)
|
||||
/*
|
||||
ELSE -- tato situace nesmi nastat, na sklad se vzdy prijima polotovar nebo final vcetne VC/paletovelo listu
|
||||
SET @idPZSberna = (SELECT TOP(1) p.ID FROM dbo.TabPohybyZbozi p WITH(NOLOCK) JOIN dbo.TabStavSkladu s WITH(NOLOCK) ON (s.ID=p.IDZboSklad)
|
||||
WHERE p.IDDoklad=@idPrijOld AND s.IDKmenZbozi=@IDKmen ORDER BY p.ID DESC)
|
||||
*/
|
||||
IF (@idPZSberna IS NOT NULL)
|
||||
BEGIN
|
||||
SET @idPalety = (SELECT ID FROM dbo._TabVyroba_Palety WHERE CisloPalety=@paletList AND IDPrikaz=@idPrikaz)
|
||||
UPDATE dbo._TabVyroba_Palety SET IDPohybPrijem=@idPZSberna WHERE ID=@idPalety
|
||||
SELECT @sarze=Sarze FROM dbo._TabVyroba_Palety WHERE ID=@idPalety
|
||||
|
||||
-- udelej pomocnou vazbu polozky prijmu na skladu 311/312 na polozku prijmu na technologickem sklade 261/262
|
||||
SET @idPZOld = NULL -- id pohybu zbozi na prijemce 261/262
|
||||
IF (@vc IS NOT NULL)
|
||||
SET @idPZOld = (SELECT TOP(1) p.ID FROM dbo.TabPohybyZbozi p WITH(NOLOCK) JOIN dbo.TabDokladyZbozi d WITH(NOLOCK) ON (d.ID=p.IDDoklad)
|
||||
JOIN dbo.TabStavSkladu s WITH(NOLOCK) ON (s.ID=p.IDZboSklad) JOIN dbo.TabVyrCP vcp WITH(NOLOCK) ON (vcp.IDPolozkaDokladu=p.ID)
|
||||
JOIN dbo.TabVyrCS vcs ON (vcs.ID=vcp.IDVyrCis)
|
||||
WHERE p.IDDoklad=@idPrij AND d.DruhPohybuZbo=0 AND p.TypVyrobnihoDokladu IN (0) AND s.IDKmenZbozi=@IDKmen AND vcs.Nazev1=@vc)
|
||||
ELSE
|
||||
SET @idPZOld = (SELECT TOP(1) p.ID FROM dbo.TabPohybyZbozi p WITH(NOLOCK) JOIN dbo.TabStavSkladu s WITH(NOLOCK) ON (s.ID=p.IDZboSklad)
|
||||
WHERE p.IDDoklad=@idPrij AND s.IDKmenZbozi=@IDKmen ORDER BY p.ID DESC)
|
||||
|
||||
IF NOT EXISTS (SELECT 1 FROM dbo.TabPohybyZbozi_EXT WHERE ID=@idPZSberna) AND (@idPZSberna IS NOT NULL)
|
||||
INSERT dbo.TabPohybyZbozi_EXT (ID) VALUES (@idPZSberna)
|
||||
IF (@idPZOld IS NULL)
|
||||
SET @idPZOld = (SELECT TOP(1) IDPohybOZPuvodni FROM dbo._TabVyroba_PaletyPohybOZ WHERE IDPalety=@idPalety)
|
||||
IF (@idPZOld IS NULL)
|
||||
SET @idPZOld = (SELECT TOP(1) ID FROM dbo.TabPohybyZbozi WHERE IDDoklad=@idPrij) -- id pohybu zbozi na prijemce 261/262
|
||||
IF (@idPZOld IS NOT NULL)
|
||||
UPDATE dbo.TabPohybyZbozi_EXT SET _Prijem_IDPZPuvodni=@idPZOld WHERE ID=@idPZSberna
|
||||
|
||||
IF (@idPalety IS NOT NULL)
|
||||
IF NOT EXISTS (SELECT 1 FROM dbo._TabVyroba_PaletyPohybOZ WHERE IDPalety=@idPalety)
|
||||
INSERT dbo._TabVyroba_PaletyPohybOZ (IDPalety, IDPohybOZ, Sarze, Mnozstvi, MnozstviKA, IDPohybOZPuvodni)
|
||||
SELECT @idPalety, @idPZSberna, @sarze, @mnozstvi, @mnozstviKA, @idPZOld
|
||||
|
||||
|
||||
-- smaz vazbu nove polozky (prijem na sklade 311/312) na vyrobni prikaz
|
||||
UPDATE dbo.TabPohybyZbozi SET IDPrikaz=NULL, TypVyrobnihoDokladu=NULL, DokladPrikazu=NULL WHERE ID=@idPZSberna
|
||||
DELETE FROM dbo.TabPrikazMzdyAZmetkyGenPZ WHERE IDMzdy=@IDMzdy AND TypGen=2 AND IDPohybu=@idPZSberna
|
||||
|
||||
END -- @idPZSberna IS NOT NULL
|
||||
|
||||
END -- @idPrijOld IS NOT NULL
|
||||
END -- else @bChyba=1
|
||||
END TRY
|
||||
BEGIN CATCH
|
||||
SET @errMsg = ERROR_MESSAGE()
|
||||
INSERT dbo.Tabx_Vyroba_Log (Kategorie, Typ, LogText, iHodnota) SELECT 1, 1, 'Chyba realizace neidentifikovan<61>', @idPrij
|
||||
END CATCH
|
||||
END
|
||||
|
||||
|
||||
-- vycisti seed
|
||||
SELECT @iTemp = 1 + ISNULL( (SELECT MAX(ID) FROM dbo.TabDokladyZbozi), 0)
|
||||
DBCC CHECKIDENT (TabDokladyZbozi, RESEED, @iTemp)
|
||||
SELECT @iTemp = 1 + ISNULL( (SELECT MAX(ID) FROM dbo.TabPohybyZbozi), 0)
|
||||
DBCC CHECKIDENT (TabPohybyZbozi, RESEED, @iTemp)
|
||||
|
||||
IF (@realizujPrijem=1)
|
||||
BEGIN
|
||||
BEGIN TRY
|
||||
EXEC dbo.hp_Realizuj_Prijem @ID=@idPrij, @DatumRealizace=NULL, @Uzivatel=@idUziv, @BylaChyba=@bChyba OUT, @VypnoutUpozorneniPriZajistovani=1
|
||||
IF (@idPrijKopie IS NOT NULL)
|
||||
EXEC dbo.hp_Realizuj_Prijem @ID=@idPrijKopie, @DatumRealizace=NULL, @Uzivatel=@idUziv, @BylaChyba=@bChyba OUT, @VypnoutUpozorneniPriZajistovani=1
|
||||
END TRY
|
||||
BEGIN CATCH
|
||||
SET @errMsg = ERROR_MESSAGE()
|
||||
END CATCH
|
||||
END
|
||||
|
||||
CLOSE prij
|
||||
DEALLOCATE prij
|
||||
END
|
||||
CLOSE prij
|
||||
DEALLOCATE prij
|
||||
|
||||
|
||||
|
||||
|
||||
-- napocti odvedeni davek Kapacitniho planu vedenych v pomocne Tabx_Vyroba_DavkyPlanu
|
||||
IF OBJECT_ID(N'Tabx_Vyroba_DavkyPlanu', 'U') IS NOT NULL
|
||||
BEGIN
|
||||
SET @ksOdv = ISNULL( (SELECT SUM(kusy_odv) FROM dbo.TabPrikazMzdyAZmetky WHERE IDPrikaz=@IDPrikaz AND DokladPrPostup=@doklPrPostup), 0)
|
||||
IF (@ksOdv>0)
|
||||
BEGIN
|
||||
SET @ksOdv_ks = @ksOdv
|
||||
IF (@mjEvid=N'KA')
|
||||
SET @ksOdv_ks = @ksOdv_ks * dbo.ef_Kmen_VratPocetKsVKartonu (@IDKmen)
|
||||
|
||||
DECLARE d CURSOR LOCAL FAST_FORWARD FOR
|
||||
SELECT ID, Mnozstvi
|
||||
FROM Tabx_Vyroba_DavkyPlanu
|
||||
WHERE IDPrikaz=@IDPrikaz
|
||||
AND DokladPrPostup=@doklPrPostup
|
||||
AND Dilec=@IDKmen
|
||||
OPEN d
|
||||
WHILE (1=1)
|
||||
BEGIN
|
||||
FETCH NEXT FROM d INTO @idDavkaPomoc, @mnozDavkaPomoc
|
||||
IF (@@FETCH_STATUS<>0) BREAK
|
||||
END
|
||||
CLOSE d
|
||||
DEALLOCATE d
|
||||
END -- @ksOdv_ks
|
||||
END -- Tabx_Vyroba_DavkyPlanu IS NOT NULL
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
-- cisteni
|
||||
|
||||
Reference in New Issue
Block a user