限额类费用报销单N+1原则
--添加通过自定义档案列表编码及档案编码查询主键
select bd_defdoc.pk_defdoc as defdoc --查询限额类费用类型主键
from bd_defdoc, bd_defdoclist
where bd_defdoc.pk_defdoclist = bd_defdoclist.pk_defdoclist
and bd_defdoclist.code = 'F003'--费用类型自定义档案列表编码
and bd_defdoc.code = '';--限额类费类型编码
--根据单据车辆名称主键查该车辆是否控制限额
select (case
when (bd_defdoc.shortname = '实报实销') then --不限额车辆简称标识
'false'
else
'true'
end) as islimitcar
from bd_defdoc, bd_defdoclist
where nvl(bd_defdoc.dr, 0) = 0
and nvl(bd_defdoclist.dr, 0) = 0
and bd_defdoc.pk_defdoclist = bd_defdoclist.pk_defdoclist
and bd_defdoclist.code = 'F057' --车辆信息自定义档案
and bd_defdoc.pk_defdoc = '1001H210000000HHSNQY' ; --car_name对应的pk, select name from bd_defdoc where pk_defdoc = '1001H210000000HHSNQY';
--查询会计月
select yearmth from bd_accperiodmonth where pk_accperiodmonth = '1001H2100000004ZIBPZ' ; --period
--车辆本期可报销金额N+1
select sum(erm_car_limit_b.limit_e) as car_limit_e,
sum(erm_car_limit_b.limit_l) as car_limit_l
from erm_car_limit_b, erm_car_limit
where nvl(erm_car_limit_b.dr, 0) = 0
and nvl(erm_car_limit.dr, 0) = 0
and erm_car_limit_b.pk_car_limit = erm_car_limit.pk_car_limit
and erm_car_limit.kjni = ''
and erm_car_limit.car = '1001H210000000HHSNQY'
and erm_car_limit_b.kjy <= 7; --month=6,b.kjy <= 7;这样子处理在12月份的时候即使是13也不用做特殊处理,因为也是统计到12个月的金额
-- 查询本月车辆限额量
select erm_car_limit_b.limit_e as car_limit_e,
erm_car_limit_b.limit_l as car_limit_l
from erm_car_limit_b, erm_car_limit
where nvl(erm_car_limit_b.dr, 0) = 0
and nvl(erm_car_limit.dr, 0) = 0
and erm_car_limit_b.pk_car_limit = erm_car_limit.pk_car_limit
and erm_car_limit.kjni = ''
and erm_car_limit.car = '1001H210000000HHSNQY' --PK_Car=1001H210000000HHSNQY
and erm_car_limit_b.kjy = ''
--限额已执行量
SELECT nvl(SUM(case
when er_busitem.defitem12 = '1001H21000000042XVC6' then
0
else
er_busitem.amount
end),
0) amount
from er_busitem
LEFT outer JOIN er_bxzb
ON er_bxzb.pk_jkbx = er_busitem.pk_jkbx
LEFT outer JOIN bd_accperiodmonth mon
ON mon.pk_accperiodmonth = er_busitem.DEFITEM16
where er_busitem.tablecode = 'arap_bxbusitem'
-- AND er_bxzb.djzt != 0
AND er_bxzb.djzt != -1 --不包含作废数据
AND er_busitem.pk_jkbx != 'null'
AND er_busitem.defitem24 = '1001H210000000HHSNQY' --PK_Car=1001H210000000HHSNQY
AND mon.yearmth LIKE '2016%' --YEAR=2016
AND er_busitem.dr = 0
-- AND er_bxzb.djbh != '" + djbh + "'; --修改增加如果单据存在单据编号,则表示是已保存的单据,计算执行量时扣去本带锯的执行量(本单据执行量在表体行字段扣除) --select def.name from bd_defdoc def where def.pk_defdoc = '1001H21000000042XVC6';
--er_bxzb
--实体 md_class
select * from md_class where defaulttablename ='er_bxzb'
--实体属性 md_property
select * from md_property where classid ='45a846ce-5f39-4075-8cb9-90de50517af4'and displayname ='单据状态'
--枚举 id对应md_property中的datatype
select * from md_enumvalue where id ='aed2a08a-03a0-4db7-9ab1-c30e1dc1ca17'
限额类费用报销单N+1原则的更多相关文章
- ERP费用报销操作与设计--开源软件诞生31
赤龙ERP费用报销讲解--第31篇 用日志记录"开源软件"的诞生 [进入地址 点亮星星]----祈盼着一个鼓励 博主开源地址: 码云:https://gitee.com/redra ...
- odoo10 费用报销
odo10 对费用报销进行了改进,恢复了 8.0 及之前版本具有的 单个报销包含多个 明细内容的功能. 使用步骤大致如下: 根据管理需要设立 相应的科目和分析帐户 科目 分析帐户 建立费用目录 员工录 ...
- java类为什么是单继承。类的继承,实现接口。
java中提供类与类之间提供单继承. 提供多继承会可能出现错误,如:一个类继承了两个父类,而两个父类里面都有show()方法. class Fulei1{ public void show(){ Sy ...
- php的redis 操作类,适用于单台或多台、多组redis服务器操作
redis 操作类,包括单台或多台.多组redis服务器操作,适用于业务复杂.高性能要求的 php web 应用. redis.php: <?php /* redis 操作类,适用于单台或多台. ...
- C++中的类继承之单继承&多继承&菱形继承
C++中的类继承之单继承&多继承&菱形继承 单继承是一般的单一继承,一个子类只 有一个直接父类时称这个继承关系为单继承.这种关系比较简单是一对一的关系: 多继承是指 一个子类有两个或 ...
- Web---演示Servlet的相关类、表单多参数接收、文件上传简单入门
说明: Servlet的其他相关类: ServletConfig – 代表Servlet的初始化配置参数. ServletContext – 代表整个Web项目. ServletRequest – 代 ...
- [Android面试题-7] 写出一个Java的Singleton类(即单例类)
1.首先明确单例的概念和特点: a>单例类只能有一个实例 b>单例类必须自己创建一个自己的唯一实例 c>单例类必须为其他所有对象提供这个实例 2.单例具有几种模式,最简单的两种分别是 ...
- 测试Python类成员的单下划线,双下划线,两头下划线的区别
首先原谅一个菜鸟叫他“两头下划线”.记得在windows编程中,很多宏定义使用下划线+大写,给人逼格很高的错觉.对于Python下划线的认识,大概是从__dict__这个属性开始的,看__dict__ ...
- 利用BeanUtils工具类封装表单数据
一.BeanUtils工具类的使用 1.首先导入BeanUtils工具类的jar包 commons-beanutils-1.8.0.jar commons-logging-1.1.1.jar 2.se ...
随机推荐
- ANDROID FRAMENT的切换(解决REPLACE的低效)
http://www.cnblogs.com/android-joker/p/4414891.html 在项目中切换Fragment,一直都是用replace()方法来替换Fragment.但是这样做 ...
- X431 元征诊断枪
X-431 Diagun是专门为汽车维修技师设计的诊断设备. 小巧的主机.强大的诊断功能.方便快捷的网上升级.一体化多功能接头,都是维修技师的首选.X-431 Diagun 是汽车维修技师的标准装备. ...
- 在linux下修改oracle的sys和system的密码和用户解锁
修改oracle的sys和system的密码和用户解锁 1.再linux系统上sqlplus '/as sysdba' 进入sqlplus后就可以修改sys和system的密码了 2.alter us ...
- 容器的end()方法
容器的end()方法,返回一个迭代器,需要注意:这个迭代器不指向实际的元素,而是表示末端元素的下一个元素,这个迭代器起一个哨兵的作用,表示已经处理完所有的元素. 因此,在查找的时候,返回的迭代器,不等 ...
- Educational Codeforces Round 7 A. Infinite Sequence 水题
A. Infinite Sequence 题目连接: http://www.codeforces.com/contest/622/problem/A Description Consider the ...
- 【JavaScript】Understanding callback functions in Javascript
Callback functions are extremely important in Javascript. They’re pretty much everywhere. Originally ...
- [Angular 2] Order Dynamic Components Inside an Angular 2 ViewContainer
By default, when you generate components, they will simply be added to the page in order, one after ...
- JDBC连接MySQL数据库及演示样例
JDBC是Sun公司制定的一个能够用Java语言连接数据库的技术. 一.JDBC基础知识 JDBC(Java Data Base Connectivity,java数据库连接)是一种用 ...
- global $GLOBALS区别
<?phpfunction &test(){ static $b=0;//申明一个静态变量 $b=$b+1; echo $b; return $b; }} ...
- 让ConfigurationManager打开任意的配置文件
VisualStudio的配置文件很好很强大,用来保存数据库连接字符串或键值对都非常方便,只需要通过ConfigurationManager的ConnectionStrings或AppSettings ...