Ejemplo n.º 1
0
 /**
  *  generate grid HTML code
  *  @param	start		int			record start
  *  @param	limit		int			how many records need
  *  @param	filter		string		the field need to search
  *  @param	content		string		the contect want to match
  *  @param	divName		string		which div grid want to be put
  *  @param	order		string		data order
  *  @return	html		string		grid HTML code
  */
 function createTikcetGrid($Cid = 0, $Ctype = "", $start = 0, $limit = 1, $filter = null, $content = null, $order = null, $divName = "", $ordering = "", $stype = array())
 {
     global $locate;
     $_SESSION['ordering'] = $ordering;
     if ($filter == null or $content == null or $content == 'Array' or $filter == 'Array') {
         $numRows =& astercrm::getTicketNumRows($filter, $content, $Ctype, $Cid);
         $arreglo =& astercrm::getAllTicketRecords($start, $limit, $order, $Ctype, $Cid);
         $content = null;
         $filter = null;
     } else {
         foreach ($content as $value) {
             if (trim($value) != "") {
                 //搜索内容有值
                 $flag = "1";
                 break;
             }
         }
         foreach ($filter as $value) {
             if (trim($value) != "") {
                 //搜索条件有值
                 $flag2 = "1";
                 break;
             }
         }
         foreach ($stype as $value) {
             if (trim($value) != "") {
                 //搜索方式有值
                 $flag3 = "1";
                 break;
             }
         }
         if ($flag != "1" || $flag2 != "1") {
             //无值
             $numRows =& astercrm::getTicketNumRows($filter, $content, $Ctype, $Cid);
             $arreglo =& astercrm::getAllTicketRecords($start, $limit, $order, $Ctype, $Cid);
         } elseif ($flag3 != 1) {
             $order = "id";
             $numRows =& astercrm::getTicketNumRowsMore($filter, $content, $Ctype, $Cid);
             $arreglo =& astercrm::getTicketRecordsFilteredMore($start, $limit, $filter, $content, $order, $Ctype, $Cid);
         } else {
             $order = "id";
             $numRows =& astercrm::getTicketNumRowsMorewithstype($filter, $content, $stype, $table, $Ctype, $Cid);
             $arreglo =& astercrm::getTicketRecordsFilteredMorewithstype($start, $limit, $filter, $content, $stype, $order, $table, $Ctype, $Cid);
         }
     }
     // Select Box: type table.
     $typeFromSearch = array();
     $typeFromSearch[] = 'like';
     $typeFromSearch[] = 'equal';
     $typeFromSearch[] = 'more';
     $typeFromSearch[] = 'less';
     // Selecct Box: Labels showed on searchtype select box.
     $typeFromSearchShowAs = array();
     $typeFromSearchShowAs[] = $locate->Translate("like");
     $typeFromSearchShowAs[] = '=';
     $typeFromSearchShowAs[] = '>';
     $typeFromSearchShowAs[] = '<';
     // Editable zone
     // Databse Table: fields
     $fields = array();
     if ($Ctype == 'agent_tickets') {
         $fields[] = 'id';
         $fields[] = 'ticketname';
         $fields[] = 'customer';
         $fields[] = 'status';
         $fields[] = 'memo';
         $fields[] = 'creby';
     } else {
         $fields[] = 'id';
         $fields[] = 'ticketcategoryname';
         $fields[] = 'ticketname';
         $fields[] = 'customer';
         $fields[] = 'assignto';
         $fields[] = 'status';
         $fields[] = 'memo';
         $fields[] = 'creby';
     }
     // HTML table: Headers showed
     $headers = array();
     $headers[] = $locate->Translate("Ticket Id");
     if ($Ctype != 'agent_tickets') {
         $headers[] = $locate->Translate("TicketCategory Name");
     }
     $headers[] = $locate->Translate("Ticket Name");
     $headers[] = $locate->Translate("Customer");
     if ($Ctype != 'agent_tickets') {
         $headers[] = $locate->Translate("AssignTo");
     }
     $headers[] = $locate->Translate("Status");
     $headers[] = $locate->Translate("Memo");
     $headers[] = $locate->Translate("Creby");
     if ($Ctype == 'agent_tickets') {
         // HTML table: hearders attributes
         $attribsHeader = array();
         $attribsHeader[] = 'width="15%"';
         $attribsHeader[] = 'width="20%"';
         $attribsHeader[] = 'width="20%"';
         $attribsHeader[] = 'width="10%"';
         $attribsHeader[] = 'width="20%"';
         $attribsHeader[] = 'width="15%"';
         // HTML Table: columns attributes
         $attribsCols = array();
         $attribsCols[] = 'style="text-align: left"';
         $attribsCols[] = 'style="text-align: left"';
         $attribsCols[] = 'style="text-align: left"';
         $attribsCols[] = 'style="text-align: left"';
         $attribsCols[] = 'style="text-align: left"';
     } else {
         // HTML table: hearders attributes
         $attribsHeader = array();
         $attribsHeader[] = 'width=""';
         $attribsHeader[] = 'width=""';
         $attribsHeader[] = 'width=""';
         $attribsHeader[] = 'width=""';
         $attribsHeader[] = 'width=""';
         $attribsHeader[] = 'width=""';
         $attribsHeader[] = 'width=""';
         // HTML Table: columns attributes
         $attribsCols = array();
         $attribsCols[] = 'style="text-align: left"';
         $attribsCols[] = 'style="text-align: left"';
         $attribsCols[] = 'style="text-align: left"';
         $attribsCols[] = 'style="text-align: left"';
         $attribsCols[] = 'style="text-align: left"';
         $attribsCols[] = 'style="text-align: left"';
         $attribsCols[] = 'style="text-align: left"';
     }
     // HTML Table: If you want ascendent and descendent ordering, set the Header Events.
     $eventHeader = array();
     if ($Ctype == 'agent_tickets') {
         $XajaxMath = 'showMyTicketsGrid';
     } else {
         $XajaxMath = 'AllTicketOfMyGrid';
     }
     $eventHeader[] = 'onClick=\'' . $XajaxMath . '(' . $Cid . ',"' . $Ctype . '",0,' . $limit . ',"' . $filter . '","' . $content . '","id","' . $divName . '","ORDERING");return false;\'';
     if ($Ctype != 'agent_tickets') {
         $eventHeader[] = 'onClick=\'' . $XajaxMath . '(' . $Cid . ',"' . $Ctype . '",0,' . $limit . ',"' . $filter . '","' . $content . '","ticketcategoryname","' . $divName . '","ORDERING");return false;\'';
     }
     $eventHeader[] = 'onClick=\'' . $XajaxMath . '(' . $Cid . ',"' . $Ctype . '",0,' . $limit . ',"' . $filter . '","' . $content . '","ticketname","' . $divName . '","ORDERING");return false;\'';
     $eventHeader[] = 'onClick=\'' . $XajaxMath . '(' . $Cid . ',"' . $Ctype . '",0,' . $limit . ',"' . $filter . '","' . $content . '","customer","' . $divName . '","ORDERING");return false;\'';
     if ($Ctype != 'agent_tickets') {
         $eventHeader[] = 'onClick=\'' . $XajaxMath . '(' . $Cid . ',"' . $Ctype . '",0,' . $limit . ',"' . $filter . '","' . $content . '","username","' . $divName . '","ORDERING");return false;\'';
     }
     $eventHeader[] = 'onClick=\'' . $XajaxMath . '(' . $Cid . ',"' . $Ctype . '",0,' . $limit . ',"' . $filter . '","' . $content . '","status","' . $divName . '","ORDERING");return false;\'';
     $eventHeader[] = 'onClick=\'' . $XajaxMath . '(' . $Cid . ',"' . $Ctype . '",0,' . $limit . ',"' . $filter . '","' . $content . '","memo","' . $divName . '","ORDERING");return false;\'';
     $eventHeader[] = 'onClick=\'' . $XajaxMath . '(' . $Cid . ',"' . $Ctype . '",0,' . $limit . ',"' . $filter . '","' . $content . '","creby","' . $divName . '","ORDERING");return false;\'';
     // Select Box: fields table.
     $fieldsFromSearch = array();
     if ($Ctype != 'agent_tickets') {
         $fieldsFromSearch[] = 'ticketcategoryname';
     }
     $fieldsFromSearch[] = 'ticketname';
     $fieldsFromSearch[] = 'customer';
     if ($Ctype != 'agent_tickets') {
         $fieldsFromSearch[] = 'username';
     }
     //$fieldsFromSearch[] = 'status';
     //$fieldsFromSearch[] = 'memo';
     $fieldsFromSearch[] = 'creby';
     // Selecct Box: Labels showed on search select box.
     $fieldsFromSearchShowAs = array();
     if ($Ctype != 'agent_tickets') {
         $fieldsFromSearchShowAs[] = $locate->Translate("TicketCategory Name");
     }
     $fieldsFromSearchShowAs[] = $locate->Translate("Ticket Name");
     $fieldsFromSearchShowAs[] = $locate->Translate("Customer");
     if ($Ctype != 'agent_tickets') {
         $fieldsFromSearchShowAs[] = $locate->Translate("AssignTo");
     }
     //$fieldsFromSearchShowAs[] = $locate->Translate("Status");
     //$fieldsFromSearchShowAs[] = $locate->Translate("Memo");
     $fieldsFromSearchShowAs[] = $locate->Translate("Creby");
     // Create object whit 5 cols and all data arrays set before.
     $table = new ScrollTable(7, $start, $limit, $filter, $numRows, $content, $order, $Cid, $cdrtype, $userexten, $table = 'ticket_details', $divName);
     #$table = new ScrollTable(7,$start,$limit,$filter,$numRows,$content,$order,$customerid,$cdrtype);
     $table->setHeader('title', $headers, $attribsHeader, $eventHeader, 0, 0, 0);
     $table->ordering = $ordering;
     //echo $divName;exit;
     if ($divName == 'formCurTickets') {
         $stype = 'none';
         $table->addRowSearchMore("add_new_tickets", $fieldsFromSearch, $fieldsFromSearchShowAs, $filter, $content, $start, $limit, 1, 0, $typeFromSearch, $typeFromSearchShowAs, $stype);
     } else {
         $table->addRowSearchMore("ticket_details", $fieldsFromSearch, $fieldsFromSearchShowAs, $filter, $content, $start, $limit, 0, 0, $typeFromSearch, $typeFromSearchShowAs, $stype);
     }
     while ($arreglo->fetchInto($row)) {
         // Change here by the name of fields of its database table
         $rowc = array();
         $rowc[] = $row['id'];
         $rowc[] = str_pad($row['id'], 8, '0', STR_PAD_LEFT);
         if ($Ctype != 'agent_tickets') {
             $rowc[] = $row['ticketcategoryname'];
         }
         $rowc[] = $row['ticketname'];
         $rowc[] = $row['customer'];
         if ($Ctype != 'agent_tickets') {
             $rowc[] = $row['username'];
         }
         $rowc[] = $locate->Translate($row['status']);
         $rowc[] = $row['memo'];
         $rowc[] = $row['creby'];
         $table->addRow("ticket_details", $rowc, 0, 0, 0, $divName, $fields);
     }
     if ($divName == 'formCurTickets') {
         $html = $table->render('');
         //static
     } else {
         $html = $table->render('static');
     }
     return $html;
 }