import React, { useState } from "react"; import moment from "moment"; import GoalService from "../../shared/services/GoalService"; import Translate from "../../translate/Translate"; import { Alert } from "reactstrap"; import PayoutService from "../../shared/services/PayoutService"; import { IAccountingSummary, IPayoutEntry } from "../../shared/models/Payout"; import AsyncState from "../../shared/enumerations/AsyncState"; import IAsyncStateContainer from "../../shared/types/IAsyncStateContainer"; import AsyncGuard from "../shared/AsyncGuard"; import PayoutEntryTable from "../../components/payouts/PayoutEntryTable"; import ExportCsvService from "../../shared/services/ExportCsvService"; const ExportPayoutPage: React.FC = () => { const [month, setMonth] = useState( moment().add(1, "months").month() ); const [year, setYear] = useState(moment().year()); const [payouts, setPayouts] = useState< IAsyncStateContainer >({ state: AsyncState.Inactive }); const [accountingReport, setAccountingReport] = useState< IAsyncStateContainer >({ state: AsyncState.Inactive }); const years = [moment().year() - 2, moment().year() - 1, moment().year()]; const submitForm = async () => { await fetchPayoutData(); }; const submitAccountingForm = async () => { setAccountingReport({ state: AsyncState.Loading }); const date = moment({ year: year, month: month - 1, day: 1 }); const response = await PayoutService.GetAccountingReport(date); if (response.data) { setAccountingReport(response); ExportCsvService.exportAccountingReportCSV(response.data); } else { setAccountingReport({ state: AsyncState.NotFound }); } }; const fetchPayoutData = async () => { setPayouts({ state: AsyncState.Loading }); const response = await PayoutService.GetExportPayouts(year, month); setPayouts(response); setAccountingReport({ state: AsyncState.Inactive }); }; const exportCsv = () => { if (payouts.data && payouts.data.length > 0) { ExportCsvService.exportDayforcePayoutCSV(payouts.data); } }; return (
{Translate.Get.containers.exportPayoutPage.instructions} <> {payouts.data && payouts.data.length > 0 ? ( ) : ( <> )}
Accounting Report Exported
); }; export default ExportPayoutPage;