function viewAction()
 {
     // display payouts list date | method | total | paid |
     $id = $this->getInt('payout_id');
     if (!$id) {
         throw new Am_Exception_InputError("Not payout_id passed");
     }
     $ds = new Am_Query($this->getDi()->affPayoutDetailTable);
     $ds->leftJoin('?_aff_payout', 'p', 'p.payout_id=t.payout_id');
     $ds->leftJoin('?_user', 'u', 't.aff_id=u.user_id');
     $ds->addField('u.*');
     $ds->addField('p.type', 'type');
     $ds->addWhere('t.payout_id=?d', $id);
     $grid = new Am_Grid_Editable('_d', ___("Payout %d Details", $id), $ds, $this->_request, $this->view);
     $grid->setPermissionId('affiliates');
     $grid->addCallback(Am_Grid_Editable::CB_RENDER_TABLE, array($this, 'addBackLink'));
     $grid->addField('email', ___('E-Mail'));
     $grid->addField('name_f', ___('First Name'));
     $grid->addField('name_l', ___('Last Name'));
     $grid->addField('type', ___('Payout Method'));
     $grid->addField('amount', ___('Amount'));
     //        $grid->addField('receipt_id', ___('Receipt Id'));
     $grid->addField('is_paid', ___('Is Paid?'));
     $grid->addField(new Am_Grid_Field_Expandable('_details', ___('Payout Details')))->setGetFunction(array($this, 'getPayoutDetails'));
     $grid->actionsClear();
     //$grid->actionAdd(new Am_Grid_Action_LiveEdit('receipt_id'));
     $grid->actionAdd(new Am_Grid_Action_PayoutMarkPaid('mark_paid', ___("Mark Paid")));
     $grid->actionAdd(new Am_Grid_Action_PayoutMarkNotPaid('mark_notpaid', ___("Mark NOT Paid")));
     $grid->runWithLayout();
     // detail payout records date | method | paid | receipt_id | aff. payout fields
 }
 function createGrid()
 {
     $query = new Am_Query($this->getDi()->fileDownloadTable);
     $query->leftJoin('?_file', 'f', 'f.file_id=t.file_id')->addField('f.title', 'title')->addWhere('user_id=?', $this->getParam('user_id'));
     $grid = new Am_Grid_Editable('_file_download', ___("File Downloads"), $query, $this->_request, $this->view);
     $grid->setPermissionId(Am_Auth_Admin::PERM_LOGS_DOWNLOAD);
     $grid->actionsClear();
     $grid->actionAdd(new Am_Grid_Action_Delete());
     $grid->actionAdd(new Am_Grid_Action_Group_Delete());
     $grid->addField(new Am_Grid_Field_Date('dattm', ___('Date/Time')));
     $grid->addField('remote_addr', ___('IP'));
     $grid->addField('title', ___('File'));
     return $grid;
 }
 public function createInvoice()
 {
     $query = new Am_Query(new InvoiceLogTable());
     $query->addField("m.login", "login");
     $query->leftJoin("?_user", "m", "t.user_id=m.user_id");
     $query->setOrder('tm', 'desc');
     $g = new Am_Grid_Editable('_invoice', ___('Invoice Log'), $query, $this->getRequest(), $this->view);
     $g->addField(new Am_Grid_Field('tm', ___('Time'), true, '', null, '10%'));
     $g->addField(new Am_Grid_Field('invoice_id', ___('Invoice'), true, '', null, '5%'));
     $g->addField(new Am_Grid_Field('login', ___('User'), true, '', null, '5%'));
     $g->addField(new Am_Grid_Field('remote_addr', ___('IP'), true, '', null, '5%'));
     $g->addField(new Am_Grid_Field('paysys_id', ___('Paysystem'), true, '', null, '10%'));
     $g->addField(new Am_Grid_Field('title', ___('Title'), true, '', null, '25%'));
     $g->addField(new Am_Grid_Field_Expandable('details', ___('Details'), false, '', null, '25%'))->setGetFunction(array($this, 'renderInvoiceDetails'));
     $g->actionsClear();
     $g->actionAdd(new Am_Grid_Action_InvoiceRetry());
     $g->setFilter(new Am_Grid_Filter_InvoiceLog());
     return $g;
 }
