*    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    
*
*     PROCEDURE spracuj_xmlmoney  pro money S5
*
*    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    

PARAMETERS xml, m.edipor, m.orimeno, m.edimeno, m.kodedistred
PRIVATE m.hladajidedi
LOCAL pocetfaktur, pocetdodakov, faktura1, odberatel, dodavatel, polozky, polozka, pocetpoloziek, sumadokladu, faktury, datumdokladu
#DEFINE CRLF CHR(13)+CHR(10)
faktury=vratsekciu("FakturaVydanaList", m.xml,1,"X")
pocetfaktur=hladajsekciu("FakturaVydana",m.faktury)
IF m.pocetfaktur>0 
    FOR m.i=1 TO m.pocetfaktur
        hladajidedi=i_max("id_edi") 
        otevri_edi_hlavpol()
        insert_edihlav()
        faktura1=vratsekciu("FakturaVydana", m.xml,m.i,"X")

        c_faktury = vratsekciu("CisloDokladu",m.faktura1,1,"C")
        IF EMPTY(m.c_faktury)        
            pozice = ATC("<FakturaVydana", m.faktury, m.i)            &&&   <FakturaVydana ObjectName="FakturaVydana" ObjectType="Object" ID="c093a99d-f766-48a3-9495-55ecb058623f">
            kus_s_id_faktury = SUBSTR(m.faktury, m.pozice+11, 155)
            c_faktury = RIGHT(LEFT(m.kus_s_id_faktury, AT('">', kus_s_id_faktury) - 1), 15)
        ENDIF 
        SELECT edihlav
        GATHER FIELDS c_faktury MEMVAR
        
        datumdokladu = vratsekciu("DatumUcetnihoPripadu", m.faktura1,1,"C")
        IF EMPTY(m.datumdokladu)
            datumdokladu = vratsekciu("DatumPlneni", m.faktura1,1,"C")
        ENDIF 
        REPLACE dat_vyst WITH DATE( VAL(SUBSTR(m.datumdokladu,1,4)), VAL(SUBSTR(m.datumdokladu,6,2)), VAL(SUBSTR(m.datumdokladu,9,2)))    && 2019-05-21T00:00:00

        moje_firma = vratsekciu("MojeFirma", m.faktura1,1,"X")
        REPLACE partner WITH vratsekciu("Nazev", m.moje_firma,1,"C", m.kodovastranka)
        REPLACE ico     WITH vratsekciu("IC"   , m.moje_firma,1,"C")
        REPLACE icdph   WITH vratsekciu("DIC"  , m.moje_firma,1,"C")
        REPLACE ulica   WITH vratsekciu("Ulice", m.moje_firma,1,"C", m.kodovastranka)
        REPLACE mesto   WITH vratsekciu("Misto", m.moje_firma,1,"C", m.kodovastranka)
        REPLACE psc     WITH vratsekciu("PSC"  , m.moje_firma,1,"C")
        IF m.hotel_platca_dph
            REPLACE suma WITH vratsekciu("Zaklad",vratsekciu("Suma",m.faktura1,1),1,"N")
        ELSE
            REPLACE suma WITH vratsekciu("Celkem",vratsekciu("Suma",m.faktura1,1),1,"N")
        ENDIF 
        REPLACE edi_stred WITH vratsekciu("Nazev", vratsekciu("AdresaKoncovehoPrijemce", m.faktura1),1,"C", m.kodovastranka)
        
        IF hladajsekciu("Polozky", m.faktura1)>0
            polozky=vratsekciu("Polozky", m.faktura1,1)
            pocetpoloziek=hladajsekciu("PolozkaFakturyVydane", m.polozky)
            sumadokladu=0
            FOR m.ii=1 TO m.pocetpoloziek
                polozka=vratsekciu("PolozkaFakturyVydane", m.polozky, m.ii)
                INSERT INTO edipol (id_edi, c_data, riadok, ean, kod_zak, mnozstvo, cena, cena_celk, dan, nazov) VALUES ;
                    (m.hladajidedi, m.cdata,;
                    m.ii + 900,;
                    "",;
                    vratsekciu("Katalog",m.polozka,1,"C"),;
                    vratsekciu("Mnozstvi",m.polozka,1,"N"),;
                    0,;    
                    IIF(hotel_platca_dph,vratsekciu("Zaklad",vratsekciu("DPH",m.polozka,1,"X"),1,"N"),vratsekciu("Celkem",vratsekciu("DPH",m.polozka,1,"X"),1,"N")),;
                    IIF(hotel_platca_dph,vratsekciu("Sazba",vratsekciu("DPH",m.polozka,1,"X"),1,"N"),0),;
                    vratsekciu("Nazev",m.polozka,1,"C", m.kodovastranka)+" "+vratsekciu("Jednotka",m.polozka,1,"C",m.kodovastranka))
                sumadokladu=m.sumadokladu+IIF(hotel_platca_dph,vratsekciu("Zaklad",vratsekciu("DPH",m.polozka,1,"X"),1,"N"),vratsekciu("Celkem",vratsekciu("DPH",m.polozka,1,"X"),1,"N"))
            ENDFOR
            RELEASE m.polozka, m.polozky 
            SELECT edipol
            REPLACE cena WITH cena_celk/mnozstvo FOR mnozstvo<>0
            druhy_doklad_z_minusu()
            uloz_a_zavri_hlav_a_pol()
        ELSE
            chybatxt = m.chybatxt + CRLF + "Chybaju polozky v doklade " + ALLTRIM(edihlav.c_faktury)
        ENDIF 
    ENDFOR  
ELSE 
    chybatxt = m.chybatxt + CRLF + "Subor neobsahuje faktury"
ENDIF 

era_and_ok_or_err()
