/*******************************************************      
--TYPE: SPECIALLY DESIGNATED IN ONE COUNTRY (CHINA)      
--DETAIL: 处理资产变卖   
--CREATE: 2006/12/26 ; WAN CHENG JIAN  
--REVISION1:       
--REVISION2:   
--REVISION3:   
*******************************************************/      
ALTER   PROC ZDC_SP_ADEAL_WITH_CH_FG @CO_CD VARCHAR(4),@DIV_CD VARCHAR(4),@F_MM VARCHAR(6),@T_MM VARCHAR(6)    
AS    
BEGIN    
  DECLARE CURSOR1 CURSOR FOR    
    SELECT CO_CD,ASSET_CD,SEQ_NB,CHG_DT    
    FROM   ASSET_D    
    WHERE  CO_CD = @CO_CD AND CHG_FG = 2 AND SUBSTRING(CHG_DT,1,6) < = @T_MM AND SUBSTRING(CHG_DT,1,4) = SUBSTRING(@F_MM,1,4)    
      
  DECLARE @LCO_CD VARCHAR(4)    
  DECLARE @LASSET_CD VARCHAR(10)    
  DECLARE @LSEQ_NB NUMERIC(5,0)    
  DECLARE @LCHG_DT VARCHAR(8)    
  DECLARE @LPRE_AM NUMERIC(17,4)    
  DECLARE @LPRE_DAM NUMERIC(17,4)    
  DECLARE @LCUR_DAM NUMERIC(17,4)      
    
    
  OPEN CURSOR1    
  FETCH NEXT FROM CURSOR1 INTO @LCO_CD,@LASSET_CD,@LSEQ_NB,@LCHG_DT    
  WHILE @@FETCH_STATUS = 0    
   BEGIN    
     --yuanzhi    
     SET @LPRE_AM = 0    
     SELECT @LPRE_AM = SUM(GET_AM)    
     FROM     
      (SELECT ASSET_CD ,GET_AM  FROM   ASSET      
       WHERE  CO_CD = @LCO_CD AND SUBSTRING(GET_DT,1,6) < SUBSTRING(@LCHG_DT,1,6) AND ASSET_CD = @LASSET_CD    
       UNION      
       SELECT ASSET_CD,(CASE  WHEN CHG_FG = 0 THEN CHG_AM  ELSE  (-1* CHG_AM) END ) AS CHG_AM     
       FROM ASSET_D     
       WHERE CO_CD = @LCO_CD AND SUBSTRING(CHG_DT,1,6) <=SUBSTRING(@LCHG_DT,1,6) AND ASSET_CD = @LASSET_CD ) AS A1    
     
     SET @LPRE_AM = ISNULL(@LPRE_AM,0)    
         
     SELECT @LPRE_DAM = 0,@LCUR_DAM = 0    
    
     SELECT @LPRE_DAM = PRE_DAM    
     FROM   ADPREY    
     WHERE  CO_CD = @LCO_CD AND ASSET_CD = @LASSET_CD     
     AND GISU = (SELECT GISU + (CAST(SUBSTRING(@LCHG_DT,1,4) AS INT)-(CAST(SUBSTRING(FR_DT,1,4) AS INT)))FROM SCO WHERE CO_CD = @LCO_CD)     
         
     SELECT @LCUR_DAM = PRE_DAM + CUR_DAM    
     FROM   ADPREM     
     WHERE  CO_CD = @LCO_CD AND ASSET_CD = @LASSET_CD AND DPRE_YM = SUBSTRING(@LCHG_DT,1,6)    
     /*  
     SELECT @LCUR_DAM = @LPRE_AM - ISNULL(@LPRE_DAM,0) - ISNULL(@LCUR_DAM,0)    
     --SELECT * FROM ASSET_D    
     UPDATE ASSET_D     
     SET CHG_AM = @LCUR_DAM    
     WHERE  CO_CD = @LCO_CD AND ASSET_CD = @LASSET_CD AND SEQ_NB = @LSEQ_NB    
     */  
     UPDATE ASSET_D     
     SET CHG_AM = @LPRE_AM,CHG_DAM = ISNULL(@LPRE_DAM,0) + ISNULL(@LCUR_DAM,0),CHG_DOC = '资产变卖/报废'    
     WHERE  CO_CD = @LCO_CD AND ASSET_CD = @LASSET_CD AND SEQ_NB = @LSEQ_NB  
     UPDATE ADPREM  
     SET    DROP_DAM = ISNULL(@LPRE_DAM,0) + ISNULL(@LCUR_DAM,0),DROP_AM = @LPRE_AM  
     WHERE  CO_CD = @LCO_CD AND ASSET_CD = @LASSET_CD AND DPRE_YM = LEFT(@LCHG_DT,6)  
         
     FETCH NEXT FROM CURSOR1 INTO @LCO_CD,@LASSET_CD,@LSEQ_NB,@LCHG_DT    
   END      
   CLOSE CURSOR1    
   DEALLOCATE CURSOR1    
END