<?php
defined('BASEPATH') or exit('No direct script access allowed');

if (!function_exists('return_error')) {
    function return_error($message)
    {
        $CI = &get_instance();
        return $CI->output
            ->set_content_type('application/json')
            ->set_status_header(400)
            ->set_output(json_encode(array('error' => $message)));
    }
}

if (!function_exists('generate_invoice_id')) {
    function generate_invoice_id()
    {
        return sprintf(
            '%04x%04x-%04x-%04x-%04x-%04x%04x%04x',
            mt_rand(0, 65535),
            mt_rand(0, 65535),
            mt_rand(0, 65535),
            mt_rand(16384, 20479),
            mt_rand(32768, 49151),
            mt_rand(0, 65535),
            mt_rand(0, 65535),
            mt_rand(0, 65535)
        );
    }
}

if (!function_exists('generate_invoice_number')) {
    function generate_invoice_number($length = 16)
    {
        $characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
        $charactersLength = strlen($characters);
        $invoiceNumber = '';

        for ($i = 0; $i < $length; $i++) {
            $invoiceNumber .= $characters[rand(0, $charactersLength - 1)];
        }

        return $invoiceNumber;
    }
}
