Subir Planillas Web
De Wiki
¡¡¡¡ Importante !!!!hay q cambiar el script htdocs/sitios/sitiodgp/planilla_web/subir_planillas.pl
q hizo martin para q borre r1 r2 y r3 de haberes_temp antes de incorporar los dbfs esto es para evitar subir datos duplicados a la base final
Contenido
Archivos Necesarios
Origen de datos
recibo1.DBF recibo2.DBF recibo3.DBF
Estos deben ser los del mes a procesar. Lo mejor es tomarlos de donde se imprimen los recibos. Debe de mes liquidado osea el anterior. Ejemplo T:\reportes\recibos\datos\AAAAMM donde T ==> \\dgpxeon\transacciones-pampa
Destino Temporal
Lo que se hace es copiarlos a una carpeta local para trabajarlos
Ejemplo: C:\RECIB\MMAA
Limpieza
Se hace con VFP6 o cualquier editos de dfbs
recibo1
Debemos eliminar la liquidación duplicada 950 que es la /8
¿Como lo hacemos?
use c:\ubicacion\recibo1.dbf sele recibo1 brow seleccion la liquidacion duplica y consola escribo pack
recibo2
Eliminar columnas
f_baja f_perm recibo rec_barra anti_meses anti_anios
¿Cómo Eliminar Columnas?
use c:\"ubicacion" brows modify structure ó alter table recibo2 drop column f_baja alter table recibo2 drop column f_perm alter table recibo2 drop column recibo alter table recibo2 drop column rec_barra alter table recibo2 drop column anti_anios alter table recibo2 drop column anti_meses
Control de datos erroneros
Numeros de recibos en 0
replace all nro_recibo with 1 for nro_recibo=0
tot_reten en NULL (deberias ser cero)
brow for isnull(tot_reten) brow for empty(tot_reten)
en horas dedic no debe haber campos vacios o nulos brow for empty(hs_dedica) brow for isnull(hs_dedica)
en dias_retro idem horas_dedic
- no encontre como preguntarq este vacio, x q si pregunto por empty() me trae tambien los q valen cero
recibo3
Eliminar columnas
codc_uacad
alter table recibo3 drop column codc_uacad
Control de datos erroneros
Año y mes retro
selec * from recibo3 where ano_retro=9999 and mes_retro=99
select recibo3 replace ano_retro with 0, mes_retro with 0 for ano_retro=9999 replace ano_retro with 0, mes_retro with 0 for mes_retro=99
Nro de renglon
replace all nro_renglo with 1 for nro_renglo=0
Nro de recibo
replace all nro_recibo with 1 for nro_recibo=0
Registros sin datos
brow for isnull(nro_liqui)
Novedad 1 erroneo
en novedad1 debe haber campos vacios o nulos
brow for empty(novedad1) brow for isnull(novedad1)
Nro de renglon erroneo
en renglon debe haber campos vacios o nulos
brow for empty(nro_renglo) brow for isnull(nro_renglo)
Nro recibo erroneo
en recibo debe haber campos vacios o nulos
brow for empty(nro_recibo) brow for isnull(nro_recibo)
Destino Final de los DBFS
Conexion
Conectarse por ftp a 200.16.30.9 usuario dgp clave *****
Copia
copiarlos a /htdocs/sitios/sitiodgp/planilla_web/recibos/ Importante el nombre debe ser recibo1.DBF (nombre en minuscula, extension en mayuscula)
Vaciar la base
Esto se puede hacer desde phpPgAdmin
Conexion
entrar a http://www.dgp.unc.edu.ar/Pg/ usuario: dgppostgres pass: ******
Elegir Bd
Entrar a la base haberes_temp
Vaciado
vaciar las tablas recibo1 recibo2 recibo3 Luego hacer limpieza full analyse (selectall/limpiar->execute)
Ejecucion del script
Conexion
Conectarse Via ssh a 200.16.30.9 usuario dgp clave ***** Ahora me logueo como root
Ejecucion
cd htdocs/sitios/sitiodgp/planilla_web/ ./subir_planillas.pl Esto carga las tablas recibo1,recibo2 y recibo3 de la base haberes_temp
Control
desde fox contar las cantidades de los registros en las 3 dbfs. Hacer lo mismo en la base habares_temp en las 3 tablas. Si no coincide, no continuar y ver donde esta el problema(habia un bug en subir_planillas.pl, que ya se arreglo en abril 2012)
Bajada y subida
Una vez que se cargaron las tablas en habers_temp
Loguearse como postgres
siempre via ssh lo mejor es hacerse root su pass:***** y luego hacerse postgres su postgres
dump de la base haberers_temp
# cd # /usr/bin/pg_dump -d haberes_temp > ./haberesmmaa_final.sql
levantado del dump a la base haberes
# cd # /usr/bin/psql haberes < ./haberesmmaa_final.sql
Creditos
El script de conversion de dbfs a postgres fue desarrollado por Martin Villalba
Notas
En caso de subirla mal
Buscamos el mes
En este caso buscamos año 2012 mes 05
select * from recibo1 where per_liano=2012 and per_limes=05
Liquidaciones a borrar
-------- 979 980 981 982 --------
Borramos
delete from recibo3 where nro_liqui in (979,980,981,982)