✏️ 正在编辑: EnviarPesquisa.php
路径:
/srv/systems_dir/oakberry/application/forms/Filtro/EnviarPesquisa.php
提示:
您可以编辑任何文件(包括二进制文件),但请注意不当修改可能导致文件损坏。
<?php class Form_Filtro_EnviarPesquisa extends Yuppie_Form_Filtro { protected $postRequired = false; public function init() { $this->dbtable = new Model_DbTable_Lead(); $this->order = ["data_cadastro"]; $this->limit = 100; $this->addElement('text', 'nome', [ 'label' => 'Cliente:', 'size' => 40 ]); $this->addElement('date', 'data_cadastro_de', array( 'label' => 'Data Cadastro Inicial', 'prepend' => '<span class="glyphicon-reg glyphicon-reg-calendar"></span>', 'value' => Zend_Date::now()->get('dd/MM/yyyy') )); $this->addElement('date', 'data_cadastro_a', array( 'label' => 'Data Cadastro Final', 'prepend' => '<span class="glyphicon-reg glyphicon-reg-calendar"></span>', 'value' => Zend_Date::now()->get('dd/MM/yyyy') )); $this->addElement('text', 'celular', [ 'label' => 'Whastapp:', 'size' => 20, 'onkeypress' => 'mascara(this, soNumeros)' ]); $this->addElement('text', 'last_order_de', [ 'label' => 'Sem Pedir de:', 'onkeypress' => 'mascara(this, soNumeros)', 'maxlength' => '3', 'pattern' => '\d*', 'placeholder' => 'Nº de dias em que foi feito o último pedido' ]); $this->addElement('text', 'last_order_a', [ 'label' => 'Sem Pedir a:', 'onkeypress' => 'mascara(this, soNumeros)', 'maxlength' => '3', 'pattern' => '\d*', 'placeholder' => 'Nº de dias em que foi feito o último pedido' ]); $this->addElement('select', 'situacao', array( 'label' => 'Cupom Utilizado:', 'multiOptions' => [ '' => '', '1' => 'Sim', '2' => 'Não' ], )); $this->addElement('text', 'valor_minimo', [ 'label' => 'Valor Mínimo:', 'onkeypress' => 'mascara(this, mvalor)', 'placeholder' => 'Valor mínimo do pedido' ]); $this->addElement('text', 'valor_maximo', [ 'label' => 'Valor Máximo:', 'onkeypress' => 'mascara(this, mvalor)', 'placeholder' => 'Valor máximo do pedido' ]); $this->addElement('multiselect', 'score', [ 'label' => 'Score', 'multiOptions' => Core_Combos::getListScore(), 'class' => 'multiselect' ]); $this->addElement('select', 'aniversario', [ 'label' => 'Mês Aniversário:', 'multiOptions' => Core_Combos::getMeses(), ]); $this->_initButtons(); } protected function _initButtons() { parent::_initButtons(); $this->removeElement('new'); } protected function _getWhere() { $fields = $this->getValues(); $params = ['tb_leads_empresas.nao_perturbe = 0']; $having = []; if (!empty($fields['nome'])) { $params[] = "nome like '%{$fields['nome']}%'"; } if (!empty($fields['celular'])) { $params[] = "celular like '%{$fields['celular']}%'"; } if (!empty($fields['data_cadastro_de'])) { $params[] = "tb_leads_empresas.data_cadastro >= '{$fields['data_cadastro_de']} 00:00:00'"; } if (!empty($fields['data_cadastro_a'])) { $params[] = "tb_leads_empresas.data_cadastro <= '{$fields['data_cadastro_a']} 23:59:59'"; } if (!empty($fields['last_order_de'])) { $having[] = "data_pedido > '" . Zend_Date::now()->subDay($fields['last_order_de'])->get('yyyy-MM-dd') . "'"; $params[] = "tb_pedidos.id IS NOT NULL"; } if (!empty($fields['last_order_a'])) { $having[] = "(data_pedido < '" . Zend_Date::now()->subDay($fields['last_order_a'])->get('yyyy-MM-dd') . "' OR data_pedido IS NULL)"; $params[] = "tb_pedidos.id IS NOT NULL"; } if (!empty($fields['situacao'])) { if ($fields['situacao'] == 1) { $params[] = "utilizado_em is not null"; } else { $params[] = "utilizado_em is null"; } } if (!empty($fields['valor_minimo'])) { $valorMinimo = String_Refatorar::parseStringToFloat($fields['valor_minimo']); $params[] = "tb_pedidos.valor_pedido >= '{$valorMinimo}'"; } if (!empty($fields['valor_maximo'])) { $valorMaximo = String_Refatorar::parseStringToFloat($fields['valor_maximo']); $params[] = "tb_pedidos.valor_pedido <= '{$valorMaximo}'"; } if (!empty($fields['score'])) { if (is_array($fields['score'])) { $params[] = "tb_leads_empresas.score IN ('" . implode("','", $fields['score']) . "')"; } else { $params[] = "tb_leads_empresas.score = '{$fields['score']}'"; } } if (!empty($fields['aniversario'])) { $params[] = "month(str_to_date(tb_leads.aniversario, '%d/%m')) = '{$fields['aniversario']}'"; } return [ 'where' => $params, 'having' => $having ]; } public function isValid($data) { $valid = true; if (!empty($data['last_order_de']) && !empty($data['last_order_a']) && $data['last_order_de'] < $data['last_order_a']) { $this->getElement('last_order_de') ->addError('O valor de Sem Pedir de tem que ser maior que o Sem Pedir a.'); $valid = false; } if (!empty($data['valor_minimo']) && !empty($data['valor_maximo']) && $data['valor_maximo'] < $data['valor_minimo']) { $this->getElement('valor_minimo') ->addError('O Valor Mínimo de tem que ser menor que o Valor Máximo.'); $valid = false; } return $valid && parent::isValid($data); } public function search() { $request = Zend_Controller_Front::getInstance()->getRequest(); $id = get_class($this); $ns = new Zend_Session_Namespace($id); if ($request->isPost() && $this->isValid($request->getPost())) { $ns->unsetAll(); $ns->$id = $request->getPost(); } if ($this->postRequired && (!$ns->$id || !$this->getValues())) { return; } $where = $this->_getWhere(); return $this->dbtable->listarLeads($where['where'], $this->order, 'tb_leads.id', $where['having']); } }
💾 保存文件
← 返回文件管理器