我想将现有的凭证编号序列更新为根据月份更改的新编号序列,即如果月份为feb,则编号序列应为02-0001。正如我研究并发现数字序列是从向导自动生成的,所以我面临一些问题如何更新。
在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>
}
现在如何更改其范围以使其按月生成数字序列?
答案 0 :(得分:0)
使数字序列遵循会计年度和月份是标准功能。
请在此处查看如何操作:Year in number sequence
您必须为每个时段制作一个数字序列:
为了使用期间编号序列,您必须提供公司和会计期间。
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());
您必须更改日记帐中的凭证编号生成以应对此问题,这不是一件容易的事。
另见Customize Existing Number Sequence to Fiscal Year Number Sequence