Advertisement
dprophit

WHMCS Client Report

Jun 28th, 2013
37
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 3.98 KB | None | 0 0
  1. <?php
  2.  
  3. if (!defined("WHMCS"))
  4.     die("This file cannot be accessed directly");
  5.  
  6. $reportdata["title"] = "Clients";
  7.  
  8. $filterfields = array("id"=>"ID","firstname"=>"First Name","lastname"=>"Last Name","domain"=>"Domain Name","companyname"=>"Company Name","email"=>"Email","address1"=>"Address 1","address2"=>"Address 2","city"=>"City","state"=>"State","postcode"=>"Postcode","country"=>"Country","phonenumber"=>"Phone Number","currency"=>"Currency","groupid"=>"Client Group ID","credit"=>"Credit","datecreated"=>"Creation Date","notes"=>"Notes","status"=>"Status");
  9.  
  10. $reportdata["description"] = $reportdata["headertext"] = '';
  11.  
  12. $incfields = $whmcs->get_req_var('incfields');
  13. $filterfield = $whmcs->get_req_var('filterfield');
  14. $filtertype = $whmcs->get_req_var('filtertype');
  15. $filterq = $whmcs->get_req_var('filterq');
  16. if (!is_array($incfields)) $incfields = array();
  17. if (!is_array($filterfield)) $filterfield = array();
  18. if (!is_array($filtertype)) $filtertype = array();
  19. if (!is_array($filterq)) $filterq = array();
  20.  
  21. if (!$print) {
  22.  
  23.     $reportdata["description"] = "This report can be used to generate a custom export of clients by applying up to 5 filters. CSV Export is available via the download link at the bottom of the page.";
  24.  
  25.     $reportdata["headertext"] = '<form method="post" action="reports.php?report='.$report.'">
  26. <table class="form" width="100%" border="0" cellspacing="2" cellpadding="3">
  27. <tr><td width="20%" class="fieldlabel">Fields to Include</td><td class="fieldarea"><table width="100%"><tr>';
  28.     $i=0;
  29.     foreach ($filterfields AS $k=>$v) {
  30.         $reportdata["headertext"] .= '<td width="20%"><input type="checkbox" name="incfields[]" value="'.$k.'" id="fd'.$k.'"';
  31.         if (in_array($k,$incfields)) $reportdata["headertext"] .= ' checked';
  32.         $reportdata["headertext"] .= ' /> <label for="fd'.$k.'">'.$v.'</labe></td>'; $i++;
  33.         if (($i%5)==0) $reportdata["headertext"] .= '</tr><tr>';
  34.     }
  35.     $reportdata["headertext"] .= '</tr></table></td></tr>';
  36.  
  37.     for ( $i = 1; $i <= 5; $i ++ ) {
  38.         $reportdata["headertext"] .= '<tr><td width="20%" class="fieldlabel">Filter '.$i.'</td><td class="fieldarea"><select name="filterfield['.$i.']"><option value="">None</option>';
  39.         foreach ($filterfields AS $k=>$v) {
  40.             $reportdata["headertext"] .= '<option value="'.$k.'"';
  41.             if (isset($filterfield[$i]) && $filterfield[$i]==$k) $reportdata["headertext"] .= ' selected';
  42.             $reportdata["headertext"] .= '>'.$v.'</option>';
  43.         }
  44.         $reportdata["headertext"] .= '</select> <select name="filtertype['.$i.']"><option>Exact Match</option><option value="like"';
  45.         if (isset($filtertype[$i]) && $filtertype[$i]=="like") $reportdata["headertext"] .= ' selected';
  46.         $reportdata["headertext"] .= '>Containing</option></select> <input type="text" name="filterq['.$i.']" size="30" value="'.(isset($filterq[$i])?$filterq[$i]:'').'" /></td></tr>';
  47.     }
  48.     $reportdata["headertext"] .= '</table>
  49. <p align="center"><input type="submit" value="Filter" /></p>
  50. </form>';
  51.  
  52. }
  53.  
  54. if (count($incfields)) {
  55.  
  56.     $filters = array();
  57.     foreach ($filterfield AS $i=>$val) {
  58.         if ($val && array_key_exists($val,$filterfields)) $filters[$val] = ($filtertype[$i]=="like") ? array("sqltype"=>"LIKE","value"=>$filterq[$i]) : $filterq[$i];
  59.     }
  60.  
  61.     $fieldlist = array();
  62.     foreach ($incfields AS $fieldname) {
  63.         if (array_key_exists($fieldname,$filterfields)) {
  64.             $reportdata["tableheadings"][] = $filterfields[$fieldname];
  65.             $fieldlist[] = $fieldname;
  66.         }
  67.     }
  68.  
  69.     $result = select_query("tblclients",implode(',',$fieldlist),$filters);
  70.     while ($data = mysql_fetch_assoc($result)) {
  71.         if (isset($data['currency'])) $data['currency'] = get_query_val("tblcurrencies","code",array("id"=>$data['currency']));
  72.         else if (isset($data['domain'])) $data['domain'] = get_query_val("tblhosting","domain",array("id"=>$data['domain']));
  73.         $reportdata["tablevalues"][] = $data;
  74.     }
  75.  
  76. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement