Crear Aplicacion Sysplanilla PDF

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 89

Aplicación sistema de planillas en Apex

Ingresar en apex

Primero damos click en Aplication Express.

Después Ingresamos el usuario System y la contraseña que le asignamos a este usuario y click en
login.
Crear un nuevo Workspace

Luego daremos click en la opción de créate new, y llenaremos los siguientes campos como en la
imagen siguiente, la contraseña que ustedes deseen y después daremos click en create workspace.

Ya creado nuestro workspace damos click en “Click here”


Luego ingresaremos la contraseña del usuario “prueba” con el workspace Prueba que creamos.

Ahora ingresamos en la opción SQL Workshop


Entramos en la opción SQL Commands
Veremos la interfaz donde correremos los comandos sql para crear nuestra base de datos

Creacion de tablas , relaciones ,triggers y secuencias

Empezamos a crear las tablas de la base de datos de la siguiente manera

Seleccionamos el código y presionamos Run y asi sucesivamente.


Ingresamos el siguiente código:

Tablas de catalogo

CREATE TABLE CAT_AFP(

IDAFP NUMBER(11),

NOMBRE VARCHAR2(15),

VPATRONO DECIMAL(6,2),

VEMPLEADO DECIMAL(6,2),

PRIMARY KEY (IDAFP)

);

CREATE TABLE CAT_AGUINALDO(


IDAGUINALDO NUMBER,

INICIO NUMBER,

FIN NUMBER,

DIAS NUMBER,

EXENTO_RENTA DECIMAL(12,2),

PRIMARY KEY (IDAGUINALDO)

);

CREATE TABLE CAT_BANCO(

IDBANCO NUMBER,

NOMBRE VARCHAR2(30),

PRIMARY KEY(IDBANCO));

CREATE TABLE CAT_CARGO(

IDCARGO NUMBER,

NOMBRE VARCHAR2(30),

DESCRIPCION VARCHAR2(256),

PRIMARY KEY (IDCARGO));

CREATE TABLE CAT_DEPARTAMENTO(

IDDEPARTAMENTO NUMBER,

NOMBRE VARCHAR2(30),

PRIMARY KEY (IDDEPARTAMENTO));


CREATE TABLE CAT_DESCUENTO(

IDDESCUENTO NUMBER,

NOMBRE VARCHAR2(30),

PRIMARY KEY (IDDESCUENTO));

CREATE TABLE CAT_EMPLEADO(

IDEMPLEADO NUMBER,

NOMBRE_ISSS VARCHAR2(30),

NOMBRE_NIT VARCHAR2(30),

NIT VARCHAR2(20),

ISSS VARCHAR2(20),

DUI VARCHAR2(15),

NUP VARCHAR2(20),

IDBANCO NUMBER,

NUMEROCUENTA VARCHAR2(20),

IDDEPARTAMENTO NUMBER,

IDCARGO NUMBER,

FECHA_INGRESO DATE,

FECHA_CONTRATO DATE,

SALARIO DECIMAL(12,2),

ACTIVO CHAR(1),

PRIMARY KEY(IDEMPLEADO));

CREATE TABLE CAT_OTROS_INGRESOS(

IDOTROSINGRESOS NUMBER,
NOMBRE VARCHAR2(15),

PRIMARY KEY (IDOTROSINGRESOS)

);

CREATE TABLE CAT_RENTA(

IDRENTA NUMBER,

INICIO DECIMAL(12,2),

FIN DECIMAL(12,2),

VALOR_BASE DECIMAL(12,2),

PORCENTAJE DECIMAL(12,2),

VALOR_EXCESO DECIMAL(12,2),

PERIODO CHAR(1),

PRIMARY KEY(IDRENTA));

Tablas de procesos

