如下图,“263X2023032400000138”,“264X202303201389”,“264X202301060966”这三张单据由于支付状态当时没有及时没刷新,导致一直显示支付中。然后我在4月10号、4月12号这两天点了“状态下载”按钮进行更新状态,结果更新后,在结算节点中查询这两个单据的时候,发现结算日期变成4月10号和12号的了,请问怎么修改为3月的,即取指令发送日期的值??
【银行存款日记账】查询的时候,日期也是4月10号的
由于日期不对,导致账户余额表中的数据不对,继而导致总账和业务账对不平。
经查看了一下代码逻辑,NC标准现有的逻辑就是,当在【支付指令状态】点击状态下载按钮进行状态更新的时候,就会回写当前日期到结算日期上,即当单据使用网银支付时,结算日期回写的是支付状态下载第一次为支付成功的日期
。所以如果需要取指令发送日期或支付日期,就需要修改代码现有的逻辑。
也可以在ism上查找相关补丁,如:SUPPORT-NC6.5-Special-20200803-33798,进行申请下载。
关键代码:
注意,补丁只对后期业务的单据起作用,历史数据无效。如果历史数据产生了上述的问题,只能通过后台使用sql解决。
相关sql:
-- 根据单据号查询单据的结算日期和最新更新日期
select pk_settlement, settledate, lastupdatedate from cmp_settlement where billcode in ('264X202301060966', '263X2023032400000138', '264X202303201389')
--更新结算表头的结算日期、最新更新日期
update cmp_settlement set settledate='2023-03-30 17:23:25', lastupdatedate = '2023-03-30 17:23:25' where pk_settlement in ('0001A11000000004XKQV')
update cmp_settlement set settledate='2023-03-30 17:23:00', lastupdatedate = '2023-03-30 17:23:00' where pk_settlement in ('0001A11000000004ZO3T')
update cmp_settlement set settledate='2023-03-03 12:44:00', lastupdatedate = '2023-03-03 12:44:00' where pk_settlement in ('0001A11000000003XVF9')
--根据表头主键查询表体的组织结算日期、组织结算时间、结算日期
select pk_detail, orgsettledate, orgsettletime, tallydate from cmp_detail where pk_settlement in ('0001A11000000003XVF9', '0001A11000000004XKQV', '0001A11000000004ZO3T');
--更新表体的结算日期,如果组织结算日期、组织结算时间有值,也需要更新
update cmp_detail set tallydate='2023-03-30 17:23:25' where pk_settlement in ('0001A11000000004XKQV')
update cmp_detail set tallydate='2023-03-30 17:23:00' where pk_settlement in ('0001A11000000004ZO3T')
update cmp_detail set tallydate='2023-03-03 12:44:00' where pk_settlement in ('0001A11000000003XVF9')
--根据业务单据号(来源单据号)查询银行存款日记账(银行账户账明细表)
--select * from cmp_bankaccdetail bd where bd.vbillno in ('264X202303201389', '263X2023032400000138', '264X202301060966');
select pk_bankaccdetail, pk_bill, vbillno, tallydate, tallytime from cmp_bankaccdetail bd where bd.vbillno in ('264X202303201389', '263X2023032400000138', '264X202301060966');
--根据业务单据号(来源单据号)更新银行存款日记账(银行账户账明细表)的 记账日期,记账时间
update cmp_bankaccdetail set tallydate = '2023-03-30', tallytime = '2023-03-30 17:23:25' where vbillno in ('264X202303201389');
update cmp_bankaccdetail set tallydate = '2023-03-30', tallytime = '2023-03-30 17:23:00' where vbillno in ('263X2023032400000138');
update cmp_bankaccdetail set tallydate = '2023-03-03', tallytime = '2023-03-03 12:44:00' where vbillno in ('264X202301060966');