'use client' import DateRangePicker from '@/components/RangeDatePicker' import { ReportItem, ReportItemFooter, ReportItemHeader, ReportItemSubheader } from '@/components/report/ReportItem' import { ExcelExportProfitLossService } from '@/services/export/excel/ExcelExportProfitLossService' import { PDFExportProfitLossService } from '@/services/export/pdf/PDFExportProfitLossService' import { ProfitLossReport } from '@/types/services/analytic' import { Button, Card, CardContent, Box, Menu, MenuItem, ListItemIcon, ListItemText } from '@mui/material' import { useState } from 'react' interface ReportProfitLossContentProps { profitData: ProfitLossReport | undefined startDate: Date | null endDate: Date | null onStartDateChange: (date: Date | null) => void onEndDateChange: (date: Date | null) => void } // Utility function to format date for display const formatDisplayDate = (dateString: string) => { const date = new Date(dateString) return date.toLocaleDateString('id-ID', { day: '2-digit', month: '2-digit', year: 'numeric' }) } const ReportProfitLossContent = ({ profitData, startDate, endDate, onStartDateChange, onEndDateChange }: ReportProfitLossContentProps) => { const [anchorEl, setAnchorEl] = useState(null) const open = Boolean(anchorEl) const handleClick = (event: React.MouseEvent) => { setAnchorEl(event.currentTarget) } const handleClose = () => { setAnchorEl(null) } const handleExportExcel = async () => { if (!profitData) return handleClose() try { const result = await ExcelExportProfitLossService.exportProfitLossToExcel(profitData) if (result.success) { console.log('Excel export successful:', result.filename) } else { console.error('Excel export failed:', result.error) alert('Export Excel gagal. Silakan coba lagi.') } } catch (error) { console.error('Excel export error:', error) alert('Terjadi kesalahan saat export Excel.') } } const handleExportPDF = async () => { if (!profitData) return handleClose() try { const result = await PDFExportProfitLossService.exportProfitLossToPDF(profitData) if (result.success) { console.log('PDF export successful:', result.filename) // Optional: Show success notification } else { console.error('PDF export failed:', result.error) alert('Export PDF gagal. Silakan coba lagi.') } } catch (error) { console.error('PDF export error:', error) alert('Terjadi kesalahan saat export PDF.') } } return (
Export to Excel Export to PDF
{profitData ? ( <> {/* Summary Section */} {}} /> {}} /> {/* Daily Data Breakdown Section */} {profitData.data && profitData.data.length > 0 && ( <> {profitData.data.map((dailyData, index) => (
{}} /> {}} /> {}} /> {}} /> {}} /> {}} />
))} )} {/* Operational Costs Section */} {}} /> {}} /> ) : ( No data available )}
) } export default ReportProfitLossContent