zoukankan      html  css  js  c++  java
  • 存储过程(工作随笔)审核退单

    USE [420923_2013]
    GO
    /****** Object:  StoredProcedure [dbo].[Pro_MzCheck]    Script Date: 01/29/2013 10:46:14 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO

    ALTER PROCEDURE [dbo].[Pro_MzCheck]
      @Flag varchar(1),   /*类别1一级审核;2二级审核;3转入历史库;4一级审核退单;5二级审核退单;6历史数据退单;7删除*/
      @BillCode varchar(12),
      @BillNo int
    AS
    begin
    declare @Count int;
    declare @v_CoopMedCode varchar(12);  /**/
    declare @v_CheckFee numeric(8,2);  /**/
    declare @Sql varchar(5000)
      --一级审核
      if @Flag = '1'
     update o_CbMzBxDj  set CheckerCode1=b.CheckerCode1,CheckerName1=b.CheckerName1,CheckDate1=getdate(),CheckOneFee=b.CheckOneFee,CheckRemark1=b.CheckRemark1
      from o_CbMzBxDj a,#O_CheckOne_Mz b
      where a.OrgCode=b.OrgCode and a.DiagNo=b.DiagNo and a.CoopMedCode=b.CoopMedCode and a.IDNo=b.IDNo;

      --二级审核
      if @Flag = '2'
      begin
     update o_CbMzBxDj  set CheckerCode=b.CheckerCode,CheckerName=b.CheckerName,CheckDate2=getdate(),CheckFee=b.CheckFee,CheckRemark2=b.CheckRemark2
      from o_CbMzBxDj a,#O_CheckTwo_Mz b
       where a.OrgCode=b.OrgCode and a.DiagNo=b.DiagNo and a.CoopMedCode=b.CoopMedCode and a.IDNo=b.IDNo;
      end;
      --转入历史库
      if @Flag = '3'
      begin
    -- BEGIN TRANSACTION
            set @Sql='
     insert s_CbMzZdb(BillCode,BillNo,BillName,WriteDate,Fee,CanFreeFee,CheckFee1,CheckFee,CheckStatus,PrincipalName,DebitID)
     select BillCode,BillNo,BillName,WriteDate,Fee,CanFreeFee,CheckFee1,CheckFee,CheckStatus,PrincipalName,null
      from O_CbMzZdb where BillCode='''+@BillCode+''' and BillNo='+cast(@BillNo as varchar(4));
            print @Sql
            exec(@Sql)

            set @Sql='
     insert s_CbMzbxdj(OrgCode,CoopMedCode,IDNo,DiagNo,ExpenseKind,HospitalCode,HospitalName,PatientName,HouseHolder,
      Sex,Age,AgeUnit,InDate,IllCode,IllName,TotalFee,CanFreeFee,FreeFee,DoctorName,InputerCode,InputerName,
      InputDate,CheckerCode1,CheckerName1,CheckOneFee,CheckDate1,CheckRemark1,CheckerCode,CheckerName,
      CheckFee,CheckDate2,CheckRemark2,Remark,InterfaceIn,BillCode,BillNo,AreaCode,MzFlag)
     select OrgCode,CoopMedCode,IDNo,DiagNo,ExpenseKind,HospitalCode,HospitalName,PatientName,HouseHolder,
      Sex,Age,AgeUnit,InDate,IllCode,IllName,TotalFee,CanFreeFee,FreeFee,DoctorName,InputerCode,InputerName,
      InputDate,CheckerCode1,CheckerName1,CheckOneFee,CheckDate1,CheckRemark1,CheckerCode,CheckerName,
      CheckFee,CheckDate2,CheckRemark2,Remark,InterfaceIn,BillCode,BillNo,AreaCode,MzFlag
     from o_CbMzbxdj where BillCode='''+@BillCode+''' and BillNo='+cast(@BillNo as varchar(4));
            print @Sql
            exec(@Sql)
     
     delete from O_CbMzbxdj where BillCode=@BillCode and BillNo=@BillNo;

     delete from O_CbMzZdb where BillCode=@BillCode and BillNo=@BillNo
    /* COMMIT TRANSACTION;
     IF (@@ERROR <> 0 )
     BEGIN
              RAISERROR('error',16,1 )
              ROLLBACK TRANSACTION
     END 
    */
      end;
      --一级审核退单
      if @Flag = '4'
      begin
    -- update o_CbMzBxDj set CheckerCode1=null,CheckerName1=null,CheckDate1=null,CheckOneFee=0,CheckRemark1=null
    --  where BillCode=@BillCode and BillNo=@BillNo;
     update O_CbMzZdb set CheckFee1=0,CheckStatus='9' where BillCode=@BillCode and BillNo=@BillNo;
      end;
      --二级审核退单
      if @Flag = '5'
      begin
    -- update o_CbMzBxDj set CheckerCode1=null,CheckerName1=null,CheckDate1=null,CheckOneFee=0,CheckRemark1=null,
    --  CheckerCode=null,CheckerName=null,CheckDate2=null,CheckFee=0,CheckRemark2=null 
    --  where BillCode=@BillCode and BillNo=@BillNo;
     update O_CbMzZdb set CheckFee1=0,CheckFee=0,CheckStatus='9' where BillCode=@BillCode and BillNo=@BillNo;
      end;
      --历史数据退单
      if @Flag = '6'
      begin
     BEGIN TRANSACTION
     --插入O_CbMzZdb\O_CbMzbxdj
     insert O_CbMzZdb(BillCode,BillNo,BillName,WriteDate,Fee,CanFreeFee,CheckFee1,CheckFee,CheckStatus,PrincipalName)
     select BillCode,BillNo,BillName,WriteDate,Fee,CanFreeFee,CheckFee1,CheckFee,CheckStatus,PrincipalName 
      from s_CbMzZdb where BillCode=@BillCode and BillNo=@BillNo;

     insert O_CbMzbxdj(OrgCode,CoopMedCode,IDNo,DiagNo,ExpenseKind,HospitalCode,HospitalName,PatientName,HouseHolder,
      Sex,Age,AgeUnit,InDate,IllCode,IllName,TotalFee,CanFreeFee,FreeFee,DoctorName,InputerCode,InputerName,
      InputDate,CheckerCode1,CheckerName1,CheckOneFee,CheckDate1,CheckRemark1,CheckerCode,CheckerName,
      CheckFee,CheckDate2,CheckRemark2,Remark,InterfaceIn,BillCode,BillNo,AreaCode,MzFlag)
     select OrgCode,CoopMedCode,IDNo,DiagNo,ExpenseKind,HospitalCode,HospitalName,PatientName,HouseHolder,
      Sex,Age,AgeUnit,InDate,IllCode,IllName,TotalFee,CanFreeFee,FreeFee,DoctorName,InputerCode,InputerName,
      InputDate,CheckerCode1,CheckerName1,CheckOneFee,CheckDate1,CheckRemark1,CheckerCode,CheckerName,
      CheckFee,CheckDate2,CheckRemark2,Remark,InterfaceIn,BillCode,BillNo,AreaCode,MzFlag
     from s_CbMzbxdj where BillCode=@BillCode and BillNo=@BillNo;
     --删除s_CbMzbxdj\s_CbMzZdb
     delete from s_CbMzbxdj where BillCode=@BillCode and BillNo=@BillNo;
     delete from s_CbMzZdb where BillCode=@BillCode and BillNo=@BillNo
     --更新O_CbMzZdb\O_CbMzbxdj
    -- update o_CbMzBxDj set CheckerCode1=null,CheckerName1=null,CheckDate1=null,CheckOneFee=0,CheckRemark1=null,
    --  CheckerCode=null,CheckerName=null,CheckDate2=null,CheckFee=0,CheckRemark2=null 
    --  where BillCode=@BillCode and BillNo=@BillNo;
     update O_CbMzZdb set CheckStatus='3' where BillCode=@BillCode and BillNo=@BillNo;
     COMMIT TRANSACTION;
     IF (@@ERROR <> 0 )
     BEGIN
              RAISERROR('error',16,1 )
              ROLLBACK TRANSACTION
     END 
      end;
      --删除
      if @Flag = '7'
      begin
     BEGIN TRAN
     update p_cbnhzhxx set HomeAccount=HomeAccount+ ss.FreeFee
      from p_cbnhzhxx a,(select b.coopmedcode,sum(b.FreeFee) as FreeFee 
      from p_cbnhzhxx a,o_CbMzBxDj b
      where a.coopmedcode=b.coopmedcode and b.BillCode=@BillCode and b.BillNo=@BillNo
      group by b.coopmedcode) ss
      where a.coopmedcode=ss.coopmedcode
     delete from O_CbMzbxdj where BillCode=@BillCode and BillNo=@BillNo;
     delete from O_CbMzZdb where BillCode=@BillCode and BillNo=@BillNo;
     COMMIT TRANSACTION;
     IF (@@ERROR <> 0 )
     BEGIN
              RAISERROR('error',16,1 )
              ROLLBACK TRANSACTION
     END 
      end;
    end

  • 相关阅读:
    ZJOI2019二轮游记
    Luogu P5284 [十二省联考2019]字符串问题
    Luogu P5309 [Ynoi2012]D1T1
    Luogu P5292 [HNOI2019]校园旅行
    LOJ #6052. 「雅礼集训 2017 Day11」DIV
    Luogu P5279 [ZJOI2019]麻将
    LOJ #6060. 「2017 山东一轮集训 Day1 / SDWC2018 Day1」Set
    Luogu P5283 [十二省联考2019]异或粽子
    Luogu P5290 [十二省联考2019]春节十二响
    Luogu P5285 [十二省联考2019]骗分过样例
  • 原文地址:https://www.cnblogs.com/520cc/p/2881032.html
Copyright © 2011-2022 走看看