39 lines
4.0 KiB
Transact-SQL
39 lines
4.0 KiB
Transact-SQL
-- 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
|