88 lines
3.1 KiB
PHP
88 lines
3.1 KiB
PHP
<?php
|
||
|
||
namespace App\Modules\Inventory\Exports;
|
||
|
||
use Maatwebsite\Excel\Concerns\WithMultipleSheets;
|
||
use Maatwebsite\Excel\Concerns\FromArray;
|
||
use Maatwebsite\Excel\Concerns\WithHeadings;
|
||
use Maatwebsite\Excel\Concerns\WithTitle;
|
||
use Maatwebsite\Excel\Concerns\ShouldAutoSize;
|
||
|
||
class InventoryTemplateExport implements WithMultipleSheets
|
||
{
|
||
public function sheets(): array
|
||
{
|
||
return [
|
||
new InventoryDataSheet(),
|
||
new InventoryInstructionSheet(),
|
||
];
|
||
}
|
||
}
|
||
|
||
class InventoryDataSheet implements FromArray, WithHeadings, WithTitle, ShouldAutoSize
|
||
{
|
||
public function array(): array
|
||
{
|
||
// 資料分頁保持完全空白
|
||
return [];
|
||
}
|
||
|
||
public function headings(): array
|
||
{
|
||
return [
|
||
'商品條碼',
|
||
'商品代號',
|
||
'商品名稱',
|
||
'數量',
|
||
'入庫單價',
|
||
'儲位/貨道',
|
||
'批號',
|
||
'產地',
|
||
'效期',
|
||
];
|
||
}
|
||
|
||
public function title(): string
|
||
{
|
||
return '資料填寫';
|
||
}
|
||
}
|
||
|
||
class InventoryInstructionSheet implements FromArray, WithHeadings, WithTitle, ShouldAutoSize
|
||
{
|
||
public function array(): array
|
||
{
|
||
return [
|
||
['商品條碼', '擇一輸入', '系統會「優先」依據條碼匹配商品。若有填寫,條碼必須存在於系統中'],
|
||
['商品代號', '擇一輸入', '若條碼未填寫,系統會依據代號匹配商品'],
|
||
['商品名稱', '選填', '僅供對照參考,匯入時系統會自動忽略此欄位內容'],
|
||
['數量', '必填', '入庫的商品數量,須為大於 0 的數字'],
|
||
['入庫單價', '選填', '未填寫時將預設使用商品的「採購成本價」'],
|
||
['儲位/貨道', '選填', '一般倉庫請填寫「儲位(位址)」,販賣機倉庫請填寫「貨道編號」(如: A1)'],
|
||
['批號', '選填', '如需批次控管請填寫,若留空系統會自動標記為 "NO-BATCH"'],
|
||
['產地', '選填', '商品的生產地資訊 (如:TW)'],
|
||
['效期', '選填', '格式請務必使用 YYYY-MM-DD (例如: 2026-12-31)'],
|
||
['', '', ''],
|
||
['倉庫類型參考', '', '系統支援以下倉庫性質:'],
|
||
['標準倉', '', '一般總倉、儲備倉'],
|
||
['生產倉', '', '加工廠、中央廚房、原材料存放處'],
|
||
['門市倉', '', '前台通路、店舖銷售現場'],
|
||
['販賣機', '', 'IoT 自動販賣機設備,建議搭配「貨道」填寫'],
|
||
['', '', ''],
|
||
['匹配與匯入規則', '', '1. 系統會優先比對「商品條碼」,其次為「商品代號」。'],
|
||
['', '', '2. 庫存將匯入至您在匯入前於系統介面所選擇的目標倉庫。'],
|
||
['', '', '3. 若需區分不同貨道或批次,請分行填寫。'],
|
||
];
|
||
}
|
||
|
||
public function headings(): array
|
||
{
|
||
return ['欄位名稱', '必要性', '填寫說明'];
|
||
}
|
||
|
||
public function title(): string
|
||
{
|
||
return '填寫規則';
|
||
}
|
||
}
|