2018-08-11 10:06:37 +00:00
< ? php
require_once 'annualgrantbudgets.civix.php' ;
use CRM_Annualgrantbudgets_ExtensionUtil as E ;
2018-08-11 16:43:08 +00:00
define ( 'GRANT_SCHOLARSHIP_CUSTOM_GROUP' , 'grant_scholarship' );
define ( 'GRANT_SCHOLARSHIP_CUSTOM_FIELD' , 'is_grant_scholarship' );
define ( 'GRANT_SCHOLARSHIP_CUSTOM_TABLE_NAME' , 'civicrm_value_grant_scholarship' );
2018-08-11 18:29:59 +00:00
define ( 'GRANT_SCHOLARSHIP_YEAR_DIFF' , 10 );
2019-06-18 22:56:47 +00:00
define ( 'GRANT_DATE_CHECK_FIELD' , 'decision_date' );
define ( 'GRANT_AMOUNT_CHECK_FIELD' , 'total_amount' );
2018-08-11 10:06:37 +00:00
/**
* Implements hook_civicrm_config () .
*
* @ link http :// wiki . civicrm . org / confluence / display / CRMDOC / hook_civicrm_config
*/
function annualgrantbudgets_civicrm_config ( & $config ) {
_annualgrantbudgets_civix_civicrm_config ( $config );
}
/**
* Implements hook_civicrm_xmlMenu () .
*
* @ link http :// wiki . civicrm . org / confluence / display / CRMDOC / hook_civicrm_xmlMenu
*/
function annualgrantbudgets_civicrm_xmlMenu ( & $files ) {
_annualgrantbudgets_civix_civicrm_xmlMenu ( $files );
}
/**
* Implements hook_civicrm_install () .
*
* @ link http :// wiki . civicrm . org / confluence / display / CRMDOC / hook_civicrm_install
*/
function annualgrantbudgets_civicrm_install () {
_annualgrantbudgets_civix_civicrm_install ();
}
/**
* Implements hook_civicrm_postInstall () .
*
* @ link http :// wiki . civicrm . org / confluence / display / CRMDOC / hook_civicrm_postInstall
*/
function annualgrantbudgets_civicrm_postInstall () {
_annualgrantbudgets_civix_civicrm_postInstall ();
}
/**
* Implements hook_civicrm_uninstall () .
*
* @ link http :// wiki . civicrm . org / confluence / display / CRMDOC / hook_civicrm_uninstall
*/
function annualgrantbudgets_civicrm_uninstall () {
_annualgrantbudgets_civix_civicrm_uninstall ();
2018-08-11 11:33:32 +00:00
CRM_Core_DAO :: executeQuery ( "
DROP TABLE IF EXISTS civicrm_grant_budget ;
" );
2018-08-11 10:06:37 +00:00
}
/**
* Implements hook_civicrm_enable () .
*
* @ link http :// wiki . civicrm . org / confluence / display / CRMDOC / hook_civicrm_enable
*/
function annualgrantbudgets_civicrm_enable () {
_annualgrantbudgets_civix_civicrm_enable ();
}
/**
* Implements hook_civicrm_disable () .
*
* @ link http :// wiki . civicrm . org / confluence / display / CRMDOC / hook_civicrm_disable
*/
function annualgrantbudgets_civicrm_disable () {
_annualgrantbudgets_civix_civicrm_disable ();
}
/**
* Implements hook_civicrm_upgrade () .
*
* @ link http :// wiki . civicrm . org / confluence / display / CRMDOC / hook_civicrm_upgrade
*/
function annualgrantbudgets_civicrm_upgrade ( $op , CRM_Queue_Queue $queue = NULL ) {
return _annualgrantbudgets_civix_civicrm_upgrade ( $op , $queue );
}
/**
* Implements hook_civicrm_managed () .
*
* Generate a list of entities to create / deactivate / delete when this module
* is installed , disabled , uninstalled .
*
* @ link http :// wiki . civicrm . org / confluence / display / CRMDOC / hook_civicrm_managed
*/
function annualgrantbudgets_civicrm_managed ( & $entities ) {
_annualgrantbudgets_civix_civicrm_managed ( $entities );
2018-08-11 11:33:32 +00:00
$entities [] = [
'module' => 'org.agbu.annualgrantbudgets' ,
2018-08-11 16:43:08 +00:00
'name' => GRANT_SCHOLARSHIP_CUSTOM_GROUP ,
2018-08-11 11:33:32 +00:00
'entity' => 'CustomGroup' ,
'params' => [
'version' => 3 ,
2018-08-11 16:43:08 +00:00
'name' => GRANT_SCHOLARSHIP_CUSTOM_GROUP ,
2018-08-11 11:33:32 +00:00
'title' => ts ( 'Grant Scholarship' ),
'extends' => 'FinancialType' ,
'style' => 'Inline' ,
2018-10-22 19:13:08 +00:00
'collapse_display' => 1 ,
2018-08-11 11:33:32 +00:00
'is_active' => TRUE ,
'is_multiple' => FALSE ,
2018-10-22 19:13:08 +00:00
'collapse_adv_display' => 0 ,
2018-08-11 11:33:32 +00:00
'is_reserved' => TRUE ,
2018-08-11 16:43:08 +00:00
'table_name' => GRANT_SCHOLARSHIP_CUSTOM_TABLE_NAME ,
2018-08-11 11:33:32 +00:00
],
];
$entities [] = [
'module' => 'org.agbu.annualgrantbudgets' ,
2018-08-11 16:43:08 +00:00
'name' => GRANT_SCHOLARSHIP_CUSTOM_FIELD ,
2018-08-11 11:33:32 +00:00
'entity' => 'CustomField' ,
'params' => [
'version' => 3 ,
2018-08-11 16:43:08 +00:00
'name' => GRANT_SCHOLARSHIP_CUSTOM_FIELD ,
2018-08-11 11:33:32 +00:00
'label' => ts ( 'Scholarship?' ),
'data_type' => 'Boolean' ,
'html_type' => 'Radio' ,
'is_required' => FALSE ,
'is_searchable' => FALSE ,
'is_search_range' => FALSE ,
2018-08-11 14:37:03 +00:00
'default_value' => '0' ,
2018-08-11 11:33:32 +00:00
'is_active' => TRUE ,
'text_length' => 255 ,
2018-08-11 16:43:08 +00:00
'column_name' => GRANT_SCHOLARSHIP_CUSTOM_FIELD ,
'custom_group_id' => GRANT_SCHOLARSHIP_CUSTOM_GROUP ,
2018-08-11 11:33:32 +00:00
],
];
2018-08-11 10:06:37 +00:00
}
/**
* Implements hook_civicrm_caseTypes () .
*
* Generate a list of case - types .
*
* Note : This hook only runs in CiviCRM 4.4 +.
*
* @ link http :// wiki . civicrm . org / confluence / display / CRMDOC / hook_civicrm_caseTypes
*/
function annualgrantbudgets_civicrm_caseTypes ( & $caseTypes ) {
_annualgrantbudgets_civix_civicrm_caseTypes ( $caseTypes );
}
/**
* Implements hook_civicrm_angularModules () .
*
* Generate a list of Angular modules .
*
* Note : This hook only runs in CiviCRM 4.5 +. It may
* use features only available in v4 . 6 +.
*
* @ link http :// wiki . civicrm . org / confluence / display / CRMDOC / hook_civicrm_angularModules
*/
function annualgrantbudgets_civicrm_angularModules ( & $angularModules ) {
_annualgrantbudgets_civix_civicrm_angularModules ( $angularModules );
}
/**
* Implements hook_civicrm_alterSettingsFolders () .
*
* @ link http :// wiki . civicrm . org / confluence / display / CRMDOC / hook_civicrm_alterSettingsFolders
*/
function annualgrantbudgets_civicrm_alterSettingsFolders ( & $metaDataFolders = NULL ) {
_annualgrantbudgets_civix_civicrm_alterSettingsFolders ( $metaDataFolders );
}
/**
* Implements hook_civicrm_entityTypes () .
*
* Declare entity types provided by this module .
*
* @ link http :// wiki . civicrm . org / confluence / display / CRMDOC / hook_civicrm_entityTypes
*/
function annualgrantbudgets_civicrm_entityTypes ( & $entityTypes ) {
_annualgrantbudgets_civix_civicrm_entityTypes ( $entityTypes );
2018-08-11 11:33:32 +00:00
$entityTypes [] = [
'name' => 'GrantBudget' ,
'class' => 'CRM_Grant_DAO_GrantBudget' ,
'table' => 'civicrm_grant_budget' ,
];
}
/**
* Implements hook_civicrm_navigationMenu () .
*
* @ link http :// wiki . civicrm . org / confluence / display / CRMDOC / hook_civicrm_navigationMenu
*
*/
function annualgrantbudgets_civicrm_navigationMenu ( & $menu ) {
2019-06-18 18:48:28 +00:00
_annualgrantbudgets_civix_insert_navigation_menu ( $menu , 'Grants' , [
2018-08-11 11:33:32 +00:00
'label' => ts ( 'Grant Budget' , [ 'domain' => 'org.agbu.annualgrantbudgets' ]),
'name' => 'grant_annual_budget' ,
'url' => CRM_Utils_System :: url ( 'civicrm/grant/annual/budgets' , 'reset=1&action=browse' , TRUE ),
'active' => 1 ,
2019-06-18 18:48:28 +00:00
'permission' => 'access CiviGrant' ,
2018-08-11 11:33:32 +00:00
]);
_annualgrantbudgets_civix_navigationMenu ( $menu );
2018-08-11 10:06:37 +00:00
}
2018-08-11 19:59:39 +00:00
/**
* Implements hook_civicrm_apiWrappers () .
*
* @ link http :// wiki . civicrm . org / confluence / display / CRMDOC / hook_civicrm_apiWrappers
*
*/
function annualgrantbudgets_civicrm_apiWrappers ( & $wrappers , $apiRequest ) {
if ( strtolower ( $apiRequest [ 'entity' ]) == 'grantbudget' && $apiRequest [ 'action' ] == 'create' ) {
$wrappers [] = new CRM_AnnualGrantBudgets_APIWrapper ();
}
}
2018-08-11 22:36:44 +00:00
/**
* Implements hook_civicrm_validateForm () .
*
* @ link http :// wiki . civicrm . org / confluence / display / CRMDOC / hook_civicrm_validateForm
*
*/
2019-06-18 22:56:47 +00:00
// //This whole validation needs rewriting.
//function annualgrantbudgets_civicrm_validateForm($formName, &$fields, &$files, &$form, &$errors) {
// if ($formName == 'CRM_Grant_Form_Grant' && !($form->_action & CRM_Core_Action::DELETE)) {
// if (empty($fields['financial_type_id'])
// || empty($fields['status_id'])
// || empty($fields[GRANT_DATE_CHECK_FIELD])
// || empty($fields[GRANT_AMOUNT_CHECK_FIELD])
// ) {
// return;
// }
// $paidStatusID = CRM_Core_PseudoConstant::getKey(
// 'CRM_Grant_DAO_Grant',
// 'status_id',
// 'Paid'
// );
// if ($paidStatusID != $fields['status_id']) {
// return;
// }
//
// list($isError, $grantBudget) = CRM_Grant_BAO_GrantBudget::checkBudget($fields, $form->getVar('_id'));
// if ($isError) {
// $errors[GRANT_AMOUNT_CHECK_FIELD] = ts("The annual budget for this grant is {$grantBudget['budget']}. Grants totaling {$grantBudget['total_amount_granted']} have been made. {$grantBudget['balance_amount']} remains.");
// }
// }
//}