uploadPath = $uploadDirData['basedir'] . '/' . $config['uploads'];
}
public function generateFile($data)
{
$w = $h = 250;
$barcodeGenerator = new Generator();
$barcodeGenerator->setStorPath($this->uploadPath . '/');
$fileName = $barcodeGenerator->getGeneratedBarcodeSVGFileName($data['lineBarcode'], $data['algorithm'], $w, $h, 'black');
return $this->imageUrl . '/' . $fileName;
}
public function generateXml($data)
{
$w = !empty($data['width']) && !empty(intval($data['width'])) ? intval($data['width']) : 500;
$h = !empty($data['height']) && !empty(intval($data['height'])) ? intval($data['height']) : 500;
if (in_array($data['algorithm'], array('QRCODE', 'DATAMATRIX'))) {
$w = min($w, $h);
$h = $w;
}
$withoutFile = true;
$barcodeGenerator = new Generator();
$barcodeGenerator->setStorPath($this->uploadPath . '/');
return $barcodeGenerator->getGeneratedBarcodeSVGFileName($data['lineBarcode'], $data['algorithm'], $w, $h, 'black', $withoutFile);
}
public function validateBarcode(&$code, $algorithm, $data = array())
{
$validData = array(
'message' => '',
'is_valid' => true,
);
$field = '"Barcode"';
if (isset($data["lineBarcode"])) {
$field = "\"{$data["lineBarcode"]["value"]}\"";
}
if (0 == mb_strlen($code)) {
$validData['is_valid'] = false;
$msg = "The %field% field is not specified for this product.";
$validData['message'] = str_replace('%field%', $field, $msg);
return $validData;
}
switch ($algorithm) {
case 'EAN8':
$validData['is_valid'] = CodeValidator::IsValidEAN8($code);
if (!$validData['is_valid']) {
$msg = "%field% field contains incorrect data. It must contain 8 digits. 7 digits and 8th is a checksum digit calculated by formula. Check more on Wiki.";
$validData['message'] = str_replace('%field%', $field, $msg);
}
break;
case 'EAN13':
$validData['is_valid'] = 12 === strlen($code)
? CodeValidator::IsValidEAN13($code .= CodeValidatorEx::calculateEANCheckDigit(strrev($code)))
: CodeValidator::IsValidEAN13($code);
if (!$validData['is_valid']) {
$msg = "%field% field contains incorrect data. It must contain 13 digits. 12 digits and 13th is a checksum digit calculated by formula. Check more on Wiki.";
$validData['message'] = str_replace('%field%', $field, $msg);
}
break;
case 'UPCA':
$validData['is_valid'] = 11 === strlen($code)
? CodeValidator::IsValidUPCA($code .= CodeValidatorEx::calculateEANCheckDigit($code))
: CodeValidator::IsValidUPCA($code);
if (!$validData['is_valid']) {
$msg = "%field% field contains incorrect data. It must contain 12 digits. 11 digits and 12th is a checksum digit calculated by formula. Check more on Wiki.";
$validData['message'] = str_replace('%field%', $field, $msg);
}
break;
case 'UPCE':
$codeLength = strlen($code);
if (7 === $codeLength) {
if ('0' === $code[0]) {
$code = substr($code, 1, 7);
}
}
$validData['is_valid'] = CodeValidator::IsValidUPCE($code);
if (!$validData['is_valid']) {
$msg = "%field% field contains incorrect data. It must contain 6 digits. UPC-E is a variation of UPC-A which allows for a more compact barcode by eliminating 'extra' zeros. Check more on Wiki.";
$validData['message'] = str_replace('%field%', $field, $msg);
}
break;
case 'C128':
$patern = '/^[\x00-\x7F]+$/';
$validData['is_valid'] = preg_match($patern, $code);
if (!$validData['is_valid']) {
$msg = "%field% field contains incorrect data. Code 128 supports alphanumeric or numeric-only barcodes. It can encode all 128 characters of ASCII encoding.";
$validData['message'] = str_replace('%field%', $field, $msg);
}
break;
case 'C39':
$patern = "#^[0-9a-zA-Z\-\.\ \$\/\+\%]+$#ui";
if (false == preg_match($patern, $code)) {
$validData['is_valid'] = false;
$msg = "%field% field contains incorrect data. Code 39 supports 43 characters, consisting of letters (A-Z), numeric digits (0 through 9) and a number of special characters (-, ., $, /, +, %, and space).";
$validData['message'] = str_replace('%field%', $field, $msg);
}
break;
case 'QRCODE':
$validData['is_valid'] = true;
$validData['message'] = '';
break;
case 'DATAMATRIX':
$validData['is_valid'] = true;
$validData['message'] = '';
break;
}
return $validData;
}
}