*    *    *    *    *    *    *    *   PROCEDURE spracujhelios    *    *    *    *    *    *    *    

PARAMETERS xml, edipor, orimeno, edimeno, kodedistred
PRIVATE m.hladajidedi
LOCAL pocetfaktur, pocetdodakov, faktura1, odberatel, dodavatel, polozky, polozka, pocetpoloziek, sumadokladu

#DEFINE CRLF CHR(13)+CHR(10)

xml = STRCONV(m.xml, 6)

dodavatel=vratsekciu("address",vratsekciu("from",vratsekciu("delivery",vratsekciu("header",m.xml,1),1),1),1,"C", m.kodovastranka)
polemj=vratsekciu("TabMJ",vratsekciu("Reference",m.xml,1),1,"X")
poledani=vratsekciu("TabDPH",vratsekciu("Reference",m.xml,1),1,"X")
polebarkodov=vratsekciu("TabBarCodeZbo",vratsekciu("Reference",m.xml,1),1,"X")
pocetdodakov=hladajsekciu("PohyboveDoklady",m.xml)

misto_urceni = vratsekciu("MistoUrceni", m.xml, 1)
qwer = vratsekciu("Reference", m.xml)
qwer = SUBSTR(m.qwer, ATC(misto_urceni, m.qwer) - 22)
provozovna = vratsekciu("CisloOrg", m.qwer) + " " + vratsekciu("Nazev", m.qwer)

IF pocetdodakov>0
    FOR i=1 TO m.pocetdodakov
        hladajidedi=i_max("id_edi") 
        otevri_edi_hlavpol()
        insert_edihlav()

        faktura1=vratsekciu("PohyboveDoklady", m.xml,m.i,"X")
        cislodokladu=vratsekciu("cisloDokladu", m.faktura1,1,"C")
        IF hladajsekciu("TabPohybyZbozi", m.faktura1)>0
            SELECT edihlav
            datumdokladu=vratsekciu("DatPorizeni",vratsekciu("TabDokladyZbozi",m.faktura1,1),1,"C")
            REPLACE partner WITH m.dodavatel, c_faktury WITH m.cislodokladu, dat_vyst WITH CTOD(SUBSTR(m.datumdokladu,9,2)+"."+SUBSTR(m.datumdokladu,6,2)+"."+LEFT(m.datumdokladu,4))

            IF m.hotel_platca_dph
                pocetsadzieb=hladajsekciu("TabOZSumaceCen", m.faktura1)
                FOR m.ii=1 TO m.pocetsadzieb
                    REPLACE suma WITH suma+vratsekciu("CbezDPHOZ",vratsekciu("TabOZSumaceCen",m.faktura1,m.ii,"X"),1,"N")
                ENDFOR 
            ELSE
                REPLACE suma WITH vratsekciu("SumaKc",vratsekciu("Document_PriceValues",m.faktura1,1),1,"N")
            ENDIF 
            pocetpoloziek=hladajsekciu("TabPohybyZbozi", m.faktura1)
            sumadokladu=0
            FOR m.ii=1 TO m.pocetpoloziek
                polozka=vratsekciu("TabPohybyZbozi", m.faktura1, m.ii,"X")
                INSERT INTO edipol (id_edi, c_data, riadok, ean, kod_zak, mnozstvo, cena, cena_celk, dan, nazov) VALUES ;
                          (m.hladajidedi, m.cdata , m.ii+700,""  , ;
                    dajheliosbarkod(vratsekciu("BarCode",m.polozka,1,"C"), m.polebarkodov),;
                    vratsekciu("Mnozstvi",m.polozka,1,"N"),;
                    IIF(hotel_platca_dph,vratsekciu("JCbezDaniKC",m.polozka,1,"N"),vratsekciu("JCsDPHKc",m.polozka,1,"N")),;
                    IIF(hotel_platca_dph,vratsekciu("CCbezDaniKc",m.polozka,1,"N"),vratsekciu("CCsDPHKc",m.polozka,1,"N")),;
                    IIF(hotel_platca_dph,dajheliosdan(vratsekciu("SazbaDPH",m.polozka,1,"C"), m.poledani),0),;
                    vratsekciu("Nazev1",m.polozka,1,"C", m.kodovastranka)+" "+dajheliosmj(vratsekciu("MJ",m.polozka,1,"C",m.kodovastranka), m.polemj))
                    sumadokladu=m.sumadokladu+IIF(hotel_platca_dph,vratsekciu("CCbezDaniKc",m.polozka,1,"N"),vratsekciu("CCsDPHKc",m.polozka,1,"N"))
            ENDFOR
            RELEASE m.polozka 

            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()


*    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    
FUNCTION dajheliosbarkod
PARAMETERS pole, txt
PRIVATE m.pocet, m.i, m.polozka, m.ret
ret=""
pocet=hladajsekciu("Polozka", m.txt)
FOR m.i=1 TO m.pocet
    polozka=vratsekciu("Polozka", m.txt, m.i)
    IF vratsekciu("Klic", m.polozka, 1, "C")=m.pole
        ret=vratsekciu("BarCode", m.polozka, 1, "C")
        EXIT 
    ENDIF 
ENDFOR 
RETURN m.ret 


*    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    
FUNCTION dajheliosmj
PARAMETERS pole, txt
PRIVATE m.pocet, m.i, m.polozka, m.ret
ret=""
pocet=hladajsekciu("Polozka", m.txt)
FOR m.i=1 TO m.pocet
    polozka=vratsekciu("Polozka", m.txt, m.i)
    IF vratsekciu("Klic", m.polozka, 1, "C")=m.pole
        ret=vratsekciu("Kod", m.polozka, 1, "C")
        EXIT 
    ENDIF 
ENDFOR 
RETURN m.ret 


*    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    
FUNCTION dajheliosdan
PARAMETERS pole, txt
PRIVATE m.pocet, m.i, m.polozka, m.ret
ret=0
pocet=hladajsekciu("Polozka", m.txt)
FOR m.i=1 TO m.pocet
    m.polozka=vratsekciu("Polozka", m.txt, m.i)
    IF vratsekciu("Klic", m.polozka, 1, "C")=m.pole
        ret=vratsekciu("Sazba", m.polozka, 1, "N")
        EXIT 
    ENDIF 
ENDFOR 
RETURN m.ret 
