* @copyright CiviCRM LLC (c) 2004-2013
*
*/
+require_once 'CRM/Wci/DAO/ProgressBar.php';
-class CRM_WCI_BAO_ProgressBar extends CRM_WCI_DAO_ProgressBar {
+class CRM_Wci_BAO_ProgressBar extends CRM_Wci_DAO_ProgressBar {
/**
* class constructor
*
* @param array $params (reference ) an assoc array of name/value pairs
*
- * @return object CRM_WCI_BAO_ProgressBar object
+ * @return object CRM_Wci_BAO_ProgressBar object
* @access public
* @static
*/
CRM_Core_Error::fatal('Not enough data to create a progress bar.');
}
- $progress_bar = new CRM_WCI_BAO_ProgressBar();
+ $progress_bar = new CRM_Wci_BAO_ProgressBar();
$progress_bar->copyValues($params);
$progress_bar->save();
* names of civicrm_wci_widget.
*
* @param array $params
- * @return array of CRM_WCI_BAO_ProgressBar objects
+ * @return array of CRM_Wci_BAO_ProgressBar objects
*/
static function retrieve(array $params) {
$result = array();
- $progress_bar = new CRM_WCI_BAO_ProgressBar();
+ $progress_bar = new CRM_Wci_BAO_ProgressBar();
$progress_bar->copyValues($params);
$progress_bar->find();
* Wrapper method for retrieve
*
* @param mixed $id Int or int-like string representing widget ID
- * @return CRM_WCI_BAO_ProgressBar
+ * @return CRM_Wci_BAO_ProgressBar
*/
static function retrieveByID($id) {
if (!is_int($id) && !ctype_digit($id)) {
}
return FALSE;
}
+
+ /**
+ * Returns array of progressbars
+ * Fields : id, name, starting_amount, goal_amount
+ * @return progressbar array
+ * @access public
+ */
+ public static function getProgressbarList() {
+ $query = "SELECT * FROM civicrm_wci_progress_bar";
+ $params = array();
+ $pbList = array();
+
+ $dao = CRM_Core_DAO::executeQuery($query, $params, TRUE, 'CRM_Wci_DAO_ProgressBar');
+
+ while ($dao->fetch()) {
+ $pbList[$dao->id] = array();
+ CRM_Core_DAO::storeValues($dao, $pbList[$dao->id]);
+ }
+
+ return $pbList;
+ }
+
+ /**
+ * Returns percentage value of a progressbar
+ *
+ * @param integer progressbar id
+ *
+ * @return decimal percentage value
+ * @access public
+ */
+ public static function getProgressbarPercentage($idPB) {
+ $bp = 0;
+ $query = "SELECT * FROM civicrm_wci_progress_bar where id=" . $idPB;
+ $params = array();
+ $dao = CRM_Core_DAO::executeQuery($query, $params, TRUE, 'CRM_Wci_DAO_ProgressBar');
+
+ while ($dao->fetch()) {
+ $con_page[$dao->id] = array();
+ CRM_Core_DAO::storeValues($dao, $con_page[$dao->id]);
+ $con_page[$dao->id]['name'];
+ $sa = $con_page[$dao->id]['starting_amount'];
+ $ga = $con_page[$dao->id]['goal_amount'];
+ }
+
+ $query = "SELECT * FROM civicrm_wci_progress_bar_formula WHERE progress_bar_id =" . $idPB;
+ $params = array();
+
+ $daoPbf = CRM_Core_DAO::executeQuery($query, $params, TRUE, 'CRM_Wci_DAO_ProgressBarFormula');
+ while ($daoPbf->fetch()) {
+ $for_page[$daoPbf->id] = array();
+ CRM_Core_DAO::storeValues($daoPbf, $for_page[$daoPbf->id]);
+ $px = $for_page[$daoPbf->id]['percentage'];
+
+ $query = "SELECT * FROM civicrm_contribution where contribution_page_id =" . $for_page[$daoPbf->id]['contribution_page_id'];
+ $params = array();
+
+ $daoCon = CRM_Core_DAO::executeQuery($query, $params, TRUE, 'CRM_Contribute_DAO_Contribution');
+
+ while ($daoCon->fetch()) {
+ $contributions[$daoCon->id] = array();
+ CRM_Core_DAO::storeValues($daoCon, $contributions[$daoCon->id]);
+ $bx = $contributions[$daoCon->id]['total_amount'];
+
+ $bp += $bx * $px / 100;
+ }
+ }
+ (0 == $ga) ? $perc = 0: $perc = (($sa + $bp) / $ga ) * 100;
+
+ return $perc;
+ }
}