cardOwner

This commit is contained in:
hamid zarghami
2026-06-15 12:37:44 +03:30
parent 22e443cf7b
commit 20309be061
4 changed files with 64 additions and 18 deletions
+27 -9
View File
@@ -42,6 +42,7 @@ const CreatePaymentMethod: FC = () => {
order: 0, order: 0,
merchantId: '', merchantId: '',
cardNumber: '', cardNumber: '',
cardOwner: '',
}, },
validationSchema: Yup.object().shape({ validationSchema: Yup.object().shape({
method: Yup.string().required('روش پرداخت الزامی است'), method: Yup.string().required('روش پرداخت الزامی است'),
@@ -63,6 +64,11 @@ const CreatePaymentMethod: FC = () => {
then: (schema) => schema.required('شماره کارت الزامی است'), then: (schema) => schema.required('شماره کارت الزامی است'),
otherwise: (schema) => schema.notRequired(), otherwise: (schema) => schema.notRequired(),
}), }),
cardOwner: Yup.string().when('method', {
is: PaymentMethodEnum.CreditCard,
then: (schema) => schema.required('نام صاحب کارت الزامی است'),
otherwise: (schema) => schema.notRequired(),
}),
}), }),
onSubmit: (values) => { onSubmit: (values) => {
const submitValues: CreateRestaurantPaymentMethodType = { const submitValues: CreateRestaurantPaymentMethodType = {
@@ -79,6 +85,7 @@ const CreatePaymentMethod: FC = () => {
...(values.method === PaymentMethodEnum.CreditCard ...(values.method === PaymentMethodEnum.CreditCard
? { ? {
cardNumber: values.cardNumber, cardNumber: values.cardNumber,
cardOwner: values.cardOwner,
} }
: {}), : {}),
} }
@@ -153,15 +160,26 @@ const CreatePaymentMethod: FC = () => {
</> </>
)} )}
{formik.values.method === PaymentMethodEnum.CreditCard && ( {formik.values.method === PaymentMethodEnum.CreditCard && (
<div className='mt-6'> <>
<Input <div className='mt-6'>
label='شماره کارت' <Input
name='cardNumber' label='شماره کارت'
value={formik.values.cardNumber} name='cardNumber'
onChange={formik.handleChange} value={formik.values.cardNumber}
error_text={formik.touched.cardNumber && formik.errors.cardNumber ? formik.errors.cardNumber : ''} onChange={formik.handleChange}
/> error_text={formik.touched.cardNumber && formik.errors.cardNumber ? formik.errors.cardNumber : ''}
</div> />
</div>
<div className='mt-6'>
<Input
label='نام صاحب کارت'
name='cardOwner'
value={formik.values.cardOwner}
onChange={formik.handleChange}
error_text={formik.touched.cardOwner && formik.errors.cardOwner ? formik.errors.cardOwner : ''}
/>
</div>
</>
)} )}
<div className='mt-6'> <div className='mt-6'>
<Textarea <Textarea
+28 -9
View File
@@ -46,6 +46,7 @@ const UpdatePaymentMethod: FC = () => {
order: data.order || 0, order: data.order || 0,
merchantId: data.merchantId || '', merchantId: data.merchantId || '',
cardNumber: data.cardNumber || '', cardNumber: data.cardNumber || '',
cardOwner: data.cardOwner || '',
} }
} }
return { return {
@@ -56,6 +57,7 @@ const UpdatePaymentMethod: FC = () => {
order: 0, order: 0,
merchantId: '', merchantId: '',
cardNumber: '', cardNumber: '',
cardOwner: '',
} }
}, [paymentMethodData]) }, [paymentMethodData])
@@ -82,6 +84,11 @@ const UpdatePaymentMethod: FC = () => {
then: (schema) => schema.required('شماره کارت الزامی است'), then: (schema) => schema.required('شماره کارت الزامی است'),
otherwise: (schema) => schema.notRequired(), otherwise: (schema) => schema.notRequired(),
}), }),
cardOwner: Yup.string().when('method', {
is: PaymentMethodEnum.CreditCard,
then: (schema) => schema.required('نام صاحب کارت الزامی است'),
otherwise: (schema) => schema.notRequired(),
}),
}), }),
onSubmit: (values) => { onSubmit: (values) => {
if (!id) return if (!id) return
@@ -100,6 +107,7 @@ const UpdatePaymentMethod: FC = () => {
...(values.method === PaymentMethodEnum.CreditCard ...(values.method === PaymentMethodEnum.CreditCard
? { ? {
cardNumber: values.cardNumber, cardNumber: values.cardNumber,
cardOwner: values.cardOwner,
} }
: {}), : {}),
} }
@@ -193,15 +201,26 @@ const UpdatePaymentMethod: FC = () => {
</> </>
)} )}
{formik.values.method === PaymentMethodEnum.CreditCard && ( {formik.values.method === PaymentMethodEnum.CreditCard && (
<div className='mt-6'> <>
<Input <div className='mt-6'>
label='شماره کارت' <Input
name='cardNumber' label='شماره کارت'
value={formik.values.cardNumber} name='cardNumber'
onChange={formik.handleChange} value={formik.values.cardNumber}
error_text={formik.touched.cardNumber && formik.errors.cardNumber ? formik.errors.cardNumber : ''} onChange={formik.handleChange}
/> error_text={formik.touched.cardNumber && formik.errors.cardNumber ? formik.errors.cardNumber : ''}
</div> />
</div>
<div className='mt-6'>
<Input
label='نام صاحب کارت'
name='cardOwner'
value={formik.values.cardOwner}
onChange={formik.handleChange}
error_text={formik.touched.cardOwner && formik.errors.cardOwner ? formik.errors.cardOwner : ''}
/>
</div>
</>
)} )}
<div className='mt-6'> <div className='mt-6'>
<Textarea <Textarea
@@ -67,6 +67,13 @@ export const getPaymentMethodTableColumns = ({ onDelete, isDeleting }: GetPaymen
return item.cardNumber || '-' return item.cardNumber || '-'
} }
}, },
{
key: 'cardOwner',
title: 'نام صاحب کارت',
render: (item: RestaurantPaymentMethod) => {
return item.cardOwner || '-'
}
},
{ {
key: 'actions', key: 'actions',
title: '', title: '',
+2
View File
@@ -68,6 +68,7 @@ export type RestaurantPaymentMethod = {
order: number; order: number;
merchantId: string; merchantId: string;
cardNumber?: string; cardNumber?: string;
cardOwner?: string;
}; };
export type RestaurantPaymentMethodResponse = IResponse< export type RestaurantPaymentMethodResponse = IResponse<
@@ -82,6 +83,7 @@ export type CreateRestaurantPaymentMethodType = {
order: number; order: number;
merchantId?: string; merchantId?: string;
cardNumber?: string; cardNumber?: string;
cardOwner?: string;
}; };
export type GetRestaurantPaymentMethodsParams = { export type GetRestaurantPaymentMethodsParams = {