*    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    
*******PROCEDURE spracujoberon
PARAMETERS xml, m.edipor, m.orimeno, m.edimeno, m.kodedistred
PRIVATE m.hladajidedi
LOCAL pocetfaktur, pocetdodakov, faktura1, odberatel, dodavatel, polozky, polozka, pocetpoloziek, sumadokladu
#DEFINE CRLF CHR(13)+CHR(10)

pocetdodakov=0
pocetfaktur=hladajsekciu("InvoicesIssued",m.xml)
IF m.pocetfaktur=0
    m.pocetdodakov=hladajsekciu("ReleaseNotes",m.xml)
ENDIF 
IF m.pocetfaktur>0 OR pocetdodakov>0
    FOR m.i=1 TO m.pocetfaktur+m.pocetdodakov
        hladajidedi=i_max("id_edi") 
        otevri_edi_hlavpol()
        insert_edihlav()
        IF m.pocetfaktur>0
            faktura1=vratsekciu("InvoicesIssued", m.xml,m.i,"X")
        ELSE 
            faktura1=vratsekciu("ReleaseNotes", m.xml,m.i,"X")
        ENDIF 
        IF hladajsekciu("BusinessPartner", m.faktura1)>0
            odberatel=vratsekciu("BusinessPartner", m.faktura1,1,"X")
*            IF STRTRAN(vratsekciu("IdentificationNumber",m.odberatel,1,"C")," ","")=m.hotel_ico
            IF .t.
                IF hladajsekciu("Company", m.faktura1)>0
                    dodavatel=vratsekciu("Company", m.faktura1,1)
                    SELECT edihlav
                    REPLACE c_faktury WITH vratsekciu("Document_Number",m.faktura1,1,"C")
                    REPLACE dat_vyst WITH vratsekciu("Date_Document", m.faktura1,1,"D")
                    REPLACE ico WITH STRTRAN(vratsekciu("IdentificationNumber",m.dodavatel,1,"C")," ","")
                    REPLACE icdph WITH vratsekciu("IdentificationNumber_VAT",m.dodavatel,1,"C")
                    REPLACE dic WITH vratsekciu("IdentificationNumber_TAX",m.dodavatel,1,"C")
                    REPLACE partner WITH vratsekciu("Name",m.dodavatel,1,"C",m.kodovastranka)
                    REPLACE ulica WITH vratsekciu("Street",vratsekciu("Address_Residence",m.dodavatel,1),1,"C",m.kodovastranka)
                    REPLACE mesto WITH vratsekciu("City",vratsekciu("Address_Residence",m.dodavatel,1),1,"C",m.kodovastranka)
                    REPLACE psc WITH vratsekciu("Postal_Code",vratsekciu("Address_Residence",m.dodavatel,1),1,"C")
                    RELEASE m.dodavatel
                    IF m.hotel_platca_dph
                        REPLACE suma WITH vratsekciu("Price_VAT_Base_Upper",vratsekciu("Document_PriceValues",m.faktura1,1),1,"N")
                        REPLACE suma WITH suma+vratsekciu("Price_VAT_Base_Lower",vratsekciu("Document_PriceValues",m.faktura1,1),1,"N")
                        REPLACE suma WITH suma+vratsekciu("Price_VAT_Base_Zero",vratsekciu("Document_PriceValues",m.faktura1,1),1,"N")
                    ELSE
                        REPLACE suma WITH vratsekciu("Price_Total",vratsekciu("Document_PriceValues",m.faktura1,1),1,"N")
                    ENDIF 
                    IF hladajsekciu("Items", m.faktura1)>0
                        polozky=vratsekciu("Items", m.faktura1,1)
                        pocetpoloziek=hladajsekciu("Item", m.polozky)
                        sumadokladu=0
                        FOR m.ii=1 TO m.pocetpoloziek
                            polozka=vratsekciu("Item", 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,;
                                vratsekciu("BarCode",m.polozka,1,"C"),;
                                vratsekciu("IDNum_Stock_Card",m.polozka,1,"C"),;
                                vratsekciu("Amount_Unit",m.polozka,1,"N"),;
                                IIF(hotel_platca_dph,vratsekciu("Price_WithoutVAT_Unit",m.polozka,1,"N"),vratsekciu("Price_WithVAT_Unit",m.polozka,1,"N")),;
                                IIF(hotel_platca_dph,vratsekciu("Price_WithoutVAT",m.polozka,1,"N"),vratsekciu("Price_WithVAT",m.polozka,1,"N")),;
                                IIF(hotel_platca_dph,vratsekciu("VAT_Rate",m.polozka,1,"N"),0),;
                                vratsekciu("Name",m.polozka,1,"C")+" "+vratsekciu("Unit",m.polozka,1,"C",m.kodovastranka))
                            sumadokladu=m.sumadokladu+IIF(hotel_platca_dph,vratsekciu("Price_WithoutVAT",m.polozka,1,"N"),vratsekciu("Price_WithVAT",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 
                ELSE
                    chybatxt=m.chybatxt+CRLF+"Chybaju udaje o dodavatelovi v doklade "+ALLTRIM(edihlav.c_faktury)
                ENDIF 

            ELSE 
                chybatxt=m.chybatxt+CRLF+"Faktura nie je pre toto ICO. Cislo faktury: "+ALLTRIM(edihlav.c_faktury)
            ENDIF
            RELEASE m.odberatel
        ELSE
            chybatxt=m.chybatxt+CRLF+"Chybaju udaje o odberatelovi v doklade "+vratsekciu("Document_Number",m.faktura1,1)
        ENDIF 
    ENDFOR  
ELSE 
    chybatxt=m.chybatxt+CRLF+"Subor neobsahuje faktury"
ENDIF 

era_and_ok_or_err()
