会计日历的修改(未使用的期间才能修改,未使用的期间才能修改,未使用的期间才能修改)原创
金蝶云社区-皮皮皮卡球
皮皮皮卡球
10人赞赏了该文章 262次浏览 未经作者许可,禁止转载编辑于2023年05月11日 09:55:00

鉴于客户有修改会计日历的需求(将自然月改为每月25号结束)

--bak

select * into T_BD_ACCOUNTCALENDAR_sqlbak_20230511  from T_BD_ACCOUNTCALENDAR

select * into T_BD_ACCOUNTPERIOD_sqlbak_20230511  from T_BD_ACCOUNTCALENDAR

--update

--以系统预设会计日历为例

--改单据头

update T_BD_ACCOUNTCALENDAR set FPERIODTYPE = '3',FENDDATE = '2023-12-25 00:00:00.000' where fnumber='KJRL01_SYS'  -- 期间类型  将自然月 改为月  FPERIODTYPE = '3',将结束日期改为 FENDDATE = '2023-12-25 00:00:00.000'

--改单据体

--将2023年以后的单据体数据清理掉(这里清理掉便于修改,修改完了可以在前台自己追加到想要的年度),

delete a from T_BD_ACCOUNTPERIOD  a inner join T_BD_ACCOUNTCALENDAR b on a.fid = b.fid where b.FNUMBER = 'KJRL01_SYS' and a.FYEAR>2023

--鉴于只能修改未使用的期间,这里我们从5月开始修改

update a set a.FPERIODENDDATE = '2023-05-25 00:00:00.000' from  T_BD_ACCOUNTPERIOD  a inner join T_BD_ACCOUNTCALENDAR b on a.fid = b.fid where b.FNUMBER = 'KJRL01_SYS' and a.FYEAR=2023 and FPERIOD = 5 

update a set a.FPERIODSTARTDATE = '2023-05-26 00:00:00.000',a.FPERIODENDDATE = '2023-06-25 00:00:00.000' from  T_BD_ACCOUNTPERIOD  a inner join T_BD_ACCOUNTCALENDAR b on a.fid = b.fid where b.FNUMBER = 'KJRL01_SYS' and a.FYEAR=2023 and FPERIOD = 6

update a set a.FPERIODSTARTDATE = '2023-06-26 00:00:00.000',a.FPERIODENDDATE = '2023-07-25 00:00:00.000' from  T_BD_ACCOUNTPERIOD  a inner join T_BD_ACCOUNTCALENDAR b on a.fid = b.fid where b.FNUMBER = 'KJRL01_SYS' and a.FYEAR=2023 and FPERIOD = 7

update a set a.FPERIODSTARTDATE = '2023-07-26 00:00:00.000',a.FPERIODENDDATE = '2023-08-25 00:00:00.000' from  T_BD_ACCOUNTPERIOD  a inner join T_BD_ACCOUNTCALENDAR b on a.fid = b.fid where b.FNUMBER = 'KJRL01_SYS' and a.FYEAR=2023 and FPERIOD = 8

update a set a.FPERIODSTARTDATE = '2023-08-26 00:00:00.000',a.FPERIODENDDATE = '2023-09-25 00:00:00.000' from  T_BD_ACCOUNTPERIOD  a inner join T_BD_ACCOUNTCALENDAR b on a.fid = b.fid where b.FNUMBER = 'KJRL01_SYS' and a.FYEAR=2023 and FPERIOD = 9

update a set a.FPERIODSTARTDATE = '2023-09-26 00:00:00.000',a.FPERIODENDDATE = '2023-10-25 00:00:00.000' from  T_BD_ACCOUNTPERIOD  a inner join T_BD_ACCOUNTCALENDAR b on a.fid = b.fid where b.FNUMBER = 'KJRL01_SYS' and a.FYEAR=2023 and FPERIOD = 10

update a set a.FPERIODSTARTDATE = '2023-10-26 00:00:00.000',a.FPERIODENDDATE = '2023-11-25 00:00:00.000' from  T_BD_ACCOUNTPERIOD  a inner join T_BD_ACCOUNTCALENDAR b on a.fid = b.fid where b.FNUMBER = 'KJRL01_SYS' and a.FYEAR=2023 and FPERIOD = 11

update a set a.FPERIODSTARTDATE = '2023-11-26 00:00:00.000',a.FPERIODENDDATE = '2023-12-25 00:00:00.000' from  T_BD_ACCOUNTPERIOD  a inner join T_BD_ACCOUNTCALENDAR b on a.fid = b.fid where b.FNUMBER = 'KJRL01_SYS' and a.FYEAR=2023 and FPERIOD = 12

---到这里就修改完了。如果想要2023以后的年度期间,可以直接去前台追加

赞 10