|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册账号
×
问题描述:101公司的科目1001科目的级次是这样设置的:1001-100101-10010101,该科目的末级科目已使用。用户在调整的时候发现科目1001不想有下级,从前台删除肯定是删不掉的,如果要实现这种需求可以用下面的脚本来解决。
(一)对于版本为V3.0的,按照下列方案进行:
select pk_accsubj from bd_accsubj where pk_corp='单位主键' and subjcode ='末级科目编码'
切记把结果保存下来
如:
select pk_accsubj from bd_accsubj where pk_corp='101' and subjcode ='10010101'
保存下101公司的10010101科目的主键“1001XXXXXXXXXXXXXXXX”
2)删除中间级科目以下的科目:
delete from bd_accsubj where pk_corp='单位主键' and subjcode like'中间级科目以下的科目编码%'
如:
delete from bd_accsubj where pk_corp='101' and subjcode like'100101%'
删除101公司的100101和10010101科目
3)中间级科目置为末级,第一步保留的原末级科目主键置给原中间级
update bd_accsubj set pk_accsubj='原末级科目主键' ,endflag='Y'where pk_corp='单位主键' and subjcode ='中间级编码'
如:
update bd_accsubj set pk_accsubj='1001XXXXXXXXXXXXXXXX' ,endflag='Y'where pk_corp='101' and subjcode ='1001'
101公司的1001科目置为末级,同时1001科目的业务数据自动转给1001科目。
(二)对于版本为V3.1及V3.1SP1的,按照下面的方案进行:
1)必须先保留要删除的末级科目的主键:
select pk_accsubj, subjcode from bd_accsubj where pk_glorgbook='主体帐簿主键' and subjcode ='末级科目编码'
2)删除中间级科目以下的科目:
delete from bd_accsubj where pk_glorgbook='主体帐簿主键' and subjcode like'中间级科目以下的科目编码%'
3)中间级科目置为末级,第一步保留的原末级科目主键置给原中间级
update bd_accsubj set pk_accsubj='原末级科目主键' ,endflag='Y'where pk_glorgbook='主体帐簿主键' and subjcode ='中间级编码‘
1、 此种方法只适用于只有一个末级科目的情况,如上例,如果1001下面还有100102或100101就不能用这种方法。
2、建议在启用会计科目之前,设置好会计科目的级次。以免由于科目级次变动增加额外的工作量。
|
|