feat: 合併 A4 極簡奢華風列印功能與多租戶防護

This commit is contained in:
sky121113 2026-05-22 10:24:30 +08:00
commit 016cb571c4
10 changed files with 1281 additions and 411 deletions

View File

@ -1436,4 +1436,47 @@ class WarehouseController extends Controller
'items' => $items
]);
}
/**
* 列印調撥單
*/
public function printTransfer($id)
{
$order = TransferOrder::with(['fromWarehouse', 'toWarehouse', 'fromMachine', 'creator'])
->findOrFail($id);
// 雙重防護:驗證租戶資料隔離安全
$user = auth()->user();
if ($user && $user->company_id && $order->company_id !== $user->company_id) {
abort(404);
}
$items = \App\Models\Warehouse\TransferOrderItem::with(['product' => fn($q) => $q->with('translations')])
->where('transfer_order_id', $id)
->get();
return view('admin.warehouses.print.transfer', compact('order', 'items'));
}
/**
* 列印機台補貨單
*/
public function printReplenishment($id)
{
$order = ReplenishmentOrder::with(['machine', 'warehouse', 'creator', 'assignee'])
->findOrFail($id);
// 雙重防護:驗證租戶資料隔離安全
$user = auth()->user();
if ($user && $user->company_id && $order->company_id !== $user->company_id) {
abort(404);
}
$items = ReplenishmentOrderItem::with(['product' => fn($q) => $q->with('translations')])
->where('replenishment_order_id', $id)
->get();
return view('admin.warehouses.print.replenishment', compact('order', 'items'));
}
}

View File

