*IF m.issql
 IF .t.
    vypocet_prodejnich_cen_sql()
    RETURN 
ENDIF 

LOCAL dbciel, dbfrom, prik_from, prik_where
SELECT zoznam
o_karty_filter = SET ("filter")
SELECT rk
RECCOUNT() 
SELECT rc
RECCOUNT() 
chyby = ""
SELECT * FROM skp INTO CURSOR pc_skup READWRITE 
lohad = CREATEOBJECT("had", jaz("form_vypocet_vyrobnych_cien" ) )
lohad.SHOW()
lohad.set_max(RECCOUNT())
SELECT pc_skup
SCAN
    lohad.INCREMENT()
    FOR i_i = 1 TO FCOUNT()
        policko = "pc_skup." + FIELD(m.i_i)
        IF "VYPOCET" $ m.policko
            vypocet = ALLTRIM(UPPER(&policko))
            IF ! EMPTY(m.vypocet) AND !ISNULL(m.vypocet)
                SCATTER MEMVAR
                vypocet = STRTRAN(m.vypocet, "CENA_PRUM", "NAKUPKA")    && tohle proto, aby se nenahradil substring "CENA" prodejkama, na konci z toho udelam korektni nazev fieldu

                vypocet = STRTRAN(m.vypocet, "C0", "CENA0")
                vypocet = STRTRAN(m.vypocet, "C1", "CENA1")
                vypocet = STRTRAN(m.vypocet, "C2", "CENA2")
                vypocet = STRTRAN(m.vypocet, "C3", "CENA3")
                vypocet = STRTRAN(m.vypocet, "C4", "CENA4")
                vypocet = STRTRAN(m.vypocet, "C5", "CENA5")
                vypocet = STRTRAN(m.vypocet, "C6", "CENA6")
                vypocet = STRTRAN(m.vypocet, "C7", "CENA7")
                vypocet = STRTRAN(m.vypocet, "C8", "CENA8")
                vypocet = STRTRAN(m.vypocet, "C9", "CENA9")

                vypocet = STRTRAN(m.vypocet, "CA", "CENAA")
                vypocet = STRTRAN(m.vypocet, "CB", "CENAB")
                vypocet = STRTRAN(m.vypocet, "CC", "CENAC")
                vypocet = STRTRAN(m.vypocet, "CD", "CENAD")
                vypocet = STRTRAN(m.vypocet, "CE", "CENAE")
                vypocet = STRTRAN(m.vypocet, "CF", "CENAF")
                vypocet = STRTRAN(m.vypocet, "CG", "CENAG")
                vypocet = STRTRAN(m.vypocet, "CH", "CENAH")
                vypocet = STRTRAN(m.vypocet, "CI", "CENAI")
                vypocet = STRTRAN(m.vypocet, "CJ", "CENAJ")
                vypocet = STRTRAN(m.vypocet, "CK", "CENAK")
                vypocet = STRTRAN(m.vypocet, "CL", "CENAL")
                vypocet = STRTRAN(m.vypocet, "CM", "CENAM")
                vypocet = STRTRAN(m.vypocet, "CN", "CENAN")
                vypocet = STRTRAN(m.vypocet, "CO", "CENAO")
                vypocet = STRTRAN(m.vypocet, "CP", "CENAP")

