You are on page 1of 4

----------------Asignacion Familiar ---------------------------------------------------------------create proc ASIGNACION as declare curA43 cursor for select p.codigo_per,p.

asigfamiliar_per from personal p open curA43 declare @cper char(8),@monto numeric(9,2) fetch next from curA43 into @cper, @monto while(@@fetch_status=0) begin insert into detalleplanilla(codigo_plla,codigo_per,codigo_cplla,mon to) values('3',@cper,'43',@monto) fetch next from curA43 into @cper, @monto end close curA43 deallocate curA43 go exec ASIGNACION --------------Aporte ------------------------------------------------------------------create proc APORTE as declare curA10 cursor for select p.codigo_per,(p.salariobasico_per*(porcentaje_aporte_afp/100)) from pe rsonal p inner join afp a on a.codigo_afp=p.codigo_afp open curA10 declare @cper char(8),@monto numeric(9,2) fetch next from curA10 into @cper, @monto while(@@fetch_status=0) begin if @monto is null set @monto=0 insert into detalleplanilla(codigo_plla,codigo_per,codigo_cplla,mon to) values('3',@cper,'10',@monto) fetch next from curA10 into @cper, @monto end close curA10 deallocate curA10 go exec APORTE --------------------------Seguro --------------------------------------------------------------------create proc SEGURO as declare curA11 cursor for select p.codigo_per,(p.salariobasico_per*(porcentaje_seguro_afp/100)) from pe rsonal p inner join afp a on a.codigo_afp=p.codigo_afp open curA11 declare @cper char(8),@monto numeric(9,2) fetch next from curA11 into @cper, @monto while(@@fetch_status=0) begin

if @monto is null set @monto=0 insert into detalleplanilla(codigo_plla,codigo_per,codigo_cplla,mon to) values('3',@cper,'11',@monto) fetch next from curA11 into @cper, @monto end close curA11 deallocate curA11 go exec SEGURO ---------------------------Comisin -------------------------------------------------------------------------------create proc COMISION as declare curA12 cursor for select p.codigo_per,(p.salariobasico_per*(porcentaje_comision_afp/100)) from personal p inner join afp a on a.codigo_afp=p.codigo_afp open curA12 declare @cper char(8),@monto numeric(9,2) fetch next from curA12 into @cper, @monto while(@@fetch_status=0) begin if @monto is null set @monto=0 insert into detalleplanilla(codigo_plla,codigo_per,codigo_cplla,mon to) values('3',@cper,'12',@monto) fetch next from curA12 into @cper, @monto end close curA12 deallocate curA12 go exec COMISION ---------------------------------------------------------------------------------------------------------------------create proc CursorFinal as declare curEmp cursor for select distinct a.codigo_per,rtrim(apellidopat_per)+' '+rtrim(apellidoma t_per)+' '+rtrim(nombres_per) as empleado,datename(mm,p.fechafin_plla),year(p.fe chafin_plla) from personal a inner join detalleplanilla dp on dp.codigo_per=a.codigo_per inner join planilla p on p.codigo_plla=dp.codigo_plla where p.codigo_plla=3 open curEmp declare @idem char(9), @empleado varchar(40),@mes varchar(20),@ao int fetch next from curEmp into @idem, @empleado,@mes,@ao while(@@fetch_status=0) begin print SPACE(15)+'BOLETA DE PAGO' print ' ' print 'Empleado: '+@empleado+space(35-len(@empleado))+'Periodo: '+@mes+s pace(7-len(@mes))+cast(@ao as char(5)) print space(45) +'Fecha impresin'+ convert(char(10),getdate(),103) print ' ' --2curso--declare ingresos cursor for

select cp.descripcion_cplla,dp.monto from conceptosplanilla cp inner join detalleplanilla dp on dp.codigo_cplla=cp.codigo_cplla inner join personal p on p.codigo_per=dp.codigo_per where p.codigo_per=@idem and tipo_cplla='I' open ingresos declare @ingre varchar(40), @monto numeric(9,2) declare @total numeric(9,2) set @total=0 fetch next from ingresos into @ingre,@monto while(@@fetch_status=0) begin set @total=@total+@monto--Acumulador total anual print space(5)+@ingre+space(40-len(@ingre))+cast(@monto as char( 8)) fetch next from ingresos into @ingre,@monto end print space(43)+replicate('-',10) print space(5)+'TOTAL ingresos '+cast(@total as char(8)) print ' ' print ' ' close ingresos deallocate ingresos --fin2 cursor-declare egresos cursor for select cp.descripcion_cplla,dp.monto from conceptosplanilla cp inner join detalleplanilla dp on dp.codigo_cplla=cp.codigo_cplla inner join personal p on p.codigo_per=dp.codigo_per where p.codigo_per=@idem and tipo_cplla='E' open egresos declare @egre varchar(40), @monto1 numeric(9,2) declare @total1 numeric(9,2) set @total1=0 fetch next from egresos into @egre,@monto1 while(@@fetch_status=0) begin set @total1=@total1+@monto1--Acumulador total anual print space(5)+@egre+space(40-len(@egre))+cast(@monto1 as char(8 )) fetch next from egresos into @egre,@monto1 end print space(43)+replicate('-',10) print space(5)+'TOTAL Egresos '+cast(@total1 a s char(8)) print ' ' close egresos deallocate egresos ------suma total--declare @total3 numeric(9,2) set @total3=sum(cast(@total as numeric(9,2))-cast(@total1 as numeric(9,2))) print space(5)+'Neto a pagar: '+cast(@total3 as char(8)) print ' ' ------fin------------fetch next from curEmp into @idem, @empleado,@mes,@ao end close curEmp deallocate curEmp go exec CursorFinal

You might also like