示例#4
0
 public function createDemoHistoryGrid()
 {
     $records = $this->getDi()->store->getBlob('import-records');
     $records = $records ? unserialize($records) : array();
     $ds = new Am_Grid_DataSource_Array($records);
     $ds->setOrder('date', true);
     $grid = new Am_Grid_Editable('_h', ___('Import History'), $ds, $this->_request, $this->view);
     $grid->setPermissionId(Am_Auth_Admin::PERM_IMPORT);
     $grid->addField(new Am_Grid_Field_Date('date', ___('Date'), false, '', null, '10%'))->setFormatDate();
     $urlTpl = REL_ROOT_URL . '/admin-users?' . http_build_query(array('_u_search' => array('import' => array('id' => '__ID__'))));
     $urlTpl = str_replace('__ID__', '{id}', $urlTpl);
     $grid->addField('id', '#', false, '', null, '10%')->addDecorator(new Am_Grid_Field_Decorator_Link($urlTpl));
     $grid->addField(new Am_Grid_Field('title', ___('Title'), false, '', array($this, 'renderGridTitle')));
     $grid->actionsClear();
     $grid->actionAdd(new Am_Grid_Action_ImportDel());
     return $grid;
 }
 public function paymentAction()
 {
     $totalFields = array();
     $query = new Am_Query($this->getDi()->invoicePaymentTable);
     $query->leftJoin('?_user', 'm', 'm.user_id=t.user_id')->addField("(SELECT GROUP_CONCAT(item_title SEPARATOR ', ') FROM ?_invoice_item WHERE invoice_id=t.invoice_id)", 'items')->addField('m.login', 'login')->addField('m.email', 'email')->addField('m.street', 'street')->addField('m.city', 'city')->addField('m.state', 'state')->addField('m.country', 'country')->addField('m.phone', 'phone')->addField('m.zip', 'zip')->addField("concat(m.name_f,' ',m.name_l)", 'name')->addField('t.invoice_public_id', 'public_id')->addWhere('t.user_id=?', $this->user_id);
     $query->setOrder("invoice_payment_id", "desc");
     $grid = new Am_Grid_Editable('_payment', ___('Payments'), $query, $this->_request, $this->view);
     $grid->actionsClear();
     $grid->addField(new Am_Grid_Field_Date('dattm', ___('Date/Time')));
     $grid->addField('invoice_id', ___('Invoice'))->setGetFunction(array($this, '_getInvoiceNum'))->addDecorator(new Am_Grid_Field_Decorator_Link('admin-user-payments/index/user_id/{user_id}#invoice-{invoice_id}', '_top'));
     $grid->addField('receipt_id', ___('Receipt'));
     $grid->addField('paysys_id', ___('Payment System'));
     array_push($totalFields, $grid->addField('amount', ___('Amount'))->setGetFunction(array($this, '_getAmount')));
     if ($this->getDi()->plugins_tax->getEnabled()) {
         array_push($totalFields, $grid->addField('tax', ___('Tax'))->setGetFunction(array($this, '_getTax')));
     }
     $grid->addField(new Am_Grid_Field_Date('refund_dattm', ___('Refunded')))->setFormatDatetime();
     $grid->addField('items', ___('Items'));
     $grid->setFilter(new Am_Grid_Filter_Payments());
     $action = new Am_Grid_Action_Export();
     $action->addField(new Am_Grid_Field('dattm', ___('Date Time')))->addField(new Am_Grid_Field('receipt_id', ___('Receipt')))->addField(new Am_Grid_Field('paysys_id', ___('Payment System')))->addField(new Am_Grid_Field('amount', ___('Amount')))->addField(new Am_Grid_Field('tax', ___('Tax')))->addField(new Am_Grid_Field_Date('refund_dattm', ___('Refunded')))->addField(new Am_Grid_Field('login', ___('Username')))->addField(new Am_Grid_Field('name', ___('Name')))->addField(new Am_Grid_Field('email', ___('Email')))->addField(new Am_Grid_Field('street', ___('Street')))->addField(new Am_Grid_Field('city', ___('City')))->addField(new Am_Grid_Field('state', ___('State')))->addField(new Am_Grid_Field('country', ___('Country')))->addField(new Am_Grid_Field('phone', ___('Phone')))->addField(new Am_Grid_Field('zip', ___('Zip Code')))->addField(new Am_Grid_Field('items', ___('Items')))->addField(new Am_Grid_Field('invoice_id', ___('Invoice')))->addField(new Am_Grid_Field('public_id', ___('Invoice (Public Id)')));
     $grid->actionAdd($action);
     if ($this->getDi()->config->get('send_pdf_invoice')) {
         $grid->actionAdd(new Am_Grid_Action_ExportPdf());
     }
     $action = $grid->actionAdd(new Am_Grid_Action_Total());
     foreach ($totalFields as $f) {
         $action->addField($f, 'ROUND(%s / base_currency_multi, 2)');
     }
     $grid->runWithLayout('admin/user-layout.phtml');
 }
