Přenos uživatelských dat v rámci formátu ISDOC

Podrobný popis práce s formátem ISDOC najdete v dokumentu Elektronická fakturace v ISDOC.
V rámci souboru ve formátu ISDOC si lze předávat i uživatelská data. Spolu s povinnými položkami si tak lze předat i vlastní data, která pak lze zpracovat v cílovém systému.
V ESO9 je si lze uživatelská data předávat v rámci ručního exportu/importu ISDOC souborů, v rámci tisku a importu PDF sestav, které mají ISDOC soubor vložený, a v rámci cloudové výměny dokladů. Tj. všude tam, kde se s formátem ISDOC pracuje.

Procedura spGetUserData4ISDOC

Při exportu lze uživatelská data do souboru ISDOC sestavit v proceduře spGetUserData4ISDOC. Jejími vstupními parametry jsou ID aktuálně exportovaného dokladu (IDHDOK) a ID aktuálně přihlášeného uživatele (IDUZIVATEL). V ESO9Start je tato procedura prázdná, v Profi řešeních si ji lze implementačně upravit. Výstupem může být libovolný dataset/tabulka. Ten se následně zaZIPuje a vloží do ISDOC souboru.

CREATE OR ALTER PROCEDURE dbo.spGetUserData4ISDOC
  @IDHDOK INT,
  @IDUZIVATEL INT


Procedura spISDOC_HDOKimport

Import z ISDOCu je realizován DLL knihovnou a stored procedurou spISDOC_HDOKimport. Při importu z ISDOCu dojde k rozZIPování uživatelských dat a jejich předání importní proceduře v parametru mf_userData. Rozhraní importní procedury bylo o tento parametr rozšířeno, stejně tak rozhraní procedur spISDOC_HDOK_BEFOREINSERT a spISDOC_HDOK_AFTERINSERT. Uživatelská data vstupují do parametru ve formátu XML, z něhož lze snadno zrekonstruovat původní tabulku z exportu.

CREATE OR ALTER PROCEDURE dbo.spISDOC_HDOKimport
  @IDHDOK                   INT = NULL,      
  @TYP_DOK                  VARCHAR(10),
  @CIS_DOK_VZOR             VARCHAR(20),
  @IDHDOK_VZOR_N            INT = NULL, 
  @ICO                      VARCHAR(20),
  @DIC                      VARCHAR(20)=NULL, 
  @JEJICH_CISDOK            VARCHAR(32),
  @KOD_MENY                 VARCHAR(3),
  @kod_PODMINKY_PLAT        VARCHAR(10),
  @BUSUBJBUCET_UCET         VARCHAR(35),
  @KODBANKY                 VARCHAR(20),
  @SPEC_SYMB                VARCHAR(10),
  @KONS_SYMB                VARCHAR(4),
  @VAR_SYMB                 VARCHAR(30),
  @HDKUHRADEVAL             MONEY,
  @HDZALOHAVAL              MONEY,
  @HDMIMODAN                MONEY,
  @HDZAKLADDAN_0            MONEY,
  @HDZAKLAD_5               MONEY,
  @HDDAN_5                  MONEY = NULL, -- pokud je uvedena, použije se uvedená hodnota a nastaví se RVDAN_5=3. Jinak se nastaví RV=1 a provede se výpočet DPH dle sazby
  @HDZAKLAD_22              MONEY,
  @HDDAN_22                 MONEY = NULL, -- pokud je uvedena, použije se uvedená hodnota a nastaví se RVDAN_22=3. Jinak se nastaví RV=1 a provede se výpočet DPH dle sazby
  @HDZAKLAD_SS2             MONEY = NULL, 
  @HDDAN_SS2                MONEY = NULL, -- pokud je uvedena, použije se uvedená hodnota a nastaví se RVDAN_SS2=3. Jinak se nastaví RV=1 a provede se výpočet DPH dle sazby
  @DTZDANITPLN              DATETIME,
  @DTODESLANO               DATETIME,
  @DTSPLATNO                DATETIME,
  @DTVYSTAVENO              DATETIME,
  @FILEIMAGE                VARBINARY(MAX) =NULL, 
  @FILENAME                 VARCHAR(100) = NULL, 
  @IDUZIVATEL               INT,
  @mf_HDokBeforeInsert      varchar(100) = NULL,
  @mf_HDokAfterInsert       varchar(100) = NULL,
  @TEXTPOZN                 VARCHAR(80) = NULL,
  @mf_ARES                  smallint = 0,
  @mf_userData              VARCHAR(MAX) = NULL  --uživatelská data předávaná do procedur @mf_HDokBeforeInsert/@mf_HDokAfterInsert


