Example #1
0
function repeatInvoice($option, $invoice_number, $cart, $userid, $first = 0)
{
    $user = JFactory::getUser();
    // Always rewrite to session userid
    if (!empty($user->id)) {
        $userid = $user->id;
    } elseif (AECToolbox::quickVerifyUserID($userid) === true) {
        // This user is not expired, so he could log in...
        return getView('access_denied');
    } else {
        $userid = aecInvoiceHelper::UserIDfromInvoiceNumber($invoice_number);
    }
    $invoiceid = null;
    if (empty($cart)) {
        $invoiceid = aecInvoiceHelper::InvoiceIDfromNumber($invoice_number, $userid);
    }
    // Only allow a user to access existing and own invoices
    if ($invoiceid) {
        global $aecConfig;
        if (!isset($_POST['invoice'])) {
            $_POST['option'] = $option;
            $_POST['task'] = 'repeatPayment';
            $_POST['invoice'] = $invoice_number;
            $_POST['userid'] = $userid;
        }
        $iFactory = new InvoiceFactory($userid);
        $iFactory->touchInvoice($invoice_number);
        $iFactory->loadProcessorObject();
        $status = $iFactory->usageStatus();
        if ($status || !$status && $aecConfig->cfg['allow_invoice_unpublished_item']) {
            if (!$iFactory->checkAuth($option)) {
                return getView('access_denied');
            }
        } else {
            return getView('access_denied');
        }
        return $iFactory->save(null);
    } elseif ($cart) {
        $iFactory = new InvoiceFactory($userid);
        $iFactory->usage = 'c.' . $cart;
        if (!empty($invoice_number)) {
            $iFactory->invoice_number = $invoice_number;
        }
        $iFactory->confirmcart(null, true);
    } else {
        return getView('access_denied');
    }
}