mirror of
https://github.com/snipe/snipe-it.git
synced 2024-12-30 07:59:50 -08:00
Merge remote-tracking branch 'origin/develop'
This commit is contained in:
commit
24a9deb735
|
@ -30,7 +30,7 @@ class LabelsController extends Controller
|
||||||
$exampleAsset = new Asset();
|
$exampleAsset = new Asset();
|
||||||
|
|
||||||
$exampleAsset->id = 999999;
|
$exampleAsset->id = 999999;
|
||||||
$exampleAsset->name = 'AST-AB-CD-1234';
|
$exampleAsset->name = 'JEN-867-5309';
|
||||||
$exampleAsset->asset_tag = 'TCA-00001';
|
$exampleAsset->asset_tag = 'TCA-00001';
|
||||||
$exampleAsset->serial = 'SN9876543210';
|
$exampleAsset->serial = 'SN9876543210';
|
||||||
|
|
||||||
|
|
|
@ -26,8 +26,8 @@ class LabelsTransformer
|
||||||
'name' => $label->getName(),
|
'name' => $label->getName(),
|
||||||
'unit' => $label->getUnit(),
|
'unit' => $label->getUnit(),
|
||||||
|
|
||||||
'width' => $label->getWidth(),
|
'width' => number_format($label->getWidth(), 2),
|
||||||
'height' => $label->getHeight(),
|
'height' => number_format($label->getHeight(), 2),
|
||||||
|
|
||||||
'margin_top' => $label->getMarginTop(),
|
'margin_top' => $label->getMarginTop(),
|
||||||
'margin_bottom' => $label->getMarginBottom(),
|
'margin_bottom' => $label->getMarginBottom(),
|
||||||
|
|
|
@ -370,7 +370,11 @@ abstract class Label
|
||||||
*/
|
*/
|
||||||
public final function write1DBarcode(TCPDF $pdf, $value, $type, $x, $y, $width, $height) {
|
public final function write1DBarcode(TCPDF $pdf, $value, $type, $x, $y, $width, $height) {
|
||||||
if (empty($value)) return;
|
if (empty($value)) return;
|
||||||
|
try {
|
||||||
$pdf->write1DBarcode($value, $type, $x, $y, $width, $height, null, ['stretch'=>true]);
|
$pdf->write1DBarcode($value, $type, $x, $y, $width, $height, null, ['stretch'=>true]);
|
||||||
|
} catch (\Exception $e) {
|
||||||
|
\Log::error('The 1D barcode ' . $value . ' is not compliant with the barcode type '. $type);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
19
app/Models/Labels/Tapes/Dymo/LabelWriter.php
Normal file
19
app/Models/Labels/Tapes/Dymo/LabelWriter.php
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Models\Labels\Tapes\Dymo;
|
||||||
|
|
||||||
|
use App\Helpers\Helper;
|
||||||
|
use App\Models\Labels\Label;
|
||||||
|
|
||||||
|
abstract class LabelWriter extends Label
|
||||||
|
{
|
||||||
|
private const HEIGHT = 1.15;
|
||||||
|
private const MARGIN_SIDES = 0.1;
|
||||||
|
private const MARGIN_ENDS = 0.1;
|
||||||
|
|
||||||
|
public function getHeight() { return Helper::convertUnit(self::HEIGHT, 'in', $this->getUnit()); }
|
||||||
|
public function getMarginTop() { return Helper::convertUnit(self::MARGIN_SIDES, 'in', $this->getUnit()); }
|
||||||
|
public function getMarginBottom() { return Helper::convertUnit(self::MARGIN_SIDES, 'in', $this->getUnit());}
|
||||||
|
public function getMarginLeft() { return Helper::convertUnit(self::MARGIN_ENDS, 'in', $this->getUnit()); }
|
||||||
|
public function getMarginRight() { return Helper::convertUnit(self::MARGIN_ENDS, 'in', $this->getUnit()); }
|
||||||
|
}
|
90
app/Models/Labels/Tapes/Dymo/LabelWriter_30252.php
Normal file
90
app/Models/Labels/Tapes/Dymo/LabelWriter_30252.php
Normal file
|
@ -0,0 +1,90 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Models\Labels\Tapes\Dymo;
|
||||||
|
|
||||||
|
|
||||||
|
class LabelWriter_30252 extends LabelWriter
|
||||||
|
{
|
||||||
|
private const BARCODE_MARGIN = 1.80;
|
||||||
|
private const TAG_SIZE = 2.80;
|
||||||
|
private const TITLE_SIZE = 2.80;
|
||||||
|
private const TITLE_MARGIN = 0.50;
|
||||||
|
private const LABEL_SIZE = 2.00;
|
||||||
|
private const LABEL_MARGIN = - 0.35;
|
||||||
|
private const FIELD_SIZE = 3.20;
|
||||||
|
private const FIELD_MARGIN = 0.15;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public function getUnit() { return 'mm'; }
|
||||||
|
public function getWidth() { return 96.52; }
|
||||||
|
public function getSupportAssetTag() { return true; }
|
||||||
|
public function getSupport1DBarcode() { return true; }
|
||||||
|
public function getSupport2DBarcode() { return true; }
|
||||||
|
public function getSupportFields() { return 3; }
|
||||||
|
public function getSupportLogo() { return false; }
|
||||||
|
public function getSupportTitle() { return true; }
|
||||||
|
|
||||||
|
public function preparePDF($pdf) {}
|
||||||
|
|
||||||
|
public function write($pdf, $record) {
|
||||||
|
$pa = $this->getPrintableArea();
|
||||||
|
|
||||||
|
$currentX = $pa->x1;
|
||||||
|
$currentY = $pa->y1;
|
||||||
|
$usableWidth = $pa->w;
|
||||||
|
|
||||||
|
$barcodeSize = $pa->h - self::TAG_SIZE;
|
||||||
|
|
||||||
|
if ($record->has('barcode2d')) {
|
||||||
|
static::writeText(
|
||||||
|
$pdf, $record->get('tag'),
|
||||||
|
$pa->x1, $pa->y2 - self::TAG_SIZE,
|
||||||
|
'freemono', 'b', self::TAG_SIZE, 'C',
|
||||||
|
$barcodeSize, self::TAG_SIZE, true, 0
|
||||||
|
);
|
||||||
|
static::write2DBarcode(
|
||||||
|
$pdf, $record->get('barcode2d')->content, $record->get('barcode2d')->type,
|
||||||
|
$currentX, $currentY,
|
||||||
|
$barcodeSize, $barcodeSize
|
||||||
|
);
|
||||||
|
$currentX += $barcodeSize + self::BARCODE_MARGIN;
|
||||||
|
$usableWidth -= $barcodeSize + self::BARCODE_MARGIN;
|
||||||
|
} else {
|
||||||
|
static::writeText(
|
||||||
|
$pdf, $record->get('tag'),
|
||||||
|
$pa->x1, $pa->y2 - self::TAG_SIZE,
|
||||||
|
'freemono', 'b', self::TAG_SIZE, 'R',
|
||||||
|
$usableWidth, self::TAG_SIZE, true, 0
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($record->has('title')) {
|
||||||
|
static::writeText(
|
||||||
|
$pdf, $record->get('title'),
|
||||||
|
$currentX, $currentY,
|
||||||
|
'freesans', '', self::TITLE_SIZE, 'L',
|
||||||
|
$usableWidth, self::TITLE_SIZE, true, 0
|
||||||
|
);
|
||||||
|
$currentY += self::TITLE_SIZE + self::TITLE_MARGIN;
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach ($record->get('fields') as $field) {
|
||||||
|
static::writeText(
|
||||||
|
$pdf, $field['label'],
|
||||||
|
$currentX, $currentY,
|
||||||
|
'freesans', '', self::LABEL_SIZE, 'L',
|
||||||
|
$usableWidth, self::LABEL_SIZE, true, 0, 0
|
||||||
|
);
|
||||||
|
$currentY += self::LABEL_SIZE + self::LABEL_MARGIN;
|
||||||
|
|
||||||
|
static::writeText(
|
||||||
|
$pdf, $field['value'],
|
||||||
|
$currentX, $currentY,
|
||||||
|
'freemono', 'B', self::FIELD_SIZE, 'L',
|
||||||
|
$usableWidth, self::FIELD_SIZE, true, 0, 0.3
|
||||||
|
);
|
||||||
|
$currentY += self::FIELD_SIZE + self::FIELD_MARGIN;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -74,9 +74,9 @@ class AssetObserver
|
||||||
$tag = $asset->asset_tag;
|
$tag = $asset->asset_tag;
|
||||||
$prefix = $settings->auto_increment_prefix;
|
$prefix = $settings->auto_increment_prefix;
|
||||||
$number = substr($tag, strlen($prefix));
|
$number = substr($tag, strlen($prefix));
|
||||||
// IF - auto_increment_assets is on, AND (the prefix matches the start of the tag OR there is no prefix)
|
// IF - auto_increment_assets is on, AND (there is no prefix OR the prefix matches the start of the tag)
|
||||||
// AND the rest of the string after the prefix is all digits, THEN...
|
// AND the rest of the string after the prefix is all digits, THEN...
|
||||||
if ($settings->auto_increment_assets && (strpos($tag, $prefix) === 0 || $prefix=='') && preg_match('/\d+/',$number) === 1) {
|
if ($settings->auto_increment_assets && ($prefix=='' || strpos($tag, $prefix) === 0) && preg_match('/\d+/',$number) === 1) {
|
||||||
// new way of auto-trueing-up auto_increment ID's
|
// new way of auto-trueing-up auto_increment ID's
|
||||||
$next_asset_tag = intval($number, 10) + 1;
|
$next_asset_tag = intval($number, 10) + 1;
|
||||||
// we had to use 'intval' because the $number could be '01234' and
|
// we had to use 'intval' because the $number could be '01234' and
|
||||||
|
|
|
@ -21,7 +21,7 @@ class LabelPresenter extends Presenter
|
||||||
], [
|
], [
|
||||||
'field' => 'name',
|
'field' => 'name',
|
||||||
'searchable' => true,
|
'searchable' => true,
|
||||||
'sortable' => true,
|
'sortable' => false,
|
||||||
'switchable' => true,
|
'switchable' => true,
|
||||||
'title' => trans('general.name'),
|
'title' => trans('general.name'),
|
||||||
'visible' => true,
|
'visible' => true,
|
||||||
|
@ -44,14 +44,14 @@ class LabelPresenter extends Presenter
|
||||||
], [
|
], [
|
||||||
'field' => 'support_fields',
|
'field' => 'support_fields',
|
||||||
'searchable' => false,
|
'searchable' => false,
|
||||||
'sortable' => true,
|
'sortable' => false,
|
||||||
'switchable' => true,
|
'switchable' => true,
|
||||||
'title' => trans('admin/labels/table.support_fields'),
|
'title' => trans('admin/labels/table.support_fields'),
|
||||||
'visible' => true
|
'visible' => true
|
||||||
], [
|
], [
|
||||||
'field' => 'support_asset_tag',
|
'field' => 'support_asset_tag',
|
||||||
'searchable' => false,
|
'searchable' => false,
|
||||||
'sortable' => true,
|
'sortable' => false,
|
||||||
'switchable' => true,
|
'switchable' => true,
|
||||||
'title' => trans('admin/labels/table.support_asset_tag'),
|
'title' => trans('admin/labels/table.support_asset_tag'),
|
||||||
'visible' => true,
|
'visible' => true,
|
||||||
|
@ -59,7 +59,7 @@ class LabelPresenter extends Presenter
|
||||||
], [
|
], [
|
||||||
'field' => 'support_1d_barcode',
|
'field' => 'support_1d_barcode',
|
||||||
'searchable' => false,
|
'searchable' => false,
|
||||||
'sortable' => true,
|
'sortable' => false,
|
||||||
'switchable' => true,
|
'switchable' => true,
|
||||||
'title' => trans('admin/labels/table.support_1d_barcode'),
|
'title' => trans('admin/labels/table.support_1d_barcode'),
|
||||||
'visible' => true,
|
'visible' => true,
|
||||||
|
@ -67,7 +67,7 @@ class LabelPresenter extends Presenter
|
||||||
], [
|
], [
|
||||||
'field' => 'support_2d_barcode',
|
'field' => 'support_2d_barcode',
|
||||||
'searchable' => false,
|
'searchable' => false,
|
||||||
'sortable' => true,
|
'sortable' => false,
|
||||||
'switchable' => true,
|
'switchable' => true,
|
||||||
'title' => trans('admin/labels/table.support_2d_barcode'),
|
'title' => trans('admin/labels/table.support_2d_barcode'),
|
||||||
'visible' => true,
|
'visible' => true,
|
||||||
|
@ -75,7 +75,7 @@ class LabelPresenter extends Presenter
|
||||||
], [
|
], [
|
||||||
'field' => 'support_logo',
|
'field' => 'support_logo',
|
||||||
'searchable' => false,
|
'searchable' => false,
|
||||||
'sortable' => true,
|
'sortable' => false,
|
||||||
'switchable' => true,
|
'switchable' => true,
|
||||||
'title' => trans('admin/labels/table.support_logo'),
|
'title' => trans('admin/labels/table.support_logo'),
|
||||||
'visible' => true,
|
'visible' => true,
|
||||||
|
@ -83,7 +83,7 @@ class LabelPresenter extends Presenter
|
||||||
], [
|
], [
|
||||||
'field' => 'support_title',
|
'field' => 'support_title',
|
||||||
'searchable' => false,
|
'searchable' => false,
|
||||||
'sortable' => true,
|
'sortable' => false,
|
||||||
'switchable' => true,
|
'switchable' => true,
|
||||||
'title' => trans('admin/labels/table.support_title'),
|
'title' => trans('admin/labels/table.support_title'),
|
||||||
'visible' => true,
|
'visible' => true,
|
||||||
|
|
Loading…
Reference in a new issue