예제 #1
0
파일: index.php 프로젝트: hardikk/HNH
function listCampaign($pDB, $smarty, $module_name, $local_templates_dir)
{
    global $arrLang;
    $arrData = '';
    $oCampaign = new paloSantoCampaignCC($pDB);
    // Recoger ID de campaña para operación
    $id_campaign = NULL;
    if (isset($_POST['id_campaign']) && ereg('^[[:digit:]]+$', $_POST['id_campaign'])) {
        $id_campaign = $_POST['id_campaign'];
    }
    // Revisar si se debe de borrar una campaña elegida
    if (isset($_POST['delete']) && !is_null($id_campaign)) {
        if ($oCampaign->delete_campaign($id_campaign)) {
            if ($oCampaign->errMsg != "") {
                $smarty->assign("mb_title", _tr('Validation Error'));
                $smarty->assign("mb_message", $oCampaign->errMsg);
            } else {
            }
        } else {
            $msg_error = $oCampaign->errMsg != "" ? "<br/>" . $oCampaign->errMsg : "";
            $smarty->assign("mb_title", _tr('Delete Error'));
            $smarty->assign("mb_message", _tr('Error when deleting the Campaign') . $msg_error);
        }
    }
    // Revisar si se debe activar una campaña elegida
    if (isset($_POST['activate']) && !is_null($id_campaign)) {
        if (!$oCampaign->activar_campaign($id_campaign, 'A')) {
            $smarty->assign("mb_title", _tr('Activate Error'));
            $smarty->assign("mb_message", _tr('Error when Activating the Campaign'));
        }
    }
    // Revisar si se debe desactivar una campaña elegida
    if (isset($_POST['deactivate']) && !is_null($id_campaign)) {
        if (!$oCampaign->activar_campaign($id_campaign, 'I')) {
            $smarty->assign("mb_title", _tr("Desactivate Error"));
            $smarty->assign("mb_message", _tr("Error when desactivating the Campaign"));
        }
    }
    // Validar el filtro por estado de actividad de la campaña
    $estados = array("all" => _tr("All"), "A" => _tr("Active"), "T" => _tr("Finish"), "I" => _tr("Inactive"));
    $sEstado = 'A';
    if (isset($_GET['cbo_estado']) && isset($estados[$_GET['cbo_estado']])) {
        $sEstado = $_GET['cbo_estado'];
    }
    if (isset($_POST['cbo_estado']) && isset($estados[$_POST['cbo_estado']])) {
        $sEstado = $_POST['cbo_estado'];
    }
    // para el pagineo
    $arrCampaign = $oCampaign->getCampaigns(NULL, NULL, NULL, $sEstado);
    $oGrid = new paloSantoGrid($smarty);
    $oGrid->setLimit(50);
    $oGrid->setTotal(count($arrCampaign));
    $offset = $oGrid->calculateOffset();
    $arrCampaign = array_slice($arrCampaign, $offset, $oGrid->getLimit());
    $url = construirURL(array('menu' => $module_name, 'cbo_estado' => $sEstado), array('nav', 'start'));
    if (is_array($arrCampaign)) {
        foreach ($arrCampaign as $campaign) {
            $arrTmp = array();
            $arrTmp[0] = "<input class=\"button\" type=\"radio\" name=\"id_campaign\" value=\"{$campaign['id']}\" />";
            $arrTmp[1] = $campaign['name'];
            $arrTmp[2] = $campaign['datetime_init'] . ' - ' . $campaign['datetime_end'];
            $arrTmp[3] = $campaign['daytime_init'] . ' - ' . $campaign['daytime_end'];
            $arrTmp[4] = $campaign['retries'] != "" ? $campaign['retries'] : "&nbsp;";
            $arrTmp[5] = is_null($campaign['trunk']) ? '(Dialplan)' : $campaign['trunk'];
            $arrTmp[6] = $campaign['queue'];
            $arrTmp[7] = $campaign['num_completadas'] != "" ? $campaign['num_completadas'] : "N/A";
            $arrTmp[8] = $campaign['promedio'] != "" ? number_format($campaign['promedio'], 0) : "N/A";
            $csv_data = "&nbsp;<a href='?menu={$module_name}&amp;action=csv_data&amp;id_campaign=" . $campaign['id'] . "&amp;rawmode=yes'>[" . _tr('CSV Data') . "]</a>";
            $ver_campania = "&nbsp;<a href='?menu={$module_name}&amp;action=edit_campaign&amp;id_campaign=" . $campaign['id'] . "'>[" . _tr('Edit') . "]</a>";
            if ($campaign['estatus'] == 'I') {
                $arrTmp[9] = _tr('Inactive');
                $arrTmp[10] = $ver_campania . $csv_data;
            } elseif ($campaign['estatus'] == 'A') {
                $arrTmp[9] = _tr('Active');
                $arrTmp[10] = $ver_campania . $csv_data;
            } elseif ($campaign['estatus'] == 'T') {
                $arrTmp[9] = _tr('Finish');
                $arrTmp[10] = $ver_campania . $csv_data;
            }
            $arrData[] = $arrTmp;
        }
    }
    // Definición de la tabla de las campañas
    $arrGrid = array("title" => _tr("Campaigns List"), "url" => $url, "icon" => "images/list.png", "width" => "99%", "columns" => array(0 => array("name" => ''), 1 => array("name" => _tr("Name Campaign")), 2 => array("name" => _tr("Range Date")), 3 => array("name" => _tr("Schedule per Day")), 4 => array("name" => _tr("Retries")), 5 => array("name" => _tr("Trunk")), 6 => array("name" => _tr("Queue")), 7 => array("name" => _tr("Completed Calls")), 8 => array("name" => _tr("Average Time")), 9 => array("name" => _tr("Status")), 10 => array("name" => _tr("Options"))));
    // Construir el HTML del filtro
    $smarty->assign(array('MODULE_NAME' => $module_name, 'LABEL_CAMPAIGN_STATE' => _tr('Campaign state'), 'estados' => $estados, 'estado_sel' => $sEstado, 'LABEL_CREATE_CAMPAIGN' => _tr('Create New Campaign'), 'LABEL_WITH_SELECTION' => _tr('With selection'), 'LABEL_ACTIVATE' => _tr('Activate'), 'LABEL_DEACTIVATE' => _tr('Desactivate'), 'LABEL_DELETE' => _tr('Delete'), 'MESSAGE_CONTINUE_DEACTIVATE' => _tr("Are you sure you wish to continue?"), 'MESSAGE_CONTINUE_DELETE' => _tr("Are you sure you wish to delete campaign?")));
    $oGrid->showFilter($smarty->fetch("{$local_templates_dir}/filter-list-campaign.tpl"));
    $sContenido = $oGrid->fetchGrid($arrGrid, $arrData, $arrLang);
    if (strpos($sContenido, '<form') === FALSE) {
        $sContenido = "<form  method=\"POST\" style=\"margin-bottom:0;\" action=\"{$url}\">{$sContenido}</form>";
    }
    return $sContenido;
}