ProShell v2.0
Dashboard
Server Info
Server: 158.106.128.192
PHP: 8.2.33
home
planet5
public_html
bansibaba.com
wp-includes
2026-09-15 01:06:09
Editing: AdminRebillsController.php
Cancel
Save Changes
<?php class Cc_AdminRebillsController extends Am_Controller_Grid { public function checkAdminPermissions(Admin $admin) { return $admin->hasPermission('cc'); } public function emptyZero($v) { return $v ? $v : ''; } protected function createAdapter() { $q = new Am_Query(new CcRebillTable); $q->clearFields(); $q->groupBy('rebill_date'); $q->addField('rebill_date'); $q->addField('COUNT(t.rebill_date)', 'total'); $q->addField('SUM(IF(t.status=0, 1, 0))', 'status_0'); $q->addField('SUM(IF(t.status=1, 1, 0))', 'status_1'); $q->addField('SUM(IF(t.status=2, 1, 0))', 'status_2'); $q->addField('SUM(IF(t.status=3, 1, 0))', 'status_3'); $q->addField('SUM(IF(t.status=4, 1, 0))', 'status_4'); $u = new Am_Query(new InvoiceTable, 'i'); $u->groupBy('rebill_date'); $u->clearFields()->addField('i.rebill_date'); for ($i=0;$i<6;$i++) $u->addField('(NULL)'); $u->leftJoin('?_cc_rebill', 't', 't.rebill_date=i.rebill_date'); $u->addWhere('i.rebill_date IS NOT NULL'); $u->addWhere('t.rebill_date IS NULL'); $q->addUnion($u); $q->addOrder('rebill_date',true); return $q; } public function createGrid() { $grid = new Am_Grid_ReadOnly('_r', 'Rebills by Date', $this->createAdapter(), $this->_request, $this->view); $grid->setPermissionId('cc'); $grid->addField('rebill_date', 'Date', true)->setRenderFunction(array($this, 'renderDate')); $grid->addField('status_0', 'Processing Not Finished', true)->setFormatFunction(array($this, 'emptyZero')); $grid->addField('status_1', 'No CC Saved', true)->setFormatFunction(array($this, 'emptyZero')); $grid->addField('status_2', 'Error', true)->setFormatFunction(array($this, 'emptyZero')); $grid->addField('status_3', 'Success', true)->setFormatFunction(array($this, 'emptyZero')); $grid->addField('status_4', 'Exception!', true)->setFormatFunction(array($this, 'emptyZero')); $grid->addField('total', 'Total Records', true)->setFormatFunction(array($this, 'emptyZero')); $grid->addField('_action', '', true)->setRenderFunction(array($this, 'renderLink')); return $grid; } public function renderDate(CcRebill $obj) { $raw = $obj->rebill_date; $d = amDate($raw); return $this->renderTd("$d<input type='hidden' name='raw-date' value='$raw' />", false); } public function renderLink(CcRebill $obj) { return $this->renderTd("<a href='javascript:' class='run' id='run-{$obj->rebill_date}'>run</a>", false); } public function getInvoiceLink(CcRebill $record) { return $this->renderTd($record->invoice_id, false); } public function init() { parent::init(); $this->view->headScript()->appendScript($this->getJs()); $this->view->placeholder('after-content')->append( "<br /><br />" . "<div id='detail'></div>" . "<div id='run-form' style='display:none'>" . (string)$this->createRunForm() . "</div>"); } public function getJs() { return <<<CUT function bindClicks(){ $("#grid-r a.run").bind('click', function(event){ event.stopPropagation(); var date = $(this).attr("id").replace(/^run-/, ''); $("#detail").load(window.rootUrl + "/cc/admin-rebills/run", { date : date}); }); $("#grid-r tr").bind('click', function(event){ var date = $("input[name='raw-date']", this).val(); if (!date) return; // header ? $("tr.selected").removeClass("selected"); $(this).addClass("selected"); $("#detail").load(window.rootUrl + "/cc/admin-rebills/detail", { date : date}, function(){ $(".grid-wrap").ngrid(); }); }); }; $(document).ready(function(){bindClicks();}); $(document).ajaxStop(function(){bindClicks();}); $(function(){ $("#detail form").live('submit', function(){ $(this).ajaxSubmit({target: '#detail'}); return false; }); }); CUT; } public function renderRun() { return (string)$form; } public function createRunForm() { $form = new Am_Form; $form->setAction($this->getUrl(null, 'run')); $s = $form->addSelect('paysys_id')->setLabel('Choose a plugin'); $s->addRule('required', 'This field is required'); foreach ($this->getModule()->getPlugins() as $p) $s->addOption($p->getTitle(), $p->getId()); $form->addDate('date')->setLabel('Run Rebill Manually')->addRule('required', 'This field is required'); $form->addSubmit('run', array('value'=>'Run')); $form->setWidth('450px'); return $form; } public function detailAction() { $date = $this->getFiltered('date'); if (!$date) throw new Am_Exception_InputError("Wrong date"); $grid = $this->createDetailGrid($date); $grid->isAjax(false); $grid->runWithLayout('admin/layout.phtml'); } protected function createDetailGrid($date) { // public $textNoRecordsFound = "No rebills today - most possible cron job was not running."; $q = new Am_Query($this->getDi()->ccRebillTable); $q->addWhere('rebill_date=?', $date); $grid = new Am_Grid_ReadOnly('_dd', "Detailed Rebill Report For [$date]", $q, $this->_request, $this->view); $grid->setPermissionId('cc'); $grid->addField(new Am_Grid_Field_Date('tm_added', 'Started', true)); $grid->addField('invoice_id', 'Invoice#', true); $grid->addField(new Am_Grid_Field_Date('rebill_date', 'Date', true))->setFormatDate(); $grid->addField('status', 'Status', true)->setFormatFunction(array('CcRebill', 'getStatusText')); $grid->addField('status_msg', 'Message'); return $grid; } public function runAction() { $date = $this->getFiltered('date'); if (!$date) throw new Am_Exception_InputError("Wrong date"); $form = $this->createRunForm(); if ($form->isSubmitted() && $form->validate()) { $value = $form->getValue(); return $this->doRun($value['paysys_id'], $value['date']); } else { echo $form; } } public function doRun($paysys_id, $date) { $this->getDi()->plugins_payment->load($paysys_id); $p = $this->getDi()->plugins_payment->get($paysys_id); $p->ccRebill($date); echo "Done for $date"; } }
Upload Files
Cancel
Upload
Create New
Cancel
Create
Change Permissions
Cancel
Save
Change Date
Cancel
Save
Rename Item
Cancel
Save
Confirm Delete
Are you sure you want to delete the selected items?
Cancel
Delete