diff --git a/app/Modules/Sales/Controllers/SalesImportController.php b/app/Modules/Sales/Controllers/SalesImportController.php index 181a050..2718256 100644 --- a/app/Modules/Sales/Controllers/SalesImportController.php +++ b/app/Modules/Sales/Controllers/SalesImportController.php @@ -30,10 +30,6 @@ class SalesImportController extends Controller ]); } - public function template() - { - return Excel::download(new \App\Modules\Sales\Exports\SalesImportTemplateExport, 'sales_import_template.xlsx'); - } public function store(Request $request) { diff --git a/app/Modules/Sales/Exports/SalesImportTemplateExport.php b/app/Modules/Sales/Exports/SalesImportTemplateExport.php deleted file mode 100644 index b5f3606..0000000 --- a/app/Modules/Sales/Exports/SalesImportTemplateExport.php +++ /dev/null @@ -1,37 +0,0 @@ - ['font' => ['bold' => true]], - ]; - } -} diff --git a/app/Modules/Sales/Routes/web.php b/app/Modules/Sales/Routes/web.php index 17f4ce4..7604aa4 100644 --- a/app/Modules/Sales/Routes/web.php +++ b/app/Modules/Sales/Routes/web.php @@ -10,7 +10,6 @@ Route::middleware(['auth', 'verified'])->prefix('sales')->name('sales-imports.') }); Route::post('/imports', [SalesImportController::class, 'store'])->middleware('permission:sales_imports.create')->name('store'); - Route::get('/imports/template', [SalesImportController::class, 'template'])->middleware('permission:sales_imports.create')->name('template'); Route::post('/imports/{import}/confirm', [SalesImportController::class, 'confirm'])->middleware('permission:sales_imports.confirm')->name('confirm'); Route::delete('/imports/{import}', [SalesImportController::class, 'destroy'])->middleware('permission:sales_imports.delete')->name('destroy'); diff --git a/resources/js/Components/Sales/SalesImportDialog.tsx b/resources/js/Components/Sales/SalesImportDialog.tsx index 8def14d..9b66e40 100644 --- a/resources/js/Components/Sales/SalesImportDialog.tsx +++ b/resources/js/Components/Sales/SalesImportDialog.tsx @@ -2,7 +2,7 @@ import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogFooter, DialogD import { Button } from "@/Components/ui/button"; import { Input } from "@/Components/ui/input"; import { Label } from "@/Components/ui/label"; -import { Upload, AlertCircle, Info, FileSpreadsheet } from "lucide-react"; +import { Upload, AlertCircle, Info } from "lucide-react"; import { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from "@/Components/ui/accordion"; import { useForm } from "@inertiajs/react"; import { Alert, AlertDescription } from "@/Components/ui/alert"; @@ -49,32 +49,11 @@ export default function SalesImportDialog({ open, onOpenChange }: SalesImportDia
- {/* 下載範本區域 */} -
- -
- 下載標準範本以確保資料格式正確。請勿修改欄位名稱。 -
- -
- {/* 上傳檔案區域 */}
@@ -98,21 +77,29 @@ export default function SalesImportDialog({ open, onOpenChange }: SalesImportDia
{/* 匯入說明 - 使用 Accordion 收合 */} - +
- 匯入與欄位說明 + 支援欄位說明 (系統自動識別)
-
    -
  • 檔案格式:請使用統一的 Excel 格式(商品銷貨單)。
  • -
  • 自動解析:系統將自動解析機台編號、商品代號與交易時間。
  • -
  • 後續動作:匯入後請至「待確認」清單檢查內容,確認無誤後再執行扣庫。
  • +

    請確保 Excel 檔案包含以下關鍵欄位資訊(依序或對應位置):

    +
      +
    • A 欄 (0):交易序號 (Serial)
    • +
    • B 欄 (1):機台編號 (Machine ID)
    • +
    • E 欄 (4):交易狀態 (Status)
    • +
    • H 欄 (7):商品代號 (Product Code)
    • +
    • J 欄 (9):交易時間 (Transaction Date)
    • +
    • L 欄 (11):金額 (Amount)
    • +
    • T 欄 (19):貨道 (Slot)
    +
    + 注意:系統將從第 4 列開始讀取資料。 +