@ -31,9 +31,9 @@
"Account deleted successfully.": "Account deleted successfully.",
"Account updated successfully.": "Account updated successfully.",
"Account:": "Account:",
"Accounts / Machines": "Accounts / Machines",
"Accounts \/ Machines": "Accounts \/ Machines",
"Action": "Action",
"Action / Target": "Action / Target",
"Action \/ Target": "Action \/ Target",
"Actions": "Actions",
"Active": "Active",
"Active Slots": "Active Slots",
@ -68,7 +68,7 @@
"Administrator": "Administrator",
"Advertisement List": "Advertisement List",
"Advertisement Management": "Advertisement Management",
"Advertisement Video/Image": "Advertisement Video/Image",
"Advertisement Video\/Image": "Advertisement Video\/Image",
"Advertisement assigned successfully": "Advertisement assigned successfully",
"Advertisement assigned successfully.": "Advertisement assigned successfully.",
"Advertisement created successfully": "Advertisement created successfully",
@ -106,7 +106,7 @@
"All issues marked as resolved.": "All issues marked as resolved.",
"All slots are fully stocked": "All slots are fully stocked",
"Amount": "Amount",
"Amount / Payment": "Amount / Payment",
"Amount \/ Payment": "Amount \/ Payment",
"An error occurred while saving.": "An error occurred while saving.",
"Analysis Management": "Analysis Management",
"Analysis Permissions": "Analysis Permissions",
@ -186,7 +186,7 @@
"Back to List": "Back to List",
"Badge Settings": "Badge Settings",
"Barcode": "Barcode",
"Barcode / Material": "Barcode / Material",
"Barcode \/ Material": "Barcode \/ Material",
"Based on Hours": "Based on Hours",
"Basic Information": "Basic Information",
"Basic Settings": "Basic Settings",
@ -243,7 +243,7 @@
"Change Note": "Change Note",
"Change Stock": "Change Stock",
"Channel Limits": "Channel Limits",
"Channel Limits (Track/Spring)": "Channel Limits (Track/Spring)",
"Channel Limits (Track\/Spring)": "Channel Limits (Track\/Spring)",
"Channel Limits Configuration": "Channel Limits Configuration",
"ChannelId": "ChannelId",
"ChannelSecret": "ChannelSecret",
@ -261,8 +261,8 @@
"Code": "Code",
"Code Copied": "Code Copied",
"Coin Acceptor": "Coin Acceptor",
"Coin/Banknote Machine": "Coin/Banknote Machine",
"Coin/Bill Acceptor": "Coin/Bill Acceptor",
"Coin\/Banknote Machine": "Coin\/Banknote Machine",
"Coin\/Bill Acceptor": "Coin\/Bill Acceptor",
"Command Center": "Command Center",
"Command Confirmation": "Command Confirmation",
"Command Type": "Command Type",
@ -349,7 +349,7 @@
"Creation Time": "Creation Time",
"Creator": "Creator",
"Credit Card": "Credit Card",
"Credit Card / Contactless": "Credit Card / Contactless",
"Credit Card \/ Contactless": "Credit Card \/ Contactless",
"Critical": "Critical",
"Current": "Current",
"Current Password": "Current Password",
@ -404,7 +404,7 @@
"Delta": "Delta",
"Deposit Bonus": "Deposit Bonus",
"Describe the repair or maintenance status...": "Describe the repair or maintenance status...",
"Description / Name": "Description / Name",
"Description \/ Name": "Description \/ Name",
"Deselect All": "Deselect All",
"Detail": "Detail",
"Details": "Details",
@ -446,7 +446,7 @@
"Draft": "Draft",
"Duration": "Duration",
"Duration (Seconds)": "Duration (Seconds)",
"E-Ticket (EasyCard/iPass)": "E-Ticket (EasyCard/iPass)",
"E-Ticket (EasyCard\/iPass)": "E-Ticket (EasyCard\/iPass)",
"E.SUN Bank Scan": "E.SUN Bank Scan",
"E.SUN Pay": "E.SUN Pay",
"E.SUN QR Pay": "E.SUN QR Pay",
@ -488,7 +488,7 @@
"Elevator rising": "Elevator rising",
"Elevator sensor error": "Elevator sensor error",
"Email": "Email",
"Emblem / Label": "Emblem / Label",
"Emblem \/ Label": "Emblem \/ Label",
"Employee": "Employee",
"Employee ID": "Employee ID",
"Empty": "Empty",
@ -500,7 +500,7 @@
"Enable Points Mechanism": "Enable Points Mechanism",
"Enabled": "Enabled",
"Enabled Features": "Enabled Features",
"Enabled/Disabled": "Enabled/Disabled",
"Enabled\/Disabled": "Enabled\/Disabled",
"End Date": "End Date",
"End Time": "End Time",
"Engineer": "Engineer",
@ -535,7 +535,7 @@
"Expected Expiry Date & Time": "Expected Expiry Date & Time",
"Expected Stock": "Expected Stock",
"Expired": "Expired",
"Expired / Disabled": "Expired / Disabled",
"Expired \/ Disabled": "Expired \/ Disabled",
"Expired Time": "Expired Time",
"Expires At": "Expires At",
"Expiring": "Expiring",
@ -566,87 +566,87 @@
"Fleet Avg OEE": "Fleet Avg OEE",
"Fleet Performance": "Fleet Performance",
"Flow ID": "Flow ID",
"Flow ID / Amount": "Flow ID / Amount",
"Flow ID / Date": "Flow ID / Date",
"Flow ID / Machine": "Flow ID / Machine",
"Flow ID / Order": "Flow ID / Order",
"Flow ID / Product": "Flow ID / Product",
"Flow ID / Slot": "Flow ID / Slot",
"Flow ID / Slot / Amount": "Flow ID / Slot / Amount",
"Flow ID / Slot / Date": "Flow ID / Slot / Date",
"Flow ID / Slot / Machine": "Flow ID / Slot / Machine",
"Flow ID / Slot / Order": "Flow ID / Slot / Order",
"Flow ID / Slot / Product": "Flow ID / Slot / Product",
"Flow ID / Slot / Product / Amount": "Flow ID / Slot / Product / Amount",
"Flow ID / Slot / Product / Amount / Date": "Flow ID / Slot / Product / Amount / Date",
"Flow ID / Slot / Product / Amount / Date / Order": "Flow ID / Slot / Product / Amount / Date / Order",
"Flow ID / Slot / Product / Amount / Date / Time": "Flow ID / Slot / Product / Amount / Date / Time",
"Flow ID / Slot / Product / Amount / Date / Time / Order": "Flow ID / Slot / Product / Amount / Date / Time / Order",
"Flow ID / Slot / Product / Amount / Machine": "Flow ID / Slot / Product / Amount / Machine",
"Flow ID / Slot / Product / Amount / Machine / Date": "Flow ID / Slot / Product / Amount / Machine / Date",
"Flow ID / Slot / Product / Amount / Machine / Date / Order": "Flow ID / Slot / Product / Amount / Machine / Date / Order",
"Flow ID / Slot / Product / Amount / Machine / Date / Time": "Flow ID / Slot / Product / Amount / Machine / Date / Time",
"Flow ID / Slot / Product / Amount / Machine / Date / Time / Order": "Flow ID / Slot / Product / Amount / Machine / Date / Time / Order",
"Flow ID / Slot / Product / Amount / Machine / Order": "Flow ID / Slot / Product / Amount / Machine / Order",
"Flow ID / Slot / Product / Amount / Machine / Time": "Flow ID / Slot / Product / Amount / Machine / Time",
"Flow ID / Slot / Product / Amount / Machine / Time / Order": "Flow ID / Slot / Product / Amount / Machine / Time / Order",
"Flow ID / Slot / Product / Amount / Order": "Flow ID / Slot / Product / Amount / Order",
"Flow ID / Slot / Product / Amount / Status": "Flow ID / Slot / Product / Amount / Status",
"Flow ID / Slot / Product / Amount / Status / Date": "Flow ID / Slot / Product / Amount / Status / Date",
"Flow ID / Slot / Product / Amount / Status / Date / Order": "Flow ID / Slot / Product / Amount / Status / Date / Order",
"Flow ID / Slot / Product / Amount / Status / Date / Time": "Flow ID / Slot / Product / Amount / Status / Date / Time",
"Flow ID / Slot / Product / Amount / Status / Date / Time / Order": "Flow ID / Slot / Product / Amount / Status / Date / Time / Order",
"Flow ID / Slot / Product / Amount / Status / Machine": "Flow ID / Slot / Product / Amount / Status / Machine",
"Flow ID / Slot / Product / Amount / Status / Machine / Date": "Flow ID / Slot / Product / Amount / Status / Machine / Date",
"Flow ID / Slot / Product / Amount / Status / Machine / Date / Order": "Flow ID / Slot / Product / Amount / Status / Machine / Date / Order",
"Flow ID / Slot / Product / Amount / Status / Machine / Date / Time": "Flow ID / Slot / Product / Amount / Status / Machine / Date / Time",
"Flow ID / Slot / Product / Amount / Status / Machine / Date / Time / Order": "Flow ID / Slot / Product / Amount / Status / Machine / Date / Time / Order",
"Flow ID / Slot / Product / Amount / Status / Machine / Date / Time / Order / Extra": "Flow ID / Slot / Product / Amount / Status / Machine / Date / Time / Order / Extra",
"Flow ID / Slot / Product / Amount / Status / Machine / Date / Time / Order / Extra / More": "Flow ID / Slot / Product / Amount / Status / Machine / Date / Time / Order / Extra / More",
"Flow ID / Slot / Product / Amount / Status / Machine / Date / Time / Order / Extra / More / Done": "Flow ID / Slot / Product / Amount / Status / Machine / Date / Time / Order / Extra / More / Done",
"Flow ID / Slot / Product / Amount / Status / Machine / Order": "Flow ID / Slot / Product / Amount / Status / Machine / Order",
"Flow ID / Slot / Product / Amount / Status / Machine / Time": "Flow ID / Slot / Product / Amount / Status / Machine / Time",
"Flow ID / Slot / Product / Amount / Status / Machine / Time / Order": "Flow ID / Slot / Product / Amount / Status / Machine / Time / Order",
"Flow ID / Slot / Product / Amount / Status / Order": "Flow ID / Slot / Product / Amount / Status / Order",
"Flow ID / Slot / Product / Amount / Status / Time": "Flow ID / Slot / Product / Amount / Status / Time",
"Flow ID / Slot / Product / Amount / Status / Time / Order": "Flow ID / Slot / Product / Amount / Status / Time / Order",
"Flow ID / Slot / Product / Amount / Time": "Flow ID / Slot / Product / Amount / Time",
"Flow ID / Slot / Product / Amount / Time / Order": "Flow ID / Slot / Product / Amount / Time / Order",
"Flow ID / Slot / Product / Date": "Flow ID / Slot / Product / Date",
"Flow ID / Slot / Product / Date / Order": "Flow ID / Slot / Product / Date / Order",
"Flow ID / Slot / Product / Date / Time": "Flow ID / Slot / Product / Date / Time",
"Flow ID / Slot / Product / Date / Time / Order": "Flow ID / Slot / Product / Date / Time / Order",
"Flow ID / Slot / Product / Machine": "Flow ID / Slot / Product / Machine",
"Flow ID / Slot / Product / Machine / Date": "Flow ID / Slot / Product / Machine / Date",
"Flow ID / Slot / Product / Machine / Date / Order": "Flow ID / Slot / Product / Machine / Date / Order",
"Flow ID / Slot / Product / Machine / Date / Time": "Flow ID / Slot / Product / Machine / Date / Time",
"Flow ID / Slot / Product / Machine / Date / Time / Order": "Flow ID / Slot / Product / Machine / Date / Time / Order",
"Flow ID / Slot / Product / Machine / Order": "Flow ID / Slot / Product / Machine / Order",
"Flow ID / Slot / Product / Machine / Time": "Flow ID / Slot / Product / Machine / Time",
"Flow ID / Slot / Product / Machine / Time / Order": "Flow ID / Slot / Product / Machine / Time / Order",
"Flow ID / Slot / Product / Order": "Flow ID / Slot / Product / Order",
"Flow ID / Slot / Product / Status": "Flow ID / Slot / Product / Status",
"Flow ID / Slot / Product / Status / Date": "Flow ID / Slot / Product / Status / Date",
"Flow ID / Slot / Product / Status / Date / Order": "Flow ID / Slot / Product / Status / Date / Order",
"Flow ID / Slot / Product / Status / Date / Time": "Flow ID / Slot / Product / Status / Date / Time",
"Flow ID / Slot / Product / Status / Date / Time / Order": "Flow ID / Slot / Product / Status / Date / Time / Order",
"Flow ID / Slot / Product / Status / Machine": "Flow ID / Slot / Product / Status / Machine",
"Flow ID / Slot / Product / Status / Machine / Date": "Flow ID / Slot / Product / Status / Machine / Date",
"Flow ID / Slot / Product / Status / Machine / Date / Order": "Flow ID / Slot / Product / Status / Machine / Date / Order",
"Flow ID / Slot / Product / Status / Machine / Date / Time": "Flow ID / Slot / Product / Status / Machine / Date / Time",
"Flow ID / Slot / Product / Status / Machine / Date / Time / Order": "Flow ID / Slot / Product / Status / Machine / Date / Time / Order",
"Flow ID / Slot / Product / Status / Machine / Order": "Flow ID / Slot / Product / Status / Machine / Order",
"Flow ID / Slot / Product / Status / Machine / Time": "Flow ID / Slot / Product / Status / Machine / Time",
"Flow ID / Slot / Product / Status / Machine / Time / Order": "Flow ID / Slot / Product / Status / Machine / Time / Order",
"Flow ID / Slot / Product / Status / Order": "Flow ID / Slot / Product / Status / Order",
"Flow ID / Slot / Product / Status / Time": "Flow ID / Slot / Product / Status / Time",
"Flow ID / Slot / Product / Status / Time / Order": "Flow ID / Slot / Product / Status / Time / Order",
"Flow ID / Slot / Product / Time": "Flow ID / Slot / Product / Time",
"Flow ID / Slot / Product / Time / Order": "Flow ID / Slot / Product / Time / Order",
"Flow ID / Slot / Status": "Flow ID / Slot / Status",
"Flow ID / Slot / Time": "Flow ID / Slot / Time",
"Flow ID / Status": "Flow ID / Status",
"Flow ID / Time": "Flow ID / Time",
"Flow ID \/ Amount": "Flow ID \/ Amount",
"Flow ID \/ Date": "Flow ID \/ Date",
"Flow ID \/ Machine": "Flow ID \/ Machine",
"Flow ID \/ Order": "Flow ID \/ Order",
"Flow ID \/ Product": "Flow ID \/ Product",
"Flow ID \/ Slot": "Flow ID \/ Slot",
"Flow ID \/ Slot \/ Amount": "Flow ID \/ Slot \/ Amount",
"Flow ID \/ Slot \/ Date": "Flow ID \/ Slot \/ Date",
"Flow ID \/ Slot \/ Machine": "Flow ID \/ Slot \/ Machine",
"Flow ID \/ Slot \/ Order": "Flow ID \/ Slot \/ Order",
"Flow ID \/ Slot \/ Product": "Flow ID \/ Slot \/ Product",
"Flow ID \/ Slot \/ Product \/ Amount": "Flow ID \/ Slot \/ Product \/ Amount",
"Flow ID \/ Slot \/ Product \/ Amount \/ Date": "Flow ID \/ Slot \/ Product \/ Amount \/ Date",
"Flow ID \/ Slot \/ Product \/ Amount \/ Date \/ Order": "Flow ID \/ Slot \/ Product \/ Amount \/ Date \/ Order",
"Flow ID \/ Slot \/ Product \/ Amount \/ Date \/ Time": "Flow ID \/ Slot \/ Product \/ Amount \/ Date \/ Time",
"Flow ID \/ Slot \/ Product \/ Amount \/ Date \/ Time \/ Order": "Flow ID \/ Slot \/ Product \/ Amount \/ Date \/ Time \/ Order",
"Flow ID \/ Slot \/ Product \/ Amount \/ Machine": "Flow ID \/ Slot \/ Product \/ Amount \/ Machine",
"Flow ID \/ Slot \/ Product \/ Amount \/ Machine \/ Date": "Flow ID \/ Slot \/ Product \/ Amount \/ Machine \/ Date",
"Flow ID \/ Slot \/ Product \/ Amount \/ Machine \/ Date \/ Order": "Flow ID \/ Slot \/ Product \/ Amount \/ Machine \/ Date \/ Order",
"Flow ID \/ Slot \/ Product \/ Amount \/ Machine \/ Date \/ Time": "Flow ID \/ Slot \/ Product \/ Amount \/ Machine \/ Date \/ Time",
"Flow ID \/ Slot \/ Product \/ Amount \/ Machine \/ Date \/ Time \/ Order": "Flow ID \/ Slot \/ Product \/ Amount \/ Machine \/ Date \/ Time \/ Order",
"Flow ID \/ Slot \/ Product \/ Amount \/ Machine \/ Order": "Flow ID \/ Slot \/ Product \/ Amount \/ Machine \/ Order",
"Flow ID \/ Slot \/ Product \/ Amount \/ Machine \/ Time": "Flow ID \/ Slot \/ Product \/ Amount \/ Machine \/ Time",
"Flow ID \/ Slot \/ Product \/ Amount \/ Machine \/ Time \/ Order": "Flow ID \/ Slot \/ Product \/ Amount \/ Machine \/ Time \/ Order",
"Flow ID \/ Slot \/ Product \/ Amount \/ Order": "Flow ID \/ Slot \/ Product \/ Amount \/ Order",
"Flow ID \/ Slot \/ Product \/ Amount \/ Status": "Flow ID \/ Slot \/ Product \/ Amount \/ Status",
"Flow ID \/ Slot \/ Product \/ Amount \/ Status \/ Date": "Flow ID \/ Slot \/ Product \/ Amount \/ Status \/ Date",
"Flow ID \/ Slot \/ Product \/ Amount \/ Status \/ Date \/ Order": "Flow ID \/ Slot \/ Product \/ Amount \/ Status \/ Date \/ Order",
"Flow ID \/ Slot \/ Product \/ Amount \/ Status \/ Date \/ Time": "Flow ID \/ Slot \/ Product \/ Amount \/ Status \/ Date \/ Time",
"Flow ID \/ Slot \/ Product \/ Amount \/ Status \/ Date \/ Time \/ Order": "Flow ID \/ Slot \/ Product \/ Amount \/ Status \/ Date \/ Time \/ Order",
"Flow ID \/ Slot \/ Product \/ Amount \/ Status \/ Machine": "Flow ID \/ Slot \/ Product \/ Amount \/ Status \/ Machine",
"Flow ID \/ Slot \/ Product \/ Amount \/ Status \/ Machine \/ Date": "Flow ID \/ Slot \/ Product \/ Amount \/ Status \/ Machine \/ Date",
"Flow ID \/ Slot \/ Product \/ Amount \/ Status \/ Machine \/ Date \/ Order": "Flow ID \/ Slot \/ Product \/ Amount \/ Status \/ Machine \/ Date \/ Order",
"Flow ID \/ Slot \/ Product \/ Amount \/ Status \/ Machine \/ Date \/ Time": "Flow ID \/ Slot \/ Product \/ Amount \/ Status \/ Machine \/ Date \/ Time",
"Flow ID \/ Slot \/ Product \/ Amount \/ Status \/ Machine \/ Date \/ Time \/ Order": "Flow ID \/ Slot \/ Product \/ Amount \/ Status \/ Machine \/ Date \/ Time \/ Order",
"Flow ID \/ Slot \/ Product \/ Amount \/ Status \/ Machine \/ Date \/ Time \/ Order \/ Extra": "Flow ID \/ Slot \/ Product \/ Amount \/ Status \/ Machine \/ Date \/ Time \/ Order \/ Extra",
"Flow ID \/ Slot \/ Product \/ Amount \/ Status \/ Machine \/ Date \/ Time \/ Order \/ Extra \/ More": "Flow ID \/ Slot \/ Product \/ Amount \/ Status \/ Machine \/ Date \/ Time \/ Order \/ Extra \/ More",
"Flow ID \/ Slot \/ Product \/ Amount \/ Status \/ Machine \/ Date \/ Time \/ Order \/ Extra \/ More \/ Done": "Flow ID \/ Slot \/ Product \/ Amount \/ Status \/ Machine \/ Date \/ Time \/ Order \/ Extra \/ More \/ Done",
"Flow ID \/ Slot \/ Product \/ Amount \/ Status \/ Machine \/ Order": "Flow ID \/ Slot \/ Product \/ Amount \/ Status \/ Machine \/ Order",
"Flow ID \/ Slot \/ Product \/ Amount \/ Status \/ Machine \/ Time": "Flow ID \/ Slot \/ Product \/ Amount \/ Status \/ Machine \/ Time",
"Flow ID \/ Slot \/ Product \/ Amount \/ Status \/ Machine \/ Time \/ Order": "Flow ID \/ Slot \/ Product \/ Amount \/ Status \/ Machine \/ Time \/ Order",
"Flow ID \/ Slot \/ Product \/ Amount \/ Status \/ Order": "Flow ID \/ Slot \/ Product \/ Amount \/ Status \/ Order",
"Flow ID \/ Slot \/ Product \/ Amount \/ Status \/ Time": "Flow ID \/ Slot \/ Product \/ Amount \/ Status \/ Time",
"Flow ID \/ Slot \/ Product \/ Amount \/ Status \/ Time \/ Order": "Flow ID \/ Slot \/ Product \/ Amount \/ Status \/ Time \/ Order",
"Flow ID \/ Slot \/ Product \/ Amount \/ Time": "Flow ID \/ Slot \/ Product \/ Amount \/ Time",
"Flow ID \/ Slot \/ Product \/ Amount \/ Time \/ Order": "Flow ID \/ Slot \/ Product \/ Amount \/ Time \/ Order",
"Flow ID \/ Slot \/ Product \/ Date": "Flow ID \/ Slot \/ Product \/ Date",
"Flow ID \/ Slot \/ Product \/ Date \/ Order": "Flow ID \/ Slot \/ Product \/ Date \/ Order",
"Flow ID \/ Slot \/ Product \/ Date \/ Time": "Flow ID \/ Slot \/ Product \/ Date \/ Time",
"Flow ID \/ Slot \/ Product \/ Date \/ Time \/ Order": "Flow ID \/ Slot \/ Product \/ Date \/ Time \/ Order",
"Flow ID \/ Slot \/ Product \/ Machine": "Flow ID \/ Slot \/ Product \/ Machine",
"Flow ID \/ Slot \/ Product \/ Machine \/ Date": "Flow ID \/ Slot \/ Product \/ Machine \/ Date",
"Flow ID \/ Slot \/ Product \/ Machine \/ Date \/ Order": "Flow ID \/ Slot \/ Product \/ Machine \/ Date \/ Order",
"Flow ID \/ Slot \/ Product \/ Machine \/ Date \/ Time": "Flow ID \/ Slot \/ Product \/ Machine \/ Date \/ Time",
"Flow ID \/ Slot \/ Product \/ Machine \/ Date \/ Time \/ Order": "Flow ID \/ Slot \/ Product \/ Machine \/ Date \/ Time \/ Order",
"Flow ID \/ Slot \/ Product \/ Machine \/ Order": "Flow ID \/ Slot \/ Product \/ Machine \/ Order",
"Flow ID \/ Slot \/ Product \/ Machine \/ Time": "Flow ID \/ Slot \/ Product \/ Machine \/ Time",
"Flow ID \/ Slot \/ Product \/ Machine \/ Time \/ Order": "Flow ID \/ Slot \/ Product \/ Machine \/ Time \/ Order",
"Flow ID \/ Slot \/ Product \/ Order": "Flow ID \/ Slot \/ Product \/ Order",
"Flow ID \/ Slot \/ Product \/ Status": "Flow ID \/ Slot \/ Product \/ Status",
"Flow ID \/ Slot \/ Product \/ Status \/ Date": "Flow ID \/ Slot \/ Product \/ Status \/ Date",
"Flow ID \/ Slot \/ Product \/ Status \/ Date \/ Order": "Flow ID \/ Slot \/ Product \/ Status \/ Date \/ Order",
"Flow ID \/ Slot \/ Product \/ Status \/ Date \/ Time": "Flow ID \/ Slot \/ Product \/ Status \/ Date \/ Time",
"Flow ID \/ Slot \/ Product \/ Status \/ Date \/ Time \/ Order": "Flow ID \/ Slot \/ Product \/ Status \/ Date \/ Time \/ Order",
"Flow ID \/ Slot \/ Product \/ Status \/ Machine": "Flow ID \/ Slot \/ Product \/ Status \/ Machine",
"Flow ID \/ Slot \/ Product \/ Status \/ Machine \/ Date": "Flow ID \/ Slot \/ Product \/ Status \/ Machine \/ Date",
"Flow ID \/ Slot \/ Product \/ Status \/ Machine \/ Date \/ Order": "Flow ID \/ Slot \/ Product \/ Status \/ Machine \/ Date \/ Order",
"Flow ID \/ Slot \/ Product \/ Status \/ Machine \/ Date \/ Time": "Flow ID \/ Slot \/ Product \/ Status \/ Machine \/ Date \/ Time",
"Flow ID \/ Slot \/ Product \/ Status \/ Machine \/ Date \/ Time \/ Order": "Flow ID \/ Slot \/ Product \/ Status \/ Machine \/ Date \/ Time \/ Order",
"Flow ID \/ Slot \/ Product \/ Status \/ Machine \/ Order": "Flow ID \/ Slot \/ Product \/ Status \/ Machine \/ Order",
"Flow ID \/ Slot \/ Product \/ Status \/ Machine \/ Time": "Flow ID \/ Slot \/ Product \/ Status \/ Machine \/ Time",
"Flow ID \/ Slot \/ Product \/ Status \/ Machine \/ Time \/ Order": "Flow ID \/ Slot \/ Product \/ Status \/ Machine \/ Time \/ Order",
"Flow ID \/ Slot \/ Product \/ Status \/ Order": "Flow ID \/ Slot \/ Product \/ Status \/ Order",
"Flow ID \/ Slot \/ Product \/ Status \/ Time": "Flow ID \/ Slot \/ Product \/ Status \/ Time",
"Flow ID \/ Slot \/ Product \/ Status \/ Time \/ Order": "Flow ID \/ Slot \/ Product \/ Status \/ Time \/ Order",
"Flow ID \/ Slot \/ Product \/ Time": "Flow ID \/ Slot \/ Product \/ Time",
"Flow ID \/ Slot \/ Product \/ Time \/ Order": "Flow ID \/ Slot \/ Product \/ Time \/ Order",
"Flow ID \/ Slot \/ Status": "Flow ID \/ Slot \/ Status",
"Flow ID \/ Slot \/ Time": "Flow ID \/ Slot \/ Time",
"Flow ID \/ Status": "Flow ID \/ Status",
"Flow ID \/ Time": "Flow ID \/ Time",
"Force End Session": "Force End Session",
"Force end current session": "Force end current session",
"From": "From",
@ -702,7 +702,7 @@
"Immediate": "Immediate",
"In Stock": "In Stock",
"Inactive": "Inactive",
"Includes Credit Card/Mobile Pay": "Includes Credit Card/Mobile Pay",
"Includes Credit Card\/Mobile Pay": "Includes Credit Card\/Mobile Pay",
"Indefinite": "Indefinite",
"Info": "Info",
"Initial Admin Account": "Initial Admin Account",
@ -721,8 +721,8 @@
"Invoice Date": "Invoice Date",
"Invoice Information": "Invoice Information",
"Invoice Number": "Invoice Number",
"Invoice Number / Flow ID": "Invoice Number / Flow ID",
"Invoice Number / Time": "Invoice Number / Time",
"Invoice Number \/ Flow ID": "Invoice Number \/ Flow ID",
"Invoice Number \/ Time": "Invoice Number \/ Time",
"Invoice Status": "Invoice Status",
"Issued At": "Issued At",
"Item List": "Item List",
@ -794,17 +794,17 @@
"Low stock and out-of-stock alerts": "Low stock and out-of-stock alerts",
"Loyalty & Features": "Loyalty & Features",
"Machine": "Machine",
"Machine / Date": "Machine / Date",
"Machine / Employee": "Machine / Employee",
"Machine / Pass Code": "Machine / Pass Code",
"Machine / Slot": "Machine / Slot",
"Machine \/ Date": "Machine \/ Date",
"Machine \/ Employee": "Machine \/ Employee",
"Machine \/ Pass Code": "Machine \/ Pass Code",
"Machine \/ Slot": "Machine \/ Slot",
"Machine Advertisement Settings": "Machine Advertisement Settings",
"Machine Count": "Machine Count",
"Machine Details": "Machine Details",
"Machine Distribution": "Machine Distribution",
"Machine Distribution Map": "Machine Distribution Map",
"Machine Flow ID": "Machine Flow ID",
"Machine Flow ID / Time": "Machine Flow ID / Time",
"Machine Flow ID \/ Time": "Machine Flow ID \/ Time",
"Machine Images": "Machine Images",
"Machine Info": "Machine Info",
"Machine Information": "Machine Information",
@ -945,9 +945,9 @@
"Movement History": "Movement History",
"Movement Logs": "Movement Logs",
"Multilingual Names": "Multilingual Names",
"N/A": "N/A",
"N\/A": "N\/A",
"Name": "Name",
"Name / Machine": "Name / Machine",
"Name \/ Machine": "Name \/ Machine",
"Name in English": "Name in English",
"Name in Japanese": "Name in Japanese",
"Name in Traditional Chinese": "Name in Traditional Chinese",
@ -1082,7 +1082,7 @@
"Order Items": "Order Items",
"Order Management": "Order Management",
"Order No.": "Order No.",
"Order Number / Time": "Order Number / Time",
"Order Number \/ Time": "Order Number \/ Time",
"Order Status": "Order Status",
"Order Time": "Order Time",
"Order already completed": "Order already completed",
@ -1208,18 +1208,18 @@
"Points": "Points",
"Points Settings": "Points Settings",
"Points toggle": "Points toggle",
"Points/Voucher": "Points/Voucher",
"Points\/Voucher": "Points\/Voucher",
"Position": "Position",
"Prepared": "Prepared",
"Preparing": "Preparing",
"Preview": "Preview",
"Previous": "Previous",
"Price / Member": "Price / Member",
"Price \/ Member": "Price \/ Member",
"Pricing Information": "Pricing Information",
"Print Invoice": "Print Invoice",
"Product": "Product",
"Product / Slot": "Product / Slot",
"Product / Stock": "Product / Stock",
"Product \/ Slot": "Product \/ Slot",
"Product \/ Stock": "Product \/ Stock",
"Product Count": "Product Count",
"Product Details": "Product Details",
"Product ID": "Product ID",
@ -1238,7 +1238,7 @@
"Product updated successfully": "Product updated successfully",
"Production Company": "Production Company",
"Products": "Products",
"Products / Stock": "Products / Stock",
"Products \/ Stock": "Products \/ Stock",
"Profile": "Profile",
"Profile Information": "Profile Information",
"Profile Settings": "Profile Settings",
@ -1384,13 +1384,13 @@
"Schedule": "Schedule",
"Search Company Title...": "Search Company Title...",
"Search Company...": "Search Company...",
"Search Flow ID / Slot...": "Search Flow ID / Slot...",
"Search Invoice No / Flow ID...": "Search Invoice No / Flow ID...",
"Search Flow ID \/ Slot...": "Search Flow ID \/ Slot...",
"Search Invoice No \/ Flow ID...": "Search Invoice No \/ Flow ID...",
"Search Machine...": "Search Machine...",
"Search Order No / Flow ID / Invoice...": "Search Order No / Flow ID / Invoice...",
"Search Order No / Cards & Codes...": "Search Order No / Cards & Codes...",
"Search Order No \/ Flow ID \/ Invoice...": "Search Order No \/ Flow ID \/ Invoice...",
"Search Order No \/ Cards & Codes...": "Search Order No \/ Cards & Codes...",
"Search Product": "Search Product",
"Search Product / Slot...": "Search Product / Slot...",
"Search Product \/ Slot...": "Search Product \/ Slot...",
"Search accounts...": "Search accounts...",
"Search by ID or Name": "Search by ID or Name",
"Search by ID or Name...": "Search by ID or Name...",
@ -1398,7 +1398,7 @@
"Search by ID, Name or UID...": "Search by ID, Name or UID...",
"Search by code, machine name or serial...": "Search by code, machine name or serial...",
"Search by code, name or machine...": "Search by code, name or machine...",
"Search by name or S/N...": "Search by name or S/N...",
"Search by name or S\/N...": "Search by name or S\/N...",
"Search by name...": "Search by name...",
"Search cargo lane": "Search cargo lane",
"Search categories...": "Search categories...",
@ -1476,7 +1476,7 @@
"Sign in to your account": "Sign in to your account",
"Signed in as": "Signed in as",
"Slot": "Slot",
"Slot / Product": "Slot / Product",
"Slot \/ Product": "Slot \/ Product",
"Slot Mechanism (default: Conveyor, check for Spring)": "Slot Mechanism (default: Conveyor, check for Spring)",
"Slot No": "Slot No",
"Slot Status": "Slot Status",
@ -1527,15 +1527,15 @@
"Start Time": "Start Time",
"Statistics": "Statistics",
"Status": "Status",
"Status / Invoice": "Status / Invoice",
"Status / Temp / Sub / Card / Scan": "Status / Temp / Sub / Card / Scan",
"Status \/ Invoice": "Status \/ Invoice",
"Status \/ Temp \/ Sub \/ Card \/ Scan": "Status \/ Temp \/ Sub \/ Card \/ Scan",
"Status Timeline": "Status Timeline",
"Status updated successfully": "Status updated successfully",
"Stock": "Stock",
"Stock & Expiry": "Stock & Expiry",
"Stock & Expiry Management": "Stock & Expiry Management",
"Stock & Expiry Overview": "Stock & Expiry Overview",
"Stock / Capacity": "Stock / Capacity",
"Stock \/ Capacity": "Stock \/ Capacity",
"Stock In": "Stock In",
"Stock Level": "Stock Level",
"Stock Level > 50%": "Stock Level > 50%",
@ -1565,7 +1565,7 @@
"Store ID": "Store ID",
"Store Management": "Store Management",
"StoreID": "StoreID",
"Sub / Card / Scan": "Sub / Card / Scan",
"Sub \/ Card \/ Scan": "Sub \/ Card \/ Scan",
"Sub Account Management": "Sub Account Management",
"Sub Account Roles": "Sub Account Roles",
"Sub Accounts": "Sub Accounts",
@ -1663,7 +1663,7 @@
"Track": "Track",
"Track Channel Limit": "Track Channel Limit",
"Track Limit": "Track Limit",
"Track Limit (Track/Spring)": "Track Limit (Track/Spring)",
"Track Limit (Track\/Spring)": "Track Limit (Track\/Spring)",
"Track device health and maintenance history": "Track device health and maintenance history",
"Track stock levels, stock-in orders, and movement history": "Track stock levels, stock-in orders, and movement history",
"Track stock-in orders and movement history": "Track stock-in orders and movement history",
@ -1696,7 +1696,7 @@
"Type to search or leave blank for system defaults.": "Type to search or leave blank for system defaults.",
"UI Elements": "UI Elements",
"Unassigned": "Unassigned",
"Unassigned / No Change": "Unassigned / No Change",
"Unassigned \/ No Change": "Unassigned \/ No Change",
"Unauthorized Status": "Unauthorized Status",
"Unauthorized login attempt: :account": "Unauthorized login attempt: :account",
"Unauthorized: Account not authorized for this machine": "Unauthorized: Account not authorized for this machine",
@ -1853,7 +1853,7 @@
"data-config.sub-account-roles": "Sub Account Roles",
"data-config.sub-accounts": "Sub Accounts",
"disabled": "disabled",
"e.g. 500ml / 300g": "e.g. 500ml / 300g",
"e.g. 500ml \/ 300g": "e.g. 500ml \/ 300g",
"e.g. John Doe": "e.g. John Doe",
"e.g. Main Warehouse": "e.g. Main Warehouse",
"e.g. TWSTAR": "e.g. TWSTAR",
@ -2021,7 +2021,7 @@
"Select Product for Analysis": "Select Product for Analysis",
"All Products (ALL)": "All Products (ALL)",
"Tenant Company": "Tenant Company",
"Cross-Company / Headquarter Global Stats": "Cross-Company / Headquarter Global Stats",
"Cross-Company \/ Headquarter Global Stats": "Cross-Company \/ Headquarter Global Stats",
"Product Sales & Profit Trend": "Product Sales & Profit Trend",
"Daily operational variance curve for selected timeframe": "Daily operational variance curve for selected timeframe",
"Detailed Analysis Data": "Detailed Analysis Data",
@ -2138,5 +2138,32 @@
"Effective Alert Types": "Effective Alert Types",
"Machine Alert Settings": "Machine Alert Settings",
"Configure alert types and temperature thresholds": "Configure alert types and temperature thresholds",
"Machine model saved successfully.": "Machine model saved successfully."
"Machine model saved successfully.": "Machine model saved successfully.",
"Replenishment Order": "Replenishment Order",
"Transfer Order": "Transfer Order",
"Ready to print": "Ready to print",
"Print": "Print",
"Platform Operator": "Platform Operator",
"Vending Machine Product Replenishment": "Vending Machine Product Replenishment",
"Warehouse to Warehouse Transfer": "Warehouse to Warehouse Transfer",
"Machine to Warehouse Return": "Machine to Warehouse Return",
"Order Number": "Order Number",
"Source Machine": "Source Machine",
"Assigned Personnel": "Assigned Personnel",
"Print Time": "Print Time",
"Stock Snap": "Stock Snap",
"Replenish Qty": "Replenish Qty",
"Transfer Qty": "Transfer Qty",
"Check": "Check",
"Actual Qty": "Actual Qty",
"Print Notice": "Print Notice",
"Please make sure to enable \"Background graphics\" in your browser print settings to print product images and styled components correctly.": "Please make sure to enable \"Background graphics\" in your browser print settings to print product images and styled components correctly.",
"Prepared By": "Prepared By",
"Warehouse Stock Out": "Warehouse Stock Out",
"Courier\/Replenisher": "Courier\/Replenisher",
"Machine Inbound Confirmation": "Machine Inbound Confirmation",
"Transfer Out Confirmation": "Transfer Out Confirmation",
"Courier\/Dispatcher": "Courier\/Dispatcher",
"Transfer In Confirmation": "Transfer In Confirmation",
"Print Order": "Print Order"
}

View File

