*    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    
*
*     PROCEDURE spracuj_xmlmoney_S3
*
*   bacha, tenhle format ma v jednom souboru fakturu dvakrat - jednou se standardnimi nazvy poli (InvoiceLines, InvoiceLine), ale v nich chybi EAN/katalogove cislo
*   proto polozky jsou brany z <money:SeznamPolozek>, <money:Polozka>
*
*    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    

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

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

        faktura1=vratsekciu("Invoice", m.xml,m.i,"X")
        IF hladajsekciu("AccountingCustomerParty", m.faktura1)>0
            odberatel=vratsekciu("AccountingCustomerParty", m.faktura1,1,"X")
            IF hladajsekciu("AccountingSupplierParty", m.faktura1)>0
                    dodavatel=vratsekciu("Party",vratsekciu("AccountingSupplierParty", m.faktura1,1,"X"),1,"X")
                    SELECT edihlav
                    REPLACE c_faktury WITH vratsekciu("ID",m.faktura1,1,"C")
                    REPLACE dat_vyst  WITH vratsekciu("IssueDate", m.faktura1,1,"D")
                    REPLACE ico       WITH STRTRAN(vratsekciu("ID",vratsekciu("PartyIdentification",m.dodavatel,1,"X"),1,"C")," ","")
                    REPLACE icdph     WITH STRTRAN(vratsekciu("CompanyID",vratsekciu("PartyTaxScheme",m.dodavatel,1,"X"),1,"C")," ","")
                    REPLACE partner   WITH vratsekciu("Name",vratsekciu("PartyName",m.dodavatel,1,"X"),1,"C",m.kodovastranka)
                    REPLACE ulica     WITH vratsekciu("StreetName",vratsekciu("PostalAddress",m.dodavatel,1),1,"C",m.kodovastranka)+" "+ALLTRIM(vratsekciu("BuildingNumber",vratsekciu("PostalAddress",m.dodavatel,1),1,"C",m.kodovastranka))
                    REPLACE mesto     WITH vratsekciu("CityName",vratsekciu("PostalAddress",m.dodavatel,1),1,"C",m.kodovastranka)
                    REPLACE psc       WITH vratsekciu("PostalZone",vratsekciu("PostalAddress",m.dodavatel,1),1,"C")
                    RELEASE m.dodavatel
                    IF m.hotel_platca_dph
                        REPLACE suma WITH vratsekciu("TaxableAmount",vratsekciu("TaxSubTotal",vratsekciu("TaxTotal",m.faktura1,1,"X"),1,"X"),1,"N")
                    ELSE
                        REPLACE suma WITH vratsekciu("TaxInclusiveAmount",vratsekciu("TaxSubTotal",vratsekciu("TaxTotal",m.faktura1,1,"X"),1,"X"),1,"N")
                    ENDIF 
                    REPLACE edi_stred WITH STRTRAN(vratsekciu("Name",vratsekciu("PartyName",vratsekciu("Delivery",m.faktura1,1,"X"),1,"X"),1,"C", m.kodovastranka)," ","")
                    IF !EMPTY(edi_stred)
                        REPLACE edi_kod WITH ""
                    ENDIF 
                    IF hladajsekciu("money:SeznamPolozek", m.faktura1)>0
                        polozky=vratsekciu("money:SeznamPolozek", m.faktura1,1)
                        pocetpoloziek=hladajsekciu("money:Polozka", m.polozky)
                        sumadokladu=0
                        FOR m.ii=1 TO m.pocetpoloziek
                            polozka = vratsekciu("money:Polozka", m.polozky, m.ii)
                            kodzak  = vratsekciu("money:Katalog", m.polozka, 1, "C")
                            mnozstvo= vratsekciu("money:PocetMJ", m.polozka, 1, "N")
                            nazov   = vratsekciu("money:Popis"  , m.polozka, 1, "C", m.kodovastranka) + " " + vratsekciu("money:MJ", m.polozka, 1, "C", m.kodovastranka)
                            nazov   = petra(m.nazov)
                            IF ATC("zaokrouhlen", m.nazov) > 0
                                mnozstvo = 0
                            ENDIF 
                            IF m.mnozstvo # 0
                                dan       = IIF(hotel_platca_dph,vratsekciu("money:SazbaDPH" , m.polozka, 1, "N"), 0)
                                cena      = IIF(hotel_platca_dph,vratsekciu("money:Zaklad_MJ", m.polozka, 1, "N"), vratsekciu("money:Cena", m.polozka, 1, "N"))
                                cena_celk = vratsekciu("money:Zaklad", m.polozka,1,"N")
                                IF m.hotel_platca_dph
                                    cena_celk = m.cena_celk + vratsekciu("money:DPH",m.polozka,1,"N")
                                ENDIF 

                                INSERT INTO edipol (id_edi, c_data , riadok  , ean, kod_zak ,   mnozstvo,   nazov,   cena,   cena_celk,   dan) ;
                                     VALUES (m.hladajidedi, m.cdata, m.ii+300,  "", m.kodzak, m.mnozstvo, m.nazov, m.cena, m.cena_celk, m.dan)
                            ENDIF 
                        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 

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