示例#6
0
 function historyRowsAction()
 {
     $q = new Am_Query($this->getDi()->emailSentTable);
     $q->leftJoin('?_admin', 'a', 't.admin_id=a.admin_id');
     $q->addField('a.login', 'admin_login');
     $q->setOrder('email_sent_id', 'DESC');
     // dirty hack
     $withWrap = (bool) $this->_request->get('_h_wrap');
     unset($_GET['_h_wrap']);
     $grid = new Am_Grid_Editable('_h', ___('E-Mails History'), $q, $this->_request, $this->view);
     $grid->setPermissionId(Am_Auth_Admin::PERM_EMAIL);
     if ($withWrap) {
         $grid->isAjax(false);
     }
     $grid->setCountPerPage(5);
     $grid->addField(new Am_Grid_Field_Date('tm_added', ___('Started')));
     $grid->addField('subject', ___('Subject'));
     $grid->addField('admin_login', ___('Sender'));
     $grid->addField('count_users', ___('Total'));
     $grid->addField('sent_users', ___('Sent'));
     $grid->addField('desc_users', ___('To'))->setAttrs(array('class' => 'break'));
     $grid->actionsClear();
     $grid->actionAdd(new Am_Grid_Action_Url('resend', ___('Resend'), REL_ROOT_URL . "/admin-email?resend_id=__ID__"))->setTarget('_top');
     $grid->actionAdd(new Am_Grid_Action_Url('continue', ___('Continue'), REL_ROOT_URL . "/admin-email/send?queue_id=__ID__"))->setTarget('_top')->setIsAvailableCallback(array($this, 'needContinueLink'));
     if ($this->getDi()->authAdmin->getUser()->isSuper()) {
         $grid->actionAdd(new Am_Grid_Action_Delete());
     }
     $grid->run($this->getResponse());
 }
 public function createGrid()
 {
     $hasCustomRules = $this->getDi()->affCommissionRuleTable->hasCustomRules();
     $hasTiers = $this->getDi()->affCommissionRuleTable->getMaxTier();
     $ds = new Am_Query($this->getDi()->affCommissionTable);
     $ds->leftJoin('?_invoice', 'i', 'i.invoice_id=t.invoice_id');
     $ds->leftJoin('?_user', 'u', 'u.user_id=i.user_id');
     $ds->leftJoin('?_user', 'a', 't.aff_id=a.user_id');
     $ds->leftJoin('?_product', 'p', 't.product_id=p.product_id');
     $ds->leftJoin('?_aff_payout_detail', 'apd', 't.payout_detail_id=apd.payout_detail_id');
     $ds->leftJoin('?_aff_payout', 'ap', 'ap.payout_id=apd.payout_id');
     $ds->addField('ap.date', 'payout_date');
     $ds->addField('ap.payout_id');
     $ds->addField('CONCAT(a.login, \' (\', a.name_f, \' \', a.name_l,\') #\', a.user_id)', 'aff_name')->addField('u.user_id', 'user_id')->addField('CONCAT(u.login, \' (\',u.name_f, \' \',u.name_l,\') #\', u.user_id)', 'user_name')->addField('u.email', 'user_email')->addField('p.title', 'product_title')->addField('i.public_id')->setOrder('commission_id', 'desc');
     $grid = new Am_Grid_Editable('_affcomm', ___('Affiliate Commission'), $ds, $this->_request, $this->view);
     $grid->setPermissionId(Bootstrap_Aff::ADMIN_PERM_ID);
     $grid->actionsClear();
     $userUrl = new Am_View_Helper_UserUrl();
     $grid->addField(new Am_Grid_Field_Date('date', ___('Date')))->setFormatDate();
     $grid->addField('aff_name', ___('Affiliate'))->addDecorator(new Am_Grid_Field_Decorator_Link($userUrl->userUrl('{aff_id}'), '_top'));
     $grid->addField('user_name', ___('User'))->addDecorator(new Am_Grid_Field_Decorator_Link($userUrl->userUrl('{user_id}'), '_top'));
     $grid->addField('product_title', ___('Product'));
     $grid->addField('invoice_id', ___('Invoice'))->setGetFunction(array($this, '_getInvoiceNum'))->addDecorator(new Am_Grid_Field_Decorator_Link('admin-user-payments/index/user_id/{user_id}#invoice-{invoice_id}', '_top'));
     $fieldAmount = $grid->addField('amount', ___('Amount'))->setRenderFunction(array($this, 'renderAmount'));
     $grid->addField('payout_date', ___('Payout'))->setRenderFunction(array($this, 'renderPayout'));
     if ($hasTiers) {
         $grid->addField('tier', ___('Tier'))->setRenderFunction(array($this, 'renderTier'));
     }
     if ($hasCustomRules) {
         $grid->addField(new Am_Grid_Field_Expandable('commission_id', '', false))->setPlaceholder(___('Used Rules'))->setAjax(REL_ROOT_URL . '/aff/admin-commission/get-rules?id={commission_id}');
     }
     $grid->setFilter(new Am_Grid_Filter_Commission());
     $grid->actionAdd(new Am_Grid_Action_Total())->addField($fieldAmount, "IF(record_type='void', -1*t.%1\$s, t.%1\$s)");
     $grid->actionAdd(new Am_Grid_Action_Aff_Void());
     $grid->addCallback(Am_Grid_ReadOnly::CB_TR_ATTRIBS, array($this, 'cbGetTrAttribs'));
     return $grid;
 }
 public function createMailQueue()
 {
     $ds = new Am_Query($this->getDi()->mailQueueTable);
     $ds->setOrder('added', true);
     $g = new Am_Grid_Editable('_mail', ___("E-Mail Queue"), $ds, $this->getRequest(), $this->view);
     $g->setPermissionId(Am_Auth_Admin::PERM_LOGS_MAIL);
     $g->addField(new Am_Grid_Field('recipients', ___('Recipients'), true, '', null, '20%'));
     $g->addField(new Am_Grid_Field_Date('added', ___('Added'), true));
     $g->addField(new Am_Grid_Field_Date('sent', ___('Sent'), true));
     $g->addField(new Am_Grid_Field('subject', ___('Subject'), true, '', null, '30%'))->setRenderFunction(array($this, 'renderSubject'));
     $body = new Am_Grid_Field_Expandable('body', ___('Mail'), true, '', null, '20%');
     $body->setEscape(true);
     $body->setGetFunction(array($this, 'renderMail'));
     $g->addField($body);
     $g->setFilter(new Am_Grid_Filter_Text(___("Filter by subject or recepient"), array('subject' => 'LIKE', 'recipients' => 'LIKE')));
     $g->actionsClear();
     $g->actionAdd(new Am_Grid_Action_MailRetry('retry'));
     if ($this->getDi()->authAdmin->getUser()->isSuper()) {
         $g->actionAdd(new Am_Grid_Action_Delete());
         $g->actionAdd(new Am_Grid_Action_Group_Delete());
     }
     return $g;
 }
 public function createDemoHistoryGrid()
 {
     $records = $this->getDi()->store->getBlob('import-records');
     $records = $records ? unserialize($records) : array();
     $ds = new Am_Grid_DataSource_Array($records);
     $ds->setOrder('date', true);
     $grid = new Am_Grid_Editable('_h', ___('Import History'), $ds, $this->_request, $this->view);
     $grid->setPermissionId(Am_Auth_Admin::PERM_IMPORT);
     $grid->addField(new Am_Grid_Field_Date('date', ___('Date'), false, '', null, '10%'))->setFormatDate();
     $grid->addField('id', '#');
     $grid->addField(new Am_Grid_Field('title', ___('Title'), false, '', array($this, 'renderGridTitle'), '90%'));
     $grid->actionsClear();
     $grid->actionAdd(new Am_Grid_Action_ImportDel());
     return $grid;
 }
