+
+
+
+function civicrm_api3_mailing_stats($params) {
+ civicrm_api3_verify_mandatory($params,
+ 'CRM_Mailing_DAO_MailingJob',
+ array('mailing_id'),
+ FALSE
+ );
+ $stats[$params['mailing_id']] = array();
+ if (empty($params['job_id'])) {
+ $params['job_id'] = NULL;
+ }
+ foreach (array('Delivered', 'Bounces', 'Unsubscribers', 'Unique Clicks', 'Opened') as $detail) {
+ switch ($detail) {
+ case 'Delivered':
+ $stats[$params['mailing_id']] += array(
+ $detail => CRM_Mailing_Event_BAO_Delivered::getTotalCount($params['mailing_id'], $params['job_id'])
+ );
+ break;
+ case 'Bounces':
+ $stats[$params['mailing_id']] += array(
+ $detail => CRM_Mailing_Event_BAO_Bounce::getTotalCount($params['mailing_id'], $params['job_id'])
+ );
+ break;
+ case 'Unsubscribers':
+ $stats[$params['mailing_id']] += array(
+ $detail => CRM_Mailing_Event_BAO_Unsubscribe::getTotalCount($params['mailing_id'], $params['job_id'])
+ );
+ break;
+ case 'Unique Clicks':
+ $stats[$params['mailing_id']] += array(
+ $detail => CRM_Mailing_Event_BAO_TrackableURLOpen::getTotalCount($params['mailing_id'], $params['job_id'])
+ );
+ break;
+ case 'Opened':
+ $stats[$params['mailing_id']] += array(
+ $detail => CRM_Mailing_Event_BAO_Opened::getTotalCount($params['mailing_id'], $params['job_id'])
+ );
+ break;
+ }
+ }
+ return civicrm_api3_create_success($stats);
+}
+
+
+
+function civicrm_api3_mailing_a_b_recipients_update($params) {
+ civicrm_api3_verify_mandatory($params,
+ 'CRM_Mailing_DAO_MailingAB',
+ array('id'),
+ FALSE
+ );
+
+
+ $mailingAB = civicrm_api3('MailingAB', 'get', $params);
+ $mailingAB = $mailingAB['values'][$params['id']];
+
+ //update mailingC with include/exclude group id(s) provided
+ civicrm_api3('Mailing', 'create', array('id' => $mailingAB['mailing_id_c'], 'groups' => $params['groups']));
+ //update recipients for mailing_id_c
+ CRM_Mailing_BAO_Mailing::getRecipients($mailingAB['mailing_id_c'], $mailingAB['mailing_id_c'], NULL, NULL, TRUE);
+ //calulate total number of random recipients for mail C from group_percentage selected
+ $totalCount = civicrm_api3('MailingRecipients', 'getcount', array('mailing_id' => $mailingAB['mailing_id_c']));
+ $totalSelected = round(($totalCount * $mailingAB['group_percentage'])/100);
+ foreach (array('mailing_id_a', 'mailing_id_b') as $columnName) {
+ CRM_Mailing_BAO_Recipients::updateRandomRecipients($mailingAB['mailing_id_c'], $mailingAB[$columnName], $totalSelected);
+ }
+ return civicrm_api3_create_success();
+}
+
+
+