daily stock

This commit is contained in:
hamid zarghami
2025-12-21 16:49:39 +03:30
parent 4b37fe34ac
commit bc91153231
4 changed files with 34 additions and 8 deletions
+15 -2
View File
@@ -48,7 +48,8 @@ const CreateFood: FC = () => {
inPlaceServe: true,
isActive: true,
images: [],
isSpecialOffer: false
isSpecialOffer: false,
dailyStock: 0
},
validationSchema: Yup.object().shape({
title: Yup.string().required('نام غذا الزامی است'),
@@ -57,6 +58,7 @@ const CreateFood: FC = () => {
price: Yup.number().required('قیمت الزامی است').min(0, 'قیمت باید مثبت باشد'),
prepareTime: Yup.number().required('زمان آماده‌سازی الزامی است').min(0, 'زمان آماده‌سازی باید مثبت باشد'),
discount: Yup.number().min(0, 'تخفیف باید مثبت باشد'),
dailyStock: Yup.number().required('موجودی روزانه الزامی است').min(0, 'موجودی روزانه باید مثبت باشد'),
content: Yup.array().of(Yup.string()),
weekDays: Yup.array().of(Yup.number()),
mealTypes: Yup.array().of(Yup.string())
@@ -145,7 +147,7 @@ const CreateFood: FC = () => {
/>
</div>
<div className='grid grid-cols-3 gap-4 mt-5'>
<div className='grid grid-cols-4 gap-4 mt-5'>
<Input
name='price'
label='قیمت'
@@ -177,6 +179,17 @@ const CreateFood: FC = () => {
onChange={(e) => formik.setFieldValue('prepareTime', Number(e.target.value))}
error_text={formik.touched.prepareTime && formik.errors.prepareTime ? formik.errors.prepareTime : ''}
/>
<Input
name='dailyStock'
label='موجودی روزانه'
placeholder='عدد'
type='number'
seprator={true}
value={formik.values.dailyStock}
onChange={(e) => formik.setFieldValue('dailyStock', Number(e.target.value))}
error_text={formik.touched.dailyStock && formik.errors.dailyStock ? formik.errors.dailyStock : ''}
/>
</div>
<div className='mt-5'>
+5 -2
View File
@@ -51,7 +51,8 @@ const UpdateFood: FC = () => {
inPlaceServe: false,
isActive: true,
images: [],
isSpecialOffer: false
isSpecialOffer: false,
dailyStock: 0
},
validationSchema: Yup.object().shape({
title: Yup.string().required('نام غذا الزامی است'),
@@ -60,6 +61,7 @@ const UpdateFood: FC = () => {
price: Yup.number().required('قیمت الزامی است').min(0, 'قیمت باید مثبت باشد'),
prepareTime: Yup.number().required('زمان آماده‌سازی الزامی است').min(0, 'زمان آماده‌سازی باید مثبت باشد'),
discount: Yup.number().min(0, 'تخفیف باید مثبت باشد'),
dailyStock: Yup.number().required('موجودی روزانه الزامی است').min(0, 'موجودی روزانه باید مثبت باشد'),
content: Yup.array().of(Yup.string()),
weekDays: Yup.array().of(Yup.number()),
mealTypes: Yup.array().of(Yup.string())
@@ -123,7 +125,8 @@ const UpdateFood: FC = () => {
inPlaceServe: food.inPlaceServe || false,
isActive: food.isActive || false,
images: food.images || [],
isSpecialOffer: food.isSpecialOffer || false
isSpecialOffer: food.isSpecialOffer || false,
dailyStock: food.dailyStock || 0
})
setIsActive(food.isActive || false)
setIsSpecial(food.isSpecialOffer || false)
+12 -4
View File
@@ -37,7 +37,7 @@ const BasicInfoSection: FC<BasicInfoSectionProps> = ({ formik, categories }) =>
/>
</div>
<div className='grid grid-cols-3 gap-4 mt-5'>
<div className='grid grid-cols-4 gap-4 mt-5'>
<Input
name='price'
label='قیمت'
@@ -60,9 +60,6 @@ const BasicInfoSection: FC<BasicInfoSectionProps> = ({ formik, categories }) =>
error_text={formik.touched.discount && formik.errors.discount ? formik.errors.discount : ''}
/>
</div>
<div className='mt-5'>
<Input
name='prepareTime'
label='زمان آماده سازی'
@@ -72,6 +69,17 @@ const BasicInfoSection: FC<BasicInfoSectionProps> = ({ formik, categories }) =>
onChange={(e) => formik.setFieldValue('prepareTime', Number(e.target.value))}
error_text={formik.touched.prepareTime && formik.errors.prepareTime ? formik.errors.prepareTime : ''}
/>
<Input
name='dailyStock'
label='موجودی روزانه'
placeholder='عدد'
type='number'
seprator={true}
value={formik.values.dailyStock}
onChange={(e) => formik.setFieldValue('dailyStock', Number(e.target.value))}
error_text={formik.touched.dailyStock && formik.errors.dailyStock ? formik.errors.dailyStock : ''}
/>
</div>
<div className='mt-5'>
+2
View File
@@ -15,6 +15,7 @@ export type CreateFoodType = {
pickupServe: boolean;
discount: number;
isSpecialOffer: boolean;
dailyStock: number;
};
export type Category = {
@@ -108,6 +109,7 @@ export type FoodDetails = {
score: number | null;
discount: number;
isSpecialOffer: boolean;
dailyStock?: number;
};
export type PaginationMeta = {