protected function upce2a($code)
{
$manufacturer = '';
$itemNumber = '';
if (strlen($code) > 6) {
$code = substr($code, -6);
} else {
$code = str_pad($code, 6, '0', STR_PAD_LEFT);
}
// break digits
$digit1 = substr($code, 0, 1);
$digit2 = substr($code, 1, 1);
$digit3 = substr($code, 2, 1);
$digit4 = substr($code, 3, 1);
$digit5 = substr($code, 4, 1);
$digit6 = substr($code, 5, 1);
switch ($digit6) {
case '0':
$manufacturer = $digit1 . $digit2 . $digit6 . '00';
$itemNumber = '00' . $digit3 . $digit4 . $digit5;
break;
case '1':
$manufacturer = $digit1 . $digit2 . $digit6 . '00';
$itemNumber = '00' . $digit3 . $digit4 . $digit5;
break;
case '2':
$manufacturer = $digit1 . $digit2 . $digit6 . '00';
$itemNumber = '00' . $digit3 . $digit4 . $digit5;
break;
case '3':
$manufacturer = $digit1 . $digit2 . $digit3 . '00';
$itemNumber = '000' . $digit4 . $digit5;
break;
case '4':
$manufacturer = $digit1 . $digit2 . $digit3 . $digit4 . '0';
$itemNumber = '0000' . $digit5;
break;
default:
$manufacturer = $digit1 . $digit2 . $digit3 . $digit4 . $digit5;
$itemNumber = '0000' . $digit6;
break;
}
return '0' . $manufacturer . $itemNumber;
}