Prvni verze
This commit is contained in:
6
_custom/Rootvin/sql/col_CisZam_EXT.sql
Normal file
6
_custom/Rootvin/sql/col_CisZam_EXT.sql
Normal file
@ -0,0 +1,6 @@
|
||||
DECLARE @currDat DATETIME=GETDATE()
|
||||
IF (COL_LENGTH(N'dbo.TabCisZam_EXT', N'_DataZone_KodCipu') IS NULL)
|
||||
EXEC dbo.hp_ImportUzivAtr @Externi=1, @NazevTabulkySys=N'TabCisZam', @NazevAtrSys=N'_DataZone_KodCipu', @Skupina=N'HDCDZApi', @NazevAtrVer=N'K<EFBFBD>d zam<61>stnaneck<63>ho <20>ipu',
|
||||
@NazevAtrVerZkr=N'K<EFBFBD>d <20>ipu', @TypAtr=N'NVARCHAR', @MaskaAtr=NULL, @VerejnyAtr=N'V', @SirkaSloupceAtr=16, @SumovatAtr=N'N', @TiskAtr=N'A', @ProcPruhAtr=0, @Kopirovat=0,
|
||||
@KonverzeAtr=NULL, @ExtEd_Poradi=1, @ExtEd_Zalozka=NULL, @ExtEd_BrowseID=NULL, @ExtEd_Atr=NULL, @ExtEd_PrimaEditace=1, @DatPorizeni=@currDat, @DatZmeny=NULL,
|
||||
@TypAtrSQL=N'NVARCHAR(36)', @ExtEd_BrowseID_DPSN=NULL, @Poznamka=N'', @Definice=NULL, @Podminka=NULL, @HromadneZmenyAtr=1
|
||||
6
_custom/Rootvin/sql/col_TabDokumenty_DokladProAPI.sql
Normal file
6
_custom/Rootvin/sql/col_TabDokumenty_DokladProAPI.sql
Normal file
@ -0,0 +1,6 @@
|
||||
DECLARE @currDat DATETIME=GETDATE()
|
||||
IF (COL_LENGTH(N'dbo.TabDokumenty_EXT', N'_DokladProAPI') IS NULL)
|
||||
EXEC dbo.hp_ImportUzivAtr @Externi=1, @NazevTabulkySys=N'TabDokumenty_EXT', @NazevAtrSys=N'_DokladProAPI', @Skupina=NULL, @NazevAtrVer=N'Přednastaveno pro zobrazení přes HDC API',
|
||||
@NazevAtrVerZkr=N'Pro HDCAPI', @TypAtr=N'BIT', @MaskaAtr=NULL, @VerejnyAtr=N'A', @SirkaSloupceAtr=8, @SumovatAtr=N'N', @TiskAtr=N'A', @ProcPruhAtr=0,
|
||||
@KonverzeAtr=NULL, @ExtEd_Poradi=1, @ExtEd_Zalozka=NULL, @ExtEd_BrowseID=NULL, @ExtEd_Atr=NULL, @ExtEd_PrimaEditace=1, @DatPorizeni=@currDat, @DatZmeny=NULL,
|
||||
@TypAtrSQL=N'BIT', @ExtEd_BrowseID_DPSN=NULL, @Poznamka=NULL, @Definice=NULL, @Podminka=NULL
|
||||
12
_custom/Rootvin/sql/col_TabPrPostup_EXT.sql
Normal file
12
_custom/Rootvin/sql/col_TabPrPostup_EXT.sql
Normal file
@ -0,0 +1,12 @@
|
||||
DECLARE @currDat DATETIME=GETDATE()
|
||||
IF (COL_LENGTH(N'dbo.TabPrPostup_EXT', N'_PaletListProVydej') IS NULL)
|
||||
EXEC dbo.hp_ImportUzivAtr @Externi=1, @NazevTabulkySys=N'TabPrPostup', @NazevAtrSys=N'_PaletListProVydej', @Skupina=N'HDCDZApi', @NazevAtrVer=N'Paletov<EFBFBD> list pro v<>dej',
|
||||
@NazevAtrVerZkr=N'Pal.list.v<>dej', @TypAtr=N'NVARCHAR', @MaskaAtr=NULL, @VerejnyAtr=N'V', @SirkaSloupceAtr=16, @SumovatAtr=N'N', @TiskAtr=N'A', @ProcPruhAtr=0, @Kopirovat=0,
|
||||
@KonverzeAtr=NULL, @ExtEd_Poradi=1, @ExtEd_Zalozka=NULL, @ExtEd_BrowseID=NULL, @ExtEd_Atr=NULL, @ExtEd_PrimaEditace=1, @DatPorizeni=@currDat, @DatZmeny=NULL,
|
||||
@TypAtrSQL=N'NVARCHAR(100)', @ExtEd_BrowseID_DPSN=NULL, @Poznamka=N'', @Definice=NULL, @Podminka=NULL, @HromadneZmenyAtr=1
|
||||
|
||||
IF (COL_LENGTH(N'dbo.TabPrPostup_EXT', N'_SarzeProVydej') IS NULL)
|
||||
EXEC dbo.hp_ImportUzivAtr @Externi=1, @NazevTabulkySys=N'TabPrPostup', @NazevAtrSys=N'_SarzeProVydej', @Skupina=N'HDCDZApi', @NazevAtrVer=N'<EFBFBD>arze pro v<>dej',
|
||||
@NazevAtrVerZkr=N'<EFBFBD>ar<EFBFBD>e v<>dej', @TypAtr=N'NVARCHAR', @MaskaAtr=NULL, @VerejnyAtr=N'V', @SirkaSloupceAtr=16, @SumovatAtr=N'N', @TiskAtr=N'A', @ProcPruhAtr=0, @Kopirovat=0,
|
||||
@KonverzeAtr=NULL, @ExtEd_Poradi=1, @ExtEd_Zalozka=NULL, @ExtEd_BrowseID=NULL, @ExtEd_Atr=NULL, @ExtEd_PrimaEditace=1, @DatPorizeni=@currDat, @DatZmeny=NULL,
|
||||
@TypAtrSQL=N'NVARCHAR(100)', @ExtEd_BrowseID_DPSN=NULL, @Poznamka=N'<EFBFBD>ar<EFBFBD>e pl<70>novan<61> pro v<>dej (naskenovan<61>)', @Definice=NULL, @Podminka=NULL, @HromadneZmenyAtr=1
|
||||
34
_custom/Rootvin/sql/ep_HDCDZApi_GetKusovnik.sql
Normal file
34
_custom/Rootvin/sql/ep_HDCDZApi_GetKusovnik.sql
Normal file
@ -0,0 +1,34 @@
|
||||
-- dbo.ep_hdcdzapi_GetKusovnik
|
||||
CREATE PROCEDURE dbo.ep_hdcdzapi_GetKusovnik
|
||||
@idDilce INT,
|
||||
@mnf NUMERIC(19,6)=0,
|
||||
@datum DATETIME=NULL,
|
||||
@IDZakazModif int=NULL,
|
||||
@MnozstviSeZtratou bit=1,
|
||||
@VcetneNulovychKV bit=0,
|
||||
@RespekDodatecneProcZtratKV bit=0,
|
||||
@ErrMsg NVARCHAR(500)=N'' OUT
|
||||
AS
|
||||
|
||||
-- HD Consulting Strakonice, T. Buzin
|
||||
-- !! proceduru neupravujte, bude stejne pregenerovana pri startu Windows sluzby HDCDZApi !!
|
||||
|
||||
SET NOCOUNT ON
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS #apiKusovnik
|
||||
CREATE TABLE #apiKusovnik (ID int IDENTITY (1, 1) NOT NULL, IDRodic int NULL, vyssi integer NULL, IDKmenZbozi integer NOT NULL, uroven integer NOT NULL, poradi integer NOT NULL,
|
||||
IDKVazby integer NULL, mnozstvi numeric(20,6) NOT NULL, prirez numeric(20,6) NULL,
|
||||
Prime bit NOT NULL, RezijniMat bit NOT NULL, VyraditZKalkulace bit NOT NULL, Strom nvarchar(400) COLLATE database_default NULL,
|
||||
Davka numeric(19,6) NULL)
|
||||
|
||||
BEGIN TRY
|
||||
EXEC dbo.hp_generujKusovnik @IDFinal=@idDilce, @MNF=@mnf, @datum=@datum, @Can_raise=0, @getStrom=1, @GetRodic=1, @IDZakazModif=@IDZakazModif, @VcetneNulovychKV=@VcetneNulovychKV,
|
||||
@MnozstviSeZtratou=@MnozstviSeZtratou, @RespekDodatecneProcZtratKV=@RespekDodatecneProcZtratKV
|
||||
END TRY
|
||||
BEGIN CATCH
|
||||
SET @ErrMsg = ERROR_MESSAGE()
|
||||
END CATCH
|
||||
|
||||
SELECT * FROM #apiKusovnik
|
||||
|
||||
38
_custom/Rootvin/sql/ep_HDCDZApi_GetKusovnik_2.sql
Normal file
38
_custom/Rootvin/sql/ep_HDCDZApi_GetKusovnik_2.sql
Normal file
@ -0,0 +1,38 @@
|
||||
-- dbo.ep_hdcdzapi_GetKusovnik
|
||||
CREATE PROCEDURE dbo.ep_hdcdzapi_GetKusovnik
|
||||
AS
|
||||
|
||||
SET NOCOUNT ON
|
||||
DECLARE @RespekExistDoklady bit=0
|
||||
|
||||
IF OBJECT_ID(N'tempdb..#apiKusovnik', N'U') IS NULL
|
||||
CREATE TABLE #apiKusovnik (ID INT IDENTITY(1,1) NOT NULL, IDPrKV INT, MnozstviPoz NUMERIC(19,6), pom_pomer_A NUMERIC(19,6), pom_pomer_B NUMERIC(19,6), Doklad INT, IDPrikaz INT,
|
||||
Prednastaveno BIT, Sklad NVARCHAR(30), VyrStredisko NVARCHAR(30), IDPracoviste INT, mnoz_zad NUMERIC(19,6), Mnoz_nepotrebne NUMERIC(19,6), Mnoz_skut_realizovane NUMERIC(19,6),
|
||||
Cena_real NUMERIC(19,6), Mnoz_odv NUMERIC(19,6), Cena_odv NUMERIC(19,6), priorita INT, vyssi INT, nizsi INT, DavkaTPV NUMERIC(19,6), pozice INT, Operace NVARCHAR(4),
|
||||
FixniMnozstvi NUMERIC(19,6), mnozstvi NUMERIC(19,6), ProcZtrat NUMERIC(19,6), mnozstviSeZtratou NUMERIC(19,6), Prirez NUMERIC(19,6), Poznamka NVARCHAR(500), SZVyssi NVARCHAR(3),
|
||||
RCVyssi NVARCHAR(30), Nazev1Vyssi NVARCHAR(100), SZNizsi NVARCHAR(3), RCNizsi NVARCHAR(30), Nazev1Nizsi NVARCHAR(100))
|
||||
IF OBJECT_ID(N'tempdb..#apiOdved', N'U') IS NULL
|
||||
CREATE TABLE #apiOdved (ID INT, IDPrikaz INT, Mnozstvi NUMERIC(19,6) DEFAULT 0.0)
|
||||
|
||||
INSERT #apiKusovnik (IDPrKV, MnozstviPoz, pom_pomer_A, pom_pomer_B, Doklad, IDPrikaz, Prednastaveno, Sklad, VyrStredisko, IDPracoviste, mnoz_zad, Mnoz_nepotrebne, Mnoz_skut_realizovane, Cena_real, Mnoz_odv, Cena_odv, priorita, vyssi, nizsi, DavkaTPV,
|
||||
pozice, Operace, FixniMnozstvi, mnozstvi, ProcZtrat, mnozstviSeZtratou, Prirez, Poznamka, SZVyssi, RCVyssi, Nazev1Vyssi, SZNizsi, RCNizsi, Nazev1Nizsi)
|
||||
SELECT PrKV.ID, PrKV.mnoz_zad*O.mnozstvi/P.kusy_zad - CASE WHEN @RespekExistDoklady=1 THEN PrKV.VydanoRefMnoz + (SELECT ISNULL(SUM(PZ2.prepmnozstvi*(PZ2.mnozstvi-PZ2.MnOdebrane) * PrKV2.RefMnoz / PrKV2.mnoz_zad), 0.0) FROM [dbo].[TabPohybyZbozi] PZ2
|
||||
INNER JOIN [dbo].[TabDokladyZbozi] DZ2 ON (DZ2.ID=PZ2.IDDoklad AND DZ2.splneno=0)
|
||||
INNER JOIN [dbo].[TabStavSkladu] SS2 ON (SS2.ID=PZ2.IDZboSklad)
|
||||
INNER JOIN [dbo].[TabPrKVazby] PrKV2 ON (PrKV2.IDPrikaz=PZ2.IDPrikaz AND PrKV2.Doklad=PZ2.DokladPrikazu AND PrKV2.nizsi=SS2.IDKmenZbozi AND PrKV2.IDOdchylkyDo IS NULL)
|
||||
WHERE PZ2.TypVyrobnihoDokladu=1 AND PZ2.IDPrikaz=PrKV.IDPrikaz AND PZ2.DokladPrikazu=PrKV.Doklad AND PZ2.Splneno=0 AND PZ2.druhPohybuZbo IN (2,4,9,10) AND PZ2.SkutecneDatReal IS NULL) ELSE 0.0 END, CASE WHEN @RespekExistDoklady=0 THEN O.mnozstvi END, CASE WHEN @RespekExistDoklady=0 THEN P.kusy_zad END,
|
||||
PrKV.Doklad, PrKV.IDPrikaz, PrKV.Prednastaveno, PrKV.Sklad, PrKV.VyrStredisko, PrKV.IDPracoviste, PrKV.mnoz_zad, PrKV.Mnoz_nepotrebne, PrKV.Mnoz_skut_realizovane , PrKV.Cena_real, PrKV.Mnoz_odv, PrKV.Cena_odv, PrKV.priorita, PrKV.vyssi, PrKV.nizsi, PrKV.DavkaTPV, PrKV.pozice, PrKV.Operace, PrKV.FixniMnozstvi,
|
||||
PrKV.mnozstvi , PrKV.ProcZtrat, PrKV.mnozstviSeZtratou, PrKV.Prirez, PrKV.Poznamka, KZV.SkupZbo, KZV.RegCis, KZV.Nazev1, KZ.SkupZbo, KZ.RegCis, KZ.Nazev1
|
||||
FROM (SELECT IDPrikaz=O1.IDPrikaz, Mnozstvi=SUM(O1.mnozstvi) + CASE WHEN @RespekExistDoklady=1 THEN MAX(P1.kusy_odved+P1.kusy_ztrac+P1.kusy_zmet) + (SELECT ISNULL(SUM(PZ1.prepmnozstvi*PZ1.mnozstvi), 0.0)
|
||||
FROM [dbo].[TabPohybyZbozi] PZ1 WHERE PZ1.TypVyrobnihoDokladu=0 AND PZ1.IDPrikaz=O1.IDPrikaz AND PZ1.druhPohybuZbo=0 AND PZ1.SkutecneDatReal IS NULL) ELSE 0.0 END
|
||||
FROM #apiOdved O1
|
||||
INNER JOIN [dbo].[TabPrikaz] P1 ON (P1.ID=O1.IDPrikaz)
|
||||
GROUP BY O1.IDPrikaz) O
|
||||
INNER JOIN [dbo].[TabPrikaz] P ON (P.ID=O.IDPrikaz AND P.StavPrikazu IN (20,30,50))
|
||||
INNER JOIN TabRadyPrikazu RP ON (RP.rada=P.rada)
|
||||
INNER JOIN [dbo].[TabPrKVazby] PrKV ON (PrKV.IDPrikaz=O.IDPrikaz AND /*PrKV.predzpracovano=0 AND*/ PrKV.prednastaveno=1 AND PrKV.uzavreno=0 AND PrKV.RezijniMat=0 AND PrKV.IDOdchylkyDo IS NULL)
|
||||
INNER JOIN [dbo].[TabKmenZbozi] KZ ON (KZ.ID=PrKV.nizsi AND KZ.sluzba=0)
|
||||
LEFT JOIN [dbo].[TabKmenZbozi] KZV ON (KZV.ID=PrKV.vyssi AND KZV.sluzba=0)
|
||||
WHERE (P.kusy_zive>0.0 OR RP.KontrolovatRozpracPriUzav=0)
|
||||
|
||||
SELECT * FROM #apiKusovnik
|
||||
153
_custom/Rootvin/sql/ep_HDCDZApi_ZpracujPrijataData.sql
Normal file
153
_custom/Rootvin/sql/ep_HDCDZApi_ZpracujPrijataData.sql
Normal file
@ -0,0 +1,153 @@
|
||||
-- dbo.ep_HDCDZApi_ZpracujPrijataData
|
||||
CREATE PROCEDURE dbo.ep_HDCDZApi_ZpracujPrijataData
|
||||
@idJson INT=NULL
|
||||
AS
|
||||
|
||||
|
||||
-- HD Consulting Strakonice, T. Buzin
|
||||
-- !! proceduru neupravujte, bude stejne pregenerovana pri startu Windows sluzby HDCDZApi !!
|
||||
|
||||
|
||||
SET NOCOUNT ON
|
||||
|
||||
|
||||
DECLARE
|
||||
@tranPred INT,
|
||||
@cnt INT,
|
||||
@datPorizeni DATETIME,
|
||||
@errMsg NVARCHAR(500),
|
||||
@bChyba BIT,
|
||||
@iChyba INT,
|
||||
@debugXml XML,
|
||||
@aktDatum DATETIME,
|
||||
@logTyp TINYINT,
|
||||
@logText NVARCHAR(500),
|
||||
@logInt INT,
|
||||
@logStr NVARCHAR(255),
|
||||
@log4Mail BIT=0
|
||||
|
||||
DECLARE
|
||||
@jsonString NVARCHAR(MAX),
|
||||
@jsonString2 NVARCHAR(MAX),
|
||||
@typDokum NVARCHAR(50),
|
||||
@subtypDokum NVARCHAR(50),
|
||||
@akce NVARCHAR(50),
|
||||
@akceSource NVARCHAR(50),
|
||||
@datumText NVARCHAR(25)
|
||||
|
||||
DECLARE @TabPHObj TABLE (ID INT NOT NULL, IDPHIdent INT)
|
||||
|
||||
|
||||
-- vytvor pomocnou tabulku
|
||||
/*
|
||||
IF OBJECT_ID(N'tempdb..#TabJSONData', N'U') IS NOT NULL
|
||||
DROP TABLE #TabJSONData
|
||||
CREATE TABLE #TabJSONData (ID INT IDENTITY(1,1) NOT NULL, doc NVARCHAR(max))
|
||||
*/
|
||||
DROP TABLE IF EXISTS #TabJSONData
|
||||
CREATE TABLE #TabJSONData (ID INT IDENTITY(1,1) NOT NULL, doc NVARCHAR(max))
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
IF (@idJson IS NULL)
|
||||
DECLARE j CURSOR LOCAL FOR
|
||||
SELECT ID, JSONData, DatPorizeni
|
||||
FROM dbo._hdc_ph_PrijataJsonData
|
||||
WHERE DatZpracovani IS NULL
|
||||
AND ISNULL(JSONData, N'')<>N''
|
||||
ORDER BY DatPorizeni ASC
|
||||
ELSE
|
||||
DECLARE j CURSOR LOCAL FOR
|
||||
SELECT ID, JSONData, DatPorizeni
|
||||
FROM dbo._hdc_ph_PrijataJsonData
|
||||
WHERE ID=@idJson
|
||||
OPEN j
|
||||
WHILE (1=1)
|
||||
BEGIN
|
||||
FETCH NEXT FROM j INTO @idJson, @jsonString, @datPorizeni
|
||||
IF (@@FETCH_STATUS<>0) BREAK
|
||||
|
||||
IF (ISJSON(@jsonString)=0)
|
||||
CONTINUE
|
||||
|
||||
|
||||
BEGIN TRY
|
||||
SET @tranPred = @@TRANCOUNT
|
||||
IF (@tranPred=0)
|
||||
BEGIN TRAN
|
||||
|
||||
|
||||
SET @datumText = NULL
|
||||
-- smaz pomocnou tabulku
|
||||
DELETE FROM #TabJSONData
|
||||
INSERT #TabJSONData (doc) SELECT @jsonString
|
||||
SELECT TOP(1) @akce = JSON_VALUE(doc, '$.action'), @akceSource = JSON_VALUE(doc, '$.source'), @datumText = JSON_VALUE(doc, '$.actionAt') FROM #TabJSONData
|
||||
|
||||
SET @akce = ISNULL(@akce, N'')
|
||||
SET @akceSource = ISNULL(@akceSource, N'')
|
||||
SET @datumText = ISNULL(@datumText, N'')
|
||||
IF (@datumText<>N'')
|
||||
SET @datPorizeni = CONVERT(datetime, @datumText, 120)
|
||||
|
||||
IF (@akce<>N'')
|
||||
UPDATE dbo._hdc_ph_PrijataJsonData SET Akce=@akce WHERE ID=@idJson AND Akce IS NULL
|
||||
|
||||
|
||||
IF ISNULL( (SELECT COUNT(ID) FROM dbo._hdc_ph_Log WHERE IdJsonData=@idJson), 0)>=3
|
||||
BEGIN
|
||||
IF EXISTS(SELECT 1 FROM dbo._hdc_ph_PrijataJsonData WHERE ID=@idJson AND ISNULL(PosledniChyba,N'')=N'')
|
||||
UPDATE dbo._hdc_ph_PrijataJsonData SET PosledniChyba=(SELECT TOP(1) LogText FROM dbo._hdc_ph_Log WHERE IdJsonData=@idJson ORDER BY DatPorizeni DESC) WHERE ID=@idJson
|
||||
CONTINUE
|
||||
END
|
||||
|
||||
|
||||
SET @logTyp = 0
|
||||
SET @logInt = NULL
|
||||
SET @logStr = N''
|
||||
SET @log4Mail = 0
|
||||
SET @logText = N''
|
||||
|
||||
|
||||
|
||||
-- BEGIN: TLACITKO
|
||||
IF (@akce=N'click' AND @akceSource='button')
|
||||
BEGIN
|
||||
SET @akce = N''
|
||||
UPDATE dbo._hdc_ph_PrijataJsonData SET DatZpracovani=GETDATE() WHERE ID=@idJson
|
||||
END -- akce: vyroba_zacatek
|
||||
-- END: TLACITKO
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
IF (@tranPred=0) AND (@@TRANCOUNT>0)
|
||||
COMMIT TRAN
|
||||
END TRY
|
||||
BEGIN CATCH
|
||||
IF (@tranPred=0) AND (@@TRANCOUNT>0)
|
||||
ROLLBACK TRAN
|
||||
SET @errMsg = ERROR_MESSAGE()
|
||||
|
||||
UPDATE dbo._hdc_ph_PrijataJsonData SET PosledniChyba=@errMsg WHERE ID=@idJson
|
||||
|
||||
IF (@logTyp>0)
|
||||
INSERT dbo._hdc_ph_Log (Typ, LogText, IntValue, StrValue, IdJsonData, ForMail)
|
||||
SELECT @logTyp, ISNULL(@logText, N'') + NCHAR(13)+NCHAR(10) + @errMsg, @logInt, @logStr, @idJson, @log4Mail
|
||||
ELSE
|
||||
INSERT dbo._hdc_ph_Log (Typ, LogText, IdJsonData, ForMail) SELECT 1, N'Chyba zpracovani PrijataJsonData: ' + @errMsg, @idJson, 1
|
||||
END CATCH
|
||||
SET @logTyp=0
|
||||
|
||||
END
|
||||
CLOSE j
|
||||
DEALLOCATE j
|
||||
|
||||
|
||||
|
||||
|
||||
-- pro jistotu
|
||||
IF OBJECT_ID(N'tempdb..#TabJSONData', N'U') IS NOT NULL
|
||||
DROP TABLE #TabJSONData
|
||||
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
|
||||
178
_custom/Rootvin/sql/ep_Vyroba_DoplnSkladProVydejDleDokladu.sql
Normal file
178
_custom/Rootvin/sql/ep_Vyroba_DoplnSkladProVydejDleDokladu.sql
Normal file
@ -0,0 +1,178 @@
|
||||
-- dbo.ep_Vyroba_DoplnSkladProVydejDleDokladu
|
||||
CREATE PROCEDURE dbo.ep_Vyroba_DoplnSkladProVydejDleDokladu
|
||||
@IDDoklad INT,
|
||||
@errMsg NVARCHAR(500)=N'' OUT
|
||||
AS
|
||||
|
||||
-- HD Consulting Strakonice, T. Buzin
|
||||
-- !! proceduru neupravujte, bude stejne pregenerovana pri startu Windows sluzby HDCDZApi nebo pluginu Pekerna !!
|
||||
|
||||
SET NOCOUNT ON
|
||||
|
||||
|
||||
IF EXISTS(SELECT 1 FROM dbo.TabDokladyZbozi WHERE Realizovano=1)
|
||||
RETURN
|
||||
|
||||
|
||||
|
||||
DECLARE
|
||||
@tranPred INT,
|
||||
@uziv INT,
|
||||
@bChyba BIT
|
||||
|
||||
DECLARE
|
||||
@sklad NVARCHAR(30),
|
||||
@datPorizeni DATETIME,
|
||||
@datNasklad DATETIME,
|
||||
@idDZ INT,
|
||||
@idPZ INT,
|
||||
@idKZ INT,
|
||||
@idSS INT,
|
||||
@idSSPek INT,
|
||||
@prepKoef NUMERIC(19,6),
|
||||
@mnozPZ NUMERIC(19,6),
|
||||
@mnozSkl NUMERIC(19,6),
|
||||
@mnozNevyd NUMERIC(19,6),
|
||||
@mnozChybi NUMERIC(19,6)
|
||||
DECLARE
|
||||
@sklMatHlavni NVARCHAR(30),
|
||||
@sklTechnolog NVARCHAR(30),
|
||||
@sklPekarna NVARCHAR(30),
|
||||
@poslSarze NVARCHAR(100),
|
||||
@poslPalList NVARCHAR(100)
|
||||
|
||||
DECLARE
|
||||
@idDZNew INT,
|
||||
@idPZNew INT,
|
||||
@rDokl NVARCHAR(3)=N'292', -- rada dokladu pro prijem "nedostatecneho materialu" -> "Příjemka - vyrovnání do normy"
|
||||
@dpz TINYINT,
|
||||
@mnoz NUMERIC(19,6),
|
||||
@vstC TINYINT,
|
||||
@menaDZ NVARCHAR(3),
|
||||
@kurzDZ NUMERIC(19,6),
|
||||
@kurzE NUMERIC(19,6),
|
||||
@jednM INT
|
||||
|
||||
|
||||
DECLARE @pol TABLE (IDZboSklad INT NOT NULL, Mnozstvi NUMERIC(19,6) NOT NULL DEFAULT 0.0, Sarze NVARCHAR(100), PaletList NVARCHAR(100) )
|
||||
DELETE FROM @pol
|
||||
|
||||
|
||||
SET @uziv = 0
|
||||
|
||||
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%NOVÝ% sklad%výdej%'
|
||||
IF (@sklTechnolog IS NULL)
|
||||
SELECT @sklTechnolog=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'Technolog%sklad%výdej%'
|
||||
IF (@sklPekarna IS NULL)
|
||||
SELECT @sklPekarna=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'Výroba - Pekárna'
|
||||
|
||||
|
||||
|
||||
|
||||
DECLARE c CURSOR LOCAL FOR
|
||||
SELECT p.ID, p.IDDoklad, p.IDZboSklad, p.Mnozstvi, p.PrepMnozstvi, s.IDKmenZbozi, d.IDSklad, d.DatPorizeni
|
||||
FROM dbo.TabPohybyZbozi p
|
||||
INNER JOIN dbo.TabDokladyZbozi d ON (d.ID=p.IDDoklad)
|
||||
INNER JOIN dbo.TabStavSkladu s ON (s.ID=p.IDZboSklad)
|
||||
WHERE d.ID=@IDDoklad
|
||||
OPEN c
|
||||
WHILE (1=1)
|
||||
BEGIN
|
||||
FETCH NEXT FROM c INTO @idPZ, @idDZ, @idSS, @mnozPZ, @prepKoef, @idKZ, @sklad, @datPorizeni
|
||||
IF (@@FETCH_STATUS<>0) BREAK
|
||||
|
||||
SET @mnozPZ = @mnozPZ * @prepKoef
|
||||
SET @mnozNevyd = ISNULL( (SELECT SUM(p.Mnozstvi*p.PrepMnozstvi) FROM dbo.TabPohybyZbozi p
|
||||
INNER JOIN dbo.TabDokladyZbozi d ON (d.ID=p.IDDoklad)
|
||||
WHERE p.IDZboSklad=@idSS
|
||||
AND p.IDDoklad<>@idDZ
|
||||
AND p.Mnozstvi>0
|
||||
AND d.DruhPohybuZbo IN (2,4)
|
||||
AND d.Realizovano=0
|
||||
AND d.DatPorizeni<@datPorizeni)
|
||||
, 0)
|
||||
SET @mnozSkl = ISNULL( (SELECT Mnozstvi FROM dbo.TabStavSkladu WHERE ID=@idSS), 0)
|
||||
SET @mnozChybi = @mnozSkl - @mnozPZ - @mnozNevyd
|
||||
IF (@mnozChybi>0)
|
||||
BEGIN
|
||||
SET @idSSPek = NULL
|
||||
IF (@sklPekarna IS NOT NULL)
|
||||
SELECT @idSSPek=ID FROM dbo.TabStavSkladu WHERE IDSklad=@sklPekarna AND IDKmenZbozi=@idKZ
|
||||
SELECT @poslSarze=_Prevod_PosledniSarze, @poslPalList=_Prevod_PosledniPaletList
|
||||
FROM dbo.TabStavSkladu_EXT WHERE ID=@idSSPek
|
||||
|
||||
UPDATE @pol SET Mnozstvi = Mnozstvi + @mnozChybi WHERE IDZboSklad=@idSS
|
||||
IF (@@ROWCOUNT=0)
|
||||
INSERT @pol (IDZboSklad, Mnozstvi, Sarze, PaletList) SELECT @idSS, @mnozChybi, @poslSarze, @poslPalList
|
||||
END
|
||||
|
||||
END
|
||||
CLOSE c
|
||||
DEALLOCATE c
|
||||
|
||||
|
||||
-- pokud mam polozky na doplneni, udelej doklad a realizuj ho
|
||||
IF EXISTS(SELECT 1 FROM @pol)
|
||||
BEGIN
|
||||
BEGIN TRY
|
||||
SET @tranPred=@@TRANCOUNT
|
||||
IF (@tranPred=0)
|
||||
BEGIN TRAN
|
||||
|
||||
SET @datNasklad = (SELECT MIN(d.DatPorizeni) FROM dbo.TabPohybyZbozi p INNER JOIN dbo.TabDokladyZbozi d ON (d.ID=p.IDDoklad)
|
||||
WHERE p.Mnozstvi>0 AND d.DruhPohybuZbo IN (2,4) AND d.Realizovano=0 AND p.IDZboSklad IN (SELECT IDZboSklad FROM @pol))
|
||||
IF (@datNasklad IS NULL)
|
||||
SET @datNasklad = DATEADD(second, -5, @datPorizeni)
|
||||
|
||||
SET @dpz=0
|
||||
EXEC dbo.hp_InsertHlavickyOZ @ident=@idDZNew OUT, @Sklad=@sklad, @DruhPohybu=@dpz, @RadaDokladu=@rDokl, @CisloOrg=0, @DatumPorizeni=@datNasklad
|
||||
IF (@idDZNew IS NOT NULL)
|
||||
BEGIN
|
||||
SELECT @menaDZ=Mena, @vstC=VstupniCena, @kurzDZ=Kurz, @kurzE=KurzEuro, @jednM=JednotkaMeny FROM dbo.TabDokladyZbozi WHERE ID=@idDZNew
|
||||
|
||||
DECLARE c CURSOR LOCAL FOR
|
||||
SELECT IDZboSklad, Mnozstvi, ISNULL(Sarze,N''), ISNULL(PaletList,N'') FROM @pol
|
||||
OPEN c
|
||||
WHILE (1=1)
|
||||
BEGIN
|
||||
FETCH NEXT FROM c INTO @idSS, @mnoz, @poslSarze, @poslPalList
|
||||
IF (@@FETCH_STATUS<>0) BREAK
|
||||
|
||||
EXEC dbo.hp_InsertPolozkyOZ @ident=@idPZNew OUT, @IDDoklad=@idDZNew, @DruhPohybu=@dpz, @CisloOrg=0, @IDZboSklad=@idSS, @Mena=@menaDZ,
|
||||
@Kurz=@kurzDZ, @KurzEuro=@kurzE, @JednotkaMeny=@jednM, @SazbaSD=NULL, @SazbaDPH=NULL, @ZakazanoDPH=0,
|
||||
@VstupniCena=@vstC, @Mnozstvi=@mnoz
|
||||
IF (@idPZNew IS NOT NULL)
|
||||
BEGIN
|
||||
IF (@poslSarze<>N'') OR (@poslPalList<>N'')
|
||||
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=@poslSarze, _Vyroba_PaletList=@poslPalList WHERE ID=@idPZNew
|
||||
END
|
||||
END
|
||||
|
||||
END
|
||||
CLOSE c
|
||||
DEALLOCATE c
|
||||
|
||||
UPDATE dbo.TabDokladyZbozi SET BlokovaniEditoru=NULL WHERE ID=@idDZNew
|
||||
EXEC dbo.hp_VypCenOZPolozek_IDDokladu @IDDoklad=@idDZ, @AktualizaceSlev=0
|
||||
-- realizace
|
||||
EXEC dbo.hp_Realizuj_Prijem @ID=@idDZNew, @DatumRealizace=@datNasklad, @Uzivatel=@uziv, @BylaChyba=@bChyba OUT
|
||||
|
||||
END
|
||||
IF (@tranPred=0) AND (@@TRANCOUNT>0)
|
||||
COMMIT TRAN
|
||||
END TRY
|
||||
BEGIN CATCH
|
||||
SET @errMsg = ERROR_MESSAGE()
|
||||
IF (@tranPred=0) AND (@@TRANCOUNT>0)
|
||||
ROLLBACK TRAN
|
||||
END CATCH
|
||||
END
|
||||
|
||||
|
||||
|
||||
299
_custom/Rootvin/sql/ep_Vyroba_GenOdvodZeMzdy.sql
Normal file
299
_custom/Rootvin/sql/ep_Vyroba_GenOdvodZeMzdy.sql
Normal file
@ -0,0 +1,299 @@
|
||||
-- dbo.ep_Vyroba_GenOdvodZeMzdy
|
||||
CREATE PROCEDURE dbo.ep_Vyroba_GenOdvodZeMzdy
|
||||
@IDMzdy INT=NULL,
|
||||
@bezVyrCis BIT=1,
|
||||
@radaOdvod NVARCHAR(3)=NULL,
|
||||
@skladOdvod NVARCHAR(30)=NULL,
|
||||
@realizujPrijem BIT=0,
|
||||
@prevodDoVyssiho BIT=0,
|
||||
@kopiiNaTechSklad BIT=0,
|
||||
@errMsg NVARCHAR(500)=N'' OUT
|
||||
AS
|
||||
|
||||
-- HD Consulting Strakonice, T. Buzin
|
||||
-- !! proceduru neupravujte, bude stejne pregenerovana pri startu Windows sluzby HDCDZApi !!
|
||||
-- konfiguraci lze ovlivnit pres tabulku #HDCTabGenOdvodZeMzdyKonfig
|
||||
-- pozor, v tom pripade musi byt na rade prikazu sklad pro generovani odvodu roven NULL
|
||||
|
||||
|
||||
SET NOCOUNT ON
|
||||
|
||||
DECLARE
|
||||
@aktDatum DATETIME=GETDATE(),
|
||||
@bChyba BIT,
|
||||
@ret INT,
|
||||
@jeOdvOper BIT=0,
|
||||
@idUziv INT,
|
||||
@IDPrikaz INT,
|
||||
@IDZakazModif INT,
|
||||
@IDPrikazVyssi INT,
|
||||
@doklKV INT,
|
||||
@IDKmen INT,
|
||||
@idPZ INT,
|
||||
@NekontrolMnozOdvedFinal BIT=0,
|
||||
@mnozstvi NUMERIC(19,6)=0,
|
||||
@radaOdvNaSklad NVARCHAR(3)=N'273',
|
||||
@sklProOdvod NVARCHAR(30)=N'261',
|
||||
@radaVPr NVARCHAR(10),
|
||||
@idPrij INT,
|
||||
@idPrijKopie INT,
|
||||
@sklTechnicky NVARCHAR(30),
|
||||
@dpz TINYINT,
|
||||
@dzDatum DATETIME,
|
||||
@dzMena NVARCHAR(3)
|
||||
DECLARE
|
||||
@idDZPomocPrijem INT,
|
||||
@idPZPomocPrijem INT,
|
||||
@idSSPomocPrijem INT,
|
||||
@mnozPrijem NUMERIC(19,6)
|
||||
|
||||
|
||||
|
||||
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)
|
||||
WHERE pmz.ID=@IDMzdy
|
||||
IF (@jeOdvOper=0)
|
||||
RETURN
|
||||
|
||||
|
||||
|
||||
|
||||
IF OBJECT_ID(N'dbo.TabUserCfg', N'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
|
||||
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<4E><45>%'
|
||||
IF (@sklTechnicky IS NULL)
|
||||
SELECT @sklTechnicky=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'Technolog%sklad%v<>dej%'
|
||||
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS #TabOdved
|
||||
CREATE TABLE #TabOdved (
|
||||
ID INT IDENTITY NOT NULL,
|
||||
IDPrikaz INT NOT NULL,
|
||||
IDDilec INT NOT NULL,
|
||||
IDZakazModif INT NULL,
|
||||
IDZakazka INT NULL,
|
||||
maxMnozstvi NUMERIC(19,6) NULL,
|
||||
mnozstvi NUMERIC(19,6) NOT NULL,
|
||||
EvidJednotka NUMERIC(19,6) NOT NULL,
|
||||
Sklad NVARCHAR(30) NULL,
|
||||
KodUmisteni NVARCHAR(15) NULL,
|
||||
IDPohZbo INT NULL,
|
||||
PomVnoreni INT NULL,
|
||||
StavPrikazu TINYINT NULL,
|
||||
PRIMARY KEY(ID)
|
||||
)
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS #TabOdved_IDMzdy
|
||||
CREATE TABLE #TabOdved_IDMzdy (IDPrikaz int, IDMzdy int)
|
||||
|
||||
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS #TabVyrCisProGenOdv
|
||||
CREATE TABLE #TabVyrCisProGenOdv (
|
||||
ID INT IDENTITY NOT NULL,
|
||||
IDOdvedeni INT NOT NULL,
|
||||
IDPrikaz INT NOT NULL,
|
||||
VyrCislo NVARCHAR(100) NOT NULL,
|
||||
Mnozstvi NUMERIC(19,6) NOT NULL DEFAULT 0,
|
||||
MaxMnozstvi NUMERIC(19,6) NULL,
|
||||
IDVyrCP INT NULL,
|
||||
PRIMARY KEY(ID)
|
||||
)
|
||||
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS #TabPolotovProGenOdv
|
||||
CREATE TABLE #TabPolotovProGenOdv (
|
||||
ID INT IDENTITY NOT NULL,
|
||||
IDOdvedeni INT NOT NULL,
|
||||
IDPrikaz INT NOT NULL,
|
||||
Doklad INT NOT NULL,
|
||||
IDDilec INT NOT NULL,
|
||||
Mnozstvi NUMERIC(19,6) NOT NULL,
|
||||
MaxMnozstvi NUMERIC(19,6) NULL,
|
||||
PRIMARY KEY(ID)
|
||||
)
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS #TabGenPrijem
|
||||
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
|
||||
|
||||
UPDATE dbo.TabPrikazMzdyAZmetky SET GenerovanoOdvadeni=1 WHERE ID=@IDMzdy
|
||||
IF (@@ROWCOUNT=0) RETURN
|
||||
IF @mnozstvi<=0.0 RETURN
|
||||
|
||||
|
||||
|
||||
|
||||
SELECT @IDPrikaz=IDPrikaz FROM dbo.TabPrikazMzdyAZmetky WHERE ID=@IDMzdy
|
||||
SELECT @radaVPr=Rada, @IDKmen=IDTabKmen, @IDZakazModif=IDZakazModif, @IDPrikazVyssi=IDPrikazVyssi
|
||||
FROM dbo.TabPrikaz WHERE ID=@IDPrikaz
|
||||
|
||||
-- nastav sklad pro odvod podle karty
|
||||
IF (@sklProOdvod IS NULL)
|
||||
SELECT @sklProOdvod=VychoziSklad FROM dbo.TabParKmZ WHERE IDKmenZbozi=@IDKmen
|
||||
|
||||
-- pripadne zkus podle rady prikazu
|
||||
SELECT @radaOdvNaSklad=CASE WHEN RadaDokl_OdvedeniPrikazu IS NULL THEN @radaOdvNaSklad ELSE RadaDokl_OdvedeniPrikazu END,
|
||||
@sklProOdvod=CASE WHEN PrijemVyrDil_SkladProGenHlavDZ IS NULL THEN @sklProOdvod ELSE PrijemVyrDil_SkladProGenHlavDZ END
|
||||
FROM dbo.TabRadyPrikazu WHERE Rada=@radaVPr
|
||||
|
||||
|
||||
IF (@radaOdvod IS NOT NULL)
|
||||
SET @radaOdvNaSklad=@radaOdvod
|
||||
IF (@skladOdvod IS NOT NULL)
|
||||
SET @sklProOdvod = @skladOdvod
|
||||
|
||||
|
||||
UPDATE #tabOdved SET mnozstvi=CASE WHEN @NekontrolMnozOdvedFinal=0 AND mnozstvi+@mnozstvi>maxMnozstvi THEN maxMnozstvi ELSE mnozstvi+@mnozstvi END WHERE IDPrikaz=@IDPrikaz
|
||||
IF (@@ROWCOUNT=0)
|
||||
INSERT INTO #tabOdved (IDPrikaz, IDDilec, IDZakazModif, IDZakazka, maxMnozstvi, EvidJednotka, mnozstvi, sklad, StavPrikazu)
|
||||
SELECT P.ID,
|
||||
CASE WHEN ISNULL(ParKZ.OdvadetNaZaklVari,0)=0 THEN P.IDTabKmen ELSE KZ.IDKusovnik END,
|
||||
ZMD.IDZakazModif,
|
||||
P.IDZakazka,
|
||||
CASE WHEN @NekontrolMnozOdvedFinal=1 THEN NULL ELSE P.kusy_zive END,
|
||||
P.EvidJednotka,
|
||||
CASE WHEN @NekontrolMnozOdvedFinal=0 AND @mnozstvi>P.kusy_zive THEN P.kusy_zive ELSE @mnozstvi END,
|
||||
P.sklad,
|
||||
P.StavPrikazu
|
||||
FROM dbo.TabPrikaz P
|
||||
INNER JOIN dbo.TabKmenZbozi KZ ON (KZ.ID=P.IDTabKmen)
|
||||
LEFT OUTER JOIN dbo.TabZakazModifDilce ZMD ON (ZMD.IDZakazModif=P.IDZakazModif AND ZMD.IDKmenZbozi=KZ.ID)
|
||||
LEFT OUTER JOIN dbo.TabParKmZ ParKZ ON (ParKZ.IDKmenZbozi=P.IDTabKmen)
|
||||
WHERE P.ID=@IDPrikaz AND
|
||||
(CASE WHEN @NekontrolMnozOdvedFinal=0 AND @mnozstvi>P.kusy_zive THEN P.kusy_zive ELSE @mnozstvi END)>0
|
||||
INSERT INTO #TabOdved_IDMzdy (IDPrikaz, IDMzdy) VALUES (@IDPrikaz, @IDMzdy)
|
||||
|
||||
|
||||
|
||||
UPDATE O SET maxMnozstvi=CASE WHEN RP.NekontrolMnozOdvedFinal=1 THEN NULL ELSE P.kusy_zive END
|
||||
FROM #tabOdved O
|
||||
INNER JOIN dbo.TabPrikaz P ON (P.ID=O.IDPrikaz)
|
||||
INNER JOIN dbo.TabRadyPrikazu RP ON (RP.rada=P.rada)
|
||||
|
||||
UPDATE #tabOdved SET mnozstvi=maxMnozstvi WHERE maxMnozstvi IS NOT NULL AND mnozstvi>maxMnozstvi
|
||||
DELETE #TabVyrCisProGenOdv WHERE IDOdvedeni IN (SELECT O2.ID FROM #tabOdved O2 WHERE O2.Mnozstvi<=0.0)
|
||||
DELETE #TabPolotovProGenOdv WHERE IDOdvedeni IN (SELECT O2.ID FROM #tabOdved O2 WHERE O2.Mnozstvi<=0.0)
|
||||
DELETE #tabOdved WHERE Mnozstvi<=0.0
|
||||
|
||||
|
||||
IF (@sklProOdvod IS NOT NULL)
|
||||
UPDATE #tabOdved SET Sklad=@sklProOdvod
|
||||
|
||||
|
||||
|
||||
EXEC dbo.hp_PrednabidniTabVyrCisProGenOdv @ProIDPrikaz=NULL
|
||||
IF (@bezVyrCis=1)
|
||||
DELETE #TabVyrCisProGenOdv
|
||||
|
||||
|
||||
IF (@prevodDoVyssiho=0)
|
||||
BEGIN
|
||||
BEGIN TRY
|
||||
EXEC @ret=dbo.hp_OdvedeniPrikazu @RadaDokladu=@radaOdvNaSklad, @IDObdobi=NULL, @KonecneOdvedeni=0, @DatPorizeni=NULL, @SekejZakazky=1, @SekejPrikazy=1
|
||||
END TRY
|
||||
BEGIN CATCH
|
||||
SET @errMsg = 'Chyba pri odvadeni: ' + ERROR_MESSAGE()
|
||||
END CATCH
|
||||
END
|
||||
ELSE
|
||||
BEGIN
|
||||
IF (@IDPrikazVyssi IS NOT NULL)
|
||||
BEGIN
|
||||
IF OBJECT_ID(N'tempdb..#TabOdved_IDMzdy', N'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)
|
||||
|
||||
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
|
||||
DELETE FROM #TabGenPrijem
|
||||
END -- @IDPrikazVyssi IS NOT NULL
|
||||
END
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
DECLARE prij CURSOR LOCAL FOR
|
||||
SELECT ID FROM #TabGenPrijem
|
||||
OPEN prij
|
||||
WHILE (1=1)
|
||||
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)
|
||||
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
|
||||
|
||||
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
|
||||
|
||||
END
|
||||
CLOSE prij
|
||||
DEALLOCATE prij
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
-- cisteni
|
||||
DROP TABLE IF EXISTS #TabGenPrijem
|
||||
DROP TABLE IF EXISTS #TabPolotovProGenOdv
|
||||
DROP TABLE IF EXISTS #TabVyrCisProGenOdv
|
||||
DROP TABLE IF EXISTS #TabOdved_IDMzdy
|
||||
DROP TABLE IF EXISTS #TabOdved
|
||||
|
||||
DROP TABLE IF EXISTS #HDCTabGenOdvodZeMzdyKonfig
|
||||
503
_custom/Rootvin/sql/ep_Vyroba_GenVydejZeMzdy.sql
Normal file
503
_custom/Rootvin/sql/ep_Vyroba_GenVydejZeMzdy.sql
Normal file
@ -0,0 +1,503 @@
|
||||
-- dbo.ep_Vyroba_GenVydejZeMzdy
|
||||
CREATE PROCEDURE dbo.ep_Vyroba_GenVydejZeMzdy
|
||||
@IDMzdy INT=NULL,
|
||||
@IDDoklad INT=NULL,
|
||||
@spotrebaTesto BIT=0,
|
||||
@spotreba702 BIT=0,
|
||||
@smazVydejTesto BIT=0,
|
||||
@errMsg NVARCHAR(500)=N'' OUT,
|
||||
@extTab NVARCHAR(50)=NULL,
|
||||
@vydejAll BIT=0,
|
||||
@realizujVydej BIT=0,
|
||||
@denSmena NVARCHAR(15)=NULL,
|
||||
@sklVydej NVARCHAR(30)=N'261',
|
||||
@radaVydej NVARCHAR(3)=N'223',
|
||||
@respExistDokl BIT=1
|
||||
AS
|
||||
|
||||
-- HD Consulting Strakonice, T. Buzin
|
||||
-- !! proceduru neupravujte, bude stejne pregenerovana pri startu Windows sluzby HDCDZApi !!
|
||||
|
||||
-- @extTab - tabulka, do ktere budou vraceny pohyby vydejky @extTab (ID INT NOT NULL, IDPohZbo INT NOT NULL)
|
||||
-- @vydejAll - bude vydano vse, nejen kde jde splnena podminka TabPrKVazby - dbo.hf_GetPrPDokladForPrKV(PrKV.ID)=@PrP_Doklad
|
||||
-- pokud existuje objekt #HDCTabPrKVazbyGenPredna, jedu vydej podle nej
|
||||
|
||||
|
||||
SET NOCOUNT ON
|
||||
|
||||
DECLARE
|
||||
@bChyba BIT,
|
||||
@opakReal BIT,
|
||||
@retVal INT=0,
|
||||
@errID int,
|
||||
@sql NVARCHAR(1000),
|
||||
@idUziv INT=0,
|
||||
@idZam INT,
|
||||
@sklTechnolog NVARCHAR(30),
|
||||
@sklMatHlavni NVARCHAR(30),
|
||||
@sklPekarna NVARCHAR(30),
|
||||
@szDilec NVARCHAR(3)
|
||||
DECLARE
|
||||
@idDZPomocPrij INT,
|
||||
@radaPrijem NVARCHAR(3)='292',
|
||||
@menaPrij NVARCHAR(3),
|
||||
@kurzPrij NUMERIC(19,6),
|
||||
@kurzPrijE NUMERIC(19,6),
|
||||
@vstCPrij TINYINT,
|
||||
@jednMPrij INT,
|
||||
@idPZPomocPrij INT,
|
||||
@idSSPomocPrij INT,
|
||||
@mnozSklad NUMERIC(19,6),
|
||||
@mnozVydej NUMERIC(19,6),
|
||||
@mnozPrij NUMERIC(19,6)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
IF OBJECT_ID(N'dbo.TabUserCfg', N'U') IS NOT NULL
|
||||
SET @idUziv = (SELECT ID FROM dbo.TabUserCfg WHERE LoginName=SUSER_SNAME())
|
||||
SET @idUziv = ISNULL(@idUziv, 0)
|
||||
|
||||
|
||||
SET @denSmena = ISNULL(@denSmena, N'')
|
||||
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<4E><45>%'
|
||||
IF (@sklTechnolog IS NULL)
|
||||
SELECT @sklTechnolog=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'Technolog%sklad%v<>dej%'
|
||||
IF (@sklPekarna IS NULL)
|
||||
SELECT @sklPekarna=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'V<EFBFBD>roba - Pek<65>rna'
|
||||
|
||||
|
||||
IF EXISTS(SELECT 1 FROM dbo.TabPrikazMzdyAZmetky)
|
||||
BEGIN
|
||||
SELECT @retVal=MAX(ID) FROM dbo.TabPrikazMzdyAZmetky
|
||||
DBCC CHECKIDENT(TabPrikazMzdyAZmetky, RESEED, @retVal)
|
||||
END
|
||||
ELSE
|
||||
DBCC CHECKIDENT(TabPrikazMzdyAZmetky, RESEED, 1)
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS #TabPrKVazbyGen
|
||||
CREATE TABLE #TabPrKVazbyGen (
|
||||
ID INT IDENTITY NOT NULL,
|
||||
Generuj BIT NOT NULL DEFAULT 1,
|
||||
PoKorekciDat BIT NOT NULL DEFAULT 0,
|
||||
IDPrKV INT NOT NULL,
|
||||
Doklad INT NOT NULL,
|
||||
IDPrikaz INT NOT NULL,
|
||||
Prednastaveno BIT NOT NULL DEFAULT 1,
|
||||
Sklad NVARCHAR(30) NULL,
|
||||
VyrStredisko NVARCHAR(30) NULL,
|
||||
IDPracoviste INT NULL,
|
||||
mnoz_zad NUMERIC(19,6) NOT NULL DEFAULT 0,
|
||||
Mnoz_nepotrebne NUMERIC(19,6) NOT NULL DEFAULT 0,
|
||||
Mnoz_skut_realizovane NUMERIC(19,6) NOT NULL DEFAULT 0,
|
||||
Cena_real NUMERIC(19,6) NOT NULL DEFAULT 0,
|
||||
Mnoz_odv NUMERIC(19,6) NOT NULL DEFAULT 0,
|
||||
Cena_odv NUMERIC(19,6) NOT NULL DEFAULT 0,
|
||||
MnozstviMax NUMERIC(19,6) NULL,
|
||||
PuvodniMnozstviPoz NUMERIC(19,6) NULL,
|
||||
MnozstviPoz NUMERIC(19,6) NOT NULL,
|
||||
PomMnozPoz NUMERIC(19,6) NOT NULL DEFAULT 0,
|
||||
IDPohZbo INT NULL,
|
||||
PoznamkaNaDoklad NVARCHAR(max) NULL,
|
||||
priorita INT NOT NULL DEFAULT 0,
|
||||
vyssi INT NOT NULL,
|
||||
nizsi INT NOT NULL,
|
||||
DavkaTPV NUMERIC(19,6) NOT NULL DEFAULT 1,
|
||||
pozice NVARCHAR(100) NULL DEFAULT N'',
|
||||
Operace NCHAR(4) NULL,
|
||||
FixniMnozstvi NUMERIC(19,6) NOT NULL DEFAULT 0,
|
||||
mnozstvi NUMERIC(19,6) NOT NULL DEFAULT 1,
|
||||
ProcZtrat NUMERIC(5,2) NOT NULL DEFAULT 0,
|
||||
mnozstviSeZtratou NUMERIC(19,6) NOT NULL DEFAULT 0,
|
||||
Prirez NUMERIC(19,6) NOT NULL DEFAULT 1,
|
||||
Poznamka NTEXT NULL,
|
||||
pom_pomer_A NUMERIC(19,6) NULL,
|
||||
pom_pomer_B NUMERIC(19,6) NULL,
|
||||
Dodavatel INT NULL,
|
||||
MJ NVARCHAR(10) NULL,
|
||||
mnoz_pozadovane AS (CONVERT(numeric(19,6),(CASE WHEN [mnoz_nepotrebne]>[mnoz_zad] THEN 0.0 ELSE [mnoz_zad] - [mnoz_nepotrebne] END))),
|
||||
PRIMARY KEY (ID)
|
||||
)
|
||||
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS #TabPrKVazbyGen_IDMzdy
|
||||
CREATE TABLE #TabPrKVazbyGen_IDMzdy (IDPrikaz int, Doklad int, IDMzdy int)
|
||||
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS #TabPrKVazbyGenVC
|
||||
CREATE TABLE #TabPrKVazbyGenVC (
|
||||
ID INT IDENTITY NOT NULL,
|
||||
IDPolozky INT NOT NULL,
|
||||
VyrCislo NVARCHAR(100) NOT NULL,
|
||||
Mnozstvi NUMERIC(19,6) NOT NULL,
|
||||
Sklad NVARCHAR(30) NULL,
|
||||
IDKmenZbozi INT NULL,
|
||||
IDVyrCP INT NULL,
|
||||
PRIMARY KEY(ID)
|
||||
)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
DECLARE
|
||||
@RespektovatExistEvid bit,
|
||||
@idDilec INT,
|
||||
@IDPrikaz int=NULL,
|
||||
@IDPrPostup INT=NULL,
|
||||
@mnozstviPomer_A numeric(19,6),
|
||||
@mnozstviPomer_B numeric(19,6),
|
||||
@IDPrKV int,
|
||||
@mnoz_zad numeric(19,6),
|
||||
@PrKVDoklad int,
|
||||
@PocetVazeb int,
|
||||
@PrP_Doklad int
|
||||
|
||||
|
||||
SET @RespektovatExistEvid = @respExistDokl
|
||||
|
||||
|
||||
SELECT @errID=NULL, @errMsg='', @PocetVazeb=0
|
||||
SELECT @IDPrikaz=MZ.IDPrikaz, @mnozstviPomer_A=(MZ.kusy_odv+MZ.kusy_zmet_opr+MZ.kusy_zmet_neopr), @mnozstviPomer_B=PrP.kusy_zad, @PrP_Doklad=PrP.Doklad,
|
||||
@IDPrPostup=PrP.ID, @szDilec=k.SkupZbo
|
||||
FROM dbo.TabPrikazMzdyAZmetky MZ
|
||||
INNER JOIN dbo.TabPrPostup PrP ON (PrP.IDPrikaz=MZ.IDPrikaz AND PrP.Doklad=MZ.DokladPrPostup AND PrP.Alt=MZ.AltPrPostup AND PrP.IDOdchylkyDo IS NULL)
|
||||
INNER JOIN dbo.TabPrikaz vp ON (vp.ID=MZ.IDPrikaz)
|
||||
INNER JOIN dbo.TabKmenZbozi k ON (k.ID=vp.IDTabKmen)
|
||||
WHERE MZ.ID=@IDMzdy
|
||||
|
||||
UPDATE dbo.TabPrikazMzdyAZmetky SET GenerovanaMatVydejka=1 WHERE ID=@IDMzdy
|
||||
-- pokud uz byla generovana vydejka, skonci
|
||||
IF (@@ROWCOUNT=0)
|
||||
RETURN 0
|
||||
|
||||
|
||||
SELECT @idZam=Zamestnanec FROM dbo.TabPrikazMzdyAZmetky WHERE ID=@IDMzdy
|
||||
SELECT @idDilec = IDTabKmen FROM dbo.TabPrikaz WHERE ID=@IDPrikaz
|
||||
|
||||
|
||||
|
||||
IF OBJECT_ID(N'tempdb..#HDCTabPrKVazbyGenPredna', N'U') IS NULL
|
||||
BEGIN
|
||||
IF (@mnozstviPomer_A<=0.0)
|
||||
RETURN -1
|
||||
|
||||
IF (@vydejAll=1)
|
||||
DECLARE crPom1334 CURSOR FAST_FORWARD LOCAL FOR
|
||||
SELECT PrKV.ID, PrKV.Mnoz_zad, PrKV.Doklad
|
||||
FROM dbo.TabPrKVazby PrKV
|
||||
INNER JOIN dbo.TabPrikaz P ON (P.ID=PrKV.IDPrikaz)
|
||||
INNER JOIN dbo.TabRadyPrikazu RP ON (RP.rada=P.rada)
|
||||
INNER JOIN dbo.TabKmenZbozi KZ ON (KZ.ID=PrKV.nizsi AND KZ.sluzba=0)
|
||||
WHERE P.StavPrikazu IN (30,50) AND (P.kusy_zive>0.0 OR RP.KontrolovatRozpracPriUzav=0) AND PrKV.predzpracovano=0 AND PrKV.uzavreno=0 AND PrKV.RezijniMat=0 AND
|
||||
PrKV.IDPrikaz=@IDPrikaz AND PrKV.prednastaveno=1 AND PrKV.IDOdchylkyDo IS NULL
|
||||
ELSE
|
||||
DECLARE crPom1334 CURSOR FAST_FORWARD LOCAL FOR
|
||||
SELECT PrKV.ID, PrKV.Mnoz_zad, PrKV.Doklad
|
||||
FROM dbo.TabPrKVazby PrKV
|
||||
INNER JOIN dbo.TabPrikaz P ON (P.ID=PrKV.IDPrikaz)
|
||||
INNER JOIN dbo.TabRadyPrikazu RP ON (RP.rada=P.rada)
|
||||
INNER JOIN dbo.TabKmenZbozi KZ ON (KZ.ID=PrKV.nizsi AND KZ.sluzba=0)
|
||||
WHERE P.StavPrikazu IN (30,50) AND (P.kusy_zive>0.0 OR RP.KontrolovatRozpracPriUzav=0) AND PrKV.predzpracovano=0 AND PrKV.uzavreno=0 AND PrKV.RezijniMat=0 AND
|
||||
PrKV.IDPrikaz=@IDPrikaz AND dbo.hf_GetPrPDokladForPrKV(PrKV.ID)=@PrP_Doklad AND PrKV.prednastaveno=1 AND PrKV.IDOdchylkyDo IS NULL
|
||||
OPEN crPom1334
|
||||
FETCH NEXT FROM crPom1334 INTO @IDPrKV, @Mnoz_zad, @PrKVDoklad
|
||||
WHILE @@fetch_status=0
|
||||
BEGIN
|
||||
UPDATE #TabPrKVazbyGen SET MnozstviPoz=@mnoz_zad * (pom_pomer_A+@mnozstviPomer_A)/pom_pomer_B, pom_pomer_A=pom_pomer_A+@mnozstviPomer_A
|
||||
WHERE IDPrKV=@IDPrKV
|
||||
IF (@@ROWCOUNT=0)
|
||||
BEGIN
|
||||
IF @RespektovatExistEvid=1
|
||||
SELECT @mnozstviPomer_A=SUM(MZ.kusy_odv+MZ.kusy_zmet_opr+MZ.kusy_zmet_neopr)
|
||||
FROM dbo.TabPrikazMzdyAZmetky MZ WHERE MZ.IDPrikaz=@IDPrikaz AND MZ.DokladPrPostup=@PrP_Doklad AND MZ.GenerovanaMatVydejka=1
|
||||
INSERT INTO #TabPrKVazbyGen (IDPrKV, MnozstviPoz, pom_pomer_A, pom_pomer_B, Doklad, IDPrikaz, Prednastaveno, Sklad, VyrStredisko, IDPracoviste, mnoz_zad,
|
||||
Mnoz_nepotrebne, Mnoz_skut_realizovane, Cena_real, Mnoz_odv, Cena_odv, priorita, vyssi, nizsi, DavkaTPV, pozice, Operace, FixniMnozstvi,
|
||||
mnozstvi, ProcZtrat, mnozstviSeZtratou, Prirez, Poznamka)
|
||||
SELECT PrKV.ID,
|
||||
PrKV.mnoz_zad * @mnozstviPomer_A/@mnozstviPomer_B,
|
||||
@mnozstviPomer_A, @mnozstviPomer_B,
|
||||
PrKV.Doklad, PrKV.IDPrikaz, PrKV.Prednastaveno, PrKV.Sklad, PrKV.VyrStredisko, PrKV.IDPracoviste, PrKV.mnoz_zad, PrKV.Mnoz_nepotrebne,
|
||||
PrKV.Mnoz_skut_realizovane, PrKV.Cena_real, PrKV.Mnoz_odv, PrKV.Cena_odv, PrKV.priorita, PrKV.vyssi, PrKV.nizsi, PrKV.DavkaTPV, PrKV.pozice, PrKV.Operace, PrKV.FixniMnozstvi,
|
||||
PrKV.mnozstvi, PrKV.ProcZtrat, PrKV.mnozstviSeZtratou, PrKV.Prirez, PrKV.Poznamka
|
||||
FROM dbo.TabPrKVazby PrKV
|
||||
WHERE PrKV.ID=@IDPrKV AND PrKV.uzavreno=0
|
||||
END
|
||||
INSERT INTO #TabPrKVazbyGen_IDMzdy (IDPrikaz, Doklad, IDMzdy) VALUES (@IDPrikaz, @PrKVDoklad, @IDMzdy)
|
||||
SET @PocetVazeb=@PocetVazeb + 1
|
||||
FETCH NEXT FROM crPom1334 INTO @IDPrKV, @Mnoz_zad, @PrKVDoklad
|
||||
END
|
||||
CLOSE crPom1334
|
||||
DEALLOCATE crPom1334
|
||||
|
||||
IF (@PocetVazeb<=0)
|
||||
RETURN -2
|
||||
|
||||
END
|
||||
ELSE
|
||||
BEGIN -- pokud mam seznam na co vygenerovat vydejku, jedu podle nej
|
||||
DELETE FROM #TabPrKVazbyGen
|
||||
INSERT INTO #TabPrKVazbyGen
|
||||
SELECT Generuj, PoKorekciDat, IDPrKV, Doklad, IDPrikaz, Prednastaveno, Sklad, VyrStredisko, IDPracoviste, mnoz_zad, Mnoz_nepotrebne, Mnoz_skut_realizovane,
|
||||
Cena_real, Mnoz_odv, Cena_odv, MnozstviMax, PuvodniMnozstviPoz, MnozstviPoz, PomMnozPoz, IDPohZbo, PoznamkaNaDoklad, priorita, vyssi, nizsi, DavkaTPV,
|
||||
pozice, Operace, FixniMnozstvi, mnozstvi, ProcZtrat, mnozstviSeZtratou, Prirez, Poznamka, pom_pomer_A, pom_pomer_B, Dodavatel
|
||||
FROM #HDCTabPrKVazbyGenPredna
|
||||
DROP TABLE #HDCTabPrKVazbyGenPredna
|
||||
END
|
||||
|
||||
-- preddefinovana mzda pro provazani
|
||||
IF OBJECT_ID(N'tempdb..#HDCTabPrKVazbyGen_IDMzdyPredna', N'U') IS NOT NULL
|
||||
BEGIN
|
||||
DELETE FROM #TabPrKVazbyGen_IDMzdy
|
||||
INSERT INTO #TabPrKVazbyGen_IDMzdy
|
||||
SELECT IDPrikaz, Doklad, IDMzdy FROM #HDCTabPrKVazbyGen_IDMzdyPredna
|
||||
DROP TABLE #HDCTabPrKVazbyGen_IDMzdyPredna
|
||||
END
|
||||
|
||||
|
||||
|
||||
EXEC dbo.hp_AktualizaceTabPrKVazbyGenVC @Vratka=0
|
||||
UPDATE #TabPrKVazbyGen SET Generuj=1, Sklad=@sklVydej
|
||||
|
||||
|
||||
IF (@smazVydejTesto=1)
|
||||
BEGIN
|
||||
-- vazba je primo na kartu testa
|
||||
IF (@szDilec<>N'701') AND EXISTS (SELECT 1 FROM #TabPrKVazbyGen WHERE IDPrikaz=@IDPrikaz AND nizsi IN (SELECT ID FROM dbo.TabKmenZbozi WHERE SkupZbo=N'701'))
|
||||
DELETE FROM #TabPrKVazbyGen WHERE IDPrikaz=@IDPrikaz AND nizsi IN (SELECT ID FROM dbo.TabKmenZbozi WHERE SkupZbo=N'701')
|
||||
|
||||
-- vazba je pres montaz SK702
|
||||
IF (@szDilec<>N'701') AND EXISTS (SELECT 1 FROM #TabPrKVazbyGen WHERE IDPrikaz=@IDPrikaz AND nizsi IN (SELECT ID FROM dbo.TabKmenZbozi WHERE SkupZbo=N'702'))
|
||||
DELETE FROM #TabPrKVazbyGen WHERE IDPrikaz=@IDPrikaz AND nizsi IN (SELECT ID FROM dbo.TabKmenZbozi WHERE SkupZbo=N'701')
|
||||
END
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS #TabGenRezVyd
|
||||
CREATE TABLE #TabGenRezVyd (ID int NOT NULL, PRIMARY KEY (ID))
|
||||
|
||||
|
||||
BEGIN TRY
|
||||
EXEC @retVal=dbo.hp_generujRezVyd @RadaDokladu=@radaVydej, @DruhPohybuZbo=NULL, @IDObdobi=0, @DatPorizeni=NULL, @SekejZakazky=0, @SekejPrikazy=0,
|
||||
@IDExistDoklad=@IDDoklad, @SekejOperace=0
|
||||
END TRY
|
||||
BEGIN CATCH
|
||||
SET @errMsg = 'Chyba generovani vydeje: ' + ERROR_MESSAGE()
|
||||
END CATCH
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
DECLARE
|
||||
@idVyd INT,
|
||||
@idKZ INT,
|
||||
@idPZ INT,
|
||||
@idSS INT,
|
||||
@poslSarze NVARCHAR(100),
|
||||
@errMsg702 NVARCHAR(500),
|
||||
@idKZ702 INT,
|
||||
@idPrikaz702 INT,
|
||||
@doklKV702 INT,
|
||||
@doklOp702 INT,
|
||||
@alt702 NCHAR(1),
|
||||
@mnoz702 NUMERIC(19,6),
|
||||
@idMzda702 INT,
|
||||
@aktDat DATETIME
|
||||
|
||||
SET @aktDat = GETDATE()
|
||||
|
||||
|
||||
-- potrebuju si vyrobit tisicikus ? musim pred realizaci vydejky na vyssi prikaz, udelam odvedenim prikazu na vyssi
|
||||
/*
|
||||
IF (@spotreba702=1)
|
||||
BEGIN
|
||||
DECLARE t CURSOR LOCAL FOR
|
||||
SELECT k.ID, p.Mnozstvi
|
||||
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 k.SkupZbo=N'702' AND k.Blokovano=0
|
||||
OPEN t
|
||||
WHILE (1=1)
|
||||
BEGIN
|
||||
FETCH NEXT FROM t INTO @idKZ702, @mnoz702
|
||||
IF (@@FETCH_STATUS<>0) BREAK
|
||||
|
||||
SET @idPrikaz702 = (SELECT ID FROM dbo.TabPrikaz WHERE IDPrikazVyssi=@IDPrikaz AND IDTabKmen=@idKZ702 AND StavPrikazu=30)
|
||||
IF (@idPrikaz702 IS NOT NULL)
|
||||
BEGIN
|
||||
-- evidence operace peceni
|
||||
SELECT TOP(1) @doklOp702=Doklad, @alt702=Alt FROM dbo.TabPrPostup WHERE IDOdchylkyDo IS NULL AND IDPrikaz=@idPrikaz702
|
||||
EXEC @idMzda702=dbo.hp_ZaevidujOperaci @IDPrikaz=@idPrikaz702, @Doklad=@doklOp702, @Alt=@alt702, @Datum=NULL, @Stav=1, @IDZam=@idZam, @Kusy_odv=@mnoz702
|
||||
SET @idMzda702 = ISNULL(@idMzda702, 0)
|
||||
IF (@idMzda702>0)
|
||||
BEGIN
|
||||
-- vydejku materialu nedelej, testo bylo uz odepsano svym prevedenim na vyssi
|
||||
-- EXEC dbo.ep_Vyroba_GenVydejZeMzdy @IDMzdy=@idMzda702, @spotrebaTesto=1, @realizujVydej=1, @errMsg=@errMsg702 OUT
|
||||
|
||||
EXEC dbo.ep_Vyroba_GenOdvodZeMzdy @IDMzdy=@idMzda702, @realizujPrijem=1, @errMsg=@errMsg702 OUT
|
||||
END
|
||||
-- odvedeni na vyssi prikaz
|
||||
SELECT TOP(1) @doklKV702=Doklad FROM dbo.TabPrKVazby WHERE IDOdchylkyDo IS NULL AND IDPrikaz=@IDPrikaz AND nizsi=@idKZ702
|
||||
EXEC dbo.hp_OdvedeniPrikazuPrevodem @DatPripadu=@aktDat, @KonecneOdvedeniNatvrdo=0, @IDPrikazZdroj=@idPrikaz702, @IDPrikazCil=@IDPrikaz,
|
||||
@Doklad=@doklKV702, @IDDilec=@idKZ702, @mnozstvi=@mnoz702, @IDOdvedeniVC=0
|
||||
END
|
||||
END
|
||||
CLOSE t
|
||||
DEALLOCATE t
|
||||
END
|
||||
*/
|
||||
|
||||
|
||||
DECLARE vyd CURSOR LOCAL FOR
|
||||
SELECT ID FROM #TabGenRezVyd
|
||||
OPEN vyd
|
||||
WHILE (1=1)
|
||||
BEGIN
|
||||
FETCH NEXT FROM vyd INTO @idVyd
|
||||
IF (@@FETCH_STATUS<>0) BREAK
|
||||
|
||||
IF (@denSmena<>N'')
|
||||
BEGIN
|
||||
IF NOT EXISTS(SELECT 1 FROM dbo.TabDokladyZbozi_EXT WHERE ID=@idVyd)
|
||||
INSERT dbo.TabDokladyZbozi_EXT (ID) VALUES (@idVyd)
|
||||
UPDATE dbo.TabDokladyZbozi_EXT SET _Vyroba_DenSmena=@denSmena WHERE ID=@idVyd
|
||||
END
|
||||
|
||||
DECLARE pV CURSOR LOCAL FOR
|
||||
SELECT p.ID, k.ID
|
||||
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=@idVyd AND k.Sluzba=0
|
||||
OPEN pV
|
||||
WHILE (1=1)
|
||||
BEGIN
|
||||
FETCH NEXT FROM pV INTO @idPZ, @idKZ
|
||||
IF (@@FETCH_STATUS<>0) BREAK
|
||||
SET @idSS = (SELECT ID FROM dbo.TabStavSkladu WHERE IDKmenZbozi=@idKZ AND IDSklad=@sklPekarna)
|
||||
SET @poslSarze = ISNULL( (SELECT _Prevod_PosledniSarze FROM dbo.TabStavSkladu_EXT WHERE ID=@idSS), N'')
|
||||
IF (@poslSarze<>N'')
|
||||
BEGIN
|
||||
IF NOT EXISTS(SELECT 1 FROM dbo.TabPohybyZbozi_EXT WHERE ID=@idPZ)
|
||||
INSERT dbo.TabPohybyZbozi_EXT (ID) VALUES (@idPZ)
|
||||
UPDATE dbo.TabPohybyZbozi_EXT SET _Vyroba_Sarze=@poslSarze WHERE ID=@idPZ
|
||||
END
|
||||
END
|
||||
CLOSE pV
|
||||
DEALLOCATE pV
|
||||
|
||||
|
||||
|
||||
-- begin: prijemka nedostatecneho materialu
|
||||
SET @idDZPomocPrij=NULL
|
||||
DECLARE pomPrij CURSOR LOCAL FOR
|
||||
SELECT p.IDZboSklad, p.Mnozstvi
|
||||
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=@idVyd
|
||||
AND k.Material=1 AND k.Sluzba=0
|
||||
OPEN pomPrij
|
||||
WHILE (1=1)
|
||||
BEGIN
|
||||
FETCH NEXT FROM pomPrij INTO @idSSPomocPrij, @mnozVydej
|
||||
IF (@@FETCH_STATUS<>0) BREAK
|
||||
|
||||
SET @mnozSklad = ISNULL( (SELECT Mnozstvi+MnozstviKPrijmu-MnozstviKVydeji FROM dbo.TabStavSkladu WHERE ID=@idSSPomocPrij), 0)
|
||||
IF (@mnozVydej>@mnozSklad)
|
||||
BEGIN
|
||||
SET @mnozPrij = @mnozVydej - @mnozSklad
|
||||
IF (@idDZPomocPrij IS NULL)
|
||||
BEGIN
|
||||
EXEC dbo.hp_InsertHlavickyOZ @ident=@idDZPomocPrij OUT, @Sklad=@sklTechnolog, @DruhPohybu=0, @RadaDokladu=@radaPrijem, @CisloOrg=0
|
||||
SELECT @menaPrij=Mena, @kurzPrij=Kurz, @kurzPrijE=KurzEuro, @jednMPrij=JednotkaMeny, @vstCPrij=VstupniCena
|
||||
FROM dbo.TabDokladyZbozi WHERE ID=@idDZPomocPrij
|
||||
END
|
||||
IF (@idDZPomocPrij IS NOT NULL)
|
||||
BEGIN
|
||||
EXEC dbo.hp_InsertPolozkyOZ @Ident=@idPZPomocPrij OUT, @IDDoklad=@idDZPomocPrij, @DruhPohybu=0, @CisloOrg=0, @IDZboSklad=@idSSPomocPrij,
|
||||
@Mena=@menaPrij, @Kurz=@kurzPrij, @KurzEuro=@kurzPrijE, @JednotkaMeny=@jednMPrij, @SazbaSD=NULL, @SazbaDPH=NULL,
|
||||
@ZakazanoDPH=NULL, @VstupniCena=@vstCPrij, @Mnozstvi=@mnozPrij, @PovolitDuplicitu=1
|
||||
END
|
||||
END
|
||||
END
|
||||
CLOSE pomPrij
|
||||
DEALLOCATE pomPrij
|
||||
IF (@idDZPomocPrij IS NOT NULL)
|
||||
BEGIN
|
||||
BEGIN TRY
|
||||
EXEC dbo.hp_Realizuj_Prijem @ID=@idDZPomocPrij, @DatumRealizace=NULL, @Uzivatel=@idUziv, @BylaChyba=@bChyba OUT, @VypnoutUpozorneniPriZajistovani=1
|
||||
END TRY
|
||||
BEGIN CATCH
|
||||
SET @errMsg = ERROR_MESSAGE()
|
||||
END CATCH
|
||||
END
|
||||
-- end: prijemka nedostatecneho materialu
|
||||
|
||||
|
||||
-- realizace vydejky
|
||||
IF (@realizujVydej=1)
|
||||
BEGIN
|
||||
BEGIN TRY
|
||||
EXEC dbo.hp_Realizuj_Vydej @ID=@idVyd, @DatumRealizace=NULL, @Uzivatel=@idUziv, @Hlidat=0, @BylaChyba=@bChyba OUT
|
||||
END TRY
|
||||
BEGIN CATCH
|
||||
SET @opakReal=0
|
||||
SET @errMsg = ERROR_MESSAGE()
|
||||
IF (CHARINDEX(N'71553', @errMsg)>0)
|
||||
SET @opakReal=1
|
||||
IF (@opakReal=0)
|
||||
INSERT dbo._hdc_ph_Log (Typ, LogText, IntValue) SELECT 10, N'Chyba realizace v<>dejky p<><70>kazu: ' + @errMsg, @idVyd
|
||||
END CATCH
|
||||
|
||||
IF (@opakReal=1)
|
||||
BEGIN
|
||||
BEGIN TRY
|
||||
EXEC dbo.ep_Vyroba_DoplnSkladProVydejDleDokladu @IDDoklad=@idVyd, @errMsg=@errMsg OUT
|
||||
IF (@errMsg=N'')
|
||||
EXEC dbo.hp_Realizuj_Vydej @ID=@idVyd, @DatumRealizace=NULL, @Uzivatel=@idUziv, @Hlidat=0, @BylaChyba=@bChyba OUT
|
||||
ELSE
|
||||
INSERT dbo._hdc_ph_Log (Typ, LogText, IntValue) SELECT 10, N'Chyba korekce naskladneni pro vydejku: ' + @errMsg, @idVyd
|
||||
END TRY
|
||||
BEGIN CATCH
|
||||
SET @errMsg = ERROR_MESSAGE()
|
||||
INSERT dbo._hdc_ph_Log (Typ, LogText, IntValue) SELECT 10, N'Chyba opakovane realizace v<>dejky p<><70>kazu: ' + @errMsg, @idVyd
|
||||
END CATCH
|
||||
END
|
||||
|
||||
END
|
||||
|
||||
END
|
||||
CLOSE vyd
|
||||
DEALLOCATE vyd
|
||||
|
||||
|
||||
|
||||
|
||||
IF (@extTab IS NOT NULL) AND EXISTS(SELECT 1 FROM #TabPrKVazbyGen WHERE IDPohZbo IS NOT NULL)
|
||||
IF OBJECT_ID(@extTab, N'U') IS NOT NULL
|
||||
BEGIN
|
||||
SET @sql = N'DELETE FROM ' + @extTab
|
||||
EXECUTE sp_executesql @sql
|
||||
SET @sql = N'INSERT ' + @extTab + N' (ID, IDPohZbo) SELECT ID, IDPohZbo FROM #TabPrKVazbyGen WHERE IDPohZbo IS NOT NULL'
|
||||
EXECUTE sp_executesql @sql
|
||||
END
|
||||
|
||||
|
||||
-- uklid
|
||||
DROP TABLE IF EXISTS #TabPrKVazbyGen
|
||||
DROP TABLE IF EXISTS #TabGenRezVyd
|
||||
DROP TABLE IF EXISTS #TabPrKVazbyGen_IDMzdy
|
||||
DROP TABLE IF EXISTS #TabPrKVazbyGenVC
|
||||
|
||||
|
||||
75
_custom/Rootvin/sql/ep_Vyroba_InsertEvidRozpracOper.sql
Normal file
75
_custom/Rootvin/sql/ep_Vyroba_InsertEvidRozpracOper.sql
Normal file
@ -0,0 +1,75 @@
|
||||
-- dbo.ep_Vyroba_InsertEvidRozpracOper
|
||||
CREATE PROCEDURE dbo.ep_Vyroba_InsertEvidRozpracOper
|
||||
@IDZamestnance INT=NULL,
|
||||
@IDPracoviste INT=NULL,
|
||||
@IDStroje INT=NULL,
|
||||
@CasZahajeni DATETIME=NULL,
|
||||
@ErrMsg NVARCHAR(500)=N'' OUT
|
||||
AS
|
||||
|
||||
-- !! proceduru neupravujte, bude stejne pregenerovana pri startu Windows sluzby HDCDZApi !!
|
||||
|
||||
SET NOCOUNT ON
|
||||
|
||||
DECLARE
|
||||
@tranPred INT
|
||||
|
||||
DECLARE
|
||||
@idEROp INT=NULL
|
||||
|
||||
|
||||
IF EXISTS(SELECT 1 FROM dbo.TabEvidRozpracOper)
|
||||
BEGIN
|
||||
SELECT @idEROp=MAX(ID) FROM dbo.TabEvidRozpracOper
|
||||
DBCC CHECKIDENT(TabEvidRozpracOper, RESEED, @idEROp)
|
||||
END
|
||||
ELSE
|
||||
DBCC CHECKIDENT(TabEvidRozpracOper, RESEED, 1)
|
||||
SET @idEROp=NULL
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
IF (@IDPracoviste IS NULL) AND (@IDStroje IS NOT NULL)
|
||||
SELECT @IDPracoviste=IDPrac FROM dbo.TabCisStroju WHERE ID=@IDStroje
|
||||
|
||||
IF (@IDZamestnance IS NULL) OR (@IDPracoviste IS NULL)
|
||||
BEGIN
|
||||
SET @ErrMsg = N'Neni zadan zamestnanec nebo pracoviste'
|
||||
RETURN NULL
|
||||
END
|
||||
|
||||
IF OBJECT_ID(N'tempdb..#TabExtKom', N'U') IS NULL
|
||||
CREATE TABLE #TabExtKom (Typ TINYINT, Poznamka NVARCHAR(255) NOT NULL DEFAULT N'')
|
||||
|
||||
|
||||
|
||||
SET @CasZahajeni = ISNULL(@CasZahajeni, GETDATE())
|
||||
|
||||
|
||||
BEGIN TRY
|
||||
SET @tranPred = @@TRANCOUNT
|
||||
IF (@tranPred=0) BEGIN TRAN
|
||||
|
||||
INSERT dbo.TabEvidRozpracOper (IDZamestnance, CasZahajeni, IDPracoviste, IDStroje)
|
||||
SELECT @IDZamestnance, @CasZahajeni, @IDPracoviste, @IDStroje
|
||||
SET @idEROp = SCOPE_IDENTITY()
|
||||
|
||||
-- slepice
|
||||
IF OBJECT_ID(N'dbo.ep_Vyroba_InsertEvidRozpracOper_Po', N'P') IS NOT NULL
|
||||
EXEC dbo.ep_Vyroba_InsertEvidRozpracOper_Po @idEROp
|
||||
|
||||
|
||||
IF (@tranPred=0) ANd (@@TRANCOUNT>0)
|
||||
COMMIT TRAN
|
||||
END TRY
|
||||
BEGIN CATCH
|
||||
IF (@tranPred=0) ANd (@@TRANCOUNT>0)
|
||||
ROLLBACK TRAN
|
||||
SET @ErrMsg = ERROR_MESSAGE()
|
||||
INSERT #TabExtKom (Typ, Poznamka) SELECT 3, @ErrMsg
|
||||
SET @idEROp = NULL
|
||||
END CATCH
|
||||
|
||||
RETURN @idEROp
|
||||
108
_custom/Rootvin/sql/ep_Vyroba_InsertEvidRozpracOperPol.sql
Normal file
108
_custom/Rootvin/sql/ep_Vyroba_InsertEvidRozpracOperPol.sql
Normal file
@ -0,0 +1,108 @@
|
||||
-- dbo.ep_Vyroba_InsertEvidRozpracOperPol
|
||||
CREATE PROCEDURE dbo.ep_Vyroba_InsertEvidRozpracOperPol
|
||||
@IdEvidRozpOper INT,
|
||||
@IdPrikaz INT,
|
||||
@doklPrPost INT,
|
||||
@altPrPost NCHAR(1),
|
||||
@IDPaleta INT=NULL,
|
||||
@IdVyrCis INT=NULL,
|
||||
@cisloPL NVARCHAR(50),
|
||||
@sarze NVARCHAR(30),
|
||||
@mnozOdv NUMERIC(19,6)=0,
|
||||
@skCas NUMERIC(19,6)=0,
|
||||
@skCasT TINYINT=1,
|
||||
@skCasObsl NUMERIC(19,6)=0,
|
||||
@skCasObslT TINYINT=1
|
||||
AS
|
||||
|
||||
-- !! proceduru neupravujte, bude stejne pregenerovana pri startu pluginu PluginHDCRTN !!
|
||||
|
||||
SET NOCOUNT ON
|
||||
|
||||
DECLARE
|
||||
@errMsg NVARCHAR(500),
|
||||
@tranPred INT
|
||||
|
||||
DECLARE
|
||||
@idEROpPol INT=NULL,
|
||||
@idTemp INT=NULL,
|
||||
@mnEROp NUMERIC(19,6),
|
||||
@sumMnEROp NUMERIC(19,6)
|
||||
|
||||
|
||||
|
||||
IF OBJECT_ID(N'#TabExtKom', N'U') IS NULL
|
||||
CREATE TABLE #TabExtKom (Typ TINYINT, Poznamka NVARCHAR(255) NOT NULL DEFAULT N'')
|
||||
|
||||
|
||||
|
||||
|
||||
IF EXISTS(SELECT 1 FROM dbo.TabEvidRozpracOperR)
|
||||
BEGIN
|
||||
SELECT @idEROpPol=MAX(ID) FROM dbo.TabEvidRozpracOperR
|
||||
DBCC CHECKIDENT(TabEvidRozpracOperR, RESEED, @idEROpPol)
|
||||
END
|
||||
ELSE
|
||||
DBCC CHECKIDENT(TabEvidRozpracOperR, RESEED, 1)
|
||||
SET @idEROpPol=NULL
|
||||
|
||||
|
||||
|
||||
|
||||
SET @sarze = TRIM(ISNULL(@sarze, N''))
|
||||
SET @cisloPL = TRIM(ISNULL(@cisloPL, N''))
|
||||
|
||||
IF (@IDPaleta IS NOT NULL) AND (@IDVyrCis IS NULL)
|
||||
SELECT @idVyrCis=IDVyrCisPrikaz FROM dbo._TabVyroba_Palety WHERE ID=@IDPaleta
|
||||
IF (@IDVyrCis IS NULL) AND (@cisloPL<>N'') AND (@IdPrikaz IS NOT NULL) AND (@sarze<>N'')
|
||||
SET @IDVyrCis = (SELECT ID FROM dbo.TabVyrCisPrikaz WHERE IDPrikaz=@IdPrikaz AND VyrCislo=@cisloPL AND Popis=@sarze)
|
||||
IF (@IDVyrCis IS NULL) AND (@cisloPL<>N'') AND (@IdPrikaz IS NOT NULL)
|
||||
SET @IDVyrCis = (SELECT ID FROM dbo.TabVyrCisPrikaz WHERE IDPrikaz=@IdPrikaz AND VyrCislo=@cisloPL)
|
||||
|
||||
|
||||
|
||||
BEGIN TRY
|
||||
SET @tranPred = @@TRANCOUNT
|
||||
IF (@tranPred=0) BEGIN TRAN
|
||||
|
||||
INSERT dbo.TabEvidRozpracOperR (IDEvidRozpracOper, IDPrikaz, DokladPrPostup, AltPrPostup, IDVyrCis, Mnoz_odv, Sk_cas, Sk_cas_T, Sk_cas_Obsluhy, Sk_cas_Obsluhy_T)
|
||||
SELECT @IdEvidRozpOper, @IdPrikaz, @doklPrPost, @altPrPost, @IdVyrCis, @mnozOdv, @skCas, @skCasT, @skCasObsl, @skCasObslT
|
||||
SET @idEROpPol = SCOPE_IDENTITY()
|
||||
|
||||
IF (@idEROpPol IS NOT NULL)
|
||||
IF NOT EXISTS (SELECT 1 FROM dbo.TabEvidRozpracOperR_EXT WHERE ID=@idEROpPol)
|
||||
INSERT dbo.TabEvidRozpracOperR_EXT (ID) VALUES (@idEROpPol)
|
||||
UPDATE dbo.TabEvidRozpracOperR_EXT SET _Sarze=@sarze WHERE ID=@idEROpPol
|
||||
|
||||
|
||||
-- zapis koeficient
|
||||
SET @sumMnEROp = ISNULL( (SELECT SUM(Mnoz_odv) FROM dbo.TabEvidRozpracOperR WHERE IDEvidRozpracOper=@IdEvidRozpOper), 0)
|
||||
DECLARE crLoc CURSOR LOCAL FOR
|
||||
SELECT ID, Mnoz_odv FROM dbo.TabEvidRozpracOperR WHERE IDEvidRozpracOper=@IdEvidRozpOper
|
||||
OPEN crLoc
|
||||
WHILE (1=1)
|
||||
BEGIN
|
||||
FETCH NEXT FROM crLoc INTO @idTemp, @mnEROp
|
||||
IF (@@FETCH_STATUS<>0) BREAK
|
||||
UPDATE dbo.TabEvidRozpracOperR_EXT SET _KoefMnoz=ROUND(@mnEROp/@sumMnEROp, 5) WHERE ID=@idTemp
|
||||
END
|
||||
CLOSE crLoc
|
||||
DEALLOCATE crLoc
|
||||
|
||||
|
||||
IF (@tranPred=0) ANd (@@TRANCOUNT>0)
|
||||
COMMIT TRAN
|
||||
END TRY
|
||||
BEGIN CATCH
|
||||
IF CURSOR_STATUS('local','crLoc')>=-1
|
||||
BEGIN
|
||||
CLOSE crLoc;
|
||||
DEALLOCATE crLoc
|
||||
END
|
||||
IF (@tranPred=0) ANd (@@TRANCOUNT>0)
|
||||
ROLLBACK TRAN
|
||||
INSERT #TabExtKom (Typ, Poznamka) SELECT 3, ERROR_MESSAGE()
|
||||
SET @idEROpPol = NULL
|
||||
END CATCH
|
||||
|
||||
RETURN @idEROpPol
|
||||
407
_custom/Rootvin/sql/szDilce
Normal file
407
_custom/Rootvin/sql/szDilce
Normal file
@ -0,0 +1,407 @@
|
||||
-- dbo.ep_Vyroba_GenVydejZeMzdy
|
||||
CREATE PROCEDURE dbo.ep_Vyroba_GenVydejZeMzdy
|
||||
@IDMzdy INT=NULL,
|
||||
@IDDoklad INT=NULL,
|
||||
@spotrebaTesto BIT=0,
|
||||
@spotreba702 BIT=0,
|
||||
@smazVydejTesto BIT=0,
|
||||
@errMsg NVARCHAR(500)=N'' OUT,
|
||||
@extTab NVARCHAR(50)=NULL,
|
||||
@vydejAll BIT=0,
|
||||
@realizujVydej BIT=0,
|
||||
@denSmena NVARCHAR(15)=NULL,
|
||||
@sklVydej NVARCHAR(30)=N'321',
|
||||
@radaVydej NVARCHAR(3)=N'223'
|
||||
AS
|
||||
|
||||
-- HD Consulting Strakonice, T. Buzin
|
||||
-- !! proceduru neupravujte, bude stejne pregenerovana pri startu Windows sluzby HDCDZApi !!
|
||||
|
||||
-- @extTab - tabulka, do ktere budou vraceny pohyby vydejky @extTab (ID INT NOT NULL, IDPohZbo INT NOT NULL)
|
||||
-- @vydejAll - bude vydano vse, nejen kde jde splnena podminka TabPrKVazby - dbo.hf_GetPrPDokladForPrKV(PrKV.ID)=@PrP_Doklad
|
||||
-- pokud existuje objekt #HDCTabPrKVazbyGenPredna, jedu vydej podle nej
|
||||
|
||||
|
||||
SET NOCOUNT ON
|
||||
|
||||
DECLARE
|
||||
@bChyba BIT,
|
||||
@retVal INT=0,
|
||||
@errID int,
|
||||
@sql NVARCHAR(1000),
|
||||
@idUziv INT=0,
|
||||
@idZam INT,
|
||||
@sklTechnolog NVARCHAR(30),
|
||||
@sklMatHlavni NVARCHAR(30),
|
||||
@sklPekarna NVARCHAR(30),
|
||||
@szDilec NVARCHAR(3)
|
||||
|
||||
|
||||
|
||||
IF OBJECT_ID(N'dbo.TabUserCfg', N'U') IS NOT NULL
|
||||
SET @idUziv = (SELECT ID FROM dbo.TabUserCfg WHERE LoginName=SUSER_SNAME())
|
||||
SET @idUziv = ISNULL(@idUziv, 0)
|
||||
|
||||
|
||||
SET @denSmena = ISNULL(@denSmena, N'')
|
||||
IF (@sklMatHlavni IS NULL)
|
||||
SELECT @sklMatHlavni=Cislo FROM dbo.TabStrom WHERE Nazev=N'Hlavn<76> sklad - Materi<72>l'
|
||||
IF (@sklTechnolog IS NULL)
|
||||
SELECT @sklTechnolog=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'Technologick<63> sklad%v<>dej%'
|
||||
IF (@sklPekarna IS NULL)
|
||||
SELECT @sklPekarna=Cislo FROM dbo.TabStrom WHERE Nazev LIKE N'V<>roba - Pek<65>rna'
|
||||
|
||||
|
||||
IF EXISTS(SELECT 1 FROM dbo.TabPrikazMzdyAZmetky)
|
||||
BEGIN
|
||||
SELECT @retVal=MAX(ID) FROM dbo.TabPrikazMzdyAZmetky
|
||||
DBCC CHECKIDENT(TabPrikazMzdyAZmetky, RESEED, @retVal)
|
||||
END
|
||||
ELSE
|
||||
DBCC CHECKIDENT(TabPrikazMzdyAZmetky, RESEED, 1)
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS #TabPrKVazbyGen
|
||||
CREATE TABLE #TabPrKVazbyGen (
|
||||
ID INT IDENTITY NOT NULL,
|
||||
Generuj BIT NOT NULL DEFAULT 1,
|
||||
PoKorekciDat BIT NOT NULL DEFAULT 0,
|
||||
IDPrKV INT NOT NULL,
|
||||
Doklad INT NOT NULL,
|
||||
IDPrikaz INT NOT NULL,
|
||||
Prednastaveno BIT NOT NULL DEFAULT 1,
|
||||
Sklad NVARCHAR(30) NULL,
|
||||
VyrStredisko NVARCHAR(30) NULL,
|
||||
IDPracoviste INT NULL,
|
||||
mnoz_zad NUMERIC(19,6) NOT NULL DEFAULT 0,
|
||||
Mnoz_nepotrebne NUMERIC(19,6) NOT NULL DEFAULT 0,
|
||||
Mnoz_skut_realizovane NUMERIC(19,6) NOT NULL DEFAULT 0,
|
||||
Cena_real NUMERIC(19,6) NOT NULL DEFAULT 0,
|
||||
Mnoz_odv NUMERIC(19,6) NOT NULL DEFAULT 0,
|
||||
Cena_odv NUMERIC(19,6) NOT NULL DEFAULT 0,
|
||||
MnozstviMax NUMERIC(19,6) NULL,
|
||||
PuvodniMnozstviPoz NUMERIC(19,6) NULL,
|
||||
MnozstviPoz NUMERIC(19,6) NOT NULL,
|
||||
PomMnozPoz NUMERIC(19,6) NOT NULL DEFAULT 0,
|
||||
IDPohZbo INT NULL,
|
||||
PoznamkaNaDoklad NVARCHAR(max) NULL,
|
||||
priorita INT NOT NULL DEFAULT 0,
|
||||
vyssi INT NOT NULL,
|
||||
nizsi INT NOT NULL,
|
||||
DavkaTPV NUMERIC(19,6) NOT NULL DEFAULT 1,
|
||||
pozice NVARCHAR(100) NULL DEFAULT N'',
|
||||
Operace NCHAR(4) NULL,
|
||||
FixniMnozstvi NUMERIC(19,6) NOT NULL DEFAULT 0,
|
||||
mnozstvi NUMERIC(19,6) NOT NULL DEFAULT 1,
|
||||
ProcZtrat NUMERIC(5,2) NOT NULL DEFAULT 0,
|
||||
mnozstviSeZtratou NUMERIC(19,6) NOT NULL DEFAULT 0,
|
||||
Prirez NUMERIC(19,6) NOT NULL DEFAULT 1,
|
||||
Poznamka NTEXT NULL,
|
||||
pom_pomer_A NUMERIC(19,6) NULL,
|
||||
pom_pomer_B NUMERIC(19,6) NULL,
|
||||
Dodavatel INT NULL,
|
||||
MJ NVARCHAR(10) NULL,
|
||||
mnoz_pozadovane AS (CONVERT(numeric(19,6),(CASE WHEN [mnoz_nepotrebne]>[mnoz_zad] THEN 0.0 ELSE [mnoz_zad] - [mnoz_nepotrebne] END))),
|
||||
PRIMARY KEY (ID)
|
||||
)
|
||||
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS #TabPrKVazbyGen_IDMzdy
|
||||
CREATE TABLE #TabPrKVazbyGen_IDMzdy (IDPrikaz int, Doklad int, IDMzdy int)
|
||||
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS #TabPrKVazbyGenVC
|
||||
CREATE TABLE #TabPrKVazbyGenVC (
|
||||
ID INT IDENTITY NOT NULL,
|
||||
IDPolozky INT NOT NULL,
|
||||
VyrCislo NVARCHAR(100) NOT NULL,
|
||||
Mnozstvi NUMERIC(19,6) NOT NULL,
|
||||
Sklad NVARCHAR(30) NULL,
|
||||
IDKmenZbozi INT NULL,
|
||||
IDVyrCP INT NULL,
|
||||
PRIMARY KEY(ID)
|
||||
)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
DECLARE
|
||||
@RespektovatExistEvid bit=0,
|
||||
@idDilec INT,
|
||||
@IDPrikaz int=NULL,
|
||||
@IDPrPostup INT=NULL,
|
||||
@mnozstviPomer_A numeric(19,6),
|
||||
@mnozstviPomer_B numeric(19,6),
|
||||
@IDPrKV int,
|
||||
@mnoz_zad numeric(19,6),
|
||||
@PrKVDoklad int,
|
||||
@PocetVazeb int,
|
||||
@PrP_Doklad int
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
SELECT @errID=NULL, @errMsg='', @PocetVazeb=0
|
||||
SELECT @IDPrikaz=MZ.IDPrikaz, @mnozstviPomer_A=(MZ.kusy_odv+MZ.kusy_zmet_opr+MZ.kusy_zmet_neopr), @mnozstviPomer_B=PrP.kusy_zad, @PrP_Doklad=PrP.Doklad,
|
||||
@IDPrPostup=PrP.ID, @szDilec=k.SkupZbo
|
||||
FROM dbo.TabPrikazMzdyAZmetky MZ
|
||||
INNER JOIN dbo.TabPrPostup PrP ON (PrP.IDPrikaz=MZ.IDPrikaz AND PrP.Doklad=MZ.DokladPrPostup AND PrP.Alt=MZ.AltPrPostup AND PrP.IDOdchylkyDo IS NULL)
|
||||
INNER JOIN dbo.TabPrikaz vp ON (vp.ID=MZ.IDPrikaz)
|
||||
INNER JOIN dbo.TabKmenZbozi k ON (k.ID=vp.IDTabKmen)
|
||||
WHERE MZ.ID=@IDMzdy
|
||||
|
||||
UPDATE dbo.TabPrikazMzdyAZmetky SET GenerovanaMatVydejka=1 WHERE ID=@IDMzdy
|
||||
-- pokud uz byla generovana vydejka, skonci
|
||||
IF (@@ROWCOUNT=0)
|
||||
RETURN 0
|
||||
|
||||
|
||||
SELECT @idZam=Zamestnanec FROM dbo.TabPrikazMzdyAZmetky WHERE ID=@IDMzdy
|
||||
SELECT @idDilec = IDTabKmen FROM dbo.TabPrikaz WHERE ID=@IDPrikaz
|
||||
|
||||
|
||||
|
||||
IF OBJECT_ID(N'tempdb..#HDCTabPrKVazbyGenPredna', N'U') IS NULL
|
||||
BEGIN
|
||||
IF (@mnozstviPomer_A<=0.0)
|
||||
RETURN -1
|
||||
|
||||
IF (@vydejAll=1)
|
||||
DECLARE crPom1334 CURSOR FAST_FORWARD LOCAL FOR
|
||||
SELECT PrKV.ID, PrKV.Mnoz_zad, PrKV.Doklad
|
||||
FROM dbo.TabPrKVazby PrKV
|
||||
INNER JOIN dbo.TabPrikaz P ON (P.ID=PrKV.IDPrikaz)
|
||||
INNER JOIN dbo.TabRadyPrikazu RP ON (RP.rada=P.rada)
|
||||
INNER JOIN dbo.TabKmenZbozi KZ ON (KZ.ID=PrKV.nizsi AND KZ.sluzba=0)
|
||||
WHERE P.StavPrikazu IN (30,50) AND (P.kusy_zive>0.0 OR RP.KontrolovatRozpracPriUzav=0) AND PrKV.predzpracovano=0 AND PrKV.uzavreno=0 AND PrKV.RezijniMat=0 AND
|
||||
PrKV.IDPrikaz=@IDPrikaz AND PrKV.prednastaveno=1 AND PrKV.IDOdchylkyDo IS NULL
|
||||
ELSE
|
||||
DECLARE crPom1334 CURSOR FAST_FORWARD LOCAL FOR
|
||||
SELECT PrKV.ID, PrKV.Mnoz_zad, PrKV.Doklad
|
||||
FROM dbo.TabPrKVazby PrKV
|
||||
INNER JOIN dbo.TabPrikaz P ON (P.ID=PrKV.IDPrikaz)
|
||||
INNER JOIN dbo.TabRadyPrikazu RP ON (RP.rada=P.rada)
|
||||
INNER JOIN dbo.TabKmenZbozi KZ ON (KZ.ID=PrKV.nizsi AND KZ.sluzba=0)
|
||||
WHERE P.StavPrikazu IN (30,50) AND (P.kusy_zive>0.0 OR RP.KontrolovatRozpracPriUzav=0) AND PrKV.predzpracovano=0 AND PrKV.uzavreno=0 AND PrKV.RezijniMat=0 AND
|
||||
PrKV.IDPrikaz=@IDPrikaz AND dbo.hf_GetPrPDokladForPrKV(PrKV.ID)=@PrP_Doklad AND PrKV.prednastaveno=1 AND PrKV.IDOdchylkyDo IS NULL
|
||||
OPEN crPom1334
|
||||
FETCH NEXT FROM crPom1334 INTO @IDPrKV, @Mnoz_zad, @PrKVDoklad
|
||||
WHILE @@fetch_status=0
|
||||
BEGIN
|
||||
UPDATE #TabPrKVazbyGen SET MnozstviPoz=@mnoz_zad * (pom_pomer_A+@mnozstviPomer_A)/pom_pomer_B, pom_pomer_A=pom_pomer_A+@mnozstviPomer_A
|
||||
WHERE IDPrKV=@IDPrKV
|
||||
IF (@@ROWCOUNT=0)
|
||||
BEGIN
|
||||
IF @RespektovatExistEvid=1
|
||||
SELECT @mnozstviPomer_A=SUM(MZ.kusy_odv+MZ.kusy_zmet_opr+MZ.kusy_zmet_neopr)
|
||||
FROM dbo.TabPrikazMzdyAZmetky MZ WHERE MZ.IDPrikaz=@IDPrikaz AND MZ.DokladPrPostup=@PrP_Doklad AND MZ.GenerovanaMatVydejka=1
|
||||
INSERT INTO #TabPrKVazbyGen (IDPrKV, MnozstviPoz, pom_pomer_A, pom_pomer_B, Doklad, IDPrikaz, Prednastaveno, Sklad, VyrStredisko, IDPracoviste, mnoz_zad,
|
||||
Mnoz_nepotrebne, Mnoz_skut_realizovane, Cena_real, Mnoz_odv, Cena_odv, priorita, vyssi, nizsi, DavkaTPV, pozice, Operace, FixniMnozstvi,
|
||||
mnozstvi, ProcZtrat, mnozstviSeZtratou, Prirez, Poznamka)
|
||||
SELECT PrKV.ID,
|
||||
PrKV.mnoz_zad * @mnozstviPomer_A/@mnozstviPomer_B,
|
||||
@mnozstviPomer_A, @mnozstviPomer_B,
|
||||
PrKV.Doklad, PrKV.IDPrikaz, PrKV.Prednastaveno, PrKV.Sklad, PrKV.VyrStredisko, PrKV.IDPracoviste, PrKV.mnoz_zad, PrKV.Mnoz_nepotrebne,
|
||||
PrKV.Mnoz_skut_realizovane, PrKV.Cena_real, PrKV.Mnoz_odv, PrKV.Cena_odv, PrKV.priorita, PrKV.vyssi, PrKV.nizsi, PrKV.DavkaTPV, PrKV.pozice, PrKV.Operace, PrKV.FixniMnozstvi,
|
||||
PrKV.mnozstvi, PrKV.ProcZtrat, PrKV.mnozstviSeZtratou, PrKV.Prirez, PrKV.Poznamka
|
||||
FROM dbo.TabPrKVazby PrKV
|
||||
WHERE PrKV.ID=@IDPrKV AND PrKV.uzavreno=0
|
||||
END
|
||||
INSERT INTO #TabPrKVazbyGen_IDMzdy (IDPrikaz, Doklad, IDMzdy) VALUES (@IDPrikaz, @PrKVDoklad, @IDMzdy)
|
||||
SET @PocetVazeb=@PocetVazeb + 1
|
||||
FETCH NEXT FROM crPom1334 INTO @IDPrKV, @Mnoz_zad, @PrKVDoklad
|
||||
END
|
||||
CLOSE crPom1334
|
||||
DEALLOCATE crPom1334
|
||||
|
||||
IF (@PocetVazeb<=0)
|
||||
RETURN -2
|
||||
|
||||
END
|
||||
ELSE
|
||||
BEGIN -- pokud mam seznam na co vygenerovat vydejku, jedu podle nej
|
||||
DELETE FROM #TabPrKVazbyGen
|
||||
INSERT INTO #TabPrKVazbyGen
|
||||
SELECT Generuj, PoKorekciDat, IDPrKV, Doklad, IDPrikaz, Prednastaveno, Sklad, VyrStredisko, IDPracoviste, mnoz_zad, Mnoz_nepotrebne, Mnoz_skut_realizovane,
|
||||
Cena_real, Mnoz_odv, Cena_odv, MnozstviMax, PuvodniMnozstviPoz, MnozstviPoz, PomMnozPoz, IDPohZbo, PoznamkaNaDoklad, priorita, vyssi, nizsi, DavkaTPV,
|
||||
pozice, Operace, FixniMnozstvi, mnozstvi, ProcZtrat, mnozstviSeZtratou, Prirez, Poznamka, pom_pomer_A, pom_pomer_B, Dodavatel
|
||||
FROM #HDCTabPrKVazbyGenPredna
|
||||
DROP TABLE #HDCTabPrKVazbyGenPredna
|
||||
END
|
||||
|
||||
-- preddefinovana mzda pro provazani
|
||||
IF OBJECT_ID(N'tempdb..#HDCTabPrKVazbyGen_IDMzdyPredna', N'U') IS NOT NULL
|
||||
BEGIN
|
||||
DELETE FROM #TabPrKVazbyGen_IDMzdy
|
||||
INSERT INTO #TabPrKVazbyGen_IDMzdy
|
||||
SELECT IDPrikaz, Doklad, IDMzdy FROM #HDCTabPrKVazbyGen_IDMzdyPredna
|
||||
DROP TABLE #HDCTabPrKVazbyGen_IDMzdyPredna
|
||||
END
|
||||
|
||||
|
||||
|
||||
EXEC dbo.hp_AktualizaceTabPrKVazbyGenVC @Vratka=0
|
||||
UPDATE #TabPrKVazbyGen SET Generuj=1, Sklad=@sklVydej
|
||||
|
||||
|
||||
IF (@smazVydejTesto=1)
|
||||
IF (@szDilec<>N'701') AND EXISTS (SELECT 1 FROM dbo.TabPrikaz p INNER JOIN dbo.TabKmenZbozi k ON (k.ID=p.IDTabKmen) WHERE p.IDPrikazVyssi=@IDPrikaz AND k.SkupZbo=N'701')
|
||||
DELETE FROM #TabPrKVazbyGen WHERE vyssi=@idDilec AND nizsi IN (SELECT ID FROM dbo.TabKmenZbozi WHERE SkupZbo=N'701')
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS #TabGenRezVyd
|
||||
CREATE TABLE #TabGenRezVyd (ID int NOT NULL, PRIMARY KEY (ID))
|
||||
|
||||
|
||||
BEGIN TRY
|
||||
EXEC @retVal=dbo.hp_generujRezVyd @RadaDokladu=@radaVydej, @DruhPohybuZbo=NULL, @IDObdobi=0, @DatPorizeni=NULL, @SekejZakazky=0, @SekejPrikazy=0,
|
||||
@IDExistDoklad=@IDDoklad, @SekejOperace=0
|
||||
END TRY
|
||||
BEGIN CATCH
|
||||
SET @errMsg = 'Chyba generovani vydeje: ' + ERROR_MESSAGE()
|
||||
END CATCH
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
DECLARE
|
||||
@idVyd INT,
|
||||
@idKZ INT,
|
||||
@idPZ INT,
|
||||
@idSS INT,
|
||||
@poslSarze NVARCHAR(100),
|
||||
@errMsg702 NVARCHAR(500),
|
||||
@idKZ702 INT,
|
||||
@idPrikaz702 INT,
|
||||
@doklKV702 INT,
|
||||
@doklOp702 INT,
|
||||
@alt702 NCHAR(1),
|
||||
@mnoz702 NUMERIC(19,6),
|
||||
@idMzda702 INT,
|
||||
@aktDat DATETIME
|
||||
|
||||
SET @aktDat = GETDATE()
|
||||
|
||||
|
||||
-- potrebuju si vyrobit tisicikus ? musim pred realizaci vydejky na vyssi prikaz, udelam odvedenim prikazu na vyssi
|
||||
/*
|
||||
IF (@spotreba702=1)
|
||||
BEGIN
|
||||
DECLARE t CURSOR LOCAL FOR
|
||||
SELECT k.ID, p.Mnozstvi
|
||||
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 k.SkupZbo=N'702' AND k.Blokovano=0
|
||||
OPEN t
|
||||
WHILE (1=1)
|
||||
BEGIN
|
||||
FETCH NEXT FROM t INTO @idKZ702, @mnoz702
|
||||
IF (@@FETCH_STATUS<>0) BREAK
|
||||
|
||||
SET @idPrikaz702 = (SELECT ID FROM dbo.TabPrikaz WHERE IDPrikazVyssi=@IDPrikaz AND IDTabKmen=@idKZ702 AND StavPrikazu=30)
|
||||
IF (@idPrikaz702 IS NOT NULL)
|
||||
BEGIN
|
||||
-- evidence operace peceni
|
||||
SELECT TOP(1) @doklOp702=Doklad, @alt702=Alt FROM dbo.TabPrPostup WHERE IDOdchylkyDo IS NULL AND IDPrikaz=@idPrikaz702
|
||||
EXEC @idMzda702=dbo.hp_ZaevidujOperaci @IDPrikaz=@idPrikaz702, @Doklad=@doklOp702, @Alt=@alt702, @Datum=NULL, @Stav=1, @IDZam=@idZam, @Kusy_odv=@mnoz702
|
||||
SET @idMzda702 = ISNULL(@idMzda702, 0)
|
||||
IF (@idMzda702>0)
|
||||
BEGIN
|
||||
-- vydejku materialu nedelej, testo bylo uz odepsano svym prevedenim na vyssi
|
||||
-- EXEC dbo.ep_Vyroba_GenVydejZeMzdy @IDMzdy=@idMzda702, @spotrebaTesto=1, @realizujVydej=1, @errMsg=@errMsg702 OUT
|
||||
|
||||
EXEC dbo.ep_Vyroba_GenOdvodZeMzdy @IDMzdy=@idMzda702, @realizujPrijem=1, @errMsg=@errMsg702 OUT
|
||||
END
|
||||
-- odvedeni na vyssi prikaz
|
||||
SELECT TOP(1) @doklKV702=Doklad FROM dbo.TabPrKVazby WHERE IDOdchylkyDo IS NULL AND IDPrikaz=@IDPrikaz AND nizsi=@idKZ702
|
||||
EXEC dbo.hp_OdvedeniPrikazuPrevodem @DatPripadu=@aktDat, @KonecneOdvedeniNatvrdo=0, @IDPrikazZdroj=@idPrikaz702, @IDPrikazCil=@IDPrikaz,
|
||||
@Doklad=@doklKV702, @IDDilec=@idKZ702, @mnozstvi=@mnoz702, @IDOdvedeniVC=0
|
||||
END
|
||||
END
|
||||
CLOSE t
|
||||
DEALLOCATE t
|
||||
END
|
||||
*/
|
||||
|
||||
|
||||
DECLARE vyd CURSOR LOCAL FOR
|
||||
SELECT ID FROM #TabGenRezVyd
|
||||
OPEN vyd
|
||||
WHILE (1=1)
|
||||
BEGIN
|
||||
FETCH NEXT FROM vyd INTO @idVyd
|
||||
IF (@@FETCH_STATUS<>0) BREAK
|
||||
|
||||
IF (@denSmena<>N'')
|
||||
BEGIN
|
||||
IF NOT EXISTS(SELECT 1 FROM dbo.TabDokladyZbozi_EXT WHERE ID=@idVyd)
|
||||
INSERT dbo.TabDokladyZbozi_EXT (ID) VALUES (@idVyd)
|
||||
UPDATE dbo.TabDokladyZbozi_EXT SET _Vyroba_DenSmena=@denSmena WHERE ID=@idVyd
|
||||
END
|
||||
|
||||
DECLARE pV CURSOR LOCAL FOR
|
||||
SELECT p.ID, k.ID
|
||||
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=@idVyd AND k.Sluzba=0
|
||||
OPEN pV
|
||||
WHILE (1=1)
|
||||
BEGIN
|
||||
FETCH NEXT FROM pV INTO @idPZ, @idKZ
|
||||
IF (@@FETCH_STATUS<>0) BREAK
|
||||
SET @idSS = (SELECT ID FROM dbo.TabStavSkladu WHERE IDKmenZbozi=@idKZ AND IDSklad=@sklPekarna)
|
||||
SET @poslSarze = ISNULL( (SELECT _Prevod_PosledniSarze FROM dbo.TabStavSkladu_EXT WHERE ID=@idSS), N'')
|
||||
IF (@poslSarze<>N'')
|
||||
BEGIN
|
||||
IF NOT EXISTS(SELECT 1 FROM dbo.TabPohybyZbozi_EXT WHERE ID=@idPZ)
|
||||
INSERT dbo.TabPohybyZbozi_EXT (ID) VALUES (@idPZ)
|
||||
UPDATE dbo.TabPohybyZbozi_EXT SET _Vyroba_Sarze=@poslSarze WHERE ID=@idPZ
|
||||
END
|
||||
END
|
||||
CLOSE pV
|
||||
DEALLOCATE pV
|
||||
|
||||
IF (@realizujVydej=1)
|
||||
BEGIN
|
||||
BEGIN TRY
|
||||
EXEC dbo.hp_Realizuj_Vydej @ID=@idVyd, @DatumRealizace=NULL, @Uzivatel=@idUziv, @Hlidat=0, @BylaChyba=@bChyba OUT
|
||||
END TRY
|
||||
BEGIN CATCH
|
||||
SET @errMsg = ERROR_MESSAGE()
|
||||
INSERT dbo._hdc_ph_Log (Typ, LogText, IntValue) SELECT 10, N'Chyba realizace v<>dejky p<><70>kazu', @idVyd
|
||||
END CATCH
|
||||
END
|
||||
|
||||
END
|
||||
CLOSE vyd
|
||||
DEALLOCATE vyd
|
||||
|
||||
|
||||
|
||||
|
||||
IF (@extTab IS NOT NULL) AND EXISTS(SELECT 1 FROM #TabPrKVazbyGen WHERE IDPohZbo IS NOT NULL)
|
||||
IF OBJECT_ID(@extTab, N'U') IS NOT NULL
|
||||
BEGIN
|
||||
SET @sql = N'DELETE FROM ' + @extTab
|
||||
EXECUTE sp_executesql @sql
|
||||
SET @sql = N'INSERT ' + @extTab + N' (ID, IDPohZbo) SELECT ID, IDPohZbo FROM #TabPrKVazbyGen WHERE IDPohZbo IS NOT NULL'
|
||||
EXECUTE sp_executesql @sql
|
||||
END
|
||||
|
||||
|
||||
-- uklid
|
||||
DROP TABLE IF EXISTS #TabPrKVazbyGen
|
||||
DROP TABLE IF EXISTS #TabGenRezVyd
|
||||
DROP TABLE IF EXISTS #TabPrKVazbyGen_IDMzdy
|
||||
DROP TABLE IF EXISTS #TabPrKVazbyGenVC
|
||||
|
||||
|
||||
12
_custom/Rootvin/sql/tbl_hdc_DataZone_konfig.sql
Normal file
12
_custom/Rootvin/sql/tbl_hdc_DataZone_konfig.sql
Normal file
@ -0,0 +1,12 @@
|
||||
IF OBJECT_ID(N'dbo._hdc_DataZone_konfig', N'U') IS NULL
|
||||
CREATE TABLE dbo._hdc_DataZone_konfig (
|
||||
ID int IDENTITY(1, 1) NOT NULL,
|
||||
Typ NCHAR(3) NOT NULL,
|
||||
Nazev NVARCHAR(100) NOT NULL,
|
||||
Verze NCHAR(8) NOT NULL,
|
||||
Obsah nvarchar(max) COLLATE Czech_CI_AS NULL,
|
||||
DatPorizeni DATETIME NOT NULL DEFAULT GETDATE(),
|
||||
DatZmeny DATETIME,
|
||||
CONSTRAINT PK_hdc_DataZone_konfig PRIMARY KEY CLUSTERED (ID)
|
||||
WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF, STATISTICS_NORECOMPUTE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
|
||||
)
|
||||
Reference in New Issue
Block a user