==== XML ==== payment_report Kayfolom ekorepov@ukhta-inform.ru authorUrl 2009 c license 1.0 description payment_report.php ==== PHP ==== registerEvent( 'onPrepareContent', 'plgPaymentReportModify' ); function plgPaymentReportModify(&$row, &$params, $page=0){ if (strpos($row->text, '_report}')!==false) { $urfa_user5 = new URFAClient_User5($_SESSION['URFA']['login'], $_SESSION['URFA']['password']); // Отчет по платежам if (strpos($row->text, '{payment_report}') > 0) { $row->text = preg_replace('/{payment_report}/', 'Отчет по платежам за год', $row->text); $report = $urfa_user5->rpcf_user5_payments_report(strtotime("-1 year"),strtotime("now")); //-0x4012 $report_table = ''; if ($report['atr_size']>0) { $report_table = ''; $report_table .= ''; for ($i=0;$i<$report['atr_size'];$i++) { $report_table .= ''; $report_table .= ''; $report_table .= ''; $report_table .= ''; $report_table .= ''; $report_table .= ''; } $report_table .= '
ДатаСуммаМетодКомментарий
'.date("d.m.Yг. H:i",$report['payment'][$i]['actual_date']).''.sprintf("%01.2fруб.",$report['payment'][$i]['payment']).''.$report['payment'][$i]['payment_method'].''.$report['payment'][$i]['comment'].'
'; } else { $report_table = 'Отсутствуют платежи за последний год'; } $row->text = preg_replace('/{payment_report_table}/', $report_table, $row->text); } // Отчет по услугам за $month_count месяцев if (strpos($row->text, '{service_report}') > 0) { $month_count = 2; // За сколько месяцев делаем отчет $row->text = preg_replace('/{service_report}/', "Отчет по услугам за $month_count месяца", $row->text); $report = $urfa_user5->rpcf_user5_service_report(strtotime("-$month_count month"),strtotime("now")); //-0x4012 $report_table = ''; if ($report['services'][0]['asr_size']>0) { $report_table = ''; $report_table .= ''; for ($i=0;$i<$report['services'][0]['asr_size'];$i++) { $report_table .= ''; $report_table .= ''; $report_table .= ''; $report_table .= ''; $report_table .= ''; } $report_table .= '
ДатаСуммаНаименование
'.date("d.m.Yг. H:i",$report['services'][0]['asr_size_array'][$i]['discount_date']).''.sprintf("%01.2fруб.",$report['services'][0]['asr_size_array'][$i]['discount']).''.$report['services'][0]['asr_size_array'][$i]['service_name'].'
'; } else { $report_table = "Отсутствуют услуги за последние $month_count месяца"; } $row->text = preg_replace('/{service_report_table}/', $report_table, $row->text); } function traffic_report($start_date, $end_date, $urfa_user5) { $report = $urfa_user5->rpcf_user5_traffic_report($start_date, $end_date); //-0x4012 $report_table = ''; $bytes_count = 0; $summ = 0; if ($report['count']>0) { $report_table = ''; $report_table .= ''; for ($i=0;$i<$report['count'];$i++) { $report_table .= ''; $report_table .= ''; $report_table .= ''; $bytes_count = $bytes_count + $report['traffic'][$i]['bytes']; $report_table .= ''; $report_table .= ''; $summ = $summ + $report['traffic'][$i]['discount']; $report_table .= ''; } $report_table .= ''; $report_table .= ''; $report_table .= '
Класс трафикаОбъем, МБЦена за МБСумма
'.$report['traffic'][$i]['tclass_name'].''.sprintf("%01.3f",$report['traffic'][$i]['bytes']/1024/1024).''.sprintf("%01.2fруб.",$report['traffic'][$i]['base_cost']).''.sprintf("%01.2fруб.",$report['traffic'][$i]['discount']).'
Итого :'.sprintf("%01.3f",$bytes_count/1024/1024).''.sprintf("%01.2fруб.",$summ).'
'; } else { $report_table = "Отчет отсутствует"; } return $report_table; } // Отчет по трафику за день if (strpos($row->text, '{traffic_day_report}') > 0) { $day_count = 1; $row->text = preg_replace('/{traffic_day_report}/', "Отчет по трафику за $day_count день ".date("d.m.Y",time()), $row->text); $report_table = traffic_report(strtotime(date("d.m.Y",time())),strtotime("now"),$urfa_user5); $row->text = preg_replace('/{traffic_day_report_table}/', $report_table, $row->text); } // Отчет по тарифку за Расчетный период /* if (strpos($row->text, '{traffic_discount_period_report}') > 0) { try { $urfa_admin = new URFAClient_Admin('test000', 'test000'); } catch (Exception $exception) { echo "Error in line ", $exception->getLine(); echo $exception->getMessage(); } $user_tariff = $urfa_admin->rpcf_get_user_tariffs($_SESSION['URFA']['user_id']); $discount_period = $urfa_admin->rpcf_get_discount_period($user_tariff['user_tariffs'][0]['discount_period_id']); $discount_period_start = date("d.m.Y H:i",$discount_period['start_date']); $discount_period_end = date("d.m.Y H:i",$discount_period['end_date']); $row->text = preg_replace('/{traffic_discount_period_report}/', "Отчет по трафику за расчетный период ".$discount_period_start.' - '.$discount_period_end, $row->text); $report_table = traffic_report($discount_period['start_date'],$discount_period['end_date'],$urfa_user5); $row->text = preg_replace('/{traffic_discount_period_report_table}/', $report_table, $row->text); } */ } }
==== SQL ==== ==== HTML ====

{payment_report}

{payment_report_table}

{traffic_day_report}

{traffic_day_report_table}

{service_report}

{service_report_table}

==== Пример ====