`

学生缴费存储过程

 
阅读更多
create or replace procedure SFGL_XSJF (p_xh   in varchar2,
                                       p_xn   in varchar2,
                                       p_xf    in varchar2,
                                       p_zsf   in varchar2,
                                       p_ybf   in varchar2,
                                       p_qt     in varchar2,
                                       p_czr    in varchar2,
                                       o_errMsg out varchar2) is
  /**
  *  学生缴费情况
  *  功能:根据费用更新应缴费用表的'已缴费用'、'未缴费用'字段,同时插入缴费记录
  *  2015年11月17日
  *   p_xh 学号
  *   p_xn 学年
  *   p_xf 学费
  *   p_zsf 住宿费
  *   p_ybf 医保费
  *   p_qt 其他费用
  *   p_czr 当前操作人
  *   o_errMsg 返回出错信息
  */
  v_yjfyid sfgl_yjfy.yjfyid%TYPE; -- 应缴费用表的id
  v_fy sfgl_yjfy.fy%TYPE; -- 应缴费用表的应缴费用
  v_yjfy sfgl_yjfy.yjfy%TYPE; -- 应缴费用表的已缴费用
  v_wjfy sfgl_yjfy.wjfy%TYPE; -- 应缴费用表的未缴费用
  p_sx sfgl_yjfy.wjfy%TYPE; --- 缴纳其他费用剩下金额

begin
  ---学费不为空并且大于0
  if p_xf is not null and p_xf >0 then
    SELECT t.YJFYID,t.fy,t.yjfy,t.wjfy into v_yjfyid,v_fy,v_yjfy,v_wjfy FROM sfgl_yjfy t WHERE t.yjyh = (
    SELECT xsid FROM sfgl_xsxx WHERE xh=p_xh) and t.xn=p_xn and t.fylx='1';
   --更新应缴费用的'已缴费用'、'未缴费用'字段
   --缴纳学费大于等于未缴费用
     if p_xf-v_wjfy>= 0 and v_wjfy >0 then  
     update sfgl_yjfy t set t.YJFY = t.fy,t.wjfy =0,t.modified_time = sysdate WHERE YJFYID = v_yjfyid;
      --插入一条缴费数据到缴费记录表
        insert into sfgl_jfjl
          (JFJLID,YJFYID,JFLX,JE,SFDY,modified_Time,modified_By,create_Time,create_By)
        values
          (Xl_Sfgl_Jfjl.NEXTVAL,v_yjfyid,'1',to_number(v_fy-v_yjfy),'0',sysdate,p_czr,sysdate,p_czr);
      --缴纳学费小于未缴费用
      elsif p_xf-v_wjfy< 0 and v_wjfy >0 then 
      update sfgl_yjfy t set t.YJFY = t.YJFY+p_xf,t.wjfy =t.wjfy-p_xf,t.modified_time = sysdate WHERE YJFYID = v_yjfyid;
      --插入一条缴费数据到缴费记录表
        insert into sfgl_jfjl
          (JFJLID,YJFYID,JFLX,JE,SFDY,modified_Time,modified_By,create_Time,create_By)
        values
          (Xl_Sfgl_Jfjl.NEXTVAL,v_yjfyid,'1',p_xf,'0',sysdate,p_czr,sysdate,p_czr);
      end if;
  end if;
  
  
   ---住宿费不为空并且大于0
   if p_zsf is not null and p_zsf >0 then
    SELECT t.YJFYID,t.fy,t.yjfy,t.wjfy into v_yjfyid,v_fy,v_yjfy,v_wjfy FROM sfgl_yjfy t WHERE t.yjyh = (
    SELECT xsid FROM sfgl_xsxx WHERE xh=p_xh) and t.xn=p_xn and t.fylx='2';
   --更新应缴费用的'已缴费用'、'未缴费用'字段
   --缴纳住宿费大于等于未缴费用
     if p_zsf-v_wjfy>= 0 and v_wjfy >0 then  
     update sfgl_yjfy t set t.YJFY = t.fy,t.wjfy =0,t.modified_time = sysdate WHERE YJFYID = v_yjfyid;
      --插入一条缴费数据到缴费记录表
        insert into sfgl_jfjl
          (JFJLID,YJFYID,JFLX,JE,SFDY,modified_Time,modified_By,create_Time,create_By)
        values
          (Xl_Sfgl_Jfjl.NEXTVAL,v_yjfyid,'1',to_number(v_fy-v_yjfy),'0',sysdate,p_czr,sysdate,p_czr);
      --缴纳住宿费小于未缴费用
      elsif p_zsf-v_wjfy< 0 and v_wjfy >0 then 
      update sfgl_yjfy t set t.YJFY = t.YJFY+p_zsf,t.wjfy =t.wjfy-p_zsf,t.modified_time = sysdate WHERE YJFYID = v_yjfyid;
      --插入一条缴费数据到缴费记录表
        insert into sfgl_jfjl
          (JFJLID,YJFYID,JFLX,JE,SFDY,modified_Time,modified_By,create_Time,create_By)
        values
          (Xl_Sfgl_Jfjl.NEXTVAL,v_yjfyid,'1',p_zsf,'0',sysdate,p_czr,sysdate,p_czr);
     end if;
  end if;
  
  
   ---医保费不为空并且大于0
   if p_ybf is not null and p_ybf >0 then
    SELECT t.YJFYID,t.fy,t.yjfy,t.wjfy into v_yjfyid,v_fy,v_yjfy,v_wjfy FROM sfgl_yjfy t WHERE t.yjyh = (
    SELECT xsid FROM sfgl_xsxx WHERE xh=p_xh) and t.xn=p_xn and t.fylx='3';
   --更新应缴费用的'已缴费用'、'未缴费用'字段
   --缴纳医保费大于等于未缴费用
     if p_ybf-v_wjfy>= 0 and v_wjfy >0 then  
      update sfgl_yjfy t set t.YJFY = t.fy,t.wjfy =0,t.modified_time = sysdate WHERE YJFYID = v_yjfyid;
      --插入一条缴费数据到缴费记录表
        insert into sfgl_jfjl
          (JFJLID,YJFYID,JFLX,JE,SFDY,modified_Time,modified_By,create_Time,create_By)
        values
          (Xl_Sfgl_Jfjl.NEXTVAL,v_yjfyid,'1',to_number(v_fy-v_yjfy),'0',sysdate,p_czr,sysdate,p_czr);
       --缴纳医保费小于未缴费用
       elsif p_ybf-v_wjfy< 0 and v_wjfy >0 then 
       update sfgl_yjfy t set t.YJFY = t.YJFY+p_ybf,t.wjfy =t.wjfy-p_ybf,t.modified_time = sysdate WHERE YJFYID = v_yjfyid;
      --插入一条缴费数据到缴费记录表
        insert into sfgl_jfjl
          (JFJLID,YJFYID,JFLX,JE,SFDY,modified_Time,modified_By,create_Time,create_By)
        values
          (Xl_Sfgl_Jfjl.NEXTVAL,v_yjfyid,'1',p_ybf,'0',sysdate,p_czr,sysdate,p_czr);
      end if;
  end if;
  
  
   ---其他费不为空并且大于0
   if p_qt is not null and p_qt >0 then
    p_sx:=p_qt;
    for rec_qtfy in (SELECT t.* FROM sfgl_yjfy t WHERE t.yjyh = (
                     SELECT xsid FROM sfgl_xsxx WHERE xh=p_xh) and t.xn=p_xn and t.fylx='4') loop      
        --更新应缴费用的'已缴费用'、'未缴费用'字段
        --缴纳其他费用大于等于未缴费用
        if p_sx-rec_qtfy.wjfy>= 0 and p_sx>0 and rec_qtfy.wjfy > 0 then  
        update sfgl_yjfy t set t.YJFY = t.fy,t.wjfy =0,t.modified_time = sysdate 
        WHERE t.yjfyid = rec_qtfy.yjfyid;
        --插入一条缴费数据到缴费记录表
          insert into sfgl_jfjl
            (JFJLID,YJFYID,JFLX,JE,SFDY,modified_Time,modified_By,create_Time,create_By)
          SELECT Xl_Sfgl_Jfjl.NEXTVAL,YJFYID,'1',rec_qtfy.fy-rec_qtfy.yjfy,'0',sysdate,p_czr,sysdate,p_czr
           FROM sfgl_yjfy WHERE yjfyid = rec_qtfy.yjfyid;
        --缴纳其他费用小于未缴费用
        elsif p_sx-rec_qtfy.wjfy< 0 and p_sx>0 and rec_qtfy.wjfy > 0 then
         update sfgl_yjfy t set t.YJFY = t.YJFY+p_sx,t.wjfy =t.wjfy-p_sx,t.modified_time = sysdate 
        WHERE t.yjfyid = rec_qtfy.yjfyid;
        --插入一条缴费数据到缴费记录表
          insert into sfgl_jfjl
            (JFJLID,YJFYID,JFLX,JE,SFDY,modified_Time,modified_By,create_Time,create_By)
          SELECT Xl_Sfgl_Jfjl.NEXTVAL,YJFYID,'1',p_sx,'0',sysdate,p_czr,sysdate,p_czr
           FROM sfgl_yjfy WHERE yjfyid = rec_qtfy.yjfyid;
        end if;
        p_sx :=p_sx-(rec_qtfy.fy-rec_qtfy.yjfy); --剩下费用
    end loop;
  end if;

exception
     when others then
       --o_errMsg:=o_errMsg||':程序运行出现内部错误,请联系管理员。'||dbms_utility.format_error_backtrace()||'---'||SQLCODE||'---'||SQLERRM;
       o_errMsg  := '执行失败';
       rollback;
end SFGL_XSJF;

 --摘自缴费

分享到:
评论

相关推荐

    高校学生缴费系统

    【高校学生缴费系统】是一个基于C#编程语言开发的应用程序,旨在为高校提供便捷的学生缴费与信息查询服务。系统的核心功能包括学生的学费缴纳、个人信息管理以及财务数据的查询与统计,旨在提高高校财务管理效率,...

    学生缴费管理系统学生缴费管理系统.doc

    该系统的数据库实现主要包括三个方面:学生缴费管理信息系统的数据库设计、数据存储和数据查询。学生缴费管理信息系统的数据库设计需要根据系统的逻辑设计和数据流程来确定数据库的结构和关系。数据存储是系统中最...

    数据库课程设计报告-学生缴费系统.doc

    学生缴费系统是一个典型的数据库应用案例,它涉及到学校信息管理的核心环节——学费的收取与管理。在信息化的时代背景下,这样的系统可以极大地提升学校的运营效率,减少人为错误,优化资源分配。 一、系统功能需求...

    数据库课设报告学生缴费注册管理系统-毕业论文.doc

    3. 应用 Eclipse 开发工具实践《学生缴费注册管理系统》的数据库应用系统的设计方法、开发过程和 MySQL SERVER 数据库的管理与维护。 4. 掌握数据库管理系统的使用和开发。 5. 提高分析问题、解决问题和实践应用能力...

    需求规格说明书学生缴费系统.doc

    系统的主要目的是简化学生缴费过程,提高财务管理效率,通过自动化流程减少工作量,并提供准确、实时的缴费状态信息。目标包括实现线上缴费、自动统计报表、异常处理等功能。 1.3 相关文档 本需求规格说明书是开发...

    交纳罚金存储过程.txt

    具体而言,该存储过程通过接受学生的ID以及缴纳的罚款金额作为输入参数,查询该学生的当前罚款余额,并进行扣减操作。如果查询不到任何罚款数据,则输出提示信息“YOUR FINES IS ZERO”;若发生其他异常,则输出...

    课程设计学生缴费管理系统.zip

    《课程设计:构建学生缴费管理系统》 在信息技术日益发达的今天,学生缴费管理系统的开发已经成为教育机构现代化管理的重要组成部分。本课程设计旨在让学生通过实践,理解并掌握如何构建一个高效、便捷的学生缴费...

    学生缴费系统设计zip

    在设计一个学生缴费系统时,我们需要考虑多个关键知识点,这些知识点涵盖了软件工程的各个阶段,包括需求分析、系统设计、数据库设计、编程实现以及测试。以下是对这些关键知识点的详细阐述: 1. 需求分析:首先,...

    基于SSM食堂缴费系统

    用户可以进行缴费查询,这一功能可能包括查看历史缴费记录、待缴费用以及缴纳过程的查询。同时,用户还可以修改自己的密码,以确保账户安全。密码修改通常涉及身份验证、旧密码校验和新密码加密存储等步骤。 管理员...

    基于C#的高校学费缴费系统

    1. **学生信息管理**:系统需要存储和管理学生的个人信息,如学号、姓名、专业等,这涉及到数据库表的设计和SQL查询操作。可能使用到的SQL语句有INSERT、UPDATE、DELETE以及SELECT,用于添加、修改、删除和查询学生...

    VB学生交费管理系统设计(源代码+系统+开题报告)毕业设计—(包含完整源码可运行).rar

    数据库是系统的重要组成部分,用于存储和管理学生信息和缴费记录。通常会选择Access或SQL Server等数据库管理系统,通过ADO.NET库进行数据交互。在VB中,可以使用DataGrid控件显示数据库中的数据,并通过Command对象...

    ASP实例开发源码—25175 学校学生报名缴费管理系统.zip

    4. **数据库连接**:ASP系统通常与数据库如Access、SQL Server等进行交互,用于存储和检索学生信息、课程数据、缴费记录等。在这个系统中,可能使用了ADO(ActiveX Data Objects)来建立和管理数据库连接。 5. **...

    数据库课程设计-学生公寓管理系统的设计与实现

    例如,在学生公寓管理系统中,可能会存在一个存储过程用于处理学生的入住和退宿流程,确保数据的一致性和完整性。 其次,触发器是一种在特定事件(如INSERT、UPDATE、DELETE)发生时自动执行的数据库对象,它可以...

    数据库课程设计 学生信息管理系统

    学生信息管理系统是一个典型的管理信息系统(MIS),在IT领域中,这类系统被广泛应用于教育、企业和其他组织,用于高效地存储、检索和管理与学生相关的数据。在这个项目中,我们看到它采用VB(Visual Basic)作为...

    学生信息管理系统项目开发总结报告.pdf

    缴费管理包括学生缴费标准、学生缴费、学生缴费查询等几个方面。管理员可以对学生的缴费信息进行管理,包括标准设置、缴费、查询等。 系统实现 系统实现包括服务器端 API 的实现、客户端的实现和数据库的实现。...

    水电缴费系统,毕业论文设计

    数据库方面,通常会选择SQL Server或MySQL来存储用户信息和缴费记录。 在进行毕业论文设计时,学生需要深入研究这些技术,理解其工作原理,并将它们有效地整合到水电缴费系统中。此外,论文中还需讨论系统的架构...

    学生信息管理系统java课程设计(含源代码).doc

    设计和实现这个系统的过程中,学生将深化对Java编程的理解,掌握数据库管理和用户界面设计,同时提升问题解决和团队协作的能力。 六、参考文献 报告引用了相关资料,提供了进一步学习和研究的资源。 总的来说,这...

    综合缴费系统c#2005

    3. **SQL Server 2000**:作为数据库管理系统,SQL Server 2000用于存储和管理缴费信息。开发者可能使用T-SQL(Transact-SQL)编写查询语句,以实现数据的增删改查操作。同时,数据库事务管理、安全性、性能优化等也...

    VB高校缴费系统设计(论文+源代码+外文翻译+文献综述).zip

    这个系统设计的核心是实现高校学生缴费功能的自动化,提高财务管理效率,减少人为错误。 1. **VB简介**:VB是微软公司开发的一种可视化的、面向对象的编程语言,是Visual Studio家族的一员。它以其简洁的语法和强大...

    学校收费管理系统(MFC制作)

    3. **缴费记录管理**:系统应能记录每个学生的缴费情况,包括缴费时间、金额、剩余欠款等,同时支持打印缴费单据。 4. **报表生成与统计**:提供统计分析功能,例如按学期、年级、班级统计总收费、平均收费、欠费...

Global site tag (gtag.js) - Google Analytics