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í
Řádek 31: | Řádek 31: | ||
Ucel: Import pohledávek do FIS*Finance | Ucel: Import pohledávek do FIS*Finance | ||
***********************************************************************/ | ***********************************************************************/ | ||
/*********************************************************************** | /*********************************************************************** | ||
FUNCTION Otevri_Doklad | FUNCTION Otevri_Doklad |
Verze z 17. 5. 2023, 11:57
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
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ů
- 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).
/***********************************************************************
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_ vnitřní identifikátor adresy firmy oběratele (nepovinný), má přednost před argumentem ico_
ico_ IČO firmy odběratele, povinné, pokud není uveden argument firmidno_
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
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_ popis dokladu, volný text max 255 znaků, nepovinné
zprava_ zpráva pro odběr., volný text max 255 znaků, nepovinné
zppl_ příznak způsobu úhrady, povinné
datv_ datum vystaveni pohledávky, nepovinné
dats_ datum splatnosti pohledávky, nepovinné
datd_ datum uskutečnění zdanitelného plnění, nepovinné
vf_ typ dokladu, povinné, povoleno pouze 'N' - faktura a 'P' zálohový list a '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 dobropis povinné, max 15 znaků
nsidno_ id nákladového střediska, default null
typaidno_ id typu akce, default null
akce_ id akce, default null
komidno_ id komplexní položky, default null
rsridno_ id řádku smlouvy, default null
vlucidno_ id vlastního bank. účtu, default null
schvaluje_ osobní nebo rodné číslo osoby, která schvaluje doklad, default null
prpartn_ konečný příjemce i s adresou, volný text max 255 znaků, default null, přednost má kopridno_ a icokp_
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
ejidno_ číslo cílové EJ, default null - v tom případě je to EJ uživatele,
todfidno id deníku, default null
tof_ číslo deníku, default null
datk_ datum kurzu, default null
peridno_ id osoby, default null
zdrojDat_ příznak zdroje dat default null; (S=STAG), propaguje se do TEKODFA.STVP
prkidno_ id účetního pravidla default null
zpus_odesl_ dokl_ příznak způsobu odeslání dokladu (doména), default null
odesl_partn_ adresa pro doručení faktury, default null
jazyk_ jazyk faktury, default null
spisznacka_ spisová značka, default null
faadrcp_ součást adresy obch.partnera - č.p., default null,
faadrm_ součást adresy obch.partnera - místo, default null,
faadrpsc_ součást adresy obch.partnera - PSČ, default null,
faadrul_ součást adresy obch.partnera - ulice, default null,
faadrz_ součást adresy obch.partnera - stát, default null,
facast_ součást adresy obch.partnera - název části, default null,
fadic_ DIČ obch.partnera, default null,
fanazev_ název firmy och. partnera 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 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_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_.
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;