change reserve history cartable

This commit is contained in:
2024-05-12 15:32:28 +03:30
parent bc52209be9
commit 808902ad80
8 changed files with 628 additions and 208 deletions

View File

@@ -192,14 +192,14 @@
"NavganProvinceManager": {
"name": "نام",
"id": "کد یکتا",
"bank_facility": "سهم بانک",
"government_facility": "سهم دولت",
"user_facility": "سهم متقاضی",
"physical_progress": "درصد پیشرفت فیزیکی",
"repayment_period": "دوره باز پرداخت",
"committed_employment": "اشتغال ایجاد شده",
"available_jobs": "اشتغال موجود",
"existing_employment": "اشتغال موجود",
"city_name": "شهرستان",
"facility_bank": "سهم بانک",
"facility_gov": "سهم دولت",
"facility_person": "سهم متقاضی",
"plate_number": "پلاک",
"statement_count": "تعداد صورت وضعیت",
"shenase_meli": "شناسه ملی",
@@ -296,6 +296,16 @@
"excel_report": "گزارش اکسل",
"city_name": "شهرستان",
"plate_number": "پلاک",
"existing_employment": "اشتغال موجود",
"bank_facility": "سهم بانک",
"facility_bank": "سهم بانک",
"government_facility": "سهم دولت",
"facility_gov": "سهم دولت",
"user_facility": "سهم متقاضی",
"facility_person": "سهم متقاضی",
"physical_progress": "درصد پیشرفت فیزیکی",
"repayment_period": "دوره باز پرداخت",
"committed_employment": "اشتغال ایجاد شده",
"statement_count": "تعداد صورت وضعیت",
"score": "اولویت",
"navgan_capacity": "ظرفیت",
@@ -344,13 +354,13 @@
"city_name": "شهرستان",
"plate_number": "پلاک",
"id": "کد یکتا",
"bank_facility": "سهم بانک",
"government_facility": "سهم دولت",
"user_facility": "سهم متقاضی",
"facility_bank": "سهم بانک",
"facility_gov": "سهم دولت",
"facility_person": "سهم متقاضی",
"physical_progress": "درصد پیشرفت فیزیکی",
"repayment_period": "دوره باز پرداخت",
"committed_employment": "اشتغال ایجاد شده",
"available_jobs": "اشتغال موجود",
"existing_employment": "اشتغال موجود",
"statement_count": "تعداد صورت وضعیت",
"shenase_meli": "شناسه ملی",
"is_legal_person": "نوع شخص",
@@ -386,6 +396,55 @@
"state_name": "وضعیت درخواست"
},
"ReserveLoan": {
"name": "نام",
"hoghoghi": "حقوقی",
"haghighi": "حقیقی",
"city_name": "شهرستان",
"plate_number": "پلاک",
"id": "کد یکتا",
"existing_employment": "اشتغال موجود",
"approved_amount": "مبلغ مصوب",
"sakht_period": "دوره ساخت",
"tanafos_period": "دوره تنفس",
"bank_facility": "سهم بانک",
"facility_bank": "سهم بانک",
"government_facility": "سهم دولت",
"facility_gov": "سهم دولت",
"user_facility": "سهم متقاضی",
"facility_person": "سهم متقاضی",
"physical_progress": "درصد پیشرفت فیزیکی",
"repayment_period": "دوره باز پرداخت",
"committed_employment": "اشتغال ایجاد شده",
"available_jobs": "اشتغال موجود",
"statement_count": "تعداد صورت وضعیت",
"score": "اولویت",
"navgan_capacity": "ظرفیت",
"manufacture_date": "سال ساخت",
"shenase_meli": "شناسه ملی",
"is_legal_person": "نوع شخص",
"haghighi": "حقیقی",
"hoghoghi": "حقوقی",
"national_id": "کد ملی",
"phone_number": "موبایل",
"created_at": "تاریخ درخواست",
"updated_at": "تاریخ بروزرسانی",
"province_name": "استان",
"navgan_id": "کد ناوگان",
"vehicle_type": "نوع ماشین",
"state_name": "وضعیت درخواست",
"confirm": "ارجاع به کارگروه",
"upload_file": "گزارش کارشناسی را بارگذاری کنید",
"upload_file_required": "وارد کردن گزارش کارشناسی الزامیست",
"upload_file_unit": "فایل بارگذاری شده باید حداکثر 5Mb باشد",
"upload_file_format": "فرمت قابل قبول : png,jpg,pdf",
"print_report": "چاپ گزارش کارشناسی",
"max_amount": "حداکثر مبلغ پیشنهادی {value} میلیون ریال می باشد",
"excel_report": "گزارش اکسل",
"reserve-loan-title": "رزرو وام",
"description-reserve-loan-first": "آیا از رزرو وام به کد یکتا",
"description-reserve-loan-second": "اطمینان دارید؟",
"button-reserve-cancel": "بستن",
"button-reserve-confirm": "رزرو",
"title": "بازگردانی",
"description-loan-first": "آیا از بازگردانی وام به کد یکتا",
"description-loan-second": "اطمینان دارید؟",
@@ -434,12 +493,12 @@
"context": "آیا از تایید این آیتم اطمینان دارید؟",
"button-cancel": "بستن",
"button-confirm": "ارجاع",
"bank_facility": "تسهیلات سهم بانک",
"user_facility": "تسهیلات سهم متقاضی",
"government_facility": "تسهیلات سهم دولت",
"facility_bank": "تسهیلات سهم بانک",
"facility_person": "تسهیلات سهم متقاضی",
"facility_gov": "تسهیلات سهم دولت",
"committed_employment": "تعداد اشتغال تعهد شده",
"history_facilities": "سابقه استفاده از تسهیلات تکلیفی",
"available_jobs": "تعداد اشتغال موجود",
"existing_employment": "تعداد اشتغال موجود",
"physical_progress": "درصد پیشرفت فیزیکی",
"interest_rate": "نرخ بهره",
"description_error": "وارد کردن توضیحات الزامی است!",
@@ -453,28 +512,28 @@
"sakht_period": "دوره ساخت",
"tanafos_period": "دوره تنفس",
"approved_amount_error": "وارد کردن مبلغ مصوب الزامیست",
"bank_facility_error": "وارد کردن تسهیلات سهم بانک الزامیست",
"government_facility_error": "وارد کردن تسهیلات سهم دولت الزامیست",
"facility_bank_error": "وارد کردن تسهیلات سهم بانک الزامیست",
"facility_gov_error": "وارد کردن تسهیلات سهم دولت الزامیست",
"committed_employment_error": "وارد کردن تعداد اشتغال تعهد شده الزامیست",
"history_facilities_error": "وارد کردن سابقه استفاده از تسهیلات تکلیفی الزامیست",
"available_jobs_error": "وارد کردن تعداد اشتغال موجود الزامیست",
"existing_employment_error": "وارد کردن تعداد اشتغال موجود الزامیست",
"sakht_period_error": "وارد کردن دوره ساخت الزامیست",
"tanafos_period_error": "وارد کردن دوره تنفس الزامیست",
"approved_amount_positive": "مبلغ مصوب باید مثبت باشد",
"bank_facility_positive": "تسهیلات سهم بانک باید مثبت باشد",
"facility_bank_positive": "تسهیلات سهم بانک باید مثبت باشد",
"repayment_period_positive": "دوره باز پرداخت باید مثبت باشد",
"participation_period_positive": "دوره مشارکت باید مثبت باشد",
"government_facility_positive": "تسهیلات سهم دولت باید مثبت باشد",
"facility_gov_positive": "تسهیلات سهم دولت باید مثبت باشد",
"committed_employment_positive": "تعداد اشتغال تعهد شده باید مثبت باشد",
"history_facilities_positive": "سابقه استفاده از تسهیلات تکلیفی باید مثبت باشد",
"available_jobs_positive": "تعدلد اشتغال موجود باید مثبت باشد",
"existing_employment_positive": "تعدلد اشتغال موجود باید مثبت باشد",
"approved_amount_number": "مبلغ مصوب باید عدد باشد",
"bank_facility_number": "تسهیلات سهم بانک باید عدد باشد",
"facility_bank_number": "تسهیلات سهم بانک باید عدد باشد",
"interest_rate_number": "نرخ بهره باید عدد باشد",
"government_facility_number": "تسهیلات سهم دولت باید عدد باشد",
"facility_gov_number": "تسهیلات سهم دولت باید عدد باشد",
"committed_employment_number": "تعداد سابقه استفاده از تسهیلات تکلیفی باید عدد باشد",
"history_facilities_number": "تعداد اشتغال تعهد شده باید عدد باشد",
"available_jobs_number": "تعداد اشتغال موجود باید عدد باشد",
"existing_employment_number": "تعداد اشتغال موجود باید عدد باشد",
"sakht_period_positive": "دوره ساخت باید مثبت باشد",
"interest_rate_positive": "نرخ بهره باید مثبت باشد",
"tanafos_period_positive": "دوره تنفس باید مثبت باشد",
@@ -483,14 +542,14 @@
"participation_period_number": "دوره مشارکت باید عدد باشد",
"tanafos_period_number": "دوره تنفس باید عدد باشد",
"toman": "میلیون تومان",
"bank_facility_max_amount": "جمع مبلغ سهم دولت و سهم بانک نباید از مبلغ تصویب شده بیشتر باشد .",
"government_facility_max_amount": "جمع مبلغ سهم دولت و سهم بانک نباید از مبلغ تصویب شده بیشتر باشد .",
"facility_bank_max_amount": "جمع مبلغ سهم دولت و سهم بانک نباید از مبلغ تصویب شده بیشتر باشد .",
"facility_gov_max_amount": "جمع مبلغ سهم دولت و سهم بانک نباید از مبلغ تصویب شده بیشتر باشد .",
"tanafos_period_month": "ماه",
"repayment_period_month": "ماه",
"approved_amount_title": "مبلغ مصوب کارگروه",
"bank_facility_title": "سهم بانک",
"government_facility_title": "سهم دولت",
"user_facility_title": "سهم متقاضی",
"facility_bank_title": "سهم بانک",
"facility_gov_title": "سهم دولت",
"facility_person_title": "سهم متقاضی",
"sakht_period_day": "ماه",
"proposed_amount_error": "وارد کردن مقدار پیشنهادی الزامیست",
"repayment_period_error": "وارد کردن دوره باز پرداخت الزامیست",
@@ -733,6 +792,16 @@
"statement_count": "تعداد صورت وضعیت",
"name": "نام",
"score": "اولویت",
"existing_employment": "اشتغال موجود",
"bank_facility": "سهم بانک",
"facility_bank": "سهم بانک",
"government_facility": "سهم دولت",
"facility_gov": "سهم دولت",
"user_facility": "سهم متقاضی",
"facility_person": "سهم متقاضی",
"physical_progress": "درصد پیشرفت فیزیکی",
"committed_employment": "اشتغال ایجاد شده",
"available_jobs": "اشتغال موجود",
"navgan_capacity": "ظرفیت",
"manufacture_date": "سال ساخت",
"shenase_meli": "شناسه ملی",

View File

@@ -304,25 +304,6 @@ function DashboardLoanHistoryComponent() {
</Stack>
),
},
{
accessorFn: (row) => row.proposed_amount,
id: "proposed_amount",
header: t("LoanHistory.proposed_amount"),
enableColumnFilter: true,
datatype: "numeric",
filterFn: "equals",
columnFilterModeOptions: [
"equals",
"notEquals",
"contains",
"lessThan",
"greaterThan",
"between",
],
Cell: ({renderedCellValue}) => (
<Typography variant="body2">{renderedCellValue / 1000000}</Typography>
),
},
{
accessorFn: (row) => row.approved_amount,
id: "approved_amount",
@@ -342,6 +323,101 @@ function DashboardLoanHistoryComponent() {
<Typography variant="body2">{renderedCellValue / 1000000}</Typography>
),
},
{
accessorFn: (row) => row.facility_bank,
id: "facility_bank",
header: t("LoanHistory.facility_bank"),
enableColumnFilter: true,
datatype: "numeric",
filterFn: "equals",
columnFilterModeOptions: [
"equals",
"notEquals",
"contains",
"lessThan",
"greaterThan",
"between",
],
Cell: ({renderedCellValue}) => (
<Typography variant="body2">{renderedCellValue / 1000000}</Typography>
),
},
{
accessorFn: (row) => row.facility_gov,
id: "facility_gov",
header: t("LoanHistory.facility_gov"),
enableColumnFilter: true,
datatype: "numeric",
filterFn: "equals",
columnFilterModeOptions: [
"equals",
"notEquals",
"contains",
"lessThan",
"greaterThan",
"between",
],
Cell: ({renderedCellValue}) => (
<Typography variant="body2">{renderedCellValue / 1000000}</Typography>
),
},
{
accessorFn: (row) => row.facility_person,
id: "facility_person",
header: t("LoanHistory.facility_person"),
enableColumnFilter: true,
datatype: "numeric",
filterFn: "equals",
columnFilterModeOptions: [
"equals",
"notEquals",
"contains",
"lessThan",
"greaterThan",
"between",
],
Cell: ({renderedCellValue}) => (
<Typography variant="body2">{renderedCellValue / 1000000}</Typography>
),
},
{
accessorFn: (row) => row.physical_progress,
id: "physical_progress",
header: t("LoanHistory.physical_progress"),
enableColumnFilter: true,
datatype: "numeric",
filterFn: "equals",
columnFilterModeOptions: [
"equals",
"notEquals",
"contains",
"lessThan",
"greaterThan",
"between",
],
Cell: ({renderedCellValue}) => (
<Typography variant="body2">{renderedCellValue}</Typography>
),
},
{
accessorFn: (row) => row.repayment_period,
id: "repayment_period",
header: t("LoanHistory.repayment_period"),
enableColumnFilter: true,
datatype: "numeric",
filterFn: "equals",
columnFilterModeOptions: [
"equals",
"notEquals",
"contains",
"lessThan",
"greaterThan",
"between",
],
Cell: ({renderedCellValue}) => (
<Typography variant="body2">{renderedCellValue}</Typography>
),
},
{
accessorFn: (row) => row.sakht_period,
id: "sakht_period",
@@ -370,6 +446,44 @@ function DashboardLoanHistoryComponent() {
<Typography variant="body2">{renderedCellValue}</Typography>
),
},
{
accessorFn: (row) => row.committed_employment,
id: "committed_employment",
header: t("LoanHistory.committed_employment"),
enableColumnFilter: true,
datatype: "numeric",
filterFn: "equals",
columnFilterModeOptions: [
"equals",
"notEquals",
"contains",
"lessThan",
"greaterThan",
"between",
],
Cell: ({renderedCellValue}) => (
<Typography variant="body2">{renderedCellValue}</Typography>
),
},
{
accessorFn: (row) => row.existing_employment,
id: "existing_employment",
header: t("LoanHistory.existing_employment"),
enableColumnFilter: true,
datatype: "numeric",
filterFn: "equals",
columnFilterModeOptions: [
"equals",
"notEquals",
"contains",
"lessThan",
"greaterThan",
"between",
],
Cell: ({renderedCellValue}) => (
<Typography variant="body2">{renderedCellValue}</Typography>
),
},
{
accessorFn: (row) => row.state_name,
id: "state_name",

View File

@@ -289,25 +289,6 @@ function DashboardNavganLoanManagementComponent() {
</Stack>
),
},
{
accessorFn: (row) => row.proposed_amount,
id: "proposed_amount",
header: t("NavganLoanManagement.proposed_amount"),
enableColumnFilter: true,
datatype: "numeric",
filterFn: "equals",
columnFilterModeOptions: [
"equals",
"notEquals",
"contains",
"lessThan",
"greaterThan",
"between",
],
Cell: ({renderedCellValue}) => (
<Typography variant="body2">{renderedCellValue / 1000000}</Typography>
),
},
{
accessorFn: (row) => row.approved_amount,
id: "approved_amount",
@@ -327,6 +308,101 @@ function DashboardNavganLoanManagementComponent() {
<Typography variant="body2">{renderedCellValue / 1000000}</Typography>
),
},
{
accessorFn: (row) => row.facility_bank,
id: "facility_bank",
header: t("NavganLoanManagement.facility_bank"),
enableColumnFilter: true,
datatype: "numeric",
filterFn: "equals",
columnFilterModeOptions: [
"equals",
"notEquals",
"contains",
"lessThan",
"greaterThan",
"between",
],
Cell: ({renderedCellValue}) => (
<Typography variant="body2">{renderedCellValue / 1000000}</Typography>
),
},
{
accessorFn: (row) => row.facility_gov,
id: "facility_gov",
header: t("NavganLoanManagement.facility_gov"),
enableColumnFilter: true,
datatype: "numeric",
filterFn: "equals",
columnFilterModeOptions: [
"equals",
"notEquals",
"contains",
"lessThan",
"greaterThan",
"between",
],
Cell: ({renderedCellValue}) => (
<Typography variant="body2">{renderedCellValue / 1000000}</Typography>
),
},
{
accessorFn: (row) => row.facility_person,
id: "facility_person",
header: t("NavganLoanManagement.facility_person"),
enableColumnFilter: true,
datatype: "numeric",
filterFn: "equals",
columnFilterModeOptions: [
"equals",
"notEquals",
"contains",
"lessThan",
"greaterThan",
"between",
],
Cell: ({renderedCellValue}) => (
<Typography variant="body2">{renderedCellValue / 1000000}</Typography>
),
},
{
accessorFn: (row) => row.physical_progress,
id: "physical_progress",
header: t("NavganLoanManagement.physical_progress"),
enableColumnFilter: true,
datatype: "numeric",
filterFn: "equals",
columnFilterModeOptions: [
"equals",
"notEquals",
"contains",
"lessThan",
"greaterThan",
"between",
],
Cell: ({renderedCellValue}) => (
<Typography variant="body2">{renderedCellValue}</Typography>
),
},
{
accessorFn: (row) => row.repayment_period,
id: "repayment_period",
header: t("NavganLoanManagement.repayment_period"),
enableColumnFilter: true,
datatype: "numeric",
filterFn: "equals",
columnFilterModeOptions: [
"equals",
"notEquals",
"contains",
"lessThan",
"greaterThan",
"between",
],
Cell: ({renderedCellValue}) => (
<Typography variant="body2">{renderedCellValue}</Typography>
),
},
{
accessorFn: (row) => row.sakht_period,
id: "sakht_period",
@@ -355,6 +431,44 @@ function DashboardNavganLoanManagementComponent() {
<Typography variant="body2">{renderedCellValue}</Typography>
),
},
{
accessorFn: (row) => row.committed_employment,
id: "committed_employment",
header: t("NavganLoanManagement.committed_employment"),
enableColumnFilter: true,
datatype: "numeric",
filterFn: "equals",
columnFilterModeOptions: [
"equals",
"notEquals",
"contains",
"lessThan",
"greaterThan",
"between",
],
Cell: ({renderedCellValue}) => (
<Typography variant="body2">{renderedCellValue}</Typography>
),
},
{
accessorFn: (row) => row.existing_employment,
id: "existing_employment",
header: t("NavganLoanManagement.existing_employment"),
enableColumnFilter: true,
datatype: "numeric",
filterFn: "equals",
columnFilterModeOptions: [
"equals",
"notEquals",
"contains",
"lessThan",
"greaterThan",
"between",
],
Cell: ({renderedCellValue}) => (
<Typography variant="body2">{renderedCellValue}</Typography>
),
},
{
accessorFn: (row) => row.state_name,
id: "state_name",

View File

@@ -252,9 +252,9 @@ function DashboardNavganProvinceManagerComponent() {
),
},
{
accessorFn: (row) => row.bank_facility,
id: "bank_facility",
header: t("NavganProvinceManager.bank_facility"),
accessorFn: (row) => row.facility_bank,
id: "facility_bank",
header: t("NavganProvinceManager.facility_bank"),
enableColumnFilter: true,
datatype: "numeric",
filterFn: "equals",
@@ -271,9 +271,9 @@ function DashboardNavganProvinceManagerComponent() {
),
},
{
accessorFn: (row) => row.government_facility,
id: "government_facility",
header: t("NavganProvinceManager.government_facility"),
accessorFn: (row) => row.facility_gov,
id: "facility_gov",
header: t("NavganProvinceManager.facility_gov"),
enableColumnFilter: true,
datatype: "numeric",
filterFn: "equals",
@@ -290,9 +290,9 @@ function DashboardNavganProvinceManagerComponent() {
),
},
{
accessorFn: (row) => row.user_facility,
id: "user_facility",
header: t("NavganProvinceManager.user_facility"),
accessorFn: (row) => row.facility_person,
id: "facility_person",
header: t("NavganProvinceManager.facility_person"),
enableColumnFilter: true,
datatype: "numeric",
filterFn: "equals",
@@ -394,9 +394,9 @@ function DashboardNavganProvinceManagerComponent() {
),
},
{
accessorFn: (row) => row.available_jobs,
id: "available_jobs",
header: t("NavganProvinceManager.available_jobs"),
accessorFn: (row) => row.existing_employment,
id: "existing_employment",
header: t("NavganProvinceManager.existing_employment"),
enableColumnFilter: true,
datatype: "numeric",
filterFn: "equals",

View File

@@ -17,6 +17,7 @@ import {useState} from "react";
import PriceField from "@/core/components/PriceField";
import * as Yup from "yup";
import SelectBox from "@/core/components/SelectBox";
import {useConfig} from "@/lib/app/hooks/useConfig";
const vehicle_amount = {
"اتوبوس": 7000,
@@ -31,7 +32,7 @@ const ConfirmContent = ({rowId, mutate, setOpenConfirmDialog, vehicle_type}) =>
const [showExpertAddIcon, setShowExpertAddIcon] = useState(true);
const requestServer = useRequest({auth: true, notification: false})
const {update_notification} = useNotification();
const [showFacility, setShowFacility] = useState(false)
const {config} = useConfig()
const validationSchema = Yup.object().shape({
approved_amount: Yup.mixed().test(
@@ -42,30 +43,6 @@ const ConfirmContent = ({rowId, mutate, setOpenConfirmDialog, vehicle_type}) =>
(value) => value <= vehicle_amount[vehicle_type])
.test("positive", `${t("ConfirmDialog.approved_amount_positive")}`, (value) => value >= 0)
.required(t("ConfirmDialog.approved_amount_error")),
bank_facility: Yup.mixed().test(
"is-number",
`${t("ConfirmDialog.bank_facility_number")}`,
(value) => !isNaN(value)
).test("positive", `${t("ConfirmDialog.bank_facility_positive")}`, (value) => value >= 0)
.test("max_bank", `${t("ConfirmDialog.bank_facility_max_amount")}`, function (value) {
const government_facility = this.parent.government_facility || 0;
const max_amount = (this.parent.approved_amount || 0) - government_facility;
return value <= max_amount;
})
.required(t("ConfirmDialog.bank_facility_error")),
government_facility: Yup.mixed()
.test(
"is-number",
`${t("ConfirmDialog.government_facility_number")}`,
(value) => !isNaN(value)
)
.test("positive", `${t("ConfirmDialog.government_facility_positive")}`, (value) => value >= 0)
.test("max_government", `${t("ConfirmDialog.government_facility_max_amount")}`, function (value) {
const bank_facility = this.parent.bank_facility || 0;
const max_amount = (this.parent.approved_amount || 0) - bank_facility;
return value <= max_amount;
})
.required(t("ConfirmDialog.government_facility_error")),
repayment_period: Yup.mixed().test(
"is-number",
`${t("ConfirmDialog.repayment_period_number")}`,
@@ -78,12 +55,12 @@ const ConfirmContent = ({rowId, mutate, setOpenConfirmDialog, vehicle_type}) =>
(value) => !isNaN(value)
).test("positive", `${t("ConfirmDialog.committed_employment_positive")}`, (value) => value >= 0)
.required(t("ConfirmDialog.committed_employment_error")),
available_jobs: Yup.mixed().test(
existing_employment: Yup.mixed().test(
"is-number",
`${t("ConfirmDialog.available_jobs_number")}`,
`${t("ConfirmDialog.existing_employment_number")}`,
(value) => !isNaN(value)
).test("positive", `${t("ConfirmDialog.available_jobs_positive")}`, (value) => value >= 0)
.required(t("ConfirmDialog.available_jobs_error")),
).test("positive", `${t("ConfirmDialog.existing_employment_positive")}`, (value) => value >= 0)
.required(t("ConfirmDialog.existing_employment_error")),
sakht_period: Yup.mixed()
.test("is-number", `${t("ConfirmDialog.sakht_period_number")}`,
(value) => !isNaN(value))
@@ -109,26 +86,26 @@ const ConfirmContent = ({rowId, mutate, setOpenConfirmDialog, vehicle_type}) =>
initialValues: {
description: "",
approved_amount: "",
bank_facility: "0",
government_facility: "0",
user_facility: "0",
facility_bank: "",
facility_gov: "",
facility_person: "",
physical_progress: "",
repayment_period: "",
committed_employment: "",
sakht_period: "",
tanafos_period: "",
available_jobs: "",
existing_employment: "",
expert_img: null,
}, validationSchema,
onSubmit: (values, {setSubmitting}) => {
const formData = new FormData();
formData.append("approved_amount", values.approved_amount);
formData.append("bank_facility", values.bank_facility);
formData.append("government_facility", values.government_facility);
formData.append("user_facility", values.user_facility);
formData.append("approved_amount", Number(values.approved_amount) * 1000000);
formData.append("facility_bank", Number(values.facility_bank) * 1000000);
formData.append("facility_gov", Number(values.facility_gov) * 1000000);
formData.append("facility_person", Number(values.facility_person) * 1000000);
formData.append("repayment_period", values.repayment_period);
formData.append("committed_employment", values.committed_employment);
formData.append("available_jobs", values.available_jobs);
formData.append("existing_employment", values.existing_employment);
formData.append("sakht_period", values.sakht_period);
formData.append("tanafos_period", values.tanafos_period);
@@ -178,12 +155,12 @@ const ConfirmContent = ({rowId, mutate, setOpenConfirmDialog, vehicle_type}) =>
const handleAmountChange = (event) => {
if (!isNaN(event.target.value)) {
formik.setFieldValue("approved_amount", event.target.value).then(() => {
formik.setFieldValue("user_facility", Number(event.target.value) - (Number(formik.values.bank_facility) + Number(formik.values.government_facility)))
formik.setFieldValue("facility_bank", (config.facility_bank / 100) * event.target.value)
formik.setFieldValue("facility_gov", (config.facility_gov / 100) * event.target.value)
formik.setFieldValue("facility_person", (config.facility_person / 100) * event.target.value)
})
event.target.value !== "" ? setShowFacility(true) : setShowFacility(false)
} else {
formik.setFieldValue("approved_amount", formik.values.approved_amount)
setShowFacility(false)
}
};
@@ -233,9 +210,9 @@ const ConfirmContent = ({rowId, mutate, setOpenConfirmDialog, vehicle_type}) =>
</Stack>
<Stack>
<PriceField
name="bank_facility"
name="facility_bank"
label={<>
<span>{t("ConfirmDialog.bank_facility")}</span><small>{t("ConfirmDialog.unit")}</small></>}
<span>{t("ConfirmDialog.facility_bank")}</span><small>{t("ConfirmDialog.unit")}</small></>}
type="text"
inputProps={{
inputMode: "number",
@@ -243,33 +220,16 @@ const ConfirmContent = ({rowId, mutate, setOpenConfirmDialog, vehicle_type}) =>
pattern: "[0-9]*",
}}
variant="outlined"
value={formik.values.bank_facility}
onChange={(event) => {
if (!isNaN(event.target.value)) {
formik.setFieldValue("bank_facility", event.target.value).then(() => {
formik.setFieldValue("user_facility", Number(formik.values.approved_amount) - (Number(event.target.value) + Number(formik.values.government_facility)))
})
} else {
formik.setFieldValue("bank_facility", formik.values.bank_facility)
}
}}
onBlur={formik.handleBlur("bank_facility")}
error={
formik.touched.bank_facility &&
Boolean(formik.errors.bank_facility)
}
helperText={
formik.touched.bank_facility && formik.errors.bank_facility
}
value={formik.values.facility_bank}
fullWidth
disabled={!showFacility}
disabled
/>
</Stack>
<Stack>
<PriceField
name="government_facility"
name="facility_gov"
label={<>
<span>{t("ConfirmDialog.government_facility")}</span><small>{t("ConfirmDialog.unit")}</small></>}
<span>{t("ConfirmDialog.facility_gov")}</span><small>{t("ConfirmDialog.unit")}</small></>}
type="text"
inputProps={{
inputMode: "number",
@@ -277,35 +237,18 @@ const ConfirmContent = ({rowId, mutate, setOpenConfirmDialog, vehicle_type}) =>
pattern: "[0-9]*",
}}
variant="outlined"
value={formik.values.government_facility}
onChange={(event) => {
if (!isNaN(event.target.value)) {
formik.setFieldValue("government_facility", event.target.value).then(() => {
formik.setFieldValue("user_facility", Number(formik.values.approved_amount) - (Number(formik.values.bank_facility) + Number(event.target.value)))
})
} else {
formik.setFieldValue("government_facility", formik.values.government_facility)
}
}}
onBlur={formik.handleBlur("government_facility")}
error={
formik.touched.government_facility &&
Boolean(formik.errors.government_facility)
}
helperText={
formik.touched.government_facility && formik.errors.government_facility
}
disabled={!showFacility}
value={formik.values.facility_gov}
disabled
fullWidth
/>
</Stack>
<Stack>
<PriceField
name="user_facility"
name="facility_person"
label={<>
<span>{t("ConfirmDialog.user_facility")}</span><small>{t("ConfirmDialog.unit")}</small></>}
<span>{t("ConfirmDialog.facility_person")}</span><small>{t("ConfirmDialog.unit")}</small></>}
variant="outlined"
value={formik.values.user_facility}
value={formik.values.facility_person}
disabled
fullWidth
/>
@@ -345,7 +288,7 @@ const ConfirmContent = ({rowId, mutate, setOpenConfirmDialog, vehicle_type}) =>
{id : 1, value : "24", name : "24 ماه"},
{id : 2, value : "36", name : "36 ماه"},
{id : 3, value : "48", name : "48 ماه"},
{id : 0, value : "60", name : "60 ماه"}
{id : 4, value : "60", name : "60 ماه"}
]}
schema={{value: "value", name: "name"}}
select={formik.values.repayment_period}
@@ -481,8 +424,8 @@ const ConfirmContent = ({rowId, mutate, setOpenConfirmDialog, vehicle_type}) =>
</Stack>
<Stack>
<TextField
name="available_jobs"
label={t("ConfirmDialog.available_jobs")}
name="existing_employment"
label={t("ConfirmDialog.existing_employment")}
type="text"
inputProps={{
inputMode: "number",
@@ -490,21 +433,21 @@ const ConfirmContent = ({rowId, mutate, setOpenConfirmDialog, vehicle_type}) =>
pattern: "[0-9]*",
}}
variant="outlined"
value={formik.values.available_jobs}
value={formik.values.existing_employment}
onChange={(event) => {
if (!isNaN(event.target.value)) {
formik.setFieldValue("available_jobs", event.target.value)
formik.setFieldValue("existing_employment", event.target.value)
} else {
formik.setFieldValue("available_jobs", formik.values.available_jobs)
formik.setFieldValue("existing_employment", formik.values.existing_employment)
}
}}
onBlur={formik.handleBlur("available_jobs")}
onBlur={formik.handleBlur("existing_employment")}
error={
formik.touched.available_jobs &&
Boolean(formik.errors.available_jobs)
formik.touched.existing_employment &&
Boolean(formik.errors.existing_employment)
}
helperText={
formik.touched.available_jobs && formik.errors.available_jobs
formik.touched.existing_employment && formik.errors.existing_employment
}
fullWidth
/>

