PARAMETERS id_man, src_path, c_stredisk, skl_param,datum1,datum2
PRIVATE hladajcdata, hladajcstredisk, hladajcdoklod, hladajcdokldo
ostatni = "___ostatni"
old_errh = ON("ERROR")
hladajcstredisk=m.c_stredisk
hladajcdoklod=m.datum1
hladajcdokldo=m.datum2
hladajcdata=m.src_path

had_priprava = CREATEOBJECT("had", "export obratu")
had_priprava.SHOW()
had_priprava.set_max(9)

IF USED("uctexpo")
	REQUERY("uctexpo")
ELSE 
		USE (m.sqlprefix+"rdokladyuctostrediskooddo") IN 0 ALIAS uctexpo
ENDIF 
IF !USED("skupiny")
	USE (m.sqlprefix+"rskupiny") IN 0 ALIAS skupiny
ENDIF 

IF !USED("stredy")
    USE (m.gcpri_path+"strediska") AGAIN ALIAS stredy IN 0 ORDER c_stredisk NOUPDATE 
ENDIF  
IF !USED("karty")
    USE (m.sqlprefix+"rkartyucto") ALIAS karty IN 0
    SELECT karty
    INDEX on c_karty TAG c_karty
ELSE
    SELECT karty
ENDIF 

SELECT uctexpo
SET RELATION TO c_stredisk INTO stredy

had_priprava.INCREMENT("0/5")
lsql = 'SELECT obraty.c_dokl, obraty.c_karty, obraty.mnozstvi, obraty.cena, obraty.cena_part, obraty.spdan, obraty.spstupne '
lsql=lsql+'FROM food600.obraty WHERE c_data=?m.cdata AND c_dokl IN (SELECT c_dokl FROM food600.doklady where c_data=?m.cdata and c_stredisk= ?m.hladajcstredisk and c_dokl>= ?m.hladajcdoklod and c_dokl<= ?m.hladajcdokldo)'
DO pozavirej WITH "obr1"
sql_select(lsql,'obr1',"c_dokl I, c_karty I, mnozstvi Y, cena Y, cena_part Y, spdan Y, spstupne Y")

had_priprava.INCREMENT("Konec")
SELECT c_dokl, c_karty, mnozstvi, cena, cena_part, spdan, spstupne, $0 as prachy, $0 as prachy_par, $0 as spotdan, $0 as objem, 0000000000 as c_druh, 0000000000 as c_druhs, 0000000000 as c_druhk FROM obr1 INTO CURSOR obr11 READWRITE 
REPLACE ALL prachy WITH mnozstvi*cena, prachy_par WITH mnozstvi*cena_part, spotdan WITH mnozstvi*spdan*spstupne*objem/100
USE IN obr1

had_priprava.INCREMENT("1/5")
UPDATE obr11 SET objem=karty.objem, c_druh=karty.c_druh, c_druhs=karty.c_druhs, c_druhk=karty.c_druhk from karty WHERE obr11.c_karty=karty.c_karty 
SELECT uctexpo.c_mena, uctexpo.typ_pohybu, obr11.c_dokl, uctexpo.c_stredisk, uctexpo.partner, SPACE(2) as id_man, SPACE(10) as pgm_param, m.cdata as c_data, uctexpo.operace, obr11.prachy, obr11.prachy_par, obr11.spotdan as spdan, obr11.c_druh, obr11.c_druhk, obr11.c_druhs, uctexpo.platba, ;
       uctexpo.pz1, uctexpo.pz2, SPACE(20) as druh, SPACE(3) as spart, 0.000 as dph, uctexpo.cen_hlad, .f. as exportuj, uctexpo.doklad, uctexpo.datum_dokl, .f. as samozdan, 1.000 dan_samo ;
       FROM obr11 INNER JOIN uctexpo ON obr11.c_dokl=uctexpo.c_dokl INTO CURSOR obrpol READWRITE 
DELETE FOR !INLIST(LEFT(operace,1),"V","P")

had_priprava.INCREMENT("2/5")
UPDATE obrpol SET id_man=stredy.id, pgm_param=stredy.pgm_param from stredy WHERE obrpol.c_stredisk=stredy.c_stredisk
UPDATE obrpol SET cen_hlad="1" WHERE operace="VK" AND EMPTY(cen_hlad)
UPDATE obrpol SET cen_hlad="" WHERE operace<>"VK"

