protected function applyFilter() { class_exists('Am_Form', true); $filter = (array) $this->vars['filter']; $q = $this->grid->getDataSource(); $dateField = $this->dateField; /* @var Am_Query $q */ if ($filter['dat1']) { $q->addWhere("t.{$dateField} >= ?", Am_Form_Element_Date::createFromFormat(null, $filter['dat1'])->format('Y-m-d 00:00:00')); } if ($filter['dat2']) { $q->addWhere("t.{$dateField} <= ?", Am_Form_Element_Date::createFromFormat(null, $filter['dat2'])->format('Y-m-d 23:59:59')); } if (@$filter['text']) { switch (@$filter['type']) { case 'invoice': $q->addWhere('t.invoice_id=?d', $filter['text']); break; case 'login': $q->addWhere('login=?', $filter['text']); break; case 'receipt': $q->addWhere('receipt_id LIKE ?', '%' . $filter['text'] . '%'); break; } } }
protected function applyFilter() { class_exists('Am_Form', true); $filter = (array) $this->vars['filter']; $q = $this->grid->getDataSource(); $dateField = $this->vars['filter']['datf']; if (!array_key_exists($dateField, $this->getDateFieldOptions())) { throw new Am_Exception_InternalError(sprintf('Unknown date field [%s] submitted in %s::%s', $dateField, __CLASS__, __METHOD__)); } /* @var $q Am_Query */ if ($filter['dat1']) { $q->addWhere("t.{$dateField} >= ?", Am_Form_Element_Date::createFromFormat(null, $filter['dat1'])->format('Y-m-d 00:00:00')); } if ($filter['dat2']) { $q->addWhere("t.{$dateField} <= ?", Am_Form_Element_Date::createFromFormat(null, $filter['dat2'])->format('Y-m-d 23:59:59')); } if (@$filter['text']) { switch (@$filter['type']) { case 'invoice': if ($q->getTableName() == '?_invoice') { $q->leftJoin('?_invoice_payment', 'p'); $q->leftJoin('?_invoice_refund', 'rf'); $q->addWhere('(t.invoice_id=? OR t.public_id=? OR p.display_invoice_id=? or rf.display_invoice_id=?)', $filter['text'], $filter['text'], $filter['text'], $filter['text']); } else { $q->addWhere('(t.invoice_id=? OR t.invoice_public_id=? or t.display_invoice_id=?)', $filter['text'], $filter['text'], $filter['text']); } break; case 'login': $q->addWhere('login=?', $filter['text']); break; case 'name': $q->addWhere("name_f LIKE ? OR name_l LIKE ?\n OR CONCAT(name_f, ' ', name_l) LIKE ?\n OR CONCAT(name_l, ' ', name_f) LIKE ?", '%' . $filter['text'] . '%', '%' . $filter['text'] . '%', '%' . $filter['text'] . '%', '%' . $filter['text'] . '%'); break; case 'receipt': if ($q->getTableName() == '?_invoice') { $q->leftJoin('?_invoice_payment', 'p'); } $q->addWhere('receipt_id LIKE ?', '%' . $filter['text'] . '%'); break; case 'coupon': if ($q->getTableName() != '?_invoice') { $q->leftJoin('?_invoice', 'i', 't.invoice_id=i.invoice_id'); } $q->addWhere('coupon_code=?', $filter['text']); break; } } if (@$filter['product_id']) { $q->leftJoin('?_invoice_item', 'ii', 't.invoice_id=ii.invoice_id')->addWhere('ii.item_type=?', 'product')->addWhere('ii.item_id in (?a)', $filter['product_id']); } if (@$filter['paysys_id']) { $q->addWhere('paysys_id in (?a)', $filter['paysys_id']); } }
protected function applyFilter() { if ($filter = $this->getParam('filter')) { foreach ($this->filterMap as $alias => $fields) { foreach ($fields as $field) { $c = new Am_Query_Condition_Field($field, 'LIKE', '%' . $filter . '%', $alias); if (!$condition) { $condition = $c; } else { $condition->_or($c); } } } $this->grid->getDataSource()->getDataSourceQuery()->add($condition); } if ($filter = $this->getParam('dat1')) { $this->grid->getDataSource()->getDataSourceQuery()->addWhere("t.{$this->datField} >= ?", Am_Form_Element_Date::createFromFormat(null, $filter)->format('Y-m-d 00:00:00')); } if ($filter = $this->getParam('dat2')) { $this->grid->getDataSource()->getDataSourceQuery()->addWhere("t.{$this->datField} <= ?", Am_Form_Element_Date::createFromFormat(null, $filter)->format('Y-m-d 23:59:59')); } }
protected function applyFilter() { class_exists('Am_Form', true); $filter = (array) $this->vars['filter']; $q = $this->grid->getDataSource(); $dateField = $this->vars['filter']['datf']; if (!array_key_exists($dateField, $this->getDateFieldOptions())) { throw new Am_Exception_InternalError(sprintf('Unknown date field [%s] submitted in %s::%s', $dateField, __CLASS__, __METHOD__)); } /* @var $q Am_Query */ if ($filter['dat1']) { $q->addWhere("t.{$dateField} >= ?", Am_Form_Element_Date::createFromFormat(null, $filter['dat1'])->format('Y-m-d 00:00:00')); } if ($filter['dat2']) { $q->addWhere("t.{$dateField} <= ?", Am_Form_Element_Date::createFromFormat(null, $filter['dat2'])->format('Y-m-d 23:59:59')); } if (@$filter['text']) { switch (@$filter['type']) { case 'invoice': $q->addWhere('(t.invoice_id=? OR t.invoice_public_id=?)', $filter['text'], $filter['text']); break; case 'receipt': $q->addWhere('receipt_id LIKE ?', '%' . $filter['text'] . '%'); break; case 'coupon': $q->leftJoin('?_invoice', 'i', 't.invoice_id=i.invoice_id'); $q->addWhere('i.coupon_code=?', $filter['text']); break; } } if (@$filter['product_id']) { $q->leftJoin('?_invoice_item', 'ii', 't.invoice_id=ii.invoice_id')->addWhere('ii.item_type=?', 'product')->addWhere('ii.item_id=?', $filter['product_id']); } if (@$filter['dont_show_refunded']) { $q->addWhere('t.refund_dattm IS NULL'); } }
function getDates() { $filter = $this->vars['filter']; if ($filter['period'] == 'exact') { $dat1 = Am_Form_Element_Date::createFromFormat(null, $filter['dat1'])->format('Y-m-d'); $dat2 = Am_Form_Element_Date::createFromFormat(null, $filter['dat2'])->format('Y-m-d'); } else { list($dat1, $dat2) = $this->grid->getDi()->interval->getStartStop($filter['period']); } return array($dat1, $dat2); }