function postProcess(&$form)
 {
     $values = $form->exportValues();
     // lets forget session var if any
     if (CRM_Core_Session::singleton()->get('pcpteams_tpid')) {
         CRM_Core_Session::singleton()->set('pcpteams_tpid', NULL);
     }
     $teampcpId = $form->get('tpId');
     $teamId = CRM_Pcpteams_Utils::getcontactIdbyPcpId($teampcpId);
     $userId = CRM_Pcpteams_Utils::getloggedInUserId();
     // Create Team Member of relation to this Team
     $cfpcpab = CRM_Pcpteams_Utils::getPcpABCustomFieldId();
     $cfpcpba = CRM_Pcpteams_Utils::getPcpBACustomFieldId();
     $customParams = array("custom_{$cfpcpab}" => $form->get('page_id'), "custom_{$cfpcpba}" => $teampcpId);
     $result = CRM_Pcpteams_Utils::createTeamRelationship($userId, $teamId, $customParams);
     $form->_teamName = CRM_Contact_BAO_Contact::displayName($teamId);
     $form->set('teamName', $form->_teamName);
     $form->set('teamContactID', $teamId);
     // Team Join: create activity
     $actParams = array('target_contact_id' => CRM_Pcpteams_Utils::getTeamAdmin($teampcpId), 'assignee_contact_id' => $teamId);
     CRM_Pcpteams_Utils::createPcpActivity($actParams, CRM_Pcpteams_Constant::C_AT_INVITATION_ACCEPTED);
     CRM_Pcpteams_Utils::createPcpActivity($actParams, CRM_Pcpteams_Constant::C_AT_REQ_MADE);
     //send email once the team request has done.
     $teamAdminId = CRM_Pcpteams_Utils::getTeamAdmin($teampcpId);
     list($teamAdminName, $teamAdminEmail) = CRM_Contact_BAO_Contact::getContactDetails($teamAdminId);
     $contactDetails = civicrm_api('Contact', 'get', array('version' => 3, 'sequential' => 1, 'id' => $userId));
     $emailParams = array('tplParams' => array('teamAdminName' => $teamAdminName, 'userFirstName' => $contactDetails['values'][0]['first_name'], 'userlastName' => $contactDetails['values'][0]['last_name'], 'teamName' => $form->_teamName, 'pageURL' => CRM_Utils_System::url('civicrm/pcp/manage', "reset=1&id={$teampcpId}", TRUE, NULL, FALSE, TRUE)), 'email' => array($teamAdminName => array('first_name' => $teamAdminName, 'last_name' => $teamAdminName, 'email-Primary' => $teamAdminEmail, 'display_name' => $teamAdminName)), 'valueName' => CRM_Pcpteams_Constant::C_MSG_TPL_JOIN_REQUEST);
     $sendEmail = CRM_Pcpteams_Utils::sendMail($userId, $emailParams);
     if ($result) {
         CRM_Core_Session::setStatus(ts("A notification has been sent to the team. Once approved, team should be visible on your page."), ts("Team Request Sent"));
     }
 }
 static function setDefaultValues(&$form)
 {
     $defaults = array();
     if ($form->get('page_id')) {
         $result = civicrm_api('Pcpteams', 'get', array('version' => 3, 'sequential' => 1, 'pcp_id' => $form->get('page_id')));
         // $teamCfId = CRM_Pcpteams_Utils::getTeamPcpCustomFieldId();
         if (isset($result['values'][0]["team_pcp_id"])) {
             $defaults['pcp_team_contact'] = CRM_Pcpteams_Utils::getcontactIdbyPcpId($result['values'][0]["team_pcp_id"]);
         }
     }
     $form->setDefaults($defaults);
 }
function pcpteams_civicrm_custom($op, $groupID, $entityID, &$params)
{
    if ($op != 'create' && $op != 'edit') {
        return;
    }
    $customFields = array();
    if ($groupID == CRM_Pcpteams_Utils::getPcpCustomSetId()) {
        foreach ($params as $key => $value) {
            $customFields[$value['column_name']] = $value['value'];
        }
        $teamContactId = CRM_Pcpteams_Utils::getcontactIdbyPcpId($entityID);
        if ('Team' == CRM_Pcpteams_Utils::checkPcpType($entityID)) {
            $cfpcpab = CRM_Pcpteams_Utils::getPcpABCustomFieldId();
            $customParams = array("custom_{$cfpcpab}" => $entityID);
            CRM_Pcpteams_Utils::reCreateRelationship($teamContactId, $customFields['org_id'], CRM_Pcpteams_Constant::C_CORPORATE_REL_TYPE, $customParams);
        }
    }
}
 static function deleteTeamPcp()
 {
     $pcp_id = CRM_Utils_Request::retrieve('pcp_id', 'Positive', CRM_Core_DAO::$_nullObject, TRUE);
     $team_pcp_id = CRM_Utils_Request::retrieve('team_pcp_id', 'Positive', CRM_Core_DAO::$_nullObject, TRUE);
     $contactId = CRM_Pcpteams_Utils::getcontactIdbyPcpId($pcp_id);
     $teamContactId = CRM_Pcpteams_Utils::getcontactIdbyPcpId($team_pcp_id);
     $relTypeAdmin = CRM_Pcpteams_Constant::C_TEAM_ADMIN_REL_TYPE;
     $adminRelTypeId = CRM_Core_DAO::getFieldValue('CRM_Contact_DAO_RelationshipType', $relTypeAdmin, 'id', 'name_a_b');
     $relationshipQuery = "SELECT id FROM civicrm_relationship where contact_id_a = %1 AND contact_id_b = %2 AND relationship_type_id = %3";
     $queryParams = array(1 => array($contactId, 'Integer'), 2 => array($teamContactId, 'Integer'), 3 => array($adminRelTypeId, 'Integer'));
     $relationship = CRM_Core_DAO::singleValueQuery($relationshipQuery, $queryParams);
     if (!empty($relationship)) {
         $params = array('version' => 3, 'id' => $team_pcp_id);
         $result = civicrm_api('pcpteams', 'delete', $params);
         echo 'Deleted';
     } else {
         echo 'Sorry!! You are not team Admin';
     }
     CRM_Utils_System::civiExit();
 }
 static function getTeamAdmin($pcpId)
 {
     if (empty($pcpId)) {
         return null;
     }
     $teamContactID = CRM_Pcpteams_Utils::getcontactIdbyPcpId($pcpId);
     $teamAdminRelationshipTypeID = CRM_Core_DAO::getFieldValue('CRM_Contact_DAO_RelationshipType', CRM_Pcpteams_Constant::C_TEAM_ADMIN_REL_TYPE, 'id', 'name_a_b');
     $relationshipResult = civicrm_api3('Relationship', 'get', array('sequential' => 1, 'relationship_type_id' => $teamAdminRelationshipTypeID, 'contact_id_b' => $teamContactID));
     if (!civicrm_error($relationshipResult) && $relationshipResult['values']) {
         return $relationshipResult['values'][0]['contact_id_a'];
     }
 }