????
Current Path : C:/inetpub/vhost/xaydung.gdtsolutions.vn/build/static/js/ |
Current File : C:/inetpub/vhost/xaydung.gdtsolutions.vn/build/static/js/3316.fb188e9b.chunk.js.map |
{"version":3,"file":"static/js/3316.fb188e9b.chunk.js","mappings":"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","sources":["views/bao-cao/cua-hang/TabThongTin/BangKeChiTietCongNo/data.js","views/bao-cao/cua-hang/TabThongTin/BangKeChiTietCongNo/NewRenderRow.js","views/action/defaultEnums.js","service/Report/Report.js","service/Report/NhomDuAnDTOsEndpoint.js","service/Report/ChiTietCongNosEndpoint.js","service/Report/BangKeChiTietVatLieusEndpoint.js","service/Report/RPDuAnsEndpoint.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","webpack://@qlxd/frontend/./src/views/bao-cao/cua-hang/TabThongTin/BangKeChiTietCongNo/style.scss?207f","components/tableOdata/OdataUtils.js","views/bao-cao/cua-hang/TabThongTin/BangKeChiTietCongNo/ReportPending.js","views/bao-cao/cua-hang/TabThongTin/BangKeChiTietCongNo/index.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","components/select/SelectAsync.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","components/select/SelectCustom.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":["import { _Enums_DoiTuong } from \"../../../../action/defaultEnums\";\n\nconst 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\nexport const formCondition = {\n Nam: {\n field_name: 'Nam',\n title: 'Năm',\n type: 'select-year',\n required: true,\n hidden_label: true,\n },\n Thang: {\n field_name: 'Thang',\n title: 'Tháng',\n type: 'data-select',\n hidden_label: true,\n dataSelect: {\n options: data(),\n columns: [\"value\", \"label\"],\n value_field: 'value',\n text_field: 'label',\n },\n placeholder: 'Chọn tháng',\n },\n CuaHangId: {\n field_name: 'CuaHangId',\n title: 'Cửa hàng',\n type: 'data-select',\n dataSelect: {\n odata: true,\n url: 'GDTCores/Organizations',\n where: `DoiTuong eq '${_Enums_DoiTuong.CuaHang}' 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 cửa hàng',\n required: true,\n // where: [\n // {\n // \"field\": \"DoiTuong\",\n // \"expression\": 'eq',\n // \"value\": `'${_Enums_DoiTuong.CuaHang}'`\n // },\n // ]\n }\n}","/* eslint-disable no-unused-vars */\r\nimport React, { Fragment } from 'react';\r\nimport { formatCurrency, formatDate, formatNumber } from '../../../../../actions/util';\r\n\r\nexport default function NewRenderRow(props) {\r\n const { item, index, dataCondition } = props;\r\n\r\n const renderTdRong = (number, status) => (\r\n Array.from(Array(number).keys()).map((_, i) => <td style={{ height: status ? 28 : '' }} key={i}></td>)\r\n )\r\n\r\n const renderHeader = React.useMemo(() => (\r\n item.DonHangs.length > 0 || item.TraNo.length > 0 ? <tr key={index} className=\"tr-header\">\r\n <td colSpan=\"5\" className=\"month\">{`THÁNG ${item.Thang}`}</td>\r\n <td className=\"total-number\">{formatNumber(item.ThanhTien)}</td>\r\n {renderTdRong(2)}\r\n </tr> : <></>\r\n ), [index, item])\r\n\r\n const renderBody = React.useMemo(() => item.DonHangs.map((donHang, i, arr) => {\r\n const date = i === 0 ? formatDate(donHang.NgayNhap)\r\n : arr[i - 1].NgayNhap !== donHang.NgayNhap ? formatDate(donHang.NgayNhap) : '';\r\n const khopCongNo = i === 0 ? donHang.GhiChu : arr[i - 1].NgayNhap !== donHang.NgayNhap ? donHang.GhiChu : '';\r\n return <Fragment>\r\n <tr >\r\n <td className=\"date\">{date}</td>\r\n <td>{donHang.MaDonHang}</td>\r\n <td></td><td></td><td></td>\r\n <td></td><td></td><td>{khopCongNo}</td>\r\n </tr>\r\n {\r\n donHang.VatLieu.map((m2, i2) =>\r\n <tr key={i2}>\r\n <td></td>\r\n <td>{m2.TenVatLieu}</td>\r\n <td>{m2.ĐVT}</td>\r\n <td className=\"number\">{formatNumber(m2.SL)}</td>\r\n <td className=\"number\">{formatNumber(m2.DonGia)}</td>\r\n <td className=\"number\">{formatNumber(m2.ThanhTien)}</td>\r\n <td>{m2.CongTrinh}</td>\r\n <td></td>\r\n </tr>\r\n )\r\n }\r\n </Fragment>\r\n }), [item])\r\n\r\n const renderFooter = React.useMemo(\r\n () => (\r\n item.DonHangs.length > 0 || item.TraNo.length > 0 ? <React.Fragment>\r\n {(item.ThangConLai || item.CongNoCu) ? <tr>\r\n {renderTdRong(4)}\r\n <td className=\"total\">{item.ThangConLai ? `CÒN THÁNG ${item.ThangConLai}` : item.CongNoCu ? `CÔNG NỢ CŨ ${dataCondition.Nam - 1}` : ''}</td>\r\n <td className=\"total-number\">{item.ThangConLai ? `${formatNumber(item.ConLaiThang)}` : item.CongNoCu ? `${formatNumber(item.CongNoCu)}` : ''}</td>\r\n {renderTdRong(2)}\r\n </tr> : ''}\r\n <tr>\r\n {renderTdRong(4)}\r\n <td className=\"total\">TỔNG CỘNG</td>\r\n <td className=\"total-number\">{formatNumber(item.TongCong)}</td>\r\n {renderTdRong(2)}\r\n </tr>\r\n {\r\n item.TraNo.map((item, index) => (\r\n <tr key={index}>\r\n {renderTdRong(4)}\r\n <td>{item.GhiChu}</td>\r\n <td className=\"number\">{formatNumber(item.SoTien)}</td>\r\n {renderTdRong(2)}\r\n </tr>\r\n ))\r\n }\r\n <tr>\r\n {renderTdRong(8, true)}\r\n </tr>\r\n <tr>\r\n {renderTdRong(4)}\r\n <td className=\"rest\">CÒN LẠI</td>\r\n <td className=\"rest-number\">{formatNumber(item.ConLai)}</td>\r\n {renderTdRong(2)}\r\n </tr>\r\n </React.Fragment> : <></>\r\n ), [dataCondition, item]\r\n )\r\n\r\n return (\r\n <React.Fragment>\r\n {renderHeader}\r\n {renderBody}\r\n {renderFooter}\r\n </React.Fragment>\r\n )\r\n}\r\n","// 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 { Service } from '../Service';\n// import { PUBLIC_API_URL, ADMIN_API_URL } from '../../actions/constants';\n\nclass Report extends Service {\n constructor(path) {\n super('/Reports', path);\n }\n // Tìm kiếm\n // getAll = (param) => this.SearchAll(PUBLIC_API_URL + \"/category\", param, null, true);\n getAll = (param) => this.SearchAllAUTH(param, null, null, true);\n\n addWithBatch = (data) => this.InsertBatch(``, data)\n\n update(ID, body) {\n return this.edit(ID, body);\n }\n}\n\nexport { Report };","import { Report } from \"./Report\";\n\nclass NhomDuAnDTOsEndpoint extends Report {\n constructor() {\n super(\"/NhomDuAnDTOs\");\n }\n\n}\n\nexport default new NhomDuAnDTOsEndpoint();","import { Report } from \"./Report\";\n\nclass ChiTietCongNosEndpoint extends Report {\n constructor() {\n super(\"/ChiTietCongNos\");\n }\n getDataCongNoTongHop = (Nam) => this.GetAuthen('/GetCongNoTongHop?Nam=' + Nam);\n GetCongNoVatLieuTheoDuAn = (data) => this.PostAuthen('/GetCongNoVatLieuTheoDuAn', data);\n getDataChiTietCongNoCuaHang = (Nam, Thang, CuaHangId) => this.GetAuthen(`/ChiTietCongNoCuaHang?Nam=${Nam}&Thang=${Thang || 0}&CuaHangId=${CuaHangId}`);\n getDataCongNoDoiThueNgoai = (DotLuongId) => this.GetAuthen('/CongNoDoiThueNgoai?DotLuongId=' + DotLuongId);\n getDataTongHopCongNoCuaHang = (Nam) => this.GetAuthen('/TongHopCongNoCuaHang?Nam=' + Nam);\n}\n\nexport default new ChiTietCongNosEndpoint();","import { Report } from \"./Report\";\n\nclass BangKeChiTietVatLieusEndpoint extends Report {\n constructor() {\n super(\"/DuAnVatLieus\");\n }\n getDataBangKeChiTiet = (body) => this.PostAuthen(`/BangKeChiTietVatLieu`, body)\n}\n\nexport default new BangKeChiTietVatLieusEndpoint();","import { Report } from \"./Report\";\n\nclass RPDuAnsEndpoint extends Report {\n constructor() {\n super(\"/DuAns\");\n }\n\n getKinhPhiCongTrinh = (duAnId) => this.GetAuthen(`/GetKinhPhiCongTrinh?DuAnId=${duAnId}`)\n\n getLoiNhuan = (Nam) => this.GetAuthen(`/ChotLaiAsync?key=${Nam}`);\n}\n\nexport default new RPDuAnsEndpoint();","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","// extracted by mini-css-extract-plugin\nexport default {};","/* eslint-disable array-callback-return */\nimport { CHECK_WARNING } from \"../alert/Alert\";\n\nexport const delimiter = \".\";\nexport const space = \"/\";\n\nexport const getDataID = (columns) => columns.filter(e => e.dataID)[0];\nexport const getPrimaryKey = (columns) => getDataID(columns).field;\n\nexport const checkDelimiter = (value) => value && value.includes(delimiter);\nexport const checkSpace = (value) => value && value.includes(space);\nexport const convertDelimiter = (value) => value.split(delimiter).join(space);\nexport const checkHasField = (hasField, column) => (hasField ? column.field : column);\n\nexport const getPrimaryURL = (url, columns, data) => {\n const ID = getDataID(columns);\n //const dataField = ID.type === 'numeric' ? data[ID.field] : \"'\" + data[ID.field] + \"'\";\n //return `${url}(${ID.type === 'guid' ? 'guid' : ''}${dataField})`;\n return `${url}(${data[ID.field]})`;\n}\n\n// CheckData\nexport const handleCheckData = (columns, newData) => {\n let columnsValue = columns.filter(column => column.dataCheck);\n for (var i = 0; i < columnsValue.length; i++) {\n if (checkDelimiter(columnsValue[i].field) && columnsValue[i].dataRef) {\n if (newData[columnsValue[i].dataRef[0]] === null || newData[columnsValue[i].dataRef[0]] === undefined) {\n CHECK_WARNING(\"Vui lòng nhập dữ liệu cột \" + columnsValue[i].title);\n return false;\n }\n } else {\n if (newData[columnsValue[i].field] === undefined || newData[columnsValue[i].field] === null) {\n CHECK_WARNING(\"Vui lòng nhập dữ liệu cột \" + columnsValue[i].title);\n return false;\n }\n }\n }\n return true;\n}\n\n\n\n// EXPAND\nexport const filterExpandURL = (list_join, hasField = true,originfield=false,multiLabel=null) => {\n let list_join_filter_only = [];\n let list2_join_filter_only = [];\n let list_join_filter_only_check = [];\n let i1 = 0;\n let index_table = [];\n let index_real = '';\n let expand = '';\n\n list_join.forEach((current, i) => {\n list_join_filter_only_check.push(current.field);\n });\n let arrayOfUniques = [];\n let index = [];\n list_join_filter_only_check.forEach((element, i) => {\n if (!arrayOfUniques.includes(element)) {\n arrayOfUniques.push(element)\n } else {\n index.push(i)\n }\n });\n index.forEach((num) => {\n list_join.splice(num, 1);\n })\n //tạo 1 mãng colunm và 1 mãng field theo column\n list_join.forEach((current, i) => {\n let split = '';\n if(originfield){\n split = checkHasField(hasField, current)\n .split(delimiter).reverse().splice(1).reverse().join(',');\n }else{\n split = checkHasField(hasField, current)\n .split(delimiter).reverse().splice(1).reverse().join(space);\n } \n let splitField = checkHasField(hasField, current)\n .split(delimiter).splice(1).reverse().join(space);\n if (checkSpace(splitField)) {\n splitField = splitField.split(space)[0];\n }\n \n if (i === 0) {\n list_join_filter_only.push(split);\n list2_join_filter_only.push(splitField);\n index_table[i] = split;\n } else {\n if (!list_join_filter_only.some(arr => arr === split)) {\n list_join_filter_only.push(split);\n index_table[i] = split;\n i1 = i;\n list2_join_filter_only[i1] = splitField;\n }\n else {\n index_table.forEach((current, i2) => {\n if (current === split) {\n index_real = i2\n }\n })\n if (list2_join_filter_only[index_real] !== splitField) {\n list2_join_filter_only[index_real] = list2_join_filter_only[index_real] + ',' + splitField;\n }\n }\n }\n });\n //sắp xếp thứ tự cho list2_join_filter_only\n let list2_join_filter_only_fake = [];\n list2_join_filter_only.forEach((curr) => {\n list2_join_filter_only_fake.push(curr);\n })\n list2_join_filter_only = list2_join_filter_only_fake;\n //create query expand and select\n list_join_filter_only.forEach((curr, i3) => {\n if (i3 === 0) {\n if (checkSpace(curr)) {\n let arr_list = curr.split(space);\n let arr_list2 = list2_join_filter_only[i3].split(space);\n let text = '';\n let text1 = '';\n let ngoac = '';\n let ngoac_end = '';\n arr_list.forEach((element, i4) => {\n ngoac = (i4 === (arr_list.length - 1)) ? ngoac + ')' : '';\n ngoac_end = ngoac_end + ')';\n if (i4 === 0) {\n text1 = element + '(' + ngoac;\n text = text1;\n } else {\n if (i4 === (arr_list.length - 1)) {\n text1 = '$expand=' + element + '($select=' + arr_list2[0] + ngoac_end;\n } else {\n text1 = '$expand=' + element + '(' + ngoac;\n }\n text = text + '' + text1;\n }\n });\n expand = text;\n } else {\n if(multiLabel!==null){\n let stringLabel ='';\n multiLabel.map((multiLB,i) => {\n if(checkDelimiter(multiLB.field))\n {\n let labelMuti = multiLB.field.split('.');\n stringLabel += (i===0) ? labelMuti[labelMuti.length-1] : stringLabel+','+labelMuti[labelMuti.length-1];\n }\n return\n })\n expand = curr + '($select=' + list2_join_filter_only[i3]+','+stringLabel+')';\n }else{\n expand = curr + '($select=' + list2_join_filter_only[i3] +')';\n }\n }\n } else {\n if (checkSpace(curr)) {\n let arr_list = curr.split(space);\n let arr_list2 = list2_join_filter_only[i3].split(space);\n let text = '';\n let text1 = '';\n let ngoac = '';\n let ngoac_end = '';\n arr_list.forEach((element, i4) => {\n ngoac = (i4 === (arr_list.length - 1)) ? ngoac + ')' : '';\n ngoac_end = ngoac_end + ')';\n if (i4 === 0) {\n text1 = element + '(' + ngoac;\n text = text1;\n } else {\n if (i4 === (arr_list.length - 1)) {\n text1 = '$expand=' + element + '($select=' + arr_list2[0] + ngoac_end;\n } else {\n text1 = '$expand=' + element + '(' + ngoac;\n }\n text = text + '' + text1;\n }\n });\n expand = expand + ',' + text;\n } else {\n expand = expand + ',' + curr + '($select=' + list2_join_filter_only[i3] + ')';\n }\n }\n })\n return expand;\n}\n\n// SELECT\nexport const selectURL = (columns, selectType, hasField = true) => {\n if (selectType) {\n if (selectType === 'withColumns') {\n return `${columns.reduce((accum, current, index, array) => {\n let field = checkHasField(hasField, current);\n let key_select = `${accum}`;\n let arr_key_select = key_select.split(',');\n let check_point = true;\n if (checkDelimiter(field)) {\n let check_connect_multi = field.split('.');\n if (arr_key_select.indexOf(current.dataRef[0]) === -1) {\n if (check_connect_multi.length < 3) {\n key_select += `${current.dataRef === undefined ? '' : (current.dataRef[0] + ',')}`;\n }\n }\n } else {\n if (arr_key_select.indexOf(field) === -1) {\n key_select += `${field}`;\n } else {\n check_point = false;\n }\n }\n let a = `${key_select}${index === (array.length - 1) ? '' : ((checkDelimiter(field) === true) ? '' : (check_point === true) ? ',' : '')}`;\n return a;\n }, ``)}`;\n }\n } else {\n return `${columns.filter(column => checkDelimiter(column.field))\n .reduce((accum, current) => `${accum},${convertDelimiter(checkHasField(hasField, current))}`, `*`)}`;\n }\n return '';\n}\n\nexport const filterTypeField = (type, value) => {\n if (type === 'string') {\n return `'${value}'`;\n }\n if (type === 'datetime') {\n return `datetime'${value}'`;\n }\n if (type === 'guid') {\n return `${value}`;\n }\n return `${value}`;\n}\n\nexport const filterField = (fieldName, type, value, isSearch = false,where = null,multiLabel=null) => {\n if (isSearch) {\n let arr_field = fieldName.split('.')[0].split('/');\n if (arr_field.length < 3) {\n if(!checkDelimiter(fieldName)){\n return where ? `contains(${fieldName},'${value}') ${where}` : `contains(${fieldName},'${value}')`;\n }else{\n if(multiLabel){\n let fieldChange = fieldName.split('.').join('/')\n let querySeachDF = `contains(${fieldChange},'${value}')` + where;\n multiLabel.map(x=>{\n if(x.isSearch){\n let fieldSeach = x.field.split('.').join('/');\n querySeachDF += ` or contains(${fieldSeach},'${value}')`+ where\n }\n \n })\n return querySeachDF;\n }else{\n let fieldChange = fieldName.split('.').join('/')\n return `contains(${fieldChange},'${value}')`;\n }\n \n }\n \n }\n } else {\n return `${fieldName} eq ${filterTypeField(type, value)}`;\n }\n\n}\n\n// FILTER\nexport const filterURL = (query, columns,fieldFilter,where) => {\n if (query.filters && query.filters.length > 0) {\n const querys = query.filters\n .filter(filter => filter.column.field && filter.column.type)\n .map(filter => {\n let key_filter = ''\n if(fieldFilter){\n key_filter = `${checkDelimiter(filter.column.field) ? convertDelimiter(fieldFilter) : filter.column.field}`; \n }else{\n key_filter = `${checkDelimiter(filter.column.field) ? filter.column.dataRef[0] : filter.column.field}`;\n }\n return filterField(key_filter, filter.column.type, filter.value);\n });\n return querys && querys.join(' and ');\n }\n if (query.search && query.search.length >= 1) {\n const querys = columns\n .filter(column => column.searchable && column.field && column.type)\n .map(column => {\n const key_filter = `${checkDelimiter(column.field) ? convertDelimiter(column.field) : column.field}`;\n if (column.type === 'numeric' && !checkDelimiter(column.field)) {\n if (!isNaN(Number(query.search))) {\n return filterField(key_filter, column.type, query.search, false);\n }\n } else {\n return filterField(key_filter, column.type, query.search, true,where ? 'and '+where : column.where);\n }\n\n });\n querys.map((que, ii) => {\n if (que === undefined) {\n querys.splice(ii, 1);\n }\n });\n let fakeQuery = querys;\n fakeQuery.forEach((cur,index)=>{\n if(typeof cur === \"undefined\"){\n querys.splice(index,1)\n }\n })\n // querys.splice(querys.indexOf(undefined),1);\n return querys && querys.join(' or ');\n }\n return '';\n}\n\n// Paginate\nexport const generatePaginate = (page, pageSize) => {\n return `$top=${pageSize}&$skip=${page * pageSize}&$count=true`;\n}\n\n// OrderBy\nexport const generateOrderBy = (field, orderDirection) => {\n return `&$orderby=${checkDelimiter(field) ? convertDelimiter(field) : field} ${orderDirection}`;\n}\n\n// Expand\nexport const generateExpand = (columns, hasField = true,originfield = false,multiLabel=null) => {\n let list_join = columns.filter(column => checkDelimiter(checkHasField(hasField, column)));\n \n if (list_join.length === 0) {\n return '';\n }\n if(multiLabel!==null){\n return `&$expand=${filterExpandURL(list_join, hasField,originfield,multiLabel)}`;\n }else{\n return `&$expand=${filterExpandURL(list_join, hasField,originfield)}`;\n }\n \n}\n\n// Select\nexport const generateSelect = (columns, selectType = 'withColumns', hasField = true,originfield,multiLabel = null) => {\n const select_value = selectURL(columns, selectType, hasField);\n if(originfield){\n return select_value ? `&$select=${select_value}` : '';\n }else{\n if(multiLabel!==null){\n var field_MultiLabel = '';\n multiLabel.map(cur=>{\n field_MultiLabel +=`,${cur.field}`\n return field_MultiLabel\n })\n return select_value ? `&$select=${select_value} ${field_MultiLabel}` : '';\n }else{\n return select_value ? `&$select=${select_value}` : '';\n }\n }\n \n}\n\n// EXPAND\nexport const generatedExpandSelectURL = (columns, where, hasField = true, selectType = 'withColumns', expect = null, originfield=false, multiLabel=null) => {\n if (expect !== null) {\n let a = `${\"&$filter=\" + expect.field + \" ne \" + expect.data}`;\n let b = `${\" and \" + expect.field + \" ne \" + expect.data}`;\n // let a = `${\"&$filter=\" + expect.field + \" ne \" + expect.data}`;\n // let b = `${\" and \" + expect.field + \" ne \" + expect.data}`;\n return `${generateExpand(columns, hasField)}${generateSelect(columns, selectType, hasField)}${where ? (\"&$filter=\" + where + b) : a}`;\n } else {\n if(originfield===false){\n if(multiLabel!==undefined){\n return `${generateExpand(columns, hasField)}${generateSelect(columns, selectType, hasField, originfield,multiLabel)}${where ? (\"&$filter=\" + where) : \"\"}`;\n }else{\n return `${generateExpand(columns, hasField)}${generateSelect(columns, selectType, hasField, originfield)}${where ? (\"&$filter=\" + where) : \"\"}`;\n }\n \n }else{\n return `${generateExpand(columns, hasField,originfield,multiLabel)}${where ? (\"&$filter=\" + where) : \"\"}`;\n }\n \n }\n}\n","import React 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(8).keys()).map((cur, i) => (\n <tr key={i}>\n {Array.from(Array(8).keys()).map((_, i) => <td key={i}><Typography variant='caption'><Skeleton /></Typography></td>)}\n </tr>\n ))}\n </React.Fragment> : props.children\n }\n </React.Fragment>\n\n )\n}\nexport default ReportPending","/* eslint-disable no-unused-vars */\r\nimport { useCallback, useMemo, useState } from 'react'\r\nimport { Card, CardBody, Col, Row, Table } from 'reactstrap'\r\nimport { ButtonSave } from '../../../../../components/base/Button'\r\nimport FormControl from '../../../../../components/base/Form/FormControl'\r\nimport { ChiTietCongNosEndpoint } from '../../../../../service/Report'\r\nimport { formCondition } from './data'\r\nimport ReportPending from './ReportPending'\r\nimport ExportExcel from './ExportExcel';\r\nimport { CHECK_WARNING } from '../../../../../components/alert/Alert'\r\nimport NewRenderRow from './NewRenderRow'\r\nimport './style.scss'\r\nimport EmptyNoData from '../../../../../components/Empty/EmptyNoData'\r\nimport { formatNumber } from '../../../../../actions/util'\r\n\r\nconst INITAL_OBJ = {\r\n Nam: new Date().getFullYear(),\r\n Thang: '',\r\n CuaHangId: '',\r\n TenCuaHang: ''\r\n}\r\nconst Index = (() => {\r\n const [dataCondition, setDataCondition] = useState(INITAL_OBJ);\r\n const [isPending, setIsPending] = useState(false);\r\n const [dataReport, setDataReport] = useState([]);\r\n const [congNoCu, setCongNoCu] = useState(0)\r\n\r\n const handleChange = useCallback((name, value) => {\r\n if (value) {\r\n if (name !== 'CuaHangId') {\r\n setDataCondition((pre) => ({ ...pre, [name]: value }));\r\n } else {\r\n setDataCondition((pre) => {\r\n let dataCuaHang = { ...pre };\r\n return { ...dataCuaHang, CuaHangId: value ? value.value : null, TenCuaHang: value ? value.label : '' };\r\n })\r\n }\r\n }\r\n }, []);\r\n\r\n const RenderReport = useMemo(() => {\r\n return <div className=\"table_congNo\">\r\n <Table bordered size=\"sm\" className=\"Table_BangKeChiTietCongNo\">\r\n <thead>\r\n <tr>\r\n <th>NGÀY</th>\r\n <th>TÊN VẬT TƯ</th>\r\n <th>ĐVT</th>\r\n <th>SL</th>\r\n <th>ĐƠN GIÁ</th>\r\n <th>THÀNH TIỀN</th>\r\n <th>PHÂN BỔ CÔNG TRÌNH</th>\r\n <th>KHỚP CÔNG NỢ CỬA HÀNG</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <ReportPending loading={isPending}>\r\n {\r\n congNoCu ? <tr>\r\n <td className=\"date\">{dataCondition.Nam - 1}</td>\r\n <td className=\"total\">CÔNG NỢ CŨ</td>\r\n <td></td>\r\n <td></td>\r\n <td></td>\r\n <td className=\"total-number\">{formatNumber(congNoCu, 8)}</td>\r\n <td></td>\r\n <td></td>\r\n </tr> : ''\r\n }\r\n {\r\n dataReport.length !== 0 ? dataReport.map((item, index) => <NewRenderRow dataCondition={dataCondition} key={index} item={item} index={index} />) :\r\n <tr>\r\n <td colSpan=\"8\">\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 }, [congNoCu, dataReport, isPending])\r\n\r\n const checkIdCuaHang = useCallback(\r\n () => {\r\n const { CuaHangId } = dataCondition;\r\n if (!CuaHangId) {\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 = (data) => {\r\n let arr = data.Result.map(thang => {\r\n return {\r\n ...thang,\r\n DonHangs: thang.DonHangs ? thang.DonHangs.map(m2 => {\r\n let TongTien = m2.VatLieu.reduce((sum, curVatLieu) => sum += curVatLieu.ThanhTien, 0);\r\n return {\r\n ...m2,\r\n ThanhTien: TongTien,\r\n }\r\n }) : []\r\n }\r\n })\r\n let TongNo = data.NoCu2021 || 0;\r\n let newData = arr.map((m, i) => {\r\n let TongTien = m.DonHangs.reduce((sum, curNo) => sum += curNo.ThanhTien, 0);\r\n let TongTraNo = m.TraNo.reduce((sum, curTraNo) => sum += curTraNo.SoTien, 0);\r\n TongNo = TongNo + TongTien - TongTraNo;\r\n return {\r\n ...m,\r\n ThanhTien: TongTien,\r\n TongTraNo: TongTraNo,\r\n ConLai: TongNo,\r\n }\r\n })\r\n let TongCong = 0;\r\n let newDataNew = newData.map((m, i, arr) => {\r\n TongCong = (arr[i - 1] ? m.ThanhTien + arr[i - 1].ConLai : m.ThanhTien + (data.NoCu2021 || 0))\r\n return {\r\n ...m,\r\n TongCong: TongCong,\r\n CongNoCu: (data.NoCu2021) ? data.NoCu2021 : 0,\r\n ThangConLai: arr[i - 1] ? arr[i - 1].Thang : 0,\r\n ConLaiThang: arr[i - 1] ? arr[i - 1].ConLai : 0\r\n }\r\n })\r\n return newDataNew\r\n }\r\n\r\n const handleGetDataReport = useCallback(async () => {\r\n if (checkIdCuaHang()) {\r\n setIsPending(true);\r\n const { Nam, Thang, CuaHangId } = dataCondition\r\n const { ResultObj } = await ChiTietCongNosEndpoint.getDataChiTietCongNoCuaHang(Nam, Thang, CuaHangId);\r\n if (ResultObj) {\r\n setCongNoCu(ResultObj.NoCu2021);\r\n setDataReport(formatData(ResultObj));\r\n } else {\r\n setCongNoCu(0);\r\n setDataReport([]);\r\n }\r\n setIsPending(false);\r\n } else {\r\n setDataReport([]);\r\n CHECK_WARNING('Vui lòng chọn cửa hàng');\r\n }\r\n }, [checkIdCuaHang, dataCondition])\r\n\r\n const handleExportExcel = useCallback(async () => {\r\n if (checkIdCuaHang()) {\r\n if (dataReport.length !== 0) {\r\n const { TenCuaHang, Nam } = dataCondition\r\n return ExportExcel({ data: dataReport, Nam, TenCuaHang: TenCuaHang, CongNoCu: congNoCu }, `Bảng kê chi tiết công nợ ${TenCuaHang}.xlsx`)\r\n } else {\r\n CHECK_WARNING('Vui lòng lấy dữ liệu trước khi xuất báo cáo');\r\n }\r\n } else {\r\n setDataReport([]);\r\n CHECK_WARNING('Vui lòng chọn cửa hàng');\r\n }\r\n }, [checkIdCuaHang, congNoCu, dataCondition, dataReport])\r\n\r\n return (\r\n <Card>\r\n <CardBody className=\"mt-1 row\">\r\n <Col xs='6'>\r\n <Row>\r\n <Col xs='6'>\r\n <FormControl data={formCondition.Nam} value={(dataCondition && dataCondition.Nam) || null} onChange={handleChange} />\r\n </Col>\r\n {/* <Col xs='4'>\r\n <FormControl data={formCondition.Thang} value={(dataCondition && dataCondition.Thang) || null} onChange={handleChange} />\r\n </Col> */}\r\n <Col xs='6'>\r\n <FormControl data={formCondition.CuaHangId} value={(dataCondition && dataCondition.CuaHangId) || null} onChange={handleChange} />\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 )\r\n})\r\nexport default Index;\r\n\r\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 { 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 _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, { 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","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":["formCondition","Nam","field_name","title","type","required","hidden_label","Thang","dataSelect","options","data","option","i","push","value","label","columns","value_field","text_field","placeholder","CuaHangId","odata","url","where","_Enums_DoiTuong","CuaHang","getFullValue","NewRenderRow","props","item","index","dataCondition","renderTdRong","number","status","Array","from","keys","map","_","_jsx","style","height","renderHeader","React","DonHangs","length","TraNo","_jsxs","className","children","colSpan","formatNumber","ThanhTien","_Fragment","renderBody","donHang","arr","date","NgayNhap","formatDate","khopCongNo","GhiChu","Fragment","MaDonHang","VatLieu","m2","i2","TenVatLieu","ĐVT","SL","DonGia","CongTrinh","renderFooter","ThangConLai","CongNoCu","ConLaiThang","TongCong","SoTien","ConLai","Enums_ThanhToan","Enums_GioiTinh","Enums_DoiTuong","ThueNgoai","KhachHang","NhanVien","CongTy","PhongBang","_Enums_DoiTuongNumber","Enums_PhuongThucChamCong","TheoThang","TheoDuAn","Enums_PhuongThucChamCongNumber","Enums_CongNo","NoCu","TamUng","NoDoiTac","Enums_LoaiNoNumber","DuAnNo","Enums_LoaiNoLabel","Enum_Flag","view","add","edit","delete","Enum_NhomKhoanChis","LuongThoThueNgoai","LuongThoCTy","ChiPhiCuaHang","Report","Service","constructor","path","super","getAll","param","this","SearchAllAUTH","addWithBatch","InsertBatch","update","ID","body","getDataCongNoTongHop","GetAuthen","GetCongNoVatLieuTheoDuAn","PostAuthen","getDataChiTietCongNoCuaHang","getDataCongNoDoiThueNgoai","DotLuongId","getDataTongHopCongNoCuaHang","getDataBangKeChiTiet","getKinhPhiCongTrinh","duAnId","getLoiNhuan","styles","multiValueLabel","padding","fontSize","control","backgroundColor","minHeight","lineHeight","cursor","borderRadius","input","position","marginLeft","marginRight","singleValue","_ref","transform","top","container","width","valueContainer","indicatorsContainer","indicatorContainer","_ref2","setData","useState","valueSnap","setValueSnap","selected","setSelected","isLoading","setIsLoading","getOptionsMulti","useCallback","current","j","getOptionsSingle","setStateSelected","isMulti","loadDataFromApi","valueField","textField","_url","join","callApi2","then","res","forEach","x","obj","catch","error","prevProps","prevState","useEffect","onChange","e","meta","list","isDetail","disabled","isSelected","Select","isDisabled","isClearable","SelectMonth","Component","render","SelectSingle","valueRef","labelRef","defaultProps","Radio","name","checked","attribute","Input","numberCol","valueData","setValueData","Row","Col","md","target","handleChange","id","indexOf","splice","Checkbox","val","renderControl","setPlaceholder","toLowerCase","InputText","Password","TextArea","InputBoolean","InputDate","placeholderText","DropdownListForm2","group_by","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","SelectAsync","loadData","loadOptions","getOptionValue","getOptionLabel","onAdd","SelectMulti","defaultValue","FormControl","onChangeRender","inline","colLabel","colValue","FormGroup","row","Required","Label","maxWidth","lookup","InputSelect","Object","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","list2_join_filter_only_fake","curr","i3","arr_list","arr_list2","text","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","loading","Typography","variant","Skeleton","INITAL_OBJ","Date","getFullYear","TenCuaHang","Index","setDataCondition","isPending","setIsPending","dataReport","setDataReport","congNoCu","setCongNoCu","pre","RenderReport","useMemo","Table","bordered","size","ReportPending","EmptyNoData","checkIdCuaHang","handleGetDataReport","async","ResultObj","ChiTietCongNosEndpoint","NoCu2021","Result","thang","TongTien","sum","curVatLieu","TongNo","newData","m","curNo","TongTraNo","curTraNo","formatData","CHECK_WARNING","handleExportExcel","ExportExcel","Card","CardBody","xs","marginTop","ButtonSave","onClick","color","getData","year","_excluded","propTypes","tag","tagPropType","inverse","PropTypes","outline","cssModule","innerRef","Tag","attributes","_objectWithoutPropertiesLoose","classes","mapToCssModules","classNames","_extends","ref","selectProps","noOptionsMessage","loadingMessage","forwardRef","promiseOptions","inputValue","Promise","resolve","setTimeout","op","hanldeChange","AsyncSelect","defaultOptions","inputId","instanceId","ButtonAdd","memo","borderless","striped","dark","hover","responsive","responsiveTag","ResponsiveTag","table","responsiveClassName","colourStyles","menuPortal","base","zIndex","menu","LoadingIndicator","SpinnerSmall","IndicatorsContainer","components","getStyles","display","ClearIndicator","innerProps","restInnerProps","transition","boxSizing","FontAwesome","fa","verticalAlign","IndicatorSeparator","alignSelf","marginBottom","DropdownIndicator","MenuList","maxHeight","overflowY","state","valueRequire","RefReactSelect","menuPlacement","ReactSelect","classNamePrefix","setState","menuPortalTarget","document","menuPosition","readOnly","tabIndex","autoComplete","opacity","focus","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","content","rect","circle","pulse","wave","overflow","background","concat","action","bottom","left","right","visibility"],"sourceRoot":""}