public static function adjustToFirstDayOfFiscalQuarter($date)
 {
     $proxy = new DateTimeProxy(new DateTime($date));
     list($fiscalYear, $fiscalMonth) = DateDimensionConfiguration::getFiscalMonth($proxy->getYear(), $proxy->getMonth());
     $fiscalQuarter = DateTimeProxy::getQuarterByMonth($fiscalMonth);
     $firstMonthOfFiscalQuarter = DateTimeProxy::getFirstMonthOfQuarter($fiscalQuarter);
     // converting the date to the first day of corresponding quarter
     $adjustedDateTime = new DateTime();
     $adjustedDateTime->setDate($fiscalYear, $firstMonthOfFiscalQuarter, 1);
     return $adjustedDateTime->format(DateDataTypeHandler::getDateMask());
 }
    protected function prepareExpression(DataControllerCallContext $callcontext, AbstractRequest $request, $datasetName, $columnName, $columnDataType) {
        $proxy = new DateTimeProxy();

        list($fiscalYear, $fiscalMonth) = FiscalYearConfiguration::getAsFiscal($proxy->getYear(), $proxy->getMonth());
        $fiscalQuarter = DateTimeProxy::getQuarterByMonth($fiscalMonth);
        $firstMonthOfFiscalQuarter = DateTimeProxy::getFirstMonthOfQuarter($fiscalQuarter);

        $dt = new DateTime();
        $dt->setDate($fiscalYear, $firstMonthOfFiscalQuarter, 1);

        return $this->prepareExpressionImpl($callcontext, $request, $datasetName, $columnName, $columnDataType, $this->formatDate($dt));
    }