had_priprava.INCREMENT("3/5")
UPDATE obrpol SET druh=skupiny.druh, spart=skupiny.spart, dph=skupiny.dan01, samozdan=skupiny.samozdan, dan_samo=skupiny.dan_samo from skupiny WHERE obrpol.c_druhs=skupiny.c_druh AND "SKL" $ pgm_param
UPDATE obrpol SET druh=skupiny.druh, spart=skupiny.spart, dph=skupiny.dan01, samozdan=skupiny.samozdan, dan_samo=skupiny.dan_samo from skupiny WHERE obrpol.c_druh=skupiny.c_druh AND !( "SKL" $ pgm_param)
UPDATE obrpol SET druh=skupiny.druh, spart=skupiny.spart, dph=skupiny.dan01, samozdan=skupiny.samozdan, dan_samo=skupiny.dan_samo from skupiny WHERE obrpol.c_druh=skupiny.c_druh AND EMPTY(obrpol.druh)
UPDATE obrpol SET druh=skupiny.druh, spart=skupiny.spart, dph=skupiny.dan01, samozdan=skupiny.samozdan, dan_samo=skupiny.dan_samo from skupiny WHERE obrpol.c_druhs=skupiny.c_druh AND EMPTY(obrpol.druh)
UPDATE obrpol SET druh=skupiny.druh, spart=skupiny.spart, dph=skupiny.dan01, samozdan=skupiny.samozdan, dan_samo=skupiny.dan_samo from skupiny WHERE obrpol.c_druhk=skupiny.c_druh AND EMPTY(obrpol.druh)
*IF LOWER(m.gcuct_pole)="spart"
    REPLACE ALL druh WITH spart
*ENDIF 
REPLACE FOR ISNULL(druh) druh WITH m.ostatni
REPLACE FOR EMPTY (druh) druh WITH m.ostatni
REPLACE FOR EMPTY(dan_samo) dan_samo WITH 1

had_priprava.INCREMENT("4/5")
IF USED("obr")
    INSERT INTO obr (c_mena, c_dokl, c_stredisk, partner, id_man, c_data, operace, prachy, prachy_par, spdan, c_druh, c_druhk, c_druhs,;
        pz1, pz2, druh, spart, dph, cen_hlad, exportuj, doklad, datum_dokl, faktura, samozdan, dan_samo, typ_pohybu, platba);
        SELECT c_mena, c_dokl, c_stredisk, partner, id_man, c_data, operace, prachy, prachy_par, spdan, c_druh, c_druhk, c_druhs,;
            pz1, pz2, druh, spart, dph, cen_hlad, exportuj, doklad, datum_dokl, pz1 as faktura, samozdan, dan_samo, typ_pohybu, platba FROM obrpol 
ELSE
    SELECT c_mena, c_dokl, c_stredisk, partner, id_man, c_data, operace, prachy, prachy_par, spdan, c_druh, c_druhk, c_druhs,;
        pz1, pz2, druh, spart, dph, cen_hlad, exportuj, doklad, datum_dokl,;
        SPACE(30) as co, SPACE(50) as pz, SPACE(30) as poznamka,$0 as castka, pz1 as faktura, .f. as zaloha, samozdan, dan_samo, typ_pohybu, platba FROM obrpol INTO CURSOR obr READWRITE 
ENDIF 

had_priprava.INCREMENT("5/5")
IF USED("obr")
    SELECT obr
    SCAN ALL 
        SCATTER MEMVAR 
        hladajdruh     = obr.druh
        hladajpartner  = obr.partner
        hladajidman    = obr.id_man
        hladajcenhlad  = obr.cen_hlad
        hladajoperace  = obr.operace
        hladajtyppohybu= obr.typ_pohybu
        hladajplatba   = obr.platba
        IF testuexobr(m.hladajoperace, m.hladajdruh, m.hladajpartner, m.hladajidman, m.hladajcenhlad, m.hladajtyppohybu, m.hladajplatba)
            SELECT uexobr1
            SCAN 
                scatt field md, dal, hs_md, hs_dal, md2, dal2, co, poznamka memvar
                on error pz = pz
                pz = eval(pz)
                on error castka = 0    && 9999.99
                castka = &co
                ON ERROR &old_errh
                pz3 = "OBR-" + m.operace + m.hladajpartner
                datum = STR(c_dokl)
                try
                    doklad = STR(doklad)
                catch
                       * nic se nemusi delat, pokud je vice radku, uy byla promenna na string prevedena
                endtry
                if m.castka # 0
                    INSERT INTO (m.gcucto_path + "u_ex") FROM MEMVAR 
                ENDIF 
            ENDSCAN 
        ENDIF 
        SELECT obr
    ENDSCAN 
ENDIF 
DO pozavirej WITH "obr, obr1, obr11"
RELEASE had_priprava
