Popis datového rozhraní k iFIS*Zásoby - Rezervační objednávky

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


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. Tyto objednávky se obvykle zapisují jako "rezervační", tzn. že zboží uvedené v objednávce je zablokováno pro jiný prodej v kamenné prodejně nebo v e-Obchodech.

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ý interní 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 dle kategorie zákazníka (katobidno). Seznam prodávaných služeb typu poštovné, balné atd. a jejich aktuálních prodejních cen lze ze seznamu získat podmínkou POLSKL=’N’. Disponibilní počet kusů na skladě je určen položkou SKLADEM_SKL po odečtení SREZER (rezevace zboží jinými platnými objednávkami) a odečtení STOP_STAV (nastavené minimální počet MJ na skladové kartě). Položky POL01 až POL12 jsou implementačně závislé, u různých prodejních skladů mohou obsahovat hodoty různých významů i datových formátů. Tyto volitelné položky se obvykle využívají pro specifikaci ISBN, roku vydání, váhy, počtu stran, záruční lhůty apod. Základní náhled na prodávané zboží obvykle ve formátu JPG-souboru lze získat z položky OBR (BLOB). Další související soubory jako je např. návody, záruční podmínky, prohlášení, e-publikace apod. lze získat z CUL. 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
MAIL 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

Zápis objednávek zboží do iFIS/Prodejna se provádí obvykle přes REST API OBCHOD, která je provozována na aplikačním serveru iFIS (Oracle iAS), data se na jejím rozhraní předávají v podobě JSON souboru.

Technický popis služby i popis struktury je k dispozici pod odkazy:

...


Aktuální dokumentaci k REST službám iFIS poskytne dodavatel na vyžádání. Příklad předávaného datového souboru JSON s přijatou objednávkou na zboží je ke stažení ZDE.


Zápis objednávek lze provádět také prostřednictvím databázových konektorů v rámci package PA102_EOBC na rozhraní databáze iFIS Oracle.

  • Konektorem se rozumí databázová funkce, která umožňuje externí aplikaci aktivně manipulovat s daty v databázi 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í výstupní argumenty, pomocí kterých je externí aplikace informována o stavu provedené transakce. Může to být informace o správně provedené operaci, informace o jednoznačných identifikátorech právě založených záznamů v evidenci iFIS, informace o chybných vstupních argumentech, informace o porušených evidenčních pravidlech 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 . 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 / 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, čí 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;