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

Z BBM Dokumentace iFIS
Skočit na navigaciSkočit na vyhledávání
Tmalkus (diskuse | příspěvky)
Jdankova (diskuse | příspěvky)
Bez shrnutí editace
 
(Není zobrazeno 5 mezilehlých verzí od jednoho dalšího uživatele.)
Řádek 31: Řádek 31:
/***********************************************************************
/***********************************************************************
FUNCTION Otevri_Doklad
FUNCTION Otevri_Doklad
POPIS : Funkce otevira rozhrani pro nasledne zpracovani pohledavky
POPIS : Funkce otevira transakci pro převzetí pohledavkového dokladu. Povinné vstupní argumenty jsou v popisu vyznačeny prefixem (!).


VYSTUP: výstupem je popis chyby, pokud nějaká chyba nastane
VYSTUP: výstupem je popis chyby, pokud nějaká chyba nastane
Řádek 49: Řádek 49:
         cdl_        číslo dodacího listu, max 15 znaků, nepovinné
         cdl_        číslo dodacího listu, max 15 znaků, nepovinné
         dodp_        číslo dodávkového příkazu, max 10 znaků, nepovinné
         dodp_        číslo dodávkového příkazu, max 10 znaků, nepovinné
         popis_      popis dokladu, volný text max 255 znaků, nepovinné
         popis_      interní popis dokladu (interní poznámka, obvykle se zde uvádí krátky text vstupující do účetní věty), volný text max 255 znaků, nepovinné
         zprava_      zpráva pro odběr., volný text max 255 znaků, nepovinné
         zprava_      zpráva pro partnera, zákazníka, účastníka kurzu apod., volný text max 255 znaků, nepovinné
         zppl_        (!) příznak očekávaného způsobu úhrady dokaldu, povinné, obvykle hodnota 'P'..Převodem na bankovní účet, 'H'..V Hotovosti na pokladně, 'B'..Bankovní kartou
         zppl_        (!) příznak očekávaného způsobu úhrady dokladu, povinné, hodnoty viz. číselník způsobů úhrady domain_name='ZPU' obvykle hodnota 'P1'..Převodem na bankovní účet, 'H1'..V Hotovosti na pokladně, 'P2'..Bankovní kartou
         datv_        datum vystaveni pohledávky, nepovinné
         datv_        datum vystaveni pohledávky, nepovinné
         dats_        datum splatnosti pohledávky, nepovinné
         dats_        datum splatnosti pohledávky, nepovinné
         datd_        datum uskutečnění zdanitelného plnění, nepovinné
         datd_        datum zdanitelného plnění, nepovinné
         vf_          (!) typ dokladu, povinné, povoleno pouze 'N'..Faktura, 'P'..Zálohový list nebo 'D'..Dobropis
         vf_          (!) typ dokladu, povinné, povoleno pouze 'N'..Faktura, 'P'..Zálohový list nebo 'D'..Dobropis
         krech_nr_    (!) externí číslo importované pohledávky, max 15 znaků, povinné
         krech_nr_    (!) externí číslo importované pohledávky, max 15 znaků, povinné
Řádek 76: Řádek 76:
         datk_        datum kurzu, nepovinné
         datk_        datum kurzu, nepovinné
         peridno_    id osoby, nepovinné
         peridno_    id osoby, nepovinné
         zdrojDat_    příznak zdroje dat, nepovinné
         zdrojDat_    (!) příznak zdroje dat, povinné
         prkidno_    id účetního pravidla, nepovinné
         prkidno_    id účetního pravidla, nepovinné
         zpus_odesl_  dokl_ příznak způsobu odeslání dokladu (doména), nepovinné
         zpus_odesl_  dokl_ příznak způsobu odeslání dokladu (doména), nepovinné
Řádek 90: Řádek 90:
         fadic_      DIČ obch.partnera, nepovinné
         fadic_      DIČ obch.partnera, nepovinné
         fanazev_    název firmy och. partnera, nepovinné
         fanazev_    název firmy och. partnera, nepovinné
        fvbu_        formát, ve kterém bude vlastní bankovní účet na vygenerovaném dokladu uveden, nepovinné, 1..Běžný formát číslo účtu / kod banky, 2..bankovní účet v mezinárodním formátu IBAN


NAVRATOVA HODNOTA : Pri chybe vraci FALSE jinak vraci TRUE.
NAVRATOVA HODNOTA : Pri chybe vraci FALSE jinak vraci TRUE.
Řádek 96: Řádek 97:
/***********************************************************************
/***********************************************************************
   FUNCTION Zapis_Radek
   FUNCTION Zapis_Radek
POPIS : Funkce zapisuje radek pohledavky. Radky nelze zapisovat, pokud
POPIS : Funkce zapisuje radek pohledavky. Radky nelze zapisovat, pokud nebylo provedeno otevreni dokladu pomoci funkce Otevri_Doklad.
  Nebylo provedeno otevreni dokladu pomoci funkce Otevri_Doklad.
Povinné vstupní argumenty jsou v popisu vyznačeny prefixem (!).  


VSTUP : "text_"    text radku, nepovinne, max 255 znaku
VSTUP : "text_"    (!) text radku, povinne, max 255 znaku
         "mj_"      merna jednotka, max 10 znaku, nepovinne
         "mj_"      merna jednotka, max 10 znaku, nepovinne
         "pocet_"    mnozstvi, nepovinne
         "pocet_"    mnozstvi, nepovinne
         "cenamj_"  cena za jednotku v domaci nebo cizi mene, nepovinne
         "cenamj_"  cena za jednotku v domaci nebo cizi mene, nepovinne
         "cenc_"    zaklad dane v domaci mene, povinné, pokud je závazek v domácí měně
         "cenc_"    (!) zaklad dane v domaci mene, povinne, pokud je závazek v domaci mene
         "zcm_"      castka v cizi mene, povinne, pokud je závazek v cizi mene
         "zcm_"      (!) castka v cizi mene, povinne, pokud je závazek v cizi mene
         "zdcm_"    zaklad dane v cizi mene nepovinne
         "zdcm_"    zaklad dane v cizi mene nepovinne
         "dcm_"      castka DPH v cizi mene, nepovinne
         "dcm_"      castka DPH v cizi mene, nepovinne
         "hdan_"    castka DPH v domaci mena, nepovinne
         "hdan_"    castka DPH v domaci mena, nepovinne
         "sazba_"    sazba DPH v %, povinne
         "sazba_"    (!) sazba DPH v %, povinne
         "stav_"    stav radku (kvuli zaloham), povinne, povolena pouze hodnota 'E'
         "stav_"    (!) stav radku, povinne, povolena pouze hodnota 'E'
         "danidno_"  id sazby DPH viz. sazebník DPH, nepovinne
         "danidno_"  id sazby DPH viz. sazebník DPH, nepovinne
         "nsidno_"  id nakl. Strediska, nepovinne
         "nsidno_"  id nakl. Strediska, nepovinne
Řádek 251: Řádek 252:
     end if;
     end if;
     --konec smycky pro zaspani vsech radku dokladu
     --konec smycky pro zaspani vsech radku dokladu
    if not imp_odfa.uzavri_doklad(chyba,cislodokl) then
 
  if not imp_odfa.uzavri_doklad(chyba,cislodokl) then
       imp_odfa.reset_doklad;
       imp_odfa.reset_doklad;
       RAISE_APPLICATION_ERROR(-20105, chyba);   
       RAISE_APPLICATION_ERROR(-20105, chyba);   
     end if;
     end if;
     -- ZDE je mozno prevzit cislo vygenerovaneho podkladu pro vystavení pohledavky iFIS, které je ulozeno v promenne cislodokl
     -- 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.');
     dbms_output.put_line('Byl vygenerovan podklad č.'||cislodokl||' pro vystavení pohledavky v iFIS.');
  end;
end;
/
/
commit;
commit;

Aktuální verze z 3. 1. 2024, 15:51

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. Samotný zápis dat do datových struktur iFIS je možné provádět buď prostřednictvím SOAP webové služby, nebo pomocí konektorů (funkcí) na úrovni databáze Oracle iFIS. Návratovou hodnotou volání datového rozhraní je vždy jednoznačné číslo vytvořeného záznamu v iFIS/Finance. Přes tento identifikátor může externí systém zjišťovat podrobnosti o stavu zpracování jednotlivých dokladů.

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

  • 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
  • Externí aplikace ovlivňuje chování konektoru zadáním tzv. vstupních argumentů
  • 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.
/***********************************************************************
   Jmeno:    IMP_ODFA
   Ucel:    Import pohledávek do FIS*Finance
***********************************************************************/

