*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  
*  *       PROCEDURE vypln_idriadok_v_adresari        *  *
*
*   2015-11-16 vynechaji se databaze, jejichz nazev zacina cislem
*
*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  
PARAMETERS cesticka 
DO clos_data
pocet = ADIR(qqq, m.cesticka + "*.dbf")
had_idr = CREATEOBJECT("had", "vypln idriadok v " + m.cesticka)
had_idr.SHOW()
had_idr.set_max(m.pocet+2)

m.necislovat_archivy = TYPE("ocisluj_archivy") = "U" .or. EMPTY(m.ocisluj_archivy)
*ACTIVATE SCREEN 
*? ""
FOR iii = 1 TO m.pocet
	*** Nema zmysel sa babrat so zaloznymi kopiami dokladov, obratov a skladov, ktore vznikaju pri uzavierke
	IF VAL(STRTRAN(UPPER(qqq(m.iii,1)),".DBF",""))=0 AND VAL(SUBSTR(STRTRAN(UPPER(qqq(m.iii,1)),".DBF",""),2))=0
	    had_idr.INCREMENT( qqq(iii, 1) )
	    DO ocisluj WITH m.cesticka + qqq(iii, 1)
	    DO clos_data
	    ERASE (m.cesticka + "*.bak")     && dano dovnitr cyklu, aby v jeho prubehu nezabraly baky prilis mnoho mista na disku
	    ERASE (m.cesticka + "*.tbk")
	ENDIF 
ENDFOR 
DO zurnal_log WITH "OPERA", "VYPLN IDRIADOK " + m.cesticka + IIF(m.necislovat_archivy, "", "+A"), had_idr.trvalo()
RELEASE had_idr
*? "--------------   IDRIADOK ocislovan v " + UPPER(m.cesticka) + "   --------------"


*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  
PROCEDURE ocisluj (jmeno_souboru)
*ACTIVATE SCREEN 
*? PADR(JUSTSTEM(m.jmeno_souboru), 33, ".") + " " font "Courier"

DO CASE 
CASE srat_na_cislovani (jmeno_souboru)
*    ?? " cislovano pred chvilkou" font "Courier"
    RETURN 

CASE (ATC("_A.DBF", qqq(iii, 1)) > 0) .AND. m.necislovat_archivy
    RETURN 

OTHERWISE 
    TRY 
       USE (m.jmeno_souboru) ALIAS soubor 
       IF FSIZE("idriadok") > 0

          typ_idriadku = "X"
          COPY STRUCTURE EXTENDED FIELDS idriadok TO (m.gcpri_path + "struktuura")
          SELECT 0
          USE (m.gcpri_path + "struktuura")
          LOCATE FOR field_name = "IDRIADOK"
          typ_idriadku = field_type + IIF(field_step = 0, " ", "A")
          USE IN struktuura
          SELECT soubor
*          ??  m.typ_idriadku font "Courier"
          USE (DBF()) EXCLUSIVE 
          PACK 

          IF "A" $ m.typ_idriadku          && autoincrement
               ALTER TABLE (DBF()) ALTER COLUMN idriadok INTEGER
          ENDIF 

          IF ATC("_A.DBF", DBF()) > 0    && archivy
               REPLACE ALL idriadok WITH RECNO() -2000999999
               posledni = RECCOUNT() -2000999000
*               typ_idriadku = m.typ_idriadku + " AAA"      && aby se udelal sloupec jako autoinc
          ELSE 
               REPLACE ALL idriadok WITH RECNO()
               posledni = RECCOUNT() + 1
          ENDIF 

          IF "A" $ m.typ_idriadku          && idriadok byl autoinc, tak vratim zpet
               ALTER TABLE (DBF()) ALTER COLUMN idriadok INTEGER AUTOINC NEXTVALUE m.posledni
          ENDIF 

          DO vypln_maximum
       ENDIF 
    CATCH 
*       ?? " !!!!!  NEPODARILO SE  !!!!!!!     " + UPPER(m.jmeno_souboru) font "Courier"
    ENDTRY     
ENDCASE 


*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  
PROCEDURE vypln_maximum
soubor = "idriadok " + LOWER(JUSTSTEM(DBF()))
USE (m.gchom_path + "maxima")
LOCATE FOR soubor = m.soubor
IF .not. FOUND()
    APPEND BLANK
ENDIF 
REPLACE soubor WITH m.soubor, i_max WITH m.posledni + 1        
*?? TRANSFORM(i_max, " 99999 999 999") font "Courier"
USE 


*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  
FUNCTION srat_na_cislovani (jmeno_souboru)
LOCAL iii, vysrat_se_na_cislovani, prog_chain
vysrat_se_na_cislovani = .F.
SELECT 0
IF FILE(m.gchom_path + "ocislovano.dbf")
   USE (m.gchom_path + "ocislovano.dbf") ALIAS ocislovano
   IF FSIZE("historie") = 0
       USE 
       CREATE TABLE (m.gchom_path + "ocislovano.dbf") (soubor C(99), prog_chain C(99), historie C(222), cas T)
   ENDIF 
ELSE  
   CREATE     TABLE (m.gchom_path + "ocislovano.dbf") (soubor C(99), prog_chain C(99), historie C(222), cas T)
ENDIF 

prog_chain = prog_chain()

LOCATE FOR soubor = LOWER(m.jmeno_souboru)
IF .not. FOUND()
    APPEND BLANK 
    REPLACE soubor WITH LOWER(m.jmeno_souboru), cas WITH {^2000-11-11}
ENDIF 
IF (DATETIME() - cas ) < 999
    vysrat_se_na_cislovani = .T.
    REPLACE historie WITH LOWER(m.machine) + " " + SUBSTR(LEFT(TTOC(DATETIME(), 3), 16), 9) + "   " + historie
ELSE 
    REPLACE historie WITH UPPER(m.machine) + " " + SUBSTR(LEFT(TTOC(DATETIME(), 3), 16), 3) + "   " + historie, prog_chain WITH m.prog_chain, cas WITH DATETIME()
ENDIF 
USE IN ocislovano
RETURN m.vysrat_se_na_cislovani
