From 2251c31b362a5d92416736b735691681fec608fd Mon Sep 17 00:00:00 2001 From: Dennis Eichhorn Date: Sun, 23 Jul 2023 03:00:14 +0000 Subject: [PATCH] continue impl --- Admin/Install/Media/layout01.php | 4 +- Admin/Install/Navigation.install.json | 21 +- Admin/Routes/Web/Backend.php | 26 +- Controller/BackendController.php | 81 +++- Models/Guidelines/GS1Datamatrix.php | 593 ++++++++++++++++++++++++++ Theme/Backend/item-list.tpl.php | 102 +++++ Theme/Backend/label-render.tpl.php | 2 + Theme/Backend/layout-item.tpl.php | 44 ++ Theme/Backend/layout-list.tpl.php | 42 -- 9 files changed, 864 insertions(+), 51 deletions(-) create mode 100644 Models/Guidelines/GS1Datamatrix.php create mode 100644 Theme/Backend/item-list.tpl.php create mode 100644 Theme/Backend/layout-item.tpl.php diff --git a/Admin/Install/Media/layout01.php b/Admin/Install/Media/layout01.php index ea0d801..9f4074d 100644 --- a/Admin/Install/Media/layout01.php +++ b/Admin/Install/Media/layout01.php @@ -13,7 +13,7 @@ $l = new Label(); // top $text = new Text(); -$text->text = 'Product Name'; +$text->text = $item->getL11n('name1')->content; $text->size = 80; $text->x = $margin; $text->y = 80 + $margin; @@ -21,7 +21,7 @@ $l->elements[] = $text; // sub $text = new Text(); -$text->text = 'Second Product Name'; +$text->text = $item->getL11n('name2')->content; $text->size = 50; $text->x = $margin; $text->y = 170 + $margin; diff --git a/Admin/Install/Navigation.install.json b/Admin/Install/Navigation.install.json index dff88aa..b7f29e8 100644 --- a/Admin/Install/Navigation.install.json +++ b/Admin/Install/Navigation.install.json @@ -5,7 +5,7 @@ "type": 2, "subtype": 1, "name": "Labeling", - "uri": "{/base}/warehouse/labeling/label/list?{?}", + "uri": "{/base}/warehouse/labeling/item/list?{?}", "target": "self", "icon": null, "order": 1, @@ -18,8 +18,23 @@ "pid": "/warehouse/labeling", "type": 3, "subtype": 1, - "name": "List", - "uri": "{/base}/warehouse/labeling/label/list?{?}", + "name": "Items", + "uri": "{/base}/warehouse/labeling/item/list?{?}", + "target": "self", + "icon": null, + "order": 1, + "from": "Labeling", + "permission": { "permission": 2, "type": null, "element": null }, + "parent": 1005701001, + "children": [] + }, + { + "id": 1005703001, + "pid": "/warehouse/labeling", + "type": 3, + "subtype": 5, + "name": "Layouts", + "uri": "{/base}/warehouse/labeling/layout/list?{?}", "target": "self", "icon": null, "order": 1, diff --git a/Admin/Routes/Web/Backend.php b/Admin/Routes/Web/Backend.php index 35eeb14..474fd4a 100644 --- a/Admin/Routes/Web/Backend.php +++ b/Admin/Routes/Web/Backend.php @@ -6,9 +6,31 @@ use phpOMS\Account\PermissionType; use phpOMS\Router\RouteVerb; return [ - '^.*/warehouse/labeling/label/list.*$' => [ + '^.*/warehouse/labeling/item/list.*$' => [ [ - 'dest' => '\Modules\Labeling\Controller\BackendController:viewLabelLayoutList', + 'dest' => '\Modules\Labeling\Controller\BackendController:viewItemList', + 'verb' => RouteVerb::GET, + 'permission' => [ + 'module' => BackendController::MODULE_NAME, + 'type' => PermissionType::READ, + 'state' => PermissionState::LABEL, + ], + ], + ], + '^.*/warehouse/labeling/item\?.*$' => [ + [ + 'dest' => '\Modules\Labeling\Controller\BackendController:viewItem', + 'verb' => RouteVerb::GET, + 'permission' => [ + 'module' => BackendController::MODULE_NAME, + 'type' => PermissionType::READ, + 'state' => PermissionState::LABEL, + ], + ], + ], + '^.*/warehouse/labeling/layout/list.*$' => [ + [ + 'dest' => '\Modules\Labeling\Controller\BackendController:viewItemLabelList', 'verb' => RouteVerb::GET, 'permission' => [ 'module' => BackendController::MODULE_NAME, diff --git a/Controller/BackendController.php b/Controller/BackendController.php index 2895449..e836563 100644 --- a/Controller/BackendController.php +++ b/Controller/BackendController.php @@ -14,6 +14,7 @@ declare(strict_types=1); namespace Modules\Labeling\Controller; +use Modules\ItemManagement\Models\ItemMapper; use Modules\Labeling\Models\LabelLayoutMapper; use phpOMS\Contract\RenderableInterface; use phpOMS\Message\RequestAbstract; @@ -42,11 +43,87 @@ final class BackendController extends Controller * @since 1.0.0 * @codeCoverageIgnore */ - public function viewLabelLayoutList(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : RenderableInterface + public function viewItemLabelList(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : RenderableInterface { $view = new View($this->app->l11nManager, $request, $response); $view->setTemplate('/Modules/Labeling/Theme/Backend/layout-list'); - $view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1004801001, $request, $response); + $view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1005701001, $request, $response); + + /** @var \Modules\Attribute\Models\AttributeType[] $attributes */ + $layouts = LabelLayoutMapper::getAll() + ->with('l11n') + ->with('template') + ->with('template/sources') + ->where('l11n/language', $response->header->l11n->language) + ->execute(); + + $view->data['layouts'] = $layouts; + + return $view; + } + + /** + * Routing end-point for application behaviour. + * + * @param RequestAbstract $request Request + * @param ResponseAbstract $response Response + * @param mixed $data Generic data + * + * @return RenderableInterface + * + * @since 1.0.0 + * @codeCoverageIgnore + */ + public function viewItemList(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : RenderableInterface + { + $view = new View($this->app->l11nManager, $request, $response); + $view->setTemplate('/Modules/Labeling/Theme/Backend/item-list'); + $view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1005701001, $request, $response); + + /** @var \Modules\ItemManagement\Models\Item[] $items */ + $items = ItemMapper::getAll() + ->with('l11n') + ->with('l11n/type') + ->with('files') + ->with('files/types') + ->where('l11n/language', $response->header->l11n->language) + ->where('l11n/type/title', ['name1', 'name2', 'name3'], 'IN') + ->where('files/types/name', 'item_profile_image') + ->limit(50) + ->execute(); + + $view->data['items'] = $items; + + return $view; + } + + /** + * Routing end-point for application behaviour. + * + * @param RequestAbstract $request Request + * @param ResponseAbstract $response Response + * @param mixed $data Generic data + * + * @return RenderableInterface + * + * @since 1.0.0 + * @codeCoverageIgnore + */ + public function viewItem(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : RenderableInterface + { + $view = new View($this->app->l11nManager, $request, $response); + $view->setTemplate('/Modules/Labeling/Theme/Backend/layout-item'); + $view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1005701001, $request, $response); + + $item = ItemMapper::get() + ->with('l11n') + ->with('l11n/type') + ->where('id', (int) $request->getData('id')) + ->where('l11n/language', $response->header->l11n->language) + ->where('l11n/type/title', ['name1', 'name2', 'name3'], 'IN') + ->execute(); + + $view->data['item'] = $item; /** @var \Modules\Attribute\Models\AttributeType[] $attributes */ $layouts = LabelLayoutMapper::getAll() diff --git a/Models/Guidelines/GS1Datamatrix.php b/Models/Guidelines/GS1Datamatrix.php new file mode 100644 index 0000000..dee165d --- /dev/null +++ b/Models/Guidelines/GS1Datamatrix.php @@ -0,0 +1,593 @@ + ['title' => 'SSCC', 'FNC1' => false, 'pattern' => '^00(\d{18})$',], + '01' => ['title' => 'GTIN', 'FNC1' => false, 'pattern' => '^01(\d{14})$',], + '02' => ['title' => 'CONTENT', 'FNC1' => false, 'pattern' => '^02(\d{14})$',], + '10' => ['title' => 'BATCH/LOT', 'FNC1' => true, 'pattern' => '^10([\x21-\x22\x25-\x2F\x30-\x39\x3A-\x3F\x41-\x5A\x5F\x61-\x7A]{0,20})$',], + '11' => ['title' => 'PROD DATE', 'FNC1' => false, 'pattern' => '^11(\d{6})$',], + '12' => ['title' => 'DUE DATE', 'FNC1' => false, 'pattern' => '^12(\d{6})$',], + '13' => ['title' => 'PACK DATE', 'FNC1' => false, 'pattern' => '^13(\d{6})$',], + '15' => ['title' => 'BEST BEFORE or BEST BY', 'FNC1' => false, 'pattern' => '^15(\d{6})$',], + '16' => ['title' => 'SELL BY', 'FNC1' => false, 'pattern' => '^16(\d{6})$',], + '17' => ['title' => 'USE BY OR EXPIRY', 'FNC1' => false, 'pattern' => '^17(\d{6})$',], + '20' => ['title' => 'VARIANT', 'FNC1' => false, 'pattern' => '^20(\d{2})$',], + '21' => ['title' => 'SERIAL', 'FNC1' => true, 'pattern' => '^21([\x21-\x22\x25-\x2F\x30-\x39\x3A-\x3F\x41-\x5A\x5F\x61-\x7A]{0,20})$',], + '22' => ['title' => 'CPV', 'FNC1' => true, 'pattern' => '^22([\x21-\x22\x25-\x2F\x30-\x39\x3A-\x3F\x41-\x5A\x5F\x61-\x7A]{0,20})$',], + '235' => ['title' => 'TPX', 'FNC1' => true, 'pattern' => '^235([\x21-\x22\x25-\x2F\x30-\x39\x3A-\x3F\x41-\x5A\x5F\x61-\x7A]{0,28})$',], + '240' => ['title' => 'ADDITIONAL ID', 'FNC1' => true, 'pattern' => '^240([\x21-\x22\x25-\x2F\x30-\x39\x3A-\x3F\x41-\x5A\x5F\x61-\x7A]{0,30})$',], + '241' => ['title' => 'CUST. PART No.', 'FNC1' => true, 'pattern' => '^241([\x21-\x22\x25-\x2F\x30-\x39\x3A-\x3F\x41-\x5A\x5F\x61-\x7A]{0,30})$',], + '242' => ['title' => 'MTO VARIANT', 'FNC1' => true, 'pattern' => '^242(\d{0,6})$',], + '243' => ['title' => 'PCN', 'FNC1' => true, 'pattern' => '^243([\x21-\x22\x25-\x2F\x30-\x39\x3A-\x3F\x41-\x5A\x5F\x61-\x7A]{0,20})$',], + '250' => ['title' => 'SECONDARY SERIAL', 'FNC1' => true, 'pattern' => '^250([\x21-\x22\x25-\x2F\x30-\x39\x3A-\x3F\x41-\x5A\x5F\x61-\x7A]{0,30})$',], + '251' => ['title' => 'REF. TO SOURCE', 'FNC1' => true, 'pattern' => '^251([\x21-\x22\x25-\x2F\x30-\x39\x3A-\x3F\x41-\x5A\x5F\x61-\x7A]{0,30})$',], + '253' => ['title' => 'GDTI', 'FNC1' => true, 'pattern' => '^253(\d{13})([\x21-\x22\x25-\x2F\x30-\x39\x3A-\x3F\x41-\x5A\x5F\x61-\x7A]{0,17})$',], + '254' => ['title' => 'GLN EXTENSION COMPONENT', 'FNC1' => true, 'pattern' => '^254([\x21-\x22\x25-\x2F\x30-\x39\x3A-\x3F\x41-\x5A\x5F\x61-\x7A]{0,20})$',], + '255' => ['title' => 'GCN', 'FNC1' => true, 'pattern' => '^255(\d{13})(\d{0,12})$',], + '30' => ['title' => 'VAR. COUNT', 'FNC1' => true, 'pattern' => '^30(\d{0,8})$',], + '3100' => ['title' => 'NET WEIGHT (kg)', 'FNC1' => false, 'pattern' => '^3100(\d{6})$',], + '3101' => ['title' => 'NET WEIGHT (kg)', 'FNC1' => false, 'pattern' => '^3101(\d{6})$',], + '3102' => ['title' => 'NET WEIGHT (kg)', 'FNC1' => false, 'pattern' => '^3102(\d{6})$',], + '3103' => ['title' => 'NET WEIGHT (kg)', 'FNC1' => false, 'pattern' => '^3103(\d{6})$',], + '3104' => ['title' => 'NET WEIGHT (kg)', 'FNC1' => false, 'pattern' => '^3104(\d{6})$',], + '3105' => ['title' => 'NET WEIGHT (kg)', 'FNC1' => false, 'pattern' => '^3105(\d{6})$',], + '3110' => ['title' => 'LENGTH (m)', 'FNC1' => false, 'pattern' => '^3110(\d{6})$',], + '3111' => ['title' => 'LENGTH (m)', 'FNC1' => false, 'pattern' => '^3111(\d{6})$',], + '3112' => ['title' => 'LENGTH (m)', 'FNC1' => false, 'pattern' => '^3112(\d{6})$',], + '3113' => ['title' => 'LENGTH (m)', 'FNC1' => false, 'pattern' => '^3113(\d{6})$',], + '3114' => ['title' => 'LENGTH (m)', 'FNC1' => false, 'pattern' => '^3114(\d{6})$',], + '3115' => ['title' => 'LENGTH (m)', 'FNC1' => false, 'pattern' => '^3115(\d{6})$',], + '3120' => ['title' => 'WIDTH (m)', 'FNC1' => false, 'pattern' => '^3120(\d{6})$',], + '3121' => ['title' => 'WIDTH (m)', 'FNC1' => false, 'pattern' => '^3121(\d{6})$',], + '3122' => ['title' => 'WIDTH (m)', 'FNC1' => false, 'pattern' => '^3122(\d{6})$',], + '3123' => ['title' => 'WIDTH (m)', 'FNC1' => false, 'pattern' => '^3123(\d{6})$',], + '3124' => ['title' => 'WIDTH (m)', 'FNC1' => false, 'pattern' => '^3124(\d{6})$',], + '3125' => ['title' => 'WIDTH (m)', 'FNC1' => false, 'pattern' => '^3125(\d{6})$',], + '3130' => ['title' => 'HEIGHT (m)', 'FNC1' => false, 'pattern' => '^3130(\d{6})$',], + '3131' => ['title' => 'HEIGHT (m)', 'FNC1' => false, 'pattern' => '^3131(\d{6})$',], + '3132' => ['title' => 'HEIGHT (m)', 'FNC1' => false, 'pattern' => '^3132(\d{6})$',], + '3133' => ['title' => 'HEIGHT (m)', 'FNC1' => false, 'pattern' => '^3133(\d{6})$',], + '3134' => ['title' => 'HEIGHT (m)', 'FNC1' => false, 'pattern' => '^3134(\d{6})$',], + '3135' => ['title' => 'HEIGHT (m)', 'FNC1' => false, 'pattern' => '^3135(\d{6})$',], + '3140' => ['title' => 'AREA (m2)', 'FNC1' => false, 'pattern' => '^3140(\d{6})$',], + '3141' => ['title' => 'AREA (m2)', 'FNC1' => false, 'pattern' => '^3141(\d{6})$',], + '3142' => ['title' => 'AREA (m2)', 'FNC1' => false, 'pattern' => '^3142(\d{6})$',], + '3143' => ['title' => 'AREA (m2)', 'FNC1' => false, 'pattern' => '^3143(\d{6})$',], + '3144' => ['title' => 'AREA (m2)', 'FNC1' => false, 'pattern' => '^3144(\d{6})$',], + '3145' => ['title' => 'AREA (m2)', 'FNC1' => false, 'pattern' => '^3145(\d{6})$',], + '3150' => ['title' => 'NET VOLUME (l)', 'FNC1' => false, 'pattern' => '^3150(\d{6})$',], + '3151' => ['title' => 'NET VOLUME (l)', 'FNC1' => false, 'pattern' => '^3151(\d{6})$',], + '3152' => ['title' => 'NET VOLUME (l)', 'FNC1' => false, 'pattern' => '^3152(\d{6})$',], + '3153' => ['title' => 'NET VOLUME (l)', 'FNC1' => false, 'pattern' => '^3153(\d{6})$',], + '3154' => ['title' => 'NET VOLUME (l)', 'FNC1' => false, 'pattern' => '^3154(\d{6})$',], + '3155' => ['title' => 'NET VOLUME (l)', 'FNC1' => false, 'pattern' => '^3155(\d{6})$',], + '3160' => ['title' => 'NET VOLUME (m3)', 'FNC1' => false, 'pattern' => '^3160(\d{6})$',], + '3161' => ['title' => 'NET VOLUME (m3)', 'FNC1' => false, 'pattern' => '^3161(\d{6})$',], + '3162' => ['title' => 'NET VOLUME (m3)', 'FNC1' => false, 'pattern' => '^3162(\d{6})$',], + '3163' => ['title' => 'NET VOLUME (m3)', 'FNC1' => false, 'pattern' => '^3163(\d{6})$',], + '3164' => ['title' => 'NET VOLUME (m3)', 'FNC1' => false, 'pattern' => '^3164(\d{6})$',], + '3165' => ['title' => 'NET VOLUME (m3)', 'FNC1' => false, 'pattern' => '^3165(\d{6})$',], + '3200' => ['title' => 'NET WEIGHT (lb)', 'FNC1' => false, 'pattern' => '^3200(\d{6})$',], + '3201' => ['title' => 'NET WEIGHT (lb)', 'FNC1' => false, 'pattern' => '^3201(\d{6})$',], + '3202' => ['title' => 'NET WEIGHT (lb)', 'FNC1' => false, 'pattern' => '^3202(\d{6})$',], + '3203' => ['title' => 'NET WEIGHT (lb)', 'FNC1' => false, 'pattern' => '^3203(\d{6})$',], + '3204' => ['title' => 'NET WEIGHT (lb)', 'FNC1' => false, 'pattern' => '^3204(\d{6})$',], + '3205' => ['title' => 'NET WEIGHT (lb)', 'FNC1' => false, 'pattern' => '^3205(\d{6})$',], + '3210' => ['title' => 'LENGTH (in)', 'FNC1' => false, 'pattern' => '^3210(\d{6})$',], + '3211' => ['title' => 'LENGTH (in)', 'FNC1' => false, 'pattern' => '^3211(\d{6})$',], + '3212' => ['title' => 'LENGTH (in)', 'FNC1' => false, 'pattern' => '^3212(\d{6})$',], + '3213' => ['title' => 'LENGTH (in)', 'FNC1' => false, 'pattern' => '^3213(\d{6})$',], + '3214' => ['title' => 'LENGTH (in)', 'FNC1' => false, 'pattern' => '^3214(\d{6})$',], + '3215' => ['title' => 'LENGTH (in)', 'FNC1' => false, 'pattern' => '^3215(\d{6})$',], + '3220' => ['title' => 'LENGTH (ft)', 'FNC1' => false, 'pattern' => '^3220(\d{6})$',], + '3221' => ['title' => 'LENGTH (ft)', 'FNC1' => false, 'pattern' => '^3221(\d{6})$',], + '3222' => ['title' => 'LENGTH (ft)', 'FNC1' => false, 'pattern' => '^3222(\d{6})$',], + '3223' => ['title' => 'LENGTH (ft)', 'FNC1' => false, 'pattern' => '^3223(\d{6})$',], + '3224' => ['title' => 'LENGTH (ft)', 'FNC1' => false, 'pattern' => '^3224(\d{6})$',], + '3225' => ['title' => 'LENGTH (ft)', 'FNC1' => false, 'pattern' => '^3225(\d{6})$',], + '3230' => ['title' => 'LENGTH (yd)', 'FNC1' => false, 'pattern' => '^3230(\d{6})$',], + '3231' => ['title' => 'LENGTH (yd)', 'FNC1' => false, 'pattern' => '^3231(\d{6})$',], + '3232' => ['title' => 'LENGTH (yd)', 'FNC1' => false, 'pattern' => '^3232(\d{6})$',], + '3233' => ['title' => 'LENGTH (yd)', 'FNC1' => false, 'pattern' => '^3233(\d{6})$',], + '3234' => ['title' => 'LENGTH (yd)', 'FNC1' => false, 'pattern' => '^3234(\d{6})$',], + '3235' => ['title' => 'LENGTH (yd)', 'FNC1' => false, 'pattern' => '^3235(\d{6})$',], + '3240' => ['title' => 'WIDTH (in)', 'FNC1' => false, 'pattern' => '^3240(\d{6})$',], + '3241' => ['title' => 'WIDTH (in)', 'FNC1' => false, 'pattern' => '^3241(\d{6})$',], + '3242' => ['title' => 'WIDTH (in)', 'FNC1' => false, 'pattern' => '^3242(\d{6})$',], + '3243' => ['title' => 'WIDTH (in)', 'FNC1' => false, 'pattern' => '^3243(\d{6})$',], + '3244' => ['title' => 'WIDTH (in)', 'FNC1' => false, 'pattern' => '^3244(\d{6})$',], + '3245' => ['title' => 'WIDTH (in)', 'FNC1' => false, 'pattern' => '^3245(\d{6})$',], + '3250' => ['title' => 'WIDTH (ft)', 'FNC1' => false, 'pattern' => '^3250(\d{6})$',], + '3251' => ['title' => 'WIDTH (ft)', 'FNC1' => false, 'pattern' => '^3251(\d{6})$',], + '3252' => ['title' => 'WIDTH (ft)', 'FNC1' => false, 'pattern' => '^3252(\d{6})$',], + '3253' => ['title' => 'WIDTH (ft)', 'FNC1' => false, 'pattern' => '^3253(\d{6})$',], + '3254' => ['title' => 'WIDTH (ft)', 'FNC1' => false, 'pattern' => '^3254(\d{6})$',], + '3255' => ['title' => 'WIDTH (ft)', 'FNC1' => false, 'pattern' => '^3255(\d{6})$',], + '3260' => ['title' => 'WIDTH (yd)', 'FNC1' => false, 'pattern' => '^3260(\d{6})$',], + '3261' => ['title' => 'WIDTH (yd)', 'FNC1' => false, 'pattern' => '^3261(\d{6})$',], + '3262' => ['title' => 'WIDTH (yd)', 'FNC1' => false, 'pattern' => '^3262(\d{6})$',], + '3263' => ['title' => 'WIDTH (yd)', 'FNC1' => false, 'pattern' => '^3263(\d{6})$',], + '3264' => ['title' => 'WIDTH (yd)', 'FNC1' => false, 'pattern' => '^3264(\d{6})$',], + '3265' => ['title' => 'WIDTH (yd)', 'FNC1' => false, 'pattern' => '^3265(\d{6})$',], + '3270' => ['title' => 'HEIGHT (in)', 'FNC1' => false, 'pattern' => '^3270(\d{6})$',], + '3271' => ['title' => 'HEIGHT (in)', 'FNC1' => false, 'pattern' => '^3271(\d{6})$',], + '3272' => ['title' => 'HEIGHT (in)', 'FNC1' => false, 'pattern' => '^3272(\d{6})$',], + '3273' => ['title' => 'HEIGHT (in)', 'FNC1' => false, 'pattern' => '^3273(\d{6})$',], + '3274' => ['title' => 'HEIGHT (in)', 'FNC1' => false, 'pattern' => '^3274(\d{6})$',], + '3275' => ['title' => 'HEIGHT (in)', 'FNC1' => false, 'pattern' => '^3275(\d{6})$',], + '3280' => ['title' => 'HEIGHT (ft)', 'FNC1' => false, 'pattern' => '^3280(\d{6})$',], + '3281' => ['title' => 'HEIGHT (ft)', 'FNC1' => false, 'pattern' => '^3281(\d{6})$',], + '3282' => ['title' => 'HEIGHT (ft)', 'FNC1' => false, 'pattern' => '^3282(\d{6})$',], + '3283' => ['title' => 'HEIGHT (ft)', 'FNC1' => false, 'pattern' => '^3283(\d{6})$',], + '3284' => ['title' => 'HEIGHT (ft)', 'FNC1' => false, 'pattern' => '^3284(\d{6})$',], + '3285' => ['title' => 'HEIGHT (ft)', 'FNC1' => false, 'pattern' => '^3285(\d{6})$',], + '3290' => ['title' => 'HEIGHT (yd)', 'FNC1' => false, 'pattern' => '^3290(\d{6})$',], + '3291' => ['title' => 'HEIGHT (yd)', 'FNC1' => false, 'pattern' => '^3291(\d{6})$',], + '3292' => ['title' => 'HEIGHT (yd)', 'FNC1' => false, 'pattern' => '^3292(\d{6})$',], + '3293' => ['title' => 'HEIGHT (yd)', 'FNC1' => false, 'pattern' => '^3293(\d{6})$',], + '3294' => ['title' => 'HEIGHT (yd)', 'FNC1' => false, 'pattern' => '^3294(\d{6})$',], + '3295' => ['title' => 'HEIGHT (yd)', 'FNC1' => false, 'pattern' => '^3295(\d{6})$',], + '3300' => ['title' => 'GROSS WEIGHT (kg)', 'FNC1' => false, 'pattern' => '^3300(\d{6})$',], + '3301' => ['title' => 'GROSS WEIGHT (kg)', 'FNC1' => false, 'pattern' => '^3301(\d{6})$',], + '3302' => ['title' => 'GROSS WEIGHT (kg)', 'FNC1' => false, 'pattern' => '^3302(\d{6})$',], + '3303' => ['title' => 'GROSS WEIGHT (kg)', 'FNC1' => false, 'pattern' => '^3303(\d{6})$',], + '3304' => ['title' => 'GROSS WEIGHT (kg)', 'FNC1' => false, 'pattern' => '^3304(\d{6})$',], + '3305' => ['title' => 'GROSS WEIGHT (kg)', 'FNC1' => false, 'pattern' => '^3305(\d{6})$',], + '3310' => ['title' => 'LENGTH (m), log', 'FNC1' => false, 'pattern' => '^3310(\d{6})$',], + '3311' => ['title' => 'LENGTH (m), log', 'FNC1' => false, 'pattern' => '^3311(\d{6})$',], + '3312' => ['title' => 'LENGTH (m), log', 'FNC1' => false, 'pattern' => '^3312(\d{6})$',], + '3313' => ['title' => 'LENGTH (m), log', 'FNC1' => false, 'pattern' => '^3313(\d{6})$',], + '3314' => ['title' => 'LENGTH (m), log', 'FNC1' => false, 'pattern' => '^3314(\d{6})$',], + '3315' => ['title' => 'LENGTH (m), log', 'FNC1' => false, 'pattern' => '^3315(\d{6})$',], + '3320' => ['title' => 'WIDTH (m), log', 'FNC1' => false, 'pattern' => '^3320(\d{6})$',], + '3321' => ['title' => 'WIDTH (m), log', 'FNC1' => false, 'pattern' => '^3321(\d{6})$',], + '3322' => ['title' => 'WIDTH (m), log', 'FNC1' => false, 'pattern' => '^3322(\d{6})$',], + '3323' => ['title' => 'WIDTH (m), log', 'FNC1' => false, 'pattern' => '^3323(\d{6})$',], + '3324' => ['title' => 'WIDTH (m), log', 'FNC1' => false, 'pattern' => '^3324(\d{6})$',], + '3325' => ['title' => 'WIDTH (m), log', 'FNC1' => false, 'pattern' => '^3325(\d{6})$',], + '3330' => ['title' => 'HEIGHT (m), log', 'FNC1' => false, 'pattern' => '^3330(\d{6})$',], + '3331' => ['title' => 'HEIGHT (m), log', 'FNC1' => false, 'pattern' => '^3331(\d{6})$',], + '3332' => ['title' => 'HEIGHT (m), log', 'FNC1' => false, 'pattern' => '^3332(\d{6})$',], + '3333' => ['title' => 'HEIGHT (m), log', 'FNC1' => false, 'pattern' => '^3333(\d{6})$',], + '3334' => ['title' => 'HEIGHT (m), log', 'FNC1' => false, 'pattern' => '^3334(\d{6})$',], + '3335' => ['title' => 'HEIGHT (m), log', 'FNC1' => false, 'pattern' => '^3335(\d{6})$',], + '3340' => ['title' => 'AREA (m2), log', 'FNC1' => false, 'pattern' => '^3340(\d{6})$',], + '3341' => ['title' => 'AREA (m2), log', 'FNC1' => false, 'pattern' => '^3341(\d{6})$',], + '3342' => ['title' => 'AREA (m2), log', 'FNC1' => false, 'pattern' => '^3342(\d{6})$',], + '3343' => ['title' => 'AREA (m2), log', 'FNC1' => false, 'pattern' => '^3343(\d{6})$',], + '3344' => ['title' => 'AREA (m2), log', 'FNC1' => false, 'pattern' => '^3344(\d{6})$',], + '3345' => ['title' => 'AREA (m2), log', 'FNC1' => false, 'pattern' => '^3345(\d{6})$',], + '3350' => ['title' => 'VOLUME (l), log', 'FNC1' => false, 'pattern' => '^3350(\d{6})$',], + '3351' => ['title' => 'VOLUME (l), log', 'FNC1' => false, 'pattern' => '^3351(\d{6})$',], + '3352' => ['title' => 'VOLUME (l), log', 'FNC1' => false, 'pattern' => '^3352(\d{6})$',], + '3353' => ['title' => 'VOLUME (l), log', 'FNC1' => false, 'pattern' => '^3353(\d{6})$',], + '3354' => ['title' => 'VOLUME (l), log', 'FNC1' => false, 'pattern' => '^3354(\d{6})$',], + '3355' => ['title' => 'VOLUME (l), log', 'FNC1' => false, 'pattern' => '^3355(\d{6})$',], + '3360' => ['title' => 'VOLUME (m3), log', 'FNC1' => false, 'pattern' => '^3360(\d{6})$',], + '3361' => ['title' => 'VOLUME (m3), log', 'FNC1' => false, 'pattern' => '^3361(\d{6})$',], + '3362' => ['title' => 'VOLUME (m3), log', 'FNC1' => false, 'pattern' => '^3362(\d{6})$',], + '3363' => ['title' => 'VOLUME (m3), log', 'FNC1' => false, 'pattern' => '^3363(\d{6})$',], + '3364' => ['title' => 'VOLUME (m3), log', 'FNC1' => false, 'pattern' => '^3364(\d{6})$',], + '3365' => ['title' => 'VOLUME (m3), log', 'FNC1' => false, 'pattern' => '^3365(\d{6})$',], + '3370' => ['title' => 'KG PER m2', 'FNC1' => false, 'pattern' => '^3370(\d{6})$',], + '3371' => ['title' => 'KG PER m2', 'FNC1' => false, 'pattern' => '^3371(\d{6})$',], + '3372' => ['title' => 'KG PER m2', 'FNC1' => false, 'pattern' => '^3372(\d{6})$',], + '3373' => ['title' => 'KG PER m2', 'FNC1' => false, 'pattern' => '^3373(\d{6})$',], + '3374' => ['title' => 'KG PER m2', 'FNC1' => false, 'pattern' => '^3374(\d{6})$',], + '3375' => ['title' => 'KG PER m2', 'FNC1' => false, 'pattern' => '^3375(\d{6})$',], + '3400' => ['title' => 'GROSS WEIGHT (lb)', 'FNC1' => false, 'pattern' => '^3400(\d{6})$',], + '3401' => ['title' => 'GROSS WEIGHT (lb)', 'FNC1' => false, 'pattern' => '^3401(\d{6})$',], + '3402' => ['title' => 'GROSS WEIGHT (lb)', 'FNC1' => false, 'pattern' => '^3402(\d{6})$',], + '3403' => ['title' => 'GROSS WEIGHT (lb)', 'FNC1' => false, 'pattern' => '^3403(\d{6})$',], + '3404' => ['title' => 'GROSS WEIGHT (lb)', 'FNC1' => false, 'pattern' => '^3404(\d{6})$',], + '3405' => ['title' => 'GROSS WEIGHT (lb)', 'FNC1' => false, 'pattern' => '^3405(\d{6})$',], + '3410' => ['title' => 'LENGTH (in), log', 'FNC1' => false, 'pattern' => '^3410(\d{6})$',], + '3411' => ['title' => 'LENGTH (in), log', 'FNC1' => false, 'pattern' => '^3411(\d{6})$',], + '3412' => ['title' => 'LENGTH (in), log', 'FNC1' => false, 'pattern' => '^3412(\d{6})$',], + '3413' => ['title' => 'LENGTH (in), log', 'FNC1' => false, 'pattern' => '^3413(\d{6})$',], + '3414' => ['title' => 'LENGTH (in), log', 'FNC1' => false, 'pattern' => '^3414(\d{6})$',], + '3415' => ['title' => 'LENGTH (in), log', 'FNC1' => false, 'pattern' => '^3415(\d{6})$',], + '3420' => ['title' => 'LENGTH (ft), log', 'FNC1' => false, 'pattern' => '^3420(\d{6})$',], + '3421' => ['title' => 'LENGTH (ft), log', 'FNC1' => false, 'pattern' => '^3421(\d{6})$',], + '3422' => ['title' => 'LENGTH (ft), log', 'FNC1' => false, 'pattern' => '^3422(\d{6})$',], + '3423' => ['title' => 'LENGTH (ft), log', 'FNC1' => false, 'pattern' => '^3423(\d{6})$',], + '3424' => ['title' => 'LENGTH (ft), log', 'FNC1' => false, 'pattern' => '^3424(\d{6})$',], + '3425' => ['title' => 'LENGTH (ft), log', 'FNC1' => false, 'pattern' => '^3425(\d{6})$',], + '3430' => ['title' => 'LENGTH (yd), log', 'FNC1' => false, 'pattern' => '^3430(\d{6})$',], + '3431' => ['title' => 'LENGTH (yd), log', 'FNC1' => false, 'pattern' => '^3431(\d{6})$',], + '3432' => ['title' => 'LENGTH (yd), log', 'FNC1' => false, 'pattern' => '^3432(\d{6})$',], + '3433' => ['title' => 'LENGTH (yd), log', 'FNC1' => false, 'pattern' => '^3433(\d{6})$',], + '3434' => ['title' => 'LENGTH (yd), log', 'FNC1' => false, 'pattern' => '^3434(\d{6})$',], + '3435' => ['title' => 'LENGTH (yd), log', 'FNC1' => false, 'pattern' => '^3435(\d{6})$',], + '3440' => ['title' => 'WIDTH (in), log', 'FNC1' => false, 'pattern' => '^3440(\d{6})$',], + '3441' => ['title' => 'WIDTH (in), log', 'FNC1' => false, 'pattern' => '^3441(\d{6})$',], + '3442' => ['title' => 'WIDTH (in), log', 'FNC1' => false, 'pattern' => '^3442(\d{6})$',], + '3443' => ['title' => 'WIDTH (in), log', 'FNC1' => false, 'pattern' => '^3443(\d{6})$',], + '3444' => ['title' => 'WIDTH (in), log', 'FNC1' => false, 'pattern' => '^3444(\d{6})$',], + '3445' => ['title' => 'WIDTH (in), log', 'FNC1' => false, 'pattern' => '^3445(\d{6})$',], + '3450' => ['title' => 'WIDTH (ft), log', 'FNC1' => false, 'pattern' => '^3450(\d{6})$',], + '3451' => ['title' => 'WIDTH (ft), log', 'FNC1' => false, 'pattern' => '^3451(\d{6})$',], + '3452' => ['title' => 'WIDTH (ft), log', 'FNC1' => false, 'pattern' => '^3452(\d{6})$',], + '3453' => ['title' => 'WIDTH (ft), log', 'FNC1' => false, 'pattern' => '^3453(\d{6})$',], + '3454' => ['title' => 'WIDTH (ft), log', 'FNC1' => false, 'pattern' => '^3454(\d{6})$',], + '3455' => ['title' => 'WIDTH (ft), log', 'FNC1' => false, 'pattern' => '^3455(\d{6})$',], + '3460' => ['title' => 'WIDTH (yd), log', 'FNC1' => false, 'pattern' => '^3460(\d{6})$',], + '3461' => ['title' => 'WIDTH (yd), log', 'FNC1' => false, 'pattern' => '^3461(\d{6})$',], + '3462' => ['title' => 'WIDTH (yd), log', 'FNC1' => false, 'pattern' => '^3462(\d{6})$',], + '3463' => ['title' => 'WIDTH (yd), log', 'FNC1' => false, 'pattern' => '^3463(\d{6})$',], + '3464' => ['title' => 'WIDTH (yd), log', 'FNC1' => false, 'pattern' => '^3464(\d{6})$',], + '3465' => ['title' => 'WIDTH (yd), log', 'FNC1' => false, 'pattern' => '^3465(\d{6})$',], + '3470' => ['title' => 'HEIGHT (in), log', 'FNC1' => false, 'pattern' => '^3470(\d{6})$',], + '3471' => ['title' => 'HEIGHT (in), log', 'FNC1' => false, 'pattern' => '^3471(\d{6})$',], + '3472' => ['title' => 'HEIGHT (in), log', 'FNC1' => false, 'pattern' => '^3472(\d{6})$',], + '3473' => ['title' => 'HEIGHT (in), log', 'FNC1' => false, 'pattern' => '^3473(\d{6})$',], + '3474' => ['title' => 'HEIGHT (in), log', 'FNC1' => false, 'pattern' => '^3474(\d{6})$',], + '3475' => ['title' => 'HEIGHT (in), log', 'FNC1' => false, 'pattern' => '^3475(\d{6})$',], + '3480' => ['title' => 'HEIGHT (ft), log', 'FNC1' => false, 'pattern' => '^3480(\d{6})$',], + '3481' => ['title' => 'HEIGHT (ft), log', 'FNC1' => false, 'pattern' => '^3481(\d{6})$',], + '3482' => ['title' => 'HEIGHT (ft), log', 'FNC1' => false, 'pattern' => '^3482(\d{6})$',], + '3483' => ['title' => 'HEIGHT (ft), log', 'FNC1' => false, 'pattern' => '^3483(\d{6})$',], + '3484' => ['title' => 'HEIGHT (ft), log', 'FNC1' => false, 'pattern' => '^3484(\d{6})$',], + '3485' => ['title' => 'HEIGHT (ft), log', 'FNC1' => false, 'pattern' => '^3485(\d{6})$',], + '3490' => ['title' => 'HEIGHT (yd), log', 'FNC1' => false, 'pattern' => '^3490(\d{6})$',], + '3491' => ['title' => 'HEIGHT (yd), log', 'FNC1' => false, 'pattern' => '^3491(\d{6})$',], + '3492' => ['title' => 'HEIGHT (yd), log', 'FNC1' => false, 'pattern' => '^3492(\d{6})$',], + '3493' => ['title' => 'HEIGHT (yd), log', 'FNC1' => false, 'pattern' => '^3493(\d{6})$',], + '3494' => ['title' => 'HEIGHT (yd), log', 'FNC1' => false, 'pattern' => '^3494(\d{6})$',], + '3495' => ['title' => 'HEIGHT (yd), log', 'FNC1' => false, 'pattern' => '^3495(\d{6})$',], + '3500' => ['title' => 'AREA (in2)', 'FNC1' => false, 'pattern' => '^3500(\d{6})$',], + '3501' => ['title' => 'AREA (in2)', 'FNC1' => false, 'pattern' => '^3501(\d{6})$',], + '3502' => ['title' => 'AREA (in2)', 'FNC1' => false, 'pattern' => '^3502(\d{6})$',], + '3503' => ['title' => 'AREA (in2)', 'FNC1' => false, 'pattern' => '^3503(\d{6})$',], + '3504' => ['title' => 'AREA (in2)', 'FNC1' => false, 'pattern' => '^3504(\d{6})$',], + '3505' => ['title' => 'AREA (in2)', 'FNC1' => false, 'pattern' => '^3505(\d{6})$',], + '3510' => ['title' => 'AREA (ft2)', 'FNC1' => false, 'pattern' => '^3510(\d{6})$',], + '3511' => ['title' => 'AREA (ft2)', 'FNC1' => false, 'pattern' => '^3511(\d{6})$',], + '3512' => ['title' => 'AREA (ft2)', 'FNC1' => false, 'pattern' => '^3512(\d{6})$',], + '3513' => ['title' => 'AREA (ft2)', 'FNC1' => false, 'pattern' => '^3513(\d{6})$',], + '3514' => ['title' => 'AREA (ft2)', 'FNC1' => false, 'pattern' => '^3514(\d{6})$',], + '3515' => ['title' => 'AREA (ft2)', 'FNC1' => false, 'pattern' => '^3515(\d{6})$',], + '3520' => ['title' => 'AREA (yd2)', 'FNC1' => false, 'pattern' => '^3520(\d{6})$',], + '3521' => ['title' => 'AREA (yd2)', 'FNC1' => false, 'pattern' => '^3521(\d{6})$',], + '3522' => ['title' => 'AREA (yd2)', 'FNC1' => false, 'pattern' => '^3522(\d{6})$',], + '3523' => ['title' => 'AREA (yd2)', 'FNC1' => false, 'pattern' => '^3523(\d{6})$',], + '3524' => ['title' => 'AREA (yd2)', 'FNC1' => false, 'pattern' => '^3524(\d{6})$',], + '3525' => ['title' => 'AREA (yd2)', 'FNC1' => false, 'pattern' => '^3525(\d{6})$',], + '3530' => ['title' => 'AREA (in2), log', 'FNC1' => false, 'pattern' => '^3530(\d{6})$',], + '3531' => ['title' => 'AREA (in2), log', 'FNC1' => false, 'pattern' => '^3531(\d{6})$',], + '3532' => ['title' => 'AREA (in2), log', 'FNC1' => false, 'pattern' => '^3532(\d{6})$',], + '3533' => ['title' => 'AREA (in2), log', 'FNC1' => false, 'pattern' => '^3533(\d{6})$',], + '3534' => ['title' => 'AREA (in2), log', 'FNC1' => false, 'pattern' => '^3534(\d{6})$',], + '3535' => ['title' => 'AREA (in2), log', 'FNC1' => false, 'pattern' => '^3535(\d{6})$',], + '3540' => ['title' => 'AREA (ft2), log', 'FNC1' => false, 'pattern' => '^3540(\d{6})$',], + '3541' => ['title' => 'AREA (ft2), log', 'FNC1' => false, 'pattern' => '^3541(\d{6})$',], + '3542' => ['title' => 'AREA (ft2), log', 'FNC1' => false, 'pattern' => '^3542(\d{6})$',], + '3543' => ['title' => 'AREA (ft2), log', 'FNC1' => false, 'pattern' => '^3543(\d{6})$',], + '3544' => ['title' => 'AREA (ft2), log', 'FNC1' => false, 'pattern' => '^3544(\d{6})$',], + '3545' => ['title' => 'AREA (ft2), log', 'FNC1' => false, 'pattern' => '^3545(\d{6})$',], + '3550' => ['title' => 'AREA (yd2), log', 'FNC1' => false, 'pattern' => '^3550(\d{6})$',], + '3551' => ['title' => 'AREA (yd2), log', 'FNC1' => false, 'pattern' => '^3551(\d{6})$',], + '3552' => ['title' => 'AREA (yd2), log', 'FNC1' => false, 'pattern' => '^3552(\d{6})$',], + '3553' => ['title' => 'AREA (yd2), log', 'FNC1' => false, 'pattern' => '^3553(\d{6})$',], + '3554' => ['title' => 'AREA (yd2), log', 'FNC1' => false, 'pattern' => '^3554(\d{6})$',], + '3555' => ['title' => 'AREA (yd2), log', 'FNC1' => false, 'pattern' => '^3555(\d{6})$',], + '3560' => ['title' => 'NET WEIGHT (t oz)', 'FNC1' => false, 'pattern' => '^3560(\d{6})$',], + '3561' => ['title' => 'NET WEIGHT (t oz)', 'FNC1' => false, 'pattern' => '^3561(\d{6})$',], + '3562' => ['title' => 'NET WEIGHT (t oz)', 'FNC1' => false, 'pattern' => '^3562(\d{6})$',], + '3563' => ['title' => 'NET WEIGHT (t oz)', 'FNC1' => false, 'pattern' => '^3563(\d{6})$',], + '3564' => ['title' => 'NET WEIGHT (t oz)', 'FNC1' => false, 'pattern' => '^3564(\d{6})$',], + '3565' => ['title' => 'NET WEIGHT (t oz)', 'FNC1' => false, 'pattern' => '^3565(\d{6})$',], + '3570' => ['title' => 'NET VOLUME (oz)', 'FNC1' => false, 'pattern' => '^3570(\d{6})$',], + '3571' => ['title' => 'NET VOLUME (oz)', 'FNC1' => false, 'pattern' => '^3571(\d{6})$',], + '3572' => ['title' => 'NET VOLUME (oz)', 'FNC1' => false, 'pattern' => '^3572(\d{6})$',], + '3573' => ['title' => 'NET VOLUME (oz)', 'FNC1' => false, 'pattern' => '^3573(\d{6})$',], + '3574' => ['title' => 'NET VOLUME (oz)', 'FNC1' => false, 'pattern' => '^3574(\d{6})$',], + '3575' => ['title' => 'NET VOLUME (oz)', 'FNC1' => false, 'pattern' => '^3575(\d{6})$',], + '3600' => ['title' => 'NET VOLUME (qt)', 'FNC1' => false, 'pattern' => '^3600(\d{6})$',], + '3601' => ['title' => 'NET VOLUME (qt)', 'FNC1' => false, 'pattern' => '^3601(\d{6})$',], + '3602' => ['title' => 'NET VOLUME (qt)', 'FNC1' => false, 'pattern' => '^3602(\d{6})$',], + '3603' => ['title' => 'NET VOLUME (qt)', 'FNC1' => false, 'pattern' => '^3603(\d{6})$',], + '3604' => ['title' => 'NET VOLUME (qt)', 'FNC1' => false, 'pattern' => '^3604(\d{6})$',], + '3605' => ['title' => 'NET VOLUME (qt)', 'FNC1' => false, 'pattern' => '^3605(\d{6})$',], + '3610' => ['title' => 'NET VOLUME (gal.)', 'FNC1' => false, 'pattern' => '^3610(\d{6})$',], + '3611' => ['title' => 'NET VOLUME (gal.)', 'FNC1' => false, 'pattern' => '^3611(\d{6})$',], + '3612' => ['title' => 'NET VOLUME (gal.)', 'FNC1' => false, 'pattern' => '^3612(\d{6})$',], + '3613' => ['title' => 'NET VOLUME (gal.)', 'FNC1' => false, 'pattern' => '^3613(\d{6})$',], + '3614' => ['title' => 'NET VOLUME (gal.)', 'FNC1' => false, 'pattern' => '^3614(\d{6})$',], + '3615' => ['title' => 'NET VOLUME (gal.)', 'FNC1' => false, 'pattern' => '^3615(\d{6})$',], + '3620' => ['title' => 'VOLUME (qt), log', 'FNC1' => false, 'pattern' => '^3620(\d{6})$',], + '3621' => ['title' => 'VOLUME (qt), log', 'FNC1' => false, 'pattern' => '^3621(\d{6})$',], + '3622' => ['title' => 'VOLUME (qt), log', 'FNC1' => false, 'pattern' => '^3622(\d{6})$',], + '3623' => ['title' => 'VOLUME (qt), log', 'FNC1' => false, 'pattern' => '^3623(\d{6})$',], + '3624' => ['title' => 'VOLUME (qt), log', 'FNC1' => false, 'pattern' => '^3624(\d{6})$',], + '3625' => ['title' => 'VOLUME (qt), log', 'FNC1' => false, 'pattern' => '^3625(\d{6})$',], + '3630' => ['title' => 'VOLUME (gal.), log', 'FNC1' => false, 'pattern' => '^3630(\d{6})$',], + '3631' => ['title' => 'VOLUME (gal.), log', 'FNC1' => false, 'pattern' => '^3631(\d{6})$',], + '3632' => ['title' => 'VOLUME (gal.), log', 'FNC1' => false, 'pattern' => '^3632(\d{6})$',], + '3633' => ['title' => 'VOLUME (gal.), log', 'FNC1' => false, 'pattern' => '^3633(\d{6})$',], + '3634' => ['title' => 'VOLUME (gal.), log', 'FNC1' => false, 'pattern' => '^3634(\d{6})$',], + '3635' => ['title' => 'VOLUME (gal.), log', 'FNC1' => false, 'pattern' => '^3635(\d{6})$',], + '3640' => ['title' => 'VOLUME (in3)', 'FNC1' => false, 'pattern' => '^3640(\d{6})$',], + '3641' => ['title' => 'VOLUME (in3)', 'FNC1' => false, 'pattern' => '^3641(\d{6})$',], + '3642' => ['title' => 'VOLUME (in3)', 'FNC1' => false, 'pattern' => '^3642(\d{6})$',], + '3643' => ['title' => 'VOLUME (in3)', 'FNC1' => false, 'pattern' => '^3643(\d{6})$',], + '3644' => ['title' => 'VOLUME (in3)', 'FNC1' => false, 'pattern' => '^3644(\d{6})$',], + '3645' => ['title' => 'VOLUME (in3)', 'FNC1' => false, 'pattern' => '^3645(\d{6})$',], + '3650' => ['title' => 'VOLUME (ft3)', 'FNC1' => false, 'pattern' => '^3650(\d{6})$',], + '3651' => ['title' => 'VOLUME (ft3)', 'FNC1' => false, 'pattern' => '^3651(\d{6})$',], + '3652' => ['title' => 'VOLUME (ft3)', 'FNC1' => false, 'pattern' => '^3652(\d{6})$',], + '3653' => ['title' => 'VOLUME (ft3)', 'FNC1' => false, 'pattern' => '^3653(\d{6})$',], + '3654' => ['title' => 'VOLUME (ft3)', 'FNC1' => false, 'pattern' => '^3654(\d{6})$',], + '3655' => ['title' => 'VOLUME (ft3)', 'FNC1' => false, 'pattern' => '^3655(\d{6})$',], + '3660' => ['title' => 'VOLUME (yd3)', 'FNC1' => false, 'pattern' => '^3660(\d{6})$',], + '3661' => ['title' => 'VOLUME (yd3)', 'FNC1' => false, 'pattern' => '^3661(\d{6})$',], + '3662' => ['title' => 'VOLUME (yd3)', 'FNC1' => false, 'pattern' => '^3662(\d{6})$',], + '3663' => ['title' => 'VOLUME (yd3)', 'FNC1' => false, 'pattern' => '^3663(\d{6})$',], + '3664' => ['title' => 'VOLUME (yd3)', 'FNC1' => false, 'pattern' => '^3664(\d{6})$',], + '3665' => ['title' => 'VOLUME (yd3)', 'FNC1' => false, 'pattern' => '^3665(\d{6})$',], + '3670' => ['title' => 'VOLUME (in3), log', 'FNC1' => false, 'pattern' => '^3670(\d{6})$',], + '3671' => ['title' => 'VOLUME (in3), log', 'FNC1' => false, 'pattern' => '^3671(\d{6})$',], + '3672' => ['title' => 'VOLUME (in3), log', 'FNC1' => false, 'pattern' => '^3672(\d{6})$',], + '3673' => ['title' => 'VOLUME (in3), log', 'FNC1' => false, 'pattern' => '^3673(\d{6})$',], + '3674' => ['title' => 'VOLUME (in3), log', 'FNC1' => false, 'pattern' => '^3674(\d{6})$',], + '3675' => ['title' => 'VOLUME (in3), log', 'FNC1' => false, 'pattern' => '^3675(\d{6})$',], + '3680' => ['title' => 'VOLUME (ft3), log', 'FNC1' => false, 'pattern' => '^3680(\d{6})$',], + '3681' => ['title' => 'VOLUME (ft3), log', 'FNC1' => false, 'pattern' => '^3681(\d{6})$',], + '3682' => ['title' => 'VOLUME (ft3), log', 'FNC1' => false, 'pattern' => '^3682(\d{6})$',], + '3683' => ['title' => 'VOLUME (ft3), log', 'FNC1' => false, 'pattern' => '^3683(\d{6})$',], + '3684' => ['title' => 'VOLUME (ft3), log', 'FNC1' => false, 'pattern' => '^3684(\d{6})$',], + '3685' => ['title' => 'VOLUME (ft3), log', 'FNC1' => false, 'pattern' => '^3685(\d{6})$',], + '3690' => ['title' => 'VOLUME (yd3), log', 'FNC1' => false, 'pattern' => '^3690(\d{6})$',], + '3691' => ['title' => 'VOLUME (yd3), log', 'FNC1' => false, 'pattern' => '^3691(\d{6})$',], + '3692' => ['title' => 'VOLUME (yd3), log', 'FNC1' => false, 'pattern' => '^3692(\d{6})$',], + '3693' => ['title' => 'VOLUME (yd3), log', 'FNC1' => false, 'pattern' => '^3693(\d{6})$',], + '3694' => ['title' => 'VOLUME (yd3), log', 'FNC1' => false, 'pattern' => '^3694(\d{6})$',], + '3695' => ['title' => 'VOLUME (yd3), log', 'FNC1' => false, 'pattern' => '^3695(\d{6})$',], + '37' => ['title' => 'COUNT', 'FNC1' => true, 'pattern' => '^37(\d{0,8})$',], + '3900' => ['title' => 'AMOUNT', 'FNC1' => true, 'pattern' => '^3900(\d{0,15})$',], + '3901' => ['title' => 'AMOUNT', 'FNC1' => true, 'pattern' => '^3901(\d{0,15})$',], + '3902' => ['title' => 'AMOUNT', 'FNC1' => true, 'pattern' => '^3902(\d{0,15})$',], + '3903' => ['title' => 'AMOUNT', 'FNC1' => true, 'pattern' => '^3903(\d{0,15})$',], + '3904' => ['title' => 'AMOUNT', 'FNC1' => true, 'pattern' => '^3904(\d{0,15})$',], + '3905' => ['title' => 'AMOUNT', 'FNC1' => true, 'pattern' => '^3905(\d{0,15})$',], + '3906' => ['title' => 'AMOUNT', 'FNC1' => true, 'pattern' => '^3906(\d{0,15})$',], + '3907' => ['title' => 'AMOUNT', 'FNC1' => true, 'pattern' => '^3907(\d{0,15})$',], + '3908' => ['title' => 'AMOUNT', 'FNC1' => true, 'pattern' => '^3908(\d{0,15})$',], + '3909' => ['title' => 'AMOUNT', 'FNC1' => true, 'pattern' => '^3909(\d{0,15})$',], + '3910' => ['title' => 'AMOUNT', 'FNC1' => true, 'pattern' => '^3910(\d{3})(\d{0,15})$',], + '3911' => ['title' => 'AMOUNT', 'FNC1' => true, 'pattern' => '^3911(\d{3})(\d{0,15})$',], + '3912' => ['title' => 'AMOUNT', 'FNC1' => true, 'pattern' => '^3912(\d{3})(\d{0,15})$',], + '3913' => ['title' => 'AMOUNT', 'FNC1' => true, 'pattern' => '^3913(\d{3})(\d{0,15})$',], + '3914' => ['title' => 'AMOUNT', 'FNC1' => true, 'pattern' => '^3914(\d{3})(\d{0,15})$',], + '3915' => ['title' => 'AMOUNT', 'FNC1' => true, 'pattern' => '^3915(\d{3})(\d{0,15})$',], + '3916' => ['title' => 'AMOUNT', 'FNC1' => true, 'pattern' => '^3916(\d{3})(\d{0,15})$',], + '3917' => ['title' => 'AMOUNT', 'FNC1' => true, 'pattern' => '^3917(\d{3})(\d{0,15})$',], + '3918' => ['title' => 'AMOUNT', 'FNC1' => true, 'pattern' => '^3918(\d{3})(\d{0,15})$',], + '3919' => ['title' => 'AMOUNT', 'FNC1' => true, 'pattern' => '^3919(\d{3})(\d{0,15})$',], + '3920' => ['title' => 'PRICE', 'FNC1' => true, 'pattern' => '^3920(\d{0,15})$',], + '3921' => ['title' => 'PRICE', 'FNC1' => true, 'pattern' => '^3921(\d{0,15})$',], + '3922' => ['title' => 'PRICE', 'FNC1' => true, 'pattern' => '^3922(\d{0,15})$',], + '3923' => ['title' => 'PRICE', 'FNC1' => true, 'pattern' => '^3923(\d{0,15})$',], + '3924' => ['title' => 'PRICE', 'FNC1' => true, 'pattern' => '^3924(\d{0,15})$',], + '3925' => ['title' => 'PRICE', 'FNC1' => true, 'pattern' => '^3925(\d{0,15})$',], + '3926' => ['title' => 'PRICE', 'FNC1' => true, 'pattern' => '^3926(\d{0,15})$',], + '3927' => ['title' => 'PRICE', 'FNC1' => true, 'pattern' => '^3927(\d{0,15})$',], + '3928' => ['title' => 'PRICE', 'FNC1' => true, 'pattern' => '^3928(\d{0,15})$',], + '3929' => ['title' => 'PRICE', 'FNC1' => true, 'pattern' => '^3929(\d{0,15})$',], + '3930' => ['title' => 'PRICE', 'FNC1' => true, 'pattern' => '^3930(\d{3})(\d{0,15})$',], + '3931' => ['title' => 'PRICE', 'FNC1' => true, 'pattern' => '^3931(\d{3})(\d{0,15})$',], + '3932' => ['title' => 'PRICE', 'FNC1' => true, 'pattern' => '^3932(\d{3})(\d{0,15})$',], + '3933' => ['title' => 'PRICE', 'FNC1' => true, 'pattern' => '^3933(\d{3})(\d{0,15})$',], + '3934' => ['title' => 'PRICE', 'FNC1' => true, 'pattern' => '^3934(\d{3})(\d{0,15})$',], + '3935' => ['title' => 'PRICE', 'FNC1' => true, 'pattern' => '^3935(\d{3})(\d{0,15})$',], + '3936' => ['title' => 'PRICE', 'FNC1' => true, 'pattern' => '^3936(\d{3})(\d{0,15})$',], + '3937' => ['title' => 'PRICE', 'FNC1' => true, 'pattern' => '^3937(\d{3})(\d{0,15})$',], + '3938' => ['title' => 'PRICE', 'FNC1' => true, 'pattern' => '^3938(\d{3})(\d{0,15})$',], + '3939' => ['title' => 'PRICE', 'FNC1' => true, 'pattern' => '^3939(\d{3})(\d{0,15})$',], + '3940' => ['title' => 'PRCNT OFF', 'FNC1' => true, 'pattern' => '^3940(\d{4})$',], + '3941' => ['title' => 'PRCNT OFF', 'FNC1' => true, 'pattern' => '^3941(\d{4})$',], + '3942' => ['title' => 'PRCNT OFF', 'FNC1' => true, 'pattern' => '^3942(\d{4})$',], + '3943' => ['title' => 'PRCNT OFF', 'FNC1' => true, 'pattern' => '^3943(\d{4})$',], + '3950' => ['title' => 'PRICE/UoM', 'FNC1' => true, 'pattern' => '^3950(\d{0,6})$',], + '3951' => ['title' => 'PRICE/UoM', 'FNC1' => true, 'pattern' => '^3951(\d{0,6})$',], + '3952' => ['title' => 'PRICE/UoM', 'FNC1' => true, 'pattern' => '^3952(\d{0,6})$',], + '3953' => ['title' => 'PRICE/UoM', 'FNC1' => true, 'pattern' => '^3953(\d{0,6})$',], + '3954' => ['title' => 'PRICE/UoM', 'FNC1' => true, 'pattern' => '^3954(\d{0,6})$',], + '3955' => ['title' => 'PRICE/UoM', 'FNC1' => true, 'pattern' => '^3955(\d{0,6})$',], + '3956' => ['title' => 'PRICE/UoM', 'FNC1' => true, 'pattern' => '^3956(\d{0,6})$',], + '3957' => ['title' => 'PRICE/UoM', 'FNC1' => true, 'pattern' => '^3957(\d{0,6})$',], + '3958' => ['title' => 'PRICE/UoM', 'FNC1' => true, 'pattern' => '^3958(\d{0,6})$',], + '3959' => ['title' => 'PRICE/UoM', 'FNC1' => true, 'pattern' => '^3959(\d{0,6})$',], + '400' => ['title' => 'ORDER NUMBER', 'FNC1' => true, 'pattern' => '^400([\x21-\x22\x25-\x2F\x30-\x39\x3A-\x3F\x41-\x5A\x5F\x61-\x7A]{0,30})$',], + '401' => ['title' => 'GINC', 'FNC1' => true, 'pattern' => '^401([\x21-\x22\x25-\x2F\x30-\x39\x3A-\x3F\x41-\x5A\x5F\x61-\x7A]{0,30})$',], + '402' => ['title' => 'GSIN', 'FNC1' => true, 'pattern' => '^402(\d{17})$',], + '403' => ['title' => 'ROUTE', 'FNC1' => true, 'pattern' => '^403([\x21-\x22\x25-\x2F\x30-\x39\x3A-\x3F\x41-\x5A\x5F\x61-\x7A]{0,30})$',], + '410' => ['title' => 'SHIP TO LOC', 'FNC1' => false, 'pattern' => '^410(\d{13})$',], + '411' => ['title' => 'BILL TO', 'FNC1' => false, 'pattern' => '^411(\d{13})$',], + '412' => ['title' => 'PURCHASE FROM', 'FNC1' => false, 'pattern' => '^412(\d{13})$',], + '413' => ['title' => 'SHIP FOR LOC', 'FNC1' => false, 'pattern' => '^413(\d{13})$',], + '414' => ['title' => 'LOC No.', 'FNC1' => false, 'pattern' => '^414(\d{13})$',], + '415' => ['title' => 'PAY TO', 'FNC1' => false, 'pattern' => '^415(\d{13})$',], + '416' => ['title' => 'PROD/SERV LOC', 'FNC1' => false, 'pattern' => '^416(\d{13})$',], + '417' => ['title' => 'PARTY', 'FNC1' => false, 'pattern' => '^417(\d{13})$',], + '420' => ['title' => 'SHIP TO POST', 'FNC1' => true, 'pattern' => '^420([\x21-\x22\x25-\x2F\x30-\x39\x3A-\x3F\x41-\x5A\x5F\x61-\x7A]{0,20})$',], + '421' => ['title' => 'SHIP TO POST', 'FNC1' => true, 'pattern' => '^421(\d{3})([\x21-\x22\x25-\x2F\x30-\x39\x3A-\x3F\x41-\x5A\x5F\x61-\x7A]{0,9})$',], + '422' => ['title' => 'ORIGIN', 'FNC1' => true, 'pattern' => '^422(\d{3})$',], + '423' => ['title' => 'COUNTRY - INITIAL PROCESS', 'FNC1' => true, 'pattern' => '^423(\d{3})(\d{0,12})$',], + '424' => ['title' => 'COUNTRY - PROCESS', 'FNC1' => true, 'pattern' => '^424(\d{3})$',], + '425' => ['title' => 'COUNTRY - DISASSEMBLY', 'FNC1' => true, 'pattern' => '^425(\d{3})(\d{0,12})$',], + '426' => ['title' => 'COUNTRY - FULL PROCESS', 'FNC1' => true, 'pattern' => '^426(\d{3})$',], + '427' => ['title' => 'ORIGIN SUBDIVISION', 'FNC1' => true, 'pattern' => '^427([\x21-\x22\x25-\x2F\x30-\x39\x3A-\x3F\x41-\x5A\x5F\x61-\x7A]{0,3})$',], + '4300' => ['title' => 'SHIP TO COMP', 'FNC1' => true, 'pattern' => '^4300([\x21-\x22\x25-\x2F\x30-\x39\x3A-\x3F\x41-\x5A\x5F\x61-\x7A]{0,35})$',], + '4301' => ['title' => 'SHIP TO NAME', 'FNC1' => true, 'pattern' => '^4301([\x21-\x22\x25-\x2F\x30-\x39\x3A-\x3F\x41-\x5A\x5F\x61-\x7A]{0,35})$',], + '4302' => ['title' => 'SHIP TO ADD1', 'FNC1' => true, 'pattern' => '^4302([\x21-\x22\x25-\x2F\x30-\x39\x3A-\x3F\x41-\x5A\x5F\x61-\x7A]{0,70})$',], + '4303' => ['title' => 'SHIP TO ADD2', 'FNC1' => true, 'pattern' => '^4303([\x21-\x22\x25-\x2F\x30-\x39\x3A-\x3F\x41-\x5A\x5F\x61-\x7A]{0,70})$',], + '4304' => ['title' => 'SHIP TO SUB', 'FNC1' => true, 'pattern' => '^4304([\x21-\x22\x25-\x2F\x30-\x39\x3A-\x3F\x41-\x5A\x5F\x61-\x7A]{0,70})$',], + '4305' => ['title' => 'SHIP TO LOC', 'FNC1' => true, 'pattern' => '^4305([\x21-\x22\x25-\x2F\x30-\x39\x3A-\x3F\x41-\x5A\x5F\x61-\x7A]{0,70})$',], + '4306' => ['title' => 'SHIP TO REG', 'FNC1' => true, 'pattern' => '^4306([\x21-\x22\x25-\x2F\x30-\x39\x3A-\x3F\x41-\x5A\x5F\x61-\x7A]{0,70})$',], + '4307' => ['title' => 'SHIP TO COUNTRY', 'FNC1' => true, 'pattern' => '^4307([A-Z]{2})$',], + '4308' => ['title' => 'SHIP TO PHONE', 'FNC1' => true, 'pattern' => '^4308([\x21-\x22\x25-\x2F\x30-\x39\x3A-\x3F\x41-\x5A\x5F\x61-\x7A]{0,30})$',], + '4309' => ['title' => 'SHIP TO GEO', 'FNC1' => true, 'pattern' => '^4309(\d{20})$',], + '4310' => ['title' => 'RTN TO COMP', 'FNC1' => true, 'pattern' => '^4310([\x21-\x22\x25-\x2F\x30-\x39\x3A-\x3F\x41-\x5A\x5F\x61-\x7A]{0,35})$',], + '4311' => ['title' => 'RTN TO NAME', 'FNC1' => true, 'pattern' => '^4311([\x21-\x22\x25-\x2F\x30-\x39\x3A-\x3F\x41-\x5A\x5F\x61-\x7A]{0,35})$',], + '4312' => ['title' => 'RTN TO ADD1', 'FNC1' => true, 'pattern' => '^4312([\x21-\x22\x25-\x2F\x30-\x39\x3A-\x3F\x41-\x5A\x5F\x61-\x7A]{0,70})$',], + '4313' => ['title' => 'RTN TO ADD2', 'FNC1' => true, 'pattern' => '^4313([\x21-\x22\x25-\x2F\x30-\x39\x3A-\x3F\x41-\x5A\x5F\x61-\x7A]{0,70})$',], + '4314' => ['title' => 'RTN TO SUB', 'FNC1' => true, 'pattern' => '^4314([\x21-\x22\x25-\x2F\x30-\x39\x3A-\x3F\x41-\x5A\x5F\x61-\x7A]{0,70})$',], + '4315' => ['title' => 'RTN TO LOC', 'FNC1' => true, 'pattern' => '^4315([\x21-\x22\x25-\x2F\x30-\x39\x3A-\x3F\x41-\x5A\x5F\x61-\x7A]{0,70})$',], + '4316' => ['title' => 'RTN TO REG', 'FNC1' => true, 'pattern' => '^4316([\x21-\x22\x25-\x2F\x30-\x39\x3A-\x3F\x41-\x5A\x5F\x61-\x7A]{0,70})$',], + '4317' => ['title' => 'RTN TO COUNTRY', 'FNC1' => true, 'pattern' => '^4317([A-Z]{2})$',], + '4318' => ['title' => 'RTN TO POST', 'FNC1' => true, 'pattern' => '^4318([\x21-\x22\x25-\x2F\x30-\x39\x3A-\x3F\x41-\x5A\x5F\x61-\x7A]{0,20})$',], + '4319' => ['title' => 'RTN TO PHONE', 'FNC1' => true, 'pattern' => '^4319([\x21-\x22\x25-\x2F\x30-\x39\x3A-\x3F\x41-\x5A\x5F\x61-\x7A]{0,30})$',], + '4320' => ['title' => 'SRV DESCRIPTION', 'FNC1' => true, 'pattern' => '^4320([\x21-\x22\x25-\x2F\x30-\x39\x3A-\x3F\x41-\x5A\x5F\x61-\x7A]{0,35})$',], + '4321' => ['title' => 'DANGEROUS GOODS', 'FNC1' => true, 'pattern' => '^4321([01])$',], + '4322' => ['title' => 'AUTH TO LEAVE', 'FNC1' => true, 'pattern' => '^4322([01])$',], + '4323' => ['title' => 'SIG REQUIRED', 'FNC1' => true, 'pattern' => '^4323([01])$',], + '4324' => ['title' => 'NBEF DEL DT', 'FNC1' => true, 'pattern' => '^4324(\d{10})$',], + '4325' => ['title' => 'NAFT DEL DT', 'FNC1' => true, 'pattern' => '^4325(\d{10})$',], + '4326' => ['title' => 'REL DATE', 'FNC1' => true, 'pattern' => '^4326(\d{6})$',], + '7001' => ['title' => 'NSN', 'FNC1' => true, 'pattern' => '^7001(\d{13})$',], + '7002' => ['title' => 'MEAT CUT', 'FNC1' => true, 'pattern' => '^7002([\x21-\x22\x25-\x2F\x30-\x39\x3A-\x3F\x41-\x5A\x5F\x61-\x7A]{0,30})$',], + '7003' => ['title' => 'EXPIRY TIME', 'FNC1' => true, 'pattern' => '^7003(\d{10})$',], + '7004' => ['title' => 'ACTIVE POTENCY', 'FNC1' => true, 'pattern' => '^7004(\d{0,4})$',], + '7005' => ['title' => 'CATCH AREA', 'FNC1' => true, 'pattern' => '^7005([\x21-\x22\x25-\x2F\x30-\x39\x3A-\x3F\x41-\x5A\x5F\x61-\x7A]{0,12})$',], + '7006' => ['title' => 'FIRST FREEZE DATE', 'FNC1' => true, 'pattern' => '^7006(\d{6})$',], + '7007' => ['title' => 'HARVEST DATE', 'FNC1' => true, 'pattern' => '^7007(\d{6,12})$',], + '7008' => ['title' => 'AQUATIC SPECIES', 'FNC1' => true, 'pattern' => '^7008([\x21-\x22\x25-\x2F\x30-\x39\x3A-\x3F\x41-\x5A\x5F\x61-\x7A]{0,3})$',], + '7009' => ['title' => 'FISHING GEAR TYPE', 'FNC1' => true, 'pattern' => '^7009([\x21-\x22\x25-\x2F\x30-\x39\x3A-\x3F\x41-\x5A\x5F\x61-\x7A]{0,10})$',], + '7010' => ['title' => 'PROD METHOD', 'FNC1' => true, 'pattern' => '^7010([\x21-\x22\x25-\x2F\x30-\x39\x3A-\x3F\x41-\x5A\x5F\x61-\x7A]{0,2})$',], + '7011' => ['title' => 'TEST BY DATE', 'FNC1' => true, 'pattern' => '^7011(\d{6})(\d{0,4})$',], + '7020' => ['title' => 'REFURB LOT', 'FNC1' => true, 'pattern' => '^7020([\x21-\x22\x25-\x2F\x30-\x39\x3A-\x3F\x41-\x5A\x5F\x61-\x7A]{0,20})$',], + '7021' => ['title' => 'FUNC STAT', 'FNC1' => true, 'pattern' => '^7021([\x21-\x22\x25-\x2F\x30-\x39\x3A-\x3F\x41-\x5A\x5F\x61-\x7A]{0,20})$',], + '7022' => ['title' => 'REV STAT', 'FNC1' => true, 'pattern' => '^7022([\x21-\x22\x25-\x2F\x30-\x39\x3A-\x3F\x41-\x5A\x5F\x61-\x7A]{0,20})$',], + '7023' => ['title' => 'GIAI - ASSEMBLY', 'FNC1' => true, 'pattern' => '^7023([\x21-\x22\x25-\x2F\x30-\x39\x3A-\x3F\x41-\x5A\x5F\x61-\x7A]{0,30})$',], + '7030' => ['title' => 'PROCESSOR # 0', 'FNC1' => true, 'pattern' => '^7030(\d{3})([\x21-\x22\x25-\x2F\x30-\x39\x3A-\x3F\x41-\x5A\x5F\x61-\x7A]{0,27})$',], + '7031' => ['title' => 'PROCESSOR # 1', 'FNC1' => true, 'pattern' => '^7031(\d{3})([\x21-\x22\x25-\x2F\x30-\x39\x3A-\x3F\x41-\x5A\x5F\x61-\x7A]{0,27})$',], + '7032' => ['title' => 'PROCESSOR # 2', 'FNC1' => true, 'pattern' => '^7032(\d{3})([\x21-\x22\x25-\x2F\x30-\x39\x3A-\x3F\x41-\x5A\x5F\x61-\x7A]{0,27})$',], + '7033' => ['title' => 'PROCESSOR # 3', 'FNC1' => true, 'pattern' => '^7033(\d{3})([\x21-\x22\x25-\x2F\x30-\x39\x3A-\x3F\x41-\x5A\x5F\x61-\x7A]{0,27})$',], + '7034' => ['title' => 'PROCESSOR # 4', 'FNC1' => true, 'pattern' => '^7034(\d{3})([\x21-\x22\x25-\x2F\x30-\x39\x3A-\x3F\x41-\x5A\x5F\x61-\x7A]{0,27})$',], + '7035' => ['title' => 'PROCESSOR # 5', 'FNC1' => true, 'pattern' => '^7035(\d{3})([\x21-\x22\x25-\x2F\x30-\x39\x3A-\x3F\x41-\x5A\x5F\x61-\x7A]{0,27})$',], + '7036' => ['title' => 'PROCESSOR # 6', 'FNC1' => true, 'pattern' => '^7036(\d{3})([\x21-\x22\x25-\x2F\x30-\x39\x3A-\x3F\x41-\x5A\x5F\x61-\x7A]{0,27})$',], + '7037' => ['title' => 'PROCESSOR # 7', 'FNC1' => true, 'pattern' => '^7037(\d{3})([\x21-\x22\x25-\x2F\x30-\x39\x3A-\x3F\x41-\x5A\x5F\x61-\x7A]{0,27})$',], + '7038' => ['title' => 'PROCESSOR # 8', 'FNC1' => true, 'pattern' => '^7038(\d{3})([\x21-\x22\x25-\x2F\x30-\x39\x3A-\x3F\x41-\x5A\x5F\x61-\x7A]{0,27})$',], + '7039' => ['title' => 'PROCESSOR # 9', 'FNC1' => true, 'pattern' => '^7039(\d{3})([\x21-\x22\x25-\x2F\x30-\x39\x3A-\x3F\x41-\x5A\x5F\x61-\x7A]{0,27})$',], + '7040' => ['title' => 'UIC+EXT', 'FNC1' => true, 'pattern' => '^7040(\d[\x21-\x22\x25-\x2F\x30-\x39\x41-\x5A\x5F\x61-\x7A]{3})$',], + '710' => ['title' => 'NHRN PZN', 'FNC1' => true, 'pattern' => '^710([\x21-\x22\x25-\x2F\x30-\x39\x3A-\x3F\x41-\x5A\x5F\x61-\x7A]{0,20})$',], + '711' => ['title' => 'NHRN CIP', 'FNC1' => true, 'pattern' => '^711([\x21-\x22\x25-\x2F\x30-\x39\x3A-\x3F\x41-\x5A\x5F\x61-\x7A]{0,20})$',], + '712' => ['title' => 'NHRN CN', 'FNC1' => true, 'pattern' => '^712([\x21-\x22\x25-\x2F\x30-\x39\x3A-\x3F\x41-\x5A\x5F\x61-\x7A]{0,20})$',], + '713' => ['title' => 'NHRN DRN', 'FNC1' => true, 'pattern' => '^713([\x21-\x22\x25-\x2F\x30-\x39\x3A-\x3F\x41-\x5A\x5F\x61-\x7A]{0,20})$',], + '714' => ['title' => 'NHRN AIM', 'FNC1' => true, 'pattern' => '^714([\x21-\x22\x25-\x2F\x30-\x39\x3A-\x3F\x41-\x5A\x5F\x61-\x7A]{0,20})$',], + '715' => ['title' => 'NHRN NDC', 'FNC1' => true, 'pattern' => '^714([\x21-\x22\x25-\x2F\x30-\x39\x3A-\x3F\x41-\x5A\x5F\x61-\x7A]{0,20})$',], + '7230' => ['title' => 'CERT #1', 'FNC1' => true, 'pattern' => '^7230([\x21-\x22\x25-\x2F\x30-\x39\x3A-\x3F\x41-\x5A\x5F\x61-\x7A]{2,30})$',], + '7231' => ['title' => 'CERT #2', 'FNC1' => true, 'pattern' => '^7231([\x21-\x22\x25-\x2F\x30-\x39\x3A-\x3F\x41-\x5A\x5F\x61-\x7A]{2,30})$',], + '7232' => ['title' => 'CERT #3', 'FNC1' => true, 'pattern' => '^7232([\x21-\x22\x25-\x2F\x30-\x39\x3A-\x3F\x41-\x5A\x5F\x61-\x7A]{2,30})$',], + '7233' => ['title' => 'CERT #4', 'FNC1' => true, 'pattern' => '^7233([\x21-\x22\x25-\x2F\x30-\x39\x3A-\x3F\x41-\x5A\x5F\x61-\x7A]{2,30})$',], + '7234' => ['title' => 'CERT #5', 'FNC1' => true, 'pattern' => '^7234([\x21-\x22\x25-\x2F\x30-\x39\x3A-\x3F\x41-\x5A\x5F\x61-\x7A]{2,30})$',], + '7235' => ['title' => 'CERT #6', 'FNC1' => true, 'pattern' => '^7235([\x21-\x22\x25-\x2F\x30-\x39\x3A-\x3F\x41-\x5A\x5F\x61-\x7A]{2,30})$',], + '7236' => ['title' => 'CERT #7', 'FNC1' => true, 'pattern' => '^7236([\x21-\x22\x25-\x2F\x30-\x39\x3A-\x3F\x41-\x5A\x5F\x61-\x7A]{2,30})$',], + '7237' => ['title' => 'CERT #8', 'FNC1' => true, 'pattern' => '^7237([\x21-\x22\x25-\x2F\x30-\x39\x3A-\x3F\x41-\x5A\x5F\x61-\x7A]{2,30})$',], + '7238' => ['title' => 'CERT #9', 'FNC1' => true, 'pattern' => '^7238([\x21-\x22\x25-\x2F\x30-\x39\x3A-\x3F\x41-\x5A\x5F\x61-\x7A]{2,30})$',], + '7239' => ['title' => 'CERT #10', 'FNC1' => true, 'pattern' => '^7239([\x21-\x22\x25-\x2F\x30-\x39\x3A-\x3F\x41-\x5A\x5F\x61-\x7A]{2,30})$',], + '7240' => ['title' => 'PROTOCOL', 'FNC1' => true, 'pattern' => '^7240 ([\x21-\x22\x25-\x2F\x30-\x39\x41-\x5A\x5F\x61-\x7A]{0,20})$',], + '8001' => ['title' => 'DIMENSIONS', 'FNC1' => true, 'pattern' => '^8001(\d{14})$',], + '8002' => ['title' => 'CMT No.', 'FNC1' => true, 'pattern' => '^8002([\x21-\x22\x25-\x2F\x30-\x39\x3A-\x3F\x41-\x5A\x5F\x61-\x7A]{0,20})$',], + '8003' => ['title' => 'GRAI', 'FNC1' => true, 'pattern' => '^8003(\d{14})([\x21-\x22\x25-\x2F\x30-\x39\x3A-\x3F\x41-\x5A\x5F\x61-\x7A]{0,16})$',], + '8004' => ['title' => 'GIAI', 'FNC1' => true, 'pattern' => '^8004([\x21-\x22\x25-\x2F\x30-\x39\x3A-\x3F\x41-\x5A\x5F\x61-\x7A]{0,30})$',], + '8005' => ['title' => 'PRICE PER UNIT', 'FNC1' => true, 'pattern' => '^8005(\d{6})$',], + '8006' => ['title' => 'ITIP', 'FNC1' => true, 'pattern' => '^8006(\d{14})(\d{2})(\d{2})$',], + '8007' => ['title' => 'IBAN', 'FNC1' => true, 'pattern' => '^8007([\x21-\x22\x25-\x2F\x30-\x39\x3A-\x3F\x41-\x5A\x5F\x61-\x7A]{0,34})$',], + '8008' => ['title' => 'PROD TIME', 'FNC1' => true, 'pattern' => '^8008(\d{8})(\d{0,4})$',], + '8009' => ['title' => 'OPTSEN', 'FNC1' => true, 'pattern' => '^8009([\x21-\x22\x25-\x2F\x30-\x39\x3A-\x3F\x41-\x5A\x5F\x61-\x7A]{0,50})$',], + '8010' => ['title' => 'CPID', 'FNC1' => true, 'pattern' => '^8010([\x23\x2D\x2F\x30-\x39\x41-\x5A]{5,30})$',], + '8011' => ['title' => 'CPID SERIAL', 'FNC1' => true, 'pattern' => '^8011(\d{0,12})$',], + '8012' => ['title' => 'VERSION', 'FNC1' => true, 'pattern' => '^8012([\x21-\x22\x25-\x2F\x30-\x39\x3A-\x3F\x41-\x5A\x5F\x61-\x7A]{0,20})$',], + '8013' => ['title' => 'GMN (for medical devices, the default, global data title is BUDI-DI)', 'FNC1' => true, 'pattern' => '^8013([\x21-\x22\x25-\x2F\x30-\x39\x3A-\x3F\x41-\x5A\x5F\x61-\x7A]{0,25})$',], + '8017' => ['title' => 'GSRN - PROVIDER', 'FNC1' => true, 'pattern' => '^8017(\d{18})$',], + '8018' => ['title' => 'GSRN - RECIPIENT', 'FNC1' => true, 'pattern' => '^8018(\d{18})$',], + '8019' => ['title' => 'SRIN', 'FNC1' => true, 'pattern' => '^8019(\d{0,10})$',], + '8020' => ['title' => 'REF No.', 'FNC1' => true, 'pattern' => '^8020([\x21-\x22\x25-\x2F\x30-\x39\x3A-\x3F\x41-\x5A\x5F\x61-\x7A]{0,25})$',], + '8026' => ['title' => 'ITIP CONTENT', 'FNC1' => true, 'pattern' => '^8026(\d{14})(\d{2})(\d{2})$',], + '8110' => ['title' => '', 'FNC1' => true, 'pattern' => '^8110([\x21-\x22\x25-\x2F\x30-\x39\x3A-\x3F\x41-\x5A\x5F\x61-\x7A]{0,70})$',], + '8111' => ['title' => 'POINTS', 'FNC1' => true, 'pattern' => '^8111(\d{4})$',], + '8112' => ['title' => '', 'FNC1' => true, 'pattern' => '^8112([\x21-\x22\x25-\x2F\x30-\x39\x3A-\x3F\x41-\x5A\x5F\x61-\x7A]{0,70})$',], + '8200' => ['title' => 'PRODUCT URL', 'FNC1' => true, 'pattern' => '^8200([\x21-\x22\x25-\x2F\x30-\x39\x3A-\x3F\x41-\x5A\x5F\x61-\x7A]{0,70})$',], + '90' => ['title' => 'INTERNAL', 'FNC1' => true, 'pattern' => '^90([\x21-\x22\x25-\x2F\x30-\x39\x3A-\x3F\x41-\x5A\x5F\x61-\x7A]{0,30})$',], + '91' => ['title' => 'INTERNAL', 'FNC1' => true, 'pattern' => '^91([\x21-\x22\x25-\x2F\x30-\x39\x3A-\x3F\x41-\x5A\x5F\x61-\x7A]{0,90})$',], + '92' => ['title' => 'INTERNAL', 'FNC1' => true, 'pattern' => '^92([\x21-\x22\x25-\x2F\x30-\x39\x3A-\x3F\x41-\x5A\x5F\x61-\x7A]{0,90})$',], + '93' => ['title' => 'INTERNAL', 'FNC1' => true, 'pattern' => '^93([\x21-\x22\x25-\x2F\x30-\x39\x3A-\x3F\x41-\x5A\x5F\x61-\x7A]{0,90})$',], + '94' => ['title' => 'INTERNAL', 'FNC1' => true, 'pattern' => '^94([\x21-\x22\x25-\x2F\x30-\x39\x3A-\x3F\x41-\x5A\x5F\x61-\x7A]{0,90})$',], + '95' => ['title' => 'INTERNAL', 'FNC1' => true, 'pattern' => '^95([\x21-\x22\x25-\x2F\x30-\x39\x3A-\x3F\x41-\x5A\x5F\x61-\x7A]{0,90})$',], + '96' => ['title' => 'INTERNAL', 'FNC1' => true, 'pattern' => '^96([\x21-\x22\x25-\x2F\x30-\x39\x3A-\x3F\x41-\x5A\x5F\x61-\x7A]{0,90})$',], + '97' => ['title' => 'INTERNAL', 'FNC1' => true, 'pattern' => '^97([\x21-\x22\x25-\x2F\x30-\x39\x3A-\x3F\x41-\x5A\x5F\x61-\x7A]{0,90})$',], + '98' => ['title' => 'INTERNAL', 'FNC1' => true, 'pattern' => '^98([\x21-\x22\x25-\x2F\x30-\x39\x3A-\x3F\x41-\x5A\x5F\x61-\x7A]{0,90})$',], + '99' => ['title' => 'INTERNAL', 'FNC1' => true, 'pattern' => '^99([\x21-\x22\x25-\x2F\x30-\x39\x3A-\x3F\x41-\x5A\x5F\x61-\x7A]{0,90})$',], + ]; + + public array $data = []; + + public function validate() : bool + { + if (empty($this->data['01'] ?? '')) { + return false; + } + + foreach ($this->data as $ai => $value) { + if (\preg_match(self::DEFINITIONS[$ai]['pattern'], $ai . $value) === false) { + return false; + } + } + + return true; + } + + public function renderString() : string + { + $text = ''; + + foreach ($this->data as $ai => $value) { + $text .= '(' . $ai . ')' . $value; + } + + return $text; + } + + public function renderCodeString() : string + { + // 232 = FNC1 = ]C1 + $FNC1 = \chr(232); + + $code = $FNC1; + $count = \count($this->data); + + $counter = 0; + + foreach ($this->data as $ai => $value) { + ++$counter; + + $code .= $ai . $value; + + if (self::DEFINITIONS[$ai]['FNC1'] && $counter < $count) { + $code .= $FNC1; + } + } + + return $code; + } +} diff --git a/Theme/Backend/item-list.tpl.php b/Theme/Backend/item-list.tpl.php new file mode 100644 index 0000000..b2afe64 --- /dev/null +++ b/Theme/Backend/item-list.tpl.php @@ -0,0 +1,102 @@ +data['items'] ?? []; + +echo $this->data['nav']->render(); ?> + +
+
+
+
getHtml('Items', 'ItemManagement', 'Backend'); ?>
+
+ + + + + $value) : ++$count; + $url = UriFactory::build('{/base}/warehouse/labeling/item?id=' . $value->id); + $image = $value->getFileByTypeName('item_profile_image'); + ?> + +
+ getHtml('Number', 'ItemManagement', 'Backend'); ?> + + + + getHtml('Name', 'ItemManagement', 'Backend'); ?> + + + + getHtml('Name', 'ItemManagement', 'Backend'); ?> + + + + getHtml('Name', 'ItemManagement', 'Backend'); ?> + + + +
<?= $this->getHtml('IMG_alt_item'); ?> + printHtml($value->number); ?> + printHtml($value->getL11n('name1')->content); ?> + printHtml($value->getL11n('name2')->content); ?> + printHtml($value->getL11n('name3')->content); ?> + + +
getHtml('Empty', '0', '0'); ?> + +
+
+
+
+
diff --git a/Theme/Backend/label-render.tpl.php b/Theme/Backend/label-render.tpl.php index 9465735..04410cb 100644 --- a/Theme/Backend/label-render.tpl.php +++ b/Theme/Backend/label-render.tpl.php @@ -3,6 +3,8 @@ $layout = $this->data['layout']; $template = \reset($layout->template->sources); +$item = $this->data['item']; + $label = include_once $template->getAbsolutePath(); if (isset($this->data['path'])) { diff --git a/Theme/Backend/layout-item.tpl.php b/Theme/Backend/layout-item.tpl.php new file mode 100644 index 0000000..0d9178e --- /dev/null +++ b/Theme/Backend/layout-item.tpl.php @@ -0,0 +1,44 @@ +data['nav']->render(); + +$layout = \reset($this->data['layouts']); + +$media = $layout->template; +$template = \reset($media->sources); + +$item = $this->data['item']; + +$layout = include_once $template->getAbsolutePath(); + +ob_start(); +\imagepng($layout->render()); +$imageData = ob_get_clean(); + +$imageBase64 = base64_encode($imageData); +// Get the image MIME type +$imageType = 'image/png'; // Assuming JPEG format in this example + +// Generate the data URI for the inline image +$inlineImage = 'data:' . $imageType . ';base64,' . $imageBase64; +?> + +
+
+
+ Inline Image +
+
+
\ No newline at end of file diff --git a/Theme/Backend/layout-list.tpl.php b/Theme/Backend/layout-list.tpl.php index 8a58819..e69de29 100644 --- a/Theme/Backend/layout-list.tpl.php +++ b/Theme/Backend/layout-list.tpl.php @@ -1,42 +0,0 @@ -data['nav']->render(); - -$layout = \reset($this->data['layouts']); - -$media = $layout->template; -$template = \reset($media->sources); - -$layout = include_once $template->getAbsolutePath(); - -ob_start(); -\imagepng($layout->render()); -$imageData = ob_get_clean(); - -$imageBase64 = base64_encode($imageData); -// Get the image MIME type -$imageType = 'image/png'; // Assuming JPEG format in this example - -// Generate the data URI for the inline image -$inlineImage = 'data:' . $imageType . ';base64,' . $imageBase64; -?> - -
-
-
- Inline Image -
-
-
\ No newline at end of file