import React, { useState } from 'react'
import {
    Paper,
    Table,
    TableBody,
    TableCell,
    TableHead,
    TableContainer,
    TablePagination,
    TableRow,
    IconButton,
    MenuItem,
    Tooltip,
    Icon,
    Typography,
} from '@material-ui/core'
import EditIcon from '@material-ui/icons/Edit'
import DeleteIcon from '@material-ui/icons/Delete'
import colors from 'app/assets/Color'
import useStyles from 'app/styles/Table'
import { Breadcrumb, SimpleCard } from 'app/components'
import { toPriceVnd } from 'app/config/Function'
const columns = [
    {
        id: 'index',
        label: 'STT',
        align: 'center',
        minWidth: 80,
    },
    {
        id: 'created_date',
        label: 'Thời gian giao dịch',
        align: 'left',
        minWidth: 110,
    },
    {
        id: 'order_code',
        label: 'Mã hoá đơn',
        align: 'left',
        minWidth: 160,
    },

    {
        id: 'store_name',
        label: 'Cây xăng',
        align: 'left',
        minWidth: 160,
    },
    {
        id: 'product_name',
        label: 'Sản phẩm',
        align: 'left',
        minWidth: 120,
    },
    {
        id: 'unit_price',
        label: 'Đơn giá',
        align: 'left',
        minWidth: 80,
        isMonney: true,
    },
    {
        id: 'quantity',
        label: 'Lượng nhiên liệu',
        align: 'left',
        minWidth: 80,
        isMonney: true,
    },
    {
        id: 'price',
        label: 'Thành tiền',
        align: 'left',
        minWidth: 80,
        isMonney: true,
    },

    {
        id: 'commission',
        label: 'Hoa hồng',
        align: 'left',
        minWidth: 80,
        isMonney: true,
    },

    {
        id: 'type_payment',
        label: 'Phương thức thanh toán',
        align: 'left',
        minWidth: 100,
    },
    {
        id: 'payment_gate_code',
        label: 'Đối tác',
        align: 'left',
        minWidth: 80,
    },
]

function TableList(props) {
    const classes = useStyles()
    const {
        data,
        handeChangeActive,
        removeItem,
        changeActive,
        setChangeActive,
        setPageIndex,
        setPageSize,
        pageIndex,
        totalRecords,
    } = props

    const handleChangePage = (event, newPage) => {
        setPageIndex(newPage)
    }
    const handleChangeRowsPerPage = (event) => {
        setPageSize(event.target.value)
    }

    const renderStatusBg = (status) => {
        if (status == 3) return '#ECFDF3'
        if (status == 2) return '#FFDC98'
        return '#F2F4F7'
    }

    const renderStatusColor = (status) => {
        if (status == 3) return '#027A48'
        if (status == 2) return '#F1AA1F'
        return '#344054'
    }

    return (
        <Paper className={classes.root}>
            <TableContainer className={classes.container}>
                <Table stickyHeader aria-label="sticky table">
                    <TableHead>
                        <TableRow>
                            {columns.map((column) => (
                                <TableCell
                                    key={column.id}
                                    align={'center'}
                                    style={{
                                        width: column.minWidth,
                                        backgroundColor: colors.headerTable,
                                    }}
                                >
                                    {column.label}
                                </TableCell>
                            ))}
                            <TableCell
                                style={{
                                    width: 110,
                                    backgroundColor: colors.headerTable,
                                }}
                            >
                                Trạng thái đối soát
                            </TableCell>
                        </TableRow>
                    </TableHead>
                    <TableBody className={classes.columnTable}>
                        {data.map((row) => {
                            return (
                                <TableRow
                                    hover
                                    role="checkbox"
                                    tabIndex={-1}
                                    key={row.id}
                                >
                                    {columns.map((column) => {
                                        const data = row[column.id]
                                        return (
                                            <TableCell
                                                key={column.id}
                                                align={column.align}
                                                style={{
                                                    textAlign:
                                                        column.id === 'index'
                                                            ? 'center'
                                                            : typeof data ==
                                                              'string'
                                                            ? 'left'
                                                            : 'right',
                                                }}
                                            >
                                                {column.isMonney
                                                    ? toPriceVnd(data)
                                                    : data}
                                            </TableCell>
                                        )
                                    })}
                                    <TableCell
                                        style={{
                                            textAlign: 'center',
                                        }}
                                    >
                                        <Typography
                                            style={{
                                                padding: 5,
                                                backgroundColor: renderStatusBg(
                                                    row?.statusReconciliation
                                                ),
                                                color: renderStatusColor(
                                                    row?.statusReconciliation
                                                ),
                                                borderRadius: 10,
                                            }}
                                        >
                                            {row?.statusReconciliationName}
                                        </Typography>
                                    </TableCell>
                                </TableRow>
                            )
                        })}
                    </TableBody>
                </Table>
            </TableContainer>
            <TablePagination
                component="div"
                page={pageIndex}
                count={totalRecords}
                rowsPerPage={10}
                rowsPerPageOptions={[]}
                onChangePage={handleChangePage}
                onChangeRowsPerPage={handleChangeRowsPerPage}
            />
        </Paper>
    )
}

export default TableList
