Převody vystavených faktur z externích systémů do iFIS*Pohledávky

Z BBM Dokumentace iFIS
Skočit na navigaciSkočit na vyhledávání

Popis datového rozhraní pro převod dat z externích systémů do iFIS/Pohledávky

Externí aplikace může zajišťovat přenos pohledávek (vystavené faktury, vystavené zálohové listy) do datového rozhraní iFIS/Pohledávky. Datové rozhraní validuje zapisovaná data a následně je zapisuje do evidence iFIS/Finance/Pohledávky.

  • Pro fyzický zápis pohledávkových dokladů do iFIS/Finance je využívána databázová package IMP_ODFA, která obsahuje jednotlivé výkonné funkce (vstupní konektory).
  • Vstupním konektorem se rozumí databázová funkce, která umožňuje externím aplikacím požadovanou manipulaci s daty iFIS
  • Vstupní konektory jsou volány buď napřímo a nebo přes webovou službu (SOAP WS)
  • Externí aplikace ovlivňuje chování konektoru zadáním tzv. vstupních argumentů
  • Vstupní argumenty konektorů, které mají definovány default hodnoty, jsou nepovinné
  • Argumenty, u nichž jsou uvedeny možné hodnoty, nebo odkazy na domény, nebo odkazy na jiné číselníky jsou na tyto hodnoty kontrolovány
  • Rozhraní po provedení transakce vrací odpověď, ve které je obsažen popis chyby a nebo ID záznamu ve vstupním zásobníku iFIS/Finance/Pohledávky.
  • Další pravidla jsou součástí popisu příslušných funkcí (viz. dále).


Technická specifikace webové služby IMPODFA je k dispozici v připojených dokumentech:

ImpODFA_docHtml.zip

ImpODFA doc.xsd

pohledavka_faktura_24132_request.xml

iFIS pohledavka_faktura_24132.jpg

Technická specifikace databázové části datového rozhraní PACKAGE fis_01.IMP_ODFA

/***********************************************************************
   Jmeno:    IMP_ODFA
   Ucel:    Import pohledávek do FIS*Finance
***********************************************************************/
FUNCTION Otevri_Doklad
POPIS : Funkce otevira rozhrani pro nasledne zpracovani pohledavky

VYSTUP: výstupem je popis chyby, pokud nějaká chyba nastane
VSTUP : "firmidno_" vnitrni identifikator adresy firmy oberatele
                   (nepovinny), ma prednost pred argumentem "ico_"
        "ico_" ICO firmy odberatele, povinne, pokud neni uveden argument
                  "firmidno_"
        "kopridno_" vnitrni identifikator adresy firmy konecneho
            prijemce (nepovinny), ma prednost pred argumentem "icokp_"
        "icokp_" ICO firmy konecneho prijemce, nepovinne. Pokud je
                  uveden argument "kopridno_", ignoruje se
        "mesic_" ucetni obdobi pohledavky - mesic, nepovinne
        "rok_" ucetni obdobi pohledavky - rok, nepovinne
        "mena_" Mena pohledavky, povinne
        "penale_" denni penale v %, nepovinne
        "vsmb_" variabilni symbol, max 10 znaku, nepovinne
        "ksmb_" konstantni symbol, max 10 znaku, nepovinne
        "ssmb_" specificky symbol, max 10 znaku, nepovinne
        "pril_" prilohy, max 20 znaku, nepovinne
        "cdl_" číslo dod.listu nebo číslo dokladu v externí aplikaci, max 15 znaku, nepovinne
        "dodp_" čislo objednávky nebo dodavkoveho prikazu, max 10 znaku, nepovinne
        "popis_" Popis dokladu, volny text max 255 znaku, nepovinne
        "zprava_" Zprava pro odberatele, volny text max 255 znaku, nepovinne
        "zppl_" zpusob uhrady, možné hodnoty PPrikazem,H-Hotovosti, I-Inkasem, povinne
        "datv_" Datum vystaveni pohledavky,nepovinne
        "dats_" Datum splatnosti pohledavky,nepovinne
        "datd_" datum plneni DUZP, nepovinne
        "vf_"  typ dokladu, povinné, možné hodnoty 'N' - vystavená faktura/vnitropodniková faktura nebo'P' - zálohový list