/***********************************************************************
FUNCTION Otevri_Doklad
POPIS : Funkce otevira transakci pro převzetí pohledavkového dokladu. Povinné vstupní argumenty jsou v popisu vyznačeny prefixem (!). 

VYSTUP: výstupem je popis chyby, pokud nějaká chyba nastane
VSTUP : firmidno_    vnitřní identifikátor adresy firmy oběratele (nepovinný vstupní argument), má přednost před argumentem ico_
        ico_         IČO firmy odběratele, (nepovinný)
        kopridno_    vnitřní identifikátor adresy firmy konečného příjemce (nepovinný), má přednost před argumentem icokp_
        icokp_       IČO firmy konečného příjemce, nepovinné. Pokud je uveden argument kopridno_ , ignoruje se
        mesic_       účetní období pohledávky - měsíc, nepovinné
        rok_         účetní období pohledávky - rok, nepovinné
        mena_        (!) měna pohledávky, povinné
        penale_      denní penále v %, nepovinné
        slevy_       slevy v procentech, nepovinné
        vsmb_        variabilní symbol, max 10 znaků, nepovinné
        ksmb_        konstantní symbol, max 10 znaků, nepovinné
        ssmb_        specifický symbol, max 10 znaků, nepovinné
        pril_        přílohy, max 20 znaků, nepovinné
        cdl_         číslo dodacího listu, max 15 znaků, nepovinné
        dodp_        číslo dodávkového příkazu, max 10 znaků, nepovinné
        popis_       interní popis dokladu (interní poznámka, obvykle se zde uvádí krátky text vstupující do účetní věty), volný text max 255 znaků, nepovinné
        zprava_      zpráva pro partnera, zákazníka, účastníka kurzu apod., volný text max 255 znaků, nepovinné
        zppl_        (!) příznak očekávaného způsobu úhrady dokladu, povinné, hodnoty viz. číselník způsobů úhrady domain_name='ZPU' obvykle hodnota 'P1'..Převodem na bankovní účet, 'H1'..V Hotovosti na pokladně, 'P2'..Bankovní kartou
        datv_        datum vystaveni pohledávky, nepovinné
        dats_        datum splatnosti pohledávky, nepovinné
        datd_        datum zdanitelného plnění, nepovinné
        vf_          (!) typ dokladu, povinné, povoleno pouze 'N'..Faktura, 'P'..Zálohový list nebo 'D'..Dobropis
        krech_nr_    (!) externí číslo importované pohledávky, max 15 znaků, povinné
        zrus_id_     zatim nevyužívaný argument, max 15 znaků nepovinné
        rel1_id_     externí číslo dobropisované pohledávky, pro typ dokladu "dobropis" povinný argument, max 15 znaků
        nsidno_      id nákladového střediska, nepovinné
        typaidno_    id typu akce, nepovinné
        akce_        id akce, nepovinné
        komidno_     id komplexní položky, nepovinné
        rsridno_     id řádku smlouvy, nepovinné
        vlucidno_    id vlastního bank. účtu, nepovinné
        schvaluje_   osobní nebo rodné číslo osoby, která schvaluje doklad, nepovinné
        prpartn_     (!) konečný příjemce i s adresou, volný text max 255 znaků, povinné pokud není uveden některý z argumentů firmidno_, ico_, kopridno, icokp_, peridno_, přednostně se převezme uvedená hodnota kopridno_ nebo icokp_
        ns_          (!) číslo NS, přednost má nsidno_, povinné, pokud není uveden argument nsidno_
        ta_          číslo TA, přednost má typaidno_, nepovinné
        nakce_       název akce, přednost má akce_, nepovinné
        kp_          číslo komplexní položky, přednost má komidno_, nepovinné
        ejidno_      (!) číslo cílové EJ, povinné
        todfidno     id deníku, nepovinné
        tof_         číslo deníku, nepovinné
        datk_        datum kurzu, nepovinné
        peridno_     id osoby, nepovinné
        zdrojDat_    (!) příznak zdroje dat, povinné
        prkidno_     id účetního pravidla, nepovinné
        zpus_odesl_  dokl_ příznak způsobu odeslání dokladu (doména), nepovinné
        odesl_partn_ adresa pro doručení faktury, nepovinné
        jazyk_       jazyk faktury, nepovinné
        spisznacka_  spisová značka, nepovinné
        faadrcp_     součást adresy obch.partnera - č.p., nepovinné
        faadrm_      součást adresy obch.partnera - místo, nepovinné
        faadrpsc_    součást adresy obch.partnera - PSČ, nepovinné
        faadrul_     součást adresy obch.partnera - ulice, nepovinné
        faadrz_      součást adresy obch.partnera - stát, nepovinné
        facast_      součást adresy obch.partnera - název části, nepovinné
        fadic_       DIČ obch.partnera, nepovinné
        fanazev_     název firmy och. partnera, nepovinné
        fvbu_        formát, ve kterém bude vlastní bankovní účet na vygenerovaném dokladu uveden, nepovinné, 1..Běžný formát číslo účtu / kod banky, 2..bankovní účet v mezinárodním formátu IBAN

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. 
Povinné vstupní argumenty jsou v popisu vyznačeny prefixem (!). 

VSTUP : "text_"     (!) text radku, povinne, 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, pokud je závazek v domaci mene
        "zcm_"      (!) castka v cizi mene, povinne, pokud je závazek v cizi mene
        "zdcm_"     zaklad dane v cizi mene nepovinne
        "dcm_"      castka DPH v cizi mene, nepovinne
        "hdan_"     castka DPH v domaci mena, nepovinne
        "sazba_"    (!) sazba DPH v %, povinne
        "stav_"     (!) stav radku, povinne, povolena pouze hodnota 'E'
        "danidno_"  id sazby DPH viz. sazebník DPH, nepovinne
        "nsidno_"   id nakl. Strediska, nepovinne
        "typaidno_" id typu akce, nepovinne, nepovinne
        "akce_"     id akce, nepovinne, nepovinne
        "komidno_"  id komplexni polozky, nepovinne
        "rsfidno_"  id radku ceny ze smlouvy (viz. iFIS/Registr smluv), nepovinne
        "kodal_"    id analytickeho uctu (viz. iFIS/Účetní rozvrh), nepovinne
        "audal_"    číslo analytického účtu (viz. iFIS/Účetní rozvrh), nepovinne
        "ns_"       číslo NS, přednost má nsidno_, nepovinne
        "ta_"       číslo TA, přednost má typaidno_, nepovinne
        "nakce_"    název akce, přednost má akce_, nepovinne
        "kp_"       číslo komplexní položky, přednost má komidno_, nepovinne

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 vstupního zásobníku iFIS/Finance/Pohledávky (fis_xx.tekodih)
         "Pohledavka" , argument, zda se má rozhraní pokusit o automatické zpracování dat ve vstupním zásobníku iFIS/Finance/Pohledávky a založit tak konečnou pohledávkovou fakturu přímo v iFIS/Finance/Pohledávky, default 'N'
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_xx.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;