示例#10
0
 function createGrid()
 {
     $ds = new Am_Query($this->getDi()->savedReportTable);
     $ds->addWhere('admin_id=?', $this->getDi()->authAdmin->getUserId());
     $grid = new Am_Grid_Editable('_report', ___('Saved Reports'), $ds, $this->_request, $this->view);
     $grid->setPermissionId(Am_Auth_Admin::PERM_REPORT);
     $grid->addField(new Am_Grid_Field('title', ___('Title'), true));
     $grid->actionsClear();
     $grid->actionAdd(new Am_Grid_Action_LiveEdit('title'));
     $grid->actionAdd(new Am_Grid_Action_Url('run-report', ___('Run Report'), '__ROOT__/default/admin-reports/p/saved/runsaved/report_id/__ID__'))->setTarget('_top');
     $grid->actionAdd(new Am_Grid_Action_Delete());
     $grid->addCallback(Am_Grid_ReadOnly::CB_RENDER_TABLE, array($this, 'onRenderGridContent'));
     return $grid;
 }
 public function notConfirmedAction()
 {
     $arr = array();
     foreach ($this->getDi()->db->select("SELECT `blob_value`, expires FROM ?_store\n            WHERE name LIKE 'signup_record-%' AND CHAR_LENGTH(blob_value)>10") as $row) {
         $v = unserialize($row['blob_value']);
         $rec = array();
         foreach ($v['values'] as $page) {
             $rec = array_merge($rec, $page);
         }
         $rec['expires'] = $row['expires'];
         $link = Am_Controller::escape($v['opaque']['ConfirmUrl']);
         $rec['link'] = 'Give this link to customer if e-mail confirmation has not been received:' . '<br /><br /><pre>' . $link . '</pre><br />';
         if (empty($rec['login'])) {
             $rec['login'] = null;
         }
         if (empty($rec['name_f'])) {
             $rec['name_f'] = null;
         }
         if (empty($rec['name_l'])) {
             $rec['name_l'] = null;
         }
         $arr[] = (object) $rec;
     }
     $ds = new Am_Grid_DataSource_Array($arr);
     $grid = new Am_Grid_Editable('_usernc', ___("Not Confirmed Users"), $ds, $this->_request, $this->view, $this->getDi());
     $grid->setPermissionId('grid_u');
     $grid->addField('login', ___('Username'));
     $grid->addField('email', ___('E-Mail'));
     $grid->addField('name_f', ___('First Name'));
     $grid->addField('name_l', ___('Last Name'));
     $grid->addField(new Am_Grid_Field_Date('expires', ___('Expires')))->setFormatDate();
     $grid->addField(new Am_Grid_Field_Expandable('link', ___('Link')))->setEscape(false);
     $grid->actionsClear();
     $this->view->content = $grid->runWithLayout('admin/layout.phtml');
 }
 protected function _createGrid($title)
 {
     $ds = $this->createDS($this->getLanguage());
     $grid = new Am_Grid_Editable('_trans', $title, $ds, $this->_request, $this->view);
     $grid->addField(new Am_Grid_Field('base', ___('Base'), true, '', null, '50%'));
     $grid->addField(new Am_Grid_Field('trans', ___('Translation'), true, '', array($this, 'renderTrans'), '50%'));
     $grid->setFilter(new Am_Grid_Filter_Trans($this->getLanguage()));
     $grid->actionsClear();
     $grid->setRecordTitle(___('Translation'));
     $grid->addCallback(Am_Grid_ReadOnly::CB_RENDER_CONTENT, array($this, 'wrapContent'));
     $grid->addCallback(Am_Grid_ReadOnly::CB_RENDER_TABLE, array($this, 'wrapTable'));
     return $grid;
 }
 public function createDemoHistoryGrid()
 {
     $records = $this->getDi()->store->getBlob('demo-builder-records');
     $records = $records ? unserialize($records) : array();
     $ds = new Am_Grid_DataSource_Array($records);
     $grid = new Am_Grid_Editable('_h', ___("Demo History"), $ds, $this->_request, $this->view);
     $grid->addField(new Am_Grid_Field('date', 'Date', false, '', null, '10%'));
     $grid->addField(new Am_Grid_Field('title', 'Title', false, '', array($this, 'renderGridTitle'), '90%'));
     $grid->actionsClear();
     $grid->actionAdd(new Am_Grid_Action_DemoDel());
     return $grid;
 }
    public function detailAction()
    {
        $id = (int) $this->getParam('id');
        if (!$id) {
            throw new Am_Exception_InputError('Empty id passed to ' . __METHOD__);
        }
        $ds = new Am_Query($this->getDi()->couponTable);
        $ds->leftJoin('?_user', 'u', 't.user_id=u.user_id');
        $ds->addField('u.login', 'u_login');
        $ds->addWhere('batch_id=?d', $id);
        $grid = new Am_Grid_Editable('_detail', ___('Coupons'), $ds, $this->_request, $this->view);
        $grid->setPermissionId('grid_coupon');
        $grid->setEventId('gridCoupon');
        $grid->actionsClear();
        $grid->addField('code', ___('Code'), true, null);
        $grid->addField(new Am_Grid_Field_Expandable('used_count', ___('Used For'), false))->setGetFunction(array($this, 'getUsedCount'))->setPlaceholder(array($this, 'getPlaceholder'))->setEscape(false);
        $grid->addField('user_id', ___('User'))->setGetFunction(array($this, 'getUser'));
        $grid->setFilter(new Am_Grid_Filter_Text(___('Filter by Code'), array('code' => 'LIKE')));
        $grid->actionAdd(new Am_Grid_Action_LiveEdit('code'));
        $grid->actionAdd(new Am_Grid_Action_LiveEdit('user_id', ___('Click to Assign')))->setInitCallback('l = function(){this.autocomplete({
    minLength: 2,
    source: window.rootUrl + "/admin-users/autocomplete"
});}')->getDecorator()->setInputTemplate(sprintf('<input type="text" placeholder="%s" />', ___('Type Username or E-Mail')));
        $grid->isAjax(false);
        $grid->addCallback(Am_Grid_ReadOnly::CB_RENDER_CONTENT, array($this, 'couponRenderContent'));
        $response = $grid->run();
        $response->sendHeaders();
        $response->sendResponse();
    }
 public function createGrid()
 {
     $title_removed = ___('Rule Removed');
     $ds = new Am_Query($this->getDi()->affCommissionTable);
     $ds->leftJoin('?_invoice', 'i', 'i.invoice_id=t.invoice_id');
     $ds->leftJoin('?_user', 'u', 'u.user_id=i.user_id');
     $ds->leftJoin('?_user', 'a', 't.aff_id=a.user_id');
     $ds->leftJoin('?_product', 'p', 't.product_id=p.product_id');
     $ds->addField('CONCAT(a.login, \' (\', a.name_f, \' \', a.name_l,\') [#\', a.user_id, \']\')', 'aff_name')->addField('u.user_id', 'user_id')->addField('CONCAT(u.login, \' (\',u.name_f, \' \',u.name_l,\') [#\', u.user_id, \']\')', 'user_name')->addField('u.email', 'user_email')->addField('p.title', 'product_title')->addField('i.public_id')->addField('IF(payout_detail_id IS NULL, \'no\', \'yes\')', 'is_paid')->leftJoin('?_aff_commission_commission_rule', 'ccr', 't.commission_id = ccr.commission_id')->leftJoin('?_aff_commission_rule', 'cr', 'ccr.rule_id = cr.rule_id')->addField("GROUP_CONCAT(CONCAT(ccr.rule_id, ' - ', IFNULL(cr.comment, '<em>{$title_removed}</em>')) SEPARATOR '<br />')", 'used_rules')->setOrder('commission_id', 'desc');
     $grid = new Am_Grid_Editable('_affcomm', ___('Affiliate Commission'), $ds, $this->_request, $this->view);
     $grid->setPermissionId(Bootstrap_Aff::ADMIN_PERM_ID);
     $grid->actionsClear();
     $userUrl = new Am_View_Helper_UserUrl();
     $grid->addField(new Am_Grid_Field_Date('date', ___('Date')))->setFormatDate();
     $grid->addField('aff_name', ___('Affiliate'))->addDecorator(new Am_Grid_Field_Decorator_Link($userUrl->userUrl('{aff_id}'), '_top'));
     $grid->addField('user_name', ___('User'))->addDecorator(new Am_Grid_Field_Decorator_Link($userUrl->userUrl('{user_id}'), '_top'));
     $grid->addField('product_title', ___('Product'));
     $grid->addField('record_type', ___('Type'))->setRenderFunction(array($this, 'renderType'));
     $grid->addField('invoice_id', ___('Invoice'))->setGetFunction(array($this, '_getInvoiceNum'))->addDecorator(new Am_Grid_Field_Decorator_Link('admin-user-payments/index/user_id/{user_id}#invoice-{invoice_id}', '_top'));
     $fieldAmount = $grid->addField('amount', ___('Commission'))->setRenderFunction(array($this, 'renderAmount'));
     $grid->addField('is_paid', ___('Paid'));
     $grid->addField('tier', ___('Tier'))->setRenderFunction(array($this, 'renderTier'));
     $grid->addField(new Am_Grid_Field_Expandable('used_rules', '', false))->setPlaceholder(___('Used Rules'));
     $grid->setFilter(new Am_Grid_Filter_Commission());
     $grid->actionAdd(new Am_Grid_Action_Total())->addField($fieldAmount, "IF(record_type='void', -1*%1\$s, %1\$s)");
     $grid->actionAdd(new Am_Grid_Action_Aff_Void());
     $grid->addCallback(Am_Grid_ReadOnly::CB_TR_ATTRIBS, array($this, 'cbGetTrAttribs'));
     return $grid;
 }
 function createInvoicesPage($page)
 {
     $query = new Am_Query($this->getDi()->invoiceTable);
     if ($page == 'not-approved') {
         $query->addWhere('is_confirmed<1');
     }
     $query->leftJoin('?_user', 'm', 'm.user_id=t.user_id')->addField("(SELECT GROUP_CONCAT(item_title SEPARATOR ', ') FROM ?_invoice_item WHERE invoice_id=t.invoice_id)", 'items')->addField('m.login', 'login')->addField('m.email', 'email')->addField('m.street', 'street')->addField('m.street2', 'street2')->addField('m.city', 'city')->addField('m.state', 'state')->addField('m.country', 'country')->addField('m.phone', 'phone')->addField('m.zip', 'zip')->addField("concat(m.name_f,' ',m.name_l)", 'name')->addField('m.name_f')->addField('m.name_l')->addField('DATE(tm_started)', 'date');
     //Additional Fields
     foreach ($this->getDi()->userTable->customFields()->getAll() as $field) {
         if (isset($field->from_config) && $field->from_config) {
             if ($field->sql) {
                 $query->addField('m.' . $field->name, $field->name);
             }
         }
     }
     $query->setOrder("invoice_id", "desc");
     $grid = new Am_Grid_Editable('_invoice', ___('Invoices'), $query, $this->_request, $this->view);
     $grid->setRecordTitle(array($this, 'getInvoiceRecordTitle'));
     $grid->actionsClear();
     $grid->actionAdd(new Am_Grid_Action_Delete())->setTarget('_top');
     $grid->addField(new Am_Grid_Field_Date('tm_added', ___('Added')));
     $grid->addField('invoice_id', ___('Invoice'))->setGetFunction(array($this, '_getInvoiceNum'))->addDecorator(new Am_Grid_Field_Decorator_Link('admin-user-payments/index/user_id/{user_id}#invoice-{invoice_id}', '_top'));
     $grid->addField('status', ___('Status'))->setRenderFunction(array($this, 'renderInvoiceStatus'));
     $grid->addField('paysys_id', ___('Payment System'));
     $grid->addField('_total', ___('Billing Terms'), false)->setGetFunction(array($this, 'getInvoiceTotal'));
     $grid->addField(new Am_Grid_Field_Date('rebill_date', ___('Rebill Date')))->setFormatDate();
     $grid->addField('items', ___('Items'));
     $grid->addField('login', ___('Username'))->addDecorator(new Am_Grid_Field_Decorator_Link('admin-users?_u_a=edit&_u_b={THIS_URL}&_u_id={user_id}', '_top'));
     $grid->addField('name', ___('Name'));
     $filter = new Am_Grid_Filter_Invoices();
     $grid->setFilter($filter);
     $stateTitleField = new Am_Grid_Field('state_title', ___('State Title'));
     $stateTitleField->setGetFunction(array($this, 'getStateTitle'));
     $countryTitleField = new Am_Grid_Field('country_title', ___('Country Title'));
     $countryTitleField->setGetFunction(array($this, 'getCountryTitle'));
     $termsField = new Am_Grid_Field('_total', ___('Billing Terms'));
     $termsField->setGetFunction(array($this, 'getInvoiceTotal'));
     $action = new Am_Grid_Action_Export();
     $action->addField(new Am_Grid_Field('tm_started', ___('Date/Time')))->addField(new Am_Grid_Field('date', ___('Date')))->addField(new Am_Grid_Field('rebill_date', ___('Rebill Date')))->addField(new Am_Grid_Field('invoice_id', ___('Invoice (Internal Id)')))->addField(new Am_Grid_Field('public_id', ___('Invoice (Public Id)')))->addField(new Am_Grid_Field('status', ___('Status')))->addField($termsField)->addField(new Am_Grid_Field('paysys_id', ___('Payment System')))->addField(new Am_Grid_Field('first_total', ___('First Total')))->addField(new Am_Grid_Field('first_tax', ___('First Tax')))->addField(new Am_Grid_Field('email', ___('Email')))->addField(new Am_Grid_Field('login', ___('Username')))->addField(new Am_Grid_Field('name', ___('Name')))->addField(new Am_Grid_Field('name_f', ___('First Name')))->addField(new Am_Grid_Field('name_l', ___('Last Name')))->addField(new Am_Grid_Field('street', ___('Street')))->addField(new Am_Grid_Field('street2', ___('Street2')))->addField(new Am_Grid_Field('city', ___('City')))->addField(new Am_Grid_Field('state', ___('State')))->addField($stateTitleField)->addField(new Am_Grid_Field('country', ___('Country')))->addField($countryTitleField)->addField(new Am_Grid_Field('phone', ___('Phone')))->addField(new Am_Grid_Field('zip', ___('Zip Code')))->addField(new Am_Grid_Field('item_title', ___('Product Title')))->addField(new Am_Grid_Field('coupon_code', ___('Coupon')));
     //Additional Fields
     foreach ($this->getDi()->userTable->customFields()->getAll() as $field) {
         if (isset($field->from_config) && $field->from_config) {
             if ($field->sql) {
                 $action->addField(new Am_Grid_Field($field->name, $field->title));
             }
         }
     }
     $action->setGetDataSourceFunc(array($this, 'getExportDs'));
     $grid->actionAdd($action);
     if ($this->getDi()->config->get('manually_approve_invoice')) {
         $grid->actionAdd(new Am_Grid_Action_Group_Callback('approve', ___("Approve"), array($this, 'approveInvoice')));
     }
     return $grid;
 }