Procedura volané před/po založení hlavičky a složky dokladu

CREATE OR ALTER PROCEDURE dbo.spISDOC_HDOK_BEFOREINSERT
  @TYP_DOK                  VARCHAR(10),
  @CIS_DOK_VZOR             VARCHAR(20),

  @ICO                      VARCHAR(20) OUT,
  @JEJICH_CISDOK            VARCHAR(32) OUT,
  @KOD_MENY                 VARCHAR(3)  OUT,
  @KOD_PODMINKY_PLAT        VARCHAR(10) OUT,
  @BUSUBJBUCET_UCET         VARCHAR(35) OUT,
  @KODBANKY                 VARCHAR(20) OUT,
  @SPEC_SYMB                VARCHAR(10) OUT,
  @KONS_SYMB                VARCHAR(4)  OUT,
  @VAR_SYMB                 VARCHAR(30) OUT,
  @HDKUHRADEVAL             MONEY OUT,
  @HDZALOHAVAL              MONEY OUT,
  @HDMIMODAN                MONEY OUT,
  @HDZAKLADDAN_0            MONEY OUT,
  @HDZAKLAD_5               MONEY OUT,
  @HDDAN_5                  MONEY OUT, 
  @HDZAKLAD_22              MONEY OUT,
  @HDDAN_22                 MONEY OUT, 
  @HDZAKLAD_SS2             MONEY OUT, 
  @HDDAN_SS2                MONEY OUT, 
  @DTZDANITPLN              DATETIME OUT,
  @DTODESLANO               DATETIME OUT,
  @DTSPLATNO                DATETIME OUT,
  @DTVYSTAVENO              DATETIME OUT,
  @IDUZIVATEL               INT OUT,
  @mf_userData              VARCHAR(MAX) = NULL -- uživatelská data předávaná do procedur @mf_HDokBeforeInsert/@mf_HDokAfterInsert
CREATE OR ALTER PROCEDURE dbo.spISDOC_HDOK_AFTERINSERT
  @IDHDOK       INT,
  @mf_userData  VARCHAR(MAX) = NULL, -- uživatelská data v XML předávaná z ISDOCu do procedur @mf_HDokBeforeInsert/@mf_HDokAfterInsert
  @mf_params    VARCHAR(MAX) = NULL  -- uživatelská data v XML předávaná z formuláře
CREATE OR ALTER PROCEDURE dbo.spISDOC_SDOK_BEFOREINSERT
  @IDHDOK          INT,
  @SLOZKA_IDENT    VARCHAR(30)   OUT, --KÓD ZBOŽÍ, SLUŽBY ...
  @CARKOVY_KOD     VARCHAR(20)   OUT, --ČÁROVÝ KÓD 
  @TEXT_SLOZ       VARCHAR(MAX)  OUT, -- NÁZEV ZBOŽÍ,...
  @MNPOCETMJ       DECIMAL(19,5) OUT,
  @MJ              VARCHAR(10)   OUT,  
  @HDJCENAVAL      MONEY OUT,
  @HDCCENAVAL      MONEY OUT,
  @HDJCENADPH      MONEY OUT,
  @HDCCENADPH      MONEY OUT,
  @SAZBADPH        SMALLINT OUT,
  @IDUZIVATEL      INT OUT
CREATE OR ALTER PROCEDURE dbo.spISDOC_SDOK_AFTERINSERT
  @IDSDOK  INT
DokuWiki Appliance - Powered by TurnKey Linux