******************************
* SISTEMA CONTABLE HYM PLUS *
* DIWCOPIA.PRG *
* COPIAS DE SEGURIDAD *
* Actualización: Feb.20.2008 *
******************************
#include "FiveWin.ch"
AUTO() //Función que verifica si tiene permisos el usuario para entrar al modulo
IF Pub:ENTRA="A"
ZIPDATOS()
ELSE
MSGINFO(Pub:MENTRA)
CLOS DATA
ENDI
******************************************************
** Proceso saca copias de seguridad de Datos Contables
******************************************************
FUNCTION ZipDatos()
**SON 81 ARCHIVOS REVISADOS para sacar el Backup
aFiles:={}
ARCHIVO() //Relleno la Matriz
nLen := Len(afiles) //Tamaño de la matriz con
nActual:=0
Archivo:="H"+Pub:CODEMP+"INV"+Pub:ANO+".ZIP" //Nombre del archivo en donde se realiza el Backup
cArchivo:=cGetFile((Archivo),"Seleccione un lugar para grabar el Backup",,'.\\',.t.)
IF Empty(AllTrim(cArchivo))
RETURN NIL
ENDIF
IF FILE(cArchivo)
FErase(cArchivo) //Borro el archivo comprimido si existe...
ENDIF
DEFINE DIALOG oDlg FROM 1, 1 TO 10, 44 TITLE "Espere ejecutando La copia de seguridad..."
@ 2, 2 METER oMeter VAR nActual TOTAL 100 OF oDlg SIZE 135, 12
ACTIVATE DIALOG oDlg CENTERED;
on Paint(If(Hb_ZIPFILE(cArchivo,aFiles, 5 , {|cFile,nPos|nActual:=nPos/nLen*100,oMeter:Set(nActual)} ),;
MsgInfo(("Copia realizada con EXITO "+CRLF+" "+CRLF+"AÑO "+ANONOM+CRLF+" "+CRLF+;
"Ubicación: "+cArchivo+CRLF+" "+CRLF+"Total archivos 81")),;
MsgInfo("La copia no se puede realizar")),oDlg:End())
Return Nil
***********************************************************************************
*Restaurar la copia al disco duro de Datos Contables Y GENERA UNA COPIA DE RESPALDO
***********************************************************************************
FUNCTION unZipDatos()
aFiles:={}
ARCHIVO()
RutaDatos:=Pub:DIRARCEMP+Pub:CODEMP
RutaRespal:=RutaDatos+"\RESPALDO" //Para sacar copia de Respaldo en caso de restaurar
ArchRespal:=RutaRespal+"\ARCH0001.ZIP" //Lleva un consecutivo cada vez que restuara información
nLen := len(aFiles)
nActual:=0
Archivo:="H"+Pub:CODEMP+"INV"+Pub:ANO+".ZIP" //Nombre del archivo en donde se realiza el Backup
cArchivo:=cGetFile((Archivo),"Seleccione el lugar donde esta la COPIA",,'.\\',.t.)
aExtract := hb_GetFilesInZip(cArchivo)
IF SUBS(RutaDatos,1,2)#"\\"
IF MSGNOYES( " ! A T E N CI O N ¡"+CRLF+" "+CRLF+"Seguro que desea Restaurar los Datos,"+CRLF+;
"se sobreescribiran los existentes en su"+CRLF+;
"Disco Duro C:\ "+CRLF+" "+CRLF+"Seleccione" )
IF Len(aFiles) > 0
IF !lIsDir(RutaRespal)
lMkDir(RutaRespal)
ENDIF
IF !FILE(ArchRespal)
HB_ZIPFILE(ArchRespal,aFiles)
ELSE
CONTRO:=Val(SUBS(ArchRespal,30,4))
DO WHILE .T.
CONTRO++
CONT:=SUBS(STRZERO(CONTRO),7,4)
ArchNuevo:=SUBS(ArchRespal,1,29)+CONT+".ZIP"
IF !FILE(ArchNuevo)
HB_ZIPFILE(ArchNuevo,aFiles)
EXIT
ENDIF
ENDD
ENDIF
SILOHAGO()
ELSE
MsgAlert("Archivo de respaldo corrupto!")
ENDIF
ELSE
MsgAlert("Error, no se realizo la Restauración")
ENDIF
ELSE
MSGINFO(" ! A TE N C I O N ¡"+CRLF+" "+CRLF+;
"Las copias de seguridad solamente se pueden"+CRLF+;
"restaurar desde el SERVIDOR. ")
ENDIF
****************
FUNC SILOHAGO()
DEFINE DIALOG oDlg FROM 1, 1 TO 10, 44 TITLE 'RECUPERANDO INFORMACION ...'
@ 2, 2 METER oMeter VAR nActual TOTAL 100 OF oDlg SIZE 135, 12
ACTIVATE DIALOG oDlg CENTERED;
on Paint( If( HB_UnZipFile(cArchivo,{|cFile,nPos|nActual:=nPos/nLen*100,oMeter:Set(nActual)} ;
,.T.,,RutaDatos,aExtract,nil) ,;
MsgInfo('Carpeta de Origen: '+carchivo+CRLF+;
'Carpeta de Destino: '+RutaDatos+CRLF+;
'Archivos Recuperados de: '+Archivo+CRLF+;
'Cantidad de Archivos Recuperados: 81','Información General del Proceso'),;
MsgInfo('La restauración no se puede realizar')),;
oDlg:End())
RETURN NIL
******************************************************************************************************
***Generar la Matriz de todos los archivos para sacar la copia y los respaldos en caso de Restauración
******************************************************************************************************
FUNC ARCHIVO
F01_HFENX:=Pub:DIRARCEMP+Pub:CODEMP+"\H3"+Pub:CODEMP+Pub:ANO+".DBF"
F02_HFCEP:=Pub:DIRARCEMP+Pub:CODEMP+"\H4"+Pub:CODEMP+Pub:ANO+".DBF"
F03_HFENV:=Pub:DIRARCEMP+Pub:CODEMP+"\H5"+Pub:CODEMP+Pub:ANO+".DBF"
F04_HFVEN:=Pub:DIRARCEMP+Pub:CODEMP+"\H8"+Pub:CODEMP+Pub:ANO+".DBF"
F05_HFCLE:=Pub:DIRARCEMP+Pub:CODEMP+"\HB"+Pub:CODEMP+Pub:ANO+".DBF"
F06_HFCLI:=Pub:DIRARCEMP+Pub:CODEMP+"\HC"+Pub:CODEMP+Pub:ANO+".DBF"
F07_HCIE:=Pub:DIRARCEMP+Pub:CODEMP+"\HE"+Pub:CODEMP+Pub:ANO+".DBF"
F08_HFAC:=Pub:DIRARCEMP+Pub:CODEMP+"\HF"+Pub:CODEMP+Pub:ANO+".DBF"
F09_HPAG:=Pub:DIRARCEMP+Pub:CODEMP+"\HG"+Pub:CODEMP+Pub:ANO+".DBF"
F10_HFENS:=Pub:DIRARCEMP+Pub:CODEMP+"\HH"+Pub:CODEMP+Pub:ANO+".DBF"
F11_HINV:=Pub:DIRARCEMP+Pub:CODEMP+"\HI"+Pub:CODEMP+Pub:ANO+".DBF"
F12_HRAA:=Pub:DIRARCEMP+Pub:CODEMP+"\HJ"+Pub:CODEMP+Pub:ANO+".DBF"
F13_HRBB:=Pub:DIRARCEMP+Pub:CODEMP+"\HK"+Pub:CODEMP+Pub:ANO+".DBF"
F14_HRCC:=Pub:DIRARCEMP+Pub:CODEMP+"\HL"+Pub:CODEMP+Pub:ANO+".DBF"
F15_HMED:=Pub:DIRARCEMP+Pub:CODEMP+"\HM"+Pub:CODEMP+Pub:ANO+".DBF"
F16_HMOV:=Pub:DIRARCEMP+Pub:CODEMP+"\HO"+Pub:CODEMP+Pub:ANO+"01.DBF"
F17_HMOV:=Pub:DIRARCEMP+Pub:CODEMP+"\HO"+Pub:CODEMP+Pub:ANO+"02.DBF"
F18_HMOV:=Pub:DIRARCEMP+Pub:CODEMP+"\HO"+Pub:CODEMP+Pub:ANO+"03.DBF"
F19_HMOV:=Pub:DIRARCEMP+Pub:CODEMP+"\HO"+Pub:CODEMP+Pub:ANO+"04.DBF"
F20_HMOV:=Pub:DIRARCEMP+Pub:CODEMP+"\HO"+Pub:CODEMP+Pub:ANO+"05.DBF"
F21_HMOV:=Pub:DIRARCEMP+Pub:CODEMP+"\HO"+Pub:CODEMP+Pub:ANO+"06.DBF"
F22_HMOV:=Pub:DIRARCEMP+Pub:CODEMP+"\HO"+Pub:CODEMP+Pub:ANO+"07.DBF"
F23_HMOV:=Pub:DIRARCEMP+Pub:CODEMP+"\HO"+Pub:CODEMP+Pub:ANO+"08.DBF"
F24_HMOV:=Pub:DIRARCEMP+Pub:CODEMP+"\HO"+Pub:CODEMP+Pub:ANO+"09.DBF"
F25_HMOV:=Pub:DIRARCEMP+Pub:CODEMP+"\HO"+Pub:CODEMP+Pub:ANO+"10.DBF"
F26_HMOV:=Pub:DIRARCEMP+Pub:CODEMP+"\HO"+Pub:CODEMP+Pub:ANO+"11.DBF"
F27_HMOV:=Pub:DIRARCEMP+Pub:CODEMP+"\HO"+Pub:CODEMP+Pub:ANO+"12.DBF"
F28_HPRO:=Pub:DIRARCEMP+Pub:CODEMP+"\HP"+Pub:CODEMP+Pub:ANO+".DBF"
F29_HFCYZ:=Pub:DIRARCEMP+Pub:CODEMP+"\HQ"+Pub:CODEMP+Pub:ANO+".DBF"
F30_HREM:=Pub:DIRARCEMP+Pub:CODEMP+"\HR"+Pub:CODEMP+Pub:ANO+".DBF"
F31_HFENE:=Pub:DIRARCEMP+Pub:CODEMP+"\HS"+Pub:CODEMP+Pub:ANO+".DBF"
F32_HTRM:=Pub:DIRARCEMP+Pub:CODEMP+"\HT"+Pub:CODEMP+Pub:ANO+".DBF"
F33_HFENR:=Pub:DIRARCEMP+Pub:CODEMP+"\HU"+Pub:CODEMP+Pub:ANO+".DBF"
F34_HGRU:=Pub:DIRARCEMP+Pub:CODEMP+"\HV"+Pub:CODEMP+Pub:ANO+".DBF"
F35_HFBOD:=Pub:DIRARCEMP+Pub:CODEMP+"\HW"+Pub:CODEMP+Pub:ANO+".DBF"
F36_HCOM:=Pub:DIRARCEMP+Pub:CODEMP+"\HX"+Pub:CODEMP+Pub:ANO+".DBF"
F37_HFCON:=Pub:DIRARCEMP+Pub:CODEMP+"\HZ"+Pub:CODEMP+Pub:ANO+".DBF"
F38_HRDD:=Pub:DIRARCEMP+Pub:CODEMP+"\HDD"+Pub:CODEMP+Pub:ANO+".DBF"
F39_HFENP:=Pub:DIRARCEMP+Pub:CODEMP+"\HWW"+Pub:CODEMP+Pub:ANO+".DBF"
F40_HFMCL:=Pub:DIRARCEMP+Pub:CODEMP+"\HXX"+Pub:CODEMP+Pub:ANO+".DBF"
F41_HTEM:=Pub:DIRLOCAL+Pub:CODEMP+"\HTEMP0.DBF"
F42_HFTEP:=Pub:DIRLOCAL+Pub:CODEMP+"\HTEMP2.DBF"
F43_HCOF:=Pub:DIRARCEMP+Pub:CODEMP+"\HCONFIG.DBF"
F44_HFCOI:=Pub:DIRARCEMP+Pub:CODEMP+"\HCOINTE.DBF"
F45_HFENX:=Pub:DIRARCEMP+Pub:CODEMP+"\H3"+Pub:CODEMP+Pub:ANO+".CDX"
F46_HFCEP:=Pub:DIRARCEMP+Pub:CODEMP+"\H4"+Pub:CODEMP+Pub:ANO+".CDX"
F47_HFENV:=Pub:DIRARCEMP+Pub:CODEMP+"\H5"+Pub:CODEMP+Pub:ANO+".CDX"
F48_HFVEN:=Pub:DIRARCEMP+Pub:CODEMP+"\H8"+Pub:CODEMP+Pub:ANO+".CDX"
F49_HFCLI:=Pub:DIRARCEMP+Pub:CODEMP+"\HC"+Pub:CODEMP+Pub:ANO+".CDX"
F50_HFAC:=Pub:DIRARCEMP+Pub:CODEMP+"\HF"+Pub:CODEMP+Pub:ANO+".CDX"
F51_HFENS:=Pub:DIRARCEMP+Pub:CODEMP+"\HH"+Pub:CODEMP+Pub:ANO+".CDX"
F52_HINV:=Pub:DIRARCEMP+Pub:CODEMP+"\HI"+Pub:CODEMP+Pub:ANO+".CDX"
F53_HRAA:=Pub:DIRARCEMP+Pub:CODEMP+"\HJ"+Pub:CODEMP+Pub:ANO+".CDX"
F54_HRBB:=Pub:DIRARCEMP+Pub:CODEMP+"\HK"+Pub:CODEMP+Pub:ANO+".CDX"
F55_HRCC:=Pub:DIRARCEMP+Pub:CODEMP+"\HL"+Pub:CODEMP+Pub:ANO+".CDX"
F56_HMED:=Pub:DIRARCEMP+Pub:CODEMP+"\HM"+Pub:CODEMP+Pub:ANO+".CDX"
F57_HMOV:=Pub:DIRARCEMP+Pub:CODEMP+"\HO"+Pub:CODEMP+Pub:ANO+"01.CDX"
F58_HMOV:=Pub:DIRARCEMP+Pub:CODEMP+"\HO"+Pub:CODEMP+Pub:ANO+"02.CDX"
F59_HMOV:=Pub:DIRARCEMP+Pub:CODEMP+"\HO"+Pub:CODEMP+Pub:ANO+"03.CDX"
F60_HMOV:=Pub:DIRARCEMP+Pub:CODEMP+"\HO"+Pub:CODEMP+Pub:ANO+"04.CDX"
F61_HMOV:=Pub:DIRARCEMP+Pub:CODEMP+"\HO"+Pub:CODEMP+Pub:ANO+"05.CDX"
F62_HMOV:=Pub:DIRARCEMP+Pub:CODEMP+"\HO"+Pub:CODEMP+Pub:ANO+"06.CDX"
F63_HMOV:=Pub:DIRARCEMP+Pub:CODEMP+"\HO"+Pub:CODEMP+Pub:ANO+"07.CDX"
F64_HMOV:=Pub:DIRARCEMP+Pub:CODEMP+"\HO"+Pub:CODEMP+Pub:ANO+"08.CDX"
F65_HMOV:=Pub:DIRARCEMP+Pub:CODEMP+"\HO"+Pub:CODEMP+Pub:ANO+"09.CDX"
F66_HMOV:=Pub:DIRARCEMP+Pub:CODEMP+"\HO"+Pub:CODEMP+Pub:ANO+"10.CDX"
F67_HMOV:=Pub:DIRARCEMP+Pub:CODEMP+"\HO"+Pub:CODEMP+Pub:ANO+"11.CDX"
F68_HMOV:=Pub:DIRARCEMP+Pub:CODEMP+"\HO"+Pub:CODEMP+Pub:ANO+"12.CDX"
F69_HPRO:=Pub:DIRARCEMP+Pub:CODEMP+"\HP"+Pub:CODEMP+Pub:ANO+".CDX"
F70_HFCYZ:=Pub:DIRARCEMP+Pub:CODEMP+"\HQ"+Pub:CODEMP+Pub:ANO+".CDX"
F71_HREM:=Pub:DIRARCEMP+Pub:CODEMP+"\HR"+Pub:CODEMP+Pub:ANO+".CDX"
F72_HFENE:=Pub:DIRARCEMP+Pub:CODEMP+"\HS"+Pub:CODEMP+Pub:ANO+".CDX"
F73_HTRM:=Pub:DIRARCEMP+Pub:CODEMP+"\HT"+Pub:CODEMP+Pub:ANO+".CDX"
F74_HFENR:=Pub:DIRARCEMP+Pub:CODEMP+"\HU"+Pub:CODEMP+Pub:ANO+".CDX"
F75_HGRU:=Pub:DIRARCEMP+Pub:CODEMP+"\HV"+Pub:CODEMP+Pub:ANO+".CDX"
F76_HFBOD:=Pub:DIRARCEMP+Pub:CODEMP+"\HW"+Pub:CODEMP+Pub:ANO+".CDX"
F77_HCOM:=Pub:DIRARCEMP+Pub:CODEMP+"\HX"+Pub:CODEMP+Pub:ANO+".CDX"
F78_HRDD:=Pub:DIRARCEMP+Pub:CODEMP+"\HDD"+Pub:CODEMP+Pub:ANO+".CDX"
F79_HFENP:=Pub:DIRARCEMP+Pub:CODEMP+"\HWW"+Pub:CODEMP+Pub:ANO+".CDX"
F80_HFMCL:=Pub:DIRARCEMP+Pub:CODEMP+"\HXX"+Pub:CODEMP+Pub:ANO+".CDX"
F81_HTEM:=Pub:DIRLOCAL+Pub:CODEMP+"\HTEMP0.CDX"
AADD( aFiles,F01_HFENX )
AADD( aFiles,F02_HFCEP )
AADD( aFiles,F03_HFENV )
AADD( aFiles,F04_HFVEN )
AADD( aFiles,F05_HFCLE )
AADD( aFiles,F06_HFCLI )
AADD( aFiles,F07_HCIE )
AADD( aFiles,F08_HFAC )
AADD( aFiles,F09_HPAG )
AADD( aFiles,F10_HFENS )
AADD( aFiles,F11_HINV )
AADD( aFiles,F12_HRAA )
AADD( aFiles,F13_HRBB )
AADD( aFiles,F14_HRCC )
AADD( aFiles,F15_HMED )
AADD( aFiles,F16_HMOV )
AADD( aFiles,F17_HMOV )
AADD( aFiles,F18_HMOV )
AADD( aFiles,F19_HMOV )
AADD( aFiles,F20_HMOV )
AADD( aFiles,F21_HMOV )
AADD( aFiles,F22_HMOV )
AADD( aFiles,F23_HMOV )
AADD( aFiles,F24_HMOV )
AADD( aFiles,F25_HMOV )
AADD( aFiles,F26_HMOV )
AADD( aFiles,F27_HMOV )
AADD( aFiles,F28_HPRO )
AADD( aFiles,F29_HFCYZ )
AADD( aFiles,F30_HREM )
AADD( aFiles,F31_HFENE )
AADD( aFiles,F32_HTRM )
AADD( aFiles,F33_HFENR )
AADD( aFiles,F34_HGRU )
AADD( aFiles,F35_HFBOD )
AADD( aFiles,F36_HCOM )
AADD( aFiles,F37_HFCON )
AADD( aFiles,F38_HRDD )
AADD( aFiles,F39_HFENP )
AADD( aFiles,F40_HFMCL )
AADD( aFiles,F41_HTEM )
AADD( aFiles,F42_HFTEP )
AADD( aFiles,F43_HCOF )
AADD( aFiles,F44_HFCOI )
AADD( aFiles,F45_HFENX )
AADD( aFiles,F46_HFCEP )
AADD( aFiles,F47_HFENV )
AADD( aFiles,F48_HFVEN )
AADD( aFiles,F49_HFCLI )
AADD( aFiles,F50_HFAC )
AADD( aFiles,F51_HFENS )
AADD( aFiles,F52_HINV )
AADD( aFiles,F53_HRAA )
AADD( aFiles,F54_HRBB )
AADD( aFiles,F55_HRCC )
AADD( aFiles,F56_HMED )
AADD( aFiles,F57_HMOV )
AADD( aFiles,F58_HMOV )
AADD( aFiles,F59_HMOV )
AADD( aFiles,F60_HMOV )
AADD( aFiles,F61_HMOV )
AADD( aFiles,F62_HMOV )
AADD( aFiles,F63_HMOV )
AADD( aFiles,F64_HMOV )
AADD( aFiles,F65_HMOV )
AADD( aFiles,F66_HMOV )
AADD( aFiles,F67_HMOV )
AADD( aFiles,F68_HMOV )
AADD( aFiles,F69_HPRO )
AADD( aFiles,F70_HFCYZ )
AADD( aFiles,F71_HREM )
AADD( aFiles,F72_HFENE )
AADD( aFiles,F73_HTRM )
AADD( aFiles,F74_HFENR )
AADD( aFiles,F75_HGRU )
AADD( aFiles,F76_HFBOD )
AADD( aFiles,F77_HCOM )
AADD( aFiles,F78_HRDD )
AADD( aFiles,F79_HFENP )
AADD( aFiles,F80_HFMCL )
AADD( aFiles,F81_HTEM )