@ -31,9 +31,9 @@
"Account deleted successfully.": "アカウントが正常に削除されました。",
"Account updated successfully.": "アカウントが正常に更新されました。",
"Account:": "アカウント:",
"Accounts / Machines": "アカウント / 機器",
"Accounts \/ Machines": "アカウント \/ 機器",
"Action": "アクション",
"Action / Target": "操作 / 対象",
"Action \/ Target": "操作 \/ 対象",
"Actions": "操作",
"Active": "有効",
"Active Slots": "使用中のスロット",
@ -68,7 +68,7 @@
"Administrator": "管理者",
"Advertisement List": "広告一覧",
"Advertisement Management": "広告管理",
"Advertisement Video/Image": "広告動画/画像",
"Advertisement Video\/Image": "広告動画\/画像",
"Advertisement assigned successfully": "広告の割り当てが完了しました",
"Advertisement assigned successfully.": "広告の割り当てが完了しました。",
"Advertisement created successfully": "広告が作成されました",
@ -106,7 +106,7 @@
"All issues marked as resolved.": "すべての問題が解決済みとしてマークされました。",
"All slots are fully stocked": "すべてのスロットが補充完了しました",
"Amount": "金額",
"Amount / Payment": "金額 / 支払い",
"Amount \/ Payment": "金額 \/ 支払い",
"An error occurred while saving.": "保存中にエラーが発生しました。",
"Analysis Management": "分析管理",
"Analysis Permissions": "分析権限",
@ -186,7 +186,7 @@
"Back to List": "一覧に戻る",
"Badge Settings": "バッジ設定",
"Barcode": "バーコード",
"Barcode / Material": "バーコード / 資材",
"Barcode \/ Material": "バーコード \/ 資材",
"Based on Hours": "時間ベースで計算",
"Basic Information": "基本情報",
"Basic Settings": "基本設定",
@ -243,7 +243,7 @@
"Change Note": "変動備考",
"Change Stock": "お釣り在庫",
"Channel Limits": "スロット上限",
"Channel Limits (Track/Spring)": "スロット上限 (ベルト/スプリング)",
"Channel Limits (Track\/Spring)": "スロット上限 (ベルト\/スプリング)",
"Channel Limits Configuration": "スロット上限設定",
"ChannelId": "ChannelId",
"ChannelSecret": "ChannelSecret",
@ -261,8 +261,8 @@
"Code": "コード",
"Code Copied": "コードをコピーしました",
"Coin Acceptor": "硬貨機",
"Coin/Banknote Machine": "硬貨・紙幣機",
"Coin/Bill Acceptor": "硬貨・紙幣機",
"Coin\/Banknote Machine": "硬貨・紙幣機",
"Coin\/Bill Acceptor": "硬貨・紙幣機",
"Command Center": "コマンドセンター",
"Command Confirmation": "コマンド確認",
"Command Type": "コマンドタイプ",
@ -349,7 +349,7 @@
"Creation Time": "作成時間",
"Creator": "作成者",
"Credit Card": "クレジットカード",
"Credit Card / Contactless": "クレジットカード/非接触決済対応",
"Credit Card \/ Contactless": "クレジットカード\/非接触決済対応",
"Critical": "深刻",
"Current": "現在",
"Current Password": "現在のパスワード",
@ -404,7 +404,7 @@
"Delta": "変動量",
"Deposit Bonus": "チャージボーナス",
"Describe the repair or maintenance status...": "修理やメンテナンスの状況を説明してください...",
"Description / Name": "説明 / 名前",
"Description \/ Name": "説明 \/ 名前",
"Deselect All": "すべて解除",
"Detail": "詳細",
"Details": "明細",
@ -446,7 +446,7 @@
"Draft": "下書き",
"Duration": "時間",
"Duration (Seconds)": "再生秒数",
"E-Ticket (EasyCard/iPass)": "電子チケット (EasyCard/iPass)",
"E-Ticket (EasyCard\/iPass)": "電子チケット (EasyCard\/iPass)",
"E.SUN Bank Scan": "玉山銀行スキャン",
"E.SUN Pay": "玉山 Pay",
"E.SUN QR Pay": "玉山銀行QR決済",
@ -488,7 +488,7 @@
"Elevator rising": "昇降プラットフォーム上昇中",
"Elevator sensor error": "昇降箱センサー異常",
"Email": "メールアドレス",
"Emblem / Label": "エンブレム / ラベル",
"Emblem \/ Label": "エンブレム \/ ラベル",
"Employee": "従業員",
"Employee ID": "社員番号",
"Empty": "空",
@ -500,7 +500,7 @@
"Enable Points Mechanism": "ポイント機能を有効化",
"Enabled": "有効済み",
"Enabled Features": "有効な機能",
"Enabled/Disabled": "有効/無効",
"Enabled\/Disabled": "有効\/無効",
"End Date": "終了日",
"End Time": "終了時間",
"Engineer": "メンテナンス担当者",
@ -535,7 +535,7 @@
"Expected Expiry Date & Time": "予想期限日時",
"Expected Stock": "予想在庫",
"Expired": "期限切れ",
"Expired / Disabled": "期限切れ / 無効",
"Expired \/ Disabled": "期限切れ \/ 無効",
"Expired Time": "掲載終了時間",
"Expires At": "有効期限",
"Expiring": "期限間近",
@ -566,87 +566,87 @@
"Fleet Avg OEE": "全機器平均 OEE",
"Fleet Performance": "全機器パフォーマンス",
"Flow ID": "フローID",
"Flow ID / Amount": "フローID / 金額",
"Flow ID / Date": "フローID / 日付",
"Flow ID / Machine": "フローID / 機器",
"Flow ID / Order": "フローID / 関連注文",
"Flow ID / Product": "フローID / 商品",
"Flow ID / Slot": "フローID / スロット",
"Flow ID / Slot / Amount": "フローID / スロット / 金額",
"Flow ID / Slot / Date": "フローID / スロット / 日付",
"Flow ID / Slot / Machine": "フローID / スロット / 機器",
"Flow ID / Slot / Order": "フローID / スロット / 関連注文",
"Flow ID / Slot / Product": "フローID / スロット / 商品",
"Flow ID / Slot / Product / Amount": "フローID / スロット / 商品 / 金額",
"Flow ID / Slot / Product / Amount / Date": "フローID / スロット / 商品 / 金額 / 日付",
"Flow ID / Slot / Product / Amount / Date / Order": "フローID / スロット / 商品 / 金額 / 日付 / 関連注文",
"Flow ID / Slot / Product / Amount / Date / Time": "フローID / スロット / 商品 / 金額 / 日付 / 時間",
"Flow ID / Slot / Product / Amount / Date / Time / Order": "フローID / スロット / 商品 / 金額 / 日付 / 時間 / 関連注文",
"Flow ID / Slot / Product / Amount / Machine": "フローID / スロット / 商品 / 金額 / 機器",
"Flow ID / Slot / Product / Amount / Machine / Date": "フローID / スロット / 商品 / 金額 / 機器 / 日付",
"Flow ID / Slot / Product / Amount / Machine / Date / Order": "フローID / スロット / 商品 / 金額 / 機器 / 日付 / 関連注文",
"Flow ID / Slot / Product / Amount / Machine / Date / Time": "フローID / スロット / 商品 / 金額 / 機器 / 日付 / 時間",
"Flow ID / Slot / Product / Amount / Machine / Date / Time / Order": "フローID / スロット / 商品 / 金額 / 機器 / 日付 / 時間 / 関連注文",
"Flow ID / Slot / Product / Amount / Machine / Order": "フローID / スロット / 商品 / 金額 / 機器 / 関連注文",
"Flow ID / Slot / Product / Amount / Machine / Time": "フローID / スロット / 商品 / 金額 / 機器 / 時間",
"Flow ID / Slot / Product / Amount / Machine / Time / Order": "フローID / スロット / 商品 / 金額 / 機器 / 時間 / 関連注文",
"Flow ID / Slot / Product / Amount / Order": "フローID / スロット / 商品 / 金額 / 関連注文",
"Flow ID / Slot / Product / Amount / Status": "フローID / スロット / 商品 / 金額 / ステータス",
"Flow ID / Slot / Product / Amount / Status / Date": "フローID / スロット / 商品 / 金額 / ステータス / 日付",
"Flow ID / Slot / Product / Amount / Status / Date / Order": "フローID / スロット / 商品 / 金額 / ステータス / 日付 / 関連注文",
"Flow ID / Slot / Product / Amount / Status / Date / Time": "フローID / スロット / 商品 / 金額 / ステータス / 日付 / 時間",
"Flow ID / Slot / Product / Amount / Status / Date / Time / Order": "フローID / スロット / 商品 / 金額 / ステータス / 日付 / 時間 / 関連注文",
"Flow ID / Slot / Product / Amount / Status / Machine": "フローID / スロット / 商品 / 金額 / ステータス / 機器",
"Flow ID / Slot / Product / Amount / Status / Machine / Date": "フローID / スロット / 商品 / 金額 / ステータス / 機器 / 日付",
"Flow ID / Slot / Product / Amount / Status / Machine / Date / Order": "フローID / スロット / 商品 / 金額 / ステータス / 機器 / 日付 / 関連注文",
"Flow ID / Slot / Product / Amount / Status / Machine / Date / Time": "フローID / スロット / 商品 / 金額 / ステータス / 機器 / 日付 / 時間",
"Flow ID / Slot / Product / Amount / Status / Machine / Date / Time / Order": "フローID / スロット / 商品 / 金額 / ステータス / 機器 / 日付 / 時間 / 関連注文",
"Flow ID / Slot / Product / Amount / Status / Machine / Date / Time / Order / Extra": "フローID / スロット / 商品 / 金額 / ステータス / 機器 / 日付 / 時間 / 関連注文 / 追加",
"Flow ID / Slot / Product / Amount / Status / Machine / Date / Time / Order / Extra / More": "フローID / スロット / 商品 / 金額 / ステータス / 機器 / 日付 / 時間 / 関連注文 / 追加 / さらに",
"Flow ID / Slot / Product / Amount / Status / Machine / Date / Time / Order / Extra / More / Done": "フローID / スロット / 商品 / 金額 / ステータス / 機器 / 日付 / 時間 / 関連注文 / 追加 / さらに / 完了",
"Flow ID / Slot / Product / Amount / Status / Machine / Order": "フローID / スロット / 商品 / 金額 / ステータス / 機器 / 関連注文",
"Flow ID / Slot / Product / Amount / Status / Machine / Time": "フローID / スロット / 商品 / 金額 / ステータス / 機器 / 時間",
"Flow ID / Slot / Product / Amount / Status / Machine / Time / Order": "フローID / スロット / 商品 / 金額 / ステータス / 機器 / 時間 / 関連注文",
"Flow ID / Slot / Product / Amount / Status / Order": "フローID / スロット / 商品 / 金額 / ステータス / 関連注文",
"Flow ID / Slot / Product / Amount / Status / Time": "フローID / スロット / 商品 / 金額 / ステータス / 時間",
"Flow ID / Slot / Product / Amount / Status / Time / Order": "フローID / スロット / 商品 / 金額 / ステータス / 時間 / 関連注文",
"Flow ID / Slot / Product / Amount / Time": "フローID / スロット / 商品 / 金額 / 時間",
"Flow ID / Slot / Product / Amount / Time / Order": "フローID / スロット / 商品 / 時間 / 関連注文",
"Flow ID / Slot / Product / Date": "フローID / スロット / 商品 / 日付",
"Flow ID / Slot / Product / Date / Order": "フローID / スロット / 商品 / 日付 / 関連注文",
"Flow ID / Slot / Product / Date / Time": "フローID / スロット / 商品 / 日付 / 時間",
"Flow ID / Slot / Product / Date / Time / Order": "フローID / スロット / 商品 / 日付 / 時間 / 関連注文",
"Flow ID / Slot / Product / Machine": "フローID / スロット / 商品 / 機器",
"Flow ID / Slot / Product / Machine / Date": "フローID / スロット / 商品 / 機器 / 日付",
"Flow ID / Slot / Product / Machine / Date / Order": "フローID / スロット / 商品 / 機器 / 日付 / 関連注文",
"Flow ID / Slot / Product / Machine / Date / Time": "フローID / スロット / 商品 / 機器 / 日付 / 時間",
"Flow ID / Slot / Product / Machine / Date / Time / Order": "フローID / スロット / 商品 / 機器 / 日付 / 時間 / 関連注文",
"Flow ID / Slot / Product / Machine / Order": "フローID / スロット / 商品 / 機器 / 関連注文",
"Flow ID / Slot / Product / Machine / Time": "フローID / スロット / 商品 / 機器 / 時間",
"Flow ID / Slot / Product / Machine / Time / Order": "フローID / スロット / 商品 / 機器 / 時間 / 関連注文",
"Flow ID / Slot / Product / Order": "フローID / スロット / 商品 / 関連注文",
"Flow ID / Slot / Product / Status": "フローID / スロット / 商品 / ステータス",
"Flow ID / Slot / Product / Status / Date": "フローID / スロット / 商品 / ステータス / 日付",
"Flow ID / Slot / Product / Status / Date / Order": "フローID / スロット / 商品 / ステータス / 日付 / 関連注文",
"Flow ID / Slot / Product / Status / Date / Time": "フローID / スロット / 商品 / ステータス / 日付 / 時間",
"Flow ID / Slot / Product / Status / Date / Time / Order": "フローID / スロット / 商品 / ステータス / 日付 / 時間 / 関連注文",
"Flow ID / Slot / Product / Status / Machine": "フローID / スロット / 商品 / ステータス / 機器",
"Flow ID / Slot / Product / Status / Machine / Date": "フローID / スロット / 商品 / ステータス / 機器 / 日付",
"Flow ID / Slot / Product / Status / Machine / Date / Order": "フローID / スロット / 商品 / ステータス / 機器 / 日付 / 関連注文",
"Flow ID / Slot / Product / Status / Machine / Date / Time": "フローID / スロット / 商品 / ステータス / 機器 / 日付 / 時間",
"Flow ID / Slot / Product / Status / Machine / Date / Time / Order": "フローID / スロット / 商品 / ステータス / 機器 / 日付 / 時間 / 関連注文",
"Flow ID / Slot / Product / Status / Machine / Order": "フローID / スロット / 商品 / ステータス / 機器 / 関連注文",
"Flow ID / Slot / Product / Status / Machine / Time": "フローID / スロット / 商品 / ステータス / 機器 / 時間",
"Flow ID / Slot / Product / Status / Machine / Time / Order": "フローID / スロット / 商品 / ステータス / 機器 / 時間 / 関連注文",
"Flow ID / Slot / Product / Status / Order": "フローID / スロット / 商品 / ステータス / 関連注文",
"Flow ID / Slot / Product / Status / Time": "フローID / スロット / 商品 / ステータス / 時間",
"Flow ID / Slot / Product / Status / Time / Order": "フローID / スロット / 商品 / ステータス / 時間 / 関連注文",
"Flow ID / Slot / Product / Time": "フローID / スロット / 商品 / 時間",
"Flow ID / Slot / Product / Time / Order": "フローID / スロット / 商品 / 時間 / 関連注文",
"Flow ID / Slot / Status": "フローID / スロット / ステータス",
"Flow ID / Slot / Time": "フローID / スロット / 時間",
"Flow ID / Status": "フローID / ステータス",
"Flow ID / Time": "フローID / 時間",
"Flow ID \/ Amount": "フローID \/ 金額",
"Flow ID \/ Date": "フローID \/ 日付",
"Flow ID \/ Machine": "フローID \/ 機器",
"Flow ID \/ Order": "フローID \/ 関連注文",
"Flow ID \/ Product": "フローID \/ 商品",
"Flow ID \/ Slot": "フローID \/ スロット",
"Flow ID \/ Slot \/ Amount": "フローID \/ スロット \/ 金額",
"Flow ID \/ Slot \/ Date": "フローID \/ スロット \/ 日付",
"Flow ID \/ Slot \/ Machine": "フローID \/ スロット \/ 機器",
"Flow ID \/ Slot \/ Order": "フローID \/ スロット \/ 関連注文",
"Flow ID \/ Slot \/ Product": "フローID \/ スロット \/ 商品",
"Flow ID \/ Slot \/ Product \/ Amount": "フローID \/ スロット \/ 商品 \/ 金額",
"Flow ID \/ Slot \/ Product \/ Amount \/ Date": "フローID \/ スロット \/ 商品 \/ 金額 \/ 日付",
"Flow ID \/ Slot \/ Product \/ Amount \/ Date \/ Order": "フローID \/ スロット \/ 商品 \/ 金額 \/ 日付 \/ 関連注文",
"Flow ID \/ Slot \/ Product \/ Amount \/ Date \/ Time": "フローID \/ スロット \/ 商品 \/ 金額 \/ 日付 \/ 時間",
"Flow ID \/ Slot \/ Product \/ Amount \/ Date \/ Time \/ Order": "フローID \/ スロット \/ 商品 \/ 金額 \/ 日付 \/ 時間 \/ 関連注文",
"Flow ID \/ Slot \/ Product \/ Amount \/ Machine": "フローID \/ スロット \/ 商品 \/ 金額 \/ 機器",
"Flow ID \/ Slot \/ Product \/ Amount \/ Machine \/ Date": "フローID \/ スロット \/ 商品 \/ 金額 \/ 機器 \/ 日付",
"Flow ID \/ Slot \/ Product \/ Amount \/ Machine \/ Date \/ Order": "フローID \/ スロット \/ 商品 \/ 金額 \/ 機器 \/ 日付 \/ 関連注文",
"Flow ID \/ Slot \/ Product \/ Amount \/ Machine \/ Date \/ Time": "フローID \/ スロット \/ 商品 \/ 金額 \/ 機器 \/ 日付 \/ 時間",
"Flow ID \/ Slot \/ Product \/ Amount \/ Machine \/ Date \/ Time \/ Order": "フローID \/ スロット \/ 商品 \/ 金額 \/ 機器 \/ 日付 \/ 時間 \/ 関連注文",
"Flow ID \/ Slot \/ Product \/ Amount \/ Machine \/ Order": "フローID \/ スロット \/ 商品 \/ 金額 \/ 機器 \/ 関連注文",
"Flow ID \/ Slot \/ Product \/ Amount \/ Machine \/ Time": "フローID \/ スロット \/ 商品 \/ 金額 \/ 機器 \/ 時間",
"Flow ID \/ Slot \/ Product \/ Amount \/ Machine \/ Time \/ Order": "フローID \/ スロット \/ 商品 \/ 金額 \/ 機器 \/ 時間 \/ 関連注文",
"Flow ID \/ Slot \/ Product \/ Amount \/ Order": "フローID \/ スロット \/ 商品 \/ 金額 \/ 関連注文",
"Flow ID \/ Slot \/ Product \/ Amount \/ Status": "フローID \/ スロット \/ 商品 \/ 金額 \/ ステータス",
"Flow ID \/ Slot \/ Product \/ Amount \/ Status \/ Date": "フローID \/ スロット \/ 商品 \/ 金額 \/ ステータス \/ 日付",
"Flow ID \/ Slot \/ Product \/ Amount \/ Status \/ Date \/ Order": "フローID \/ スロット \/ 商品 \/ 金額 \/ ステータス \/ 日付 \/ 関連注文",
"Flow ID \/ Slot \/ Product \/ Amount \/ Status \/ Date \/ Time": "フローID \/ スロット \/ 商品 \/ 金額 \/ ステータス \/ 日付 \/ 時間",
"Flow ID \/ Slot \/ Product \/ Amount \/ Status \/ Date \/ Time \/ Order": "フローID \/ スロット \/ 商品 \/ 金額 \/ ステータス \/ 日付 \/ 時間 \/ 関連注文",
"Flow ID \/ Slot \/ Product \/ Amount \/ Status \/ Machine": "フローID \/ スロット \/ 商品 \/ 金額 \/ ステータス \/ 機器",
"Flow ID \/ Slot \/ Product \/ Amount \/ Status \/ Machine \/ Date": "フローID \/ スロット \/ 商品 \/ 金額 \/ ステータス \/ 機器 \/ 日付",
"Flow ID \/ Slot \/ Product \/ Amount \/ Status \/ Machine \/ Date \/ Order": "フローID \/ スロット \/ 商品 \/ 金額 \/ ステータス \/ 機器 \/ 日付 \/ 関連注文",
"Flow ID \/ Slot \/ Product \/ Amount \/ Status \/ Machine \/ Date \/ Time": "フローID \/ スロット \/ 商品 \/ 金額 \/ ステータス \/ 機器 \/ 日付 \/ 時間",
"Flow ID \/ Slot \/ Product \/ Amount \/ Status \/ Machine \/ Date \/ Time \/ Order": "フローID \/ スロット \/ 商品 \/ 金額 \/ ステータス \/ 機器 \/ 日付 \/ 時間 \/ 関連注文",
"Flow ID \/ Slot \/ Product \/ Amount \/ Status \/ Machine \/ Date \/ Time \/ Order \/ Extra": "フローID \/ スロット \/ 商品 \/ 金額 \/ ステータス \/ 機器 \/ 日付 \/ 時間 \/ 関連注文 \/ 追加",
"Flow ID \/ Slot \/ Product \/ Amount \/ Status \/ Machine \/ Date \/ Time \/ Order \/ Extra \/ More": "フローID \/ スロット \/ 商品 \/ 金額 \/ ステータス \/ 機器 \/ 日付 \/ 時間 \/ 関連注文 \/ 追加 \/ さらに",
"Flow ID \/ Slot \/ Product \/ Amount \/ Status \/ Machine \/ Date \/ Time \/ Order \/ Extra \/ More \/ Done": "フローID \/ スロット \/ 商品 \/ 金額 \/ ステータス \/ 機器 \/ 日付 \/ 時間 \/ 関連注文 \/ 追加 \/ さらに \/ 完了",
"Flow ID \/ Slot \/ Product \/ Amount \/ Status \/ Machine \/ Order": "フローID \/ スロット \/ 商品 \/ 金額 \/ ステータス \/ 機器 \/ 関連注文",
"Flow ID \/ Slot \/ Product \/ Amount \/ Status \/ Machine \/ Time": "フローID \/ スロット \/ 商品 \/ 金額 \/ ステータス \/ 機器 \/ 時間",
"Flow ID \/ Slot \/ Product \/ Amount \/ Status \/ Machine \/ Time \/ Order": "フローID \/ スロット \/ 商品 \/ 金額 \/ ステータス \/ 機器 \/ 時間 \/ 関連注文",
"Flow ID \/ Slot \/ Product \/ Amount \/ Status \/ Order": "フローID \/ スロット \/ 商品 \/ 金額 \/ ステータス \/ 関連注文",
"Flow ID \/ Slot \/ Product \/ Amount \/ Status \/ Time": "フローID \/ スロット \/ 商品 \/ 金額 \/ ステータス \/ 時間",
"Flow ID \/ Slot \/ Product \/ Amount \/ Status \/ Time \/ Order": "フローID \/ スロット \/ 商品 \/ 金額 \/ ステータス \/ 時間 \/ 関連注文",
"Flow ID \/ Slot \/ Product \/ Amount \/ Time": "フローID \/ スロット \/ 商品 \/ 金額 \/ 時間",
"Flow ID \/ Slot \/ Product \/ Amount \/ Time \/ Order": "フローID \/ スロット \/ 商品 \/ 時間 \/ 関連注文",
"Flow ID \/ Slot \/ Product \/ Date": "フローID \/ スロット \/ 商品 \/ 日付",
"Flow ID \/ Slot \/ Product \/ Date \/ Order": "フローID \/ スロット \/ 商品 \/ 日付 \/ 関連注文",
"Flow ID \/ Slot \/ Product \/ Date \/ Time": "フローID \/ スロット \/ 商品 \/ 日付 \/ 時間",
"Flow ID \/ Slot \/ Product \/ Date \/ Time \/ Order": "フローID \/ スロット \/ 商品 \/ 日付 \/ 時間 \/ 関連注文",
"Flow ID \/ Slot \/ Product \/ Machine": "フローID \/ スロット \/ 商品 \/ 機器",
"Flow ID \/ Slot \/ Product \/ Machine \/ Date": "フローID \/ スロット \/ 商品 \/ 機器 \/ 日付",
"Flow ID \/ Slot \/ Product \/ Machine \/ Date \/ Order": "フローID \/ スロット \/ 商品 \/ 機器 \/ 日付 \/ 関連注文",
"Flow ID \/ Slot \/ Product \/ Machine \/ Date \/ Time": "フローID \/ スロット \/ 商品 \/ 機器 \/ 日付 \/ 時間",
"Flow ID \/ Slot \/ Product \/ Machine \/ Date \/ Time \/ Order": "フローID \/ スロット \/ 商品 \/ 機器 \/ 日付 \/ 時間 \/ 関連注文",
"Flow ID \/ Slot \/ Product \/ Machine \/ Order": "フローID \/ スロット \/ 商品 \/ 機器 \/ 関連注文",
"Flow ID \/ Slot \/ Product \/ Machine \/ Time": "フローID \/ スロット \/ 商品 \/ 機器 \/ 時間",
"Flow ID \/ Slot \/ Product \/ Machine \/ Time \/ Order": "フローID \/ スロット \/ 商品 \/ 機器 \/ 時間 \/ 関連注文",
"Flow ID \/ Slot \/ Product \/ Order": "フローID \/ スロット \/ 商品 \/ 関連注文",
"Flow ID \/ Slot \/ Product \/ Status": "フローID \/ スロット \/ 商品 \/ ステータス",
"Flow ID \/ Slot \/ Product \/ Status \/ Date": "フローID \/ スロット \/ 商品 \/ ステータス \/ 日付",
"Flow ID \/ Slot \/ Product \/ Status \/ Date \/ Order": "フローID \/ スロット \/ 商品 \/ ステータス \/ 日付 \/ 関連注文",
"Flow ID \/ Slot \/ Product \/ Status \/ Date \/ Time": "フローID \/ スロット \/ 商品 \/ ステータス \/ 日付 \/ 時間",
"Flow ID \/ Slot \/ Product \/ Status \/ Date \/ Time \/ Order": "フローID \/ スロット \/ 商品 \/ ステータス \/ 日付 \/ 時間 \/ 関連注文",
"Flow ID \/ Slot \/ Product \/ Status \/ Machine": "フローID \/ スロット \/ 商品 \/ ステータス \/ 機器",
"Flow ID \/ Slot \/ Product \/ Status \/ Machine \/ Date": "フローID \/ スロット \/ 商品 \/ ステータス \/ 機器 \/ 日付",
"Flow ID \/ Slot \/ Product \/ Status \/ Machine \/ Date \/ Order": "フローID \/ スロット \/ 商品 \/ ステータス \/ 機器 \/ 日付 \/ 関連注文",
"Flow ID \/ Slot \/ Product \/ Status \/ Machine \/ Date \/ Time": "フローID \/ スロット \/ 商品 \/ ステータス \/ 機器 \/ 日付 \/ 時間",
"Flow ID \/ Slot \/ Product \/ Status \/ Machine \/ Date \/ Time \/ Order": "フローID \/ スロット \/ 商品 \/ ステータス \/ 機器 \/ 日付 \/ 時間 \/ 関連注文",
"Flow ID \/ Slot \/ Product \/ Status \/ Machine \/ Order": "フローID \/ スロット \/ 商品 \/ ステータス \/ 機器 \/ 関連注文",
"Flow ID \/ Slot \/ Product \/ Status \/ Machine \/ Time": "フローID \/ スロット \/ 商品 \/ ステータス \/ 機器 \/ 時間",
"Flow ID \/ Slot \/ Product \/ Status \/ Machine \/ Time \/ Order": "フローID \/ スロット \/ 商品 \/ ステータス \/ 機器 \/ 時間 \/ 関連注文",
"Flow ID \/ Slot \/ Product \/ Status \/ Order": "フローID \/ スロット \/ 商品 \/ ステータス \/ 関連注文",
"Flow ID \/ Slot \/ Product \/ Status \/ Time": "フローID \/ スロット \/ 商品 \/ ステータス \/ 時間",
"Flow ID \/ Slot \/ Product \/ Status \/ Time \/ Order": "フローID \/ スロット \/ 商品 \/ ステータス \/ 時間 \/ 関連注文",
"Flow ID \/ Slot \/ Product \/ Time": "フローID \/ スロット \/ 商品 \/ 時間",
"Flow ID \/ Slot \/ Product \/ Time \/ Order": "フローID \/ スロット \/ 商品 \/ 時間 \/ 関連注文",
"Flow ID \/ Slot \/ Status": "フローID \/ スロット \/ ステータス",
"Flow ID \/ Slot \/ Time": "フローID \/ スロット \/ 時間",
"Flow ID \/ Status": "フローID \/ ステータス",
"Flow ID \/ Time": "フローID \/ 時間",
"Force End Session": "セッションを強制終了",
"Force end current session": "現在のセッションを強制終了",
"From": "元",
@ -702,7 +702,7 @@
"Immediate": "即時",
"In Stock": "現在庫",
"Inactive": "停止中",
"Includes Credit Card/Mobile Pay": "クレジット/QR決済を含む",
"Includes Credit Card\/Mobile Pay": "クレジット\/QR決済を含む",
"Indefinite": "無期限",
"Info": "情報",
"Initial Admin Account": "初期管理アカウント",
@ -721,8 +721,8 @@
"Invoice Date": "発行日",
"Invoice Information": "領収書情報",
"Invoice Number": "領収書番号",
"Invoice Number / Flow ID": "領収書番号 / フローID",
"Invoice Number / Time": "領収書番号 / 時間",
"Invoice Number \/ Flow ID": "領収書番号 \/ フローID",
"Invoice Number \/ Time": "領収書番号 \/ 時間",
"Invoice Status": "発行ステータス",
"Issued At": "発行日時",
"Item List": "商品リスト",
@ -794,17 +794,17 @@
"Low stock and out-of-stock alerts": "低在庫と欠品のアラート",
"Loyalty & Features": "マーケティング・ポイント",
"Machine": "自販機",
"Machine / Date": "機器 / 日付",
"Machine / Employee": "機器 / 従業員",
"Machine / Pass Code": "機器 / パスコード",
"Machine / Slot": "機器 / スロット",
"Machine \/ Date": "機器 \/ 日付",
"Machine \/ Employee": "機器 \/ 従業員",
"Machine \/ Pass Code": "機器 \/ パスコード",
"Machine \/ Slot": "機器 \/ スロット",
"Machine Advertisement Settings": "機器広告設定",
"Machine Count": "機器数",
"Machine Details": "機器詳細",
"Machine Distribution": "機器分布",
"Machine Distribution Map": "機器分布マップ",
"Machine Flow ID": "機器フローID",
"Machine Flow ID / Time": "機器フローID / 時間",
"Machine Flow ID \/ Time": "機器フローID \/ 時間",
"Machine Images": "機器写真",
"Machine Info": "機器情報",
"Machine Information": "機器情報",
@ -945,9 +945,9 @@
"Movement History": "変動履歴",
"Movement Logs": "変動ログ",
"Multilingual Names": "多言語名",
"N/A": "なし",
"N\/A": "なし",
"Name": "名前",
"Name / Machine": "名前 / 機器",
"Name \/ Machine": "名前 \/ 機器",
"Name in English": "英語名",
"Name in Japanese": "日本語名",
"Name in Traditional Chinese": "繁体字中国語名",
@ -1082,7 +1082,7 @@
"Order Items": "商品内容",
"Order Management": "注文管理",
"Order No.": "注文番号",
"Order Number / Time": "注文番号 / 時間",
"Order Number \/ Time": "注文番号 \/ 時間",
"Order Status": "注文ステータス",
"Order Time": "注文時間",
"Order already completed": "注文は既に完了しています",
@ -1208,18 +1208,18 @@
"Points": "ポイント",
"Points Settings": "ポイント設定",
"Points toggle": "ポイント切り替え",
"Points/Voucher": "ポイント/クーポン",
"Points\/Voucher": "ポイント\/クーポン",
"Position": "配信位置",
"Prepared": "準備完了",
"Preparing": "準備中",
"Preview": "プレビュー",
"Previous": "前へ",
"Price / Member": "価格 / 会員価格",
"Price \/ Member": "価格 \/ 会員価格",
"Pricing Information": "価格情報",
"Print Invoice": "領収書印刷",
"Product": "商品",
"Product / Slot": "商品 / スロット",
"Product / Stock": "商品 / 在庫",
"Product \/ Slot": "商品 \/ スロット",
"Product \/ Stock": "商品 \/ 在庫",
"Product Count": "商品数",
"Product Details": "商品詳細",
"Product ID": "商品ID",
@ -1238,7 +1238,7 @@
"Product updated successfully": "商品が正常に更新されました",
"Production Company": "製造会社",
"Products": "商品",
"Products / Stock": "商品 / 在庫",
"Products \/ Stock": "商品 \/ 在庫",
"Profile": "プロフィール",
"Profile Information": "プロフィール情報",
"Profile Settings": "プロフィール設定",
@ -1384,13 +1384,13 @@
"Schedule": "スケジュール",
"Search Company Title...": "会社名を検索...",
"Search Company...": "会社を検索...",
"Search Flow ID / Slot...": "フローID / スロットを検索...",
"Search Invoice No / Flow ID...": "領収書番号 / フローIDを検索...",
"Search Flow ID \/ Slot...": "フローID \/ スロットを検索...",
"Search Invoice No \/ Flow ID...": "領収書番号 \/ フローIDを検索...",
"Search Machine...": "機器を検索...",
"Search Order No / Flow ID / Invoice...": "注文番号 / フローID / 領収書を検索...",
"Search Order No / Cards & Codes...": "注文番号 / カード・コードを検索...",
"Search Order No \/ Flow ID \/ Invoice...": "注文番号 \/ フローID \/ 領収書を検索...",
"Search Order No \/ Cards & Codes...": "注文番号 \/ カード・コードを検索...",
"Search Product": "商品を検索",
"Search Product / Slot...": "商品名 / スロットを検索...",
"Search Product \/ Slot...": "商品名 \/ スロットを検索...",
"Search accounts...": "アカウントを検索...",
"Search by ID or Name": "IDまたは名前で検索",
"Search by ID or Name...": "IDまたは名前で検索...",
@ -1398,7 +1398,7 @@
"Search by ID, Name or UID...": "社員番号、名前、またはカードUIDで検索...",
"Search by code, machine name or serial...": "コード、機器名、またはシリアルで検索...",
"Search by code, name or machine...": "コード、名前、または機器で検索...",
"Search by name or S/N...": "名前またはシリアル番号で検索...",
"Search by name or S\/N...": "名前またはシリアル番号で検索...",
"Search by name...": "名前で検索...",
"Search cargo lane": "スロット番号または商品名で検索",
"Search categories...": "カテゴリを検索...",
@ -1476,7 +1476,7 @@
"Sign in to your account": "アカウントにサインイン",
"Signed in as": "ログイン中のユーザー",
"Slot": "スロット",
"Slot / Product": "スロット / 商品",
"Slot \/ Product": "スロット \/ 商品",
"Slot Mechanism (default: Conveyor, check for Spring)": "スロット機構 (デフォルト: ベルトコンベア、スプリングの場合はチェック)",
"Slot No": "スロット番号",
"Slot Status": "スロット期限ステータス",
@ -1527,15 +1527,15 @@
"Start Time": "開始時間",
"Statistics": "統計",
"Status": "ステータス",
"Status / Invoice": "ステータス / 領収書",
"Status / Temp / Sub / Card / Scan": "ステータス / 温度 / 下位機 / カードリーダー / スキャナー",
"Status \/ Invoice": "ステータス \/ 領収書",
"Status \/ Temp \/ Sub \/ Card \/ Scan": "ステータス \/ 温度 \/ 下位機 \/ カードリーダー \/ スキャナー",
"Status Timeline": "ステータスタイムライン",
"Status updated successfully": "ステータスが正常に更新されました",
"Stock": "在庫",
"Stock & Expiry": "在庫と期限",
"Stock & Expiry Management": "在庫と期限の管理",
"Stock & Expiry Overview": "在庫と期限の概要",
"Stock / Capacity": "在庫 / 容量",
"Stock \/ Capacity": "在庫 \/ 容量",
"Stock In": "入庫",
"Stock Level": "在庫レベル",
"Stock Level > 50%": "在庫 50% 超",
@ -1565,7 +1565,7 @@
"Store ID": "店舗ID (Store ID)",
"Store Management": "店舗管理",
"StoreID": "店舗ID",
"Sub / Card / Scan": "下位機 / カードリーダー / スキャナー",
"Sub \/ Card \/ Scan": "下位機 \/ カードリーダー \/ スキャナー",
"Sub Account Management": "サブアカウント管理",
"Sub Account Roles": "サブアカウントロール",
"Sub Accounts": "サブアカウント",
@ -1663,7 +1663,7 @@
"Track": "ベルトコンベア",
"Track Channel Limit": "ベルトコンベアスロット上限",
"Track Limit": "ベルトコンベア上限",
"Track Limit (Track/Spring)": "スロット上限 (ベルト/スプリング)",
"Track Limit (Track\/Spring)": "スロット上限 (ベルト\/スプリング)",
"Track device health and maintenance history": "デバイスの健全性とメンテナンス履歴を追跡",
"Track stock levels, stock-in orders, and movement history": "在庫レベル、入庫伝票、および変動履歴を追跡",
"Track stock-in orders and movement history": "入庫伝票と在庫変動履歴を追跡",
@ -1696,7 +1696,7 @@
"Type to search or leave blank for system defaults.": "入力して検索、または空白のままでシステムデフォルトを使用します。",
"UI Elements": "UI要素",
"Unassigned": "未割り当て",
"Unassigned / No Change": "未割り当て / 変更なし",
"Unassigned \/ No Change": "未割り当て \/ 変更なし",
"Unauthorized Status": "未承認",
"Unauthorized login attempt: :account": "不正なログイン試行: :account",
"Unauthorized: Account not authorized for this machine": "未承認: アカウントはこの機器へのアクセス権がありません",
@ -1853,7 +1853,7 @@
"data-config.sub-account-roles": "サブアカウントロール",
"data-config.sub-accounts": "サブアカウント管理",
"disabled": "無効",
"e.g. 500ml / 300g": "例500ml / 300g",
"e.g. 500ml \/ 300g": "例500ml \/ 300g",
"e.g. John Doe": "例:山田太郎",
"e.g. Main Warehouse": "例:第一倉庫",
"e.g. TWSTAR": "例TWSTAR",
@ -2021,7 +2021,7 @@
"Select Product for Analysis": "分析対象商品の選択",
"All Products (ALL)": "全商品 (ALL)",
"Tenant Company": "所属テナント会社",
"Cross-Company / Headquarter Global Stats": "複数会社間 / 本部グローバル統計",
"Cross-Company \/ Headquarter Global Stats": "複数会社間 \/ 本部グローバル統計",
"Product Sales & Profit Trend": "商品販売・利益推移",
"Daily operational variance curve for selected timeframe": "選択期間における日次運営変動曲線",
"Detailed Analysis Data": "明細分析データ",
@ -2141,5 +2141,32 @@
"Effective Alert Types": "有効なアラート種別",
"Machine Alert Settings": "機台アラート設定",
"Configure alert types and temperature thresholds": "アラート種別と温度しきい値を設定",
"Machine model saved successfully.": "機器モデルが正常に追加されました。"
"Machine model saved successfully.": "機器モデルが正常に追加されました。",
"Replenishment Order": "補充伝票",
"Transfer Order": "在庫移動伝票",
"Ready to print": "印刷準備完了",
"Print": "印刷",
"Platform Operator": "プラットフォーム事業者",
"Vending Machine Product Replenishment": "自販機商品補充",
"Warehouse to Warehouse Transfer": "倉庫間移動",
"Machine to Warehouse Return": "自販機から倉庫への返品",
"Order Number": "伝票番号",
"Source Machine": "移動元自販機",
"Assigned Personnel": "担当者",
"Print Time": "印刷日時",
"Stock Snap": "在庫スナップショット",
"Replenish Qty": "補充数量",
"Transfer Qty": "移動数量",
"Check": "確認",
"Actual Qty": "実績数量",
"Print Notice": "印刷時の注意",
"Please make sure to enable \"Background graphics\" in your browser print settings to print product images and styled components correctly.": "商品の画像やスタイル付きコンポーネントを正しく印刷するために、ブラウザの印刷設定で『背景のグラフィック』を有効にしてください。",
"Prepared By": "起票者",
"Warehouse Stock Out": "出庫確認",
"Courier\/Replenisher": "配送・補充担当",
"Machine Inbound Confirmation": "入庫確認",
"Transfer Out Confirmation": "出庫確認",
"Courier\/Dispatcher": "配送担当",
"Transfer In Confirmation": "入庫確認",
"Print Order": "伝票印刷"
}

