0

我想将现有凭证编号序列更新为根据月份更改的新凭证编号序列,即如果月份是 2 月,那么编号序列应该类似于 02-0001。正如我研究并发现数字序列是从向导自动生成的,所以我面临一些如何更新它的问题。

number seq 类中有一个名为newGetVoucherFromCode的方法,可以用来改变凭证编号序列的范围。方法如下:

public static NumberSeq newGetVoucherFromCode(
        NumberSequenceCode  _voucherSequenceCode,
        NumberSeqScope      _scope = NumberSeqScopeFactory::createDefaultScope(),
        boolean             _makeDecisionLater           = false,
        boolean             _dontThrowOnMissingRefSetUp  = false,
        //<GEERU><GEEU>
        UnknownNoYes        _allowManual                 = UnknownNoYes::Unknown)
        //</GEERU></GEEU>
{
    return NumberSeq::newGetVoucherFromId(
                NumberSequenceTable::findByNaturalKey(_voucherSequenceCode, _scope.getId()).RecId,
                _makeDecisionLater,
                _dontThrowOnMissingRefSetUp,
                //<GEERU><GEEU>
                _allowManual);
                //</GEERU></GEEU>
}

现在我怎样才能改变它的范围,使它生成数字序列月明智?

4

1 回答 1

0

使数字序列遵循会计年度和月份是一项标准功能。

看这里怎么做:数字序列中的年份

您必须为每个时期制作一个数字序列:

带会计期间的编号规则表

为了使用期间编号规则,您必须提供公司和会计期间。

FiscalCalendarPeriod p;
select firstOnly p //This is not the way to find a fiscal period:
    where p.Month == FiscalPeriodMonth::Month1 && 
          p.StartDate == 01\01\2014 && 
          p.Type == FiscalPeriodType::Operating;
info(NumberSeq::newGetNumFromCode('Test', NumberSeqScopeFactory::createDataAreaFiscalCalendarPeriodScope(curext(),p.RecId)).num());

您将不得不更改日记帐中的凭证编号生成以应对这种情况,这不是一件容易的事。

另请参阅将现有编号序列自定义为会计年度编号序列

于 2014-08-29T13:46:10.433 回答