90 lines
2.6 KiB
PHP
90 lines
2.6 KiB
PHP
<?php
|
|
|
|
if (!defined('BASEPATH')) {
|
|
exit('No direct script access allowed');
|
|
}
|
|
|
|
/*
|
|
* InvoicePlane
|
|
*
|
|
* A free and open source web based invoicing system
|
|
*
|
|
* @package InvoicePlane
|
|
* @author Kovah (www.kovah.de)
|
|
* @copyright Copyright (c) 2012 - 2015 InvoicePlane.com
|
|
* @license https://invoiceplane.com/license.txt
|
|
* @link https://invoiceplane.com
|
|
*
|
|
*/
|
|
|
|
class Payment_Information extends Base_Controller
|
|
{
|
|
public function __construct()
|
|
{
|
|
parent::__construct();
|
|
|
|
$this->load->model('invoices/mdl_invoices');
|
|
}
|
|
|
|
public function form($invoice_url_key)
|
|
{
|
|
$this->load->model('payment_methods/mdl_payment_methods');
|
|
$disable_form = false;
|
|
|
|
// Check if the invoice exists and is billable
|
|
$invoice = $this->mdl_invoices->where('ip_invoices.invoice_url_key', $invoice_url_key)
|
|
->get()->row();
|
|
|
|
if (!$invoice) {
|
|
show_404();
|
|
}
|
|
|
|
// Check if the invoice is payable
|
|
if ($invoice->invoice_balance == 0) {
|
|
$this->session->set_userdata('alert_error', lang('invoice_already_paid'));
|
|
$disable_form = true;
|
|
}
|
|
|
|
// Get all payment gateways
|
|
$this->load->model('mdl_settings');
|
|
$this->config->load('payment_gateways');
|
|
$gateways = $this->config->item('payment_gateways');
|
|
|
|
$available_drivers = array();
|
|
foreach ($gateways as $driver => $fields) {
|
|
|
|
$d = strtolower($driver);
|
|
|
|
if (get_setting('gateway_' . $d . '_enabled') == 1) {
|
|
$invoice_payment_method = $invoice->payment_method;
|
|
$driver_payment_method = get_setting('gateway_' . $d . '_payment_method');
|
|
|
|
if ($invoice_payment_method == 0 || $driver_payment_method == 0 || $driver_payment_method == $invoice_payment_method) {
|
|
array_push($available_drivers, $driver);
|
|
}
|
|
}
|
|
}
|
|
|
|
// Get additional invoice information
|
|
$payment_method = $this->mdl_payment_methods->where('payment_method_id', $invoice->payment_method)->get()->row();
|
|
if ($invoice->payment_method == 0) {
|
|
$payment_method = null;
|
|
}
|
|
|
|
$is_overdue = ($invoice->invoice_balance > 0 && strtotime($invoice->invoice_date_due) < time() ? true : false);
|
|
|
|
// Return the view
|
|
$view_data = array(
|
|
'disable_form' => $disable_form,
|
|
'invoice' => $invoice,
|
|
'gateways' => $available_drivers,
|
|
'payment_method' => $payment_method,
|
|
'is_overdue' => $is_overdue,
|
|
);
|
|
|
|
$this->load->view('guest/payment_information', $view_data);
|
|
|
|
}
|
|
|
|
}
|