本文整理汇总了PHP中Invoice::validate方法的典型用法代码示例。如果您正苦于以下问题:PHP Invoice::validate方法的具体用法?PHP Invoice::validate怎么用?PHP Invoice::validate使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Invoice
的用法示例。
在下文中一共展示了Invoice::validate方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: process
/**
* This function is likely never returns
* but anyway handle result and exceptions
* @return Am_Paysystem_Result
*/
function process()
{
$err = $this->invoice->validate();
if ($err) {
throw new Am_Exception_InputError($err[0]);
}
$this->invoice->save();
$plugin = Am_Di::getInstance()->plugins_payment->loadGet($this->invoice->paysys_id);
$this->result = new Am_Paysystem_Result();
$plugin->processInvoice($this->invoice, $this->controller->getRequest(), $this->result);
if ($this->result->isSuccess() || $this->result->isFailure()) {
if ($transaction = $this->result->getTransaction()) {
$transaction->setInvoice($this->invoice);
$transaction->process();
}
}
if ($this->result->isSuccess()) {
$url = REL_ROOT_URL . "/thanks?id=" . $this->invoice->getSecureId('THANKS');
$this->callback($this->onSuccess);
$this->controller->redirectLocation($url, ___("Invoice processed"), ___("Invoice processed successfully"));
// no return Am_Exception_Redirect
} elseif ($this->result->isAction()) {
$this->callback($this->onAction);
$this->result->getAction()->process($this->controller);
// no return Am_Exception_Redirect
} else {
// ($result->isFailure()) {
$this->callback($this->onFailure);
}
return $this->result;
}
示例2: repeatAction
function repeatAction()
{
if (!$this->invoice) {
throw new Am_Exception_InputError('No invoice found, cannot repeat');
}
if ($this->invoice->isPaid()) {
throw new Am_Exception_InputError("Invoice #{$id} is already paid");
}
$found = false;
foreach ($this->view->paysystems as $ps) {
if ($ps['paysys_id'] == $this->getFiltered('paysys_id')) {
$found = true;
break;
}
}
if (!$found) {
return $this->indexAction();
}
$this->invoice->updateQuick('paysys_id', $this->getFiltered('paysys_id'));
if ($err = $this->invoice->validate()) {
throw new Am_Exception_InputError($err[0]);
}
$payProcess = new Am_Paysystem_PayProcessMediator($this, $this->invoice);
$result = $payProcess->process();
if ($result->isFailure()) {
$this->view->error = $result->getErrorMessages();
return $this->indexAction();
}
}
示例3: actionCreate
/**
* Creates a new model.
* If creation is successful, the browser will be redirected to the 'show' page.
*/
public function actionCreate()
{
$model = new Invoice($this->action->id);
if (isset($_POST['Invoice'])) {
// collect user input data
$model->attributes = $_POST['Invoice'];
// validate with the current action as scenario and save without validation
if (($validated = $model->validate()) !== false && ($saved = $model->save(false)) !== false) {
// set success message
MUserFlash::setTopSuccess(Yii::t('hint', 'The new invoice record number "{invoiceNumber}" has been successfully created.', array('{invoiceNumber}' => MHtml::wrapInTag($model->id, 'strong'))));
// go to the 'show' page
$this->redirect(array('show', 'id' => $model->id));
}
} else {
// pre-assigned attributes (default values for a new record)
if (isset($_GET['companyId'])) {
// company is known
$model->companyId = $_GET['companyId'];
}
}
$this->render($this->action->id, array('model' => $model));
}
示例4: _addPendingInvoiceAndSend
protected function _addPendingInvoiceAndSend(Invoice $invoice, Am_Form $form, $vars)
{
if ($vars['paysys_id']) {
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->due_date = $vars['tm_due'];
$invoice->save();
$et = Am_Mail_Template::load('invoice_pay_link', $invoice->getUser()->lang ? $invoice->getUser()->lang : null);
$et->setUser($invoice->getUser());
$et->setUrl(ROOT_SURL . sprintf('/pay/%s', $invoice->getSecureId('payment-link')));
$et->setMessage($vars['message']);
$et->setInvoice($invoice);
$et->setInvoice_text($invoice->render());
$et->send($invoice->getUser());
return true;
}
示例5: save_invoice
/**
* Update or create an invoice.
*
* @param bool $creating
* @param array $new_data Data to update or create the invoice with.
*/
private function save_invoice($creating, $new_data)
{
// Validate the invoice, find what needs to be updated.
// $this->invoice will also be updated so if we display it
// it will have the latest user-submitted data.
$result = Invoice::validate($creating, $new_data, $this->invoice, $this->current_user[InvoicerDB::USER_ID]);
// Database error.
if ($result === null) {
$this->set_page_to_error();
return;
}
// Validation error.
if (!empty($result['errors'])) {
$this->field_errors = $result['errors'];
return;
}
// Nothing changed.
if (empty($result['update'])) {
$this->success_message = 'Nothing changed';
return;
}
// Try updating/inserting.
$database = InvoicerDB::instance();
$update_result = $database->update_invoice($creating ? null : $this->invoice[InvoicerDB::INVOICE_ID], $result['update'], $result['insert_rows'], $result['update_rows']);
// Database error.
if ($update_result === null || $update_result === false) {
$this->set_page_to_error();
return;
}
// Saved successfully - redirect if any slugs or the title changed (always true when creating).
if (isset($result['update'][InvoicerDB::INVOICE_SLUG]) || isset($result['update'][InvoicerDB::COMPANY_ID]) || isset($result['update'][InvoicerDB::INVOICE_TITLE])) {
$reason = $creating ? 'created' : 'updated';
$company = $database->get_company_by(InvoicerDB::COMPANY_ID, $new_data[InvoicerDB::COMPANY_ID]);
if (empty($company)) {
$this->set_page_to_error();
return;
}
header('Location: ' . $this->url . '/' . $company[InvoicerDB::COMPANY_SLUG] . '/' . $this->invoice[InvoicerDB::INVOICE_SLUG] . '/?reason=' . $reason);
exit;
} else {
$this->success_message = 'Invoice updated';
}
}