<?php

class CRM_Grant_Page_AnnualBudgets extends CRM_Core_Page_Basic {

  /**
   * Get BAO Name.
   *
   * @return string
   *   Classname of BAO.
   */
  public function getBAOName() {
    return 'CRM_Grant_BAO_GrantBudget';
  }

  /**
   * Get action Links.
   *
   * @return array
   *   (reference) of action links
   */
  public function &links() {
    return [];
  }

  /**
   * Browse all Grant Budget.
   */
  public function browse() {

    //check permission
    if (!(CRM_Core_Permission::check('administer CiviCRM')
      || (CRM_Core_Permission::check('access CiviGrant')
        && CRM_Core_Permission::check('edit grants')
      )
    )) {
      return CRM_Utils_System::permissionDenied();
    }
    $fiscalYear = CRM_Utils_Request::retrieve('fiscalYear', 'Positive');
    if (empty($fiscalYear)) {
      $fiscalYear = date('Y');
    }
    $fiscalYearOptions = '';
    foreach (CRM_Grant_BAO_GrantBudget::getFiscalyear() as $key => $value) {
      $extra = '';
      if ($key == $fiscalYear) {
        $extra = 'selected="selected"';
      }
      $fiscalYearOptions .= "<option value='{$key}' {$extra}>{$value}</option>";
    }
    $this->assign('fiscal_year_options', $fiscalYearOptions);
    $this->assign('fiscalYear', $fiscalYear);
  }

  /**
   * Get edit form name.
   *
   * @return string
   *   name of this page.
   */
  public function editName() {
    return ts('Annual Grant Budget');
  }

  /**
   * Get name of edit form.
   *
   * @return string
   *   Classname of edit form.
   */
  public function editForm() {
    return 'CRM_Grant_Page_AnnualBudgets';
  }

  /**
   * Get user context.
   *
   * @param null $mode
   *
   * @return string
   *   user context.
   */
  public function userContext($mode = NULL) {
    return 'civicrm/grant/annual/budgets';
  }

}