##################################################################### -- CAMBIO 1 -- Se crea una tabla PLASALARIO para eliminar -- el salario del maestro de empleados y tener -- un verdadero historico de salarios desde esta tabla. -- "fecha" correspondera ahora a la fecha en que rige el nuevo salario -- "fechareg" corresponde a la fecha de registro del salario -- "nuevoSalario" para registrar el salario vigente a partir de "fecha" -- PLAAUMENTO sera un sinonimo de PLASALARIO create table PLASALARIO ( cia CHAR(3) not null, empleado VARCHAR2(15) not null, fecha DATE not null, porcentaje NUMBER(5,2) not null constraint PLASALARIO_PORCENTAJE_CK check (porcentaje >= 0), monto NUMBER(14,2) not null constraint PLASALARIO_MONTO_CK check (monto >= 0), salarioNuevo NUMBER(14,2) not null constraint PLASALARIO_SALARIONUE_CK check (salarionuevo >= 0), accion CHAR(3), numero NUMBER(8), fechareg DATE not null, usuario VARCHAR2(30) not null, constraint PLASALARIO_PK primary key (cia, empleado, fecha) ); ALTER TABLE PLASALARIO ADD CONSTRAINT PlaEmpleado_Salario_FK foreign key (cia, empleado) references PlaEmpleado (cia, empleado); --- recupera los datos de plaaumento a plasalario insert into plasalario select cia, empleado, fecha, porcentaje, monto, decode(monto, 0, SalarioAnt * (1+porcentaje/100), SalarioAnt + monto), accion, numero, fecha, user from plaaumento; commit; drop table plaaumento; create synonym plaaumento for plasalario; --- OJO: recupera salarios antes de borrar esta columna --- del maestro de empleados insert into plasalario select cia, empleado, fechaIngreso, 0, salarioActual, salarioActual, null, null, fechaIngreso, user from plaempleado e where not exists (select 1 from plasalario s where s.cia = e.cia and s.empleado = e.empleado); commit; alter table plaempleado drop (salarioActual); --- se modifica la tabla que calcula el libro de salarios alter table PLARESUMENSALTMP add (SalarioActual number(14,2) default 0 not null); --- LISTA DE OBJETOS MODIFICADOS A RAIZ DE ESTE CAMBIO --- PLANI.PLL = DEVENGADOS.salarioActual (nueva) --- PLANI.PLL = LIQUIDACION.Ingreso --- SE AGREGO UNA RUTINA EN EL PAQUETE "CALCPLA" DE LA --- BASE DE DATOS LLAMADA "SALARIOACTUAL" --- FIN CAMBIO 1 ######################################################################## ######################################################################## --- CAMBIO 2 --- Se elimino el campo "tarifa" de la tabla PLALABOR --- para crear una tabla detalle que permita tener un --- historico de tarifas create table PLATARIFALABOR ( cia CHAR(3) not null, labor VARCHAR2(6) not null, fecha DATE not null, tarifa NUMBER(14,2) not null, fechareg DATE not null, usuario VARCHAR2(30) not null, constraint PLATARIFALABOR_TARIFA_CK check (tarifa >= 0), constraint PLATARIFA_PK primary key (cia, labor, fecha) ); ALTER TABLE PLATARIFALABOR add constraint PlaLabor_TarifaLab_FK foreign key (cia, labor) references PlaLabor (cia, labor); -- OJO: recuperar tarifas antes de borrar la columna insert into plaTarifaLabor select cia, labor, sysdate, tarifa, sysdate, user from plalabor; commit; alter table plalabor drop (tarifa); --- agrega la tarifa a labores trabajadas --- para que sea consistente con las tablas de marcas y horas --- que guardan el salario x hora a la fecha del registro alter table plalaborestrab add (tarifa number(14,2) default 0 not null ); --- se pueden registrar fracciones de labores alter table plalaborestrab drop constraint PLALABORESTRAB_CANTIDAD_CK; alter table plalaborestrab add constraint PLALABORESTRAB_CANTIDAD_CK check (cantidad > 0); --- SE AGREGO UNA RUTINA EN EL PAQUETE "CALCPLA" DE LA --- BASE DE DATOS LLAMADA "TARIFAACTUAL" --- FIN CAMBIO 2 ########################################################################