View File

@ -31,9 +31,9 @@
"Account deleted successfully.": "帳號已成功刪除。",
"Account updated successfully.": "帳號已成功更新。",
"Account:": "帳號:",
"Accounts / Machines": "帳號 / 機台",
"Accounts \/ Machines": "帳號 \/ 機台",
"Action": "操作",
"Action / Target": "操作 / 對象",
"Action \/ Target": "操作 \/ 對象",
"Actions": "操作",
"Active": "已啟用",
"Active Slots": "使用中貨道",
@ -68,7 +68,7 @@
"Administrator": "管理員",
"Advertisement List": "廣告列表",
"Advertisement Management": "廣告管理",
"Advertisement Video/Image": "廣告影片/圖片",
"Advertisement Video\/Image": "廣告影片\/圖片",
"Advertisement assigned successfully": "廣告投放完成",
"Advertisement assigned successfully.": "廣告投放完成。",
"Advertisement created successfully": "廣告建立成功",
@ -106,7 +106,7 @@
"All issues marked as resolved.": "所有異常已標記為已排除。",
"All slots are fully stocked": "所有貨道已滿貨",
"Amount": "金額",
"Amount / Payment": "金額 / 支付",
"Amount \/ Payment": "金額 \/ 支付",
"An error occurred while saving.": "儲存時發生錯誤。",
"Analysis Management": "分析管理",
"Analysis Permissions": "分析管理權限",
@ -186,7 +186,7 @@
"Back to List": "返回列表",
"Badge Settings": "識別證",
"Barcode": "條碼",
"Barcode / Material": "條碼 / 物料編碼",
"Barcode \/ Material": "條碼 \/ 物料編碼",
"Based on Hours": "依據時數計算",
"Basic Information": "基本資訊",
"Basic Settings": "基本設定",
@ -230,7 +230,7 @@
"Card Terminal": "刷卡機端",
"Card Terminal System": "刷卡機系統",
"Card UID": "卡片 UID",
"Cash Module": "硬幣機 / 紙鈔機模組",
"Cash Module": "硬幣機 \/ 紙鈔機模組",
"Cash Module Feature": "現金模組功能",
"Cash Module Function": "現金模組功能",
"Category": "類別",
@ -243,7 +243,7 @@
"Change Note": "異動備註",
"Change Stock": "零錢庫存",
"Channel Limits": "貨道上限",
"Channel Limits (Track/Spring)": "貨道上限 (履帶/彈簧)",
"Channel Limits (Track\/Spring)": "貨道上限 (履帶\/彈簧)",
"Channel Limits Config": "貨道上限配置",
"Channel Limits Configuration": "貨道上限配置",
"ChannelId": "ChannelId",
@ -262,8 +262,8 @@
"Code": "代碼",
"Code Copied": "代碼已複製",
"Coin Acceptor": "硬幣機",
"Coin/Banknote Machine": "硬幣機/紙鈔機",
"Coin/Bill Acceptor": "硬幣機/紙鈔機",
"Coin\/Banknote Machine": "硬幣機\/紙鈔機",
"Coin\/Bill Acceptor": "硬幣機\/紙鈔機",
"Command Center": "指令中心",
"Command Confirmation": "指令確認",
"Command Type": "指令類型",
@ -352,7 +352,7 @@
"Creation Time": "建立時間",
"Creator": "建立者",
"Credit Card": "信用卡",
"Credit Card / Contactless": "支援信用卡 / 感應支付",
"Credit Card \/ Contactless": "支援信用卡 \/ 感應支付",
"Critical": "嚴重",
"Current": "當前",
"Current Password": "當前密碼",
@ -408,7 +408,7 @@
"Delta": "變化量",
"Deposit Bonus": "儲值回饋",
"Describe the repair or maintenance status...": "請描述維修或保養狀況...",
"Description / Name": "描述 / 名稱",
"Description \/ Name": "描述 \/ 名稱",
"Deselect All": "取消全選",
"Detail": "詳細",
"Details": "明細",
@ -450,7 +450,7 @@
"Draft": "草稿",
"Duration": "時長",
"Duration (Seconds)": "播放秒數",
"E-Ticket (EasyCard/iPass)": "電子票證 (悠遊卡/一卡通)",
"E-Ticket (EasyCard\/iPass)": "電子票證 (悠遊卡\/一卡通)",
"E.SUN Bank Scan": "玉山銀行掃碼",
"E.SUN Pay": "玉山 Pay",
"E.SUN QR Pay": "玉山銀行掃碼",
@ -492,7 +492,7 @@
"Elevator rising": "升降平台上升中",
"Elevator sensor error": "升降箱感測異常",
"Email": "電子郵件",
"Emblem / Label": "標章 / 標籤",
"Emblem \/ Label": "標章 \/ 標籤",
"Employee": "員工",
"Employee ID": "員工編號",
"Empty": "空白",
@ -504,7 +504,7 @@
"Enable Points Mechanism": "啟用點數機制",
"Enabled": "已啟用",
"Enabled Features": "啟用功能",
"Enabled/Disabled": "啟用/停用",
"Enabled\/Disabled": "啟用\/停用",
"End Date": "截止日",
"End Time": "結束時間",
"Engineer": "維修人員",
@ -539,7 +539,7 @@
"Expected Expiry Date & Time": "預計到期時間",
"Expected Stock": "預期庫存",
"Expired": "已過期",
"Expired / Disabled": "已過期 / 停用",
"Expired \/ Disabled": "已過期 \/ 停用",
"Expired Time": "下架時間",
"Expires At": "到期時間",
"Expiring": "效期將屆",
@ -573,87 +573,87 @@
"Fleet Avg OEE": "全機台平均 OEE",
"Fleet Performance": "全機台效能",
"Flow ID": "流水號",
"Flow ID / Amount": "流水號 / 金額",
"Flow ID / Date": "流水號 / 日期",
"Flow ID / Machine": "流水號 / 機台",
"Flow ID / Order": "流水號 / 關聯訂單",
"Flow ID / Product": "流水號 / 商品",
"Flow ID / Slot": "流水號 / 貨道",
"Flow ID / Slot / Amount": "流水號 / 貨道 / 金額",
"Flow ID / Slot / Date": "流水號 / 貨道 / 日期",
"Flow ID / Slot / Machine": "流水號 / 貨道 / 機台",
"Flow ID / Slot / Order": "流水號 / 貨道 / 關聯訂單",
"Flow ID / Slot / Product": "流水號 / 貨道 / 商品",
"Flow ID / Slot / Product / Amount": "流水號 / 貨道 / 商品 / 金額",
"Flow ID / Slot / Product / Amount / Date": "流水號 / 貨道 / 商品 / 金額 / 日期",
"Flow ID / Slot / Product / Amount / Date / Order": "流水號 / 貨道 / 商品 / 金額 / 日期 / 關聯訂單",
"Flow ID / Slot / Product / Amount / Date / Time": "流水號 / 貨道 / 商品 / 金額 / 日期 / 時間",
"Flow ID / Slot / Product / Amount / Date / Time / Order": "流水號 / 貨道 / 商品 / 金額 / 日期 / 時間 / 關聯訂單",
"Flow ID / Slot / Product / Amount / Machine": "流水號 / 貨道 / 商品 / 金額 / 機台",
"Flow ID / Slot / Product / Amount / Machine / Date": "流水號 / 貨道 / 商品 / 金額 / 機台 / 日期",
"Flow ID / Slot / Product / Amount / Machine / Date / Order": "流水號 / 貨道 / 商品 / 金額 / 機台 / 日期 / 關聯訂單",
"Flow ID / Slot / Product / Amount / Machine / Date / Time": "流水號 / 貨道 / 商品 / 金額 / 機台 / 日期 / 時間",
"Flow ID / Slot / Product / Amount / Machine / Date / Time / Order": "流水號 / 貨道 / 商品 / 金額 / 機台 / 日期 / 時間 / 關聯訂單",
"Flow ID / Slot / Product / Amount / Machine / Order": "流水號 / 貨道 / 商品 / 金額 / 機台 / 關聯訂單",
"Flow ID / Slot / Product / Amount / Machine / Time": "流水號 / 貨道 / 商品 / 金額 / 機台 / 時間",
"Flow ID / Slot / Product / Amount / Machine / Time / Order": "流水號 / 貨道 / 商品 / 金額 / 機台 / 時間 / 關聯訂單",
"Flow ID / Slot / Product / Amount / Order": "流水號 / 貨道 / 商品 / 金額 / 關聯訂單",
"Flow ID / Slot / Product / Amount / Status": "流水號 / 貨道 / 商品 / 金額 / 狀態",
"Flow ID / Slot / Product / Amount / Status / Date": "流水號 / 貨道 / 商品 / 金額 / 狀態 / 日期",
"Flow ID / Slot / Product / Amount / Status / Date / Order": "流水號 / 貨道 / 商品 / 金額 / 狀態 / 日期 / 關聯訂單",
"Flow ID / Slot / Product / Amount / Status / Date / Time": "流水號 / 貨道 / 商品 / 金額 / 狀態 / 日期 / 時間",
"Flow ID / Slot / Product / Amount / Status / Date / Time / Order": "流水號 / 貨道 / 商品 / 金額 / 狀態 / 日期 / 時間 / 關聯訂單",
"Flow ID / Slot / Product / Amount / Status / Machine": "流水號 / 貨道 / 商品 / 金額 / 狀態 / 機台",
"Flow ID / Slot / Product / Amount / Status / Machine / Date": "流水號 / 貨道 / 商品 / 金額 / 狀態 / 機台 / 日期",
"Flow ID / Slot / Product / Amount / Status / Machine / Date / Order": "流水號 / 貨道 / 商品 / 金額 / 狀態 / 機台 / 日期 / 關聯訂單",
"Flow ID / Slot / Product / Amount / Status / Machine / Date / Time": "流水號 / 貨道 / 商品 / 金額 / 狀態 / 機台 / 日期 / 時間",
"Flow ID / Slot / Product / Amount / Status / Machine / Date / Time / Order": "流水號 / 貨道 / 商品 / 金額 / 狀態 / 機台 / 日期 / 時間 / 關聯訂單",
"Flow ID / Slot / Product / Amount / Status / Machine / Date / Time / Order / Extra": "流水號 / 貨道 / 商品 / 金額 / 狀態 / 機台 / 日期 / 時間 / 關聯訂單 / 額外",
"Flow ID / Slot / Product / Amount / Status / Machine / Date / Time / Order / Extra / More": "流水號 / 貨道 / 商品 / 金額 / 狀態 / 機台 / 日期 / 時間 / 關聯訂單 / 額外 / 更多",
"Flow ID / Slot / Product / Amount / Status / Machine / Date / Time / Order / Extra / More / Done": "流水號 / 貨道 / 商品 / 金額 / 狀態 / 機台 / 日期 / 時間 / 關聯訂單 / 額外 / 更多 / 完成",
"Flow ID / Slot / Product / Amount / Status / Machine / Order": "流水號 / 貨道 / 商品 / 金額 / 狀態 / 機台 / 關聯訂單",
"Flow ID / Slot / Product / Amount / Status / Machine / Time": "流水號 / 貨道 / 商品 / 金額 / 狀態 / 機台 / 時間",
"Flow ID / Slot / Product / Amount / Status / Machine / Time / Order": "流水號 / 貨道 / 商品 / 金額 / 狀態 / 機台 / 時間 / 關聯訂單",
"Flow ID / Slot / Product / Amount / Status / Order": "流水號 / 貨道 / 商品 / 金額 / 狀態 / 關聯訂單",
"Flow ID / Slot / Product / Amount / Status / Time": "流水號 / 貨道 / 商品 / 金額 / 狀態 / 時間",
"Flow ID / Slot / Product / Amount / Status / Time / Order": "流水號 / 貨道 / 商品 / 金額 / 狀態 / 時間 / 關聯訂單",
"Flow ID / Slot / Product / Amount / Time": "流水號 / 貨道 / 商品 / 金額 / 時間",
"Flow ID / Slot / Product / Amount / Time / Order": "流水號 / 貨道 / 商品 / 時間 / 關聯訂單",
"Flow ID / Slot / Product / Date": "流水號 / 貨道 / 商品 / 日期",
"Flow ID / Slot / Product / Date / Order": "流水號 / 貨道 / 商品 / 日期 / 關聯訂單",
"Flow ID / Slot / Product / Date / Time": "流水號 / 貨道 / 商品 / 日期 / 時間",
"Flow ID / Slot / Product / Date / Time / Order": "流水號 / 貨道 / 商品 / 日期 / 時間 / 關聯訂單",
"Flow ID / Slot / Product / Machine": "流水號 / 貨道 / 商品 / 機台",
"Flow ID / Slot / Product / Machine / Date": "流水號 / 貨道 / 商品 / 機台 / 日期",
"Flow ID / Slot / Product / Machine / Date / Order": "流水號 / 貨道 / 商品 / 機台 / 日期 / 關聯訂單",
"Flow ID / Slot / Product / Machine / Date / Time": "流水號 / 貨道 / 商品 / 機台 / 日期 / 時間",
"Flow ID / Slot / Product / Machine / Date / Time / Order": "流水號 / 貨道 / 商品 / 機台 / 日期 / 時間 / 關聯訂單",
"Flow ID / Slot / Product / Machine / Order": "流水號 / 貨道 / 商品 / 機台 / 關聯訂單",
"Flow ID / Slot / Product / Machine / Time": "流水號 / 貨道 / 商品 / 機台 / 時間",
"Flow ID / Slot / Product / Machine / Time / Order": "流水號 / 貨道 / 商品 / 機台 / 時間 / 關聯訂單",
"Flow ID / Slot / Product / Order": "流水號 / 貨道 / 商品 / 關聯訂單",
"Flow ID / Slot / Product / Status": "流水號 / 貨道 / 商品 / 狀態",
"Flow ID / Slot / Product / Status / Date": "流水號 / 貨道 / 商品 / 狀態 / 日期",
"Flow ID / Slot / Product / Status / Date / Order": "流水號 / 貨道 / 商品 / 狀態 / 日期 / 關聯訂單",
"Flow ID / Slot / Product / Status / Date / Time": "流水號 / 貨道 / 商品 / 狀態 / 日期 / 時間",
"Flow ID / Slot / Product / Status / Date / Time / Order": "流水號 / 貨道 / 商品 / 狀態 / 日期 / 時間 / 關聯訂單",
"Flow ID / Slot / Product / Status / Machine": "流水號 / 貨道 / 商品 / 狀態 / 機台",
"Flow ID / Slot / Product / Status / Machine / Date": "流水號 / 貨道 / 商品 / 狀態 / 機台 / 日期",
"Flow ID / Slot / Product / Status / Machine / Date / Order": "流水號 / 貨道 / 商品 / 狀態 / 機台 / 日期 / 關聯訂單",
"Flow ID / Slot / Product / Status / Machine / Date / Time": "流水號 / 貨道 / 商品 / 狀態 / 機台 / 日期 / 時間",
"Flow ID / Slot / Product / Status / Machine / Date / Time / Order": "流水號 / 貨道 / 商品 / 狀態 / 機台 / 日期 / 時間 / 關聯訂單",
"Flow ID / Slot / Product / Status / Machine / Order": "流水號 / 貨道 / 商品 / 狀態 / 機台 / 關聯訂單",
"Flow ID / Slot / Product / Status / Machine / Time": "流水號 / 貨道 / 商品 / 狀態 / 機台 / 時間",
"Flow ID / Slot / Product / Status / Machine / Time / Order": "流水號 / 貨道 / 商品 / 狀態 / 機台 / 時間 / 關聯訂單",
"Flow ID / Slot / Product / Status / Order": "流水號 / 貨道 / 商品 / 狀態 / 關聯訂單",
"Flow ID / Slot / Product / Status / Time": "流水號 / 貨道 / 商品 / 狀態 / 時間",
"Flow ID / Slot / Product / Status / Time / Order": "流水號 / 貨道 / 商品 / 狀態 / 時間 / 關聯訂單",
"Flow ID / Slot / Product / Time": "流水號 / 貨道 / 商品 / 時間",
"Flow ID / Slot / Product / Time / Order": "流水號 / 貨道 / 商品 / 時間 / 關聯訂單",
"Flow ID / Slot / Status": "流水號 / 貨道 / 狀態",
"Flow ID / Slot / Time": "流水號 / 貨道 / 時間",
"Flow ID / Status": "流水號 / 狀態",
"Flow ID / Time": "流水號 / 時間",
"Flow ID \/ Amount": "流水號 \/ 金額",
"Flow ID \/ Date": "流水號 \/ 日期",
"Flow ID \/ Machine": "流水號 \/ 機台",
"Flow ID \/ Order": "流水號 \/ 關聯訂單",
"Flow ID \/ Product": "流水號 \/ 商品",
"Flow ID \/ Slot": "流水號 \/ 貨道",
"Flow ID \/ Slot \/ Amount": "流水號 \/ 貨道 \/ 金額",
"Flow ID \/ Slot \/ Date": "流水號 \/ 貨道 \/ 日期",
"Flow ID \/ Slot \/ Machine": "流水號 \/ 貨道 \/ 機台",
"Flow ID \/ Slot \/ Order": "流水號 \/ 貨道 \/ 關聯訂單",
"Flow ID \/ Slot \/ Product": "流水號 \/ 貨道 \/ 商品",
"Flow ID \/ Slot \/ Product \/ Amount": "流水號 \/ 貨道 \/ 商品 \/ 金額",
"Flow ID \/ Slot \/ Product \/ Amount \/ Date": "流水號 \/ 貨道 \/ 商品 \/ 金額 \/ 日期",
"Flow ID \/ Slot \/ Product \/ Amount \/ Date \/ Order": "流水號 \/ 貨道 \/ 商品 \/ 金額 \/ 日期 \/ 關聯訂單",
"Flow ID \/ Slot \/ Product \/ Amount \/ Date \/ Time": "流水號 \/ 貨道 \/ 商品 \/ 金額 \/ 日期 \/ 時間",
"Flow ID \/ Slot \/ Product \/ Amount \/ Date \/ Time \/ Order": "流水號 \/ 貨道 \/ 商品 \/ 金額 \/ 日期 \/ 時間 \/ 關聯訂單",
"Flow ID \/ Slot \/ Product \/ Amount \/ Machine": "流水號 \/ 貨道 \/ 商品 \/ 金額 \/ 機台",
"Flow ID \/ Slot \/ Product \/ Amount \/ Machine \/ Date": "流水號 \/ 貨道 \/ 商品 \/ 金額 \/ 機台 \/ 日期",
"Flow ID \/ Slot \/ Product \/ Amount \/ Machine \/ Date \/ Order": "流水號 \/ 貨道 \/ 商品 \/ 金額 \/ 機台 \/ 日期 \/ 關聯訂單",
"Flow ID \/ Slot \/ Product \/ Amount \/ Machine \/ Date \/ Time": "流水號 \/ 貨道 \/ 商品 \/ 金額 \/ 機台 \/ 日期 \/ 時間",
"Flow ID \/ Slot \/ Product \/ Amount \/ Machine \/ Date \/ Time \/ Order": "流水號 \/ 貨道 \/ 商品 \/ 金額 \/ 機台 \/ 日期 \/ 時間 \/ 關聯訂單",
"Flow ID \/ Slot \/ Product \/ Amount \/ Machine \/ Order": "流水號 \/ 貨道 \/ 商品 \/ 金額 \/ 機台 \/ 關聯訂單",
"Flow ID \/ Slot \/ Product \/ Amount \/ Machine \/ Time": "流水號 \/ 貨道 \/ 商品 \/ 金額 \/ 機台 \/ 時間",
"Flow ID \/ Slot \/ Product \/ Amount \/ Machine \/ Time \/ Order": "流水號 \/ 貨道 \/ 商品 \/ 金額 \/ 機台 \/ 時間 \/ 關聯訂單",
"Flow ID \/ Slot \/ Product \/ Amount \/ Order": "流水號 \/ 貨道 \/ 商品 \/ 金額 \/ 關聯訂單",
"Flow ID \/ Slot \/ Product \/ Amount \/ Status": "流水號 \/ 貨道 \/ 商品 \/ 金額 \/ 狀態",
"Flow ID \/ Slot \/ Product \/ Amount \/ Status \/ Date": "流水號 \/ 貨道 \/ 商品 \/ 金額 \/ 狀態 \/ 日期",
"Flow ID \/ Slot \/ Product \/ Amount \/ Status \/ Date \/ Order": "流水號 \/ 貨道 \/ 商品 \/ 金額 \/ 狀態 \/ 日期 \/ 關聯訂單",
"Flow ID \/ Slot \/ Product \/ Amount \/ Status \/ Date \/ Time": "流水號 \/ 貨道 \/ 商品 \/ 金額 \/ 狀態 \/ 日期 \/ 時間",
"Flow ID \/ Slot \/ Product \/ Amount \/ Status \/ Date \/ Time \/ Order": "流水號 \/ 貨道 \/ 商品 \/ 金額 \/ 狀態 \/ 日期 \/ 時間 \/ 關聯訂單",
"Flow ID \/ Slot \/ Product \/ Amount \/ Status \/ Machine": "流水號 \/ 貨道 \/ 商品 \/ 金額 \/ 狀態 \/ 機台",
"Flow ID \/ Slot \/ Product \/ Amount \/ Status \/ Machine \/ Date": "流水號 \/ 貨道 \/ 商品 \/ 金額 \/ 狀態 \/ 機台 \/ 日期",
"Flow ID \/ Slot \/ Product \/ Amount \/ Status \/ Machine \/ Date \/ Order": "流水號 \/ 貨道 \/ 商品 \/ 金額 \/ 狀態 \/ 機台 \/ 日期 \/ 關聯訂單",
"Flow ID \/ Slot \/ Product \/ Amount \/ Status \/ Machine \/ Date \/ Time": "流水號 \/ 貨道 \/ 商品 \/ 金額 \/ 狀態 \/ 機台 \/ 日期 \/ 時間",
"Flow ID \/ Slot \/ Product \/ Amount \/ Status \/ Machine \/ Date \/ Time \/ Order": "流水號 \/ 貨道 \/ 商品 \/ 金額 \/ 狀態 \/ 機台 \/ 日期 \/ 時間 \/ 關聯訂單",
"Flow ID \/ Slot \/ Product \/ Amount \/ Status \/ Machine \/ Date \/ Time \/ Order \/ Extra": "流水號 \/ 貨道 \/ 商品 \/ 金額 \/ 狀態 \/ 機台 \/ 日期 \/ 時間 \/ 關聯訂單 \/ 額外",
"Flow ID \/ Slot \/ Product \/ Amount \/ Status \/ Machine \/ Date \/ Time \/ Order \/ Extra \/ More": "流水號 \/ 貨道 \/ 商品 \/ 金額 \/ 狀態 \/ 機台 \/ 日期 \/ 時間 \/ 關聯訂單 \/ 額外 \/ 更多",
"Flow ID \/ Slot \/ Product \/ Amount \/ Status \/ Machine \/ Date \/ Time \/ Order \/ Extra \/ More \/ Done": "流水號 \/ 貨道 \/ 商品 \/ 金額 \/ 狀態 \/ 機台 \/ 日期 \/ 時間 \/ 關聯訂單 \/ 額外 \/ 更多 \/ 完成",
"Flow ID \/ Slot \/ Product \/ Amount \/ Status \/ Machine \/ Order": "流水號 \/ 貨道 \/ 商品 \/ 金額 \/ 狀態 \/ 機台 \/ 關聯訂單",
"Flow ID \/ Slot \/ Product \/ Amount \/ Status \/ Machine \/ Time": "流水號 \/ 貨道 \/ 商品 \/ 金額 \/ 狀態 \/ 機台 \/ 時間",
"Flow ID \/ Slot \/ Product \/ Amount \/ Status \/ Machine \/ Time \/ Order": "流水號 \/ 貨道 \/ 商品 \/ 金額 \/ 狀態 \/ 機台 \/ 時間 \/ 關聯訂單",
"Flow ID \/ Slot \/ Product \/ Amount \/ Status \/ Order": "流水號 \/ 貨道 \/ 商品 \/ 金額 \/ 狀態 \/ 關聯訂單",
"Flow ID \/ Slot \/ Product \/ Amount \/ Status \/ Time": "流水號 \/ 貨道 \/ 商品 \/ 金額 \/ 狀態 \/ 時間",
"Flow ID \/ Slot \/ Product \/ Amount \/ Status \/ Time \/ Order": "流水號 \/ 貨道 \/ 商品 \/ 金額 \/ 狀態 \/ 時間 \/ 關聯訂單",
"Flow ID \/ Slot \/ Product \/ Amount \/ Time": "流水號 \/ 貨道 \/ 商品 \/ 金額 \/ 時間",
"Flow ID \/ Slot \/ Product \/ Amount \/ Time \/ Order": "流水號 \/ 貨道 \/ 商品 \/ 時間 \/ 關聯訂單",
"Flow ID \/ Slot \/ Product \/ Date": "流水號 \/ 貨道 \/ 商品 \/ 日期",
"Flow ID \/ Slot \/ Product \/ Date \/ Order": "流水號 \/ 貨道 \/ 商品 \/ 日期 \/ 關聯訂單",
"Flow ID \/ Slot \/ Product \/ Date \/ Time": "流水號 \/ 貨道 \/ 商品 \/ 日期 \/ 時間",
"Flow ID \/ Slot \/ Product \/ Date \/ Time \/ Order": "流水號 \/ 貨道 \/ 商品 \/ 日期 \/ 時間 \/ 關聯訂單",
"Flow ID \/ Slot \/ Product \/ Machine": "流水號 \/ 貨道 \/ 商品 \/ 機台",
"Flow ID \/ Slot \/ Product \/ Machine \/ Date": "流水號 \/ 貨道 \/ 商品 \/ 機台 \/ 日期",
"Flow ID \/ Slot \/ Product \/ Machine \/ Date \/ Order": "流水號 \/ 貨道 \/ 商品 \/ 機台 \/ 日期 \/ 關聯訂單",
"Flow ID \/ Slot \/ Product \/ Machine \/ Date \/ Time": "流水號 \/ 貨道 \/ 商品 \/ 機台 \/ 日期 \/ 時間",
"Flow ID \/ Slot \/ Product \/ Machine \/ Date \/ Time \/ Order": "流水號 \/ 貨道 \/ 商品 \/ 機台 \/ 日期 \/ 時間 \/ 關聯訂單",
"Flow ID \/ Slot \/ Product \/ Machine \/ Order": "流水號 \/ 貨道 \/ 商品 \/ 機台 \/ 關聯訂單",
"Flow ID \/ Slot \/ Product \/ Machine \/ Time": "流水號 \/ 貨道 \/ 商品 \/ 機台 \/ 時間",
"Flow ID \/ Slot \/ Product \/ Machine \/ Time \/ Order": "流水號 \/ 貨道 \/ 商品 \/ 機台 \/ 時間 \/ 關聯訂單",
"Flow ID \/ Slot \/ Product \/ Order": "流水號 \/ 貨道 \/ 商品 \/ 關聯訂單",
"Flow ID \/ Slot \/ Product \/ Status": "流水號 \/ 貨道 \/ 商品 \/ 狀態",
"Flow ID \/ Slot \/ Product \/ Status \/ Date": "流水號 \/ 貨道 \/ 商品 \/ 狀態 \/ 日期",
"Flow ID \/ Slot \/ Product \/ Status \/ Date \/ Order": "流水號 \/ 貨道 \/ 商品 \/ 狀態 \/ 日期 \/ 關聯訂單",
"Flow ID \/ Slot \/ Product \/ Status \/ Date \/ Time": "流水號 \/ 貨道 \/ 商品 \/ 狀態 \/ 日期 \/ 時間",
"Flow ID \/ Slot \/ Product \/ Status \/ Date \/ Time \/ Order": "流水號 \/ 貨道 \/ 商品 \/ 狀態 \/ 日期 \/ 時間 \/ 關聯訂單",
"Flow ID \/ Slot \/ Product \/ Status \/ Machine": "流水號 \/ 貨道 \/ 商品 \/ 狀態 \/ 機台",
"Flow ID \/ Slot \/ Product \/ Status \/ Machine \/ Date": "流水號 \/ 貨道 \/ 商品 \/ 狀態 \/ 機台 \/ 日期",
"Flow ID \/ Slot \/ Product \/ Status \/ Machine \/ Date \/ Order": "流水號 \/ 貨道 \/ 商品 \/ 狀態 \/ 機台 \/ 日期 \/ 關聯訂單",
"Flow ID \/ Slot \/ Product \/ Status \/ Machine \/ Date \/ Time": "流水號 \/ 貨道 \/ 商品 \/ 狀態 \/ 機台 \/ 日期 \/ 時間",
"Flow ID \/ Slot \/ Product \/ Status \/ Machine \/ Date \/ Time \/ Order": "流水號 \/ 貨道 \/ 商品 \/ 狀態 \/ 機台 \/ 日期 \/ 時間 \/ 關聯訂單",
"Flow ID \/ Slot \/ Product \/ Status \/ Machine \/ Order": "流水號 \/ 貨道 \/ 商品 \/ 狀態 \/ 機台 \/ 關聯訂單",
"Flow ID \/ Slot \/ Product \/ Status \/ Machine \/ Time": "流水號 \/ 貨道 \/ 商品 \/ 狀態 \/ 機台 \/ 時間",
"Flow ID \/ Slot \/ Product \/ Status \/ Machine \/ Time \/ Order": "流水號 \/ 貨道 \/ 商品 \/ 狀態 \/ 機台 \/ 時間 \/ 關聯訂單",
"Flow ID \/ Slot \/ Product \/ Status \/ Order": "流水號 \/ 貨道 \/ 商品 \/ 狀態 \/ 關聯訂單",
"Flow ID \/ Slot \/ Product \/ Status \/ Time": "流水號 \/ 貨道 \/ 商品 \/ 狀態 \/ 時間",
"Flow ID \/ Slot \/ Product \/ Status \/ Time \/ Order": "流水號 \/ 貨道 \/ 商品 \/ 狀態 \/ 時間 \/ 關聯訂單",
"Flow ID \/ Slot \/ Product \/ Time": "流水號 \/ 貨道 \/ 商品 \/ 時間",
"Flow ID \/ Slot \/ Product \/ Time \/ Order": "流水號 \/ 貨道 \/ 商品 \/ 時間 \/ 關聯訂單",
"Flow ID \/ Slot \/ Status": "流水號 \/ 貨道 \/ 狀態",
"Flow ID \/ Slot \/ Time": "流水號 \/ 貨道 \/ 時間",
"Flow ID \/ Status": "流水號 \/ 狀態",
"Flow ID \/ Time": "流水號 \/ 時間",
"Force End Session": "強制結束當前會話",
"Force end current session": "強制結束目前的連線",
"From": "來源",
@ -710,7 +710,7 @@
"Immediate": "立即",
"In Stock": "當前庫存",
"Inactive": "已停用",
"Includes Credit Card/Mobile Pay": "含信用卡/行動支付",
"Includes Credit Card\/Mobile Pay": "含信用卡\/行動支付",
"Indefinite": "無限期",
"Info": "一般",
"Initial Admin Account": "初始管理帳號",
@ -729,8 +729,8 @@
"Invoice Date": "開立日期",
"Invoice Information": "發票資訊",
"Invoice Number": "發票號碼",
"Invoice Number / Flow ID": "發票號碼 / 流水號",
"Invoice Number / Time": "發票號碼 / 時間",
"Invoice Number \/ Flow ID": "發票號碼 \/ 流水號",
"Invoice Number \/ Time": "發票號碼 \/ 時間",
"Invoice Status": "發票開立狀態",
"Issued At": "開立時間",
"Item List": "商品清單",
@ -802,17 +802,17 @@
"Low stock and out-of-stock alerts": "低庫存與缺貨警示",
"Loyalty & Features": "行銷與點數",
"Machine": "機台",
"Machine / Date": "機台 / 日期",
"Machine / Employee": "機台 / 員工",
"Machine / Pass Code": "機台 / 通行碼",
"Machine / Slot": "機台 / 貨道",
"Machine \/ Date": "機台 \/ 日期",
"Machine \/ Employee": "機台 \/ 員工",
"Machine \/ Pass Code": "機台 \/ 通行碼",
"Machine \/ Slot": "機台 \/ 貨道",
"Machine Advertisement Settings": "機台廣告設置",
"Machine Count": "機台數量",
"Machine Details": "機台詳情",
"Machine Distribution": "機台分布",
"Machine Distribution Map": "機台分布地圖",
"Machine Flow ID": "機台流水號",
"Machine Flow ID / Time": "機台流水號 / 時間",
"Machine Flow ID \/ Time": "機台流水號 \/ 時間",
"Machine Images": "機台照片",
"Machine Info": "機台資訊",
"Machine Information": "機台資訊",
@ -956,9 +956,9 @@
"Movement History": "異動紀錄",
"Movement Logs": "異動紀錄",
"Multilingual Names": "多語系名稱",
"N/A": "不適用",
"N\/A": "不適用",
"Name": "名稱",
"Name / Machine": "名稱 / 機台",
"Name \/ Machine": "名稱 \/ 機台",
"Name in English": "英文名稱",
"Name in Japanese": "日文名稱",
"Name in Traditional Chinese": "繁體中文名稱",
@ -1101,7 +1101,7 @@
"Order Items": "商品內容",
"Order Management": "訂單管理",
"Order No.": "單號",
"Order Number / Time": "訂單編號 / 時間",
"Order Number \/ Time": "訂單編號 \/ 時間",
"Order Status": "訂單狀態",
"Order Time": "訂單時間",
"Order already completed": "訂單已完成",
@ -1227,18 +1227,18 @@
"Points": "點數功能",
"Points Settings": "點數設定",
"Points toggle": "點數開關",
"Points/Voucher": "點數/優惠券",
"Points\/Voucher": "點數\/優惠券",
"Position": "投放位置",
"Prepared": "已備貨",
"Preparing": "備貨中",
"Preview": "預覽",
"Previous": "上一頁",
"Price / Member": "售價 / 會員價",
"Price \/ Member": "售價 \/ 會員價",
"Pricing Information": "價格資訊",
"Print Invoice": "列印發票",
"Product": "商品",
"Product / Slot": "商品 / 貨道",
"Product / Stock": "商品 / 庫存",
"Product \/ Slot": "商品 \/ 貨道",
"Product \/ Stock": "商品 \/ 庫存",
"Product Count": "商品數量",
"Product Details": "商品明細",
"Product ID": "商品編號",
@ -1257,7 +1257,7 @@
"Product updated successfully": "商品已成功更新",
"Production Company": "生產公司",
"Products": "商品",
"Products / Stock": "商品 / 庫存",
"Products \/ Stock": "商品 \/ 庫存",
"Profile": "個人檔案",
"Profile Information": "個人基本資料",
"Profile Settings": "個人設定",
@ -1403,13 +1403,13 @@
"Schedule": "排程區間",
"Search Company Title...": "搜尋公司名稱...",
"Search Company...": "搜尋公司...",
"Search Flow ID / Slot...": "搜尋 流水號 / 貨道...",
"Search Invoice No / Flow ID...": "搜尋 發票號碼 / 流水號...",
"Search Flow ID \/ Slot...": "搜尋 流水號 \/ 貨道...",
"Search Invoice No \/ Flow ID...": "搜尋 發票號碼 \/ 流水號...",
"Search Machine...": "搜尋機台...",
"Search Order No / Flow ID / Invoice...": "搜尋 訂單號 / 流水號 / 發票號碼...",
"Search Order No / Cards & Codes...": "搜尋 訂單號 / 卡號與代碼...",
"Search Order No \/ Flow ID \/ Invoice...": "搜尋 訂單號 \/ 流水號 \/ 發票號碼...",
"Search Order No \/ Cards & Codes...": "搜尋 訂單號 \/ 卡號與代碼...",
"Search Product": "搜尋商品",
"Search Product / Slot...": "搜尋商品名稱 / 貨道...",
"Search Product \/ Slot...": "搜尋商品名稱 \/ 貨道...",
"Search accounts...": "搜尋帳號...",
"Search by ID or Name": "搜尋員工編號或姓名",
"Search by ID or Name...": "搜尋員工編號或姓名...",
@ -1417,7 +1417,7 @@
"Search by ID, Name or UID...": "搜尋員工編號、姓名或卡號...",
"Search by code, machine name or serial...": "搜尋代碼、機台名稱或序號...",
"Search by code, name or machine...": "搜尋代碼、名稱或機台...",
"Search by name or S/N...": "搜尋名稱或序號...",
"Search by name or S\/N...": "搜尋名稱或序號...",
"Search by name...": "搜尋名稱...",
"Search cargo lane": "搜尋貨道編號或商品名稱",
"Search categories...": "搜尋分類...",
@ -1496,7 +1496,7 @@
"Sign in to your account": "隨時隨地掌控您的業務。",
"Signed in as": "登入身份",
"Slot": "貨道",
"Slot / Product": "貨道 / 商品",
"Slot \/ Product": "貨道 \/ 商品",
"Slot Mechanism (default: Conveyor, check for Spring)": "貨道機制 (預設履帶,勾選為彈簧)",
"Slot No": "貨道編號",
"Slot Status": "貨道效期",
@ -1547,15 +1547,15 @@
"Start Time": "開始時間",
"Statistics": "數據統計",
"Status": "狀態",
"Status / Invoice": "狀態 / 發票",
"Status / Temp / Sub / Card / Scan": "狀態 / 溫度 / 下位機 / 刷卡機 / 掃碼機",
"Status \/ Invoice": "狀態 \/ 發票",
"Status \/ Temp \/ Sub \/ Card \/ Scan": "狀態 \/ 溫度 \/ 下位機 \/ 刷卡機 \/ 掃碼機",
"Status Timeline": "狀態時間線",
"Status updated successfully": "狀態更新成功",
"Stock": "庫存",
"Stock & Expiry": "庫存與效期",
"Stock & Expiry Management": "庫存與效期管理",
"Stock & Expiry Overview": "庫存與效期一覽",
"Stock / Capacity": "庫存/上限",
"Stock \/ Capacity": "庫存\/上限",
"Stock In": "庫存入庫",
"Stock Level": "庫存水準",
"Stock Level > 50%": "庫存高於 50%",
@ -1585,7 +1585,7 @@
"Store ID": "商店代號",
"Store Management": "店家管理",
"StoreID": "商店代號 (StoreID)",
"Sub / Card / Scan": "下位機 / 刷卡機 / 掃碼機",
"Sub \/ Card \/ Scan": "下位機 \/ 刷卡機 \/ 掃碼機",
"Sub Account Management": "子帳號管理",
"Sub Account Roles": "子帳號角色",
"Sub Accounts": "子帳號",
@ -1685,7 +1685,7 @@
"Track": "履帶",
"Track Channel Limit": "履帶貨道上限",
"Track Limit": "履帶貨道上限",
"Track Limit (Track/Spring)": "貨道上限(履帶/彈簧)",
"Track Limit (Track\/Spring)": "貨道上限(履帶\/彈簧)",
"Track device health and maintenance history": "追蹤設備健康與維修歷史",
"Track stock levels, stock-in orders, and movement history": "追蹤庫存水位、進貨單與異動紀錄",
"Track stock-in orders and movement history": "追蹤進貨單據與庫存異動紀錄",
@ -1718,7 +1718,7 @@
"Type to search or leave blank for system defaults.": "輸入關鍵字搜尋,或留空以使用系統預設。",
"UI Elements": "UI元素",
"Unassigned": "未指派",
"Unassigned / No Change": "未指派 / 不變動",
"Unassigned \/ No Change": "未指派 \/ 不變動",
"Unauthorized Status": "未授權",
"Unauthorized login attempt: :account": "越權登入嘗試::account",
"Unauthorized: Account not authorized for this machine": "授權失敗:此帳號無存取該機台的權限",
@ -1884,7 +1884,7 @@
"data-config.sub-accounts": "子帳號管理",
"description": "商品描述",
"disabled": "停用",
"e.g. 500ml / 300g": "例如500ml / 300g",
"e.g. 500ml \/ 300g": "例如500ml \/ 300g",
"e.g. John Doe": "例如:張曉明",
"e.g. Main Warehouse": "如總倉A",
"e.g. TWSTAR": "例如TWSTAR",
@ -2070,7 +2070,7 @@
"Select Product for Analysis": "選擇分析商品",
"All Products (ALL)": "全部商品 (ALL)",
"Tenant Company": "所屬租戶公司",
"Cross-Company / Headquarter Global Stats": "跨公司 / 總部全域統計",
"Cross-Company \/ Headquarter Global Stats": "跨公司 \/ 總部全域統計",
"Product Sales & Profit Trend": "商品銷售利潤走勢",
"Daily operational variance curve for selected timeframe": "所選統計區間之每日營運變動曲線",
"Detailed Analysis Data": "明細分析數據",
@ -2197,5 +2197,31 @@
"Effective Alert Types": "目前生效的告警類型",
"Machine Alert Settings": "機台告警設定",
"Configure alert types and temperature thresholds": "設定告警類型與溫度門檻",
"Machine model saved successfully.": "機台型號已成功新增。"
"Machine model saved successfully.": "機台型號已成功新增。",
"Replenishment Order": "機台補貨單",
"Transfer Order": "庫存調撥單",
"Ready to print": "準備列印",
"Print": "列印",
"Platform Operator": "平台營運商",
"Vending Machine Product Replenishment": "機台商品補貨",
"Warehouse to Warehouse Transfer": "倉庫至倉庫調撥",
"Machine to Warehouse Return": "機台退庫至倉庫",
"Source Machine": "來源機台",
"Assigned Personnel": "指派人員",
"Print Time": "列印時間",
"Stock Snap": "庫存快照",
"Replenish Qty": "補貨數量",
"Transfer Qty": "調撥數量",
"Check": "核對",
"Actual Qty": "實補數量",
"Print Notice": "列印提示",
"Please make sure to enable \"Background graphics\" in your browser print settings to print product images and styled components correctly.": "請確保在瀏覽器列印設定中啟用「背景圖形」,以便正確列印商品圖片和樣式元件。",
"Prepared By": "經辦人",
"Warehouse Stock Out": "倉庫出庫確認",
"Courier\/Replenisher": "物流經辦\/補貨員",
"Machine Inbound Confirmation": "機台入庫確認",
"Transfer Out Confirmation": "調出確認",
"Courier\/Dispatcher": "物流經辦\/派送員",
"Transfer In Confirmation": "調入確認",
"Print Order": "列印單據"
}