* pridani aliasu K NAZVU PROMENNE: nejdriv se vsem da alias tabulky kceny, pak se tem s malymi cisly (01-40) prepise na alias tabulky karty
                vypocet = STRTRAN(m.vypocet, "CENA", "rc.CENA")

                vypocet = STRTRAN(m.vypocet, "rc.CENA0" , "rk.CENA0")
                vypocet = STRTRAN(m.vypocet, "rc.CENA1" , "rk.CENA1")
                vypocet = STRTRAN(m.vypocet, "rc.CENA2" , "rk.CENA2")
                vypocet = STRTRAN(m.vypocet, "rc.CENA3" , "rk.CENA3")
                vypocet = STRTRAN(m.vypocet, "rc.CENA40", "rk.CENA40")

                vypocet = STRTRAN(m.vypocet, "NAKUPKA", "rk.CENA_PRUM")
                vypocet = STRTRAN(m.vypocet, "NC"     , "rk.CENA_PRUM")

                pokracuj=.t.
                cil   = ALLTRIM(  LEFT(m.vypocet, AT("=", m.vypocet)-1))
                dbciel=IIF("rk" $ m.cil, "rk", "rc")
                IF dbciel="rk" AND "rc" $ m.cil
                    chyby = m.chyby + CHR(13) + m.druh + ": " + " nepovoleny cil " + m.cil + " Vyp" + RIGHT(m.policko, 2)
                ELSE 
                    zdroj = ALLTRIM(SUBSTR(m.vypocet, AT("=", m.vypocet)+1))
                    dbfrom=IIF("rk" $ m.zdroj, "rk", "rc")
                    IF dbfrom="rk" AND "rc"$m.zdroj
                        chyby = m.chyby + CHR(13) + m.druh + ": " + " nepovoleny zdroj " + m.zdroj + " Vyp" + RIGHT(m.policko, 2)
                    ELSE
                        prikaz = "UPDATE " + m.dbciel + " SET "
                        DO WHILE "CENA" $ cil
                            pozice_mezery = AT(" ", m.cil + " ")
                            jedencil = ALLTRIM( LEFT(m.cil, pozice_mezery-1))
                            cil      = ALLTRIM(SUBST(m.cil, pozice_mezery+1))
                            IF BETWEEN(SUBSTR(m.jedencil,4), "CENA01", "CENAP9")
                                prikaz = m.prikaz + m.jedencil + "=" + m.zdroj + ", "
                                pokracuj = .t.
                            ENDIF 
                        ENDDO 
                        prikaz = LEFT(m.prikaz, LEN(m.prikaz)-2)
                        lohad.set_txt2 (ALLTRIM(m.druh) + ": " + m.prikaz)
                        IF m.pokracuj
                            IF m.dbciel="rc" OR m.dbciel<>m.dbfrom
                                IF m.dbciel="rc"
                                    m.prikaz=m.prikaz+" FROM rk WHERE rc.c_karty=rk.c_karty and rk.c_druhk = "+ALLTRIM(STR(m.c_druh,10,0))+".or. rk.c_druhs = "+ALLTRIM(STR(m.c_druh,10,0))
                                ELSE
                                    m.prikaz=m.prikaz+" FROM rc WHERE rk.c_karty=rc.c_karty and rk.c_druhk = "+ALLTRIM(STR(m.c_druh,10,0))+".or. rk.c_druhs = "+ALLTRIM(STR(m.c_druh,10,0))
                                ENDIF 
                            ELSE 
                                m.prikaz=m.prikaz+" WHERE rk.c_druhk = "+ALLTRIM(STR(m.c_druh,10,0))+".or. rk.c_druhs = "+ALLTRIM(STR(m.c_druh,10,0))
                            ENDIF                                 
                            err_h_old = ON ("ERROR")
                            chyba = ""
                            ON ERROR chyba = ALLTRIM(STR(ERROR())) + ":" + MESSAGE()
                            &prikaz
                            ON ERROR &err_h_old
                            DO zurnal_log WITH "OPERA", "Prodejni ceny", m.druh + ": " + m.prikaz + LEFT(m.chyba, 44) + " Vyp" + RIGHT(m.policko, 2)
                            IF ! EMPTY(m.chyba)
                                chyby = m.chyby + CHR(13) + m.druh + ": " + LEFT(m.chyba, 44) + " V" + RIGHT(m.policko, 2)
                            ENDIF
                        ELSE 
                            chyby = m.chyby + CHR(13) + m.druh + ": " + " nepovoleny cil " + m.cil + " Vyp" + RIGHT(m.policko, 2)
                        ENDIF
                    ENDIF
                ENDIF 
            ENDIF
            SELECT pc_skup
        ENDIF
    ENDFOR
ENDSCAN
RELEASE lohad
IF ! EMPTY(m.chyby)
    MESSAGEBOX(m.chyby, 1+48, jaz("pri prepoctech nastaly chyby"))
ENDIF
DO pozavirej WITH "pc_skup"
SELECT rk
SET FILTER TO 

tux(.t.,.t.,"rk")
REQUERY("rk")
tux(.t.,.t.,"rc")
REQUERY("rc")
