store/resources/js/constants/order-status.ts
Yoga Pangestu 15e2b7ec5b
Some checks are pending
linter / quality (push) Waiting to run
tests / ci (8.3) (push) Waiting to run
tests / ci (8.4) (push) Waiting to run
tests / ci (8.5) (push) Waiting to run
feat: add material_result field to CuttingMaterial and CuttingMaterialCombination; update validation rules and service logic to handle new material result calculations; enhance frontend components for displaying material results in cutting management
2026-07-04 23:14:37 +07:00

56 lines
1.4 KiB
TypeScript

import { Check, Send, X } from '@lucide/vue';
import type { Component } from 'vue';
import type { BadgeVariant } from '@/lib/badge-variant';
export const OrderStatus = {
PENDING: 'pending',
PROCESSING: 'processing',
COMPLETED: 'completed',
CANCELLED: 'cancelled',
} as const;
export type OrderStatusValue = (typeof OrderStatus)[keyof typeof OrderStatus];
export function orderStatusBadgeVariant(status: string): BadgeVariant {
if (status === OrderStatus.COMPLETED) {
return 'default';
}
if (status === OrderStatus.CANCELLED) {
return 'destructive';
}
if (status === OrderStatus.PROCESSING) {
return 'secondary';
}
return 'outline';
}
export function orderStatusTransitionConfirmDescription(
targetStatus: string,
orderNumber: string,
): string {
if (targetStatus === OrderStatus.PROCESSING) {
return `Pesanan ${orderNumber} akan dikirim dan diproses.`;
}
if (targetStatus === OrderStatus.COMPLETED) {
return `Pesanan ${orderNumber} akan ditandai selesai.`;
}
return `Pesanan ${orderNumber} akan dibatalkan. Stok produk akan dikembalikan.`;
}
export function orderStatusActionIcon(status: string): Component {
if (status === OrderStatus.PROCESSING) {
return Send;
}
if (status === OrderStatus.COMPLETED) {
return Check;
}
return X;
}