CREATE OR REPLACE procedure sp_bms_updateBugInfo(piBugId number,
  psTitle varchar,
    psDescripiton varchar,
    piStatus number,
  piType number,
  piLevel number,
  piSystem number,
  piModule number, 
  piResolverId number,
      psExpectResolveDate varchar,  
      psActualResolveDate varchar,
      psResolveDesc varchar,
      piOwnerId number,
      piValidatePersonId number,
      psValidateDate varchar,
      psValidateDesc varchar,
  psAttachmentIdList varchar) as   
liResolverId number;
ldExpectResolveDate date := null;
ldActualResolveDate date := null;
lsResolveDesc varchar2(2000) := null;
liValidatePersonId number; 
ldValidateDate date := null; 
lsValidateDesc varchar2(2000) := null; 
lsAttachmentIdList varchar(100) := null; 
loldStatus number;


/*Description: 修改BUG信息,
  History:     20050713 Liangjm create
*/

begin   
begin

select iStatus,iResolverId,dActualResolveDate,iValidatePersonId,dValidateDate,sAttachmentIdList
into loldStatus,liResolverId,ldActualResolveDate,liValidatePersonId,ldValidateDate,lsAttachmentIdList 
from tbl_bms_bug 
where iBugId = piBugId;

    if psExpectResolveDate is not null then
     ldExpectResolveDate := to_date(psExpectResolveDate,'yyyy-mm-dd');
    end if;
    
    if psResolveDesc is not null then
        lsResolveDesc := psResolveDesc;
    end if;  
             
    if psValidateDesc is not null then
     lsValidateDesc := psValidateDesc;
    end if;
             
    if psAttachmentIdList is not null then
     lsAttachmentIdList := psAttachmentIdList;
    end if;    
    
    if piStatus = 2 and piStatus != loldStatus then 
        ldActualResolveDate := sysdate;  
        liResolverId := piResolverId;
    end if;
    
    if (piStatus = 3 or piStatus = 4) and piStatus != loldStatus then 
        ldValidateDate := sysdate; 
        liValidatePersonId := piValidatePersonId;
    end if;
    
    update tbl_bms_bug 
     set sTitle = psTitle,
    sDescription = psDescripiton,
    iStatus = piStatus,
    iTypeId = piType,
    iLevel = piLevel,
                iSystem = piSystem,
                iModule = piModule,  
                iResolverId = liResolverId, 
                dActualResolveDate = ldActualResolveDate,   
                sResolveDescription = lsResolveDesc,
                iOwnerId = piOwnerId,
                iValidatePersonId = liValidatePersonId, 
                dValidateDate = ldValidateDate,
                sValidateDescription = lsValidateDesc,  
                sAttachmentIdList = lsAttachmentIdList 
where iBugId = piBugId;
commit; exception when others then   
rollback;
end;
end;
/