"krech_nr_" cislo importovaneho dokladu v externí aplikaci, max 15 znaku, povinne
        "zrus_id_" zatim nevyuzivany parametr, max 15 znaku nepovinne
        "rel1_id_" zatim nevyuzivany parametr, max 15 znaku nepovinne
        "nsidno_"    id nakladoveho strediska, nepovinne, default null
        "typaidno_"  id typu akce, nepovinne, default null
        "akce_"      id akce, nepovinne, default null
        "komidno_"   id komplexní polozky, nepovinne, default null
        "rsridno_"   id radku smlouvy, nepovinne, default null 
	  "vlucidno_"  id vlastniho bank. uctu, nepovinne, default null
        "schvaluje_" osobni nebo rodne cislo osoby, ktera schvaluje doklad,
                     default null
        "prpartn_"   konečný příjemce i s adresou, volný text max 255 znaku,
                     default null, přednost  kopridno_ a icokp_
        "ns_"        číslo NS, přednost  nsidno_, default null
        "ta_"        číslo TA, přednost  typaidno_, default null
        "nakce_"     název akce, přednost  akce_, default null
        "kp_"        číslo komplexní položky, přednost  komidno_, default null
        "ejidno_"    číslo cílové EJ, default null - v tom pripade je to EJ uzivatele,
        "todfidno"   id deníku, default null
        "tof_"       číslo deníku, default null
        "datk_"      datum kurzu, default null

NAVRATOVA HODNOTA : Pri chybe vraci FALSE jinak vraci TRUE.
***********************************************************************/
 
/***********************************************************************
   FUNCTION Zapis_Radek
POPIS : Funkce zapisuje radek pohledavky. Radky nelze zapisovat, pokud
  Nebylo provedeno otevreni dokladu pomoci funkce Otevri_Doklad.

VSTUP : "text_" text radku, nepovinne, max 255 znaku
        "mj_" merna jednotka, max 10 znaku, nepovinne
        "pocet_" mnozstvi, nepovinne
        "cenamj_" cena za jednotku v domaci nebo cizi mene, nepovinne
        "cenc_" zaklad dane v domaci mene, povinne
        "zcm_" castka v cizi mene, povinne, pokud je zavazek v cizi mene
        "zdcm_" zaklad dane v cizi mene nepovinne
        "dcm_" castka DPH v cizi mene, nepovinne
        "hdan_" castka DPH v domaci mena, povinne
        "sazba_" sazba DPH v %
        "stav_" stav radku (kvuli zaloham), povinne, povolena pouze hodnota 'E'
        "DANIDNO_" id sazby DPH viz. sazebník DPH (J_SZD), nepovinne, default null
        "nsidno_"   id nakl. Strediska (ELAURI_VW), nepovinne, default null
        "typaidno_" id typu akce, nepovinne (ELAURI_VW), default null
        "akce_"     id akce, nepovinne (ELAURI_VW), default null
        "komidno_"  id komplexni polozky (ELAURI_VW), default null
        "rsfidno_"  id radku ceny ze smlouvy (viz iFIS/Smlouvy), default null
"kodal_"    id analytickeho uctu
"audal_"    číslo analytického účtu, default null
"ns_"       číslo NS, přednost má nsidno_, default null
"ta_"       číslo TA, přednost má typaidno_, default null
"nakce_"    název akce, přednost má akce_, default null
"kp_"       číslo komplexní položky, přednost má komidno_, default null

VYSTUP : "Chyba" - text chyboveho hlaseni pri chybe.
NAVRATOVA HODNOTA : Pri chybe vraci FALSE jinak vraci TRUE.
***********************************************************************/



/***********************************************************************
   FUNCTION Uzavri_Doklad
POPIS :  Funkce provadi formalni kontroly uplnosti dokladu, uzavira jej
         pro dalsi zpracovani v uloze Finance a inicializuje rozhrani
         pro zpracovani dalsiho dokladu.
VYSTUP : "Chyba" - text chyboveho hlaseni pri chybe.
      "CisloDokl" - cislo dokladu pod kterym byl doklad ulozen do
             tabulky rozhrani
NAVRATOVA HODNOTA : Pri chybe vraci FALSE jinak vraci TRUE.
***********************************************************************/


/***********************************************************************
   PROCEDURE Reset_Doklad
POPIS :  V pripade ze dojde k chybe pri zapisu radku dokladu nebo pri
         uzavreni dokladu je nutne inicializovat rozhrani touto
         procedurou. Zaroven tato procedura provadi rollback k okamziku
         otevreni dokladu.
***********************************************************************/


Podrobnější komentáře k některým vstupním argumentům v db rozhraní PACKAGE fis_01.IMP_ODFA:

a) funkce otevri_doklad

  • firmidno_ a ico_ - Jeden z těchto parametrů musí být v rámci volání funkce vyplněný. Pokud jsou vyplněny oba, přednost má firmidno_, ve kterém se předpokládá jednoznačný identifikátor partnera. Pokud je vyplněn pouze porametr ico_, hledá se firma s IČO, které je obsahem parametru. U takové firmy se hledá její hlavní část. Pokud žádná její část není označena jako hlavní, kontroluje se, zda existuje pouze jedna. Ta se předvyplní na importovaný doklad v iFIS/Pohledávky. Pokud jich existuje více, je vydáno chybové hlášení a předání podkladů pro vystavení pohledávky skončí neúspěšně chybou.
  • kopridno_ a icokp - parametry pro identifikaci konečného příjemce. Mohou být prázdné. Jinak platí totéž, co platí i pro předchozí dvojici vstupních parametrů.
  • mesic_ a rok_ - udávají účetní období, do kterého se má budoucí pohledávkový doklad zapsat. Když jsou prázdné, pohledávka se zapíše do aktuálně otevřeného období pro pohledávky (lokální parametr ODFAMES1)


