Back to PhocacartOrder class

Method getInvoiceNumber

public static bool|mixed
getInvoiceNumber
(mixed $orderId, mixed $date = false, mixed $invoiceNumber = false, mixed $invoiceNumberId = false)
Parameters
  • $orderId
  • bool $date
  • bool $invoiceNumber ... is human readable number
  • bool $invoiceNumberId ... is number id which must not be the same like autoincrement because of montly or yearly created numbers, see parameter: invoice_creating_numbers
Returns
  • bool|mixed

Method getInvoiceNumber - Source code

/**
 * @param $orderId
 * @param bool $date
 * @param bool $invoiceNumber   ... is human readable number
 * @param bool $invoiceNumberId ... is number id which must not be the same like autoincrement because of montly or yearly created numbers, see parameter: invoice_creating_numbers
 * @return bool|mixed
 */
public static function getInvoiceNumber($orderId, $date = false, $invoiceNumber = false, $invoiceNumberId = false)
{
    if ($invoiceNumber) {
        return $invoiceNumber;
        // the number is stored in database yet
    }
    $paramsC = PhocacartUtils::getComponentParameters();
    $invoice_number_format = $paramsC->get('invoice_number_format', '{prefix}{year}{orderid}{suffix}');
    $invoice_number_prefix = $paramsC->get('invoice_number_prefix', '');
    $invoice_number_suffix = $paramsC->get('invoice_number_suffix', '');
    $order_id_length_invoice = $paramsC->get('order_id_length_invoice', '10');
    $date = !$date ? self::getOrderDate($orderId) : $date;
    $dateO = PhocacartDate::splitDate($date);
    $id = $orderId;
    if ($invoiceNumberId && $invoiceNumberId > 0) {
        $id = $invoiceNumberId;
        // not autoincrement but specific ID based on year or month see parameter: invoice_creating_numbers
    } else {
        return '';
    }
    $id = str_pad($id, $order_id_length_invoice, '0', STR_PAD_LEFT);
    $o = str_replace('{orderid}', $id, $invoice_number_format);
    $o = str_replace('{prefix}', $invoice_number_prefix, $o);
    $o = str_replace('{suffix}', $invoice_number_suffix, $o);
    $o = str_replace('{year}', $dateO['year'], $o);
    $o = str_replace('{month}', $dateO['month'], $o);
    $o = str_replace('{day}', $dateO['day'], $o);
    return $o;
    /*	$order_date 			= $orderDate != ''				? $orderDate : self::getOrderDate($orderId);
                $invoice_prefix			= $invoicePrefix != '' 			? $invoicePrefix : $paramsC->get('invoice_prefix', '');
                $invoice_number_format	= $invoiceNumberFormat != ''	? $invoiceNumberFormat : $paramsC->get( 'invoice_number_format', '');
                $invoice_number_chars	= $invoiceNumberChars != '' 	? $invoiceNumberChars : $paramsC->get( 'invoice_number_chars', 12);
    
    
    
                $order_date = date("Ymd", strtotime($order_date));
    
                $iN = $invoice_number_format;
    
                $iN = str_replace('{prefix}', $invoice_prefix, $iN);
                $iN = str_replace('{orderdate}', $order_date, $iN);
    
                $pos = strpos($iN, '{orderid}');
    
                if ($pos === false) {
                    $l1	= strlen($iN);
                    $l2	= 0;
                    //$l = $invoice_number_chars - $l1 - $l2;
                    $l = $l1;
                    if ($l < 0) {$l = 0;}
                    $iN 		= str_pad($iN, $invoice_number_chars, '0', STR_PAD_RIGHT);
    
                } else {
                    $l1			= strlen(str_replace('{orderid}', '', $iN));
                    //$l2			= strlen($orderId);
                    $l 			= $invoice_number_chars - $l1;
    
                    if ($l < 0) {$l = 0;}
    
                    $orderId 	=  str_pad($orderId, $l, '0', STR_PAD_LEFT);
                    $iN 		= str_replace('{orderid}', $orderId, $iN);
                }
    
                return $iN;*/
}