in create payment cardnumber

This commit is contained in:
hamid zarghami
2026-06-15 10:42:26 +03:30
parent 041fdf5f20
commit da738a8adc
7 changed files with 55 additions and 8 deletions
+2 -2
View File
@@ -1,7 +1,7 @@
VITE_TOKEN_NAME = 'dmnu_a_t' VITE_TOKEN_NAME = 'dmnu_a_t'
VITE_REFRESH_TOKEN_NAME = 'dmnu-a-rt' VITE_REFRESH_TOKEN_NAME = 'dmnu-a-rt'
VITE_BASE_URL = 'https://dmenu-api.danakcorp.com' # VITE_BASE_URL = 'https://dmenu-api.danakcorp.com'
# VITE_BASE_URL = 'http://192.168.99.131:2000' VITE_BASE_URL = 'http://192.168.99.131:2000'
VITE_SOCKET_URL = 'https://dmenu-api.danakcorp.com' VITE_SOCKET_URL = 'https://dmenu-api.danakcorp.com'
+1 -1
View File
@@ -770,7 +770,7 @@
"payment": { "payment": {
"Online": "آنلاین", "Online": "آنلاین",
"Cash": "نقدی", "Cash": "نقدی",
"CardOnDelivery": "کارت هنگام تحویل", "CreditCard": "کارت به کارت",
"Wallet": "کیف پول", "Wallet": "کیف پول",
"zarinpal": "زرین‌پال", "zarinpal": "زرین‌پال",
"payments": "پرداخت ها", "payments": "پرداخت ها",
+1 -1
View File
@@ -34,7 +34,7 @@ const PaymentInfo: FC<PaymentInfoProps> = ({
const methodMap: Record<string, string> = { const methodMap: Record<string, string> = {
[PaymentMethodEnum.Cash]: 'پرداخت نقدی', [PaymentMethodEnum.Cash]: 'پرداخت نقدی',
[PaymentMethodEnum.Online]: 'پرداخت آنلاین', [PaymentMethodEnum.Online]: 'پرداخت آنلاین',
[PaymentMethodEnum.CardOnDelivery]: 'پرداخت در محل', [PaymentMethodEnum.CreditCard]: 'پرداخت کارتی',
[PaymentMethodEnum.Wallet]: 'کیف پول', [PaymentMethodEnum.Wallet]: 'کیف پول',
} }
return methodMap[method] || method return methodMap[method] || method
+23 -1
View File
@@ -25,7 +25,7 @@ const CreatePaymentMethod: FC = () => {
const paymentMethods = [ const paymentMethods = [
{ label: t(`payment.${PaymentMethodEnum.Online}`), value: PaymentMethodEnum.Online }, { label: t(`payment.${PaymentMethodEnum.Online}`), value: PaymentMethodEnum.Online },
{ label: t(`payment.${PaymentMethodEnum.Cash}`), value: PaymentMethodEnum.Cash }, { label: t(`payment.${PaymentMethodEnum.Cash}`), value: PaymentMethodEnum.Cash },
{ label: t(`payment.${PaymentMethodEnum.CardOnDelivery}`), value: PaymentMethodEnum.CardOnDelivery }, { label: t(`payment.${PaymentMethodEnum.CreditCard}`), value: PaymentMethodEnum.CreditCard },
{ label: t(`payment.${PaymentMethodEnum.Wallet}`), value: PaymentMethodEnum.Wallet }, { label: t(`payment.${PaymentMethodEnum.Wallet}`), value: PaymentMethodEnum.Wallet },
] ]
@@ -41,6 +41,7 @@ const CreatePaymentMethod: FC = () => {
enabled: true, enabled: true,
order: 0, order: 0,
merchantId: '', merchantId: '',
cardNumber: '',
}, },
validationSchema: Yup.object().shape({ validationSchema: Yup.object().shape({
method: Yup.string().required('روش پرداخت الزامی است'), method: Yup.string().required('روش پرداخت الزامی است'),
@@ -57,6 +58,11 @@ const CreatePaymentMethod: FC = () => {
then: (schema) => schema.required('شناسه مرچنت الزامی است'), then: (schema) => schema.required('شناسه مرچنت الزامی است'),
otherwise: (schema) => schema.notRequired(), otherwise: (schema) => schema.notRequired(),
}), }),
cardNumber: 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 = {
@@ -70,6 +76,11 @@ const CreatePaymentMethod: FC = () => {
merchantId: values.merchantId, merchantId: values.merchantId,
} }
: {}), : {}),
...(values.method === PaymentMethodEnum.CreditCard
? {
cardNumber: values.cardNumber,
}
: {}),
} }
createPaymentMethod(submitValues, { createPaymentMethod(submitValues, {
@@ -141,6 +152,17 @@ const CreatePaymentMethod: FC = () => {
</div> </div>
</> </>
)} )}
{formik.values.method === PaymentMethodEnum.CreditCard && (
<div className='mt-6'>
<Input
label='شماره کارت'
name='cardNumber'
value={formik.values.cardNumber}
onChange={formik.handleChange}
error_text={formik.touched.cardNumber && formik.errors.cardNumber ? formik.errors.cardNumber : ''}
/>
</div>
)}
<div className='mt-6'> <div className='mt-6'>
<Textarea <Textarea
label='توضیحات' label='توضیحات'
+24 -1
View File
@@ -27,7 +27,7 @@ const UpdatePaymentMethod: FC = () => {
const paymentMethods = [ const paymentMethods = [
{ label: t(`payment.${PaymentMethodEnum.Online}`), value: PaymentMethodEnum.Online }, { label: t(`payment.${PaymentMethodEnum.Online}`), value: PaymentMethodEnum.Online },
{ label: t(`payment.${PaymentMethodEnum.Cash}`), value: PaymentMethodEnum.Cash }, { label: t(`payment.${PaymentMethodEnum.Cash}`), value: PaymentMethodEnum.Cash },
{ label: t(`payment.${PaymentMethodEnum.CardOnDelivery}`), value: PaymentMethodEnum.CardOnDelivery }, { label: t(`payment.${PaymentMethodEnum.CreditCard}`), value: PaymentMethodEnum.CreditCard },
{ label: t(`payment.${PaymentMethodEnum.Wallet}`), value: PaymentMethodEnum.Wallet }, { label: t(`payment.${PaymentMethodEnum.Wallet}`), value: PaymentMethodEnum.Wallet },
] ]
@@ -45,6 +45,7 @@ const UpdatePaymentMethod: FC = () => {
enabled: data.enabled ?? true, enabled: data.enabled ?? true,
order: data.order || 0, order: data.order || 0,
merchantId: data.merchantId || '', merchantId: data.merchantId || '',
cardNumber: data.cardNumber || '',
} }
} }
return { return {
@@ -54,6 +55,7 @@ const UpdatePaymentMethod: FC = () => {
enabled: true, enabled: true,
order: 0, order: 0,
merchantId: '', merchantId: '',
cardNumber: '',
} }
}, [paymentMethodData]) }, [paymentMethodData])
@@ -75,6 +77,11 @@ const UpdatePaymentMethod: FC = () => {
then: (schema) => schema.required('شناسه مرچنت الزامی است'), then: (schema) => schema.required('شناسه مرچنت الزامی است'),
otherwise: (schema) => schema.notRequired(), otherwise: (schema) => schema.notRequired(),
}), }),
cardNumber: 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
@@ -90,6 +97,11 @@ const UpdatePaymentMethod: FC = () => {
merchantId: values.merchantId, merchantId: values.merchantId,
} }
: {}), : {}),
...(values.method === PaymentMethodEnum.CreditCard
? {
cardNumber: values.cardNumber,
}
: {}),
} }
updateRestaurantPaymentMethod( updateRestaurantPaymentMethod(
@@ -180,6 +192,17 @@ const UpdatePaymentMethod: FC = () => {
</div> </div>
</> </>
)} )}
{formik.values.method === PaymentMethodEnum.CreditCard && (
<div className='mt-6'>
<Input
label='شماره کارت'
name='cardNumber'
value={formik.values.cardNumber}
onChange={formik.handleChange}
error_text={formik.touched.cardNumber && formik.errors.cardNumber ? formik.errors.cardNumber : ''}
/>
</div>
)}
<div className='mt-6'> <div className='mt-6'>
<Textarea <Textarea
label='توضیحات' label='توضیحات'
+2 -2
View File
@@ -1,8 +1,8 @@
export const enum PaymentMethodEnum { export enum PaymentMethodEnum {
Online = "Online", Online = "Online",
Cash = "Cash", Cash = "Cash",
CardOnDelivery = "CardOnDelivery",
Wallet = "Wallet", Wallet = "Wallet",
CreditCard = "CreditCard",
} }
export const enum PaymentGatewayEnum { export const enum PaymentGatewayEnum {
+2
View File
@@ -67,6 +67,7 @@ export type RestaurantPaymentMethod = {
enabled: boolean; enabled: boolean;
order: number; order: number;
merchantId: string; merchantId: string;
cardNumber?: string;
}; };
export type RestaurantPaymentMethodResponse = IResponse< export type RestaurantPaymentMethodResponse = IResponse<
@@ -80,6 +81,7 @@ export type CreateRestaurantPaymentMethodType = {
enabled: boolean; enabled: boolean;
order: number; order: number;
merchantId?: string; merchantId?: string;
cardNumber?: string;
}; };
export type GetRestaurantPaymentMethodsParams = { export type GetRestaurantPaymentMethodsParams = {