Files
2025-08-07 21:16:42 +02:00

52 lines
1.6 KiB
PHP

<?php
/**
* Replaces the string order reference with numeric one
*
* @package gmnumeric
* @author Dariusz Tryba (contact@greenmousestudio.com)
* @copyright Copyright (c) Green Mouse Studio (http://www.greenmousestudio.com)
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
*/
class Order extends OrderCore
{
/*
* module: gmnumeric
* date: 2016-04-18 08:55:44
* version: 1.1.0
*/
public static function generateReference()
{
// return strtoupper(Tools::passwdGen(9, 'NO_NUMERIC'));
$id_shop = (int)Context::getContext()->shop->id;
$reference = Db::getInstance()->getValue( 'SELECT reference FROM ' . _DB_PREFIX_.'orders WHERE id_shop = ' . $id_shop . ' ORDER BY id_order DESC' );
if ( $id_shop == 1 )
$reference = str_replace( 'D', '', $reference );
elseif ( $id_shop == 2 )
$reference = str_replace( 'L', '', $reference );
$reference = str_pad( (int)$reference + 1, 8, '000000000', STR_PAD_LEFT );
if ( $id_shop == 1 )
$reference_number = 'D' . $reference;
elseif ( $id_shop == 2 )
$reference_number = 'L' . $reference;
while ( $count = Db::getInstance()->getValue( 'SELECT COUNT(0) FROM ' . _DB_PREFIX_.'orders WHERE reference = \'' . $reference_number . '\'' ) )
{
$reference++;
$reference = str_pad( (int)$reference + 1, 8, '000000000', STR_PAD_LEFT );
if ( $id_shop == 1 )
$reference_number = 'D' . $reference;
elseif ( $id_shop == 2 )
$reference_number = 'L' . $reference;
}
return $reference_number;
}
}