示例#17
0
 public function categoryAction()
 {
     $ret = array();
     foreach ($this->getDi()->helpdeskFaqTable->getCategories() as $category) {
         $cat = new stdClass();
         $cat->name = $category;
         $ret[] = $cat;
     }
     $ds = new Am_Grid_DataSource_FaqCategory($ret);
     $grid = new Am_Grid_Editable('_helpdesk_faq_category', ___('Categories'), $ds, $this->_request, $this->view);
     $grid->setPermissionId(Bootstrap_Helpdesk::ADMIN_PERM_FAQ);
     $grid->addField(new Am_Grid_Field('name', ___('Title')));
     $grid->actionsClear();
     $grid->actionAdd(new Am_Grid_Action_Back('faq-edit-category-back', ___('Back to FAQ List')));
     $grid->actionAdd(new Am_Grid_Action_LiveEdit('name'));
     $grid->runWithLayout('admin/layout.phtml');
 }
 function createInvoicesPage()
 {
     $query = new Am_Query($this->getDi()->invoiceTable);
     $query->leftJoin('?_user', 'm', 'm.user_id=t.user_id')->addField('m.login', 'login')->addField("concat(m.name_f,' ',m.name_l)", 'name');
     $query->setOrder("invoice_id", "desc");
     $grid = new Am_Grid_Editable('_invoice', ___("Invoices"), $query, $this->_request, $this->view);
     $grid->actionsClear();
     $grid->addField(new Am_Grid_Field_Date('tm_added', ___('Added')));
     $grid->addField('invoice_id', ___('Invoice'))->addDecorator(new Am_Grid_Field_Decorator_Link('admin-user-payments/index/user_id/{user_id}#invoice-{invoice_id}', '_blank'));
     $grid->addField('status', ___('Status'))->setRenderFunction(array($this, 'renderInvoiceStatus'));
     $grid->addField('paysys_id', ___('Payment System'));
     $grid->addField('_total', ___('Total'))->setGetFunction(array($this, 'getInvoiceTotal'));
     $grid->addField('login', ___('Username'), false)->addDecorator(new Am_Grid_Field_Decorator_Link('admin-users?_u_a=edit&_u_b={THIS_URL}&_u_id={user_id}', '_blank'));
     $grid->addField('name', ___('Name'), false);
     $filter = new Am_Grid_Filter_Payments();
     $filter->setDateField('tm_added');
     $grid->setFilter($filter);
     $action = new Am_Grid_Action_Export();
     $action->addField(new Am_Grid_Field('invoice_id', ___('Invoice') . '#'))->addField(new Am_Grid_Field('paysys_id', ___('Payment System')))->addField(new Am_Grid_Field('first_total', ___('First Total')))->addField(new Am_Grid_Field('first_tax', ___('First Tax')))->addField(new Am_Grid_Field('login', ___('Username')))->addField(new Am_Grid_Field('name', ___('Name')));
     $grid->actionAdd($action);
     return $grid;
 }
