/** * Renders date selection form * * @return string */ function renderDateForm() { $result = ''; $selectedDate = (ubRouting::checkPost('renderdate')) ? ubRouting::post('renderdate') : curdate(); $inputs = wf_DatePickerPreset('renderdate', $selectedDate, true); $inputs .= wf_Submit(__('Show')); $result .= wf_Form('', 'POST', $inputs, 'glamour'); $result .= wf_delimiter(0); return($result); } /** * Renders payments extracted from database with some query * * @return string */ function my_PaymentsShow() { global $ubillingConfig; $result = ''; $alter_conf = $ubillingConfig->getAlter(); $alladrs = zb_AddressGetFulladdresslistCached(); $allrealnames = zb_UserGetAllRealnames(); $alltypes = zb_CashGetAllCashTypes(); $allservicenames = zb_VservicesGetAllNamesLabeled(); //getting full contract list if ($alter_conf['FINREP_CONTRACT']) { $allcontracts = zb_UserGetAllContracts(); $allcontracts = array_flip($allcontracts); } //getting all users tariffs if ($alter_conf['FINREP_TARIFF']) { $alltariffs = zb_TariffsGetAllUsers(); } //rendering date selection $renderDate = (ubRouting::checkPost('renderdate')) ? ubRouting::post('renderdate', 'mres') : curdate(); //Payments database abstraction layer $paymentsDb = new NyanORM('payments'); $paymentsDb->where('admin', '=', whoami()); $paymentsDb->where('date', 'LIKE', $renderDate . '%'); $paymentsDb->orderBy('date', 'DESC'); // Exclude some Cash types ID from query if ($ubillingConfig->getAlterParam('REPORT_FINANCE_IGNORE_ID')) { $exIdArr = array_map('trim', explode(',', $ubillingConfig->getAlterParam('REPORT_FINANCE_IGNORE_ID'))); // Create and WHERE to query if (!empty($exIdArr)) { foreach ($exIdArr as $io => $eachIgnoredCashtypeId) { $paymentsDb->where('cashtypeid', '!=', $eachIgnoredCashtypeId); } } } //gettin some payments $allPayments = $paymentsDb->getAll(); $total = 0; $totalPaycount = 0; $cashtotal = 0; $myPOStotal = 0; $bonustotal = 0; $cells = wf_TableCell(__('ID')); $cells .= wf_TableCell(__('IDENC')); $cells .= wf_TableCell(__('Date')); $cells .= wf_TableCell(__('Cash')); //optional contract display if ($alter_conf['FINREP_CONTRACT']) { $cells .= wf_TableCell(__('Contract')); } $cells .= wf_TableCell(__('Login')); $cells .= wf_TableCell(__('Full address')); $cells .= wf_TableCell(__('Real Name')); //optional tariff display if ($alter_conf['FINREP_TARIFF']) { $cells .= wf_TableCell(__('Tariff')); } $cells .= wf_TableCell(__('Cash type')); $cells .= wf_TableCell(__('Notes')); $cells .= wf_TableCell(__('Admin')); $rows = wf_TableRow($cells, 'row1'); if (!empty($allPayments)) { $eachCashType = array(); //Empty array for each existing cash type foreach ($allPayments as $io => $eachpayment) { if ($alter_conf['TRANSLATE_PAYMENTS_NOTES']) { $eachpayment['note'] = zb_TranslatePaymentNote($eachpayment['note'], $allservicenames); } $cells = wf_TableCell($eachpayment['id']); $cells .= wf_TableCell(zb_NumEncode($eachpayment['id'])); $cells .= wf_TableCell($eachpayment['date']); $cells .= wf_TableCell($eachpayment['summ']); //optional contract display if ($alter_conf['FINREP_CONTRACT']) { $cells .= wf_TableCell(@$allcontracts[$eachpayment['login']]); } $cells .= wf_TableCell(wf_Link('?module=userprofile&username=' . $eachpayment['login'], (web_profile_icon() . ' ' . $eachpayment['login']), false, '')); $cells .= wf_TableCell(@$alladrs[$eachpayment['login']]); $cells .= wf_TableCell(@$allrealnames[$eachpayment['login']]); //optional tariff display if ($alter_conf['FINREP_TARIFF']) { $cells .= wf_TableCell(@$alltariffs[$eachpayment['login']]); } $cells .= wf_TableCell(@__($alltypes[$eachpayment['cashtypeid']])); $cells .= wf_TableCell($eachpayment['note']); $cells .= wf_TableCell($eachpayment['admin']); $rows .= wf_TableRow($cells, 'row5'); if ($eachpayment['summ'] > 0) { $total = $total + $eachpayment['summ']; $totalPaycount++; } //Count each payment type separately if ($eachpayment['summ'] > 0) { } //Count cash if ($eachpayment['summ'] > 0) { if ($eachpayment['cashtypeid'] == '1') { $cashtotal = $cashtotal + $eachpayment['summ']; } } //Count myPOS if ($eachpayment['summ'] > 0) { if ($eachpayment['cashtypeid'] == '7') { $myPOStotal = $myPOStotal + $eachpayment['summ']; } } //Count bonus if ($eachpayment['summ'] > 0) { if ($eachpayment['cashtypeid'] == '6') { $bonustotal = $bonustotal + $eachpayment['summ']; } } } } $result = renderDateForm(); $result .= wf_TableBody($rows, '100%', '0', 'sortable'); $result .= wf_tag('strong') . __('Cash') . ': ' . $cashtotal . wf_tag('strong', true) . wf_tag('br'); $result .= wf_tag('strong') . __('myPOS') . ': ' . $myPOStotal . wf_tag('strong', true) . wf_tag('br'); $result .= wf_tag('strong') . __('Bonus') . ': ' . $bonustotal . wf_tag('strong', true) . wf_tag('br'); $result .= wf_tag('strong') . __('Total') . ': ' . $total . wf_tag('strong', true) . wf_tag('br'); $result .= wf_tag('strong') . __('Count') . ': ' . $totalPaycount . wf_tag('strong', true); return($result); } // render some payments by date if (ubRouting::checkPost('renderdate')) { $reportTitle = __('Payments by') . ' ' . ubRouting::post('renderdate'); } else { $reportTitle = __('Today payments'); } show_window($reportTitle, my_PaymentsShow());