CREATE TABLE DESCUENTO_EMPLEADO(

IDDESCUENTOEMPLEADO NUMBER NOT NULL PRIMARY KEY,

IDEMPLEADO NUMBER,

IDDESCUENTO NUMBER,

REFERENCIA VARCHAR2(30),

FECHAAPERTURA DATE,

FECHAAPLICACION DATE,

N_CUOTAS NUMBER,

MONTO_ORIGINAL DECIMAL(12,2),

COUTA_DESCUENTO DECIMAL(12,2),

SALDO_VIGENTE DECIMAL(12,2),
FORMA_PAGO VARCHAR2(1),

ESTADO VARCHAR2(1)

);

CREATE TABLE OTROS_INGRESOS_EMPLEADO(

IDOTROSINGRESOSEMPLEADO NUMBER NOT NULL PRIMARY KEY,

IDEMPLEADO NUMBER,

IDOTROSINGRESOS NUMBER,

VALOR DECIMAL(12,2),

FECHA_APLICACION DATE

);

CREATE TABLE PLANILLA(

IDPLANILLA VARCHAR2(15) NOT NULL PRIMARY KEY,

ANIO NUMBER NOT NULL,

MES NUMBER NOT NULL,

QUINCENA NUMBER NOT NULL,

CERRADO VARCHAR2(1) DEFAULT '0'

);
CREATE TABLE PLANILLA_TEMPORAL(

COD_PLANILLA CHAR(15) NOT NULL PRIMARY KEY,

COD_EMPLEADO CHAR(5) NOT NULL,

ANIO NUMBER,

MES NUMBER,

SUELDO_QUINCENAL DECIMAL (12,2),

TOTAL_HORAS DECIMAL (6,2),

VALOR_HORA DECIMAL (2,12),

OTROS_INGRESOS DECIMAL(12,2),

OTROS_INGRESOS_NO_RENTA DECIMAL(12,2),

OTROS_INGRESOS_RENTA_ACUMULADO DECIMAL(12,2),

SUELDO_DEVENGADO DECIMAL(12,2),

SUELDO_DEVENGADO_ACUMULADO DECIMAL(12,2),

SUELDO_LIQUIDAR DECIMAL(12,2),

ISSS DECIMAL(12,2),

ISSS_ACUMULADO DECIMAL(12,2),

IVM DECIMAL(12,2),

IVM_ACUMULADO DECIMAL(12,2),

POR_AFP DECIMAL(12,2),

RENTA DECIMAL(12,2),

RENTA_ACUMULADA DECIMAL(12,2),

VALOR_BASE_RENTA DECIMAL(12,2),
POR_RENTA DECIMAL(12,2),

VALOR_EXCESO_RENTA DECIMAL(12,2),

BANCOS DECIMAL(12,2),

PRESTAMOS_INTERNOS DECIMAL(12,2),

OTROS_DESCUENTOS DECIMAL(12,2),

SUELDO_LIQUIDO DECIMAL(12,2)

);

Relaciones entre tablas

ALTER TABLE CAT_EMPLEADO ADD CONSTRAINT FK_CAT_EMPLEADO_CAT_BANCO FOREIGN


KEY(IDBANCO) REFERENCES CAT_BANCO (IDBANCO);

ALTER TABLE CAT_EMPLEADO ADD CONSTRAINT FK_CAT_EMPLEADO_CAT_CARGO FOREIGN


KEY(IDCARGO) REFERENCES CAT_CARGO (IDCARGO);

ALTER TABLE CAT_EMPLEADO ADD CONSTRAINT FK_CAT_EMPLEADO_CAT_DEPA FOREIGN


KEY(IDDEPARTAMENTO) REFERENCES CAT_DEPARTAMENTO (IDDEPARTAMENTO);

ALTER TABLE DESCUENTO_EMPLEADO ADD CONSTRAINT FK_DESC_EMPLEADO_EMPL FOREIGN


KEY(IDEMPLEADO) REFERENCES CAT_EMPLEADO (IDEMPLEADO);

ALTER TABLE DESCUENTO_EMPLEADO ADD CONSTRAINT FK_DESC_EMPLEADO_DESCUEN