示例#19
0
 function commTabAction()
 {
     $this->setActiveMenu('users-browse');
     $ds = new Am_Query($this->getDi()->affCommissionTable);
     $ds->leftJoin('?_invoice', 'i', 'i.invoice_id=t.invoice_id');
     $ds->leftJoin('?_user', 'u', 'u.user_id=i.user_id');
     $ds->leftJoin('?_product', 'p', 't.product_id=p.product_id')->addField('u.user_id', 'user_id')->addField('CONCAT(u.login, \' (\',u.name_f, \' \',u.name_l,\') [#\', u.user_id, \']\')', 'user_name')->addField('p.title', 'product_title')->addField('IF(payout_detail_id IS NULL, \'no\', \'yes\')', 'is_paid');
     $ds->setOrder('date', 'desc')->addWhere('t.aff_id=?', $this->getParam('user_id'));
     $grid = new Am_Grid_Editable('_affcomm', ___('Affiliate Commission'), $ds, $this->_request, $this->view);
     $grid->setPermissionId(Bootstrap_Aff::ADMIN_PERM_ID);
     $grid->actionsClear();
     $userUrl = new Am_View_Helper_UserUrl();
     $grid->addField(new Am_Grid_Field_Date('date', ___('Date')))->setFormatDate();
     $grid->addField('user_name', ___('User'))->addDecorator(new Am_Grid_Field_Decorator_Link($userUrl->userUrl('{user_id}'), '_top'));
     $grid->addField('product_title', ___('Product'));
     $grid->addField('record_type', ___('Type'))->setRenderFunction(array($this, 'renderType'));
     $fieldAmount = $grid->addField('amount', ___('Commission'))->setRenderFunction(array($this, 'renderCommAmount'));
     $grid->addField('is_paid', ___('Paid'));
     $grid->addField('tier', ___('Tier'))->setRenderFunction(array($this, 'renderTier'));
     $grid->addCallback(Am_Grid_ReadOnly::CB_TR_ATTRIBS, array($this, 'commCbGetTrAttribs'));
     $grid->setFilter(new Am_Grid_Filter_AffCommission());
     $grid->actionAdd(new Am_Grid_Action_Total())->addField($fieldAmount, "IF(record_type='void', -1*%1\$s, %1\$s)");
     $grid->actionAdd(new Am_Grid_Action_Aff_Void());
     $grid->runWithLayout('admin/user-layout.phtml');
 }