View File

@ -15,10 +15,18 @@
</template>
</p>
</div>
<div class="flex items-center gap-3">
<button type="button" @click="window.open('/admin/warehouses/replenishments/' + activeOrder.id + '/print', '_blank')" class="p-2.5 rounded-full hover:bg-slate-50 dark:hover:bg-slate-800 text-cyan-500 hover:text-cyan-600 transition-colors border border-slate-100 dark:border-slate-800 shadow-sm flex items-center justify-center" title="{{ __('Print Order') }}">
<svg class="w-5 h-5 stroke-[2.5]" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" d="M6.72 13.82l-.024-.03c-1.285-1.56-1.93-3.19-1.93-5.166C4.766 4.902 6.713 3 9.12 3c2.407 0 4.354 1.902 4.354 4.624 0 1.977-.645 3.607-1.93 5.167-.004.005-.008.01-.012.015L9.12 15.652l-2.4-1.832z" />
<path stroke-linecap="round" stroke-linejoin="round" d="M19 12h2m-2 4h2m-2-8h2M3 12h2m-2 4h2m-2-8h2M12 18H8.5c-.83 0-1.5-.67-1.5-1.5V14m8.5 4H16m0 0v-4.5c0-.83-.67-1.5-1.5-1.5H11" />
</svg>
</button>
<button type="button" @click="showOrderDetails = false" class="p-2.5 rounded-full hover:bg-slate-50 dark:hover:bg-slate-800 text-slate-400 transition-colors border border-slate-100 dark:border-slate-800 shadow-sm">
<svg class="w-5 h-5 stroke-[2.5]" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12" /></svg>
</button>
</div>
</div>
{{-- Content --}}
<div class="relative flex-1 px-6 py-8">
@ -68,6 +76,17 @@
</div>
{{-- Action Buttons --}}
<div class="flex flex-wrap gap-2">
{{-- 列印按鈕永遠顯示 --}}
<button type="button" @click="window.open('/admin/warehouses/replenishments/' + activeOrder.id + '/print', '_blank')" class="px-4 py-2 rounded-xl text-xs font-black bg-cyan-500 text-white hover:bg-cyan-600 transition-all shadow-lg shadow-cyan-500/10 flex items-center gap-1.5">
<svg class="w-3.5 h-3.5 stroke-[2.5]" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" d="M6.72 13.82l-.024-.03c-1.285-1.56-1.93-3.19-1.93-5.166C4.766 4.902 6.713 3 9.12 3c2.407 0 4.354 1.902 4.354 4.624 0 1.977-.645 3.607-1.93 5.167-.004.005-.008.01-.012.015L9.12 15.652l-2.4-1.832z" />
<path stroke-linecap="round" stroke-linejoin="round" d="M19 12h2m-2 4h2m-2-8h2M3 12h2m-2 4h2m-2-8h2M12 18H8.5c-.83 0-1.5-.67-1.5-1.5V14m8.5 4H16m0 0v-4.5c0-.83-.67-1.5-1.5-1.5H11" />
</svg>
{{ __('Print Order') }}
</button>
{{-- 其他需要依狀態顯示的動作 --}}
<template x-if="activeOrder.status !== 'completed' && activeOrder.status !== 'cancelled'">
<div class="flex flex-wrap gap-2">
<button type="button" @click="openAssignModal(activeOrder.id)" class="px-4 py-2 rounded-xl text-xs font-black bg-slate-100 dark:bg-slate-800 text-slate-600 dark:text-slate-300 hover:bg-slate-200 dark:hover:bg-slate-700 transition-all border border-slate-200 dark:border-slate-700">
@ -85,6 +104,7 @@
<button type="button" @click="confirmCancel(activeOrder.id)" class="px-4 py-2 rounded-xl text-xs font-black bg-rose-500/10 text-rose-500 border border-rose-500/20 hover:bg-rose-500 hover:text-white transition-all">{{ __('Cancel Order') }}</button>
</div>
</template>
</div>
{{-- Items List --}}
<div class="space-y-5">