FOREIGN KEY(IDDESCUENTO) REFERENCES CAT_DESCUENTO (IDDESCUENTO

ALTER TABLE OTROS_INGRESOS_EMPLEADO ADD CONSTRAINT FK_OTROS_INGRE_EMPLEADO


FOREIGN KEY(IDEMPLEADO) REFERENCES CAT_EMPLEADO (IDEMPLEADO);

ALTER TABLE OTROS_INGRESOS_EMPLEADO ADD CONSTRAINT FK_OTROS_INGRE_OTROS_IGRE


FOREIGN KEY(IDOTROSINGRESOS) REFERENCES CAT_OTROS_INGRESOS (IDOTROSINGRESOS);

Secuencias y triggers de tablas de catalogo

CREATE SEQUENCE cafp


START WITH 1

INCREMENT BY 1;

CREATE TRIGGER TRIG_afp

BEFORE INSERT ON CAT_AFP

FOR EACH ROW BEGIN SELECT cafp.NEXTVAL

INTO :NEW.IDAFP FROM DUAL;

END;

CREATE SEQUENCE caguinaldo

START WITH 1

INCREMENT BY 1;

CREATE TRIGGER TRIG_aguinaldo

BEFORE INSERT ON CAT_AGUINALDO

FOR EACH ROW BEGIN SELECT caguinaldo.NEXTVAL

INTO :NEW.IDAGUINALDO FROM DUAL;

END;

CREATE SEQUENCE cbanco

START WITH 1

INCREMENT BY 1;

CREATE TRIGGER TRIG_banco

BEFORE INSERT ON CAT_BANCO


FOR EACH ROW BEGIN SELECT cbanco.NEXTVAL

INTO :NEW.IDBANCO FROM DUAL;

END;

CREATE SEQUENCE ccargo

START WITH 1

INCREMENT BY 1;

CREATE TRIGGER TRIG_cargo

BEFORE INSERT ON CAT_CARGO

FOR EACH ROW BEGIN SELECT ccargo.NEXTVAL

INTO :NEW.IDCARGO FROM DUAL;

END;

CREATE SEQUENCE cdepartamento

START WITH 1

INCREMENT BY 1;

CREATE TRIGGER TRIG_departamento

BEFORE INSERT ON CAT_DEPARTAMENTO

FOR EACH ROW BEGIN SELECT cdepartamento.NEXTVAL

INTO :NEW.IDDEPARTAMENTO FROM DUAL;

END;
CREATE SEQUENCE cdescuento

START WITH 1

INCREMENT BY 1;

CREATE TRIGGER TRIG_descuento

BEFORE INSERT ON CAT_DESCUENTO

FOR EACH ROW BEGIN SELECT cdescuento.NEXTVAL

INTO :NEW.IDDESCUENTO FROM DUAL;

END;

CREATE SEQUENCE CEMPLEADO

START WITH 1

INCREMENT BY 1;

CREATE TRIGGER TRIG_EMPLEADO

BEFORE INSERT ON CAT_EMPLEADO

FOR EACH ROW

BEGIN

SELECT CEMPLEADO.NEXTVAL INTO:NEW.IDEMPLEADO FROM DUAL;

END;

CREATE SEQUENCE COTROS_INGRESOS

START WITH 1

INCREMENT BY 1;
CREATE TRIGGER TRIG_OTROS_INGRESOS

BEFORE INSERT ON CAT_OTROS_INGRESOS

FOR EACH ROW

BEGIN

SELECT COTROS_INGRESOS.NEXTVAL INTO:NEW.IDOTROSINGRESOS FROM DUAL;

END;

CREATE SEQUENCE CRENTA

START WITH 1

INCREMENT BY 1;

CREATE TRIGGER TRIG_RENTA

BEFORE INSERT ON CAT_RENTA

FOR EACH ROW

BEGIN

SELECT CRENTA.NEXTVAL INTO:NEW.IDRENTA FROM DUAL;

END;

Secuencias y triggers de tablas de procesos

CREATE SEQUENCE CDESCUENTO_EMPLEADO

START WITH 1

INCREMENT BY 1;
CREATE TRIGGER TRIG_DESCUENTO_EMPLEADO

BEFORE INSERT ON DESCUENTO_EMPLEADO

FOR EACH ROW BEGIN SELECT CDESCUENTO_EMPLEADO.NEXTVAL

INTO :NEW.IDDESCUENTOEMPLEADO FROM DUAL;

END;

CREATE SEQUENCE COTROS_INGRESOS_EMPLEADO

START WITH 1

INCREMENT BY 1;

CREATE TRIGGER TRIG_OTROS_INGRESOS_EMPLEADO

BEFORE INSERT ON OTROS_INGRESOS_EMPLEADO

FOR EACH ROW BEGIN SELECT COTROS_INGRESOS_EMPLEADO.NEXTVAL

INTO :NEW.IDOTROSINGRESOSEMPLEADO FROM DUAL;

END;

Carga de datos (registros)

Luego exportamos nuestros datos desde los archivos .csv de la siguiente manera

Ingresamos en SQL Workshop


Luego ingresamos en Utilities

Ingresamos en Data Workshop


Seleccionamos la opción Text data

Luego configuramos tal y como se muestra en la imagen y damos siguiente


Elegimos la base de datos en nuestro caso es prueba , damos click en siguiente

Seleccionamos el nombre de nuestra tabla donde ingresaremos los datos , damos click en
siguiente
Damos click en seleccionar archivo

Nos aparecerá el explorador de archivos de Windows y seleccionamos nuestro archivo .csv y


damos click en abrir
Nos aparecerá la información de los datos verificamos si los datos coinciden y damos click en load
data

Al finalizar la carga de datos fue exitosa aparecerá como Succeded y el numero de registros
ingresados

Para la carga de los registros de las demás tablas se debe seguir el mismo procedimiento anterior.
Crear aplicación
Despues de crear todas las tablas , secuencias y triggers procederemos a crear nuestra aplicación.

Ingresamos en home y luego en Aplication builder.

Luego damos click en créate


Seleccionamos data base y damos click en next

Seleccionamos from scratch y damos click en next


Le damos un nombre a nuestra aplicación , seleccionamos la base de datos y damos click en next

Seleccionamos blank ponemos un nombre a la pagina y damos click en add page


Seleccionamos report and form damos click en table name y seleccionamos nuestra table

Seleccionamos implementation interactive y damos click en add page


Las paginas se van agregando a nuestra aplicacion

Vamos agregando de igual forma todas las tablas de catalogo


Ahora agregamos las tablas de reporte

Seleccionamos report y seleccionamos el nombre de la tabla ,damos click en add page

Habiendo creado todas las paginas damos click en next


Seleccionamos no tabs y damos click en next

Seleccionamos no y damos click en next


Seleccionamos Aplication express , el idioma y formato de fecha y damos click en next

Seleccionamos el tema y damos click en next


Nos aparecerá la siguiente pantalla y damos click en créate

Nuestra aplicación fue creada ahora damos click en run


Asi se vera nuestra aplicación

Agregando menú principal


Regresamos a la pagina anterior y damos click en shared components el icono de engranaje
Nos aparecerá esta pantalla y damos click en lists

Nos aparecerá esta pantalla y damos click en créate


Ponemos el nombre a nuestra lista y seleccionmos vertical sidebar list , damos click en next

Comenzamos a crear los ítems de nuestra lista

Creamos el primero ingresamos un nombre y seleccionamos la pagina que ocupara , damos click
en next
Seleccionamos todas las opciones que veremos a continuación y damos click en create

Volvemos a crear otra lista , damos click en créate


Seleccionamos todas las opciones que se ven en la imagen y damos click en next

Procedemos a crear los ítems de la lista y damos click en next


Seleccionamos las opciones que se ven en la imagen y damos click en create

Aparecera nuestra lista pero aun no están completos los ítems de nuestra lista.
Seleccionamos la lista catalogo , nos aparecerá la siguiente pantalla

Damos click en créate list entry


Nos posicionamos en Entry e ingresamos un nombre a nuestro ítem , damos click en target

Seleccionamos page in this Aplication y buscamos la pagina que poseera el ítem


Damos click en créate and créate another

Luego de crear nos redirecciona a la misma pagina volvemos a repetir el procedimiento anterior
hasta crear todos los items , en el ultimo solo presionamos créate y aparecerá la siguiente pantalla
con todos nuestros ítems.

Regresamos a list.
Volvemos a donde se encuentran nuestras listas y damos click en créate

Seleccionamos todas las opciones tal como vemos en la siguiente pantalla y damos click en next
Ponemos nombre a nuestro ítem y seleccionamos la pagina que ocupara , luego damos click en
next

Seleccionamos las opciones que aparecen en la pantalla y damos click en créate


Volvemos a nuestra pagina de listas y damos click en créate

Seleccionamos todas las opciones que se ven en la pantalla y damos click en next
Creamos nuestro ítem y pegamos la url de logout , damos click en next

Seleccionamos todas las opciones que se ven en la pantalla y damos click en créate
Nuestra lista fue creada

Ahora corremos nuestra aplicación la cual queda de esta forma


Damos click en edit page 1.

Damos click región seleccionada


Damos click derecho y damos luego en edit

Luego damos click en delete


Luego damos click en delete región

Ahora damos click en la región seleccionada


Damos click derecho y luego en edit

Ahora cambiamos el numero de la columna por el numero 2


Damos click en apply changes

Damos click en la región seleccionada


Damos click derecho y luego en edit

Cambiamos el numero de la columna por 3


Damos click en apply changes

Damos click en la región seleccionada


Damos click derecho y luego en edit

Cambiamos el numero de la columna por 4


Damos click en apply changes

Los cambios fueron guardados


Luego corremos nuestra aplicación

Nos quedara de esta forma


Crear listas desplegables en los formularios

Luego nos vamos a donde se encuentran todas nuestras paginas y seleccionamos la forma de
empleado

Seleccionamos el ítem que se ve en la pantalla


Luego damos click derecho y click en edit

Cambiamos nuestro tipo de input por una lista desplegable


Nos vamos hacia abajo y seleccionamos la opción que esta en color anaranjado y seleccionamos
nuestra base de datos pero damos click en next

Seleccionamos la tabla y damos click en next


Seleccionamos las opciones que se ven en la pantalla y damos click en next .

Nos aparecerá el query que realizara la selección y damos click en finish


Regresamos hacia arriba y damos click en apply changes .

Después de crear todas las listas con valores procedentes de otras tablas procedemos a crear las
listas con valores estáticos.

Seleccionamos el ítem que se ve en la pantalla


Damos click derecho y click en edit

Luego cambiamos el tipo de input por una lista desplegable


Nos vamos hacia abajo y damos click en la opción que vemos en anaranjado claro

Escribimos los valores que deseamos que tenga nuestra lista y damos click en apply
Regresamos hacia arriba y damos click en apply changes

Corremos el formulario y nos aparecerá asi


Luego configuramos los formularios de toda nuestra aplicación.

Crear Store Procedure y vistas finales

Luego nos ubicamos en SQL Commands

corremos el siguiente código:

procedimiento inicia planilla

create or replace procedure "INICIA_PLANILLA"

--parametros

(codplanilla in VARCHAR2,

anio in NUMBER,
mes in NUMBER,

quincena in NUMBER,

estado in NUMBER)

is

begin

insert into planilla values (codplanilla , anio , mes , quincena , estado);

dbms_output.put_line('Proceso realizado con exito');

commit;

exception

when others then

dbms_output.put_line('error');

rollback;

end;

alter para planilla temporal

alter table planilla_temporal drop primary key;

alter table planilla_temporal add primary key(cod_planilla,cod_empleado);

ALTER TABLE PLANILLA_TEMPORAL ADD IDISSS NUMBER;


ALTER TABLE PLANILLA_TEMPORAL ADD CONSTRAINT FK_CAT_AFP_PLANILLA_TEMP FOREIGN
KEY(IDISSS) REFERENCES CAT_AFP (IDAFP);

ALTER TABLE PLANILLA_TEMPORAL ADD IDafp NUMBER;

ALTER TABLE PLANILLA_TEMPORAL ADD CONSTRAINT FK_afp_planilla FOREIGN KEY(IDafp)


REFERENCES CAT_AFP (IDAFP);

ALTER TABLE CAT_AFP ADD VALORMAXIMO NUMBER(12,2);

UPDATE CAT_AFP SET VALORMAXIMO=1000

update cat_afp set vempleado=0.06 where nombre='CRECER';

procedimiento aplicar planilla

create or replace procedure "SP_APLICAR_PLANILLA"

is

vplanilla varchar2(15);

vanio number;

vmes number;

visss number(12,2);

vvalormax number;

vsueldodev number(12,2);

vcodempleado number;

i varchar2(100) ;
vafp number(12,2);

begin

delete planilla_temporal;

--proceso recoger cod_planilla, cod_empleado,año,mes

select idplanilla into vplanilla from planilla where cerrado='0';

select anio into vanio from planilla where cerrado='0';

select mes into vmes from planilla where cerrado='0';

insert into planilla_temporal

(cod_planilla, anio, mes,cod_empleado, sueldo_quincenal,otros_ingresos,


OTROS_DESCUENTOS)

select vplanilla, vanio, vmes,c.idempleado,


(salario/2),sum(o.valor),sum(de.COUTA_DESCUENTO)

from cat_empleado c

left outer join otros_ingresos_empleado o

on c.idempleado = o.idempleado

left outer join descuento_empleado de

on c.idempleado = de.idempleado

where activo='1'

group by c.idempleado,(c.SALARIO/2)

order by vplanilla;

UPDATE PLANILLA_TEMPORAL SET total_horas=120;

UPDATE PLANILLA_TEMPORAL SET valor_hora=sueldo_quincenal/total_horas;


UPDATE PLANILLA_TEMPORAL SET SUELDO_DEVENGADO=((total_horas*valor_hora)+
nvl(otros_ingresos,0)

+ nvl(otros_ingresos_no_renta,0));

--obteniendo isss

UPDATE PLANILLA_TEMPORAL SET IDISSS =(select idafp from cat_afp

where nombre='ISSS');

SELECT CA.VEMPLEADO INTO visss FROM PLANILLA_TEMPORAL PT INNER JOIN CAT_AFP CA ON


PT.IDISSS=CA.IDAFP

WHERE PT.IDISSS=CA.IDAFP and rownum=1;

SELECT ca.valormaximo INTO vvalormax FROM PLANILLA_TEMPORAL PT INNER JOIN CAT_AFP CA


ON PT.IDISSS=CA.IDAFP

WHERE PT.IDISSS=CA.IDAFP and rownum=1;

update planilla_temporal set isss= (sueldo_devengado - vvalormax ) * visss where


sueldo_devengado > vvalormax;

update planilla_temporal set isss= (sueldo_devengado) * visss where sueldo_devengado <


vvalormax;

--obteniendo afp

UPDATE PLANILLA_TEMPORAL SET IDafp = (select idafp from cat_afp


where nombre='CRECER');

SELECT CA.VEMPLEADO into vafp FROM PLANILLA_TEMPORAL PT INNER JOIN CAT_AFP CA

ON PT.IDafp=CA.IDAFP

WHERE PT.IDafp=CA.IDAFP and rownum=1;

update planilla_temporal set ivm= (sueldo_devengado - vvalormax ) * vafp where


sueldo_devengado > vvalormax;

update planilla_temporal set ivm= (sueldo_devengado) * vafp where sueldo_devengado <


vvalormax;

--obteniendo renta

--valor base

update planilla_temporal set valor_base_renta =

(select valor_base from cat_renta where (sueldo_devengado - isss - ivm)

between inicio and fin and periodo='Q');

--porcetaje de renta

update planilla_temporal set por_renta =

(select porcentaje from cat_renta where (sueldo_devengado - isss - ivm)

between inicio and fin and periodo='Q');

--valor de exceso
update planilla_temporal set VALOR_EXCESO_RENTA=

(select VALOR_EXCESO from cat_renta where (sueldo_devengado - isss - ivm)

between inicio and fin and periodo='Q');

--renta

update planilla_temporal set renta = ((( (sueldo_devengado - isss - ivm)- valor_base_renta) *


(por_renta/100)) + valor_exceso_renta);

--sueldo liquido

update planilla_temporal set sueldo_liquido=((sueldo_devengado -isss -ivm - renta)

- nvl(OTROS_DESCUENTOS,0));

--SUELDO LIQUIDAR

update planilla_temporal set SUELDO_LIQUIDAR=(sueldo_devengado - isss - ivm);

end;
------------------------------correr proceso-----------------------------------------

begin

sp_aplicar_planilla();

end;

select * from planilla_temporal

crear tabla hist planilla

CREATE TABLE hist_planilla (

cod_planilla char(15) NOT NULL,

cod_empleado char(5) NOT NULL,

ano number(4) DEFAULT 0,

mes number(2) DEFAULT 0,

sueldo_quincenal number(12,2) DEFAULT 0,

total_horas number(12,2) DEFAULT 0,

total_extras number(12,2) DEFAULT 0,

total_permisos number(12,2) DEFAULT 0,

valor_horas number(12,2) DEFAULT 0,

valor_extras number(12,2) DEFAULT 0,

valor_permisos number(12,2) DEFAULT 0,

comisiones number(12,2) DEFAULT 0,

vacacion number(12,2) DEFAULT 0,

otros_ingresos number(12,2) DEFAULT 0,


otros_ingresos_renta number(12,2) DEFAULT 0,

otros_ingresos_renta_acumulado number(12,2) DEFAULT 0,

otros_ingresos_libre number(12,2) DEFAULT 0,

abono_liquidar number(12,2) DEFAULT 0,

sueldo_devengado number(12,2) DEFAULT 0,

sueldo_devengado_acumulado number(12,2) DEFAULT 0,

sueldo_liquidar number(12,2) DEFAULT 0,

isss number(12,2) DEFAULT 0,

isss_acumulado number(12,2) DEFAULT 0,

ivm number(12,2) DEFAULT 0,

ivm_acumulado number(12,2) DEFAULT 0,

por_afp number(12,2) DEFAULT 0,

renta number(12,2) DEFAULT 0,

renta_acumulado number(12,2) DEFAULT 0,

valor_base_renta number(12,2) DEFAULT 0,

por_renta number(12,2) DEFAULT 0,

valor_exceso_renta number(12,2) DEFAULT 0,

bancos number(12,2) DEFAULT 0,

prestamo_interno number(12,2) DEFAULT 0,

otros_descuentos number(12,2) DEFAULT 0,

abono_descontar number(12,2) DEFAULT 0,

sueldo_liquido number(12,2) DEFAULT 0,

pago_banco number(12,2) DEFAULT 1,

grupo_pago number(12,2) DEFAULT NULL,

cod_empleado_cheque char(5) DEFAULT NULL,

aguinaldoexento number(12,2) DEFAULT NULL,


aguinaldorenta number(12,2) DEFAULT NULL,

PRIMARY KEY (cod_planilla,cod_empleado));

Alter tabla planilla temporal

alter table planilla_temporal drop column por_afp;

alter table planilla_temporal drop column bancos;

alter table planilla_temporal drop column PRESTAMOS_INTERNOS;

proceso llenar a hist planilla

create or replace procedure "SP_LLENAR_HISTORICO"

is

begin

insert into hist_planilla

(cod_planilla,cod_empleado,ano, mes,sueldo_quincenal,total_horas,valor_horas,otros_ingresos

,sueldo_devengado,sueldo_liquidar,isss,ivm,renta,valor_base_renta,por_renta,VALOR_EXCESO_R
ENTA

,OTROS_DESCUENTOS,SUELDO_LIQUIDO)

select pt.cod_planilla,pt.cod_empleado, pt.anio,


pt.mes,pt.sueldo_quincenal,pt.total_horas,valor_hora,pt.otros_ingresos
,pt.sueldo_devengado,pt.sueldo_liquidar,pt.isss,pt.ivm,pt.renta,pt.valor_base_renta,pt.por_renta,
pt.VALOR_EXCESO_RENTA

,pt.OTROS_DESCUENTOS,pt.SUELDO_LIQUIDO

from planilla_temporal pt

order by cod_empleado;

end;

corer historico

begin

SP_LLENAR_HISTORICO();

end;

select * from hist_planilla

cerrar planilla

create or replace procedure "SP_CERRAR_PLANILLA"

(vcerrado CHAR)

is

begin

update planilla set cerrado=vcerrado;

end;
trigger sp_aplicar_planilla

create or replace trigger "PLANILLA_T1"

AFTER

insert on "PLANILLA"

begin

sp_aplicar_planilla();

end;

llenar his planilla

create or replace trigger "TG_LLENAR_HIST_PLANILLA"

AFTER

update on "PLANILLA"

begin

sp_llenar_historico();

end;
Luego de haber ingresado el código anterior nos dirigimos a nuestra aplicación.

Selecionamos créate Page

Y seleccionamos Report y damos click en next


Seleccionamos interactive Report y damos click en next

Nos aparecerá esta pantalla y damos click en next

Selecciona do not use tabs y dar click en next


Aparecera esta pantalla dar click en Query Builder

Seleccione el nombre de la tabla y elija todos los campos que necesita


Luego dar click en la pestaña SQL y copiar el código

Pegar el código en la ventana anterior , dar click en next


Aparecera esta ventana dar click en finish

Esta creada la pagina

Seguir el mismo procedimiento para las tablas planilla y hist_planilla


Luego Creamos otra pagina en créate page

Seleccionamos form y damos click en next


Seleccionamos Forms on a procedure , damos click en next

Seleccionamos la base de datos y damos click en next

Nos aparecera esta ventana damos click en la flecha


Seleccionamos el Store procedure Inicia planilla y damos click en next

Nos aparecerá esta pantalla cambiamos el nombre a los botones y damos click en next

Seleccionamos do not use tabs y dar click en next


Nos aparecerá esta ventana

En invoking page seleccionamos la pagina donde hicimos el reporte de la tabla planilla y ponemos
el nombre al botón

Selccionamos la región

Luego seleccionamos la pagina donde queremos que envie los datos que en nuestro caso es
planilla temporal y la pagina a la que nos redireccione si cancelamos seria la pagina principal es
decir la pagina 1
Nos aparecerá esta ventana luego colocamos el input codplanilla como hidden y damos click en
next

Nos aparecerá esta ventana y damos click en finish

Para finalizar integramos la pagina de la tabla planilla y la tabla hist planilla en el menú procesos
Seleccionamos shared components

Luego seleccionamos list

Elegimos la lista proceso


Luego crearemos las nuevas entradas para el menú procesos , damos click en créate list entry

En list entry label colocamos el nombre de la entrada

En target en la opción page seleccionamos la pagina planilla


Damos click en créate and créate another

Seguimos el mismo procedimiento ponemos el nombre de la entrada , para la pagina hist planilla

En target para la opción page seleccionamos la pagina hist planilla y damos clik en create

También podría gustarte