Milon\Barcode\DNS1D::upce2a PHP Method

upce2a() protected method

Convert UPC-E to UPC-A
protected upce2a ( $code ) : string
$code (string) code to represent.
return string upc-a value of upc-e
    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;
    }