View File

@ -0,0 +1,264 @@
<!DOCTYPE html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}" class="h-full bg-white">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>{{ __('Replenishment Order') }} - {{ $order->order_no }}</title>
<!-- Fonts -->
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Outfit:wght@400;600;800;900&family=Plus+Jakarta+Sans:wght@400;500;700;800&display=swap" rel="stylesheet">
<!-- Tailwind CSS (Vite setup) -->
@vite(['resources/css/app.css', 'resources/js/app.js'])
<style>
body {
font-family: 'Plus Jakarta Sans', sans-serif;
background-color: #fff;
color: #0f172a;
-webkit-print-color-adjust: exact;
print-color-adjust: exact;
}
.font-display {
font-family: 'Outfit', sans-serif;
}
@media print {
.no-print {
display: none !important;
}
body {
background: #ffffff !important;
color: #000000 !important;
font-size: 12px;
}
.print-border {
border-color: #94a3b8 !important;
}
.print-bg-gray {
background-color: #f1f5f9 !important;
}
@page {
size: A4 portrait;
margin: 15mm;
}
}
</style>
</head>
<body class="p-6 sm:p-12 min-h-screen flex flex-col justify-between">
<!-- Container -->
<div class="max-w-4xl mx-auto w-full flex-1">
<!-- Top Operations (No Print) -->
<div class="no-print flex items-center justify-between gap-4 mb-8 p-4 bg-slate-50 dark:bg-slate-900 rounded-2xl border border-slate-200/50 dark:border-slate-800/50">
<div class="flex items-center gap-2">
<span class="w-2.5 h-2.5 rounded-full bg-cyan-500 animate-pulse"></span>
<span class="text-xs font-bold text-slate-500 dark:text-slate-400 uppercase tracking-widest">{{ __('Ready to print') }}</span>
</div>
<div class="flex gap-3">
<button onclick="window.print()" class="px-5 py-2.5 bg-cyan-500 text-white rounded-xl text-xs font-black uppercase tracking-widest hover:bg-cyan-600 transition-all active:scale-95 flex items-center gap-2 shadow-lg shadow-cyan-500/20">
<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24" stroke-width="2.5">
<path stroke-linecap="round" stroke-linejoin="round" d="M6.72 13.82l-.024-.03c-1.285-1.56-1.93-3.19-1.93-5.166C4.766 4.902 6.713 3 9.12 3c2.407 0 4.354 1.902 4.354 4.624 0 1.977-.645 3.607-1.93 5.167-.004.005-.008.01-.012.015L9.12 15.652l-2.4-1.832z" />
<path stroke-linecap="round" stroke-linejoin="round" d="M19 12h2m-2 4h2m-2-8h2M3 12h2m-2 4h2m-2-8h2M12 18H8.5c-.83 0-1.5-.67-1.5-1.5V14m8.5 4H16m0 0v-4.5c0-.83-.67-1.5-1.5-1.5H11" />
</svg>
{{ __('Print') }}
</button>
<button onclick="window.close()" class="px-5 py-2.5 bg-slate-100 dark:bg-slate-800 text-slate-600 dark:text-slate-300 rounded-xl text-xs font-black uppercase tracking-widest hover:bg-slate-200 dark:hover:bg-slate-700 transition-all active:scale-95">
{{ __('Close') }}
</button>
</div>
</div>
<!-- Header -->
<div class="flex flex-col sm:flex-row sm:items-start justify-between gap-6 pb-6 border-b-2 border-slate-900 print-border">
<div>
<!-- Brand -->
<p class="text-xs font-black text-cyan-600 uppercase tracking-[0.3em] font-display mb-1">Star Cloud System</p>
<p class="text-[10px] font-bold text-slate-400 uppercase tracking-widest mb-4">Tenant: {{ Auth::user()->company?->name ?? __('Platform Operator') }}</p>
<!-- Document Title -->
<h1 class="text-3xl font-black text-slate-900 tracking-tight font-display uppercase">{{ __('Replenishment Order') }}</h1>
<p class="text-xs font-bold text-slate-500 mt-1 uppercase tracking-widest">{{ __('Vending Machine Product Replenishment') }}</p>
</div>
<div class="text-left sm:text-right flex flex-col sm:items-end">
<!-- Status Badge -->
<span class="inline-flex items-center px-3 py-1.5 rounded-xl text-xs font-black uppercase tracking-widest border border-slate-900 print-border text-slate-900 mb-3 w-fit">
{{ __($order->status) }}
</span>
<!-- Mono Order No -->
<p class="text-[10px] font-black text-slate-400 uppercase tracking-widest mb-1">{{ __('Order Number') }}</p>
<p class="text-2xl font-black text-slate-900 font-mono tracking-tighter">{{ $order->order_no }}</p>
</div>
</div>
<!-- Info Grid -->
<div class="grid grid-cols-1 md:grid-cols-2 gap-y-4 gap-x-8 py-8 border-b border-slate-200">
<div class="space-y-1">
<p class="text-[10px] font-black text-slate-400 uppercase tracking-widest">{{ __('Source Warehouse') }}</p>
<p class="text-sm font-extrabold text-slate-800">{{ $order->warehouse?->name ?? '-' }}</p>
</div>
<div class="space-y-1">
<p class="text-[10px] font-black text-slate-400 uppercase tracking-widest">{{ __('Target Machine') }}</p>
<p class="text-sm font-extrabold text-slate-800">{{ $order->machine?->name ?? '-' }} <span class="text-xs font-mono font-bold text-slate-400 tracking-widest uppercase">({{ $order->machine?->serial_no }})</span></p>
</div>
<div class="space-y-1">
<p class="text-[10px] font-black text-slate-400 uppercase tracking-widest">{{ __('Created By') }}</p>
<p class="text-sm font-bold text-slate-700">{{ $order->creator?->name ?? __('System') }}</p>
</div>
<div class="space-y-1">
<p class="text-[10px] font-black text-slate-400 uppercase tracking-widest">{{ __('Assigned Personnel') }}</p>
<p class="text-sm font-bold text-slate-700">{{ $order->assignee?->name ?? __('Unassigned') }}</p>
</div>
<div class="space-y-1">
<p class="text-[10px] font-black text-slate-400 uppercase tracking-widest">{{ __('Created At') }}</p>
<p class="text-sm font-mono font-bold text-slate-600">{{ $order->created_at->timezone('Asia/Taipei')->format('Y-m-d H:i:s') }}</p>
</div>
<div class="space-y-1">
<p class="text-[10px] font-black text-slate-400 uppercase tracking-widest">{{ __('Print Time') }}</p>
<p class="text-sm font-mono font-bold text-slate-600">{{ now()->timezone('Asia/Taipei')->format('Y-m-d H:i:s') }}</p>
</div>
@if($order->note)
<div class="col-span-1 md:col-span-2 space-y-1 pt-2 border-t border-dashed border-slate-200">
<p class="text-[10px] font-black text-slate-400 uppercase tracking-widest">{{ __('Note') }}</p>
<p class="text-xs font-bold text-slate-600 italic">{{ $order->note }}</p>
</div>
@endif
</div>
<!-- Items Table -->
<div class="py-8">
<h3 class="text-xs font-black text-slate-900 uppercase tracking-[0.2em] mb-4 font-display">{{ __('Replenishment Details') }} ({{ $items->count() }} {{ __('Items') }})</h3>
<table class="w-full text-left border-collapse table-fixed">
<thead>
<tr class="border-b-2 border-slate-900 print-border bg-slate-50 print-bg-gray">
<th class="px-4 py-3 text-[10px] font-black text-slate-500 uppercase tracking-widest w-16 text-center whitespace-nowrap">
{{ __('Slot') }}
</th>
<th class="px-4 py-3 text-[10px] font-black text-slate-500 uppercase tracking-widest w-16 text-center whitespace-nowrap">
{{ __('Image') }}
</th>
<th class="px-4 py-3 text-[10px] font-black text-slate-500 uppercase tracking-widest min-w-[200px] whitespace-nowrap">
{{ __('Product Name') }}
</th>
<th class="px-4 py-3 text-[10px] font-black text-slate-500 uppercase tracking-widest w-28 whitespace-nowrap">
{{ __('Barcode') }}
</th>
<th class="px-4 py-3 text-[10px] font-black text-slate-500 uppercase tracking-widest w-24 text-right whitespace-nowrap">
{{ __('Stock Snap') }}
</th>
<th class="px-4 py-3 text-[10px] font-black text-slate-500 uppercase tracking-widest w-24 text-right whitespace-nowrap">
{{ __('Replenish Qty') }}
</th>
<th class="px-4 py-3 text-[10px] font-black text-slate-500 uppercase tracking-widest w-20 text-center no-print whitespace-nowrap">
{{ __('Check') }}
</th>
<!-- 列印時顯示的手寫格 -->
<th class="hidden print:table-cell px-4 py-3 text-[10px] font-black text-slate-500 uppercase tracking-widest w-24 text-center whitespace-nowrap">
{{ __('Actual Qty') }}
</th>
</tr>
</thead>
<tbody class="divide-y divide-slate-200">
@foreach($items as $index => $item)
<tr class="hover:bg-slate-50/50 transition-colors">
<td class="px-4 py-3 font-mono font-black text-slate-900 text-center text-sm">
<span class="inline-block px-2 py-1 rounded bg-slate-100 print-bg-gray border border-slate-200 print-border">
{{ $item->slot_no }}
</span>
</td>
<td class="px-4 py-3">
<div class="mx-auto w-10 h-10 rounded-lg border border-slate-200 print-border overflow-hidden bg-slate-50 flex items-center justify-center shrink-0">
@if($item->product?->image_url)
<img src="{{ $item->product->image_url }}" class="w-full h-full object-cover">
@else
<svg class="w-5 h-5 text-slate-300" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M4 16l4.586-4.586a2 2 0 012.828 0L16 16m-2-2l1.586-1.586a2 2 0 012.828 0L20 14m-6-6h.01M6 20h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z" /></svg>
@endif
</div>
</td>
<td class="px-4 py-3 min-w-[200px] break-words">
<p class="text-sm font-extrabold text-slate-800 tracking-tight whitespace-normal">{{ $item->product?->localized_name ?? __('Unknown') }}</p>
<p class="text-[9px] font-mono font-bold text-slate-400 uppercase tracking-widest mt-0.5">ID: {{ $item->product_id }}</p>
</td>
<td class="px-4 py-3 font-mono text-xs font-bold text-slate-500 break-all">
{{ $item->product?->barcode ?? '-' }}
</td>
<td class="px-4 py-3 text-right text-xs font-bold text-slate-500 font-mono whitespace-nowrap">
{{ $item->current_stock }} / {{ $item->max_stock }}
</td>
<td class="px-4 py-3 text-right whitespace-nowrap">
<p class="text-lg font-black text-cyan-600 font-display tracking-tight">x{{ $item->quantity }}</p>
</td>
<!-- UI 頁面上的 check 欄位 -->
<td class="px-4 py-3 text-center no-print">
<div class="inline-flex items-center justify-center w-5 h-5 border-2 border-slate-300 rounded-md"></div>
</td>
<!-- 列印時的手寫框 -->
<td class="hidden print:table-cell px-4 py-3 text-center vertical-middle">
<div class="mx-auto w-12 h-6 border border-slate-400 print-border rounded"></div>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
<!-- Print Footer Warning (No Print) -->
<div class="no-print mt-4 p-4 bg-amber-500/10 border border-amber-500/20 text-amber-600 rounded-2xl flex items-start gap-4 font-bold text-xs">
<svg class="w-4 h-4 shrink-0 mt-0.5" fill="none" stroke="currentColor" viewBox="0 0 24 24" stroke-width="2.5">
<path stroke-linecap="round" stroke-linejoin="round" d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z" />
</svg>
<div>
<p class="font-extrabold uppercase tracking-widest mb-1">{{ __('Print Notice') }}</p>
<p>{{ __('Please make sure to enable "Background graphics" in your browser print settings to print product images and styled components correctly.') }}</p>
</div>
</div>
</div>
<!-- Sign-off Section -->
<div class="max-w-4xl mx-auto w-full mt-12 pt-8 border-t border-slate-200">
<div class="grid grid-cols-2 md:grid-cols-4 gap-6 text-center">
<div class="space-y-6">
<p class="text-[10px] font-black text-slate-400 uppercase tracking-widest">{{ __('Prepared By') }}</p>
<div class="mx-auto w-32 border-b border-slate-400 print-border h-8"></div>
</div>
<div class="space-y-6">
<p class="text-[10px] font-black text-slate-400 uppercase tracking-widest">{{ __('Warehouse Stock Out') }}</p>
<div class="mx-auto w-32 border-b border-slate-400 print-border h-8"></div>
</div>
<div class="space-y-6">
<p class="text-[10px] font-black text-slate-400 uppercase tracking-widest">{{ __('Courier/Replenisher') }}</p>
<div class="mx-auto w-32 border-b border-slate-400 print-border h-8"></div>
</div>
<div class="space-y-6">
<p class="text-[10px] font-black text-slate-400 uppercase tracking-widest">{{ __('Machine Inbound Confirmation') }}</p>
<div class="mx-auto w-32 border-b border-slate-400 print-border h-8"></div>
</div>
</div>
<div class="mt-8 text-center text-[10px] font-bold text-slate-400 uppercase tracking-widest">
Star Cloud © 2026. All rights reserved.
</div>
</div>
<!-- Auto Print Script -->
<script>
window.addEventListener('DOMContentLoaded', () => {
// 自動觸發列印
setTimeout(() => {
window.print();
}, 500);
});
</script>
</body>
</html>

