/** * Renders year-month search interface * * @return void */ function web_CardShowDateForm() { $curmonth = wf_CheckPost(array('monthsel')) ? vf($_POST['monthsel'], 3) : date("m"); $curyear = wf_CheckPost(array('yearsel')) ? vf($_POST['yearsel'], 3) : date("Y"); $inputs = wf_YearSelectorPreset('yearsel', __('Year'), false, $curyear) . ' '; $inputs .= wf_MonthSelector('monthsel', 'Month', $curmonth, false); $inputs .= wf_Submit('Show'); $form = wf_Form("", 'POST', $inputs, 'glamour'); show_window(__('Date'), $form); }
$today = curdate(); show_window(__('Today payments'), web_PaymentsShow("SELECT * from `payments` WHERE `date` LIKE '" . $today . "%' ORDER by `date` DESC;")); } } else { // show monthly payments $paymonth = mysql_real_escape_string($_GET['month']); show_window(__('Month payments'), web_PaymentsShow("SELECT * from `payments` WHERE `date` LIKE '" . $paymonth . "%' ORDER by `date` DESC;")); } } else { //show finance analytics info if (wf_CheckPost(array('anyearsel'))) { $currentYear = $_POST['anyearsel']; } else { $currentYear = date("Y"); } $yearinputs = wf_YearSelectorPreset('anyearsel', __('Year'), false, $currentYear) . ' '; $yearinputs .= wf_Submit(__('Show')); $yearform = wf_Form("", 'POST', $yearinputs, 'glamour'); show_window(__('Analytics'), $yearform); $graphs = wf_Link("?module=report_finance", __('Back'), true, 'ubButton'); $ubCache = new UbillingCache(); //try to cache rendered charts $graphs .= $ubCache->getCallback('ANALYTICSCHARTS_' . $currentYear, function () { if (wf_CheckPost(array('anyearsel'))) { $currentYear = $_POST['anyearsel']; } else { $currentYear = date("Y"); } return web_AnalyticsAllGraphs($currentYear); }, 3600); show_window('', $graphs);
/** * Returns openpayz search form * * @return string */ public function renderSearchForm() { $curYear = wf_CheckPost(array('searchyear')) ? vf($_POST['searchyear'], 3) : date("Y"); $curMonth = wf_CheckPost(array('searchmonth')) ? vf($_POST['searchmonth'], 3) : date("m"); $curPaysys = wf_CheckPost(array('searchpaysys')) ? vf($_POST['searchpaysys']) : ''; /** * No lights, no sights, every fright, every night * Alone, hurt and cold, she‘s shackled to the pipes */ $paySysSelector['ANY'] = __('All'); $paySysSelector += $this->allPaySys; $inputs = wf_YearSelectorPreset('searchyear', __('Year'), false, $curYear) . ' '; $inputs .= wf_MonthSelector('searchmonth', __('Month'), $curMonth, false) . ' '; $inputs .= wf_Selector('searchpaysys', $paySysSelector, __('Payment system'), $curPaysys, false) . ' '; $inputs .= wf_Submit(__('Search')); $result = wf_Form("", 'POST', $inputs, 'glamour'); return $result; }
/** * returns module control panel * * @return string */ protected function panel() { $result = wf_Link('?module=report_finance', __('Back'), false, 'ubButton'); $result .= wf_modal(web_icon_settings() . ' ' . __('Settings'), __('Settings'), $this->configForm(), 'ubButton', '700', '200'); $result .= wf_delimiter(); $monthArr = months_array_localized(); $inputs = wf_YearSelectorPreset('yearsel', __('Year'), false, $this->year); $inputs .= wf_Selector('monthsel', $monthArr, __('Month'), $this->month, false); $inputs .= wf_Submit(__('Show')); $result .= wf_Form('', 'POST', $inputs, 'glamour'); $result .= wf_CleanDiv(); return $result; }
/** * Renders report for some year * * @return string */ public function renderReport() { $result = ''; $months = months_array_localized(); $yearData = $this->loadStoredData(); $inputs = wf_YearSelectorPreset('yearsel', __('Year'), false, $this->showYear) . ' '; $chartsFlag = wf_CheckPost(array('showcharts')) ? true : false; $inputs .= wf_CheckInput('showcharts', __('Graphs'), false, $chartsFlag) . ' '; $inputs .= wf_Submit(__('Show')); $yearForm = wf_Form('', 'POST', $inputs, 'glamour'); $yearForm .= wf_CleanDiv(); $result .= $yearForm; //charts presets $chartsOptions = "\n 'focusTarget': 'category',\n 'hAxis': {\n 'color': 'none',\n 'baselineColor': 'none',\n },\n 'vAxis': {\n 'color': 'none',\n 'baselineColor': 'none',\n },\n 'curveType': 'function',\n 'pointSize': 5,\n 'crosshair': {\n trigger: 'none'\n },"; $usersChartData = array(0 => array(__('Month'), __('Total'), __('Active'), __('Inactive'), __('Frozen'), __('Signups'))); $complexChartData = array(0 => array(__('Month'), __('Total'), __('Active'), __('Inactive'))); $financeChartsData = array(0 => array(__('Month'), __('Money'), __('Payments count'), __('ARPU'), __('ARPAU'))); $ukvChartData = array(0 => array(__('Month'), __('Total'), __('Active'), __('Inactive'), __('Illegal'), __('Complex'), __('Social'), __('Signups'))); $ukvfChartData = array(0 => array(__('Month'), __('Money'), __('Payments count'), __('ARPU'), __('ARPAU'), __('Debt'))); $askoziaChartData = array(0 => array(__('Month'), __('Total calls'), __('Total answered'), __('No answer'))); $equipChartData = array(0 => array(__('Month'), __('Switches'), __('PON ONU'), __('DOCSIS modems'))); if (!empty($yearData)) { //internet users $cells = wf_TableCell(__('Month')); $cells .= wf_TableCell(__('Total')); $cells .= wf_TableCell(__('Active')); $cells .= wf_TableCell(__('Inactive')); $cells .= wf_TableCell(__('Frozen')); $cells .= wf_TableCell(__('Signups')); $rows = wf_TableRow($cells, 'row1'); foreach ($yearData as $monthNum => $each) { $cells = wf_TableCell($months[$monthNum]); $cells .= wf_TableCell($each['u_totalusers']); $cells .= wf_TableCell($each['u_activeusers'] . ' (' . $this->percentValue($each['u_totalusers'], $each['u_activeusers']) . '%)'); $cells .= wf_TableCell($each['u_inactiveusers'] . ' (' . $this->percentValue($each['u_totalusers'], $each['u_inactiveusers']) . '%)'); $cells .= wf_TableCell($each['u_frozenusers'] . ' (' . $this->percentValue($each['u_totalusers'], $each['u_frozenusers']) . '%)'); if (!empty($each['u_citysignups'])) { $signupData = ''; $sigDataTmp = base64_decode($each['u_citysignups']); $sigDataTmp = unserialize($sigDataTmp); $citySigs = ''; $cityRows = ''; if (!empty($sigDataTmp)) { $cityCells = wf_TableCell(__('City')); $cityCells .= wf_TableCell(__('Signups')); $cityRows .= wf_TableRow($cityCells, 'row1'); foreach ($sigDataTmp as $sigCity => $cityCount) { $cityCells = wf_TableCell($sigCity); $cityCells .= wf_TableCell($cityCount); $cityRows .= wf_TableRow($cityCells, 'row3'); } $citySigs .= wf_TableBody($cityRows, '100%', 0, ''); } $signupData .= wf_modalAuto($each['u_signups'], __('Cities'), $citySigs); } else { $signupData = $each['u_signups']; } $cells .= wf_TableCell($signupData); $rows .= wf_TableRow($cells, 'row3'); //chart data $usersChartData[] = array($months[$monthNum], $each['u_totalusers'], $each['u_activeusers'], $each['u_inactiveusers'], $each['u_frozenusers'], $each['u_signups']); } $result .= wf_tag('h2') . __('Internets users') . wf_tag('h2', true); $result .= wf_TableBody($rows, '100%', 0, ''); if ($chartsFlag) { $result .= wf_gchartsLine($usersChartData, __('Internets users'), '100%', '300px', $chartsOptions); } //complex data if ($this->complexFlag) { $result .= wf_tag('h2') . __('Complex services') . wf_tag('h2', true); $cells = wf_TableCell(__('Month')); $cells .= wf_TableCell(__('Total')); $cells .= wf_TableCell(__('Active')); $cells .= wf_TableCell(__('Inactive')); $rows = wf_TableRow($cells, 'row1'); foreach ($yearData as $monthNum => $each) { $cells = wf_TableCell($months[$monthNum]); $cells .= wf_TableCell($each['u_complextotal']); $cells .= wf_TableCell($each['u_complexactive'] . ' (' . $this->percentValue($each['u_complextotal'], $each['u_complexactive']) . '%)'); $cells .= wf_TableCell($each['u_complexinactive'] . ' (' . $this->percentValue($each['u_complextotal'], $each['u_complexinactive']) . '%)'); $rows .= wf_TableRow($cells, 'row3'); //chart data $complexChartData[] = array($months[$monthNum], $each['u_complextotal'], $each['u_complexactive'], $each['u_complexinactive']); } $result .= wf_TableBody($rows, '100%', 0, ''); if ($chartsFlag) { $result .= wf_gchartsLine($complexChartData, __('Complex services'), '100%', '300px', $chartsOptions); } } //finance data $result .= wf_tag('h2') . __('Financial highlights') . wf_tag('h2', true); $cells = wf_TableCell(__('Month')); $cells .= wf_TableCell(__('Money')); $cells .= wf_TableCell(__('Payments count')); $cells .= wf_TableCell(__('Cash payments')); $cells .= wf_TableCell(__('Cash payments count')); $cells .= wf_TableCell(__('ARPU')); $cells .= wf_TableCell(__('ARPAU')); $rows = wf_TableRow($cells, 'row1'); foreach ($yearData as $monthNum => $each) { $cells = wf_TableCell($months[$monthNum]); $cells .= wf_TableCell($each['f_totalmoney']); $cells .= wf_TableCell($each['f_paymentscount']); $cells .= wf_TableCell($each['f_cashmoney'] . ' (' . $this->percentValue($each['f_totalmoney'], $each['f_cashmoney']) . '%)'); $cells .= wf_TableCell($each['f_cashcount'] . ' (' . $this->percentValue($each['f_paymentscount'], $each['f_cashcount']) . '%)'); $cells .= wf_TableCell($each['f_arpu']); $cells .= wf_TableCell($each['f_arpau']); $rows .= wf_TableRow($cells, 'row3'); //chart data $financeChartsData[] = array($months[$monthNum], $each['f_totalmoney'], $each['f_paymentscount'], $each['f_arpu'], $each['f_arpau']); } $result .= wf_TableBody($rows, '100%', 0, ''); if ($chartsFlag) { $result .= wf_gchartsLine($financeChartsData, __('Financial highlights'), '100%', '300px', $chartsOptions); } // UKV cable users if ($this->ukvFlag) { $result .= wf_tag('h2') . __('UKV users') . wf_tag('h2', true); $cells = wf_TableCell(__('Month')); $cells .= wf_TableCell(__('Total')); $cells .= wf_TableCell(__('Active')); $cells .= wf_TableCell(__('Inactive')); $cells .= wf_TableCell(__('Illegal')); if ($this->complexFlag) { $cells .= wf_TableCell(__('Complex')); } $cells .= wf_TableCell(__('Social')); $cells .= wf_TableCell(__('Signups')); $rows = wf_TableRow($cells, 'row1'); foreach ($yearData as $monthNum => $each) { $cells = wf_TableCell($months[$monthNum]); $cells .= wf_TableCell($each['c_totalusers']); $cells .= wf_TableCell($each['c_activeusers'] . ' (' . $this->percentValue($each['c_totalusers'], $each['c_activeusers']) . '%)'); $cells .= wf_TableCell($each['c_inactiveusers'] . ' (' . $this->percentValue($each['c_totalusers'], $each['c_inactiveusers']) . '%)'); $cells .= wf_TableCell($each['c_illegal'] . ' (' . $this->percentValue($each['c_totalusers'], $each['c_illegal']) . '%)'); if ($this->complexFlag) { $cells .= wf_TableCell($each['c_complex'] . ' (' . $this->percentValue($each['c_totalusers'], $each['c_complex']) . '%)'); } $cells .= wf_TableCell($each['c_social'] . ' (' . $this->percentValue($each['c_totalusers'], $each['c_social']) . '%)'); $cells .= wf_TableCell($each['c_signups']); $rows .= wf_TableRow($cells, 'row3'); //chart data $ukvChartData[] = array($months[$monthNum], $each['c_totalusers'], $each['c_activeusers'], $each['c_inactiveusers'], $each['c_illegal'], $each['c_complex'], $each['c_social'], $each['c_signups']); } $result .= wf_TableBody($rows, '100%', 0, ''); if ($chartsFlag) { $result .= wf_gchartsLine($ukvChartData, __('UKV users'), '100%', '300px', $chartsOptions); } //UKV financial data $result .= wf_tag('h2') . __('UKV finance') . wf_tag('h2', true); $cells = wf_TableCell(__('Month')); $cells .= wf_TableCell(__('Money')); $cells .= wf_TableCell(__('Payments count')); $cells .= wf_TableCell(__('ARPU')); $cells .= wf_TableCell(__('ARPAU')); $cells .= wf_TableCell(__('Debt')); $rows = wf_TableRow($cells, 'row1'); foreach ($yearData as $monthNum => $each) { $cells = wf_TableCell($months[$monthNum]); $cells .= wf_TableCell($each['c_totalmoney']); $cells .= wf_TableCell($each['c_paymentscount']); $cells .= wf_TableCell($each['c_arpu']); $cells .= wf_TableCell($each['c_arpau']); $cells .= wf_TableCell($each['c_totaldebt']); $rows .= wf_TableRow($cells, 'row3'); //chart data $ukvfChartData[] = array($months[$monthNum], $each['c_totalmoney'], $each['c_paymentscount'], $each['c_arpu'], $each['c_arpau'], $each['c_totaldebt']); } $result .= wf_TableBody($rows, '100%', 0, ''); if ($chartsFlag) { $result .= wf_gchartsLine($ukvfChartData, __('UKV users'), '100%', '300px', $chartsOptions); } } //Askozia PBX if ($this->askoziaFlag) { $result .= wf_tag('h2') . __('AskoziaPBX integration') . wf_tag('h2', true); $cells = wf_TableCell(__('Month')); $cells .= wf_TableCell(__('Incoming calls')); $cells .= wf_TableCell(__('Total answered')); $cells .= wf_TableCell(__('No answer')); $cells .= wf_TableCell(__('Total duration')); $cells .= wf_TableCell(__('Average duration')); $cells .= wf_TableCell(__('Answers percent')); $rows = wf_TableRow($cells, 'row1'); foreach ($yearData as $monthNum => $each) { $cells = wf_TableCell($months[$monthNum]); $cells .= wf_TableCell($each['a_totalcalls']); $cells .= wf_TableCell($each['a_totalanswered']); $cells .= wf_TableCell($each['a_totalcalls'] - $each['a_totalanswered']); $cells .= wf_TableCell($this->formatTime($each['a_totalcallsduration'])); $cells .= wf_TableCell($this->formatTime($each['a_averagecallduration'])); $cells .= wf_TableCell($this->percentValue($each['a_totalcalls'], $each['a_totalanswered']) . '%'); $rows .= wf_TableRow($cells, 'row3'); //chart data $askoziaChartData[] = array($months[$monthNum], $each['a_totalcalls'], $each['a_totalanswered'], $each['a_totalcalls'] - $each['a_totalanswered']); } $result .= wf_TableBody($rows, '100%', 0, ''); if ($chartsFlag) { $result .= wf_gchartsLine($askoziaChartData, __('Askozia'), '100%', '300px', $chartsOptions); } } //Equipment $result .= wf_tag('h2') . __('Equipment') . wf_tag('h2', true); $cells = wf_TableCell(__('Month')); $cells .= wf_TableCell(__('Switches')); if ($this->ponFlag) { $cells .= wf_TableCell(__('PON ONU')); } if ($this->docsisFlag) { $cells .= wf_TableCell(__('DOCSIS Modems')); } $rows = wf_TableRow($cells, 'row1'); foreach ($yearData as $monthNum => $each) { $cells = wf_TableCell($months[$monthNum]); $cells .= wf_TableCell($each['e_switches']); if ($this->ponFlag) { $cells .= wf_TableCell($each['e_pononu']); } if ($this->docsisFlag) { $cells .= wf_TableCell($each['e_docsis']); } $rows .= wf_TableRow($cells, 'row3'); //chart data $equipChartData[] = array($months[$monthNum], $each['e_switches'], $each['e_pononu'], $each['e_docsis']); } $result .= wf_TableBody($rows, '100%', 0, ''); if ($chartsFlag) { $result .= wf_gchartsLine($equipChartData, __('Equipment'), '100%', '300px', $chartsOptions); } } else { $result .= $this->messages->getStyledMessage(__('Nothing found'), 'info'); } return $result; }