add avaiable stock
deploy to danak / build_and_deploy (push) Has been cancelled

This commit is contained in:
2026-06-18 18:23:45 +03:30
parent 8e27bf39e8
commit 59f892cb10
4 changed files with 34 additions and 2 deletions
+16 -1
View File
@@ -50,6 +50,7 @@ const CreateFood: FC = () => {
images: [], images: [],
isSpecialOffer: false, isSpecialOffer: false,
dailyStock: 0, dailyStock: 0,
availableStock: 0,
order: 0 order: 0
}, },
validationSchema: Yup.object().shape({ validationSchema: Yup.object().shape({
@@ -59,6 +60,9 @@ const CreateFood: FC = () => {
prepareTime: Yup.number().required('زمان آماده‌سازی الزامی است').min(0, 'زمان آماده‌سازی باید مثبت باشد'), prepareTime: Yup.number().required('زمان آماده‌سازی الزامی است').min(0, 'زمان آماده‌سازی باید مثبت باشد'),
discount: Yup.number().min(0, 'تخفیف باید مثبت باشد'), discount: Yup.number().min(0, 'تخفیف باید مثبت باشد'),
dailyStock: Yup.number().required('موجودی روزانه الزامی است').min(0, 'موجودی روزانه باید مثبت باشد'), dailyStock: Yup.number().required('موجودی روزانه الزامی است').min(0, 'موجودی روزانه باید مثبت باشد'),
availableStock: Yup.number()
.required('موجودی فعلی الزامی است')
.min(0, 'موجودی فعلی باید مثبت باشد'),
content: Yup.array().of(Yup.string()), content: Yup.array().of(Yup.string()),
weekDays: Yup.array().of(Yup.number()), weekDays: Yup.array().of(Yup.number()),
mealTypes: Yup.array().of(Yup.string()) mealTypes: Yup.array().of(Yup.string())
@@ -147,7 +151,7 @@ const CreateFood: FC = () => {
/> />
</div> </div>
<div className='grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-4 mt-5'> <div className='grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-5 gap-4 mt-5'>
<Input <Input
name='price' name='price'
label='قیمت' label='قیمت'
@@ -190,6 +194,17 @@ const CreateFood: FC = () => {
onChange={(e) => formik.setFieldValue('dailyStock', Number(e.target.value))} onChange={(e) => formik.setFieldValue('dailyStock', Number(e.target.value))}
error_text={formik.touched.dailyStock && formik.errors.dailyStock ? formik.errors.dailyStock : ''} error_text={formik.touched.dailyStock && formik.errors.dailyStock ? formik.errors.dailyStock : ''}
/> />
<Input
name='availableStock'
label='موجودی فعلی'
placeholder='عدد'
type='number'
seprator={true}
value={formik.values.availableStock}
onChange={(e) => formik.setFieldValue('availableStock', Number(e.target.value))}
error_text={formik.touched.availableStock && formik.errors.availableStock ? formik.errors.availableStock : ''}
/>
</div> </div>
<div className='mt-5'> <div className='mt-5'>
+5
View File
@@ -53,6 +53,7 @@ const UpdateFood: FC = () => {
images: [], images: [],
isSpecialOffer: false, isSpecialOffer: false,
dailyStock: 0, dailyStock: 0,
availableStock: 0,
order: 0 order: 0
}, },
validationSchema: Yup.object().shape({ validationSchema: Yup.object().shape({
@@ -62,6 +63,9 @@ const UpdateFood: FC = () => {
prepareTime: Yup.number().required('زمان آماده‌سازی الزامی است').min(0, 'زمان آماده‌سازی باید مثبت باشد'), prepareTime: Yup.number().required('زمان آماده‌سازی الزامی است').min(0, 'زمان آماده‌سازی باید مثبت باشد'),
discount: Yup.number().min(0, 'تخفیف باید مثبت باشد'), discount: Yup.number().min(0, 'تخفیف باید مثبت باشد'),
dailyStock: Yup.number().required('موجودی روزانه الزامی است').min(0, 'موجودی روزانه باید مثبت باشد'), dailyStock: Yup.number().required('موجودی روزانه الزامی است').min(0, 'موجودی روزانه باید مثبت باشد'),
availableStock: Yup.number()
.required('موجودی فعلی الزامی است')
.min(0, 'موجودی فعلی باید مثبت باشد'),
content: Yup.array().of(Yup.string()), content: Yup.array().of(Yup.string()),
weekDays: Yup.array().of(Yup.number()), weekDays: Yup.array().of(Yup.number()),
mealTypes: Yup.array().of(Yup.string()) mealTypes: Yup.array().of(Yup.string())
@@ -127,6 +131,7 @@ const UpdateFood: FC = () => {
images: food.images || [], images: food.images || [],
isSpecialOffer: food.isSpecialOffer || false, isSpecialOffer: food.isSpecialOffer || false,
dailyStock: food.inventory?.totalStock || 0, dailyStock: food.inventory?.totalStock || 0,
availableStock: food.inventory?.availableStock || 0,
order: food.order || 0 order: food.order || 0
}) })
setIsActive(food.isActive || false) setIsActive(food.isActive || false)
+12 -1
View File
@@ -37,7 +37,7 @@ const BasicInfoSection: FC<BasicInfoSectionProps> = ({ formik, categories }) =>
/> />
</div> </div>
<div className='grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-4 mt-5'> <div className='grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-5 gap-4 mt-5'>
<Input <Input
name='price' name='price'
label='قیمت' label='قیمت'
@@ -80,6 +80,17 @@ const BasicInfoSection: FC<BasicInfoSectionProps> = ({ formik, categories }) =>
onChange={(e) => formik.setFieldValue('dailyStock', Number(e.target.value))} onChange={(e) => formik.setFieldValue('dailyStock', Number(e.target.value))}
error_text={formik.touched.dailyStock && formik.errors.dailyStock ? formik.errors.dailyStock : ''} error_text={formik.touched.dailyStock && formik.errors.dailyStock ? formik.errors.dailyStock : ''}
/> />
<Input
name='availableStock'
label='موجودی فعلی'
placeholder='عدد'
type='number'
seprator={true}
value={formik.values.availableStock}
onChange={(e) => formik.setFieldValue('availableStock', Number(e.target.value))}
error_text={formik.touched.availableStock && formik.errors.availableStock ? formik.errors.availableStock : ''}
/>
</div> </div>
<div className='mt-5'> <div className='mt-5'>
+1
View File
@@ -16,6 +16,7 @@ export type CreateFoodType = {
discount: number; discount: number;
isSpecialOffer: boolean; isSpecialOffer: boolean;
dailyStock: number; dailyStock: number;
availableStock: number;
order: number; order: number;
}; };