View File

@ -0,0 +1,268 @@
<!DOCTYPE html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}" class="h-full bg-white">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>{{ __('Transfer Order') }} - {{ $order->order_no }}</title>
<!-- Fonts -->
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Outfit:wght@400;600;800;900&family=Plus+Jakarta+Sans:wght@400;500;700;800&display=swap" rel="stylesheet">
<!-- Tailwind CSS (Vite setup) -->
@vite(['resources/css/app.css', 'resources/js/app.js'])
<style>
body {
font-family: 'Plus Jakarta Sans', sans-serif;
background-color: #fff;
color: #0f172a;
-webkit-print-color-adjust: exact;
print-color-adjust: exact;
}
.font-display {
font-family: 'Outfit', sans-serif;
}
@media print {
.no-print {
display: none !important;
}
body {
background: #ffffff !important;
color: #000000 !important;
font-size: 12px;
}
.print-border {
border-color: #94a3b8 !important;
}
.print-bg-gray {
background-color: #f1f5f9 !important;
}
@page {
size: A4 portrait;
margin: 15mm;
}
}
</style>
</head>
<body class="p-6 sm:p-12 min-h-screen flex flex-col justify-between">
<!-- Container -->
<div class="max-w-4xl mx-auto w-full flex-1">
<!-- Top Operations (No Print) -->
<div class="no-print flex items-center justify-between gap-4 mb-8 p-4 bg-slate-50 dark:bg-slate-900 rounded-2xl border border-slate-200/50 dark:border-slate-800/50">
<div class="flex items-center gap-2">
<span class="w-2.5 h-2.5 rounded-full bg-cyan-500 animate-pulse"></span>
<span class="text-xs font-bold text-slate-500 dark:text-slate-400 uppercase tracking-widest">{{ __('Ready to print') }}</span>
</div>
<div class="flex gap-3">
<button onclick="window.print()" class="px-5 py-2.5 bg-cyan-500 text-white rounded-xl text-xs font-black uppercase tracking-widest hover:bg-cyan-600 transition-all active:scale-95 flex items-center gap-2 shadow-lg shadow-cyan-500/20">
<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24" stroke-width="2.5">
<path stroke-linecap="round" stroke-linejoin="round" d="M6.72 13.82l-.024-.03c-1.285-1.56-1.93-3.19-1.93-5.166C4.766 4.902 6.713 3 9.12 3c2.407 0 4.354 1.902 4.354 4.624 0 1.977-.645 3.607-1.93 5.167-.004.005-.008.01-.012.015L9.12 15.652l-2.4-1.832z" />
<path stroke-linecap="round" stroke-linejoin="round" d="M19 12h2m-2 4h2m-2-8h2M3 12h2m-2 4h2m-2-8h2M12 18H8.5c-.83 0-1.5-.67-1.5-1.5V14m8.5 4H16m0 0v-4.5c0-.83-.67-1.5-1.5-1.5H11" />
</svg>
{{ __('Print') }}
</button>
<button onclick="window.close()" class="px-5 py-2.5 bg-slate-100 dark:bg-slate-800 text-slate-600 dark:text-slate-300 rounded-xl text-xs font-black uppercase tracking-widest hover:bg-slate-200 dark:hover:bg-slate-700 transition-all active:scale-95">
{{ __('Close') }}
</button>
</div>
</div>
<!-- Header -->
<div class="flex flex-col sm:flex-row sm:items-start justify-between gap-6 pb-6 border-b-2 border-slate-900 print-border">
<div>
<!-- Brand -->
<p class="text-xs font-black text-cyan-600 uppercase tracking-[0.3em] font-display mb-1">Star Cloud System</p>
<p class="text-[10px] font-bold text-slate-400 uppercase tracking-widest mb-4">Tenant: {{ Auth::user()->company?->name ?? __('Platform Operator') }}</p>
<!-- Document Title -->
<h1 class="text-3xl font-black text-slate-900 tracking-tight font-display uppercase">{{ __('Transfer Order') }}</h1>
<p class="text-xs font-bold text-slate-500 mt-1 uppercase tracking-widest">
{{ $order->type === \App\Models\Warehouse\TransferOrder::TYPE_W2W ? __('Warehouse to Warehouse Transfer') : __('Machine to Warehouse Return') }}
</p>
</div>
<div class="text-left sm:text-right flex flex-col sm:items-end">
<!-- Status Badge -->
<span class="inline-flex items-center px-3 py-1.5 rounded-xl text-xs font-black uppercase tracking-widest border border-slate-900 print-border text-slate-900 mb-3 w-fit">
{{ __($order->status) }}
</span>
<!-- Mono Order No -->
<p class="text-[10px] font-black text-slate-400 uppercase tracking-widest mb-1">{{ __('Order Number') }}</p>
<p class="text-2xl font-black text-slate-900 font-mono tracking-tighter">{{ $order->order_no }}</p>
</div>
</div>
<!-- Info Grid -->
<div class="grid grid-cols-1 md:grid-cols-2 gap-y-4 gap-x-8 py-8 border-b border-slate-200">
<div class="space-y-1">
@if($order->type === \App\Models\Warehouse\TransferOrder::TYPE_W2W)
<p class="text-[10px] font-black text-slate-400 uppercase tracking-widest">{{ __('Source Warehouse') }}</p>
<p class="text-sm font-extrabold text-slate-800">{{ $order->fromWarehouse?->name ?? '-' }}</p>
@else
<p class="text-[10px] font-black text-slate-400 uppercase tracking-widest">{{ __('Source Machine') }}</p>
<p class="text-sm font-extrabold text-slate-800">
{{ $order->fromMachine?->name ?? '-' }}
<span class="text-xs font-mono font-bold text-slate-400 tracking-widest uppercase">({{ $order->fromMachine?->serial_no }})</span>
</p>
@endif
</div>
<div class="space-y-1">
<p class="text-[10px] font-black text-slate-400 uppercase tracking-widest">{{ __('Target Warehouse') }}</p>
<p class="text-sm font-extrabold text-slate-800">{{ $order->toWarehouse?->name ?? '-' }}</p>
</div>
<div class="space-y-1">
<p class="text-[10px] font-black text-slate-400 uppercase tracking-widest">{{ __('Created By') }}</p>
<p class="text-sm font-bold text-slate-700">{{ $order->creator?->name ?? __('System') }}</p>
</div>
<div class="space-y-1">
<p class="text-[10px] font-black text-slate-400 uppercase tracking-widest">{{ __('Transfer Type') }}</p>
<p class="text-sm font-bold text-slate-700">
{{ $order->type === \App\Models\Warehouse\TransferOrder::TYPE_W2W ? __('Warehouse to Warehouse') : __('Machine to Warehouse') }}
</p>
</div>
<div class="space-y-1">
<p class="text-[10px] font-black text-slate-400 uppercase tracking-widest">{{ __('Created At') }}</p>
<p class="text-sm font-mono font-bold text-slate-600">{{ $order->created_at->timezone('Asia/Taipei')->format('Y-m-d H:i:s') }}</p>
</div>
<div class="space-y-1">
<p class="text-[10px] font-black text-slate-400 uppercase tracking-widest">{{ __('Print Time') }}</p>
<p class="text-sm font-mono font-bold text-slate-600">{{ now()->timezone('Asia/Taipei')->format('Y-m-d H:i:s') }}</p>
</div>
@if($order->note)
<div class="col-span-1 md:col-span-2 space-y-1 pt-2 border-t border-dashed border-slate-200">
<p class="text-[10px] font-black text-slate-400 uppercase tracking-widest">{{ __('Note') }}</p>
<p class="text-xs font-bold text-slate-600 italic">{{ $order->note }}</p>
</div>
@endif
</div>
<!-- Items Table -->
<div class="py-8">
<h3 class="text-xs font-black text-slate-900 uppercase tracking-[0.2em] mb-4 font-display">{{ __('Transfer Details') }} ({{ $items->count() }} {{ __('Items') }})</h3>
<table class="w-full text-left border-collapse table-fixed">
<thead>
<tr class="border-b-2 border-slate-900 print-border bg-slate-50 print-bg-gray">
<th class="px-4 py-3 text-[10px] font-black text-slate-500 uppercase tracking-widest w-16 text-center whitespace-nowrap">
#
</th>
<th class="px-4 py-3 text-[10px] font-black text-slate-500 uppercase tracking-widest w-16 text-center whitespace-nowrap">
{{ __('Image') }}
</th>
<th class="px-4 py-3 text-[10px] font-black text-slate-500 uppercase tracking-widest min-w-[200px] whitespace-nowrap">
{{ __('Product Name') }}
</th>
<th class="px-4 py-3 text-[10px] font-black text-slate-500 uppercase tracking-widest w-32 whitespace-nowrap">
{{ __('Barcode') }}
</th>
<th class="px-4 py-3 text-[10px] font-black text-slate-500 uppercase tracking-widest w-24 text-right whitespace-nowrap">
{{ __('Transfer Qty') }}
</th>
<th class="px-4 py-3 text-[10px] font-black text-slate-500 uppercase tracking-widest w-20 text-center no-print whitespace-nowrap">
{{ __('Check') }}
</th>
<!-- 列印時顯示的手寫格 -->
<th class="hidden print:table-cell px-4 py-3 text-[10px] font-black text-slate-500 uppercase tracking-widest w-24 text-center whitespace-nowrap">
{{ __('Actual Qty') }}
</th>
</tr>
</thead>
<tbody class="divide-y divide-slate-200">
@foreach($items as $index => $item)
<tr class="hover:bg-slate-50/50 transition-colors">
<td class="px-4 py-3 font-mono font-black text-slate-900 text-center text-sm">
{{ $index + 1 }}
</td>
<td class="px-4 py-3">
<div class="mx-auto w-10 h-10 rounded-lg border border-slate-200 print-border overflow-hidden bg-slate-50 flex items-center justify-center shrink-0">
@if($item->product?->image_url)
<img src="{{ $item->product->image_url }}" class="w-full h-full object-cover">
@else
<svg class="w-5 h-5 text-slate-300" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M4 16l4.586-4.586a2 2 0 012.828 0L16 16m-2-2l1.586-1.586a2 2 0 012.828 0L20 14m-6-6h.01M6 20h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z" /></svg>
@endif
</div>
</td>
<td class="px-4 py-3 min-w-[200px] break-words">
<p class="text-sm font-extrabold text-slate-800 tracking-tight whitespace-normal">{{ $item->product?->localized_name ?? __('Unknown') }}</p>
<p class="text-[9px] font-mono font-bold text-slate-400 uppercase tracking-widest mt-0.5">ID: {{ $item->product_id }}</p>
</td>
<td class="px-4 py-3 font-mono text-xs font-bold text-slate-500 break-all">
{{ $item->product?->barcode ?? '-' }}
</td>
<td class="px-4 py-3 text-right whitespace-nowrap">
<p class="text-lg font-black text-cyan-600 font-display tracking-tight">x{{ $item->quantity }}</p>
</td>
<!-- UI 頁面上的 check 欄位 -->
<td class="px-4 py-3 text-center no-print">
<div class="inline-flex items-center justify-center w-5 h-5 border-2 border-slate-300 rounded-md"></div>
</td>
<!-- 列印時的手寫框 -->
<td class="hidden print:table-cell px-4 py-3 text-center vertical-middle">
<div class="mx-auto w-12 h-6 border border-slate-400 print-border rounded"></div>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
<!-- Print Footer Warning (No Print) -->
<div class="no-print mt-4 p-4 bg-amber-500/10 border border-amber-500/20 text-amber-600 rounded-2xl flex items-start gap-4 font-bold text-xs">
<svg class="w-4 h-4 shrink-0 mt-0.5" fill="none" stroke="currentColor" viewBox="0 0 24 24" stroke-width="2.5">
<path stroke-linecap="round" stroke-linejoin="round" d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z" />
</svg>
<div>
<p class="font-extrabold uppercase tracking-widest mb-1">{{ __('Print Notice') }}</p>
<p>{{ __('Please make sure to enable "Background graphics" in your browser print settings to print product images and styled components correctly.') }}</p>
</div>
</div>
</div>
<!-- Sign-off Section -->
<div class="max-w-4xl mx-auto w-full mt-12 pt-8 border-t border-slate-200">
<div class="grid grid-cols-2 md:grid-cols-4 gap-6 text-center">
<div class="space-y-6">
<p class="text-[10px] font-black text-slate-400 uppercase tracking-widest">{{ __('Prepared By') }}</p>
<div class="mx-auto w-32 border-b border-slate-400 print-border h-8"></div>
</div>
<div class="space-y-6">
<p class="text-[10px] font-black text-slate-400 uppercase tracking-widest">{{ __('Transfer Out Confirmation') }}</p>
<div class="mx-auto w-32 border-b border-slate-400 print-border h-8"></div>
</div>
<div class="space-y-6">
<p class="text-[10px] font-black text-slate-400 uppercase tracking-widest">{{ __('Courier/Dispatcher') }}</p>
<div class="mx-auto w-32 border-b border-slate-400 print-border h-8"></div>
</div>
<div class="space-y-6">
<p class="text-[10px] font-black text-slate-400 uppercase tracking-widest">{{ __('Transfer In Confirmation') }}</p>
<div class="mx-auto w-32 border-b border-slate-400 print-border h-8"></div>
</div>
</div>
<div class="mt-8 text-center text-[10px] font-bold text-slate-400 uppercase tracking-widest">
Star Cloud © 2026. All rights reserved.
</div>
</div>
<!-- Auto Print Script -->
<script>
window.addEventListener('DOMContentLoaded', () => {
// 自動觸發列印
setTimeout(() => {
window.print();
}, 500);
});
</script>
</body>
</html>

