-- dbo.ep_HDC_PZ_ZapisPolozek
CREATE PROCEDURE dbo.ep_HDC_PZ_ZapisPolozek
       @typ INT,
       @idDokladOZDst INT=NULL

AS

SET NOCOUNT ON



DECLARE
 @idPol INT,
 @idPHIdent INT,
 @idPHIdent2 INT,
 @sz NVARCHAR(3),
 @rc NVARCHAR(30),
 @idKmen INT,
 @idStav INT,
 @idPZ INT,
 @idVCK INT,
 @idVCS INT,
 @idVCP INT,
 @sklad NVARCHAR(30),
 @mnoz NUMERIC(19,6),
 @paletList NVARCHAR(50),
 @sarze NVARCHAR(50)

DECLARE
 @dpz TINYINT,
 @cisOrg INT,
 @vstC TINYINT,
 @jednM INT,
 @dzMena NVARCHAR(3),
 @dzKurz NUMERIC(19,6),
 @dzKurzE NUMERIC(19,6)

IF OBJECT_ID(N'tempdb..#TabTempUziv', N'U') IS NULL
 CREATE TABLE #TabTempUziv (Tabulka NVARCHAR(255) NOT NULL, SCOPE_IDENTITY INT NULL, Datum DATETIME NULL)





IF (@typ=1) -- zapis z dbo._TabVyroba_Objednavky do dokladu výdejky
 BEGIN
  IF (@idDokladOZDst IS NULL)
   RETURN
  IF OBJECT_ID(N'tempdb..#TabZapisPolozekOZ', N'U') IS NULL
   RETURN

  SELECT @cisOrg=CisloOrg, @dpz=DruhPohybuZbo, @vstC=VstupniCena, @jednM=JednotkaMeny, @dzMena=Mena, @dzKurz=Kurz, @dzKurzE=KurzEuro, @sklad=IDSklad
    FROM dbo.TabDokladyZbozi WHERE ID=@idDokladOZDst

  DECLARE c CURSOR LOCAL FOR
   SELECT IDPolozky FROM #TabZapisPolozekOZ ORDER BY ID
  OPEN c
  WHILE (1=1)
   BEGIN
    FETCH NEXT FROM c INTO @idPol
    IF (@@FETCH_STATUS<>0) BREAK

    SELECT @idPHIdent=IdPHIdent, @idPHIdent2=IdPHIdent2, @idKmen=IDKmenZbozi, @sz=SkupZbo, @rc=RegCis, @mnoz=Mnozstvi, @paletList=PaletovyList, @sarze=Sarze
      FROM dbo._TabVyroba_Objednavky WHERE ID=@idPol
    SET @paletList = ISNULL(@paletList, N'')

    IF (@idKmen IS NOT NULL)
     BEGIN
      SET @idStav = (SELECT ID FROM dbo.TabStavSkladu WHERE IDSklad=@sklad AND IDKmenZbozi=@idKmen)
      IF (@idStav IS NULL)
       EXEC dbo.hp_InsertStavSkladu @IDKmen=@idKmen, @IDSklad=@sklad, @IDZboSklad=@idStav OUT
      IF (@idStav IS NOT NULL)
       BEGIN
        EXEC dbo.hp_InsertPolozkyOZ @Ident=@idPZ OUT, @IDDoklad=@idDokladOZDst, @DruhPohybu=@dpz, @CisloOrg=@cisOrg, @IDZboSklad=@idStav, @Mena=@dzMena, @Kurz=@dzKurz, @KurzEuro=@dzKurzE,
                                                    @JednotkaMeny=@jednM, @SazbaSD=NULL, @SazbaDPH=NULL, @ZakazanoDPH=NULL, @VstupniCena=@vstC, @Mnozstvi=@mnoz, @PovolitDuplicitu=1
        IF (@idPZ IS NOT NULL)
         BEGIN
          UPDATE dbo._TabVyroba_Objednavky SET Blokovano=1 WHERE ID=@idPol

          UPDATE dbo.TabPohybyZbozi_EXT SET _HDCAPI_PHident=@idPol WHERE ID=@idPZ
          IF (@@ROWCOUNT=0)
           INSERT dbo.TabPohybyZbozi_EXT (ID, _HDCAPI_PHident) SELECT @idPZ, @idPol

          UPDATE dbo.TabPohybyZbozi_EXT SET _Vyroba_Sarze=@sarze, _Vyroba_PaletList=@paletList WHERE ID=@idPZ

/*
          SET @idVCK=(SELECT ID FROM dbo.TabVyrCK WHERE IDKmenZbozi=@idKmen AND Nazev1=@paletList)
          IF (@idVCK IS NULL)
           EXEC dbo.hp_OZInsertVyrCK @IDVyrCK=@idVCK OUT, @IDKmenZbozi=@idKmen, @Selectem=0, @Nazev1=@paletList
          IF (@idVCK IS NOT NULL)
           BEGIN
            SET @idVCS = (SELECT ID FROM dbo.TabVyrCS WHERE IDVyrCK=@idVCK AND IDStavSkladu=@idStav AND Nazev1=@paletList)
            IF (@idVCS IS NULL)
             EXEC dbo.hp_OZInsertVyrCS @IDVyrCS=@idVCS OUT, @IDVyrCK=@idVCK, @IDZboSklad=@idStav, @Nazev1=@paletList
            IF (@idVCS IS NOT NULL)
             BEGIN
              INSERT dbo.TabVyrCP (IDPolozkaDokladu, IDVyrCis, Nazev, Mnozstvi) SELECT @idPZ, @idVCS, @sarze, @mnoz
              SET @idVCP = SCOPE_IDENTITY()
             END
           END -- @idVCK
*/

          INSERT dbo._TabVyroba_Objednavky_Pol (IDHlava, IDDokladOZ, IDPohybOZ, IDVyrCP, Mnozstvi, Sarze) VALUES (@idPol, @idDokladOZDst, @idPZ, @idVCP, @mnoz, @paletList)

         END -- @idPZ
       END -- @idStav
     END -- @idKmen

    UPDATE dbo._TabVyroba_Objednavky SET Blokovano=0,
                                         MnozKVydeji=Mnozstvi - ISNULL( (SELECT SUM(Mnozstvi) FROM dbo._TabVyroba_Objednavky_Pol WHERE IDHlava=@idPol), 0)
     WHERE ID=@idPol

   END
  CLOSE c
  DEALLOCATE c

 END
