Subir Planillas Web

De Wiki
Saltar a: navegación, buscar

Contenido

METODO NUEVO

Motivo del Nuevo Método

Se describe este nuevo procedimiento debido a que se genero unas modificaciones en el Script que sube las bases a la Planilla Virtual y se automatizo el armado de la estructura correcta de las bases del Sistema de Recibos

Estructura Inicial

Para poder llevar a cabo este procedimiento se debe encontrar la siguiente estructura:

    T:\reportes\recibos\datos\AAAAMM\|- recibo1.DBF             Donde:
                                     |- recibo2.DBF                   AAAA=Año de 4 digitos
                                     |- recibo3.DBF                    MM= Mes de 2 digitos

Interfaz

Gen bases recib2.PNG


Procedimiento de Ejecución

Generar Archivos para Planilla Virtual

  1. Verificar que se encuentre la Estructura Inicial.
  2. Ingresar al Sistema Werken 2.0.
  3. Ingresar a la opción Operaciones.
  4. Ingresar a la opción Post-Liquidación.
  5. Seleccionar la opción Generar Bases para Sistema de Recibos y presionar el botón Ejecutar.
  6. A continuación se abrirá la ventana que se muestra en el apartado de Interfaz (OJO; previo a esto mostrará un cartel de advertencia, pero es para el procedimiento anterior).
  7. Seleccionar el periodo correspondiente (Mes y Año).
  8. Presionar el botón Generar Recibos Planilla Virtual.
  9. Se generará en T:\Planilla_Virtual\AAAAMM los archivos recibo1.DBF, recibo2.DBF y recibo3.DBF.
  10. Verificar que el nombre de los archivos generados en T:\Planilla_Virtual\AAAAMM respeten la siguiente estructura: recibo#.DBF, donde recibo# debe estar en minúscula y la extensión .DBF en mayuscula. De no ser así corregirlo.
  11. Ingresar en recibo2.DBF y recibo3.DBF. Ir al final de cada archivo y borrar los registros que se encuentren en blanco. Se suelen generar registros basura que generan errores al subir los archivos, por lo cual hay que borrarlos.
    1. Seleccionar los registros en blanco
    2. En la ventana de comandos ingresar la instrucción PACK.

Posicionar los Archivos para la Planilla Virtual

  1. Conectarse por ftp al 200.16.30.9
    1. Loguearse con el usuario dgp e ingresar la contraseña correspondiente.
  2. Copiar los archivos recibo1.DBF, recibo2.DBF y recibo3.DBF que se encuentran en T:\Planilla_Virtual\AAAAMM a /htdocs/sitios/sitiodgp/planilla_web/recibos/. Es importante recordar el formato del nombre del archivo recibo#.DBF (nombre en minúscula y extensión en mayúscula).

Vaciar la Base de Datos Temporal

  1. Desde cualquier navegador web, ingresar al phpPgAdmin.
    1. Conectarse a http://www.dgp.unc.edu.ar/Pg/.
    2. Loguearse con el usuario: dgppostgres e ingresar la contraseña correspondiente.
  2. Ingresar a la Base de Datos haberes_temp.
  3. Vaciar las tablas recibo1, recibo2 y recibo3.
  4. Limpiar las tablas recibo1, recibo2 y recibo3.
    1. Dentro de la opción de limpieza seleccionar las opciones:Full y Analizar

Ejecutar el Script para subir los datos a la Base Temporal

  1. Conectarse por ssh al 200.16.30.9.
  2. Loguearse con el usuario dgp e ingresar la clave correspondiente.
  3. Loguearse como usario root a través del siguiente comando:
    su --

Una vez logueado como root, ingresar los siguientes comandos:

    cd htdocs/sitios/sitiodgp/planilla_web/
    ./subir_planillas.pl

Esto carga las tablas recibo1,recibo2 y recibo3 de la base haberes_temp.

Control Solo en el caso de que se pierdan datos: Desde FOX contar las cantidades de los registros de las tablas recibo1.DBF, recibo2.DBF y recibo3.DBF de T:\Planilla_Virtual\AAAAMM. Hacer lo mismo para las tablas recibo1, recibo2 y recibo3 de la base de datos habares_temp. 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) Además desde Fox debemos verificar cuantos archivos deleteados hay, ya que estos no son subidos a las planillas Web y pueden representar una diferencia entre la cantidad de registros de la planilla web y los registros de la DBF que estamos trabajando. Para ello:

    Ejemplo: 
            use c:\recib\201206\recibo3 in 0
            select recibo3
            set dele off
            brow for deleted()
            count for deleted() to a
            ?a
             
            a--> es la variable que almacena la cantidad de archivos deleteados

Ejecutar el Script de publicación de la Planilla Virtual

  1. Loguearse como postgres vía ssh a través del comando su postgres.
  2. Hacer el dump de la base haberers_temp a través de los siguientes comandos:
    cd
    /usr/bin/pg_dump -U postgres -d haberes_temp > ./haberesMMAA_final.sql
  1. Levantar el dump a la base de datos haberes a través de los siguientes comandos:
    # cd 
    # /usr/bin/psql -U postgres haberes < ./haberesmmaa_final.sql
  1. Verificar que se hayan publicado los datos en la web.

Control Final

Una vez finalizada la subida a la planilla virtual, ejecutar la siguiente consulta desde PHP PgAdmin

    select tipo_conce,sum(impo_conc)
    from recibo3
    where nro_liqui>=menorNroLiqui AND nro_liqui<=mayorNroLiqui
    group by tipo_conce
   * menorNroLiqui= Menor número de liquidación correspondiente al periodo de liquidación correspondiente
   * mayorNroLiqui= Mayor número de liquidación correspondiente al periodo de liquidación correspondiente

METODO ANTERIOR

¡¡¡¡ 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 

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

 Borro los archivos deleteados
¿Como lo hacemos?
use c:\ubicacion\recibo2.dbf
sele recibo2
pack

recibo3

 Borro los archivos deleteados
¿Como lo hacemos?
use c:\ubicacion\recibo3.dbf
sele recibo3
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 NO debe haber campos vacios o nulos

brow for empty(novedad1) 
brow for isnull(novedad1)
Nro de renglon erroneo

En nro_renglo NO debe haber campos vacios o nulos

brow for empty(nro_renglo) 
brow for isnull(nro_renglo)
Nro recibo erroneo

En nro_recib NO 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)

Además desde Fox debemos verificar cuantos archivos deleteados hay, ya que estos no son subidos a las planillas Web y pueden representar una diferencia entre la cantidad de registros de la planilla web y los registros de la DBF que estamos trabajando. Para ello:

  Ejemplo: 
  
  use c:\recib\201206\recibo3 in 0
  
  select recibo3
  set dele off
  brow for deleted()
  count for deleted() to a
  ?a
  
  a--> es la variable que almacena la cantidad de archivos deleteados

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)