summaryrefslogtreecommitdiff
path: root/src/lib/transaction/components
diff options
context:
space:
mode:
authorHATEC\SPVDEV001 <tri.susilo@altama.co.id>2024-03-06 10:11:18 +0700
committerHATEC\SPVDEV001 <tri.susilo@altama.co.id>2024-03-06 10:11:18 +0700
commit272bed12b28763b6f51b97012a4533ab17a561ae (patch)
tree91f0552779ec5327864429de93ff159494ccbd96 /src/lib/transaction/components
parent39b5e05a5fcc7ca26342f37e85c6585d1dacb3a5 (diff)
validation step approval
Diffstat (limited to 'src/lib/transaction/components')
-rw-r--r--src/lib/transaction/components/Transaction.jsx32
-rw-r--r--src/lib/transaction/components/stepper.jsx19
2 files changed, 33 insertions, 18 deletions
diff --git a/src/lib/transaction/components/Transaction.jsx b/src/lib/transaction/components/Transaction.jsx
index d4b0f92c..ab76c671 100644
--- a/src/lib/transaction/components/Transaction.jsx
+++ b/src/lib/transaction/components/Transaction.jsx
@@ -33,7 +33,8 @@ import useAuth from '@/core/hooks/useAuth';
import StepApproval from './stepper';
const Transaction = ({ id }) => {
- const auth = { ...useAuth(), isApprovalState: true };
+ const auth = { ...useAuth(), web_role: 2, feature: { so_approval: true } };
+ const statusApprovalWeb = 1
const { transaction } = useTransaction({ id });
const { queryAirwayBill } = useAirwayBill({ orderId: id });
@@ -245,7 +246,7 @@ const Transaction = ({ id }) => {
<Divider />
- {!auth.isApprovalState && (
+ {!auth.feature.so_approval && (
<div className='p-4 flex flex-col gap-y-4'>
<DescriptionRow label='Purchase Order'>
{transaction.data?.purchaseOrderName || '-'}
@@ -311,13 +312,13 @@ const Transaction = ({ id }) => {
<Divider />
<div className='p-4 pt-0'>
- {transaction.data?.status == 'draft' && auth.isApprovalState && (
+ {transaction.data?.status == 'draft' && auth.feature.so_approval && (
<div className='flex gap-x-2'>
<button
className='btn-yellow w-full'
onClick={checkout}
disabled={
- transaction.data?.status === 'cancel' ? true : false
+ transaction.data?.status === 'cancel' ? true : false || auth.web_role === statusApprovalWeb ? true : false
}
>
Approve
@@ -326,14 +327,14 @@ const Transaction = ({ id }) => {
className='btn-solid-red px-7 w-full'
onClick={checkout}
disabled={
- transaction.data?.status === 'cancel' ? true : false
+ transaction.data?.status === 'cancel' ? true : false || auth.web_role === statusApprovalWeb ? true : false
}
>
Reject
</button>
</div>
)}
- {transaction.data?.status == 'draft' && !auth.isApprovalState && (
+ {transaction.data?.status == 'draft' && !auth.feature.so_approval && (
<button className='btn-yellow w-full mt-4' onClick={checkout}>
Lanjutkan Transaksi
</button>
@@ -367,7 +368,13 @@ const Transaction = ({ id }) => {
<h1 className='text-title-sm font-semibold mb-6'>
Detail Transaksi
</h1>
- <StepApproval layer={2} status={'cancel'} className='ml-auto' />
+ {auth.feature.so_approval && (
+ <StepApproval
+ layer={statusApprovalWeb}
+ status={'cancel'}
+ className='ml-auto'
+ />
+ )}
</div>
<div className='flex items-center gap-x-2 mb-3'>
@@ -385,13 +392,13 @@ const Transaction = ({ id }) => {
Download
</button>
{transaction.data?.status == 'draft' &&
- auth.isApprovalState && (
+ auth.feature.so_approval && auth.web_role && (
<div className='flex gap-x-2'>
<button
className='btn-yellow'
onClick={checkout}
disabled={
- transaction.data?.status === 'cancel' ? true : false
+ transaction.data?.status === 'cancel' ? true : false || auth.web_role === statusApprovalWeb ? true : false
}
>
Approve
@@ -400,7 +407,7 @@ const Transaction = ({ id }) => {
className='btn-solid-red px-7'
onClick={checkout}
disabled={
- transaction.data?.status === 'cancel' ? true : false
+ transaction.data?.status === 'cancel' ? true : false || auth.web_role === statusApprovalWeb ? true : false
}
>
Reject
@@ -408,7 +415,7 @@ const Transaction = ({ id }) => {
</div>
)}
{transaction.data?.status == 'draft' &&
- !auth.isApprovalState && (
+ !auth.feature.so_approval && (
<button className='btn-yellow' onClick={checkout}>
Lanjutkan Transaksi
</button>
@@ -436,7 +443,7 @@ const Transaction = ({ id }) => {
<div>Ketentuan Pembayaran</div>
<div>: {transaction?.data?.paymentTerm}</div>
- {!auth.isApprovalState && (
+ {!auth.feature.so_approval && (
<>
<div>Purchase Order</div>
<div>
@@ -455,7 +462,6 @@ const Transaction = ({ id }) => {
: 'Upload'}
</button>
</div>
- )
</>
)}
</div>
diff --git a/src/lib/transaction/components/stepper.jsx b/src/lib/transaction/components/stepper.jsx
index 54243946..bc3f6fd8 100644
--- a/src/lib/transaction/components/stepper.jsx
+++ b/src/lib/transaction/components/stepper.jsx
@@ -15,9 +15,9 @@ import Image from 'next/image';
const StepApproval = ({ layer, status }) => {
const steps = [
- { title: 'Indoteknik', description: 'Contact Info', layer_approval: 1 },
- { title: 'Manager', description: 'Date & Time', layer_approval: 2 },
- { title: 'Director', description: 'Select Rooms', layer_approval: 3 },
+ { title: 'Indoteknik', layer_approval: 1 },
+ { title: 'Manager', layer_approval: 2 },
+ { title: 'Director', layer_approval: 3 },
];
const { activeStep } = useSteps({
index: layer,
@@ -28,7 +28,7 @@ const StepApproval = ({ layer, status }) => {
{steps.map((step, index) => (
<Step key={index}>
<StepIndicator>
- { layer === step.layer_approval && status === 'cancel' ? (
+ {layer === step.layer_approval && status === 'cancel' ? (
<StepStatus
complete={
<Image
@@ -53,8 +53,17 @@ const StepApproval = ({ layer, status }) => {
<Box flexShrink='0'>
<StepTitle className='md:text-xs'>{step.title}</StepTitle>
- <StepDescription className='md:text-[8px]'>{step.description}</StepDescription>
+ {layer > step.layer_approval && (
+ <StepDescription className='md:text-[8px]'>Approved</StepDescription>
+ )}
+ {layer === step.layer_approval && status === 'cancel' && (
+ <StepDescription className='md:text-[8px]'>Rejected</StepDescription>
+ )}
+ {layer < step.layer_approval && (
+ <StepDescription className='md:text-[8px]'>Pending</StepDescription>
+ )}
</Box>
+ <StepSeparator _horizontal={{ ml: '0' }} />
</Step>
))}
</Stepper>