View File

@@ -15,7 +15,7 @@ function DashboardReserveLoan() {
{
accessorFn: (row) => row.id,
id: "id",
header: t("MachinaryOffice.id"),
header: t("ReserveLoan.id"),
enableColumnFilter: true,
datatype: "numeric",
filterFn: "equals",
@@ -34,7 +34,7 @@ function DashboardReserveLoan() {
{
accessorFn: (row) => row.score,
id: "score",
header: t("MachinaryOffice.score"),
header: t("ReserveLoan.score"),
enableColumnFilter: true,
datatype: "numeric",
filterFn: "equals",
@@ -53,20 +53,20 @@ function DashboardReserveLoan() {
{
accessorFn: (row) => row.is_legal_person,
id: "is_legal_person",
header: t("MachinaryOffice.is_legal_person"),
header: t("ReserveLoan.is_legal_person"),
enableColumnFilter: false,
datatype: "numeric",
filterFn: "equals",
columnFilterModeOptions: ["equals"],
Cell: ({renderedCellValue}) => (
<Typography
variant="body2">{renderedCellValue === 1 ? `${t("MachinaryOffice.hoghoghi")}` : `${t("MachinaryOffice.haghighi")}`}</Typography>
variant="body2">{renderedCellValue === 1 ? `${t("ReserveLoan.hoghoghi")}` : `${t("ReserveLoan.haghighi")}`}</Typography>
),
},
{
accessorFn: (row) => row.navgan_id,
id: "navgan_id",
header: t("MachinaryOffice.navgan_id"),
header: t("ReserveLoan.navgan_id"),
enableColumnFilter: true,
datatype: "numeric",
filterFn: "equals",
@@ -85,7 +85,7 @@ function DashboardReserveLoan() {
{
accessorFn: (row) => row.name,
id: "name",
header: t("MachinaryOffice.name"),
header: t("ReserveLoan.name"),
enableColumnFilter: true,
datatype: "text",
filterFn: "contains",
@@ -97,7 +97,7 @@ function DashboardReserveLoan() {
{
accessorFn: (row) => row.national_id,
id: "national_id",
header: t("MachinaryOffice.national_id"),
header: t("ReserveLoan.national_id"),
enableColumnFilter: true,
datatype: "numeric",
filterFn: "equals",
@@ -116,7 +116,7 @@ function DashboardReserveLoan() {
{
accessorFn: (row) => row.shenase_meli,
id: "shenase_meli",
header: t("MachinaryOffice.shenase_meli"),
header: t("ReserveLoan.shenase_meli"),
enableColumnFilter: true,
datatype: "numeric",
filterFn: "equals",
@@ -135,7 +135,7 @@ function DashboardReserveLoan() {
{
accessorFn: (row) => row.province_name,
id: "province_name",
header: t("MachinaryOffice.province_name"),
header: t("ReserveLoan.province_name"),
enableColumnFilter: true,
datatype: "text",
filterFn: "contains",
@@ -147,7 +147,7 @@ function DashboardReserveLoan() {
{
accessorFn: (row) => row.city_name,
id: "city_name",
header: t("MachinaryOffice.city_name"),
header: t("ReserveLoan.city_name"),
enableColumnFilter: true,
datatype: "text",
filterFn: "contains",
@@ -160,7 +160,7 @@ function DashboardReserveLoan() {
accessorFn: (row) =>
moment(row.created_at).locale("fa").format("HH:mm | yyyy/MM/DD"),
id: "created_at",
header: t("MachinaryOffice.created_at"),
header: t("ReserveLoan.created_at"),
enableColumnFilter: true,
datatype: "date",
filterFn: "lessThan",
@@ -178,7 +178,7 @@ function DashboardReserveLoan() {
{
accessorFn: (row) => row.phone_number,
id: "phone_number",
header: t("MachinaryOffice.phone_number"),
header: t("ReserveLoan.phone_number"),
enableColumnFilter: true,
datatype: "numeric",
filterFn: "equals",
@@ -197,7 +197,7 @@ function DashboardReserveLoan() {
{
accessorFn: (row) => row.statement_count,
id: "statement_count",
header: t("MachinaryOffice.statement_count"),
header: t("ReserveLoan.statement_count"),
enableColumnFilter: true,
datatype: "numeric",
filterFn: "equals",
@@ -211,7 +211,7 @@ function DashboardReserveLoan() {
{
accessorFn: (row) => row.navgan_capacity,
id: "navgan_capacity",
header: t("MachinaryOffice.navgan_capacity"),
header: t("ReserveLoan.navgan_capacity"),
enableColumnFilter: true,
datatype: "numeric",
filterFn: "equals",
@@ -230,7 +230,7 @@ function DashboardReserveLoan() {
{
accessorFn: (row) => row.manufacture_date,
id: "manufacture_date",
header: t("MachinaryOffice.manufacture_date"),
header: t("ReserveLoan.manufacture_date"),
enableColumnFilter: true,
datatype: "numeric",
filterFn: "equals",
@@ -249,7 +249,7 @@ function DashboardReserveLoan() {
{
accessorFn: (row) => row.vehicle_type,
id: "vehicle_type",
header: t("MachinaryOffice.vehicle_type"),
header: t("ReserveLoan.vehicle_type"),
enableColumnFilter: true,
datatype: "text",
filterFn: "contains",
@@ -261,7 +261,7 @@ function DashboardReserveLoan() {
{
accessorFn: (row) => row.plate_number,
id: "plate_number",
header: t("MachinaryOffice.plate_number"),
header: t("ReserveLoan.plate_number"),
enableColumnFilter: false,
datatype: "text",
filterFn: "contains",
@@ -288,10 +288,190 @@ function DashboardReserveLoan() {
</Stack>
),
},
{
accessorFn: (row) => row.approved_amount,
id: "approved_amount",
header: t("ReserveLoan.approved_amount"),
enableColumnFilter: true,
datatype: "numeric",
filterFn: "equals",
columnFilterModeOptions: [
"equals",
"notEquals",
"contains",
"lessThan",
"greaterThan",
"between",
],
Cell: ({renderedCellValue}) => (
<Typography variant="body2">{renderedCellValue / 1000000}</Typography>
),
},
{
accessorFn: (row) => row.facility_bank,
id: "facility_bank",
header: t("ReserveLoan.facility_bank"),
enableColumnFilter: true,
datatype: "numeric",
filterFn: "equals",
columnFilterModeOptions: [
"equals",
"notEquals",
"contains",
"lessThan",
"greaterThan",
"between",
],
Cell: ({renderedCellValue}) => (
<Typography variant="body2">{renderedCellValue / 1000000}</Typography>
),
},
{
accessorFn: (row) => row.facility_gov,
id: "facility_gov",
header: t("ReserveLoan.facility_gov"),
enableColumnFilter: true,
datatype: "numeric",
filterFn: "equals",
columnFilterModeOptions: [
"equals",
"notEquals",
"contains",
"lessThan",
"greaterThan",
"between",
],
Cell: ({renderedCellValue}) => (
<Typography variant="body2">{renderedCellValue / 1000000}</Typography>
),
},
{
accessorFn: (row) => row.facility_person,
id: "facility_person",
header: t("ReserveLoan.facility_person"),
enableColumnFilter: true,
datatype: "numeric",
filterFn: "equals",
columnFilterModeOptions: [
"equals",
"notEquals",
"contains",
"lessThan",
"greaterThan",
"between",
],
Cell: ({renderedCellValue}) => (
<Typography variant="body2">{renderedCellValue / 1000000}</Typography>
),
},
{
accessorFn: (row) => row.physical_progress,
id: "physical_progress",
header: t("ReserveLoan.physical_progress"),
enableColumnFilter: true,
datatype: "numeric",
filterFn: "equals",
columnFilterModeOptions: [
"equals",
"notEquals",
"contains",
"lessThan",
"greaterThan",
"between",
],
Cell: ({renderedCellValue}) => (
<Typography variant="body2">{renderedCellValue}</Typography>
),
},
{
accessorFn: (row) => row.repayment_period,
id: "repayment_period",
header: t("ReserveLoan.repayment_period"),
enableColumnFilter: true,
datatype: "numeric",
filterFn: "equals",
columnFilterModeOptions: [
"equals",
"notEquals",
"contains",
"lessThan",
"greaterThan",
"between",
],
Cell: ({renderedCellValue}) => (
<Typography variant="body2">{renderedCellValue}</Typography>
),
},
{
accessorFn: (row) => row.sakht_period,
id: "sakht_period",
header: t("ReserveLoan.sakht_period"),
enableColumnFilter: true,
datatype: "numeric",
filterFn: "equals",
columnFilterModeOptions: [
"equals"
],
Cell: ({renderedCellValue}) => (
<Typography variant="body2">{renderedCellValue}</Typography>
),
},
{
accessorFn: (row) => row.tanafos_period,
id: "tanafos_period",
header: t("ReserveLoan.tanafos_period"),
enableColumnFilter: true,
datatype: "numeric",
filterFn: "equals",
columnFilterModeOptions: [
"equals"
],
Cell: ({renderedCellValue}) => (
<Typography variant="body2">{renderedCellValue}</Typography>
),
},
{
accessorFn: (row) => row.committed_employment,
id: "committed_employment",
header: t("ReserveLoan.committed_employment"),
enableColumnFilter: true,
datatype: "numeric",
filterFn: "equals",
columnFilterModeOptions: [
"equals",
"notEquals",
"contains",
"lessThan",
"greaterThan",
"between",
],
Cell: ({renderedCellValue}) => (
<Typography variant="body2">{renderedCellValue}</Typography>
),
},
{
accessorFn: (row) => row.existing_employment,
id: "existing_employment",
header: t("ReserveLoan.existing_employment"),
enableColumnFilter: true,
datatype: "numeric",
filterFn: "equals",
columnFilterModeOptions: [
"equals",
"notEquals",
"contains",
"lessThan",
"greaterThan",
"between",
],
Cell: ({renderedCellValue}) => (
<Typography variant="body2">{renderedCellValue}</Typography>
),
},
{
accessorFn: (row) => row.state_name,
id: "state_id",
header: t("MachinaryOffice.state_name"),
header: t("ReserveLoan.state_name"),
enableColumnFilter: false,
datatype: "numeric",
Cell: ({renderedCellValue}) => (

View File

@@ -185,18 +185,18 @@ const ConfirmContent = ({rowId, mutate, setOpenConfirmDialog, handleSizeChangeCl
unitTitle={t("ConfirmDialog.unit")}
/>
<NumberShowBox
showNumber={(detailsList?.data?.bank_facility) / 1000000}
headerTitle={t("ConfirmDialog.bank_facility_title")}
showNumber={(detailsList?.data?.facility_bank) / 1000000}
headerTitle={t("ConfirmDialog.facility_bank_title")}
unitTitle={t("ConfirmDialog.unit")}
/>
<NumberShowBox
showNumber={(detailsList?.data?.government_facility) / 1000000}
headerTitle={t("ConfirmDialog.government_facility_title")}
showNumber={(detailsList?.data?.facility_gov) / 1000000}
headerTitle={t("ConfirmDialog.facility_gov_title")}
unitTitle={t("ConfirmDialog.unit")}
/>
<NumberShowBox
showNumber={(detailsList?.data?.user_facility) / 1000000}
headerTitle={t("ConfirmDialog.user_facility_title")}
showNumber={(detailsList?.data?.facility_person) / 1000000}
headerTitle={t("ConfirmDialog.facility_person_title")}
unitTitle={t("ConfirmDialog.unit")}
/>
<NumberShowBox

View File

@@ -252,9 +252,9 @@ function DashboardTransportationAssistanceComponent() {
),
},
{
accessorFn: (row) => row.bank_facility,
id: "bank_facility",
header: t("TransportationAssistance.bank_facility"),
accessorFn: (row) => row.facility_bank,
id: "facility_bank",
header: t("TransportationAssistance.facility_bank"),
enableColumnFilter: true,
datatype: "numeric",
filterFn: "equals",
@@ -271,9 +271,9 @@ function DashboardTransportationAssistanceComponent() {
),
},
{
accessorFn: (row) => row.government_facility,
id: "government_facility",
header: t("TransportationAssistance.government_facility"),
accessorFn: (row) => row.facility_gov,
id: "facility_gov",
header: t("TransportationAssistance.facility_gov"),
enableColumnFilter: true,
datatype: "numeric",
filterFn: "equals",
@@ -290,9 +290,9 @@ function DashboardTransportationAssistanceComponent() {
),
},
{
accessorFn: (row) => row.user_facility,
id: "user_facility",
header: t("TransportationAssistance.user_facility"),
accessorFn: (row) => row.facility_person,
id: "facility_person",
header: t("TransportationAssistance.facility_person"),
enableColumnFilter: true,
datatype: "numeric",
filterFn: "equals",
@@ -394,9 +394,9 @@ function DashboardTransportationAssistanceComponent() {
),
},
{
accessorFn: (row) => row.available_jobs,
id: "available_jobs",
header: t("TransportationAssistance.available_jobs"),
accessorFn: (row) => row.existing_employment,
id: "existing_employment",
header: t("TransportationAssistance.existing_employment"),
enableColumnFilter: true,
datatype: "numeric",
filterFn: "equals",