????

Your IP : 216.73.216.152


Current Path : C:/inetpub/vhost/xaydung.gdtsolutions.vn/build/static/js/
Upload File :
Current File : C:/inetpub/vhost/xaydung.gdtsolutions.vn/build/static/js/3254.b42b3b22.chunk.js.map

{"version":3,"file":"static/js/3254.b42b3b22.chunk.js","mappings":"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","sources":["views/action/defaultEnums.js","webpack://@qlxd/frontend/./src/views/bao-cao/tong-hop-nhan-cong-doi-thue-ngoai/style.scss?dfb8","components/Empty/EmptyNoData.js","components/select/DropdownListForm2.js","components/select/SelectMonth.js","views/bao-cao/tong-hop-nhan-cong-doi-thue-ngoai/index.js","components/base/Input/Radio.js","components/select/RadioList.js","components/select/CheckboxList.js","components/base/Form/FormControl.js","components/tableOdata/OdataUtils.js","components/select/SelectYear.js","../.yarn/__virtual__/reactstrap-virtual-4c869ece7a/6/root/.yarn/berry/cache/reactstrap-npm-8.10.1-e3a658744a-10c0.zip/node_modules/reactstrap/es/Card.js","views/bao-cao/tong-hop-nhan-cong-doi-thue-ngoai/data.js","components/export/ExcelPlugin/utils/helpers.js","components/export/ExcelExtensions/WorksheetWrapper.js","components/export/ExcelExtensions/ExcelWorkbook.js","components/export/ExcelExtensions/index.js","components/select/SelectAsync.js","../../../../../../root/.yarn/berry/cache/date-fns-npm-2.30.0-895c790e0f-10c0.zip/node_modules/date-fns/esm/lightFormat/index.js","../.yarn/__virtual__/reactstrap-virtual-4c869ece7a/6/root/.yarn/berry/cache/reactstrap-npm-8.10.1-e3a658744a-10c0.zip/node_modules/reactstrap/es/Table.js","components/spinners/SpinnerSmall.js","components/select/Select.js","views/bao-cao/tong-hop-nhan-cong-doi-thue-ngoai/ExportExcel.js","components/select/SelectCustom.js","components/export/ExcelPlugin/utils/constant.js","../.yarn/__virtual__/@material-ui-core-virtual-ac9c9397c3/6/root/.yarn/berry/cache/@material-ui-core-npm-4.11.4-d024c4b650-10c0.zip/node_modules/@material-ui/core/esm/utils/ownerDocument.js","../.yarn/__virtual__/@material-ui-core-virtual-ac9c9397c3/6/root/.yarn/berry/cache/@material-ui-core-npm-4.11.4-d024c4b650-10c0.zip/node_modules/@material-ui/core/esm/utils/createChainedFunction.js","../.yarn/__virtual__/@material-ui-lab-virtual-61a60f9a8e/6/root/.yarn/berry/cache/@material-ui-lab-npm-4.0.0-alpha.58-05f1e9da95-10c0.zip/node_modules/@material-ui/lab/esm/Skeleton/Skeleton.js","views/bao-cao/tong-hop-nhan-cong-doi-thue-ngoai/ReportPending.js","views/bao-cao/tong-hop-nhan-cong-doi-thue-ngoai/RenderRow.js"],"sourcesContent":["// Enums\nconst Enums_ThanhToan = [\n    {\n        value: 'all',\n        label: 'Tất cả'\n    },\n    {\n        value: '1',\n        label: 'Đã thanh toán'\n    },\n    {\n        value: '0',\n        label: 'Chưa thanh toán'\n    },\n\n]\nconst Enums_GioiTinh = [\n    {\n        value: 'Nam',\n        label: 'Nam'\n    },\n    {\n        value: 'Nu',\n        label: 'Nữ'\n    },\n    {\n        value: 'Khong',\n        label: 'Chưa có thông tin'\n    }\n]\nconst Enums_DoiTuong = [ // không được đụng vào nha ^^\n    { value: 'CuaHang', label: 'Cửa hàng' },\n    { value: 'ThueNgoai', label: 'Thuê ngoài' },\n    { value: 'KhachHang', label: 'Khách hàng' },\n    { value: 'NhanVien', label: 'Nhân viên' },\n    { value: 'CongTy', label: 'Công ty' },\n    { value: 'PhongBan', label: 'Phong ban' },\n]\n\nconst _Enums_DoiTuong = {\n    CuaHang: 'CuaHang',\n    ThueNgoai: 'ThueNgoai',\n    KhachHang: 'KhachHang',\n    NhanVien: 'NhanVien',\n    CongTy: 'CongTy',\n    PhongBang: 'PhongBan'\n}\n\nconst _Enums_DoiTuongNumber = {\n    CuaHang: 0,\n    ThueNgoai: 1,\n    KhachHang: 2,\n    NhanVien: 3,\n    CongTy: 4,\n    PhongBang: 5\n}\n\nconst Enums_PhuongThucChamCong = {\n    TheoThang: 'TheoThang',\n    TheoDuAn: 'TheoDuAn',\n}\n\nconst Enums_PhuongThucChamCongNumber = {\n    TheoThang: 0,\n    TheoDuAn: 1\n}\n\nconst Enums_CongNo = {\n    NoCu: 'NoCu', // nợ cũ,\n    TamUng: 'TamUng', // tạm ứng\n    NoDoiTac: 'NoDoiTac', // cty nợ đối tác\n}\n\nconst Enums_LoaiNoNumber = {\n    NoCu: 'NoCu',\n    TamUng: 'TamUng',\n    NoDoiTac: 'NoDoiTac',\n    DuAnNo: 'DuAnNo',\n    TraNo: 'TraNo'\n}\n\nconst Enums_LoaiNoLabel = {\n    NoCu: 'Nợ cũ',\n    TamUng: 'Tạm ứng',\n    NoDoiTac: 'Nợ đối tác',\n    DuAnNo: 'Dự án'\n}\n\n\nconst Enum_Flag = {\n    view: 'view',\n    add: 'add',\n    edit: 'edit',\n    delete: 'delete',\n}\n\nconst Enum_NhomKhoanChis = {\n    LuongThoThueNgoai: '6939DC70-E008-4286-AC13-00BD4DF40BBC',\n    LuongThoCTy: 'B59A4E45-B963-478F-8DD5-663607A32DAA',\n    ChiPhiCuaHang: 'A6391105-7862-491B-844E-0D8874AA8B7B',\n}\n\nexport {\n    Enums_GioiTinh,\n    Enums_DoiTuong,\n    _Enums_DoiTuong,\n    Enums_PhuongThucChamCong,\n    Enums_CongNo,\n    Enums_PhuongThucChamCongNumber,\n    _Enums_DoiTuongNumber,\n    Enums_LoaiNoNumber,\n    Enums_LoaiNoLabel,\n    Enum_Flag,\n    Enums_ThanhToan,\n    Enum_NhomKhoanChis,\n}","// extracted by mini-css-extract-plugin\nexport default {};","import React, { Component } from 'react'\nimport styled from 'styled-components'\n\nexport default class EmptyNoData extends Component {\n\n    render() {\n        const { size, text } = this.props\n        let children = <div>\n            <span className=\"text-center\"><i className=\"far fa-folder-open\"></i></span>\n            <span>{text || 'Không có dữ liệu'}</span>\n        </div>\n        switch (size) {\n            case 'sm':\n                return <EmptyContainerSmall>\n                    {children}\n                </EmptyContainerSmall>\n            case 'lg':\n                return <EmptyContainerLarge>\n                    {children}\n                </EmptyContainerLarge>\n            default:\n                return <EmptyContainerLarge>\n                    {children}\n                </EmptyContainerLarge>\n        }\n\n    }\n}\n\nconst EmptyContainerSmall = styled.div`\n    height: 110px;\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    width: 100%;\n\n    span{\n        line-height: 1.2;\n        display: block;\n        opacity: 0.5;\n        &:first-child{\n            font-size:2.5rem;\n        }\n        &:last-child{\n            font-size:1rem;\n        }\n    }\n`\nconst EmptyContainerLarge = styled.div`\nheight: 400px;\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    width: 100%;\n    span{\n        line-height: 1.2;\n        display: block;\n        opacity: 0.5;\n        &:first-child{\n            font-size:3.5rem;\n        }\n        &:last-child{\n            font-size:1.5rem;\n        }\n    }\n`","import React, { useCallback, useEffect, useState } from 'react';\nimport Select from './Select';\nimport { callApi2 } from '../../service/api';\n\nconst styles = {\n    multiValueLabel: styles => ({ ...styles, padding: '0px 0px 0px 6px', fontSize: 13 }),\n    control: styles => ({\n        ...styles,\n        backgroundColor: 'white',\n        height: '28.38px',\n        minHeight: '28.38px',\n        fontSize: '12px',\n        lineHeight: '1.5',\n        cursor: 'pointer',\n        borderRadius: '4px'\n    }),\n    option: (styles) => ({ ...styles, fontSize: '12px', cursor: 'pointer' }),\n    input: styles => ({ ...styles, position: 'unset' }),\n    placeholder: styles => ({ ...styles, marginLeft: 5, marginRight: 5 }),\n    singleValue: (styles, { data }) => ({ ...styles, transform: 'inherit', top: 'unset' }),\n    container: styles => ({ ...styles, width: '100%' }),\n    valueContainer: styles => ({ ...styles, padding: '0px 5px' }),\n    indicatorsContainer: styles => ({ ...styles, padding: '0px 5px' }),\n    indicatorContainer: styles => ({ ...styles, padding: '0px 5px !important', fontSize: '12px' }),\n};\n\nfunction DropdownListForm2({ options, ...props }) {\n    const [data, setData] = useState([]);\n    const [valueSnap, setValueSnap] = useState(null);\n    const [selected, setSelected] = useState(null);\n    const [isLoading, setIsLoading] = useState(false);\n\n    const getOptionsMulti = useCallback((value) => {\n        let selected = [];\n        if (data && data.length > 0 && value) {\n            for (let i = 0; i < data.length; i++) {\n                let current = data[i];\n                for (let j = 0; j < value.length; j++) {\n                    if (current.value && current.value === value[j]) {\n                        selected.push(current);\n                    }\n                }\n            }\n        }\n        return selected;\n    }, [data])\n\n    const getOptionsSingle = useCallback((value) => {\n        let selected = null;\n        if (data && data.length > 0 && value) {\n            for (let i = 0; i < data.length; i++) {\n                if (data[i].value && data[i].value === value) {\n                    selected = data[i];\n                    break;\n                } else if (data[i].options) {\n                    for (let j = 0; j < data[i].options.length; j++) {\n                        if (data[i].options[j].value && data[i].options[j].value === value) {\n                            selected = data[i].options[j];\n                            break;\n                        }\n                    }\n                }\n            }\n        }\n        return selected;\n    }, [data])\n\n    const setStateSelected = useCallback((value) => {\n        if (props.isMulti) {\n            setSelected(getOptionsMulti(value));\n        } else {\n            setSelected(getOptionsSingle(value));\n        }\n    }, [getOptionsMulti, getOptionsSingle, props.isMulti])\n\n    const loadDataFromApi = useCallback(() => {\n        let { columns, odata, url, where, valueField, textField } = props;\n        if (!url) return;\n        let data = [];\n        let _url = \"\";\n        if (odata !== false) {\n            _url = `${url}`;\n\n            if (where) {\n                _url += `/?$filter=${where}&`;\n            } else {\n                _url += `/?`;\n            }\n\n            if (columns && columns.length > 0) {\n                _url += `$select=${props.columns.join()}`;\n            }\n        } else {\n            _url = props.url;\n        }\n\n        callApi2(_url, \"GET\", null, odata)\n            .then((res) => {\n                if (odata !== false) {\n                    res.value.forEach(x => {\n                        data.push({\n                            value: x[valueField],\n                            label: x[textField],\n                            obj: x\n                        })\n                    });\n                } else {\n                    data = res;\n                }\n                setData(data); setIsLoading(false);\n                setStateSelected(valueSnap);\n            })\n            .catch((error) => { })\n    }, [props, setStateSelected, valueSnap])\n\n    // eslint-disable-next-line no-unused-vars\n    const getSnapshotBeforeUpdate = useCallback((prevProps, prevState) => {\n        if (prevProps.value !== props.value) {\n            setValueSnap(props.value)\n            setStateSelected(props.value);\n            return props.value || null;\n        } else\n            return null;\n    }, [props.value, setStateSelected])\n\n    useEffect(() => {\n        setIsLoading(true)\n        let { valueField, textField } = props;\n        if (options) {\n            let data = options.map(x => ({\n                value: x[valueField],\n                label: x[textField],\n                obj: x\n            }));\n            setData(data); setIsLoading(false);\n            setStateSelected(valueSnap);\n        } else {\n            loadDataFromApi();\n            setIsLoading(false);\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [])\n\n    // useEffect(() => {\n    //     setIsLoading(true);\n    //     setData(options);\n    //     // if (props.value) {\n    //     //     let isSelected = isMulti ? getOptionsMulti(value) : getOptionsSingle(value);\n    //     //     setSelected(isSelected)\n    //     // }\n    //     setIsLoading(false);\n    // }, [options])\n\n    // useEffect(() => {\n    //     if (props.where) loadDataFromApi();\n    // }, [loadDataFromApi, props.where])\n\n    const onChange = useCallback((e, meta) => {\n        setSelected(e);\n        if (props.isMulti) {\n            var list = [];\n            for (let i = 0; i < e.length; i++) {\n                list.push(e[i].value);\n            }\n            props.onChange(list, null);\n        } else {\n            if (props.getFullValue) {\n                props.onChange(e ? e : null, e ? e.obj : null);\n            } else {\n                props.onChange(e ? e.value : null, e ? e.obj : null);\n            }\n        }\n    }, [props])\n\n    let { placeholder, isMulti, isDetail, value, disabled } = props;\n    let isSelected = isMulti ? getOptionsMulti(value) : getOptionsSingle(value);\n    return (\n        data.length > 0 && isDetail ?\n            <span>{selected && selected.label}</span>\n            :\n            <Select\n                isMulti={isMulti}\n                isLoading={isLoading}\n                isDisabled={disabled}\n                isClearable={true}\n                className=\"dropdownlist\"\n                value={isSelected}\n                styles={styles}\n                options={data}\n                onChange={onChange}\n                placeholder={placeholder}\n            />\n    )\n}\n\nexport default DropdownListForm2\n","import React, { Component } from 'react';\nimport SelectSingle from './SelectSingle';\n\nclass SelectMonth extends Component {\n    render() {\n        const { value, onChange } = this.props;\n        const data = () => {\n            let option = [];\n            for (var i = 1; i <= 12; i++) {\n                option.push({ value: i, label: `Tháng ${i}` })\n            }\n            return option;\n        }\n        // const month = (new Date()).getMonth() + 1;\n        return (\n            <SelectSingle\n                // value={value === null ? month : value}\n                value={value}\n                onChange={onChange}\n                options={data()}\n                valueRef=\"value\"\n                labelRef=\"label\"\n                placeholder=\"Chọn tháng\"\n            />\n        );\n    }\n};\n\nSelectMonth.propTypes = {\n};\n\nSelectMonth.defaultProps = {\n    placeholder: 'Chọn...'\n};\n\nexport default SelectMonth;","/* eslint-disable no-unused-vars */\nimport React, { useState, useCallback, useMemo, useEffect } from 'react';\nimport { Card, CardBody, Col, Row, Table } from 'reactstrap';\nimport { CHECK_WARNING } from '../../../components/alert/Alert';\nimport { ButtonSave } from '../../../components/base/Button';\nimport FormControl from '../../../components/base/Form/FormControl';\nimport EmptyNoData from '../../../components/Empty/EmptyNoData';\nimport { ChamCongEndpoint, DotLuongsEndpoint } from '../../../service/GDTCores';\nimport { formCondition } from './data'\nimport RenderRow from './RenderRow';\nimport ReportPending from './ReportPending'\nimport './style.scss'\nimport ExportExcel from './ExportExcel';\nimport Select from 'react-select';\nimport { formatDate, formatDateNormal } from '../../../actions/util';\nimport { SelectSingle } from '../../../components/select';\n\nconst INITAL_OBJ = {\n    DoiThueNgoaiId: null,\n    TenDoi: '',\n    DotLuongId: null,\n}\nexport default function TongHopNhanCong() {\n    const [dataCondition, setDataCondition] = useState(INITAL_OBJ);\n    const [isPending, setIsPending] = useState(false)\n    const [dataReport, setDataReport] = useState([]);\n    const [lstDotLuong, setLstDotLuong] = useState([]);\n\n    const getDotByYear = useCallback(async (value) => {\n        const { value: dotLuongs } = await DotLuongsEndpoint.getAll(`?$filter=year(TuNgay) eq ${value}&$orderBy=TuNgay desc`);\n        dotLuongs.forEach((dot, i, arr) => {\n            arr[i]['label'] = `Đợt ` + dot.Dot + ` - (${formatDateNormal(dot.TuNgay) + ` đến ` + formatDateNormal(dot.DenNgay)})`;\n            arr[i]['value'] = dot.Id;\n        });\n        setLstDotLuong(dotLuongs);\n        setDataCondition((pre) => ({ ...pre, Nam: value, 'DotLuongId': dotLuongs[0]?.Id, 'DenNgay': dotLuongs.length !== 0 ? formatDateNormal(dotLuongs[0].DenNgay) : null }));\n    }, [])\n\n    useEffect(() => { getDotByYear(new Date().getFullYear()) }, [getDotByYear])\n\n    const handleChange = useCallback((name, value) => {\n        if (name !== 'DoiThueNgoaiId') {\n            if (name === 'Nam') { getDotByYear(value) } else {\n                setDataCondition((pre) => ({ ...pre, [name]: value ? value.value : null, 'DenNgay': value ? formatDateNormal(value.DenNgay) : null }));\n            }\n        } else {\n            setDataCondition((pre) => {\n                let dataDoiThue = { ...pre };\n                return { ...dataDoiThue, DoiThueNgoaiId: value ? value.value : null, TenDoi: value ? value.label : '' };\n            })\n        }\n    }, [getDotByYear]);\n\n    const RenderReport = useMemo(() => {\n        return <div className=\"TongHopNhanCongDoiThueNgoai\">\n            <Table bordered size=\"sm\" className=\"Table_BangKeChiTietCongNo\">\n                <thead>\n                    <tr>\n                        <th>TÊN VẬT TƯ</th>\n                        <th>SL</th>\n                        <th>LÀM TRÒN</th>\n                        <th>ĐƠN GIÁ</th>\n                        <th>THÀNH TIỀN</th>\n                        <th>TẠM ỨNG</th>\n                    </tr>\n                </thead>\n                <tbody>\n                    <ReportPending loading={isPending}>\n                        {\n                            dataReport.length !== 0 ? dataReport.map((item, index) => <RenderRow key={index} item={item} index={index} />) :\n                                <tr>\n                                    <td colSpan=\"9\">\n                                        <EmptyNoData size=\"sm\" />\n                                    </td>\n                                </tr>\n                        }\n                    </ReportPending>\n                </tbody>\n            </Table>\n        </div>\n    }, [dataReport, isPending])\n\n    const check = useCallback(\n        () => {\n            const { DoiThueNgoaiId, DotLuongId } = dataCondition;\n            if (!DoiThueNgoaiId || !DotLuongId) {\n                return false\n            } else {\n                return true\n            }\n        },\n        [dataCondition],\n    )\n\n    const formatData = (data) => {\n        let arr = data.map(m => {\n            let TongTamUng = 0;\n            m.DuAns.forEach(item => TongTamUng += (item.CongNos || 0))\n            return {\n                ...m,\n                TongTamUng: TongTamUng,\n                DuAns: m.DuAns.map(m2 => {\n                    let ThanhTien = 0; let TongNgayCong = 0; let TongLamTron = 0;\n                    m2.Items.forEach(item => ThanhTien += (item.ThanhTien || 0));\n                    m2.Items.forEach(item => TongLamTron += (item.LamTron || 0));\n                    m2.Items.forEach(item => TongNgayCong += (item.NgayCong || 0));\n                    return {\n                        ...m2,\n                        ThanhTien: ThanhTien,\n                        TongNgayCong: TongNgayCong,\n                        TongLamTron: TongLamTron\n                    }\n                })\n            }\n        })\n        let newArr = arr.map(m => {\n            let TongThanhTien = 0;\n            m.DuAns.forEach(item => TongThanhTien += (item.ThanhTien || 0))\n            return {\n                ...m,\n                TongThanhTien: TongThanhTien\n            }\n        })\n        return newArr\n    }\n\n    const handleGetDataReport = useCallback(async () => {\n        if (check()) {\n            setIsPending(true);\n            const { DoiThueNgoaiId, DotLuongId } = dataCondition\n            const { ResultObj } = await ChamCongEndpoint.getTongHopNhanCong(DoiThueNgoaiId, DotLuongId);\n            if (ResultObj) {\n                setDataReport(formatData(ResultObj));\n            } else {\n                setDataReport([]);\n            }\n            setIsPending(false);\n        } else {\n            setDataReport([]);\n            CHECK_WARNING('Vui lòng chọn đầy đủ thông tin');\n        }\n    }, [check, dataCondition])\n\n    const handleExportExcel = useCallback(async () => {\n        if (check()) {\n            const { DoiThueNgoaiId, DotLuongId, TenDoi, Nam } = dataCondition\n            const { ResultObj } = await ChamCongEndpoint.getTongHopNhanCong(DoiThueNgoaiId, DotLuongId);\n            return ExportExcel({ data: formatData(ResultObj), Nam, TenDoi: TenDoi }, `Bảng tổng hợp nhân công ${TenDoi} - ${Nam}.xlsx`)\n        } else {\n            setDataReport([]);\n            CHECK_WARNING('Vui lòng chọn đầy đủ thông tin');\n        }\n    }, [check, dataCondition])\n\n    return (\n        <React.Fragment>\n            <Card>\n                <CardBody className=\"row\">\n                    <Col xs='6'>\n                        <Row>\n                            <Col xs='4'>\n                                <FormControl data={formCondition.DoiThueNgoaiId} value={(dataCondition && dataCondition.DoiThueNgoaiId) || null} onChange={handleChange} />\n                            </Col>\n                            <Col xs='3' row>\n                                <FormControl data={formCondition.Nam} value={(dataCondition && dataCondition.Nam) || null} onChange={handleChange} />\n                            </Col>\n                            <Col xs='5' row>\n                                <SelectSingle\n                                    valueRef=\"value\"\n                                    labelRef=\"label\"\n                                    options={lstDotLuong}\n                                    placeholder='Chọn đợt chốt'\n                                    value={(dataCondition && dataCondition.DotLuongId) || null}\n                                    isClearable={true}\n                                    onChange={e => {\n                                        e ? handleChange('DotLuongId', e) : handleChange('DotLuongId', null)\n                                    }}\n                                />\n                            </Col>\n                        </Row>\n                    </Col>\n                    <Col xs='6' style={{ marginTop: 8 }}>\n                        <ButtonSave className=\"mr-1\" onClick={handleGetDataReport} >Lấy dữ liệu công nợ</ButtonSave>\n                        <ButtonSave color=\"success\" onClick={handleExportExcel} >Xuất báo cáo</ButtonSave>\n                    </Col>\n                    <Col xs='12'>{RenderReport}</Col>\n                </CardBody>\n            </Card>\n        </React.Fragment>\n    )\n}\n","import React from 'react';\nimport Input from \"./Input\";\n\nconst Radio = (props) => {\n    const { disabled, name, label, checked, type, children, ...attribute } = props;\n    return (\n        <label className=\"radio\">\n            <Input {...attribute} type=\"radio\" name={name} checked={checked} disabled={disabled}>\n                {children}\n            </Input>\n            <span className={disabled ? \"disabled\" : \"\"}>{label}</span>\n        </label>\n    );\n};\n\nRadio.propTypes = {\n\n};\n\nRadio.defaultProps = {\n\n};\n\nexport default Radio;","import React, { useEffect, useState } from 'react';\nimport { Col, Row } from 'reactstrap';\nimport Radio from '../base/Input/Radio';\n\nfunction RadioList({ value, name, disabled, data, numberCol, onChange }) {\n    const [valueData, setValueData] = useState(null);\n\n    useEffect(() => {\n        setValueData(value)\n    }, [value])\n\n    return (\n        <Row>\n            {\n                data && data.map((item, index) => {\n                    return (\n                        <Col md={numberCol}>\n                            <Radio key={index}\n                                name={name}\n                                disabled={disabled || item.disabled}\n                                value={item.value}\n                                label={item.label}\n                                checked={valueData === item.value && !item.disabled}\n                                onChange={(e) => {\n                                    if (valueData !== e.target.value) {\n                                        setValueData(e.target.value)\n                                        onChange(e.target.value);\n                                    }\n                                }}\n                            />\n                        </Col>\n                    )\n                })\n            }\n\n        </Row>\n\n    )\n}\n\nexport default RadioList\n","import React, { useCallback, useEffect, useState } from 'react';\nimport Checkbox from '../base/Input/InputBoolean';\n\nfunction CheckboxList({ value, name, disabled, data, onChange }) {\n    const [selected, setSelected] = useState([])\n\n    useEffect(() => {\n        setSelected(value);\n    }, [value])\n\n    const handleChange = useCallback((id, value) => {\n        var index = selected.indexOf(id);\n        if (index < 0) {\n            selected.push(id);\n        } else {\n            selected.splice(index, 1);\n        }\n        setSelected(selected)\n        onChange(selected);\n    }, [onChange, selected])\n\n    return (\n        data && data.map((item, index) => {\n            return (\n                <Checkbox key={index}\n                    name={name}\n                    disabled={disabled || item.disabled}\n                    value={item.value}\n                    label={item.label}\n                    checked={selected && selected.indexOf(item.value) >= 0 && !item.disabled}\n                    onChange={(val) => handleChange(item.value, val)}\n                />\n            )\n        })\n    )\n\n}\n\nexport default CheckboxList","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { FormGroup, Col } from \"reactstrap\";\nimport Label from '../Label/Label';\nimport Required from '../Label/Required';\nimport InputText from '../Input/InputText';\nimport InputSelect from '../Input/InputSelect';\nimport InputDate from '../Input/InputDate';\nimport TextArea from '../Input/TextArea';\nimport DropdownListForm2 from '../../select/DropdownListForm2';\nimport RadioList from '../../select/RadioList';\nimport CheckboxList from '../../select/CheckboxList';\nimport NumberFormat from \"../../numberformat/NumberFormat\";\nimport { Password, InputBoolean, InputNumber, InputFile } from '../Input';\nimport SelectYear from '../../select/SelectYear';\nimport SelectCustom from '../../select/SelectCustom';\nimport SelectMonth from '../../select/SelectMonth';\nimport { formatDate } from '../../../actions/util';\nimport { DataSelect2, SelectMulti } from '../../select';\nimport SelectAsync from '../../select/SelectAsync';\n\nconst renderControl = (props) => {\n  let { data, onChange, value, isDetail } = props;\n  const setPlaceholder = (name) => `Nhập ${name.toLowerCase()}`;\n  let type = isDetail && data.type !== 'data-select' ? 'label' : data.type;\n  // eslint-disable-next-line default-case\n  switch (type) {\n    case \"label\":\n      return (\n        <span>\n          {data.type === 'datetime' ? formatDate(value) : data.type === 'radio-list' ? value === 2 ? value = 'Thông báo giá' : value = 'Kê khai giá' : value}\n        </span>\n      )\n    case \"textbox\":\n      return (\n        <InputText\n          disabled={data.disabled ? data.disabled : false}\n          name={data.field_name} value={value == null ? \"\" : value}\n          onChange={e => onChange && onChange(e.target.name, e.target.value)}\n          placeholder={setPlaceholder(data.title)}\n        />\n      )\n    case \"password\":\n      return (\n        <Password\n          name={data.field_name} value={value == null ? \"\" : value}\n          onChange={e => onChange && onChange(e.target.name, e.target.value)}\n          placeholder={setPlaceholder(data.title)}\n        />\n      )\n    case \"textarea\":\n      return (\n        <TextArea\n          disabled={data.disabled ? data.disabled : false}\n          name={data.field_name} value={value == null ? \"\" : value}\n          onChange={e => onChange && onChange(e.target.name, e.target.value)}\n          placeholder={setPlaceholder(data.title)}\n          style={data.style}\n        />\n      )\n    case \"checkbox\":\n      return (\n        <InputBoolean\n          disabled={data.disabled ? data.disabled : false}\n          name={data.field_name}\n          checked={value ? value : false}\n          onChange={checked => {\n            onChange && onChange(data.field_name, checked)\n          }}\n          placeholder={setPlaceholder(data.title)}\n        />\n      )\n    case \"datetime\":\n      return (\n        <InputDate\n          isClearable={data.isClearable}\n          placeholder={data.placeholder}\n          style={{ height: '2rem' }}\n          className=\"date-time\"\n          name={data.field_name} value={value}\n          onChange={date => onChange && onChange(data.field_name, date)}\n          placeholderText={setPlaceholder(data.title)}\n        />\n      )\n    case \"data-select\":\n      return (\n        data.dataSelect &&\n        <DropdownListForm2\n          isDetail={isDetail}\n          isMulti={data.dataSelect.isMulti ? data.dataSelect.isMulti : false}\n          disabled={data.disabled ? data.disabled : false}\n          url={data.dataSelect.url}\n          odata={data.dataSelect.odata}\n          where={data.dataSelect.where}\n          group_by={data.dataSelect.group_by}\n          columns={data.dataSelect.columns}\n          valueField={data.dataSelect.value_field}\n          textField={data.dataSelect.text_field}\n          options={data.dataSelect.options}\n          value={value}\n          placeholder={data.placeholder}\n          getFullValue={data.getFullValue}\n          onChange={(selectedItems, info) => {\n            onChange && onChange(data.field_name, selectedItems, info);\n          }} />\n      )\n    case \"numeric\":\n      return (\n        <InputNumber\n          name={data.field_name} value={value}\n          onChange={e => onChange && onChange(e.target.name, e.target.value)}\n          placeholder={setPlaceholder(data.title)}\n        />\n      )\n    case \"currency\":\n      return (\n        <NumberFormat\n          id={`ctl_${data.field_name}`}\n          className=\"number-format\"\n          disabled={data.disabled ? data.disabled : false}\n          value={value}\n          placeholder={\"0\"}\n          thousandSeparator={data.thousandSeparator}\n          decimalSeparator={data.decimalSeparator}\n          decimalScale={data.decimalScale}\n          onValueChange={({ values }) => {\n            onChange && onChange(data.field_name, parseFloat(values.value));\n          }}\n          onFocus={(event) => event.target.select()}\n        />\n      )\n    case \"radio-list\":\n      return (\n        <RadioList\n          name={data.field_name}\n          disabled={data.disabled ? data.disabled : false}\n          data={data.data}\n          value={value}\n          onChange={(val) => onChange && props.onChange(data.field_name, val)} />\n      )\n    case \"checkbox-list\":\n      return (\n        <CheckboxList\n          name={data.field_name}\n          disabled={data.disabled ? data.disabled : false}\n          data={data.data}\n          value={value}\n          onChange={(val) => onChange && props.onChange(data.field_name, val)} />\n      )\n    case \"select-year\":\n      //console.log(value);\n      //var val = value ? value.value : null;\n      return (\n        <SelectYear\n          disabled={data.disabled ? data.disabled : false}\n          value={value}\n          onChange={(selected) => {\n            onChange && props.onChange(data.field_name, selected && selected.value)\n          }}\n          placeholder={setPlaceholder(data.title)}\n        />\n      )\n    case \"select-custom\":\n      return (\n        <SelectCustom\n          value={value}\n          onChange={event => {\n            onChange && props.onChange(data.field_name, event && event.value)\n          }}\n          options={props.data.options}\n        />\n      )\n    case \"select-month\":\n      return (\n        <SelectMonth\n          value={value}\n          onChange={(selected) => {\n            onChange && props.onChange(data.field_name, selected && selected.value)\n          }}\n        />\n      )\n    case \"data-select-odata\":\n      return (\n        <DataSelect2\n          fields={data.fields}\n          originfield={data.originfield}\n          url={data.url}\n          name={data.field_name}\n          column={{ field: data.value_field, label: data.value_label, type: data.value_type }}\n          value={value || null}\n          onChange={e => props.onChange(data.field_name, e && data.getFullValue ? e : e.value)}\n          whereOne={data.where}\n          multiLabel={data.multiLabel}\n          eleUrl={1}\n          placeholder={data.placeholder}\n        />\n      )\n    case \"file\":\n      return (\n        <InputFile\n          name={data.field_name}\n          onChange={file => props.onChange(data.field_name, file, true)}\n          title=\"Chọn tập tin đính kèm trước khi tải lên\"\n          accept=\"application/pdf\"\n          required={data.required} />\n      )\n    case \"async-select\":\n      return (\n        <SelectAsync\n          name={data.field_name}\n          onChange={value => props.onChange(data.field_name, value)}\n          placeholder=\"Chọn khách hàng\"\n          loadData={data.loadOptions}\n          getOptionValue={data.getOptionValue}\n          getOptionLabel={data.getOptionLabel}\n          onAdd={data.onAdd}\n          value={value}\n        />\n      )\n    case \"multi-select\":\n      return (\n        <SelectMulti\n          defaultValue={data.defaultValue || []}\n          options={data.options}\n          column={data.column || { field: 'value', label: 'label', type: 'string' }}\n          onChange={value => props.onChange(data.field_name, value)}\n        />\n      )\n  }\n}\nconst FormControl = props => {\n  const { data, value, onChange, onChangeRender, inline, colLabel, colValue } = props;\n  const setPlaceholder = (name) => `Nhập ${name.toLowerCase()}`;\n  return (\n    data && data.type !== \"hidden\" &&\n    <FormGroup row className={`form-control-${data.field_name}`} >\n      {\n        data.hidden_label !== true &&\n        <Col md={colLabel ? colLabel : inline === false ? \"12\" : \"3\"}>\n          {data.required ? <Required>{data.title}</Required> : <Label>{data.title}</Label>}\n        </Col>\n      }\n      <Col md={colValue ? colValue : inline === false || data.hidden_label === true ? \"12\" : \"9\"}>\n        <div className=\"form-control-value\" style={data.width && { maxWidth: data.width }}>\n          {\n            data.render ?\n              data.render(value, onChangeRender)\n              : data.lookup ?\n                <InputSelect\n                  name={data.field_name} value={value}\n                  onChange={e => onChange && onChange(e.target.name, e.target.value)}\n                  placeholder={setPlaceholder(data.title)}\n                >\n                  {Object.keys(data.lookup).map((key, index) => (\n                    <option key={index} value={key}>{data.lookup[key]}</option>)\n                  )}\n                </InputSelect>\n                : renderControl(props)\n          }\n        </div>\n      </Col>\n    </FormGroup>\n  );\n}\n\nFormControl.propTypes = {\n  data: PropTypes.object.isRequired\n};\n\nFormControl.defaultProps = {\n\n}\n\nexport default FormControl;\n","/* eslint-disable array-callback-return */\nimport { CHECK_WARNING } from \"../alert/Alert\";\n\nexport const delimiter = \".\";\nexport const space = \"/\";\n\nexport const getDataID = (columns) => columns.filter(e => e.dataID)[0];\nexport const getPrimaryKey = (columns) => getDataID(columns).field;\n\nexport const checkDelimiter = (value) => value && value.includes(delimiter);\nexport const checkSpace = (value) => value && value.includes(space);\nexport const convertDelimiter = (value) => value.split(delimiter).join(space);\nexport const checkHasField = (hasField, column) => (hasField ? column.field : column);\n\nexport const getPrimaryURL = (url, columns, data) => {\n  const ID = getDataID(columns);\n  //const dataField = ID.type === 'numeric' ? data[ID.field] : \"'\" + data[ID.field] + \"'\";\n  //return `${url}(${ID.type === 'guid' ? 'guid' : ''}${dataField})`;\n  return `${url}(${data[ID.field]})`;\n}\n\n// CheckData\nexport const handleCheckData = (columns, newData) => {\n  let columnsValue = columns.filter(column => column.dataCheck);\n  for (var i = 0; i < columnsValue.length; i++) {\n    if (checkDelimiter(columnsValue[i].field) && columnsValue[i].dataRef) {\n      if (newData[columnsValue[i].dataRef[0]] === null || newData[columnsValue[i].dataRef[0]] === undefined) {\n        CHECK_WARNING(\"Vui lòng nhập dữ liệu cột \" + columnsValue[i].title);\n        return false;\n      }\n    } else {\n      if (newData[columnsValue[i].field] === undefined || newData[columnsValue[i].field] === null) {\n        CHECK_WARNING(\"Vui lòng nhập dữ liệu cột \" + columnsValue[i].title);\n        return false;\n      }\n    }\n  }\n  return true;\n}\n\n\n\n// EXPAND\nexport const filterExpandURL = (list_join, hasField = true,originfield=false,multiLabel=null) => {\n  let list_join_filter_only = [];\n  let list2_join_filter_only = [];\n  let list_join_filter_only_check = [];\n  let i1 = 0;\n  let index_table = [];\n  let index_real = '';\n  let expand = '';\n\n  list_join.forEach((current, i) => {\n    list_join_filter_only_check.push(current.field);\n  });\n  let arrayOfUniques = [];\n  let index = [];\n  list_join_filter_only_check.forEach((element, i) => {\n    if (!arrayOfUniques.includes(element)) {\n      arrayOfUniques.push(element)\n    } else {\n      index.push(i)\n    }\n  });\n  index.forEach((num) => {\n    list_join.splice(num, 1);\n  })\n  //tạo 1 mãng colunm và 1 mãng field theo column\n  list_join.forEach((current, i) => {\n    let split = '';\n    if(originfield){\n      split = checkHasField(hasField, current)\n      .split(delimiter).reverse().splice(1).reverse().join(',');\n    }else{\n      split = checkHasField(hasField, current)\n      .split(delimiter).reverse().splice(1).reverse().join(space);\n    } \n    let splitField = checkHasField(hasField, current)\n      .split(delimiter).splice(1).reverse().join(space);\n    if (checkSpace(splitField)) {\n      splitField = splitField.split(space)[0];\n    }\n   \n    if (i === 0) {\n      list_join_filter_only.push(split);\n      list2_join_filter_only.push(splitField);\n      index_table[i] = split;\n    } else {\n      if (!list_join_filter_only.some(arr => arr === split)) {\n        list_join_filter_only.push(split);\n        index_table[i] = split;\n        i1 = i;\n        list2_join_filter_only[i1] = splitField;\n      }\n      else {\n        index_table.forEach((current, i2) => {\n          if (current === split) {\n            index_real = i2\n          }\n        })\n        if (list2_join_filter_only[index_real] !== splitField) {\n          list2_join_filter_only[index_real] = list2_join_filter_only[index_real] + ',' + splitField;\n        }\n      }\n    }\n  });\n  //sắp xếp thứ tự cho list2_join_filter_only\n  let list2_join_filter_only_fake = [];\n  list2_join_filter_only.forEach((curr) => {\n    list2_join_filter_only_fake.push(curr);\n  })\n  list2_join_filter_only = list2_join_filter_only_fake;\n  //create query expand and select\n  list_join_filter_only.forEach((curr, i3) => {\n    if (i3 === 0) {\n      if (checkSpace(curr)) {\n        let arr_list = curr.split(space);\n        let arr_list2 = list2_join_filter_only[i3].split(space);\n        let text = '';\n        let text1 = '';\n        let ngoac = '';\n        let ngoac_end = '';\n        arr_list.forEach((element, i4) => {\n          ngoac = (i4 === (arr_list.length - 1)) ? ngoac + ')' : '';\n          ngoac_end = ngoac_end + ')';\n          if (i4 === 0) {\n            text1 = element + '(' + ngoac;\n            text = text1;\n          } else {\n            if (i4 === (arr_list.length - 1)) {\n              text1 = '$expand=' + element + '($select=' + arr_list2[0] + ngoac_end;\n            } else {\n              text1 = '$expand=' + element + '(' + ngoac;\n            }\n            text = text + '' + text1;\n          }\n        });\n        expand = text;\n      } else {\n        if(multiLabel!==null){\n            let stringLabel ='';\n            multiLabel.map((multiLB,i) => {\n              if(checkDelimiter(multiLB.field))\n              {\n                let labelMuti = multiLB.field.split('.');\n                stringLabel += (i===0) ? labelMuti[labelMuti.length-1] : stringLabel+','+labelMuti[labelMuti.length-1];\n              }\n              return\n            })\n            expand = curr + '($select=' + list2_join_filter_only[i3]+','+stringLabel+')';\n        }else{\n          expand = curr + '($select=' + list2_join_filter_only[i3] +')';\n        }\n      }\n    } else {\n      if (checkSpace(curr)) {\n        let arr_list = curr.split(space);\n        let arr_list2 = list2_join_filter_only[i3].split(space);\n        let text = '';\n        let text1 = '';\n        let ngoac = '';\n        let ngoac_end = '';\n        arr_list.forEach((element, i4) => {\n          ngoac = (i4 === (arr_list.length - 1)) ? ngoac + ')' : '';\n          ngoac_end = ngoac_end + ')';\n          if (i4 === 0) {\n            text1 = element + '(' + ngoac;\n            text = text1;\n          } else {\n            if (i4 === (arr_list.length - 1)) {\n              text1 = '$expand=' + element + '($select=' + arr_list2[0] + ngoac_end;\n            } else {\n              text1 = '$expand=' + element + '(' + ngoac;\n            }\n            text = text + '' + text1;\n          }\n        });\n        expand = expand + ',' + text;\n      } else {\n        expand = expand + ',' + curr + '($select=' + list2_join_filter_only[i3] + ')';\n      }\n    }\n  })\n  return expand;\n}\n\n// SELECT\nexport const selectURL = (columns, selectType, hasField = true) => {\n  if (selectType) {\n    if (selectType === 'withColumns') {\n      return `${columns.reduce((accum, current, index, array) => {\n        let field = checkHasField(hasField, current);\n        let key_select = `${accum}`;\n        let arr_key_select = key_select.split(',');\n        let check_point = true;\n        if (checkDelimiter(field)) {\n          let check_connect_multi = field.split('.');\n          if (arr_key_select.indexOf(current.dataRef[0]) === -1) {\n            if (check_connect_multi.length < 3) {\n              key_select += `${current.dataRef === undefined ? '' : (current.dataRef[0] + ',')}`;\n            }\n          }\n        } else {\n          if (arr_key_select.indexOf(field) === -1) {\n            key_select += `${field}`;\n          } else {\n            check_point = false;\n          }\n        }\n        let a = `${key_select}${index === (array.length - 1) ? '' : ((checkDelimiter(field) === true) ? '' : (check_point === true) ? ',' : '')}`;\n        return a;\n      }, ``)}`;\n    }\n  } else {\n    return `${columns.filter(column => checkDelimiter(column.field))\n      .reduce((accum, current) => `${accum},${convertDelimiter(checkHasField(hasField, current))}`, `*`)}`;\n  }\n  return '';\n}\n\nexport const filterTypeField = (type, value) => {\n  if (type === 'string') {\n    return `'${value}'`;\n  }\n  if (type === 'datetime') {\n    return `datetime'${value}'`;\n  }\n  if (type === 'guid') {\n    return `${value}`;\n  }\n  return `${value}`;\n}\n\nexport const filterField = (fieldName, type, value, isSearch = false,where = null,multiLabel=null) => {\n  if (isSearch) {\n    let arr_field = fieldName.split('.')[0].split('/');\n    if (arr_field.length < 3) {\n      if(!checkDelimiter(fieldName)){\n        return where ? `contains(${fieldName},'${value}') ${where}` : `contains(${fieldName},'${value}')`;\n      }else{\n        if(multiLabel){\n          let fieldChange = fieldName.split('.').join('/')\n          let querySeachDF = `contains(${fieldChange},'${value}')` + where;\n          multiLabel.map(x=>{\n            if(x.isSearch){\n              let fieldSeach = x.field.split('.').join('/');\n            querySeachDF += ` or contains(${fieldSeach},'${value}')`+ where\n            }\n            \n          })\n          return querySeachDF;\n        }else{\n          let fieldChange = fieldName.split('.').join('/')\n          return `contains(${fieldChange},'${value}')`;\n        }\n        \n      }\n      \n    }\n  } else {\n    return `${fieldName} eq ${filterTypeField(type, value)}`;\n  }\n\n}\n\n// FILTER\nexport const filterURL = (query, columns,fieldFilter,where) => {\n  if (query.filters && query.filters.length > 0) {\n    const querys = query.filters\n      .filter(filter => filter.column.field && filter.column.type)\n      .map(filter => {\n        let key_filter = ''\n        if(fieldFilter){\n           key_filter = `${checkDelimiter(filter.column.field) ? convertDelimiter(fieldFilter) : filter.column.field}`; \n        }else{\n           key_filter = `${checkDelimiter(filter.column.field) ? filter.column.dataRef[0] : filter.column.field}`;\n        }\n        return filterField(key_filter, filter.column.type, filter.value);\n      });\n    return querys && querys.join(' and ');\n  }\n  if (query.search && query.search.length >= 1) {\n    const querys = columns\n      .filter(column => column.searchable && column.field && column.type)\n      .map(column => {\n        const key_filter = `${checkDelimiter(column.field) ? convertDelimiter(column.field) : column.field}`;\n        if (column.type === 'numeric' && !checkDelimiter(column.field)) {\n          if (!isNaN(Number(query.search))) {\n            return filterField(key_filter, column.type, query.search, false);\n          }\n        } else {\n          return filterField(key_filter, column.type, query.search, true,where ? 'and '+where : column.where);\n        }\n\n      });\n    querys.map((que, ii) => {\n      if (que === undefined) {\n        querys.splice(ii, 1);\n      }\n    });\n    let fakeQuery = querys;\n    fakeQuery.forEach((cur,index)=>{\n      if(typeof cur === \"undefined\"){\n        querys.splice(index,1)\n      }\n    })\n    // querys.splice(querys.indexOf(undefined),1);\n    return querys && querys.join(' or ');\n  }\n  return '';\n}\n\n// Paginate\nexport const generatePaginate = (page, pageSize) => {\n  return `$top=${pageSize}&$skip=${page * pageSize}&$count=true`;\n}\n\n// OrderBy\nexport const generateOrderBy = (field, orderDirection) => {\n  return `&$orderby=${checkDelimiter(field) ? convertDelimiter(field) : field} ${orderDirection}`;\n}\n\n// Expand\nexport const generateExpand = (columns, hasField = true,originfield = false,multiLabel=null) => {\n  let list_join = columns.filter(column => checkDelimiter(checkHasField(hasField, column)));\n  \n  if (list_join.length === 0) {\n    return '';\n  }\n  if(multiLabel!==null){\n    return `&$expand=${filterExpandURL(list_join, hasField,originfield,multiLabel)}`;\n  }else{\n    return `&$expand=${filterExpandURL(list_join, hasField,originfield)}`;\n  }\n  \n}\n\n// Select\nexport const generateSelect = (columns, selectType = 'withColumns', hasField = true,originfield,multiLabel = null) => {\n  const select_value = selectURL(columns, selectType, hasField);\n  if(originfield){\n    return select_value ? `&$select=${select_value}` : '';\n  }else{\n    if(multiLabel!==null){\n      var field_MultiLabel = '';\n      multiLabel.map(cur=>{\n        field_MultiLabel +=`,${cur.field}`\n        return field_MultiLabel\n      })\n      return select_value ? `&$select=${select_value} ${field_MultiLabel}` : '';\n    }else{\n      return select_value ? `&$select=${select_value}` : '';\n    }\n  }\n  \n}\n\n// EXPAND\nexport const generatedExpandSelectURL = (columns, where, hasField = true, selectType = 'withColumns', expect = null, originfield=false, multiLabel=null) => {\n  if (expect !== null) {\n    let a = `${\"&$filter=\" + expect.field + \" ne \" + expect.data}`;\n    let b = `${\" and \" + expect.field + \" ne \" + expect.data}`;\n    // let a = `${\"&$filter=\" + expect.field + \" ne \" + expect.data}`;\n    // let b = `${\" and \" + expect.field + \" ne \" + expect.data}`;\n    return `${generateExpand(columns, hasField)}${generateSelect(columns, selectType, hasField)}${where ? (\"&$filter=\" + where + b) : a}`;\n  } else {\n    if(originfield===false){\n      if(multiLabel!==undefined){\n        return `${generateExpand(columns, hasField)}${generateSelect(columns, selectType, hasField, originfield,multiLabel)}${where ? (\"&$filter=\" + where) : \"\"}`;\n      }else{\n        return `${generateExpand(columns, hasField)}${generateSelect(columns, selectType, hasField, originfield)}${where ? (\"&$filter=\" + where) : \"\"}`;\n      }\n      \n    }else{\n      return `${generateExpand(columns, hasField,originfield,multiLabel)}${where ? (\"&$filter=\" + where) : \"\"}`;\n    }\n    \n  }\n}\n","import React, { Component } from 'react';\nimport SelectSingle from './SelectSingle';\n\n\nconst getData = () => {\n  const year = (new Date()).getFullYear();\n  let option = [];\n  for (var i = year - 3; i <= year + 3; i++) {\n      option.push({ value: i, label: `Năm ${i}` })\n  }\n  return option;\n}\n\nclass SelectYear extends Component {\n    render() {\n        const { value, onChange } = this.props;\n\n        const data = getData();\n        const val = value ? value : '';\n        // var select = data.filter(item => item.value === val)\n        // console.log(select[0])\n        return (\n            <SelectSingle\n                value={val}\n                onChange={onChange}\n                options={data}\n                valueRef=\"value\"\n                labelRef=\"label\"\n                placeholder=\"Chọn năm\"\n            />\n        );\n    }\n};\n\nSelectYear.propTypes = {\n};\n\nSelectYear.defaultProps = {\n    placeholder: 'Chọn...'\n};\n\nexport default SelectYear;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nvar _excluded = [\"className\", \"cssModule\", \"color\", \"body\", \"inverse\", \"outline\", \"tag\", \"innerRef\"];\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\nvar propTypes = {\n  tag: tagPropType,\n  inverse: PropTypes.bool,\n  color: PropTypes.string,\n  body: PropTypes.bool,\n  outline: PropTypes.bool,\n  className: PropTypes.string,\n  cssModule: PropTypes.object,\n  innerRef: PropTypes.oneOfType([PropTypes.object, PropTypes.string, PropTypes.func])\n};\nvar defaultProps = {\n  tag: 'div'\n};\n\nvar Card = function Card(props) {\n  var className = props.className,\n      cssModule = props.cssModule,\n      color = props.color,\n      body = props.body,\n      inverse = props.inverse,\n      outline = props.outline,\n      Tag = props.tag,\n      innerRef = props.innerRef,\n      attributes = _objectWithoutPropertiesLoose(props, _excluded);\n\n  var classes = mapToCssModules(classNames(className, 'card', inverse ? 'text-white' : false, body ? 'card-body' : false, color ? (outline ? 'border' : 'bg') + \"-\" + color : false), cssModule);\n  return /*#__PURE__*/React.createElement(Tag, _extends({}, attributes, {\n    className: classes,\n    ref: innerRef\n  }));\n};\n\nCard.propTypes = propTypes;\nCard.defaultProps = defaultProps;\nexport default Card;","import { _Enums_DoiTuong } from \"../../action/defaultEnums\";\n\nexport const formCondition = {\n    DoiThueNgoaiId: {\n        field_name: 'DoiThueNgoaiId',\n        title: 'Đội thuê ngoài',\n        type: 'data-select',\n        dataSelect: {\n            odata: true,\n            url: 'GDTCores/Organizations',\n            where: `DoiTuong eq '${_Enums_DoiTuong.ThueNgoai}' and Status eq true`,\n            columns: [\"Id\", \"OrganName\"],\n            value_field: 'Id',\n            text_field: 'OrganName',\n        },\n        getFullValue: true,\n        hidden_label: true,\n        placeholder: 'Chọn đội thuê',\n        required: true,\n    },\n    DotLuongId: {\n        field_name: 'DotLuongId',\n        title: 'Đợt lương',\n        type: 'data-select',\n        dataSelect: {\n            odata: true,\n            url: 'GDTCores/DotLuongs',\n            where: `Status eq true`,\n            columns: [\"Id\", \"Dot\"],\n            value_field: 'Id',\n            text_field: 'Dot',\n        },\n        hidden_label: true,\n        placeholder: 'Chọn đợt',\n        required: true,\n    },\n    Nam: {\n        field_name: 'Nam',\n        title: 'Năm',\n        type: 'select-year',\n        required: true,\n        hidden_label: true,\n    },\n}","import { ALPHABET, NUM_LETTERS, MONEY_LETTERS } from './constant';\n/** @requires ./types */\n\n/**\n * Chuyển số thứ tự cột thành chữ trong Excel\n * @param {number} n Số thứ tự cột\n * @returns {string}\n */\nexport function numToStrAddr(n) {\n    if (!n) return '';\n    n--;\n    if (n < ALPHABET.length) return ALPHABET[n];\n    const remain = n % ALPHABET.length;\n    return `${numToStrAddr(Math.floor(n / ALPHABET.length))}${ALPHABET[remain]}`\n}\n\n/**\n * Chuyển địa chỉ về dạng chuẩn\n * @param {ExcelAddress} addr\n * @returns {string}\n */\nexport function convertAddr(addr) {\n    if (typeof addr == \"string\") return addr;\n    if (Array.isArray(addr) && addr.length > 1) {\n        const [t, l, b, r] = addr;\n        if (b && r) return numToStrAddr(l) + t + \":\" + numToStrAddr(b) + r;\n        return numToStrAddr(l) + t;\n    }\n    throw new Error(\"Sai địa chỉ ô Excel\");\n}\n\n/**\n * 1. Hàm đọc số có ba chữ số;\n * @param {number} baso nhóm 3 chữ số\n */\nfunction DocSo3ChuSo(baso) {\n    var tram;\n    var chuc;\n    var donvi;\n    var KetQua = \"\";\n    tram = parseInt(baso / 100);\n    chuc = parseInt((baso % 100) / 10);\n    donvi = baso % 10;\n    if (tram === 0 && chuc === 0 && donvi === 0) return \"\";\n    if (tram !== 0) {\n        KetQua += NUM_LETTERS[tram] + \" trăm \";\n        if ((chuc === 0) && (donvi !== 0)) KetQua += \" linh \";\n    }\n    if ((chuc !== 0) && (chuc !== 1)) {\n        KetQua += NUM_LETTERS[chuc] + \" mươi\";\n        if ((chuc === 0) && (donvi !== 0)) KetQua = KetQua + \" linh \";\n    }\n    if (chuc === 1) KetQua += \" mười \";\n    switch (donvi) {\n        case 1:\n            if ((chuc !== 0) && (chuc !== 1)) {\n                KetQua += \" mốt \";\n            }\n            else {\n                KetQua += NUM_LETTERS[donvi];\n            }\n            break;\n        case 5:\n            if (chuc === 0) {\n                KetQua += NUM_LETTERS[donvi];\n            }\n            else {\n                KetQua += \" lăm \";\n            }\n            break;\n        default:\n            if (donvi !== 0) {\n                KetQua += NUM_LETTERS[donvi];\n            }\n            break;\n    }\n    return KetQua;\n}\n\n/**\n * 2. Hàm đọc số thành chữ (Sử dụng hàm đọc số có ba chữ số)\n * @param {BigInt} SoTien số tiền\n */\nexport function DocTienBangChu(SoTien) {\n    var lan = 0;\n    var i = 0;\n    var so = 0;\n    var KetQua = \"\";\n    var tmp = \"\";\n    var ViTri = [];\n    if (SoTien < 0) return \"Số tiền âm !\";\n    if (SoTien === 0) return \"Không đồng !\";\n    if (SoTien > 0) {\n        so = SoTien;\n    }\n    else {\n        so = -SoTien;\n    }\n    if (SoTien > 8999999999999999) {\n        //SoTien = 0;\n        return \"Số quá lớn!\";\n    }\n    ViTri[5] = Math.floor(so / 1000000000000000);\n    if (isNaN(ViTri[5]))\n        ViTri[5] = \"0\";\n    so = so - parseFloat(ViTri[5].toString()) * 1000000000000000;\n    ViTri[4] = Math.floor(so / 1000000000000);\n    if (isNaN(ViTri[4]))\n        ViTri[4] = \"0\";\n    so = so - parseFloat(ViTri[4].toString()) * 1000000000000;\n    ViTri[3] = Math.floor(so / 1000000000);\n    if (isNaN(ViTri[3]))\n        ViTri[3] = \"0\";\n    so = so - parseFloat(ViTri[3].toString()) * 1000000000;\n    ViTri[2] = parseInt(so / 1000000);\n    if (isNaN(ViTri[2]))\n        ViTri[2] = \"0\";\n    ViTri[1] = parseInt((so % 1000000) / 1000);\n    if (isNaN(ViTri[1]))\n        ViTri[1] = \"0\";\n    ViTri[0] = parseInt(so % 1000);\n    if (isNaN(ViTri[0]))\n        ViTri[0] = \"0\";\n    if (ViTri[5] > 0) {\n        lan = 5;\n    }\n    else if (ViTri[4] > 0) {\n        lan = 4;\n    }\n    else if (ViTri[3] > 0) {\n        lan = 3;\n    }\n    else if (ViTri[2] > 0) {\n        lan = 2;\n    }\n    else if (ViTri[1] > 0) {\n        lan = 1;\n    }\n    else {\n        lan = 0;\n    }\n    for (i = lan; i >= 0; i--) {\n        tmp = DocSo3ChuSo(ViTri[i]);\n        KetQua += tmp;\n        if (ViTri[i] > 0) KetQua += MONEY_LETTERS[i];\n        if ((i > 0) && (tmp.length > 0)) KetQua += ',';\n    }\n    if (KetQua.substring(KetQua.length - 1) === ',') {\n        KetQua = KetQua.substring(0, KetQua.length - 1);\n    }\n    KetQua = KetQua.substring(1, 2).toUpperCase() + KetQua.substring(2);\n    return KetQua.replace(/\\s+/g, \" \").replace(\"mươi một\", \"mươi mốt\").trim();\n}\n","/// <reference path=\"../ExcelPlugin/utils/types.js\"/>\n\nimport lodashMerge from 'lodash.merge';\nimport { convertAddr } from '../ExcelPlugin/utils/helpers';\nimport { DEFAULT_STYLE } from '../ExcelPlugin/utils/constant';\n/** @requires module:src/components/export */\n\nexport default class WorksheetWrapper {\n    /** @type {import('exceljs').Worksheet} */\n    #ws;\n    /** @param {import('exceljs').Worksheet} ws */\n    constructor(ws) {\n        this.#ws = ws;\n        return this;\n    }\n    get worksheet() {\n        return this.#ws;\n    }\n    /**\n     * Chuẩn hóa dữ liệu từng ô\n     * @param {ExcelCell} cell\n     * @returns {import('exceljs').CellValue}\n     */\n    #getCellValue = (cell) => {\n        if (Object.prototype.toString.call(cell) === '[object Object]'\n            && Object.prototype.hasOwnProperty.call(cell, 'value'))\n            return cell.value;\n        return cell || null;\n    }\n    //#region render array row group\n    /**\n     *\n     * @param {[number, number]} address Địa chỉ ô đầu tiên của dòng [dòng, cột]\n     * @param {ExcelRow} row Dữ liệu của dòng\n     */\n    #renderRow = ([r, c = 1], row) => {\n        const { cells, style, height } = row;\n        if (!cells) return;\n        const xr = this.#ws.getRow(r);\n        cells.forEach((ce, i) => {\n            const cell = xr.getCell(c + i);\n            if (cell.isMerged) return;\n            cell.value = this.#getCellValue(ce);\n            cell.style = lodashMerge({}, DEFAULT_STYLE, style, ce?.style);\n            if (ce?.colspan > 1 || ce?.rowspan > 1) {\n                this.#ws.mergeCells(r, c + i, r + (ce?.rowspan - 1 || 0), c + i + (ce?.colspan - 1 || 0));\n            }\n        })\n        if (height) this.#ws.getRow(r).height = height;\n    }\n    /**\n     * @param {ExcelAddress} topLeft\n     * @param {ExcelArrayRowGroupProps} rowsDef\n     * @alias export.renderArrayRowGroup\n     */\n    renderArrayRowGroup(topLeft, { rows, style }) {\n        const { col, row } = this.#ws.getCell(convertAddr(topLeft)).fullAddress;\n        const rowsData = typeof rows === 'function' ? rows() : rows;\n        rowsData.forEach((r, i) => {\n            if (r) this.#renderRow([row + i, col], {\n                r: row + i,\n                c: col,\n                style: lodashMerge({}, style, r.style),\n                cells: r.cells || r,\n                height: r.height\n            })\n        })\n    }\n    //#endregion\n\n    //#region render data row group\n    /**\n     * @template T\n     * @param {ExcelAddress} topLeft\n     * @param {ExcelGroupedData<T>} groupedDataDef\n     * @returns {number} Dòng đầu tiên của nhóm tiếp theo\n     */\n    #renderGroup = (topLeft, { keys, data, columns, style }) => {\n        const key = keys?.shift();\n        const column = columns.find(f => f.key === key);\n        let { col, row } = this.#ws.getCell(convertAddr(topLeft)).fullAddress;\n        if (key && column) {\n            const groupData = Array.from(new Set(data.map((m, i) => typeof column.render !== 'undefined' ? column.render(m, i) : m[key])));\n            for (let g of groupData) {\n                const gCell = this.#ws.getCell(row, +col, row, +col + columns.filter(f => !f.group).length);\n                gCell.value = g || null;\n                gCell.style = lodashMerge({}, DEFAULT_STYLE, style, { font: { bold: true } });\n                this.#ws.mergeCells(gCell.address);\n                row = this.#renderGroup([+row + 1, +col], {\n                    keys, columns,\n                    data: data.filter(f => f[key] === g)\n                });\n            }\n        } else {\n            columns.filter(f => !f.group).forEach((c, i) => {\n                data = typeof data === 'function' ? data() : data;\n                data.forEach((d, j) => {\n                    const cell = typeof c.render !== 'undefined' ? c.render(d, j) : d[c.key];\n                    this.#ws.getCell(+row + j, +col + i).value = this.#getCellValue(cell);\n                    this.#ws.getCell(+row + j, +col + i).style = lodashMerge({}, DEFAULT_STYLE, style, c?.style, cell?.style);\n                })\n                this.#ws.getColumn(+col + i).width = typeof c.width === 'number' ? c.width : 10;\n            })\n            row += data.length;\n        }\n        return row;\n    }\n    /**\n     * @template T\n     * @param {ExcelAddress} topLeft\n     * @param {ExcelDataRowGroupProps<T>} dataGroupDef\n     */\n    renderDataRowGroup(topLeft, { columns, data, header, totalRow, rowNum, headerStyle, cellStyle, onEndRow }) {\n        const { col, row } = this.#ws.getCell(convertAddr(topLeft)).fullAddress;\n        columns = typeof columns === 'function' ? columns() : columns;\n        if (rowNum) columns.unshift({\n            name: 'STT',\n            render: (_, idx) => idx + 1,\n            colStyle: { alignment: { horizontal: 'center' } },\n            width: 5\n        })\n        if (!header) {\n            header = [{\n                cells: columns.filter(f => !f.group).map(m => ({ value: m.name, style: lodashMerge({}, m.cellStyle) })),\n                style: headerStyle\n            }]\n        }\n        this.renderArrayRowGroup(topLeft, { rows: header, style: headerStyle });\n        const groupedCols = columns.filter(f => f.group).sort((a, b) => (+a.group) - (+b.group)).map(m => m.key);\n        const endRow = this.#renderGroup([+row + header.length, +col], { keys: groupedCols, data, columns, style: cellStyle })\n        onEndRow && onEndRow(endRow - 1);\n    }\n    //#endregion\n}","import { Workbook } from 'exceljs';\nimport { saveAs } from \"../../../actions/file-saver\";\nimport WorksheetWrapper from './WorksheetWrapper';\n\nexport default class ExcelWorkbook extends Workbook {\n    static create() {\n        // Tạo workbook\n        const wb = new Workbook();\n        wb.creator = 'GDT QLCB';\n        wb.lastModifiedBy = 'GDT QLCB';\n        wb.created = new Date();\n        wb.modified = new Date();\n        wb.lastPrinted = new Date();\n        return wb;\n    }\n\n    /**\n     * Tải về file excel\n     * @param {string} filename\n     */\n    async download(filename) {\n        const wbBuffer = await this.xlsx.writeBuffer();\n        saveAs(new Blob([wbBuffer], { type: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\" }), filename)\n    }\n    /**\n     * @param {string} [name]\n     * @param {Partial<import('exceljs').AddWorksheetOptions>} [option]\n     */\n    addWorksheet(name = \"Sheet1\", option) {\n        return new WorksheetWrapper(super.addWorksheet(name, option));\n    }\n    /** @param {string | number} indexOrName */\n    getWorksheet(indexOrName) {\n        return new WorksheetWrapper(super.getWorksheet(indexOrName));\n    }\n}","import ExcelWorkbook from './ExcelWorkbook';\nexport default ExcelWorkbook;","import { FormGroup } from '@material-ui/core';\nimport React, { memo, forwardRef, useCallback, useState, useEffect } from 'react';\nimport AsyncSelect from \"react-select/async/dist/react-select.esm\";\nimport { Col, Row } from 'reactstrap';\nimport { ButtonAdd } from '../base/Button';\n\nconst selectProps = {\n    noOptionsMessage: () => \"Không có lựa chọn\",\n    placeholder: \"Nhấp để chọn\",\n    loadingMessage: () => \"Đang tìm kiếm\"\n}\nconst Index = forwardRef(({ onChange, loadData, id, name, placeholder, getOptionLabel, getOptionValue, onAdd, value, ...props }, ref) => {\n    const [selected, setSelected] = useState(null);\n    if (placeholder) selectProps['placeholder'] = placeholder;\n    const promiseOptions = useCallback(inputValue =>\n        new Promise(resolve => {\n            setTimeout(() => {\n                resolve(loadData(inputValue));\n            }, 1000);\n        }), [loadData])\n    useEffect(() => {\n        value && setSelected(value);\n    }, [value])\n    // eslint-disable-next-line no-unused-vars\n    const getDefaultValue = useCallback(async (value) => {\n        const options = await promiseOptions();\n        const [op] = options.filter(option => option[getOptionValue || 'value'] === value)\n        return op ? op : null\n    }, [getOptionValue, promiseOptions])\n    const hanldeChange = useCallback((e) => { onChange(e) }, [onChange])\n    return (\n        <FormGroup>\n            <Row className={onAdd && \"d-flex justify-content-between\"} >\n                <Col className=\"pr-0\">\n                    <AsyncSelect\n                        defaultOptions\n                        value={selected}\n                        name={name}\n                        isClearable\n                        onChange={hanldeChange}\n                        getOptionValue={option => option}\n                        inputId={name}\n                        id={id}\n                        instanceId={name}\n                        loadOptions={promiseOptions}\n                        {...selectProps} />\n                </Col>\n                {onAdd && <Col md='1' className=\"pl-0\"><ButtonAdd className=\"h-100\" onClick={onAdd}></ButtonAdd></Col>}\n            </Row>\n        </FormGroup>\n\n    )\n})\nexport default memo(Index)","import toDate from \"../toDate/index.js\";\nimport formatters from \"../_lib/format/lightFormatters/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport isValid from \"../isValid/index.js\";\nimport subMilliseconds from \"../subMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\"; // This RegExp consists of three parts separated by `|`:\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n//   except a single quote symbol, which ends the sequence.\n//   Two quote characters do not end the sequence.\n//   If there is no matching single quote\n//   then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nvar formattingTokensRegExp = /(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\n/**\n * @name lightFormat\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. Unlike `format`,\n * `lightFormat` doesn't use locales and outputs date using the most popular tokens.\n *\n * > ⚠️ Please note that the `lightFormat` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n *\n * Accepted patterns:\n * | Unit                            | Pattern | Result examples                   |\n * |---------------------------------|---------|-----------------------------------|\n * | AM, PM                          | a..aaa  | AM, PM                            |\n * |                                 | aaaa    | a.m., p.m.                        |\n * |                                 | aaaaa   | a, p                              |\n * | Calendar year                   | y       | 44, 1, 1900, 2017                 |\n * |                                 | yy      | 44, 01, 00, 17                    |\n * |                                 | yyy     | 044, 001, 000, 017                |\n * |                                 | yyyy    | 0044, 0001, 1900, 2017            |\n * | Month (formatting)              | M       | 1, 2, ..., 12                     |\n * |                                 | MM      | 01, 02, ..., 12                   |\n * | Day of month                    | d       | 1, 2, ..., 31                     |\n * |                                 | dd      | 01, 02, ..., 31                   |\n * | Hour [1-12]                     | h       | 1, 2, ..., 11, 12                 |\n * |                                 | hh      | 01, 02, ..., 11, 12               |\n * | Hour [0-23]                     | H       | 0, 1, 2, ..., 23                  |\n * |                                 | HH      | 00, 01, 02, ..., 23               |\n * | Minute                          | m       | 0, 1, ..., 59                     |\n * |                                 | mm      | 00, 01, ..., 59                   |\n * | Second                          | s       | 0, 1, ..., 59                     |\n * |                                 | ss      | 00, 01, ..., 59                   |\n * | Fraction of second              | S       | 0, 1, ..., 9                      |\n * |                                 | SS      | 00, 01, ..., 99                   |\n * |                                 | SSS     | 000, 001, ..., 999                |\n * |                                 | SSSS    | ...                               |\n *\n * @param {Date|Number} date - the original date\n * @param {String} format - the string of tokens\n * @returns {String} the formatted date string\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * const result = lightFormat(new Date(2014, 1, 11), 'yyyy-MM-dd')\n * //=> '2014-02-11'\n */\n\nexport default function lightFormat(dirtyDate, formatStr) {\n  requiredArgs(2, arguments);\n  var originalDate = toDate(dirtyDate);\n  if (!isValid(originalDate)) {\n    throw new RangeError('Invalid time value');\n  }\n\n  // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n  // This ensures that when UTC functions will be implemented, locales will be compatible with them.\n  // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/376\n  var timezoneOffset = getTimezoneOffsetInMilliseconds(originalDate);\n  var utcDate = subMilliseconds(originalDate, timezoneOffset);\n  var tokens = formatStr.match(formattingTokensRegExp);\n\n  // The only case when formattingTokensRegExp doesn't match the string is when it's empty\n  if (!tokens) return '';\n  var result = tokens.map(function (substring) {\n    // Replace two single quote characters with one single quote character\n    if (substring === \"''\") {\n      return \"'\";\n    }\n    var firstCharacter = substring[0];\n    if (firstCharacter === \"'\") {\n      return cleanEscapedString(substring);\n    }\n    var formatter = formatters[firstCharacter];\n    if (formatter) {\n      return formatter(utcDate, substring);\n    }\n    if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n      throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n    }\n    return substring;\n  }).join('');\n  return result;\n}\nfunction cleanEscapedString(input) {\n  var matches = input.match(escapedStringRegExp);\n  if (!matches) {\n    return input;\n  }\n  return matches[1].replace(doubleQuoteRegExp, \"'\");\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nvar _excluded = [\"className\", \"cssModule\", \"size\", \"bordered\", \"borderless\", \"striped\", \"dark\", \"hover\", \"responsive\", \"tag\", \"responsiveTag\", \"innerRef\"];\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\nvar propTypes = {\n  className: PropTypes.string,\n  cssModule: PropTypes.object,\n  size: PropTypes.string,\n  bordered: PropTypes.bool,\n  borderless: PropTypes.bool,\n  striped: PropTypes.bool,\n  dark: PropTypes.bool,\n  hover: PropTypes.bool,\n  responsive: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]),\n  tag: tagPropType,\n  responsiveTag: tagPropType,\n  innerRef: PropTypes.oneOfType([PropTypes.func, PropTypes.string, PropTypes.object])\n};\nvar defaultProps = {\n  tag: 'table',\n  responsiveTag: 'div'\n};\n\nvar Table = function Table(props) {\n  var className = props.className,\n      cssModule = props.cssModule,\n      size = props.size,\n      bordered = props.bordered,\n      borderless = props.borderless,\n      striped = props.striped,\n      dark = props.dark,\n      hover = props.hover,\n      responsive = props.responsive,\n      Tag = props.tag,\n      ResponsiveTag = props.responsiveTag,\n      innerRef = props.innerRef,\n      attributes = _objectWithoutPropertiesLoose(props, _excluded);\n\n  var classes = mapToCssModules(classNames(className, 'table', size ? 'table-' + size : false, bordered ? 'table-bordered' : false, borderless ? 'table-borderless' : false, striped ? 'table-striped' : false, dark ? 'table-dark' : false, hover ? 'table-hover' : false), cssModule);\n  var table = /*#__PURE__*/React.createElement(Tag, _extends({}, attributes, {\n    ref: innerRef,\n    className: classes\n  }));\n\n  if (responsive) {\n    var responsiveClassName = mapToCssModules(responsive === true ? 'table-responsive' : \"table-responsive-\" + responsive, cssModule);\n    return /*#__PURE__*/React.createElement(ResponsiveTag, {\n      className: responsiveClassName\n    }, table);\n  }\n\n  return table;\n};\n\nTable.propTypes = propTypes;\nTable.defaultProps = defaultProps;\nexport default Table;","import React from 'react';\n\nconst SpinnerSmall = props => (\n    <div className=\"spinner-border-sm spinner-border text-danger\" />\n)\n\nexport default SpinnerSmall;","import React, { Component, Fragment } from \"react\";\nimport ReactSelect, { components } from \"react-select\";\n// import makeAnimated from 'react-select/animated';\nimport FontAwesome from \"../icon/FontAwesome\";\nimport SpinnerSmall from \"../spinners/SpinnerSmall\";\nimport PropTypes from 'prop-types';\n\nconst colourStyles = {\n  multiValueLabel: styles => ({\n    ...styles,\n    padding: \"0px 0px 0px 6px\",\n    fontSize: 13\n  }),\n  menuPortal: base => ({ ...base, zIndex: 9999 }),\n  control: styles => ({\n    ...styles,\n    backgroundColor: \"white\",\n    minHeight: \"38px\",\n    // height: 'calc(1.5em + 0.5rem + 2px)',\n    fontSize: \"0.76563rem\",\n    lineHeight: \"1.5\",\n    cursor: \"pointer\",\n    borderRadius: \"0.2rem\"\n  }),\n  menu: styles => ({ ...styles, zIndex: 2300 }),\n  option: styles => ({ ...styles, fontSize: \"0.76563rem\", cursor: \"pointer\" }),\n  input: styles => ({ ...styles, position: \"unset\" }),\n  placeholder: styles => ({ ...styles, marginLeft: 5, marginRight: 5 }),\n  singleValue: (styles, { data }) => ({\n    ...styles,\n    marginTop: 1,\n    transform: \"inherit\",\n    top: \"unset\"\n  }),\n  container: styles => ({ ...styles, width: \"100%\" }),\n  valueContainer: styles => ({ ...styles, padding: \"2px 8px\" })\n};\n\nconst LoadingIndicator = props => {\n  return <SpinnerSmall {...props} />;\n};\n\nconst IndicatorsContainer = props => (\n  <components.IndicatorsContainer\n    {...props}\n    getStyles={() => ({ display: \"flex\", height: \"100%\" })}\n  />\n);\n\nconst ClearIndicator = props => {\n  const {\n    innerProps: { ref, ...restInnerProps }\n  } = props;\n  return (\n    <div\n      {...restInnerProps}\n      ref={ref}\n      style={{\n        color: \"rgb(204, 204, 204)\",\n        transition: \"color 150ms ease 0s\",\n        boxSizing: \"border-box\"\n      }}\n    >\n      <FontAwesome\n        fa=\"times\"\n        style={{\n          marginTop: 2,\n          padding: \"5px 5px 5px 5px\",\n          verticalAlign: \"bottom\"\n        }}\n      />\n    </div>\n  );\n};\n\nconst IndicatorSeparator = ({ innerProps }) => (\n  <span\n    {...innerProps}\n    style={{\n      alignSelf: \"stretch\",\n      width: 1,\n      backgroundColor: \"rgb(204, 204, 204)\",\n      marginTop: 2,\n      marginBottom: 2,\n      marginRight: 5,\n      marginLeft: 5\n    }}\n  />\n);\n\nconst DropdownIndicator = props => (\n  <components.DropdownIndicator\n    {...props}\n    getStyles={() => ({ color: \"hsl(0,0%,80%)\" })}\n  >\n    <FontAwesome\n      fa=\"angle-down\"\n      style={{ marginTop: 2, padding: \"5px 9px 5px 5px\" }}\n    />\n  </components.DropdownIndicator>\n);\n\nconst MenuList = props => {\n  return (\n    <components.MenuList\n      {...props}\n      getStyles={() => ({ maxHeight: 300, zIndex: 1021, overflowY: \"auto\" })}\n    >\n      {props.children}\n    </components.MenuList>\n  );\n};\n\nclass Select extends Component {\n  constructor(props) {\n    super(props);\n    this.state = { valueRequire: null };\n    this.RefReactSelect = React.createRef();\n  }\n  render() {\n    const {\n      placeholder,\n      noOptionsMessage,\n      loadingMessage,\n      required,\n      isDisabled,\n      menuPlacement,\n      ...attribute\n    } = this.props;\n    const { valueRequire } = this.state;\n    return (\n      <Fragment>\n        <ReactSelect\n          {...attribute}\n          ref={this.RefReactSelect}\n          classNamePrefix=\"select\"\n          styles={colourStyles}\n          placeholder={placeholder}\n          noOptionsMessage={noOptionsMessage}\n          loadingMessage={loadingMessage}\n          isDisabled={isDisabled}\n          components={{\n            IndicatorsContainer,\n            ClearIndicator,\n            IndicatorSeparator,\n            DropdownIndicator,\n            LoadingIndicator,\n            MenuList\n          }}\n          onChange={(option) => {\n            this.props.onChange(option)\n            this.setState({ valueRequire: option ? option.name : null })\n          }}\n          menuPortalTarget={document.body}\n          menuPosition='absolute'\n          // menuShouldScrollIntoView={true}\n          menuPlacement={menuPlacement ? menuPlacement : 'auto'}\n        />\n        <input\n          readOnly\n          name='requireInput'\n          type='text'\n          tabIndex={1}\n          autoComplete=\"off\"\n          style={{\n            opacity: 0,\n            height: 0,\n            position: \"absolute\"\n          }}\n          value={valueRequire || ''}\n          onFocus={() => {\n            this.RefReactSelect.current && this.RefReactSelect.current.focus()\n          }}\n        />\n      </Fragment>\n    );\n  }\n}\n\nSelect.propTypes = {\n  isDisabled: PropTypes.bool.isRequired\n};\n\nSelect.defaultProps = {\n  placeholder: \"Chọn...\",\n  isDisabled: false,\n  noOptionsMessage: () => \"Không có lựa chọn\",\n  loadingMessage: () => \"Đang tải\"\n};\n\nexport default Select;\n","/* eslint-disable no-unused-vars */\n/** @requires module:src/components/export */\nimport { HEADER_STYLE, CELL_STYLE, CELL_CENTER, CELL_RIGHT } from '../../../components/export/ExcelPlugin/utils/constant';\nimport ExcelWorkbook from '../../../components/export/ExcelExtensions';\nimport { ExportQuocHieu } from '../DefaultRowGroups';\nimport lightFormat from 'date-fns/lightFormat';\nimport { formatNumber } from '../../../actions/util';\nimport { CHECK_WARNING } from '../../../components/alert/Alert';\n\n/**\n * Export Công nợ\n * @param {ExportCongNoModel} data\n * @param {string} filename\n */\n\nexport default async function ExportCongNoThu({ data, TenDoi, Nam }, filename) {\n    const wb = new ExcelWorkbook();\n    const totalCol = 6;\n    // Tạo worksheet công nợ\n    const ws = wb.addWorksheet(`Bảng tổng hợp nhân công đội thuê ngoài`);\n    ws.worksheet.getColumn(1).width = 30;\n    ws.worksheet.getColumn(2).width = 20;\n    ws.worksheet.getColumn(3).width = 20;\n    ws.worksheet.getColumn(4).width = 35;\n    ws.worksheet.getColumn(5).width = 20;\n    ws.worksheet.getColumn(6).width = 20;\n\n    // Render thông tin chung\n    // ws.renderArrayRowGroup([1, 3], ExportQuocHieu(totalCol - 2));\n    ws.renderArrayRowGroup([4, 1], {\n        style: {\n            font: { bold: true },\n            alignment: { horizontal: 'center' }\n        },\n        rows: [\n            [{ value: `Bảng tổng hợp nhân công ${TenDoi} - ${Nam}`.toUpperCase(), colspan: totalCol }],\n        ]\n    });\n    ws.renderArrayRowGroup([5, totalCol - 4], {\n        style: {\n            font: { italic: true },\n            alignment: { horizontal: 'center' }\n        },\n        rows: [\n            [{ colspan: '6', value: `Bình Định, ${lightFormat(new Date(), `'ngày 'dd' tháng 'MM' năm 'yyyy`)}` }]\n        ]\n    })\n\n    // Render chi tiết\n    ws.renderArrayRowGroup([6, 1], TableHeader());\n    // wb.download(filename)\n\n    const tableData = TableContentGroup(data);\n    if (tableData) {\n        ws.renderArrayRowGroup([7, 1], { style: CELL_STYLE, rows: tableData })\n        wb.download(filename)\n    }\n}\n\n//#region Các hàm hỗ trợ xuất bảng tổng hợp công nợ\n\n/**\n * Render header của bảng export công nợ\n * @returns {ExcelArrayRowGroupProps}\n */\nfunction TableHeader() {\n    return ({\n        style: HEADER_STYLE,\n        rows: [\n            [\n                { rowspan: 1, value: 'TÊN VẬT TƯ' },\n                { rowspan: 1, value: 'SL' },\n                { rowspan: 1, value: 'LÀM TRÒN' },\n                { rowspan: 1, value: 'ĐƠN GIÁ' },\n                { rowspan: 1, value: 'THÀNH TIỀN' },\n                { rowspan: 1, value: 'TẠM ỨNG' },\n            ],\n        ]\n    })\n}\n\n/**\n * Render chi tiết dự án\n * @param {Array<Object>} data dữ liệu chi tiết\n * @returns {Array<ExcelRow>}\n */\n\nconst dataBody = (data) => {\n    let arr = [];\n    data.forEach((item, index) => {\n        arr.push(\n            [\n                { value: item.OrganName, style: { ...Font2 } },\n                { value: '' },\n                { value: '' },\n                { value: '' },\n                { value: '' },\n                { value: '' },\n            ],\n            ...item.Items.map(f =>\n                [\n                    { value: f.Name },\n                    { value: formatNumber(f.NgayCong), style: { ...CELL_RIGHT } },\n                    { value: formatNumber(f.LamTron), style: { ...CELL_RIGHT } },\n                    { value: formatNumber(f.DonGia), style: { ...CELL_RIGHT } },\n                    { value: formatNumber(f.ThanhTien), style: { ...CELL_RIGHT } },\n                    { value: '' },\n                ]\n            ),\n            [\n                { value: 'Tổng', style: { ...Font2, ...CELL_CENTER } },\n                { value: formatNumber(item.TongNgayCong), style: { ...Font2, ...CELL_RIGHT } },\n                { value: formatNumber(item.TongLamTron), style: { ...Font2, ...CELL_RIGHT } },\n                { value: '' },\n                { value: formatNumber(item.ThanhTien), style: { ...Font2, ...CELL_RIGHT } },\n                { value: '' },\n            ]\n        )\n    })\n    return arr;\n}\n\nfunction TableContentGroup(data) {\n    let content = [];\n    if (data && data.length !== 0) {\n        data.forEach(n => {\n            content = [...content, ...[TableRow({ row: n }), ...dataBody(n.DuAns), ...TableRowFooter({ row: n })]]\n        })\n        return content\n    } else {\n        CHECK_WARNING('CHƯA CÓ DỮ LIỆU ĐỂ XUẤT BÁO CÁO')\n    }\n}\n\n// /**\n//  * @param {boolean} bold đậm cho font chữ\n// */\n\nfunction TableRow({ row }) {\n    return [\n        { value: `ĐỢT ${row.Dot}`, colspan: 4, style: { ...Font, ...CELL_CENTER } },\n        { value: '' },\n        { value: '' },\n        { value: '' },\n        { value: formatNumber(row.TongThanhTien), style: { ...Font, ...CELL_RIGHT } },\n        { value: formatNumber(row.TongTamUng), style: { ...Font, ...CELL_RIGHT } },\n    ]\n}\n\nfunction TableRowFooter({ row }) {\n    return [\n        [\n            { value: '' },\n            { value: '' },\n            { value: '' },\n            { value: `TỔNG TẤT CẢ DỰ ÁN`, style: { ...Font } },\n            { value: formatNumber(row.TongThanhTien), style: { ...Font, ...CELL_RIGHT } },\n            { value: '' },\n        ],\n        [\n            { value: '' },\n            { value: '' },\n            { value: '' },\n            { value: `TỔNG TẠM ỨNG`, style: { ...Font } },\n            { value: formatNumber(row.TongTamUng), style: { ...Font, ...CELL_RIGHT } },\n            { value: '' },\n        ],\n    ]\n}\n\nconst Font = {\n    font: {\n        bold: true,\n        size: 13\n    }\n}\n\nconst Font2 = {\n    font: {\n        bold: true,\n        size: 12\n    }\n}","import React, { Component } from 'react';\nimport SelectSingle from './SelectSingle';\n\nclass SelectCustom extends Component {\n  render() {\n    const { value, onChange, options } = this.props;\n        const val = value ? value : '';\n\n        var valueText = 'value'\n        var labelText = 'label'\n        return (\n            <SelectSingle\n                value={val}\n                onChange={onChange}\n                options={options}\n                valueRef={valueText}\n                labelRef={labelText}\n                placeholder=\"Chọn...\"\n            />\n        );\n  }\n}\n\nSelectCustom.propTypes = {\n};\n\nSelectCustom.defaultProps = {\n    placeholder: 'Chọn...'\n};\n\nexport default SelectCustom;\n","import lodashMerge from 'lodash.merge'\n/** Cách đọc các số */\nexport const NUM_LETTERS = Array.of(\" không \", \" một \", \" hai \", \" ba \", \" bốn \", \" năm \", \" sáu \", \" bảy \", \" tám \", \" chín \");\n/** Cách đọc phần nghìn */\nexport const MONEY_LETTERS = Array.of(\"\", \" nghìn\", \" triệu\", \" tỷ\", \" nghìn tỷ\", \" triệu tỷ\");\n/**\n * Viền xung quanh ô (dùng cho bảng)\n * @type {Partial<import('exceljs').Borders>}\n */\nconst ALL_BORDERED = {\n    top: { style: 'thin', color: { argb: 'FF808080' } },\n    left: { style: 'thin', color: { argb: 'FF808080' } },\n    bottom: { style: 'thin', color: { argb: 'FF808080' } },\n    right: { style: 'thin', color: { argb: 'FF808080' } }\n}\n/**\n * Style mặc định của Excel\n * @type {Partial<import('exceljs').Style>}\n */\nexport const DEFAULT_STYLE = {\n    numFmt: '#,##0',\n    font: {\n        name: 'Times New Roman',\n        family: 4,\n        size: 12,\n        color: { argb: 'FF000000' }\n    },\n    alignment: {\n        vertical: 'middle',\n        wrapText: true\n    },\n    fill: {\n        type: 'pattern',\n        pattern: 'none'\n    }\n}\n/**\n * Style mặc định từng ô trong Excel\n * @type {Partial<import('exceljs').Style>}\n */\nexport const CELL_STYLE = {\n    border: ALL_BORDERED\n}\n/**\n * Style mặc định tiêu đề bảng excel\n * @type {Partial<import('exceljs').Style>}\n */\nexport const HEADER_STYLE = lodashMerge({}, {\n    font: {\n        bold: true,\n        size: 12\n    },\n    alignment: {\n        horizontal: 'center',\n        wrapText: true\n    },\n    // border: ALL_BORDERED\n})\n/** Bảng chữ cái */\nexport const ALPHABET = \"ABCDEFGHIJKLMNOPQRSTUVWXYZ\";\n\n/**\n * Tiêu đề\n */\nexport const Title_Header = {\n    font: {\n        bold: true,\n        size: 10\n    }\n}\n\nexport const Tilte_Columns = {\n    background: '#F2F2F2'\n}\n\nexport const CELL_CENTER = {\n    alignment: {\n        horizontal: 'center',\n        vertical: 'middle',\n        wrapText: true\n    }\n}\n\nexport const CELL_RIGHT = {\n    alignment: {\n        horizontal: 'right',\n        vertical: 'middle',\n        wrapText: true\n    }\n}","export default function ownerDocument(node) {\n  return node && node.ownerDocument || document;\n}","/**\n * Safe chained function\n *\n * Will only create a new function if needed,\n * otherwise will pass back existing functions or null.\n *\n * @param {function} functions to chain\n * @returns {function|null}\n */\nexport default function createChainedFunction() {\n  for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n    funcs[_key] = arguments[_key];\n  }\n\n  return funcs.reduce(function (acc, func) {\n    if (func == null) {\n      return acc;\n    }\n\n    if (process.env.NODE_ENV !== 'production') {\n      if (typeof func !== 'function') {\n        console.error('Material-UI: Invalid Argument Type, must only provide functions, undefined, or null.');\n      }\n    }\n\n    return function chainedFunction() {\n      for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n        args[_key2] = arguments[_key2];\n      }\n\n      acc.apply(this, args);\n      func.apply(this, args);\n    };\n  }, function () {});\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport { fade, withStyles } from '@material-ui/core/styles';\nexport var styles = function styles(theme) {\n  return {\n    /* Styles applied to the root element. */\n    root: {\n      display: 'block',\n      // Create a \"on paper\" color with sufficient contrast retaining the color\n      backgroundColor: fade(theme.palette.text.primary, theme.palette.type === 'light' ? 0.11 : 0.13),\n      height: '1.2em'\n    },\n\n    /* Styles applied to the root element if `variant=\"text\"`. */\n    text: {\n      marginTop: 0,\n      marginBottom: 0,\n      height: 'auto',\n      transformOrigin: '0 60%',\n      transform: 'scale(1, 0.60)',\n      borderRadius: theme.shape.borderRadius,\n      '&:empty:before': {\n        content: '\"\\\\00a0\"'\n      }\n    },\n\n    /* Styles applied to the root element if `variant=\"rect\"`. */\n    rect: {},\n\n    /* Styles applied to the root element if `variant=\"circle\"`. */\n    circle: {\n      borderRadius: '50%'\n    },\n\n    /* Styles applied to the root element if `animation=\"pulse\"`. */\n    pulse: {\n      animation: '$pulse 1.5s ease-in-out 0.5s infinite'\n    },\n    '@keyframes pulse': {\n      '0%': {\n        opacity: 1\n      },\n      '50%': {\n        opacity: 0.4\n      },\n      '100%': {\n        opacity: 1\n      }\n    },\n\n    /* Styles applied to the root element if `animation=\"wave\"`. */\n    wave: {\n      position: 'relative',\n      overflow: 'hidden',\n      '&::after': {\n        animation: '$wave 1.6s linear 0.5s infinite',\n        background: \"linear-gradient(90deg, transparent, \".concat(theme.palette.action.hover, \", transparent)\"),\n        content: '\"\"',\n        position: 'absolute',\n        transform: 'translateX(-100%)',\n        // Avoid flash during server-side hydration\n        bottom: 0,\n        left: 0,\n        right: 0,\n        top: 0\n      }\n    },\n    '@keyframes wave': {\n      '0%': {\n        transform: 'translateX(-100%)'\n      },\n      '60%': {\n        // +0.5s of delay between each loop\n        transform: 'translateX(100%)'\n      },\n      '100%': {\n        transform: 'translateX(100%)'\n      }\n    },\n\n    /* Styles applied when the component is passed children. */\n    withChildren: {\n      '& > *': {\n        visibility: 'hidden'\n      }\n    },\n\n    /* Styles applied when the component is passed children and no width. */\n    fitContent: {\n      maxWidth: 'fit-content'\n    },\n\n    /* Styles applied when the component is passed children and no height. */\n    heightAuto: {\n      height: 'auto'\n    }\n  };\n};\nvar Skeleton = /*#__PURE__*/React.forwardRef(function Skeleton(props, ref) {\n  var _props$animation = props.animation,\n      animation = _props$animation === void 0 ? 'pulse' : _props$animation,\n      classes = props.classes,\n      className = props.className,\n      _props$component = props.component,\n      Component = _props$component === void 0 ? 'span' : _props$component,\n      height = props.height,\n      _props$variant = props.variant,\n      variant = _props$variant === void 0 ? 'text' : _props$variant,\n      width = props.width,\n      other = _objectWithoutProperties(props, [\"animation\", \"classes\", \"className\", \"component\", \"height\", \"variant\", \"width\"]);\n\n  var hasChildren = Boolean(other.children);\n  return /*#__PURE__*/React.createElement(Component, _extends({\n    ref: ref,\n    className: clsx(classes.root, classes[variant], className, hasChildren && [classes.withChildren, !width && classes.fitContent, !height && classes.heightAuto], animation !== false && classes[animation])\n  }, other, {\n    style: _extends({\n      width: width,\n      height: height\n    }, other.style)\n  }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Skeleton.propTypes = {\n  /**\n   * The animation.\n   * If `false` the animation effect is disabled.\n   */\n  animation: PropTypes.oneOf(['pulse', 'wave', false]),\n\n  /**\n   * Optional children to infer width and height from.\n   */\n  children: PropTypes.node,\n\n  /**\n   * Override or extend the styles applied to the component.\n   * See [CSS API](#css) below for more details.\n   */\n  classes: PropTypes.object.isRequired,\n\n  /**\n   * @ignore\n   */\n  className: PropTypes.string,\n\n  /**\n   * The component used for the root node.\n   * Either a string to use a HTML element or a component.\n   */\n  component: PropTypes\n  /* @typescript-to-proptypes-ignore */\n  .elementType,\n\n  /**\n   * Height of the skeleton.\n   * Useful when you don't want to adapt the skeleton to a text element but for instance a card.\n   */\n  height: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n\n  /**\n   * The type of content that will be rendered.\n   */\n  variant: PropTypes.oneOf(['text', 'rect', 'circle']),\n\n  /**\n   * Width of the skeleton.\n   * Useful when the skeleton is inside an inline element with no width of its own.\n   */\n  width: PropTypes.oneOfType([PropTypes.number, PropTypes.string])\n} : void 0;\nexport default withStyles(styles, {\n  name: 'MuiSkeleton'\n})(Skeleton);","import React from \"react\";\nimport { Skeleton } from \"@material-ui/lab\"\nimport { Typography } from \"@material-ui/core\";\n\nfunction ReportPending({ loading, ...props }) {\n    return (\n        <React.Fragment>\n            {\n                loading ?\n                    <React.Fragment>\n                        {Array.from(Array(6).keys()).map((cur, i) => (\n                            <tr key={i}>\n                                {Array.from(Array(6).keys()).map((_, i) => <td key={i}><Typography variant='caption'><Skeleton /></Typography></td>)}\n                            </tr>\n                        ))}\n                    </React.Fragment> : props.children\n            }\n        </React.Fragment>\n\n    )\n}\nexport default ReportPending","/* eslint-disable no-unused-vars */\nimport React from 'react'\nimport { formatNumber } from '../../../actions/util';\n\nexport default function RenderRow(props) {\n    const { index, item } = props;\n    const renderTdRong = (number, status) => (\n        Array.from(Array(number).keys()).map((_, i) => <td style={{ height: status ? 28 : '' }} key={i}></td>)\n    )\n\n    const renderHeader = React.useMemo(\n        () => (\n            <tr key={index} className=\"tr-header\">\n                <td colSpan=\"4\" className=\"month\">{`ĐỢT ${item.Dot}`}</td>\n                <td className=\"total-number\">{formatNumber(item.TongThanhTien)}</td>\n                <td className=\"total-number\">{formatNumber(item.TongTamUng)}</td>\n            </tr>\n        ), [index, item]\n    )\n\n    const renderBodyChild = React.useCallback(\n        (item) => item.Items.map((m2, i2) => (\n            <tr key={i2}>\n                <td>{m2.Name}</td>\n                <td>{formatNumber(m2.NgayCong)}</td>\n                <td>{formatNumber(m2.LamTron)}</td>\n                <td>{formatNumber(m2.DonGia)}</td>\n                <td>{formatNumber(m2.ThanhTien)}</td>\n                <td></td>\n            </tr>\n        )), []\n    )\n\n    const renderBodyChildFooter = React.useCallback(\n        (item) => <tr>\n            <td>{'Tổng'}</td>\n            <td>{formatNumber(item.TongNgayCong)}</td>\n            <td>{formatNumber(item.TongLamTron)}</td>\n            <td></td>\n            <td>{formatNumber(item.ThanhTien)}</td>\n            <td></td>\n        </tr>, []\n    )\n\n    const renderBody = React.useMemo(\n        () => item.DuAns.map((m, i) => (\n            <React.Fragment key={i}>\n                <tr>\n                    <td>{m.OrganName}</td>\n                    {renderTdRong(5)}\n                </tr>\n                {renderBodyChild(m)}\n                {renderBodyChildFooter(m)}\n            </React.Fragment>\n        ))\n        , [item, renderBodyChild, renderBodyChildFooter]\n    )\n\n    const renderFooter = React.useMemo(\n        () => (\n            <React.Fragment>\n                <tr>\n                    {renderTdRong(1)}\n                    <td className=\"total\">TỔNG TIỀN TẤT CẢ DỰ ÁN</td>\n                    <td className=\"total-number\">{formatNumber(item.TongThanhTien)}</td>\n                    {renderTdRong(3)}\n                </tr>\n                <tr>\n                    {renderTdRong(1)}\n                    <td className=\"total\">TỔNG TẠM ỨNG</td>\n                    <td className=\"total-number\">{formatNumber(item.TongTamUng)}</td>\n                    {renderTdRong(3)}\n                </tr>\n                {/* <tr>\n                    {renderTdRong(6, true)}\n                </tr>\n                <tr>\n                    {renderTdRong(1)}\n                    <td className=\"rest\">CÒN PHẢI TRẢ</td>\n                    <td className=\"rest-number\">{formatNumber(item.TongTamUng - item.TongThanhTien)}</td>\n                    {renderTdRong(3)}\n                </tr> */}\n            </React.Fragment>\n        ), [item]\n    )\n\n    return (\n        <React.Fragment>\n            {renderHeader}\n            {renderBody}\n            {renderFooter}\n        </React.Fragment>\n    )\n}\n"],"names":["Enums_ThanhToan","value","label","Enums_GioiTinh","Enums_DoiTuong","_Enums_DoiTuong","CuaHang","ThueNgoai","KhachHang","NhanVien","CongTy","PhongBang","_Enums_DoiTuongNumber","Enums_PhuongThucChamCong","TheoThang","TheoDuAn","Enums_PhuongThucChamCongNumber","Enums_CongNo","NoCu","TamUng","NoDoiTac","Enums_LoaiNoNumber","DuAnNo","TraNo","Enums_LoaiNoLabel","Enum_Flag","view","add","edit","delete","Enum_NhomKhoanChis","LuongThoThueNgoai","LuongThoCTy","ChiPhiCuaHang","EmptyNoData","Component","render","size","text","this","props","children","_jsxs","_jsx","className","EmptyContainerSmall","EmptyContainerLarge","styled","div","styles","multiValueLabel","padding","fontSize","control","backgroundColor","height","minHeight","lineHeight","cursor","borderRadius","option","input","position","placeholder","marginLeft","marginRight","singleValue","_ref","data","transform","top","container","width","valueContainer","indicatorsContainer","indicatorContainer","_ref2","options","setData","useState","valueSnap","setValueSnap","selected","setSelected","isLoading","setIsLoading","getOptionsMulti","useCallback","length","i","current","j","push","getOptionsSingle","setStateSelected","isMulti","loadDataFromApi","columns","odata","url","where","valueField","textField","_url","join","callApi2","then","res","forEach","x","obj","catch","error","prevProps","prevState","useEffect","map","onChange","e","meta","list","getFullValue","isDetail","disabled","isSelected","Select","isDisabled","isClearable","SelectMonth","SelectSingle","valueRef","labelRef","defaultProps","INITAL_OBJ","DoiThueNgoaiId","TenDoi","DotLuongId","TongHopNhanCong","dataCondition","setDataCondition","isPending","setIsPending","dataReport","setDataReport","lstDotLuong","setLstDotLuong","getDotByYear","async","dotLuongs","DotLuongsEndpoint","getAll","dot","arr","Dot","formatDateNormal","TuNgay","DenNgay","Id","pre","_dotLuongs$","Nam","Date","getFullYear","handleChange","name","RenderReport","useMemo","Table","bordered","ReportPending","loading","item","index","RenderRow","colSpan","check","formatData","m","TongTamUng","DuAns","CongNos","m2","ThanhTien","TongNgayCong","TongLamTron","Items","LamTron","NgayCong","TongThanhTien","handleGetDataReport","ResultObj","ChamCongEndpoint","getTongHopNhanCong","CHECK_WARNING","handleExportExcel","ExportExcel","React","Card","CardBody","Col","xs","Row","FormControl","formCondition","row","style","marginTop","ButtonSave","onClick","color","Radio","checked","type","attribute","Input","numberCol","valueData","setValueData","md","target","id","indexOf","splice","Checkbox","val","renderControl","setPlaceholder","toLowerCase","formatDate","InputText","field_name","title","Password","TextArea","InputBoolean","InputDate","date","placeholderText","dataSelect","DropdownListForm2","group_by","value_field","text_field","selectedItems","info","InputNumber","NumberFormat","thousandSeparator","decimalSeparator","decimalScale","onValueChange","values","parseFloat","onFocus","event","select","RadioList","CheckboxList","SelectYear","SelectCustom","DataSelect2","fields","originfield","column","field","value_label","value_type","whereOne","multiLabel","eleUrl","InputFile","file","accept","required","SelectAsync","loadData","loadOptions","getOptionValue","getOptionLabel","onAdd","SelectMulti","defaultValue","onChangeRender","inline","colLabel","colValue","FormGroup","hidden_label","Required","Label","maxWidth","lookup","InputSelect","Object","keys","key","delimiter","space","getDataID","filter","dataID","getPrimaryKey","checkDelimiter","includes","checkSpace","convertDelimiter","split","checkHasField","hasField","getPrimaryURL","filterExpandURL","list_join","arguments","undefined","list_join_filter_only","list2_join_filter_only","list_join_filter_only_check","i1","index_table","index_real","expand","arrayOfUniques","element","num","reverse","splitField","some","i2","list2_join_filter_only_fake","curr","i3","arr_list","arr_list2","text1","ngoac","ngoac_end","i4","stringLabel","multiLB","labelMuti","filterField","fieldName","filterTypeField","querySeachDF","isSearch","fieldSeach","filterURL","query","fieldFilter","filters","querys","key_filter","dataRef","search","searchable","isNaN","Number","que","ii","cur","generatePaginate","page","pageSize","generateOrderBy","orderDirection","generateExpand","generateSelect","select_value","selectType","reduce","accum","array","key_select","arr_key_select","check_point","check_connect_multi","selectURL","field_MultiLabel","generatedExpandSelectURL","expect","a","b","getData","year","_excluded","propTypes","tag","tagPropType","inverse","PropTypes","body","outline","cssModule","innerRef","Tag","attributes","_objectWithoutPropertiesLoose","classes","mapToCssModules","classNames","_extends","ref","numToStrAddr","n","ALPHABET","remain","Math","floor","convertAddr","addr","Array","isArray","t","l","r","Error","_ws","_classPrivateFieldLooseKey","_getCellValue","_renderRow","_renderGroup","WorksheetWrapper","constructor","ws","defineProperty","writable","cell","prototype","toString","call","hasOwnProperty","c","cells","xr","_classPrivateFieldLooseBase","getRow","ce","getCell","isMerged","lodashMerge","DEFAULT_STYLE","colspan","rowspan","mergeCells","topLeft","shift","find","f","col","fullAddress","groupData","from","Set","g","gCell","group","font","bold","address","d","getColumn","worksheet","renderArrayRowGroup","_ref3","rows","renderDataRowGroup","_ref4","header","totalRow","rowNum","headerStyle","cellStyle","onEndRow","unshift","_","idx","colStyle","alignment","horizontal","groupedCols","sort","endRow","ExcelWorkbook","Workbook","create","wb","creator","lastModifiedBy","created","modified","lastPrinted","download","filename","wbBuffer","xlsx","writeBuffer","saveAs","Blob","addWorksheet","super","getWorksheet","indexOrName","selectProps","noOptionsMessage","loadingMessage","Index","forwardRef","promiseOptions","inputValue","Promise","resolve","setTimeout","op","hanldeChange","AsyncSelect","defaultOptions","inputId","instanceId","ButtonAdd","memo","formattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","unescapedLatinCharacterRegExp","lightFormat","dirtyDate","formatStr","requiredArgs","originalDate","toDate","isValid","RangeError","timezoneOffset","getTimezoneOffsetInMilliseconds","utcDate","subMilliseconds","tokens","match","substring","firstCharacter","matches","replace","cleanEscapedString","formatter","formatters","borderless","striped","dark","hover","responsive","responsiveTag","ResponsiveTag","table","responsiveClassName","colourStyles","menuPortal","base","zIndex","menu","LoadingIndicator","SpinnerSmall","IndicatorsContainer","components","getStyles","display","ClearIndicator","innerProps","restInnerProps","transition","boxSizing","FontAwesome","fa","verticalAlign","IndicatorSeparator","alignSelf","marginBottom","DropdownIndicator","MenuList","maxHeight","overflowY","state","valueRequire","RefReactSelect","menuPlacement","Fragment","ReactSelect","classNamePrefix","setState","menuPortalTarget","document","menuPosition","readOnly","tabIndex","autoComplete","opacity","focus","ExportCongNoThu","toUpperCase","totalCol","italic","HEADER_STYLE","tableData","content","TableRow","dataBody","TableRowFooter","TableContentGroup","CELL_STYLE","OrganName","Font2","Name","formatNumber","CELL_RIGHT","DonGia","CELL_CENTER","Font","of","numFmt","family","argb","vertical","wrapText","fill","pattern","border","left","bottom","right","Title_Header","Tilte_Columns","background","ownerDocument","node","createChainedFunction","_len","funcs","_key","acc","func","_len2","args","_key2","apply","Skeleton","_props$animation","animation","_props$component","component","_props$variant","variant","other","_objectWithoutProperties","hasChildren","Boolean","clsx","root","withChildren","fitContent","heightAuto","withStyles","theme","fade","palette","primary","transformOrigin","shape","rect","circle","pulse","wave","overflow","concat","action","visibility","Typography","renderTdRong","number","status","renderHeader","renderBodyChild","renderBodyChildFooter","renderBody","renderFooter"],"sourceRoot":""}