//Faza 0: Lansare program

lPrezentare := .t.
#IF GetEnv("LMODSILENTIOS")="DA" .or. h_FileEx(homepath+"__LMODSILENTIOS.TXT")
//  h_SafeErase(homepath+"__LMODSILENTIOS.TXT")
    lModSilentios := .t.
    lPrezentare   := .f.
#ENDIF

#IF lPrezentare    
    aMes := {}
    // AADD (aMes, "")
    //AADD (aMes, "")
    AADD (aMes, " "+x_tit_vers)
    AADD (aMes, "")
    AADD (aMes, " Aplicabil pe baze de date hBILANT cu V 3.6A,B,C")
    AADD (aMes, "")
    AADD (aMes, " Executati acest program doar dupa ce:")
    AADD (aMes, "   -ati facut o copie de siguranta a bazei de date,")
    AADD (aMes, "   -ati facut reorganizarea totala a bazei de date,")
    AADD (aMes, "   -v-ati convins ca exista suficient spatiu disc liber")
    AADD (aMes, "    (marimea celui mai mare fisier + 100 Mo)")
    AADD (aMes, "")
    AADD (aMes, " ATENTIUNE ! In caz de incident restaurati baza de date ")
    AADD (aMes, "             si reluati executia programului.")
    AADD (aMes, "")
    AADD (aMes, " Continuati ?")
    
    aMesOpt :=  {aMes, {" DA ", " NU "}}
    
    wMes :=  h_NewOptions("O",                                            ;
            ,,,,                                                         ;
            NIL,"*", aMesOpt,{1})

    IIf(!h_PopUpWindow (wMes) .OR. wMes[13,1] != 1, h_End(1), NIL)
#ENDIF

x_open := {}
x_versiune := {"V 3.6A","V 3.6B","V 3.6C","V 3.6D"}
#DO F_VERS.TXT
// returneaza lEroare (.t./.f.)

// versiunea majora 
smajorV := Left(apl->V, 6)

x_CrLf  := Chr(13)+Chr(10) 
// analizeaza baza de date: se indeplinesc conditiile de upgrade ?
sMesaj := ""

nerr := 0

#IF lEroare
    nerr   := nerr+1
    sMesaj := sMesaj + " - versiunea bazei "+apl->V+" nu este corespunzatoare"+x_CrLf
#ENDIF

// Verifica versiunea pentru hMET2UP
#IF h_ApplIdnt[3]<"V 5.12"
    nerr    := nerr+1
    sMesaj  := sMesaj + " - Versiunea hMET2UP "+h_ApplIdnt[3]+"<V 5.12"+x_CrLf
    lEroare := .t.
#ENDIF

// verificare, este definit catalogul declaratii ?
#IF Empty(fil_bsp)
    nerr    := nerr+1
    sMesaj  := sMesaj + " - bsp -catalogul pentru declaratii nu este definit !"+x_CrLf
    lEroare := .t.
#ENDIF
#IF Empty(fil_bdp)
    nerr    := nerr+1
    sMesaj  := sMesaj + " - bdp -catalogul pentru declaratii nu este definit !"+x_CrLf
    lEroare := .t.
#ENDIF

MenuFaze := {}
#IF !lEroare 
    #IF (apl->V<"V 3.6D")
        AAdd(MenuFaze,"F1")
    #ELSEIF (apl->V>="V 3.6D")
        AAdd(MenuFaze,"F2")
    #ENDIF
    AAdd(MenuFaze,{"",       "---------------------------------------------"})
#ENDIF
AAdd(MenuFaze,{"FYP","Faza X: Prezentare pachet"})
AAdd(MenuFaze,{"FYN","Faza Y: Documentatie upgrade"})
AAdd(MenuFaze,"FZ")

sFile := ""
#IF ! Empty(sMesaj)
    sMesajT := "Proprietar program: "+x_SocProg()+Chr(13)+Chr(10)
    #IF ! (x_SocData() == x_SocProg())
        sMesajT := sMesajT + "Proprietar baza de date: "+x_SocData()+Chr(13)+Chr(10)
    #ENDIF
    sMesajT := sMesajT + Replicate("-",Len(x_SocProg())+21)+Chr(13)+Chr(10)
    sMesajT := sMesajT + "Baza de date a fost verificata si nu se indeplinesc "+ ;
                         "conditiile pentru upgrade:"+Chr(13)+Chr(10)
    sMesaj  := sMesajT + sMesaj
    sMesaj  := sMesaj+Chr(13)+Chr(10)
    #IF nerr = 1
        sMesaj := sMesaj+"Rezolvati eroarea si reluati !" +Chr(13)+Chr(10)
    #ELSE
        sMesaj := sMesaj+"Rezolvati erorile si reluati !" +Chr(13)+Chr(10)
    #ENDIF

    sFile   := h_AddPath("PROBL_BD.TXT",h_FilePathes[fil_tmp])
    h_MemoWrit(sFile,sMesaj)
    sMesajT := NIL
    sMesaj  := NIL

    lModSilentios := .F.
#ELSE
    sFile := h_AddPath("CITESTE.TXT",h_FilePathes[fil_tmp])
    #IF !h_SafeErase(sFile)
        h_MesErr("Fisierul nu poate fi sters: "+x_FileRight(sFile, MaxCol()+1-28))
        Abandon()
    #ENDIF
    h_CopyFile(homepath+"CITESTE.TXT",sFile)
#ENDIF

h_CloseAlias(,x_open)

#IF !lModSilentios .or. !Empty(sMesaj)
    X_1:=sFile
    gcmd_Exec("RUND")
#ENDIF    

sMesaj  := NIL   
sMesajT := NIL   
sFile   := NIL
DbCloseAll()
