Merge branch 'feature/bank_excel_export' into 'develop'

Feature/bank excel export

See merge request witel-front-end/loan-facilities/expert!155
This commit is contained in:
AmirHossein Mahmoodi
2024-02-15 12:28:04 +00:00
5 changed files with 89 additions and 5 deletions

View File

@@ -64,7 +64,7 @@
"edit-profile": "ویرایش پروفایل",
"loan-history": "کارتابل نظارت",
"loan-history-province": "کارتابل نظارت استانی",
"reserve-loan" : "وام های رزرو"
"reserve-loan": "وام های رزرو"
},
"secondary": {
"passenger-office": "توزیع درخواست",
@@ -416,7 +416,7 @@
"print_report": "چاپ گزارش کارشناسی",
"max_amount": "حداکثر مبلغ پیشنهادی {value} میلیون ریال می باشد",
"excel_report": "گزارش اکسل",
"reserve-loan-title" : "رزرو وام",
"reserve-loan-title": "رزرو وام",
"description-reserve-loan-first": "آیا از رزرو وام به کد یکتا",
"description-reserve-loan-second": "اطمینان دارید؟",
"button-reserve-cancel": "بستن",
@@ -440,7 +440,8 @@
"national_id": "کد ملی",
"proposed_amount": "مبلغ پیشنهادی",
"bank_loan_amount": "مبلغ وام بانک",
"navgan_id": "کد ناوگان"
"navgan_id": "کد ناوگان",
"excel_report": "گزارش اکسل"
},
"UserManagement": {
"name": "نام",

View File

@@ -0,0 +1,68 @@
import {Button, CircularProgress} from "@mui/material";
import {useTranslations} from "next-intl";
import {useMemo, useState} from "react";
import useRequest from "@/lib/app/hooks/useRequest";
import {EXPORT_BANK_MANAGEMENT} from "@/core/data/apiRoutes";
import moment from "jalali-moment";
import FileSaver from 'file-saver';
import DescriptionIcon from '@mui/icons-material/Description';
const PrintExcel = ({table}) => {
const t = useTranslations();
const [loading, setLoading] = useState(false)
const requestServer = useRequest({auth: true, pending: false, success: {notification: {show: false}}})
const {columnFilters, columnFilterFns, sorting} = table.getState()
const columns = table.getAllColumns()
const filterParams = useMemo(() => {
const params = new URLSearchParams();
const filters = columnFilters.map((filter) => {
let datatype;
for (const i in columns) {
if (columns[i].id == filter.id) {
datatype = columns[i].columnDef.datatype;
}
}
return {
...filter, fn: columnFilterFns[filter.id], datatype: datatype,
};
});
params.set("start", '0');
params.set("filters", JSON.stringify(filters ?? []));
params.set("sorting", JSON.stringify(sorting ?? []));
return params;
}, [columnFilters, columnFilterFns, sorting, columns,]);
const clickHandler = () => {
setLoading(true)
requestServer(`${EXPORT_BANK_MANAGEMENT}?${filterParams}`, 'get', {
auth: true,
notification: false,
requestOptions: {responseType: 'blob'}
}).then((response) => {
const filename = `گزارش کارتابل نظارت بانک تاریخ_${moment().format('jYYYY_jMM_jDD')}.xlsx`;
FileSaver.saveAs(response.data, filename);
}).catch(() => {
}).finally(() => {
setLoading(false)
})
}
return (
<Button
color="primary"
variant="contained"
size="small"
disabled={loading}
sx={{textTransform: "unset", alignSelf: "center"}}
startIcon={loading ? <CircularProgress size={18} color="inherit"/> : <DescriptionIcon/>}
onClick={clickHandler}
>
{t("BankManagement.excel_report")}
</Button>
)
}
export default PrintExcel

View File

@@ -0,0 +1,13 @@
import {Stack} from "@mui/material";
import PrintExcel from "@/components/dashboard/bank-management/Buttons/printExcel";
const TableToolbar = ({table}) => {
return (
<Stack direction={"row"} spacing={2}>
<PrintExcel table={table}/>
</Stack>
)
}
export default TableToolbar

View File

@@ -5,6 +5,7 @@ import moment from "jalali-moment";
import DataTable from "@/core/components/DataTable";
import TableRowActions from "@/components/dashboard/bank-management/TableRowActions";
import {GET_BANK_STATEMENT} from "@/core/data/apiRoutes";
import TableToolbar from "@/components/dashboard/bank-management/TableToobar";
function DashboardBankManagementComponent() {
const t = useTranslations();
@@ -183,8 +184,8 @@ function DashboardBankManagementComponent() {
tableUrl={GET_BANK_STATEMENT}
columns={columns}
selectableRow={false}
// enableCustomToolbar={true}
// CustomToolbar={TableToolbar}
enableCustomToolbar={true}
CustomToolbar={TableToolbar}
enableLastUpdate={true}
sorting={[{
id: 'score', desc: false

View File

@@ -255,6 +255,7 @@ export const DELETE_ADMIN_SETTING = BASE_URL + "/dashboard/settings/delete"
//bank statement
export const GET_BANK_STATEMENT = BASE_URL + "/dashboard/bank_referred_loans"
export const RESEND_BANK_STATEMENT = BASE_URL + "/dashboard/bank_referred_loans/send"
export const EXPORT_BANK_MANAGEMENT = BASE_URL + "/dashboard/bank_referred_loans/export"
// loan statistics
export const GET_LOAN_STATISTICS = BASE_URL + "/dashboard/reports/navgan/statistics"