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_REFRESH_TOKEN_NAME = 'dmnu-a-rt'
VITE_BASE_URL = 'https://dmenu-api.danakcorp.com'
# VITE_BASE_URL = 'http://192.168.99.131:2000'
# VITE_BASE_URL = 'https://dmenu-api.danakcorp.com'
VITE_BASE_URL = 'http://192.168.99.131:2000'
VITE_SOCKET_URL = 'https://dmenu-api.danakcorp.com'
+1 -1
View File
@@ -770,7 +770,7 @@
"payment": {
"Online": "آنلاین",
"Cash": "نقدی",
"CardOnDelivery": "کارت هنگام تحویل",
"CreditCard": "کارت به کارت",
"Wallet": "کیف پول",
"zarinpal": "زرین‌پال",
"payments": "پرداخت ها",
+1 -1
View File
@@ -34,7 +34,7 @@ const PaymentInfo: FC<PaymentInfoProps> = ({
const methodMap: Record<string, string> = {
[PaymentMethodEnum.Cash]: 'پرداخت نقدی',
[PaymentMethodEnum.Online]: 'پرداخت آنلاین',
[PaymentMethodEnum.CardOnDelivery]: 'پرداخت در محل',
[PaymentMethodEnum.CreditCard]: 'پرداخت کارتی',
[PaymentMethodEnum.Wallet]: 'کیف پول',
}
return methodMap[method] || method
+23 -1
View File
@@ -25,7 +25,7 @@ const CreatePaymentMethod: FC = () => {
const paymentMethods = [
{ label: t(`payment.${PaymentMethodEnum.Online}`), value: PaymentMethodEnum.Online },
{ 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 },
]
@@ -41,6 +41,7 @@ const CreatePaymentMethod: FC = () => {
enabled: true,
order: 0,
merchantId: '',
cardNumber: '',
},
validationSchema: Yup.object().shape({
method: Yup.string().required('روش پرداخت الزامی است'),
@@ -57,6 +58,11 @@ const CreatePaymentMethod: FC = () => {
then: (schema) => schema.required('شناسه مرچنت الزامی است'),
otherwise: (schema) => schema.notRequired(),
}),
cardNumber: Yup.string().when('method', {
is: PaymentMethodEnum.CreditCard,
then: (schema) => schema.required('شماره کارت الزامی است'),
otherwise: (schema) => schema.notRequired(),
}),
}),
onSubmit: (values) => {
const submitValues: CreateRestaurantPaymentMethodType = {
@@ -70,6 +76,11 @@ const CreatePaymentMethod: FC = () => {
merchantId: values.merchantId,
}
: {}),
...(values.method === PaymentMethodEnum.CreditCard
? {
cardNumber: values.cardNumber,
}
: {}),
}
createPaymentMethod(submitValues, {
@@ -141,6 +152,17 @@ const CreatePaymentMethod: FC = () => {
</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'>
<Textarea
label='توضیحات'
+24 -1
View File
@@ -27,7 +27,7 @@ const UpdatePaymentMethod: FC = () => {
const paymentMethods = [
{ label: t(`payment.${PaymentMethodEnum.Online}`), value: PaymentMethodEnum.Online },
{ 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 },
]
@@ -45,6 +45,7 @@ const UpdatePaymentMethod: FC = () => {
enabled: data.enabled ?? true,
order: data.order || 0,
merchantId: data.merchantId || '',
cardNumber: data.cardNumber || '',
}
}
return {
@@ -54,6 +55,7 @@ const UpdatePaymentMethod: FC = () => {
enabled: true,
order: 0,
merchantId: '',
cardNumber: '',
}
}, [paymentMethodData])
@@ -75,6 +77,11 @@ const UpdatePaymentMethod: FC = () => {
then: (schema) => schema.required('شناسه مرچنت الزامی است'),
otherwise: (schema) => schema.notRequired(),
}),
cardNumber: Yup.string().when('method', {
is: PaymentMethodEnum.CreditCard,
then: (schema) => schema.required('شماره کارت الزامی است'),
otherwise: (schema) => schema.notRequired(),
}),
}),
onSubmit: (values) => {
if (!id) return
@@ -90,6 +97,11 @@ const UpdatePaymentMethod: FC = () => {
merchantId: values.merchantId,
}
: {}),
...(values.method === PaymentMethodEnum.CreditCard
? {
cardNumber: values.cardNumber,
}
: {}),
}
updateRestaurantPaymentMethod(
@@ -180,6 +192,17 @@ const UpdatePaymentMethod: FC = () => {
</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'>
<Textarea
label='توضیحات'
+2 -2
View File
@@ -1,8 +1,8 @@
export const enum PaymentMethodEnum {
export enum PaymentMethodEnum {
Online = "Online",
Cash = "Cash",
CardOnDelivery = "CardOnDelivery",
Wallet = "Wallet",
CreditCard = "CreditCard",
}
export const enum PaymentGatewayEnum {
+2
View File
@@ -67,6 +67,7 @@ export type RestaurantPaymentMethod = {
enabled: boolean;
order: number;
merchantId: string;
cardNumber?: string;
};
export type RestaurantPaymentMethodResponse = IResponse<
@@ -80,6 +81,7 @@ export type CreateRestaurantPaymentMethodType = {
enabled: boolean;
order: number;
merchantId?: string;
cardNumber?: string;
};
export type GetRestaurantPaymentMethodsParams = {