feat: 實作應付帳款與銷售訂單權限管理與進貨單權限修正
All checks were successful
ERP-Deploy-Demo / deploy-demo (push) Successful in 1m17s
All checks were successful
ERP-Deploy-Demo / deploy-demo (push) Successful in 1m17s
This commit is contained in:
@@ -10,6 +10,7 @@ import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogFooter, DialogD
|
||||
import { Input } from '@/Components/ui/input';
|
||||
import { Label } from '@/Components/ui/label';
|
||||
import { toast } from 'sonner';
|
||||
import { Can } from '@/Components/Permission/Can';
|
||||
|
||||
const getStatusBadgeVariant = (status: string) => {
|
||||
switch (status) {
|
||||
@@ -117,23 +118,27 @@ export default function AccountPayableShow({ payable }: any) {
|
||||
</div>
|
||||
|
||||
<div className="flex items-center gap-2">
|
||||
<Button
|
||||
variant="outline"
|
||||
className="gap-2 button-outlined-primary"
|
||||
onClick={() => setInvoiceDialogOpen(true)}
|
||||
>
|
||||
<FileText className="h-4 w-4" />
|
||||
登記發票
|
||||
</Button>
|
||||
<Can permission="account_payables.edit">
|
||||
<Button
|
||||
variant="outline"
|
||||
className="gap-2 button-outlined-primary"
|
||||
onClick={() => setInvoiceDialogOpen(true)}
|
||||
>
|
||||
<FileText className="h-4 w-4" />
|
||||
登記發票
|
||||
</Button>
|
||||
</Can>
|
||||
|
||||
{payable.status !== 'paid' && (
|
||||
<Button
|
||||
className="gap-2 button-filled-primary"
|
||||
onClick={() => setPaymentDialogOpen(true)}
|
||||
>
|
||||
<CheckCircle className="h-4 w-4" />
|
||||
標記已付款
|
||||
</Button>
|
||||
<Can permission="account_payables.pay">
|
||||
<Button
|
||||
className="gap-2 button-filled-primary"
|
||||
onClick={() => setPaymentDialogOpen(true)}
|
||||
>
|
||||
<CheckCircle className="h-4 w-4" />
|
||||
標記已付款
|
||||
</Button>
|
||||
</Can>
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
@@ -225,14 +230,16 @@ export default function AccountPayableShow({ payable }: any) {
|
||||
<FileText className="h-5 w-5 text-primary-main" />
|
||||
發票資訊
|
||||
</h2>
|
||||
<Button
|
||||
variant="ghost"
|
||||
size="sm"
|
||||
className="text-primary-main hover:text-primary-dark hover:bg-primary-main/10"
|
||||
onClick={() => setInvoiceDialogOpen(true)}
|
||||
>
|
||||
{payable.invoice_number ? '修改' : '填寫'}
|
||||
</Button>
|
||||
<Can permission="account_payables.edit">
|
||||
<Button
|
||||
variant="ghost"
|
||||
size="sm"
|
||||
className="text-primary-main hover:text-primary-dark hover:bg-primary-main/10"
|
||||
onClick={() => setInvoiceDialogOpen(true)}
|
||||
>
|
||||
{payable.invoice_number ? '修改' : '填寫'}
|
||||
</Button>
|
||||
</Can>
|
||||
</div>
|
||||
<div className="space-y-4">
|
||||
<div>
|
||||
|
||||
@@ -250,7 +250,7 @@ function GoodsReceiptActions({ receipt }: { receipt: GoodsReceipt }) {
|
||||
|
||||
// 權限判斷
|
||||
const canView = isSuperAdmin || permissions.includes('goods_receipts.view');
|
||||
const canEdit = isSuperAdmin || permissions.includes('goods_receipts.update');
|
||||
const canEdit = isSuperAdmin || permissions.includes('goods_receipts.edit');
|
||||
const canDelete = isSuperAdmin || permissions.includes('goods_receipts.delete');
|
||||
|
||||
const canSubmit = canEdit || canView;
|
||||
|
||||
Reference in New Issue
Block a user