判断一个日期所在的会计期间是否打开

private boolean checkPeridStatus(TransDate _approveDate)
{
    boolean                     ret;
    FiscalCalendarPeriod        fiscalCalPeriod;
    FiscalCalendarYear          fiscalCalYear;
    LedgerFiscalCalendarPeriod  ledgerPeriod;

    select firstOnly RecId from fiscalCalYear
        where fiscalCalYear.StartDate <= _approveDate
        && fiscalCalYear.EndDate >= _approveDate
        && fiscalCalYear.FiscalCalendar == Ledger::fiscalCalendar();

    select  firstonly fiscalCalPeriod
        where fiscalCalPeriod.FiscalCalendarYear == fiscalCalYear.RecId
        && fiscalCalPeriod.FiscalCalendar == Ledger::fiscalCalendar()
        && ((fiscalCalPeriod.StartDate <= _approveDate
            && fiscalCalPeriod.EndDate > _approveDate)
        || (fiscalCalPeriod.StartDate < _approveDate
            && fiscalCalPeriod.EndDate >= _approveDate));
    
    if(fiscalCalPeriod)
    {
        ledgerPeriod = FiscalCalendars::findLedgerPeriod(fiscalCalPeriod.RecId, Ledger::current());
        
        ret = ledgerPeriod.Status == 1 ? true : false;
    }
    
    return ret;
}
原文地址:https://www.cnblogs.com/sunny-technology/p/13367008.html