示例#20
0
 function viewAction()
 {
     Am_Aff_PayoutMethod::static_addFields();
     // display payouts list date | method | total | paid |
     $id = $this->getInt('payout_id');
     if (!$id) {
         throw new Am_Exception_InputError("Not payout_id passed");
     }
     $ds = new Am_Query($this->getDi()->affPayoutDetailTable);
     $ds->leftJoin('?_aff_payout', 'p', 'p.payout_id=t.payout_id');
     $ds->leftJoin('?_user', 'u', 't.aff_id=u.user_id');
     $ds->addField('u.*');
     $ds->addField('p.type', 'type');
     $ds->addWhere('t.payout_id=?d', $id);
     $grid = new Am_Grid_Editable('_d', ___("Payout %d Details", $id), $ds, $this->_request, $this->view);
     $grid->setEventId('gridAffPayoutDetail');
     $grid->setPermissionId(Bootstrap_Aff::ADMIN_PERM_ID);
     $grid->addCallback(Am_Grid_Editable::CB_RENDER_TABLE, array($this, 'addBackLink'));
     $userUrl = new Am_View_Helper_UserUrl();
     $grid->addField('email', ___('E-Mail'))->addDecorator(new Am_Grid_Field_Decorator_Link($userUrl->userUrl('{user_id}'), '_top'));
     $grid->addField('name_f', ___('First Name'));
     $grid->addField('name_l', ___('Last Name'));
     $grid->addField(new Am_Grid_Field_Enum('type', ___('Payout Method')))->setTranslations(Am_Aff_PayoutMethod::getAvailableOptions());
     $grid->addField('amount', ___('Amount'))->setGetFunction(array($this, 'getAmount'));
     //        $grid->addField('receipt_id', ___('Receipt Id'));
     $grid->addField(new Am_Grid_Field_Enum('is_paid', ___('Is Paid?')))->setTranslations(array(0 => ___('No'), 1 => ___('Yes')));
     $grid->addField(new Am_Grid_Field_Expandable('_details', ___('Payout Details')))->setGetFunction(array($this, 'getPayoutDetails'));
     $grid->actionsClear();
     //$grid->actionAdd(new Am_Grid_Action_LiveEdit('receipt_id'));
     $grid->actionAdd(new Am_Grid_Action_PayoutMarkPaid('mark_paid', ___('Mark Paid')));
     $grid->actionAdd(new Am_Grid_Action_PayoutMarkNotPaid('mark_notpaid', ___('Mark NOT Paid')));
     $grid->addCallback(Am_Grid_ReadOnly::CB_TR_ATTRIBS, array($this, 'detailCbGetTrAttribs'));
     $grid->runWithLayout();
 }
