/** * Set $conditions based on user input. This function must be called * only once, because it does not do any cleanup * @param Am_Request|array $vars * @see $this->search */ function setFromRequest($vars) { if ($vars instanceof Am_Request) { $vars = $vars->toArray(); } $this->initPossibleConditions(); $this->createForm((array) $vars); $vars = $this->form->getValue(); $search = @$vars[$this->prefix]; foreach ($this->possibleConditions as $cond) { if ($cond->setFromRequest($search)) { $this->conditions[] = $cond; $el = $this->form->getElementById($cond->getId()); if ($el) { $el->setAttribute('class', 'searchField'); } // remote "empty" class } } }
protected function _addPendingInvoiceAndPayment(Invoice $invoice, Am_Form $form, $vars) { if (!$vars['paysys_id']) { $form->getElementById('add-invoice-paysys_id')->setError(___('This field is required for choosen action')); } if (!$vars['receipt']) { $form->getElementById('add-invoice-receipt')->setError(___('This field is required for choosen action')); } if (!$vars['paysys_id'] || !$vars['receipt']) { return false; } try { $invoice->setPaysystem($vars['paysys_id'], false); } catch (Am_Exception_InputError $e) { $form->setError($e->getMessage()); return false; } $errors = $invoice->validate(); if ($errors) { $form->setError(current($errors)); return false; } $invoice->data()->set('added-by-admin', $this->getDi()->authAdmin->getUserId()); $invoice->save(); if ($invoice->first_total <= 0) { $invoice->addAccessPeriod(new Am_Paysystem_Transaction_Free($this->getDi()->plugins_payment->get($vars['paysys_id']))); } else { $transaction = new Am_Paysystem_Transaction_Manual($this->getDi()->plugins_payment->get($vars['paysys_id'])); $transaction->setAmount($invoice->first_total)->setReceiptId($vars['receipt'])->setTime(new DateTime($vars['tm_added'])); $invoice->addPayment($transaction); } return true; }