b) funkce ZapisRadek

  • sazba_ - pokud je zadána pouze číselná hodnota sazby DPH, pak se do na doklad v iFIS předvyplňuje pouze tato základní hodnota, konkrétní sazbu DPH pak musí uživatel iFIS vybrat ze seznamu možných hodnot.
  • danidno_ - identifikátor sazby DPH ze sazebníku DPH (J_SZD.szd_id), vstupní parametr sazba_ musi být uveden současně také a nesmí být v rozporu s identifikací sazby v parametru danidno_.
Pozor Pozor
I na nedaňové řádky faktury je nutné uvádět sazbu daně určenou výhradně pro nedaňové finanční operace. Na zálohových listech je vždy uváděna sazba 0% Není daňový doklad.

Fakturované částky nejsou v iFIS nikterak kontrolovány. Kontroly částek nejsou prováděny ani podle sazby DPH ani podle kurzu. Výpočty fakturovaných částek zajišťuje externí aplikace. iFIS tyto částky pouze přebírá 1:1.


Názorný příklad zápisu nového dokladu pomocí konektorů iFIS přes standardní prostředek SQL*Plus.

SQL> connect USER_EXT_APL_XXX /XXXXX@testdb
Spojeno.
SQL> @C:\imp_pohl
Byl vygenerovan podklad č.117 pro vystavení pohledavky v iFIS.

Procedura PL/SQL úspěšně dokončena.

Potvrzení transakce dokončeno.


Obsah souboru IMP_POHL.sql:

Set serveroutput on size 1000000;
declare
    chyba varchar2(2000);
    cislodokl number(10);
  begin
    if not imp_odfa.otevri_doklad(
            chyba,
            null,  -- id partnera - firmy
            '40755592', --ICO (ICO BBM z evidence partneru)
            null,   -- id konecneho prijemce
            null,   -- ico konecneho prijemce
            null,   -- mesic
            null,   -- rok
            'CZK',  -- mena
            null,   -- denni penale v procentech
            null,   -- slevy v procentech
            null,   -- variabilni symbol
            '308',  -- konstantni symbol
            null,   -- specificky symbol
            null,   -- prilohy
            null,   -- cislo dodaciho listu
            null,   -- dodavkovy prikaz
            'pokusny import', -- popis dokladu
            'Zprava pro prijemce',
            'P',           -- zpusob uhrady
            trunc(sysdate), -- datum vystaveni dokladu
            trunc(sysdate+10), -- datum splatnosti
            trunc(sysdate), -- DUZP
            'N',            -- typ dokladu, N=faktura, P=zalohovy list
            1,              -- ZDE UVEST cislo importovaneho dokladu z externí aplikace(nelze opakovane zapisovat stejne cislo dokladu)
            null,           -- zatim se nevyuziva
            null,           -- zatim se nevyuziva
            null,           -- id nakladoveho strediska
            null,           -- id typu akce
            null,           -- id akce
            null,           -- id komplexni polozky
            null,           -- id radku smlouvy (vyuziva se jen pri generovani z RS)
            null            -- id vlastniho bankovniho uctu
    ) then
      imp_odfa.reset_doklad;
      RAISE_APPLICATION_ERROR(-20103, chyba);   
    end if;
    /*zacatek smycky pro zapsani vsech radku dokladu*/
    if not imp_odfa.zapis_radek(chyba,
                       'Text 1. radku',
                       'ks', -- merna jednotka
                       3,    -- pocet mernych jednotek,
                       500,  -- cena za MJ
                       1500, -- zaklad dane
                       null, -- castka v cizi mene vcetne dane
                       null, -- zaklad dane v cizi mene
                       null, -- dan v cizi mene
                       75,   -- èástka DPH
                       5,    -- hodnota sazby DPH
                       'E',
                       null, -- id sazby DPH
                       null, -- id nakladoveho strediska
                       null, -- id typu akce
                       null, -- id akce
                       null, -- id komplexni polozky
                       null  -- id radku smlouvy (vyuziva se pri generovani z RS)
    ) then
      imp_odfa.reset_doklad;
      RAISE_APPLICATION_ERROR(-20104, chyba);   
    end if;
    --konec smycky pro zaspani vsech radku dokladu
    if not imp_odfa.uzavri_doklad(chyba,cislodokl) then
      imp_odfa.reset_doklad;
      RAISE_APPLICATION_ERROR(-20105, chyba);   
    end if;
    -- ZDE je mozno prevzit cislo vygenerovaneho podkladu pro vystavení pohledavky iFIS, které je ulozeno v promenne cislodokl
    dbms_output.put_line('Byl vygenerovan podklad č.'||cislodokl||' pro vystavení pohledavky v iFIS.');
  end;
/
commit;