Popis datového rozhraní k iFIS*Zásoby - Rezervační objednávky
Popis vzájemné komunikace a technický popis rozhraní
Popis datového rozhraní iFIS/Prodejna
Předávání dat mezi iFIS/Zásoby a externím e-Obchodem
Systém iFIS/Zásoby/Prodej zajištuje evidenci prodávaného zboží a služeb, prodejních ceníků, zajišťuje veškeré související skladové operace včetně fakturace a automatické distribuce příslušných dokladů na mailovou adresu zákazníka.
iFIS/Zásoby/Prodej je využíván pro prodej zboží v kamenných prodejnách a poskytuje data pro navazující internetové prodejní systémy (e-Obchody).
e-Obchod čerpá všechna potřebná data z datového schématu VYMENIK databáze Oracle iFIS, případně z centrálního uložíště dokumentů CUL-Alfresko. Zpátky do iFIS pak e-Obchod zapisuje přijaté objednávky. Pro zápis jednotlivých objednávek do iFIS lze využít buď standardní REST API OBCHOD (JSON) a nebo databázové konektory (db funkce/procedury) přímo na rozhraní databáze Oracle iFIS.
Popisy datových objektů v rozhraní iFIS/Zásoby/Prodejna
VOBECENK Katalog zboží a prodejních cen – struktura datového objektu
Položka | Pořadí | Datový typ | Null? | Popis položky |
---|---|---|---|---|
CENIDNO | 1 | NUMBER (10) | N | Interní a neměnný identifikátor skladové karty (skladové položky, zboží) |
KARTIDNO | 2 | NUMBER (20) | Y | Číslo skladové položky, obvykle číslo čárového kódu, v případě literatury obvykle ISBN |
NAZEV | 3 | VARCHAR2 (4000 Byte) | Y | Název skladové položky-zboží |
NAZEV_AUTOR | 4 | VARCHAR2 (225 Byte) | Y | Autor skladové položky - vyplněno u literatury, skript apod. |
NAZEV_NAZEV | 5 | VARCHAR2 (4000 Byte) | Y | Název skladové položky |
DRUH | 6 | VARCHAR2 (4000 Byte) | Y | Druh zboží |
SKUPINA | 7 | VARCHAR2 (4000 Byte) | Y | Skupina zboží |
POLSKL | 8 | VARCHAR2 (1 Byte) | N | Skladovatelnost položky - A.. Skladovatelné položky, N..služby typu poštovné, balné |
KATEGORIE | 9 | VARCHAR2 (10 Byte) | Y | Kategorie prodejní ceny, kategorie odběratele |
TYP_CENY | 10 | VARCHAR2 (1 Byte) | Y | Typ prodejní ceny Z..Základní cena... |
DAN | 11 | NUMBER (5,2) | Y | Sazba DPH |
CENA | 12 | NUMBER (14,2) | Y | Prodejní cena bez DPH |
CENADPH | 13 | NUMBER | Y | Prodejní cena včetně DPH |
SKLCENA | 14 | NUMBER (16,4) | Y | Aktuální skladová cena skladové položky (průměrná pořizovací cena) |
SKLADEM | 15 | NUMBER (10,3) | Y | Počet MJ na všech skladech |
MJ | 16 | VARCHAR2 (10 Byte) | Y | Měrná jednotka |
SKLAD | 17 | VARCHAR2 (30 Byte) | Y | Prodejní sklad |
SKLADEM_SKL | 18 | NUMBER | Y | Počet MJ na prodejním skladu |
SREZER | 19 | NUMBER | Y | Počet MJ, které jsou aktuálně zarezervované platnými objednávkami a čekají v expedičním skladu na odbavení |
STOP_STAV | 20 | NUMBER (10,3) | Y | Minimální počet MJ na prodejním skladě |
POPIS | 21 | VARCHAR2 (4000 Byte) | Y | Textový popis skladové položky - zboží |
ZARUKA | 22 | VARCHAR2 (30 Byte) | Y | Záruka na zboží |
VYROBCE | 23 | VARCHAR2 (101 Byte) | Y | Obvykle výrobce nebo dodavatel zboží |
POL01 | 24 | VARCHAR2 (4000 Byte) | Y | Volitelná položka skladové karty, u různých druhů zboží se může lišit datový typ, obsah i význam uložených dat |
POL02 | 25 | VARCHAR2 (4000 Byte) | Y | Volitelná položka skladové karty, u různých druhů zboží se může lišit datový typ, obsah i význam uložených dat |
POL03 | 26 | VARCHAR2 (4000 Byte) | Y | Volitelná položka skladové karty, u různých druhů zboží se může lišit datový typ, obsah i význam uložených dat |
POL04 | 27 | VARCHAR2 (4000 Byte) | Y | Volitelná položka skladové karty, u různých druhů zboží se může lišit datový typ, obsah i význam uložených dat |
POL05 | 28 | VARCHAR2 (4000 Byte) | Y | Volitelná položka skladové karty, u různých druhů zboží se může lišit datový typ, obsah i význam uložených dat |
POL06 | 29 | VARCHAR2 (4000 Byte) | Y | Volitelná položka skladové karty, u různých druhů zboží se může lišit datový typ, obsah i význam uložených dat |
POL07 | 30 | VARCHAR2 (4000 Byte) | Y | Volitelná položka skladové karty, u různých druhů zboží se může lišit datový typ, obsah i význam uložených dat |
POL08 | 31 | VARCHAR2 (4000 Byte) | Y | Volitelná položka skladové karty, u různých druhů zboží se může lišit datový typ, obsah i význam uložených dat |
POL09 | 32 | VARCHAR2 (4000 Byte) | Y | Volitelná položka skladové karty, u různých druhů zboží se může lišit datový typ, obsah i význam uložených dat |
POL10 | 33 | VARCHAR2 (4000 Byte) | Y | Volitelná položka skladové karty, u různých druhů zboží se může lišit datový typ, obsah i význam uložených dat |
POL11 | 34 | VARCHAR2 (4000 Byte) | Y | Volitelná položka skladové karty, u různých druhů zboží se může lišit datový typ, obsah i význam uložených dat |
POL12 | 35 | VARCHAR2 (4000 Byte) | Y | Volitelná položka skladové karty, u různých druhů zboží se může lišit datový typ, obsah i význam uložených dat |
DRUPIDNO | 36 | NUMBER (10) | Y | Interní identifikátor druhu zboží |
SKUPIDNO | 37 | NUMBER (10) | Y | Interní identifikátor skupiny zboží |
SKLIDNO | 38 | NUMBER (10) | Y | Interní identifikátor skladu |
STR_ID | 39 | NUMBER (10) | Y | Interní identifikátor střediska, které prodejnu provozuje |
KATOBIDNO | 40 | NUMBER (10) | Y | Interní identifikátor kategorie prodejní ceny, kategorie odběratele |
BONUS_CENIDNO | 41 | NUMBER (10) | Y | Interní identifikátor bonusové skladové položky, která se má automaticky přičíst do objednávky |
BONUS_POCET | 42 | NUMBER | Y | Bonusový počet MJ, který se má automaticky přičíst do objednávky |
BONUS_CENAD | 43 | NUMBER (16,2) | Y | Bonusová cena včetně DPH za MJ, za kterou se bonusová položka automaticky přičte do objednávky |
OBR | 44 | BLOB | Y | Náhled na zboží - obvykle fotografie ve formátu JPG nebo sken přebalu knihy, skripta apod. |
OBRPOPIS | 45 | VARCHAR2 (225 Byte) | Y | Textový popis k náhledu na zboží |
Tab. 1 Describe datového objektu VOBECENK – Katalog zboží a prodejních cen
Podrobnější popisy k položkám objektu VOBECENK – Katalog zboží a prodejních cen
Jednoznačný identifikátor skladové položky je CENIDNO, číslo skladové karty, od kterého je odvozován čárový kód je uveden v položce KARTIDNO, cena včetně daně je pro každou kategorii prodejní ceny uvedena v položce CENAD atd. Skladové položky je potřeba vždy filtrovat s patřičnou podmínkou na SKLAD (sklidno), prodejní kategorii (katobidno). Disponibilní počet kusů na skladě je určen položkou SKLADEM_SKL minus SREZER (rezevace zboží jinými platnými objednávkami) mínus STOP_STAV (nastavené minimální počet MJ na skladové kartě). Položky POL01 až POL12 jsou implementačně závislé, mohou proto mít u různých prodejních skladů různý datový formát, obsah i význam. Náhled na zboží ve formě obrázku lze získat z položky OBR (BLOB). Seznam neskladovatelných položek (služby typu poštovné, balné atd.) včetně prodejní ceny za MJ lze ze seznamu získat podmínkou POLSKL=’N’. U každé skladové položky je uvedeno tzv. evidenční středisko (obvykle středisko, ne kterém je provozován prodejní sklad) v položce STR_ID. Zlevněné položky nebo položky v prodejních akcích lze získat dotazy přes položku TYP_CENY. Podrobnosti o zboží s bonusem (kup 1ks a k tomu dostaneš druhý zdarma apod.) lze získat dotazy přes položky TYP_CENY, BONUS_CENIDNO, BONUS_POCET a BONUS_CENAD.
VOBEZAKH Hlavičky přijatých rezervačních objednávek – struktura datového objektu
Položka | Pořadí | Datový typ | Null? | Popis položky |
---|---|---|---|---|
ZAKIDNO | 1 | NUMBER (10) | N | ID přijaté rezervační objednávky |
ODBERID | 2 | NUMBER (10) | N | ID odběratele v hlavičce objednávky |
ODBERATEL | 3 | VARCHAR2 (101 Byte) | Y | Odběratel v hlavičce objednávky |
KATOBIDNO | 5 | NUMBER (10) | N | ID kategorie odběratele |
KATEGORIE | 6 | VARCHAR2 (10 Byte) | Y | Kategorie prodejní ceny - odběratele |
TERMIN | 10 | VARCHAR2 (30 Byte) | Y | Termín dodávky |
EJIDNO | 11 | NUMBER | Y | ID ekonomické jednotky, obvykle konstanta 1 |
POZNAMKA | 12 | VARCHAR2 (255 Byte) | Y | Interní textová poznámka v objednávce |
KOMENTAR | 13 | VARCHAR2 (2000 Byte) | Y | Komentář k objednávce |
PRIJEMID | 14 | NUMBER (10) | Y | ID konečného příjemce |
PRIJEMCE | 15 | VARCHAR2 (101 Byte) | Y | Konečný příjemce |
DOPRAVA | 16 | VARCHAR2 (4000 Byte) | Y | Zvolený způsob dopravy |
SMLOUVA | 17 | VARCHAR2 (10 Byte) | Y | Číslo smlouvy |
STAV | 20 | VARCHAR2 (1 Byte) | Y | Stav objednávky |
NSTAV | 21 | VARCHAR2 (4000 Byte) | Y | Stav objednávky - text |
SPOZ | 22 | NUMBER | Y | Suma požadovaných MJ za celou objednávku |
SREZ | 23 | NUMBER | Y | Suma zarezervovaných MJ za celou objednávku |
ZDOD | 24 | NUMBER | Y | Suma již vyexpedovaných MJ za celou objednávku |
ZNED | 25 | NUMBER | Y | Suma ještě nevyexpedovaných MJ za celou objednávku |
CNT | 26 | NUMBER | Y | Počet objednaných položek |
PLATNOST | 27 | VARCHAR2 (4000 Byte) | Y | Platnost objednávky |
COBJED | 28 | VARCHAR2 (20 Byte) | Y | Číslo externí objednávky |
CENA | 29 | NUMBER | Y | Celková cena bez DPH za celou objednávku |
CENAD | 30 | NUMBER | Y | Celková cena včetně DPH za celou objednávku |
31 | VARCHAR2 (50 Byte) | Y | E-mailová adresa na odběratele | |
TEL | 32 | VARCHAR2 (30 Byte) | Y | Telefonní kontakt na odběratele |
IDENT_PLATBA | 33 | VARCHAR2 (30 Byte) | Y | ID transakce platební kartou |
EXT_ID | 34 | VARCHAR2 (60 Byte) | Y | Externí jednoznačný identifikátor zákazníka v e-Obchodě |
FIROTEXT | 36 | VARCHAR2 (2000 Byte) | Y | Odběratel - text |
Tab. 2 Describe datového objektu VOBEZAKH – Hlavičky přijatých rezervačních objednávek
Podrobnější popisy k položkám objektu VOBEZAKH – Hlavičky přijatých rezervačních objednávek Jednoznačným číslem objednávky je ZAKIDNO, celková cena objednávky je v položkách CENA (základ daně) a CENAD (cena včetně daně), číslo externí objednávky je zobrazeno v položce COBJED, v položce EXT_ID může být uložen identifikátor odběratele z E-Obchod, NSTAV určuje stav zpracování objednávky v iFIS/Prodejna.
VOBEZAKR Řádky přijatých rezervačních objednávek – struktura datového objektu
Položka | Pořadí | Datový typ | Null? | Popis položky |
---|---|---|---|---|
ZAKIDNO | 1 | NUMBER (10) | N | ID přijaté rezervační objednávky |
CENIDNO | 2 | NUMBER (10) | N | ID skladové položky zboží |
RADKIDNO | 3 | NUMBER (10) | N | ID řádku objednávky |
CENA | 4 | NUMBER (14,2) | N | Cena za MJ bez DPH |
CENAD | 5 | NUMBER (14,2) | Y | Cena za MJ včetně DPH |
SUMCENA | 6 | NUMBER | Y | Celková cena za MJ bez DPH |
MENA | 7 | VARCHAR2 (3 Byte) | N | Měna |
POZADAVEK | 8 | NUMBER (10,3) | N | Požadovaný počet MJ |
REZERVACE | 9 | NUMBER (10,3) | N | Rezervovaný počet MJ |
EXPEDICE | 10 | NUMBER (10,3) | N | Počet MJ, které byly vyexpedovány z prodejního skladu |
DODANO | 11 | NUMBER (10,3) | N | Počet již vyskladněných MJ |
NEDODANO | 12 | NUMBER (10,3) | N | Počet ještě nevyskladněných MJ |
Tab. 3 Describe datového objektu VOBEZAKR – Řádky přijatých rezervačních objednávek
Podrobnější popisy k položkám objektu VOBEZAKR – Řádky přijatých rezervačních objednávek
Referenční vazba na hlavičku přes položku ZAKIDNO.
Zápis přijatých rezervačních objednávek přes datové rozhraní do iFIS/Prodejna
- Pro zápis přijatých rezervačních objednávek zboží do iFIS/Prodejna je využívána databázová package PA102_EOBC, která obsahuje jednotlivé konektory (funkce). Package PA102_EOBC je součástí každého privátního schématu FIS_XX.
- Konektorem se rozumí databázová funkce, která umožňuje externí aplikaci aktivně manipulovat s daty iFIS.
- Externí aplikace ovlivňuje prostřednictvím oprávněného uživatele 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.
- Konektor kontroluje všechna databázová integritní omezení.
- Jakákoliv chyba při zpracování transakce způsobí automatické odvolání všech změn, které konektor v rámci transakce provedl.
- Databázový konektor po provedení transakce automaticky vrací tzv. výstupní argumenty. Tyto výstupní argumenty informují externí aplikaci o stavu provedené transakce. Mohou to být např. informace o správně provedené transakci, informace o jednoznačných identifikátorech nově založených záznamů v iFIS, informace o chybných vstupních argumentech, informace o porušených integritních omezeních, nebo informace o porušení jiných pravidel pro ukládání dat v iFIS/Prodejna.
- Další pravidla jsou součástí popisu příslušných konektorů (viz dále).
FUNCTION vloz_skl_pol
POPIS : Funkce vkládá položky z katalogu zboží a služeb do rezervační objednávky. Úspěšně založené objednávky jsou externí
aplikaci přístupné přes db pohledy VOBEZAKH (hlavičky) a VOBEZAKR ()
VSTUP :
"Odberid_" - interní identifikátor zákazníka z číselníku organizací (j_sbj, j_vad, j_adr, j_mst)
"Prijemid_" - interní identifikátor konečného zákazníka z číselníku organizací (j_sbj, j_vad, j_adr, j_mst)
"Zpusob_dodavky" - způsob dodávky, viz. hodnoty doména DOPRAVA (rrp_faes.r_dom_values_vw)
"Termín_" – volný text, max. 30 zn.
"Kategorie_" – kategorie odběratele př. „MCE“, viz. hodnoty vobecenk.KATEGORIE
"Smlouva_" – označení smlouvy, max. 10 zn.
"Poznamka_" – volný text, max. 255 zn.
"Komentar_" – volný text, max. 2000 zn. (např. požadavek na fakturační adresu odlišnou od doručovací)
"Cenidno_" – interní identifikátor zboží, viz. hodnoty vobecenk.CENIDNO
"Počet_" – počet ks zboží
"Mail_" - mail pro případné informování zákazníka o stavu zpracování jeho objednávky
"Tel_" - telefon pro případné informování vyrozumění zákazníka o stavu zpracování jeho objednávky
"Ident platba_" identifikace platební transakce přes bankovní kartu
"Ext_id_" – jednoznačná identifikace zákazníka ve E-Obchod
"Zppl_" identifikace požadovaného způsobu platby ( doména FKTYPPL, možné
hodnoty, P .. platebním příkazem, H..hotovostí při osobním vyzvednutí na PTL, D..na dobírku, B..bankovní kartou, K..kartou IPS)
"Dor_adr_" doručovací adresa ve formě volné strukturované textové poznámky např. Firma / Část firmy / Příjmení a
jméno / Ulice / Město / PSČ / Stát, pokud je tento parametr naplněn, pak je hodnota uvedená v parametru Prijemid nevýznamná
"Cena_" Cena bez daně za MJ, pokud není uvedena, pak bude doplněna cena obvyklá podle uvedené prodejní kategorie
"Coobjed_" Číslo objednávky ve E-Obchod
"Str_id_" – NS skladu, na kterém je evidována skladová karta viz. položka VOBECENK.STR_ID
"Nsidno_" – ID střediska, na které bude účtovaná spotřeba nebo tržby za prodané zboží
"Typaidno_" – ID typu akce, na který bude účtovaná spotřeba nebo tržby za prodané zboží
"Akce_" – ID zakázky, na kterou bude účtovaná spotřeba nebo tržby za prodané zboží
"Komidno_" – ID komplexní položky, na kterou bude účtovaná spotřeba nebo tržby za prodané zboží
"Text_" – poznámka na řádek objednávky
"Fakt_adr_" - fakturační adresa
VÝSTUP : "Chyba" - text chybového hlášení při chybě.
NÁVRATOVÁ HODNOTA : Při chybě vrací FALSE jinak vrací TRUE.
FUNCTION vloz_skl_pol
( Chyba out varchar2,
odberidno_ in number,
prijemid_ in number,
zpusob_dodavky in varchar2,
termin_ in varchar2 default null,
kategorie_ in varchar2,
smlouva_ in varchar2 default null,
poznamka_ in varchar2 default null,
komentar_ in varchar2 default null,
cenidno_ in number,
pocet_ in number,
mail_ in varchar2 default null,
tel_ in varchar2 default null,
ident_platba_ in varchar2 default null,
ext_id_ in varchar2 default null,
zppl_ in varchar2 default null,
dor_adr_ in varchar2 default null,
cena_ in varchar2 default null,
cobjed_ in varchar2 default null,
str_id_ in number default null,
nsidno_ in number default null,
typaidno_ in number default null,
akce_ in number default null,
komidno_ in number default null,
text_ in varchar2 default null,
fakt_adr_ in varchar2 default null)
) Return boolean;
*** Funkce je volána v rámci jedné databázové transakce pro každý řádek objednávky jedenkrát. Na závěr musí následovat volání
funkce Uzavri_e_zak, čímž dojde k uložení objednávky v evidenci iFIS/Zásoby/Rezervační objednávky.
select * from fis.tlist1 where polozka= 'DOPRAVA';
EXT_VALUE | EXT_TEXT | DESCRIPTION |
---|---|---|
C | Poštou | Běžnou poštou |
O | Vyzvednutí objednavatelem | Objednavatel si zboží vyzvedává na expediční přepážce prodejny |
T | Expresní poštou | |
A | Elektronickou poštou | |
B | Dobírkou | |
D | Interní poštou | |
… |
FUNCTION uzavri_e_zak
POPIS : Funkce uzavírá založenou e-objednávku. Po uzavření objednávky nelze do objednávky přidávat další
řádky pomocí funkce Vloz_skl_pol. Při uzavření objednávky se generuje e-mail typu č.2 s ověřovacím dodatkem, je doručen
na registrovanou e-mailovou adresu zákazníka. Funkce fyzicky ukládá objednávku do databáze a generuje číslo objednávky (zakidno).
VÝSTUP : "Chyba" - text chybového hlášení při chybě.
"Zakidno" - interní identifikátor zakázky = číslo objednávky
NÁVRATOVÁ HODNOTA : Při chybě vrací FALSE jinak vrací TRUE.
*****************************************************************************/
FUNCTION uzavri_e_zak
( chyba out varchar2,
zakidno out number,
) Return boolean;
*** Funkce je volána bez vstupních parametrů v rámci jedné transakce na závěr vkládání řádku objednávky. Výstupní hodnotou
je vygenerované číslo objednávky (zakidno). Následná funkce potvrd_e_zak je potom volána s tímto vstupním parametrem (zakidno).
FUNCTION potvrd_e_zak
POPIS : Funkce může být využívána při zpětném potvrzení objednávky zákazníkem (vstupní parametr operace =’P’). U objednávky
se doplňuje příznak Typ= „P“ Potvrzeno a současně se převádí stav objednávky z hodnoty Přijato do Požadavek.
Pokud objednávka byla zákazníkem předem zaplacena platební kartou, pak je možné objednané zboží zarezervovat (vstupní
parametr operace =’R’).
K zarezervování však dojde jen u těch položek, které jsou v danou chvíli k dispozici.
Výsledkem je fyzické zablokování zboží pro další prodej.
VSTUP : "Operace" – parametr typu zpracování objednávky
"Zakidno " – parametr pro identifikaci zpracovávané objednávky
VÝSTUP : "Chyba" - text chybového hlášení při chybě.
NÁVRATOVÁ HODNOTA : Při chybě vrací FALSE jinak vrací TRUE.
FUNCTION potvrd_e_zak ( chyba out varchar2,
zakidno in number,
operace in varchar2
) Return boolean;
FUNCTION zmen_e_zak
POPIS : Funkce provádí aktualizaci dříve založené rezervační e-objednávky. Je využívána především pro dodatečné doplnění
identifikátoru úspěšně dokončené platby platební kartou.
FUNCTION E_ZMEN_ZAK(CHYBA OUT VARCHAR2,
ZAKIDNO_ IN NUMBER,
COBJED_ IN VARCHAR2 DEFAULT NULL,
ZPPL_ IN VARCHAR2 DEFAULT NULL,
IDENT_PLATBA_ IN VARCHAR2 DEFAULT NULL,
POZNAMKA_ IN VARCHAR2 DEFAULT NULL,
KOMENTAR_ IN VARCHAR2 DEFAULT NULL
) RETURN BOOLEAN IS
FUNCTION storno_e_zak
POPIS : Funkce provede storno založené rezervační e-objednávky. Storno objednávky je provedeno jen v případě, že
žádná objednávaných položek není rezervovaná nebo již expedovaná. Pokud byla provedena expedice, pak musí obsluha iFIS
nejprve provést storno výdejky ze skladu, případně storno vystavené faktury a následně pak musí odrezervovat zboží.
Pak je možné storno e-objednávky prostřednictví storno_e_zak úspěšně dokončit.
VSTUP : "Zakidno_ " – parametr pro identifikaci stornované objednávky
VÝSTUP : "Chyba" - text chybového hlášení při chybě.
NÁVRATOVÁ HODNOTA : Při chybě vrací FALSE jinak vrací TRUE.
FUNCTION storno_e_zak ( chyba out varchar2,
zakidno in number
) Return boolean;
Testovací příklad volání konektorů PA102EOBC
--příklad založení nové objednávky se třemi řádky, včetně následného potvrzení objednávky zákazníkem pomocí
nástroje Toad for ORACLE 9.0.1.8.
/* **** Priklad volani konektoru pro zapis internetove objednavky na zbozi - pro CVUT db FIST **** */
DECLARE
xchyba VARCHAR2(255);
xzakidno NUMBER(10);
BEGIN
/*TEST Pa102_Eobc.E_VLOZ_SKL_POL*/
DBMS_OUTPUT.PUT_LINE('*** TEST Pa102_Eobc.E_VLOZ_SKL_POL ***');
IF Pa102_Eobc.E_VLOZ_SKL_POL
(xchyba, --CHYBA OUT vystupni argument
s popisem chyby, ktera při zpracovani nastala
'143998', --ODBERID_ identifikator adresy
firmy z iFIS*Organizace (E-OBCHOD CVUT Neregistrovaní zákazníci ČVUT PTL=143998),
null, --PRIJEMID_ identifikator adresy
konecneho prijemce z iFIS*Organizace,
'C', --ZPUSOB_DODAVKY identifikator
pozadovaneho zpusobu dodani zbozi viz. hodnoty v domenovem ciselniku fis.tlist1 polozka 'DOPRAVA',
'Co nejdříve!', --TERMIN_ pozadovany temin dodani zbozi,
'MCE', --KATEGORIE_ oznaceni kategorie prodejni
ceny (vobecenk.KATEGORIE),
'SML1235/01', --SMLOUVA_ oznaceni smlouvy,
'Žádám o zařazení mezi registrované zákazníky!',--POZNAMKA_ poznamka k objednavce,
'Daňový doklad zašlete na adresu:
Tomas Malkus
Vrchlickeho 1250
38901 Vodňany', --KOMENTAR_ komentar k objednavce,
'23723', --CENIDNO_ Iidentifikator skladove
polozky (vobecenk.CENIDNO),
'2', --POCET_ pozadovany/objednavany
pocet MJ,
'tmalkus@bbm.cz;tmalkus@seznam.cz', --MAIL_ kontakt na objednavajiciho - mailova adresa
'724/162 687 nebo 382 209111', --TEL_ kontakt na objednavajiciho - telefonicke
spojeni,
null, --IDENT_PLATBA_ identifikace platby platebni kartou,
'4321', --EXT_ID_ Identifikace objednavky v e-Obchod
'S', --ZPPL_ Zpusob uhrady zbozi B..Bankovni kartou,
D..Dobírkou, S..Interní kartou PIK, H..Hotově, I..Inkasem, P..Platebnim prikazem
'BBM spol. s .r.o.
BBM - Písek
Tomáš Malkus
Kocínova 5/138
Písek
397 01
ČR
ICO 12345678 DIC CZ12345678', --DOR_ADR_ Dorucovací sdresa externiho neregistrovaneho
zákaznika
'100', --CENA_ Cena bez DPH - zaklad dane
'OBJ999') --COBJED_ Cislo objednavky
THEN
DBMS_OUTPUT.PUT_LINE('Uspesne vlozeni radku objednavky');
ELSE
DBMS_OUTPUT.PUT_LINE('Pozor chyba: !!! '||xchyba);
END IF;
IF Pa102_Eobc.E_VLOZ_SKL_POL
(xchyba, --CHYBA OUT vystupni argument
s popisem chyby, ktera při zpracovani nastala
'143998', --ODBERID_ identifikator adresy
firmy z iFIS*Organizace (E-OBCHOD CVUT Neregistrovaní zákazníci ČVUT PTL=143998),
null, --PRIJEMID_ identifikator adresy
konecneho prijemce z iFIS*Organizace,
'C', --ZPUSOB_DODAVKY identifikator požadovaného
zpusobu dodani zbozi viz. hodnoty v domenovem ciselniku fis.tlist1 polozka 'DOPRAVA',
'Co nejdříve!', --TERMIN_ pozadovany temin dodani zbozi,
'MCE', --KATEGORIE_ oznaceni kategorie prodejni
ceny (vobecenk.KATEGORIE),
'SML1235/01', --SMLOUVA_ oznaceni smlouvy,
'Žádám o zařazení mezi registrované zákazníky!',--POZNAMKA_ poznamka k objednavce,
'Daňový doklad zašlete na adresu:
Tomas Malkus
Vrchlickeho 1250
38901 Vodňany', --KOMENTAR_ komentar k objednavce,
'7826', --CENIDNO_ Iidentifikator skladove
polozky (vobecenk.CENIDNO),
'3', --POCET_ pozadovany/objednavany
pocet MJ,
'tmalkus@bbm.cz;tmalkus@seznam.cz', --MAIL_ kontakt na objednavajiciho - mailova adresa
'724/162 687 nebo 382 209111', --TEL_ kontakt na objednavajiciho - telefonicke spojeni,
null, --IDENT_PLATBA_ identifikace platby platebni kartou,
'4321', --EXT_ID_ Identifikace objednavky v e-Obchod
'S', --ZPPL_ Zpusob uhrady zbozi B..Bankovni kartou,
D..Dobírkou, S..Interní kartou PIK, H..Hotově, I..Inkasem, P..Platebnim prikazem
'BBM spol. s .r.o.
BBM - Písek
Tomáš Malkus
Kocínova 5/138
Písek
397 01
ČR
ICO 12345678 DIC CZ12345678', --DOR_ADR_ Dorucovací sdresa externiho neregistrovaneho
zákaznika
'50', --CENA_ Cena bez DPH - zaklad dane
'OBJ999') --COBJED_ Cislo objednavky
THEN
DBMS_OUTPUT.PUT_LINE('Uspesne vlozeni radku objednavky');
ELSE
DBMS_OUTPUT.PUT_LINE('Pozor chyba: !!! '||xchyba);
END IF;
IF Pa102_Eobc.E_VLOZ_SKL_POL
(xchyba, --CHYBA OUT vystupni argument
s popisem chyby, ktera pri zpracovani nastala
'143998', --ODBERID_ identifikator adresy
firmy z iFIS*Organizace (E-OBCHOD CVUT Neregistrovaní zákazníci CVUT PTL=143998),
null, --PRIJEMID_ identifikator adresy
konecneho prijemce z iFIS*Organizace,
'C', --ZPUSOB_DODAVKY identifikator požadovaného
zpusobu dodani zbozi viz. hodnoty v domenovem ciselniku fis.tlist1 polozka 'DOPRAVA',
'Co nejdríve!', --TERMIN_ pozadovany temin dodani zbozi,
'MCE', --KATEGORIE_ oznaceni kategorie prodejni
ceny (vobecenk.KATEGORIE),
'SML1235/01', --SMLOUVA_ oznaceni smlouvy,
'Žádám o zarazení mezi registrované zákazníky!',--POZNAMKA_ poznamka k objednavce,
'Danový doklad zašlete na adresu:
Tomas Malkus
Vrchlickeho 1250
38901 Vodnany', --KOMENTAR_ komentar k objednavce,
'9236', --CENIDNO_ Iidentifikator skladove
polozky (vobecenk.CENIDNO),
'1', --POCET_ pozadovany/objednavany
pocet MJ,
'tmalkus@bbm.cz;tmalkus@seznam.cz', --MAIL_ kontakt na objednavajiciho - mailova adresa
'724/162 687 nebo 382 209111', --TEL_ kontakt na objednavajiciho - telefonicke spojeni,
null, --IDENT_PLATBA_ identifikace platby platebni kartou,
'4321', --EXT_ID_ Identifikace objednavky v e-Obchod
'S', --ZPPL_ Zpusob uhrady zbozi B..Bankovni kartou,
D..Dobírkou, S..Interní kartou PIK, H..Hotove, I..Inkasem, P..Platebnim prikazem
'BBM spol. s .r.o.
BBM - Písek
Tomáš Malkus
Kocínova 5/138
Písek
397 01
CR
ICO 12345678 DIC CZ12345678', --DOR_ADR_ Dorucovací sdresa externiho neregistrovaneho
zákaznika
'50', --CENA_ Cena bez DPH - zaklad dane
'OBJ999') --COBJED_ Cislo objednavky
THEN
DBMS_OUTPUT.PUT_LINE('Uspesne vlozeni radku objednavky');
ELSE
DBMS_OUTPUT.PUT_LINE('Pozor chyba: !!! '||xchyba);
END IF;
/*Provede validaci všech dat předaných v rámci Pa102_Eobc.E_VLOZ_SKL_POL a následně zápis objednávky do iFIS/Rezervační
objednávky/
DBMS_OUTPUT.PUT_LINE('*** TEST Pa102_Eobc.E_UZAVRI_ZAK ***');
IF
Pa102_Eobc.E_UZAVRI_ZAK(xchyba, xzakidno)
THEN
DBMS_OUTPUT.PUT_LINE('Test E_UZAVRI_ZAK - Správné uzavreni - byla založena zakázková objednávka č.'||xzakidno);
ELSE
DBMS_OUTPUT.PUT_LINE('Chyba: '||xchyba);
END IF;
/*Pokud zákazník potvrdil ověřovací doložku, pak je možné převést objednávku tzv. Potvrdit
tzn. zmenit jeji stav ze stavu Přijato do stavu Požadavek a současne nastavi stav e-Potvrzeno*/
DBMS_OUTPUT.PUT_LINE('*** TEST Pa102_Eobc.E_POTVRD_ZAK ***');
IF
Pa102_Eobc.E_POTVRD_ZAK(xchyba,
xzakidno,
'P' --operace 'P'.. zmena stavu objednavky na Požadavek/Potvrzeno
)
THEN
DBMS_OUTPUT.PUT_LINE('Objednavka zbozi byla uspesne potvrzena');
ELSE
DBMS_OUTPUT.PUT_LINE('Chyba: '||xchyba);
END IF;
END;
Výsledný LOG
*** TEST Pa102_Eobc.E_VLOZ_SKL_POL ***
Uspesne vlozeni radku objednavky
Uspesne vlozeni radku objednavky
Uspesne vlozeni radku objednavky
*** TEST Pa102_Eobc.E_UZAVRI_ZAK ***
Test E_UZAVRI_ZAK - Správné uzavreni - byla založena zakázková objednávka č.5881
*** TEST Pa102_Eobc.E_POTVRD_ZAK ***
Objednávka zboží byla úspěšně potvrzena
Kontrola výsledku v iFIS/Zásoby/Rezervační objednávky
select * from vobezakh where zakidno=5881
select * from vobezakr where zakidno=5881
Náhled na výslednou objednávku v iFIS/Zásoby/Rezervační objednávky
Obr. 1 Náhled na výslednou objednávku v iFIS/Zásoby/Rezervační objednávky
/*=========UHRADA platabni kartou=========================================*/
DECLARE
xchyba VARCHAR2(255);
cislo_zakazky NUMBER(10):= 5888;
BEGIN
/*Pokud objednávka byla zákazníkem zaplacena platební kartou,pak je nezbytně nutné do objednávky doplnit informaci o úspěšně dokončené
platební transakci. Pokud jsou některé vstupní parametry neuvedeny (NULL), zustáva v iFIS/Rezervační objednávky původní hodnota.*/
DBMS_OUTPUT.PUT_LINE('*** TEST Pa102_Eobc.E_ZMEN_ZAK ***');
IF
Pa102_Eobc.E_ZMEN_ZAK(xchyba,
cislo_zakazky, -- číslo rezervační objednávky iFIS
null, -- cobjed_ číslo objednávky e-Obchod, nepovinné
null, -- zppl_ způsob platby, nepovinné
'PIK123456', -- ident_platba_ identifikátor úspěšně dokončené platební transakce bankovní kartou, nepovinné
'Úspěšná platba kartou', --poznámka_, nepovinné
null --komentar_, nepovinné
)
THEN
DBMS_OUTPUT.PUT_LINE('Byla provedena aktualizace hlavičky rezervační objednávky zboží!!');
ELSE
DBMS_OUTPUT.PUT_LINE('Chyba: '||xchyba);
END IF;
END;
-----------zarezervovani uhrazeneho zbozi------------
/*Pokud objednávka byla zákazníkem úspěšně zaplacena platební kartou, pak se může e-Obchod pokusit o zarezervování zboží z objednávky.
Zarezervovány budou vždy jen ty položky objednávky, které jsou v dannou chvíli na skladech k dispozici. Rezervaci zboží doporučujeme
provádět jen pokud vedení prodejny o tuto možnost projeví zájem.*/
DECLARE
xchyba VARCHAR2(255);
cislo_zakazky NUMBER(10):= 5888;
BEGIN
/*Zboží z objednávky, která je uhrazená platební kartou, je pak možné zarezervovat.
K zarezervování však dojde jen u těch položek, které jsou v dannou chvíli k dispozici*/
DBMS_OUTPUT.PUT_LINE('*** TEST Pa102_Eobc.E_POTVRD_ZAK ***');
IF
Pa102_Eobc.E_POTVRD_ZAK(xchyba,
cislo_zakazky,
'R' --operace 'R'.. rezervace
)
THEN
DBMS_OUTPUT.PUT_LINE('Byla provedena rezervace objednaného zboží. Zarezervovány byly jen ty položky, které jsou k dispozici!!');
ELSE
DBMS_OUTPUT.PUT_LINE('Chyba: '||xchyba);
END IF;
END;
----------- storno objednavky po neuspesnych pokusech o platbu platebni kartou--------------
/*Pokud předchozí pokusy o platbu platební kartou nebyly z jakéhokoliv důvodu úspěšné, pak je možné objednávku stornovat*/
DECLARE
xchyba VARCHAR2(255);
cislo_zakazky NUMBER(10):= 5888;
BEGIN
DBMS_OUTPUT.PUT_LINE('*** TEST Pa102_Eobc.E_STORNO_ZAK ***');
IF
Pa102_Eobc.E_STORNO_ZAK(xchyba, cislo_zakazky)
THEN
DBMS_OUTPUT.PUT_LINE('Objednavka zbozi byla stornována');
ELSE
DBMS_OUTPUT.PUT_LINE('Chyba: '||xchyba);
END IF;
END;