系统版本:PU39
FiscalCalendars::findFirstDayOfMonth()可以获得财月一天的日期。
但是该如果财月被拆分了,获得的日期就有问题,用以下代码可以解决:
FiscalCalendarPeriod fiscalPeriod;
date startDate;
FiscalCalendarYear fiscalCalendarYear;
Ledger ledger = ledger::findByLegalEntity(CompanyInfo::find().RecId);
FiscalCalendar fiscalCalendar = fiscalCalendar::find(ledger.FiscalCalendar);
select firstonly RecId from fiscalCalendarYear
where fiscalCalendarYear.StartDate <= systemDateGet()
&& fiscalCalendarYear.EndDate >= systemDateGet();
select firstonly StartDate from fiscalPeriod
where fiscalPeriod.StartDate <= systemDateGet() &&
fiscalPeriod.EndDate >= systemDateGet() &&
fiscalPeriod.Type == FiscalPeriodType::Operating &&
//fiscalPeriod.Month == 2 &&
fiscalPeriod.FiscalCalendarYear == fiscalCalendarYear.RecId &&
fiscalPeriod.FiscalCalendar == fiscalCalendar.RecId;
if(fiscalPeriod)
{
startDate = fiscalPeriod.StartDate;
}