Sunday, January 19, 2014

Head Meage Query in HRMS One Column Amt to Other Column Amount


--exec SPM_HEAD_MEARGE_A00001_TO_A00004

ALTER PROCEDURE [dbo].[SPM_HEAD_MEARGE_A00001_TO_A00004]
   
AS  
BEGIN  
 declare @PAY_REGI_M_MASTER_ID varchar(20);  
 declare @PAY_REGI_M_DTLS_ALLOW_ID char(6);  
 declare @PAY_BASIC_PER numeric(18, 2);  
 declare @PAY_REGI_M_DTLS_AMOUNT float;  
 declare @PAY_REGI_M_DTLS_CHGD_ID char(8);  
 declare @PAY_REGI_M_DTLS_CHGD_DATE datetime;  
 declare @PAY_REGI_M_DTLS_YEARLY_CAL varchar(1);  
 Declare @New_Allowance_Amount numeric(18,2);  
 declare @New_Allowance_Amount_Sum numeric(18,2);  
   
 Declare c1_log cursor for  
 select PAY_REGI_M_MASTER_ID,PAY_REGI_M_DTLS_ALLOW_ID,PAY_BASIC_PER,PAY_REGI_M_DTLS_AMOUNT  
   PAY_REGI_M_DTLS_CHGD_ID,PAY_REGI_M_DTLS_CHGD_ID,PAY_REGI_M_DTLS_CHGD_DATE,PAY_REGI_M_DTLS_YEARLY_CAL  
 from TBL_PAY_REGI_MASTER_DTLS  
   
 open c1_log;  
 fetch next from c1_log  
 into @PAY_REGI_M_MASTER_ID,  
   @PAY_REGI_M_DTLS_ALLOW_ID,  
   @PAY_BASIC_PER,  
   @PAY_REGI_M_DTLS_AMOUNT,  
   @PAY_REGI_M_DTLS_CHGD_ID,  
   @PAY_REGI_M_DTLS_CHGD_DATE,  
   @PAY_REGI_M_DTLS_YEARLY_CAL  
   
 while @@fetch_status = 0  
 BEGIN--while begin  
 
 
   if @PAY_REGI_M_DTLS_ALLOW_ID = 'A00001'  
   BEGIN--main if begin  
    set @New_Allowance_Amount = 2;  
    SELECT @New_Allowance_Amount = PAY_REGI_M_DTLS_AMOUNT from TBL_PAY_REGI_MASTER_DTLS    
    WHERE PAY_REGI_M_DTLS_ALLOW_ID = 'A00004' and PAY_REGI_M_MASTER_ID = @PAY_REGI_M_MASTER_ID  
    print @New_Allowance_Amount;  
    if @New_Allowance_Amount = 2  
    BEGIN    
     print 'If in';  
     INSERT into TBL_PAY_REGI_MASTER_DTLS  
        (PAY_REGI_M_MASTER_ID,  
         PAY_REGI_M_DTLS_ALLOW_ID,  
         PAY_BASIC_PER,  
         PAY_REGI_M_DTLS_AMOUNT,  
         PAY_REGI_M_DTLS_CHGD_ID,  
         PAY_REGI_M_DTLS_CHGD_DATE,  
         PAY_REGI_M_DTLS_YEARLY_CAL)    
     values  (@PAY_REGI_M_MASTER_ID,  
         'A00004',  
         0,  
         @PAY_REGI_M_DTLS_AMOUNT,  
         @PAY_REGI_M_DTLS_CHGD_ID,  
         @PAY_REGI_M_DTLS_CHGD_DATE,  
         @PAY_REGI_M_DTLS_YEARLY_CAL)  
     delete from TBL_PAY_REGI_MASTER_DTLS  
     where PAY_REGI_M_MASTER_ID = @PAY_REGI_M_MASTER_ID and  
       PAY_REGI_M_DTLS_ALLOW_ID = 'A00001'  
         
    END    
    ELSE  
    BEGIN  
     print 'Else in';  
     set @New_Allowance_Amount_Sum = 0;  
     set @New_Allowance_Amount_Sum = @New_Allowance_Amount + @PAY_REGI_M_DTLS_AMOUNT;  
     update TBL_PAY_REGI_MASTER_DTLS    
     set PAY_REGI_M_DTLS_AMOUNT = @New_Allowance_Amount_Sum    
     where PAY_REGI_M_MASTER_ID = @PAY_REGI_M_MASTER_ID AND  
        PAY_REGI_M_DTLS_ALLOW_ID = 'A00004'

delete from TBL_PAY_REGI_MASTER_DTLS  
     where PAY_REGI_M_MASTER_ID = @PAY_REGI_M_MASTER_ID and  
       PAY_REGI_M_DTLS_ALLOW_ID = 'A00001'  
    END  
   END--main if end  
 

 
 fetch next from c1_log  
 into @PAY_REGI_M_MASTER_ID,  
   @PAY_REGI_M_DTLS_ALLOW_ID,  
   @PAY_BASIC_PER,  
   @PAY_REGI_M_DTLS_AMOUNT,  
   @PAY_REGI_M_DTLS_CHGD_ID,  
   @PAY_REGI_M_DTLS_CHGD_DATE,  
   @PAY_REGI_M_DTLS_YEARLY_CAL  
 END--while end  
 close c1_log;  
 deallocate c1_log;  
-----