View File

@ -707,6 +707,13 @@
</div>
</template>
</div>
<div class="flex items-center gap-3">
<button type="button" @click="window.open('/admin/warehouses/transfers/' + activeOrder.id + '/print', '_blank')" class="p-2 text-cyan-500 hover:text-cyan-600 bg-white dark:bg-slate-800 hover:bg-slate-100 dark:hover:bg-slate-700 rounded-full focus:outline-none transition duration-300 shadow-sm border border-slate-200 dark:border-slate-700 flex items-center justify-center" title="{{ __('Print Order') }}">
<svg class="w-5 h-5 stroke-[2.5]" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" d="M6.72 13.82l-.024-.03c-1.285-1.56-1.93-3.19-1.93-5.166C4.766 4.902 6.713 3 9.12 3c2.407 0 4.354 1.902 4.354 4.624 0 1.977-.645 3.607-1.93 5.167-.004.005-.008.01-.012.015L9.12 15.652l-2.4-1.832z" />
<path stroke-linecap="round" stroke-linejoin="round" d="M19 12h2m-2 4h2m-2-8h2M3 12h2m-2 4h2m-2-8h2M12 18H8.5c-.83 0-1.5-.67-1.5-1.5V14m8.5 4H16m0 0v-4.5c0-.83-.67-1.5-1.5-1.5H11" />
</svg>
</button>
<button type="button" @click="showOrderDetails = false"
class="bg-white dark:bg-slate-800 rounded-full p-2 text-slate-400 hover:text-slate-500 hover:bg-slate-100 dark:hover:bg-slate-700 focus:outline-none transition duration-300 shadow-sm border border-slate-200 dark:border-slate-700">
<svg class="h-5 w-5" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5">
@ -715,6 +722,7 @@
</button>
</div>
</div>
</div>
<!-- Content -->
<div class="flex-1 overflow-y-auto p-6 sm:p-8">
@ -792,6 +800,17 @@
</template>
</div>
<!-- Action Buttons -->
<div class="flex flex-wrap gap-2">
<button type="button" @click="window.open('/admin/warehouses/transfers/' + activeOrder.id + '/print', '_blank')" class="px-4 py-2 rounded-xl text-xs font-black bg-cyan-500 text-white hover:bg-cyan-600 transition-all shadow-lg shadow-cyan-500/10 flex items-center gap-1.5">
<svg class="w-3.5 h-3.5 stroke-[2.5]" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" d="M6.72 13.82l-.024-.03c-1.285-1.56-1.93-3.19-1.93-5.166C4.766 4.902 6.713 3 9.12 3c2.407 0 4.354 1.902 4.354 4.624 0 1.977-.645 3.607-1.93 5.167-.004.005-.008.01-.012.015L9.12 15.652l-2.4-1.832z" />
<path stroke-linecap="round" stroke-linejoin="round" d="M19 12h2m-2 4h2m-2-8h2M3 12h2m-2 4h2m-2-8h2M12 18H8.5c-.83 0-1.5-.67-1.5-1.5V14m8.5 4H16m0 0v-4.5c0-.83-.67-1.5-1.5-1.5H11" />
</svg>
{{ __('Print Order') }}
</button>
</div>
<!-- Items List -->
<div class="space-y-5">
<div class="flex items-center justify-between px-1">

View File

@ -99,6 +99,7 @@ Route::middleware(['auth', 'auth.session', 'verified', 'tenant.access'])->prefix
Route::patch('/transfers/{transferOrder}/confirm', [App\Http\Controllers\Admin\WarehouseController::class, 'confirmTransfer'])->name('transfers.confirm');
Route::delete('/transfers/{transferOrder}', [App\Http\Controllers\Admin\WarehouseController::class, 'destroyTransfer'])->name('transfers.destroy');
Route::get('/transfers/{id}/details', [App\Http\Controllers\Admin\WarehouseController::class, 'transferOrderDetails'])->name('transfers.details');
Route::get('/transfers/{id}/print', [App\Http\Controllers\Admin\WarehouseController::class, 'printTransfer'])->name('transfers.print');
// 模組 4機台庫存總覽 (Force Route Refresh)
Route::get('/machine-inventory', [App\Http\Controllers\Admin\WarehouseController::class, 'machineInventory'])->name('machine-inventory');
@ -114,6 +115,7 @@ Route::middleware(['auth', 'auth.session', 'verified', 'tenant.access'])->prefix
Route::patch('/replenishments/{replenishmentOrder}/assign', [App\Http\Controllers\Admin\WarehouseController::class, 'assignReplenishment'])->name('replenishments.assign');
Route::get('/replenishments/machine-slots/{machine}', [App\Http\Controllers\Admin\WarehouseController::class, 'getMachineSlotsForReplenishment'])->name('replenishments.machine-slots');
Route::get('/replenishments/{order}/details', [App\Http\Controllers\Admin\WarehouseController::class, 'replenishmentOrderDetails'])->name('replenishments.details');
Route::get('/replenishments/{id}/print', [App\Http\Controllers\Admin\WarehouseController::class, 'printReplenishment'])->name('replenishments.print');
// AJAX 庫存查詢
Route::get('/ajax/stock', [App\Http\Controllers\Admin\WarehouseController::class, 'getStockAjax'])->name('ajax.stock');

View File

@ -0,0 +1,174 @@
<?php
namespace Tests\Feature\Admin;
use App\Models\Machine\Machine;
use App\Models\System\Company;
use App\Models\System\User;
use App\Models\Warehouse\Warehouse;
use App\Models\Warehouse\TransferOrder;
use App\Models\Warehouse\ReplenishmentOrder;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;
class PrintStockOrdersTest extends TestCase
{
use RefreshDatabase;
private $companyA;
private $companyB;
private $userA;
private $userB;
private $warehouseA;
private $warehouseB;
private $machineA;
private $machineB;
protected function setUp(): void
{
parent::setUp();
// 1. 建立租戶公司
$this->companyA = Company::create(['name' => 'Company A', 'code' => 'COA']);
$this->companyB = Company::create(['name' => 'Company B', 'code' => 'COB']);
// 2. 建立使用者
$this->userA = User::factory()->create([
'company_id' => $this->companyA->id,
'name' => 'User A',
'email' => 'userA@star-cloud.com'
]);
$this->userB = User::factory()->create([
'company_id' => $this->companyB->id,
'name' => 'User B',
'email' => 'userB@star-cloud.com'
]);
// 3. 建立倉庫與機台(包含 serial_no 避免 Integrity constraint violation 錯誤)
$this->warehouseA = Warehouse::create([
'company_id' => $this->companyA->id,
'name' => 'Warehouse A',
'type' => 'main',
'is_active' => true
]);
$this->warehouseB = Warehouse::create([
'company_id' => $this->companyB->id,
'name' => 'Warehouse B',
'type' => 'main',
'is_active' => true
]);
$this->machineA = Machine::create([
'company_id' => $this->companyA->id,
'name' => 'Machine A',
'serial_no' => 'SN-MAA-01'
]);
$this->machineB = Machine::create([
'company_id' => $this->companyB->id,
'name' => 'Machine B',
'serial_no' => 'SN-MBB-02'
]);
}
/**
* 測試租戶可以成功列印自己公司的庫存調撥單
*/
public function test_tenant_can_print_own_transfer_order()
{
$this->actingAs($this->userA);
// 建立調撥單
$transfer = TransferOrder::create([
'company_id' => $this->companyA->id,
'order_no' => 'TF-202605210001',
'type' => 'warehouse_to_warehouse',
'from_warehouse_id' => $this->warehouseA->id,
'to_warehouse_id' => $this->warehouseA->id, // 本地測試可以使用同一個以簡化
'status' => 'draft',
'created_by' => $this->userA->id
]);
$response = $this->get("/admin/warehouses/transfers/{$transfer->id}/print");
$response->assertStatus(200);
$response->assertSee('TF-202605210001');
$response->assertSee('Star Cloud System');
$response->assertSee('經辦人');
$response->assertSee('調出確認');
}
/**
* 測試租戶可以成功列印自己公司的機台補貨單
*/
public function test_tenant_can_print_own_replenishment_order()
{
$this->actingAs($this->userA);
// 建立補貨單
$replenishment = ReplenishmentOrder::create([
'company_id' => $this->companyA->id,
'order_no' => 'RP-202605210002',
'warehouse_id' => $this->warehouseA->id,
'machine_id' => $this->machineA->id,
'status' => 'pending',
'created_by' => $this->userA->id
]);
$response = $this->get("/admin/warehouses/replenishments/{$replenishment->id}/print");
$response->assertStatus(200);
$response->assertSee('RP-202605210002');
$response->assertSee('Star Cloud System');
$response->assertSee('經辦人');
$response->assertSee('倉庫出庫確認');
}
/**
* 測試租戶嘗試越權存取(列印)其他租戶的調撥單會被阻斷(返回 404
*/
public function test_tenant_cannot_print_other_tenant_transfer_order()
{
// 先以 User B 建立調撥單
$this->actingAs($this->userB);
$transferB = TransferOrder::create([
'company_id' => $this->companyB->id,
'order_no' => 'TF-B-9999',
'type' => 'warehouse_to_warehouse',
'from_warehouse_id' => $this->warehouseB->id,
'to_warehouse_id' => $this->warehouseB->id,
'status' => 'draft',
'created_by' => $this->userB->id
]);
// 切換為 User A 請求列印 User B 的調撥單
$this->actingAs($this->userA);
$response = $this->get("/admin/warehouses/transfers/{$transferB->id}/print");
// 由於 TenantScoped Trait 自動隔離,會直接拋出 ModelNotFoundException 進而由 Laravel 轉換為 404
$response->assertStatus(404);
}
/**
* 測試租戶嘗試越權存取(列印)其他租戶的補貨單會被阻斷(返回 404
*/
public function test_tenant_cannot_print_other_tenant_replenishment_order()
{
// 先以 User B 建立補貨單
$this->actingAs($this->userB);
$replenishmentB = ReplenishmentOrder::create([
'company_id' => $this->companyB->id,
'order_no' => 'RP-B-9999',
'warehouse_id' => $this->warehouseB->id,
'machine_id' => $this->machineB->id,
'status' => 'pending',
'created_by' => $this->userB->id
]);
// 切換為 User A 請求列印 User B 的補貨單
$this->actingAs($this->userA);
$response = $this->get("/admin/warehouses/replenishments/{$replenishmentB->id}/print");
// 由於 TenantScoped Trait 自動隔離,會直接拋出 ModelNotFoundException 進而由 Laravel 轉換為 404
$response->assertStatus(404);
}
}