????
Current Path : C:/inetpub/vhost/xaydung.gdtsolutions.vn/build/static/js/ |
Current File : C:/inetpub/vhost/xaydung.gdtsolutions.vn/build/static/js/9715.d2c132cc.chunk.js.map |
{"version":3,"file":"static/js/9715.d2c132cc.chunk.js","mappings":"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","sources":["views/action/defaultEnums.js","components/Empty/EmptyNoData.js","components/select/DropdownListForm2.js","components/select/SelectMonth.js","components/base/Input/Radio.js","components/select/RadioList.js","components/select/CheckboxList.js","components/base/Form/FormControl.js","components/tableOdata/OdataUtils.js","views/bao-cao/doi-thue/TabThongTin/TongHopKhoiLuong/RenderRow.js","views/bao-cao/doi-thue/TabThongTin/TongHopKhoiLuong/data.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/doi-thue/TabThongTin/TongHopKhoiLuong/ReportPending.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","webpack://@qlxd/frontend/./src/views/bao-cao/doi-thue/TabThongTin/TongHopKhoiLuong/style.scss?f037","views/bao-cao/doi-thue/TabThongTin/TongHopKhoiLuong/ExportExcel.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/doi-thue/TabThongTin/TongHopKhoiLuong/index.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"],"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}","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;","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","/* eslint-disable no-unused-vars */\nimport React from 'react'\nimport { formatDate, 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=\"5\" className=\"month\" style={{ backgroundColor: 'wheat' }}>{`ĐỢ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>{formatDate(m2.ThoiGian)}</td>\n <td>{m2.Name}</td>\n <td className=\"number\">{formatNumber(m2.NgayCong, 8)}</td>\n <td className=\"number\">{formatNumber(m2.LamTron, 8)}</td>\n <td className=\"number\">{formatNumber(m2.DonGia, 8)}</td>\n <td className=\"number\">{formatNumber(m2.ThanhTien, 8)}</td>\n <td></td>\n </tr>\n )), []\n )\n\n const renderBodyChildFooter = React.useCallback(\n (item) => <tr>\n <td className=\"month\">{'TỔNG'}</td>\n <td></td>\n <td className=\"total\">{formatNumber(item.TongNgayCong, 8)}</td>\n <td className=\"total\">{formatNumber(item.TongLamTron, 8)}</td>\n <td ></td>\n <td className=\"total\">{formatNumber(item.ThanhTien, 8)}</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 className=\"text\">{m.OrganName}</td>\n {renderTdRong(6)}\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(4)}\n </tr>\n {\n item.TamUng.sort((a, b) => {\n if (new Date(a.ThoiGian) < new Date(b.ThoiGian)) return -1;\n return a - b\n }).map((item, index) => (\n <tr key={index}>\n {renderTdRong(1)}\n <td className=\"text-right\">Thời gian tạm ứng: {formatDate(item.ThoiGian)}</td>\n <td className=\"text-right\">{formatNumber(item.SoTien)}</td>\n {renderTdRong(4)}\n </tr>\n ))\n }\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(4)}\n </tr>\n <tr>\n {renderTdRong(7, true)}\n </tr>\n <tr>\n {renderTdRong(1)}\n <td className=\"total\">CÒN PHẢI TRẢ</td>\n <td className=\"rest-number\">{formatNumber(item.ConLai)}</td>\n {renderTdRong(4)}\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","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 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 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","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}","// extracted by mini-css-extract-plugin\nexport default {};","/** @requires module:src/components/export */\r\nimport { HEADER_STYLE, CELL_STYLE, CELL_CENTER, CELL_RIGHT } from '../../../../../components/export/ExcelPlugin/utils/constant';\r\nimport ExcelWorkbook from '../../../../../components/export/ExcelExtensions';\r\nimport lightFormat from 'date-fns/lightFormat';\r\nimport { formatDate, formatNumber } from '../../../../../actions/util';\r\nimport { CHECK_WARNING } from '../../../../../components/alert/Alert';\r\n\r\n/**\r\n * Export Công nợ\r\n * @param {ExportCongNoModel} data\r\n * @param {string} filename\r\n */\r\n\r\nexport default async function ExportCongNoThu({ data, TenDoi, CongNoCu, Nam }, filename) {\r\n const wb = new ExcelWorkbook();\r\n const totalCol = 6;\r\n // Tạo worksheet công nợ\r\n const ws = wb.addWorksheet(`Bảng tổng hợp nhân công đội thuê ngoài`);\r\n ws.worksheet.getColumn(1).width = 20;\r\n ws.worksheet.getColumn(2).width = 40;\r\n ws.worksheet.getColumn(3).width = 20;\r\n ws.worksheet.getColumn(4).width = 40;\r\n ws.worksheet.getColumn(5).width = 35;\r\n ws.worksheet.getColumn(6).width = 20;\r\n ws.worksheet.getColumn(7).width = 20;\r\n\r\n // Render thông tin chung\r\n // ws.renderArrayRowGroup([1, 3], ExportQuocHieu(totalCol - 2));\r\n ws.renderArrayRowGroup([4, 1], {\r\n style: {\r\n font: { bold: true },\r\n alignment: { horizontal: 'center' }\r\n },\r\n rows: [\r\n [{ value: `Bảng tổng hợp nhân công ${TenDoi} - ${Nam}`.toUpperCase(), colspan: totalCol }],\r\n ]\r\n });\r\n ws.renderArrayRowGroup([5, totalCol - 4], {\r\n style: {\r\n font: { italic: true },\r\n alignment: { horizontal: 'center' }\r\n },\r\n rows: [\r\n [{ colspan: '6', value: `Bình Định, ${lightFormat(new Date(), `'ngày 'dd' tháng 'MM' năm 'yyyy`)}` }]\r\n ]\r\n })\r\n\r\n // Render chi tiết\r\n ws.renderArrayRowGroup([6, 1], TableHeader());\r\n // wb.download(filename)\r\n\r\n const tableData = TableContentGroup(data, CongNoCu, Nam);\r\n if (tableData) {\r\n ws.renderArrayRowGroup([7, 1], { style: CELL_STYLE, rows: tableData })\r\n wb.download(filename)\r\n }\r\n}\r\n\r\n//#region Các hàm hỗ trợ xuất bảng tổng hợp công nợ\r\n\r\n/**\r\n * Render header của bảng export công nợ\r\n * @returns {ExcelArrayRowGroupProps}\r\n */\r\nfunction TableHeader() {\r\n return ({\r\n style: HEADER_STYLE,\r\n rows: [\r\n [\r\n { rowspan: 1, value: 'THỜI GIAN' },\r\n { rowspan: 1, value: 'TÊN VẬT TƯ' },\r\n { rowspan: 1, value: 'SL' },\r\n { rowspan: 1, value: 'LÀM TRÒN' },\r\n { rowspan: 1, value: 'ĐƠN GIÁ' },\r\n { rowspan: 1, value: 'THÀNH TIỀN' },\r\n { rowspan: 1, value: 'TẠM ỨNG' },\r\n ],\r\n ]\r\n })\r\n}\r\n\r\n/**\r\n * Render chi tiết dự án\r\n * @param {Array<Object>} data dữ liệu chi tiết\r\n * @returns {Array<ExcelRow>}\r\n */\r\n\r\nconst dataBody = (data) => {\r\n let arr = [];\r\n data.forEach((item, index) => {\r\n arr.push(\r\n [\r\n { value: item.OrganName, style: { ...Font2 } },\r\n { value: '' },\r\n { value: '' },\r\n { value: '' },\r\n { value: '' },\r\n { value: '' },\r\n { value: '' },\r\n ],\r\n ...item.Items.map(f =>\r\n [\r\n { value: formatDate(f.ThoiGian), style: { ...CELL_CENTER } },\r\n { value: f.Name },\r\n { value: formatNumber(f.NgayCong), style: { ...CELL_RIGHT } },\r\n { value: formatNumber(f.LamTron), style: { ...CELL_RIGHT } },\r\n { value: formatNumber(f.DonGia), style: { ...CELL_RIGHT } },\r\n { value: formatNumber(f.ThanhTien), style: { ...CELL_RIGHT } },\r\n { value: '' },\r\n ]\r\n ),\r\n [\r\n { value: 'Tổng', style: { ...Font2, ...CELL_CENTER } },\r\n { value: '' },\r\n { value: formatNumber(item.TongNgayCong), style: { ...Font2, ...CELL_RIGHT } },\r\n { value: formatNumber(item.TongLamTron), style: { ...Font2, ...CELL_RIGHT } },\r\n { value: '' },\r\n { value: formatNumber(item.ThanhTien), style: { ...Font2, ...CELL_RIGHT } },\r\n { value: '' },\r\n ]\r\n )\r\n })\r\n return arr;\r\n}\r\n\r\nfunction TableContentGroup(data, CongNoCu, Nam) {\r\n let content = [];\r\n if (data && data.length !== 0) {\r\n data.forEach(n => {\r\n content = [...content, ...[TableRow({ row: n }), ...dataBody(n.DuAns), ...TableRowFooter({ row: n })]]\r\n })\r\n content = [[\r\n { value: `CÔNG NỢ CŨ ${Nam - 1}`, colspan: 4, style: { ...Font, ...CELL_CENTER } },\r\n { value: '' },\r\n { value: '' },\r\n { value: '' },\r\n { value: formatNumber(CongNoCu), style: { ...Font, ...CELL_RIGHT } },\r\n { value: '' },\r\n { value: '' },\r\n ], ...content];\r\n return content\r\n } else {\r\n CHECK_WARNING('CHƯA CÓ DỮ LIỆU ĐỂ XUẤT BÁO CÁO')\r\n }\r\n}\r\n\r\n// /**\r\n// * @param {boolean} bold đậm cho font chữ\r\n// */\r\n\r\nfunction TableRow({ row }) {\r\n return [\r\n { value: `ĐỢT ${row.Dot}`, colspan: 4, style: { ...Font, ...CELL_CENTER } },\r\n { value: '' },\r\n { value: '' },\r\n { value: '' },\r\n { value: '' },\r\n { value: formatNumber(row.TongThanhTien), style: { ...Font, ...CELL_RIGHT } },\r\n { value: formatNumber(row.TongTamUng), style: { ...Font, ...CELL_RIGHT } },\r\n ]\r\n}\r\n\r\nfunction TableRowFooter({ row }) {\r\n const arrTamUng = [];\r\n row.TamUng.map(item => arrTamUng.push(\r\n [\r\n { value: '' },\r\n { value: '' },\r\n { value: '' },\r\n { value: `Thời gian tạm ứng: ${formatDate(item.ThoiGian)}` },\r\n { value: formatNumber(item.SoTien), style: { ...CELL_RIGHT } },\r\n { value: '' },\r\n { value: '' },\r\n ]\r\n ))\r\n return [\r\n [\r\n { value: '' },\r\n { value: '' },\r\n { value: '' },\r\n { value: `TỔNG TẤT CẢ DỰ ÁN`, style: { ...Font } },\r\n { value: formatNumber(row.TongThanhTien), style: { ...Font, ...CELL_RIGHT } },\r\n { value: '' },\r\n { value: '' },\r\n ],\r\n ...arrTamUng,\r\n [\r\n { value: '' },\r\n { value: '' },\r\n { value: '' },\r\n { value: `TỔNG TẠM ỨNG`, style: { ...Font } },\r\n { value: formatNumber(row.TongTamUng), style: { ...Font, ...CELL_RIGHT } },\r\n { value: '' },\r\n { value: '' },\r\n ],\r\n [\r\n { value: '' },\r\n { value: '' },\r\n { value: '' },\r\n { value: '' },\r\n { value: '' },\r\n { value: '' },\r\n { value: '' },\r\n ],\r\n [\r\n { value: '' },\r\n { value: '' },\r\n { value: '' },\r\n { value: `CÒN PHẢI TRẢ`, style: { ...Font } },\r\n { value: formatNumber(row.ConLai), style: { ...Font, ...CELL_RIGHT } },\r\n { value: '' },\r\n { value: '' },\r\n ],\r\n ]\r\n}\r\n\r\nconst Font = {\r\n font: {\r\n bold: true,\r\n size: 13\r\n }\r\n}\r\n\r\nconst Font2 = {\r\n font: {\r\n bold: true,\r\n size: 12\r\n }\r\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","import React, { useState, useCallback, useMemo, useEffect } from 'react';\r\nimport { Card, CardBody, Col, Row, Table } from 'reactstrap';\r\nimport { CHECK_WARNING } from '../../../../../components/alert/Alert';\r\nimport { ButtonSave } from '../../../../../components/base/Button';\r\nimport FormControl from '../../../../../components/base/Form/FormControl';\r\nimport EmptyNoData from '../../../../../components/Empty/EmptyNoData';\r\nimport { ChamCongEndpoint, DotLuongsEndpoint } from '../../../../../service/GDTCores';\r\nimport { formCondition } from './data'\r\nimport RenderRow from './RenderRow';\r\nimport ReportPending from './ReportPending'\r\nimport './style.scss'\r\nimport ExportExcel from './ExportExcel';\r\nimport { formatCurrency, formatDateNormal } from '../../../../../actions/util';\r\nimport { SelectSingle } from '../../../../../components/select';\r\n\r\nconst INITAL_OBJ = {\r\n DoiThueNgoaiId: null,\r\n TenDoi: '',\r\n DotLuongId: null,\r\n}\r\nexport default function TongHopNhanCong() {\r\n const [dataCondition, setDataCondition] = useState(INITAL_OBJ);\r\n const [isPending, setIsPending] = useState(false)\r\n const [dataReport, setDataReport] = useState([]);\r\n const [lstDotLuong, setLstDotLuong] = useState([]);\r\n const [noCu2021, setNoCu2021] = useState(0)\r\n\r\n const getDotByYear = useCallback(async (value) => {\r\n const { value: dotLuongs } = await DotLuongsEndpoint.getAll(`?$filter=year(TuNgay) eq ${value}&$orderBy=TuNgay desc`);\r\n dotLuongs.forEach((dot, i, arr) => {\r\n arr[i]['label'] = `Đợt ` + dot.Dot + ` - (${formatDateNormal(dot.TuNgay) + ` đến ` + formatDateNormal(dot.DenNgay)})`;\r\n arr[i]['value'] = dot.Id;\r\n });\r\n setLstDotLuong(dotLuongs);\r\n setDataCondition((pre) => ({ ...pre, Nam: value, 'DotLuongId': dotLuongs[0]?.Id, 'DenNgay': dotLuongs.length !== 0 ? formatDateNormal(dotLuongs[0].DenNgay) : null }));\r\n }, [])\r\n\r\n useEffect(() => { getDotByYear(new Date().getFullYear()) }, [getDotByYear])\r\n\r\n const handleChange = useCallback((name, value) => {\r\n if (name !== 'DoiThueNgoaiId') {\r\n if (name === 'Nam') { getDotByYear(value) } else {\r\n setDataCondition((pre) => ({ ...pre, [name]: value ? value.value : null, 'DenNgay': value ? formatDateNormal(value.DenNgay) : null }));\r\n }\r\n } else {\r\n setDataCondition((pre) => {\r\n let dataDoiThue = { ...pre };\r\n return { ...dataDoiThue, DoiThueNgoaiId: value ? value.value : null, TenDoi: value ? value.label : '' };\r\n })\r\n }\r\n }, [getDotByYear]);\r\n\r\n const RenderReport = useMemo(() => {\r\n return <div className=\"TongHopNhanCongDoiThueNgoai\">\r\n <Table bordered size=\"sm\" className=\"Table_BangKeChiTietCongNo\">\r\n <thead>\r\n <tr>\r\n <th>THỜI GIAN</th>\r\n <th>TÊN VẬT TƯ</th>\r\n <th>SL</th>\r\n <th>LÀM TRÒN</th>\r\n <th>ĐƠN GIÁ</th>\r\n <th>THÀNH TIỀN</th>\r\n <th>TẠM ỨNG</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <ReportPending loading={isPending}>\r\n {\r\n noCu2021 ? <tr>\r\n <td className=\"month\" colSpan=\"5\">CÔNG NỢ CŨ {dataCondition.Nam - 1}</td>\r\n <td className=\"total-number\">{formatCurrency(noCu2021, 8)}</td>\r\n <td></td>\r\n </tr> : ''\r\n }\r\n {\r\n dataReport.length !== 0 ? dataReport.map((item, index) => <RenderRow key={index} item={item} index={index} />) :\r\n <tr>\r\n <td colSpan=\"10\">\r\n <EmptyNoData size=\"sm\" />\r\n </td>\r\n </tr>\r\n }\r\n </ReportPending>\r\n </tbody>\r\n </Table>\r\n </div>\r\n }, [dataCondition, dataReport, isPending, noCu2021])\r\n\r\n const check = useCallback(\r\n () => {\r\n const { DoiThueNgoaiId, DotLuongId } = dataCondition;\r\n if (!DoiThueNgoaiId || !DotLuongId) {\r\n return false\r\n } else {\r\n return true\r\n }\r\n },\r\n [dataCondition],\r\n )\r\n\r\n const formatData = useCallback(\r\n (data) => {\r\n let arr = data.Response.map(m => {\r\n let TongTamUng = 0;\r\n m.DuAns.forEach(item => TongTamUng += (item.CongNos || 0))\r\n return {\r\n ...m,\r\n TongTamUng: TongTamUng,\r\n DuAns: m.DuAns.map(m2 => {\r\n let ThanhTien = 0; let TongNgayCong = 0; let TongLamTron = 0;\r\n m2.Items.forEach(item => ThanhTien += (item.ThanhTien || 0));\r\n m2.Items.forEach(item => TongLamTron += (item.LamTron || 0));\r\n m2.Items.forEach(item => TongNgayCong += (item.NgayCong || 0));\r\n return {\r\n ...m2,\r\n Items: m2.Items.sort((a, b) => new Date(a.ThoiGian).getTime() - new Date(b.ThoiGian).getTime()).map((item, index, arr) => ({\r\n ...item,\r\n ThoiGian: arr[index - 1]?.ThoiGian === arr[index].ThoiGian ? '' : item.ThoiGian,\r\n })),\r\n ThanhTien: ThanhTien,\r\n TongNgayCong: TongNgayCong,\r\n TongLamTron: TongLamTron\r\n }\r\n })\r\n }\r\n })\r\n let TongNo = data.NoCu || 0;\r\n let newArr = arr.map(m => {\r\n let TongThanhTien = 0; let TongTraNo = 0;\r\n m.TamUng.forEach(f => TongTraNo += f.SoTien)\r\n m.DuAns.forEach(item => TongThanhTien += (item.ThanhTien || 0))\r\n TongNo = TongNo + TongThanhTien - TongTraNo;\r\n return {\r\n ...m,\r\n TongThanhTien: TongThanhTien,\r\n ConLai: TongNo,\r\n TongTamUng: TongTraNo\r\n }\r\n });\r\n return newArr\r\n },\r\n [],\r\n )\r\n\r\n const handleGetDataReport = useCallback(async () => {\r\n if (check()) {\r\n setIsPending(true);\r\n const { DoiThueNgoaiId, DotLuongId } = dataCondition\r\n const { ResultObj } = await ChamCongEndpoint.getTongHopNhanCong(DoiThueNgoaiId, DotLuongId);\r\n if (ResultObj) {\r\n setNoCu2021(ResultObj.NoCu)\r\n setDataReport(formatData(ResultObj));\r\n } else {\r\n setNoCu2021(0)\r\n setDataReport([]);\r\n }\r\n setIsPending(false);\r\n } else {\r\n setDataReport([]);\r\n setNoCu2021(0)\r\n CHECK_WARNING('Vui lòng chọn đầy đủ thông tin');\r\n }\r\n }, [check, dataCondition, formatData])\r\n\r\n const handleExportExcel = useCallback(async () => {\r\n if (check()) {\r\n const { DoiThueNgoaiId, DotLuongId, TenDoi, Nam } = dataCondition\r\n const { ResultObj } = await ChamCongEndpoint.getTongHopNhanCong(DoiThueNgoaiId, DotLuongId);\r\n return ExportExcel({ data: formatData(ResultObj), Nam, TenDoi: TenDoi, CongNoCu: ResultObj.NoCu }, `Bảng tổng hợp nhân công ${TenDoi} - ${Nam} .xlsx`)\r\n } else {\r\n setDataReport([]);\r\n setNoCu2021(0)\r\n CHECK_WARNING('Vui lòng chọn đầy đủ thông tin');\r\n }\r\n }, [check, dataCondition, formatData])\r\n\r\n return (\r\n <React.Fragment>\r\n <Card>\r\n <CardBody className=\"row\">\r\n <Col xs='6'>\r\n <Row>\r\n <Col xs='4'>\r\n <FormControl data={formCondition.DoiThueNgoaiId} value={(dataCondition && dataCondition.DoiThueNgoaiId) || null} onChange={handleChange} />\r\n </Col>\r\n <Col xs='3' row>\r\n <FormControl data={formCondition.Nam} value={(dataCondition && dataCondition.Nam) || null} onChange={handleChange} />\r\n </Col>\r\n <Col xs='5' row>\r\n <SelectSingle\r\n valueRef=\"value\"\r\n labelRef=\"label\"\r\n options={lstDotLuong}\r\n placeholder='Chọn đợt chốt'\r\n value={(dataCondition && dataCondition.DotLuongId) || null}\r\n isClearable={true}\r\n onChange={e => {\r\n e ? handleChange('DotLuongId', e) : handleChange('DotLuongId', null)\r\n }}\r\n />\r\n </Col>\r\n </Row>\r\n </Col>\r\n <Col xs='6' style={{ marginTop: 8 }}>\r\n <ButtonSave className=\"mr-1\" onClick={handleGetDataReport} >Lấy dữ liệu công nợ</ButtonSave>\r\n <ButtonSave color=\"success\" onClick={handleExportExcel} >Xuất báo cáo</ButtonSave>\r\n </Col>\r\n <Col xs='12'>{RenderReport}</Col>\r\n </CardBody>\r\n </Card>\r\n </React.Fragment>\r\n )\r\n}\r\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);"],"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","Radio","name","checked","type","attribute","Input","numberCol","valueData","setValueData","Row","item","index","Col","md","target","handleChange","id","indexOf","splice","Checkbox","val","renderControl","setPlaceholder","toLowerCase","formatDate","InputText","field_name","title","Password","TextArea","style","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","FormControl","onChangeRender","inline","colLabel","colValue","FormGroup","row","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","arr","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","RenderRow","renderTdRong","number","status","Array","from","_","renderHeader","React","colSpan","Dot","formatNumber","TongThanhTien","TongTamUng","renderBodyChild","Items","m2","ThoiGian","Name","NgayCong","LamTron","DonGia","ThanhTien","renderBodyChildFooter","TongNgayCong","TongLamTron","renderBody","DuAns","m","OrganName","renderFooter","sort","Date","SoTien","ConLai","formCondition","DoiThueNgoaiId","DotLuongId","Nam","getData","year","getFullYear","_excluded","propTypes","tag","tagPropType","inverse","PropTypes","color","body","outline","cssModule","innerRef","Card","Tag","attributes","_objectWithoutPropertiesLoose","classes","mapToCssModules","classNames","_extends","ref","loading","Typography","variant","Skeleton","numToStrAddr","n","ALPHABET","remain","Math","floor","convertAddr","addr","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","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","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","async","op","hanldeChange","AsyncSelect","defaultOptions","inputId","instanceId","ButtonAdd","onClick","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","ExportCongNoThu","TenDoi","CongNoCu","toUpperCase","totalCol","italic","HEADER_STYLE","tableData","content","TableRow","dataBody","TableRowFooter","Font","CELL_CENTER","CELL_RIGHT","CHECK_WARNING","TableContentGroup","CELL_STYLE","Font2","arrTamUng","bordered","borderless","striped","dark","hover","responsive","responsiveTag","Table","ResponsiveTag","table","responsiveClassName","colourStyles","menuPortal","base","zIndex","menu","marginTop","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","INITAL_OBJ","TongHopNhanCong","dataCondition","setDataCondition","isPending","setIsPending","dataReport","setDataReport","lstDotLuong","setLstDotLuong","noCu2021","setNoCu2021","getDotByYear","dotLuongs","DotLuongsEndpoint","getAll","dot","formatDateNormal","TuNgay","DenNgay","Id","pre","_dotLuongs$","RenderReport","useMemo","ReportPending","formatCurrency","check","formatData","Response","CongNos","getTime","_arr","TongNo","TongTraNo","handleGetDataReport","ResultObj","ChamCongEndpoint","getTongHopNhanCong","handleExportExcel","ExportExcel","CardBody","xs","ButtonSave","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","_props$animation","animation","_props$component","component","_props$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"],"sourceRoot":""}