*************************************************************************************
*  program doplni do sloupce karty.kod eany pro praci s carovymi kody (tisk, markovani na kase)
*
* 2021-12-06
* 2021-12-14 - oddeleno cislovani vazeneho sortimentu kratkym kodem - PLU pro vahu v lahudkach
*
*************************************************************************************

PRIVATE ean_prefix_zeme
LOCAL radek, volny_kod
ean_prefix_zeme = "95555"

USE ("i:\d_gros\data\karty")

RAND(-1)

SCAN FOR VAL(kod) = 0 .and. nazev1 # "xxx SMAZANO xxx " .and. c_druhk = 69    &&&& vazene zbozi potrebuje kratke kody pro vahu
    radek = RECNO()
    volny_kod = najdi_volny_kod_vah()
    WAIT m.volny_kod WINDOW NOWAIT 
    GO (m.radek)
    REPLACE kod WITH m.volny_kod
ENDSCAN 

SCAN FOR VAL(kod) = 0 .and. nazev1 # "xxx SMAZANO xxx " .and. c_druhk # 0
    radek = RECNO()
    volny_kod = najdi_volny_kod()
    WAIT m.volny_kod WINDOW NOWAIT 
    GO (m.radek)
    REPLACE kod WITH m.volny_kod
ENDSCAN 
WAIT CLEAR 


*    *    *    *    *    *    *    *    *    *    *    *    *    *    *    
PROCEDURE najdi_volny_kod_vah
LOCAL volny_kod_local
DO WHILE .t.  
    volny_kod_local = "7" + TRANSFORM(RAND() * 999, "@L 999" )  && celkova delka vysledku musi byt 12
    LOCATE FOR kod = m.volny_kod_local
    IF .not. FOUND()
        EXIT 
    ENDIF 
ENDDO 
RETURN m.volny_kod_local

*    *    *    *    *    *    *    *    *    *    *    *    *    *    *    
PROCEDURE najdi_volny_kod
LOCAL volny_kod_local
DO WHILE .t.  
    volny_kod_local = m.ean_prefix_zeme + TRANSFORM(RAND() * 9999999, "@L " + REPLICATE("9", 7))  && celkova delka vysledku musi byt 12
    LOCATE FOR kod = m.volny_kod_local
    IF .not. FOUND()
        EXIT 
    ENDIF 
ENDDO 
RETURN m.volny_kod_local
