本地化 发票审核日志 的一个bug
对于已收到发票但货还未到的采购单,需要先在 应收账款->日志->发票->发票登记薄 处登记该发票,这时采用供应商过账模板中的到达科目和到达对方科目过账,到达科目可以设暂估应付账款,到达的对方科目可以设为原材料采购科目,等货物入库后再在发票审核日志处将在发票登记薄过账的发票对冲,生成正式发票。
如果启用了中国式凭证系统,在对冲的时候就会出现如下画面:
![](/images/cnblogs_com/farseer1215/LocalBug.png)
原因是PurchFormLetter_ApproveJournal这个类的方法
NumberSeq allocateNumAndVoucher()
{
return numberSeq;
}
由于凭证号是在创建审核日志的时候就已经分配了,所以这里不再实例化numberSeq,而本地化的代码没有考虑这个情况,直接在PurchFormLetter的InserJournal方法中调用了numberSeq.parmTransDate(purchParmTable.transDate);这个方法,所以就出错了。
解决方法:判断一下当前实例如果是PurchFormLetter_ApproveJournal或者numberSeq为null就不调用该方法。
if (LedgerParameters::find().ChineseVoucher_CN == NoYes::Yes &&
numberSeq)
{
numberSeq.parmTransDate(purchParmTable.transDate);
}
如果启用了中国式凭证系统,在对冲的时候就会出现如下画面:
![](/images/cnblogs_com/farseer1215/LocalBug.png)
原因是PurchFormLetter_ApproveJournal这个类的方法
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
解决方法:判断一下当前实例如果是PurchFormLetter_ApproveJournal或者numberSeq为null就不调用该方法。
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
![](/Images/OutliningIndicators/None.gif)