USE [HRMS_DB_RESTORE]
GO
/****** Object:  StoredProcedure [dbo].[SPM_HEAD_MEARGE_A00011_TO_A00051]    Script Date: 01/20/2014 13:06:59 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


--exec SPM_HEAD_MEARGE_A00011_TO_A00051

ALTER PROCEDURE [dbo].[SPM_HEAD_MEARGE_A00011_TO_A00051]
   
AS  
BEGIN  
 declare @PAY_REGI_M_MASTER_ID varchar(20);  
 declare @PAY_REGI_M_DTLS_ALLOW_ID char(6);  
 declare @PAY_BASIC_PER numeric(18, 2);  
 declare @PAY_REGI_M_DTLS_AMOUNT float;  
 declare @PAY_REGI_M_DTLS_CHGD_ID char(8);  
 declare @PAY_REGI_M_DTLS_CHGD_DATE datetime;  
 declare @PAY_REGI_M_DTLS_YEARLY_CAL varchar(1);  
 Declare @New_Allowance_Amount numeric(18,2);  
 declare @New_Allowance_Amount_Sum numeric(18,2);  
   
 Declare c1_log cursor for  
 select PAY_REGI_M_MASTER_ID,PAY_REGI_M_DTLS_ALLOW_ID,PAY_BASIC_PER,PAY_REGI_M_DTLS_AMOUNT  
   PAY_REGI_M_DTLS_CHGD_ID,PAY_REGI_M_DTLS_CHGD_ID,PAY_REGI_M_DTLS_CHGD_DATE,PAY_REGI_M_DTLS_YEARLY_CAL  
 from TBL_PAY_REGI_MASTER_DTLS  
   
 open c1_log;  
 fetch next from c1_log  
 into @PAY_REGI_M_MASTER_ID,  
   @PAY_REGI_M_DTLS_ALLOW_ID,  
   @PAY_BASIC_PER,  
   @PAY_REGI_M_DTLS_AMOUNT,  
   @PAY_REGI_M_DTLS_CHGD_ID,  
   @PAY_REGI_M_DTLS_CHGD_DATE,  
   @PAY_REGI_M_DTLS_YEARLY_CAL  
   
 while @@fetch_status = 0  
 BEGIN--while begin  
 
 
   if @PAY_REGI_M_DTLS_ALLOW_ID = 'A00011'  
   BEGIN--main if begin  
    set @New_Allowance_Amount = 1;  
    SELECT @New_Allowance_Amount = PAY_REGI_M_DTLS_AMOUNT from TBL_PAY_REGI_MASTER_DTLS    
    WHERE PAY_REGI_M_DTLS_ALLOW_ID = 'A00051' and PAY_REGI_M_MASTER_ID = @PAY_REGI_M_MASTER_ID  
    print @New_Allowance_Amount;  
    if @New_Allowance_Amount = 1  
    BEGIN    
     print 'If in';  
     INSERT into TBL_PAY_REGI_MASTER_DTLS  
        (PAY_REGI_M_MASTER_ID,  
         PAY_REGI_M_DTLS_ALLOW_ID,  
         PAY_BASIC_PER,  
         PAY_REGI_M_DTLS_AMOUNT,  
         PAY_REGI_M_DTLS_CHGD_ID,  
         PAY_REGI_M_DTLS_CHGD_DATE,  
         PAY_REGI_M_DTLS_YEARLY_CAL)    
     values  (@PAY_REGI_M_MASTER_ID,  
         'A00051',  
         0,  
         @PAY_REGI_M_DTLS_AMOUNT,  
         @PAY_REGI_M_DTLS_CHGD_ID,  
         @PAY_REGI_M_DTLS_CHGD_DATE,  
         @PAY_REGI_M_DTLS_YEARLY_CAL)  
     delete from TBL_PAY_REGI_MASTER_DTLS  
     where PAY_REGI_M_MASTER_ID = @PAY_REGI_M_MASTER_ID and  
       PAY_REGI_M_DTLS_ALLOW_ID = 'A00011'  
         
    END    
    ELSE  
    BEGIN  
     print 'Else in';  
     set @New_Allowance_Amount_Sum = 0;  
     set @New_Allowance_Amount_Sum = @New_Allowance_Amount + @PAY_REGI_M_DTLS_AMOUNT;  
     update TBL_PAY_REGI_MASTER_DTLS    
     set PAY_REGI_M_DTLS_AMOUNT = @New_Allowance_Amount_Sum    
     where PAY_REGI_M_MASTER_ID = @PAY_REGI_M_MASTER_ID AND  
        PAY_REGI_M_DTLS_ALLOW_ID = 'A00051'

delete from TBL_PAY_REGI_MASTER_DTLS  
     where PAY_REGI_M_MASTER_ID = @PAY_REGI_M_MASTER_ID and  
       PAY_REGI_M_DTLS_ALLOW_ID = 'A00011'  
    END  
   END--main if end  
 

 
 fetch next from c1_log  
 into @PAY_REGI_M_MASTER_ID,  
   @PAY_REGI_M_DTLS_ALLOW_ID,  
   @PAY_BASIC_PER,  
   @PAY_REGI_M_DTLS_AMOUNT,  
   @PAY_REGI_M_DTLS_CHGD_ID,  
   @PAY_REGI_M_DTLS_CHGD_DATE,  
   @PAY_REGI_M_DTLS_YEARLY_CAL  
 END--while end  
 close c1_log;  
 deallocate c1_log;  
   
   
   
   
END




    

No comments:

Post a Comment