示例#21
0
 public function archivedAction()
 {
     $ds = new Am_Query($this->getDi()->productTable);
     $ds->addWhere('t.is_archived = ?', 1);
     $ds->addOrder('sort_order')->addOrder('title');
     $grid = new Am_Grid_Editable('_product', ___("Archived Products"), $ds, $this->_request, $this->view);
     $grid->setRecordTitle(___('Product'));
     $grid->addField(new Am_Grid_Field('product_id', '#', true, '', null, '1%'));
     $grid->addField(new Am_Grid_Field('title', ___('Title'), true, '', null, '50%'))->setGetFunction(function ($r, $g, $f) {
         return strip_tags($r->{$f});
     });
     if ($this->getDi()->db->selectCell("SELECT COUNT(*) FROM ?_product_product_category")) {
         $grid->addField(new Am_Grid_Field('pgroup', ___('Product Categories'), false))->setRenderFunction(array($this, 'renderPGroup'));
     }
     $grid->addField(new Am_Grid_Field('terms', ___('Billing Terms'), false))->setRenderFunction(array($this, 'renderTerms'));
     $grid->actionsClear();
     $grid->actionAdd(new Am_Grid_Action_Url('edit', ___('Edit Product'), REL_ROOT_URL . '/admin-products?' . http_build_query(array('_product_a' => 'edit', '_product_b' => '__ROOT__/admin-products/archived', '_product_id' => '__ID__'))))->setTarget('_top');
     $grid->actionAdd(new Am_Grid_Action_Delete('delete', 'Delete permanently'));
     $grid->actionAdd(new Am_Grid_Action_Archive('product-restore', 0));
     $grid->actionAdd(new Am_Grid_Action_Group_Delete('group-delete', 'Delete permanently'));
     $grid->actionAdd(new Am_Grid_Action_Group_Archive(false));
     $grid->addCallback(Am_Grid_ReadOnly::CB_TR_ATTRIBS, array($this, 'getTrAttribs'));
     $grid->setFilter(new Am_Grid_Filter_Product());
     $unar_count = $this->getArchivedCount();
     $grid->actionAdd(new Am_Grid_Action_Url('unarchived', ___("Not Archived products") . " ({$unar_count})", REL_ROOT_URL . '/admin-products'))->setType(Am_Grid_Action_Abstract::NORECORD)->setCssClass('link')->setTarget('_top');
     $this->view->content = $grid->runWithLayout('admin/layout.phtml');
 }
 public function detailAction()
 {
     $id = (int) $this->getParam('id');
     if (!$id) {
         throw new Am_Exception_InputError("Empty id passed to " . __METHOD__);
     }
     $ds = new Am_Query($this->getDi()->couponTable);
     $ds->addWhere('batch_id=?d', $id);
     $grid = new Am_Grid_Editable('_detail', ___("Coupons"), $ds, $this->_request, $this->view);
     $grid->setPermissionId('grid_coupon');
     $grid->actionsClear();
     $grid->addField('code', ___('Code'), true, null);
     $grid->addField('used_count', ___('Used Count'), true, null);
     //$this->addGridField(new Am_Grid_Field_Invoices('used_count', 'Used For', false, null));
     $grid->setFilter(new Am_Grid_Filter_Text(___("Filter by Code"), array('code' => 'LIKE')));
     $grid->setForm('Am_Form_Admin_Coupon');
     $grid->actionAdd(new Am_Grid_Action_LiveEdit('code'));
     $grid->isAjax(false);
     $response = $grid->run();
     $response->sendHeaders();
     $response->sendResponse();
 }