Пример #1
0
/**
 * Get customer life statges status count
 *
 * @since 1.0
 *
 * @return array
 */
function erp_crm_customer_get_status_count($type = null)
{
    global $wpdb;
    $statuses = erp_crm_get_life_statges_dropdown_raw(['all' => __('All', 'wp-erp')]);
    $counts = array();
    foreach ($statuses as $status => $label) {
        $counts[$status] = array('count' => 0, 'label' => $label);
    }
    $cache_key = 'erp-crm-customer-status-counts';
    $results = wp_cache_get($cache_key, 'wp-erp');
    if (false === $results) {
        $people = new \WeDevs\ERP\Framework\Models\People();
        $db = new \WeDevs\ORM\Eloquent\Database();
        $people_table = $wpdb->prefix . 'erp_peoples';
        $peoplemeta_table = $wpdb->prefix . 'erp_peoplemeta';
        $results = $people->select(array($db->raw($peoplemeta_table . '.meta_value as `status`, COUNT( ' . $people_table . '.id ) as `num`')))->leftjoin($peoplemeta_table, $peoplemeta_table . '.erp_people_id', '=', $people_table . '.id')->where($peoplemeta_table . '.meta_key', '=', 'life_stage')->where($people_table . '.type', '=', $type)->groupBy($peoplemeta_table . '.meta_value')->get()->toArray();
        wp_cache_set($cache_key, $results, 'wp-erp');
    }
    foreach ($results as $row) {
        if (array_key_exists($row['status'], $counts)) {
            $counts[$row['status']]['count'] = (int) $row['num'];
        }
        $counts['all']['count'] += (int) $row['num'];
    }
    return $counts;
}