????
Current Path : C:/inetpub/vhost/xaydung.gdtsolutions.vn/build/static/js/ |
Current File : C:/inetpub/vhost/xaydung.gdtsolutions.vn/build/static/js/3686.ef8abac0.chunk.js.map |
{"version":3,"file":"static/js/3686.ef8abac0.chunk.js","mappings":"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","sources":["../.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/Slide/Slide.js","views/action/defaultEnums.js","views/quan-ly-luong/BangChamCong/Component/TaoDotLuong.js","components/Empty/EmptyNoData.js","components/select/SelectMonth.js","components/select/SelectYear.js","components/skeleton/RenderSkeleton.js","components/dialog/FullScreenDialog.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","../.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/AppBar/AppBar.js","webpack://@qlxd/frontend/./src/views/bao-cao/kinh-phi-cong-trinh/Component/css.scss?3539","components/select/SelectSingle.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/Toolbar/Toolbar.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/styles/createStyles.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/DialogTitle/DialogTitle.js","components/spinners/SpinnerSmall.js","components/select/Select.js","views/quan-ly-luong/BangChamCong/FilterBox.js","views/quan-ly-luong/BangChamCong/BangChamCongDoiThueNgoai/FormChamCongThueNgoai.js","views/quan-ly-luong/BangChamCong/BangChamCongDoiThueNgoai/FormUpdateChamCongThueNgoai.js","views/quan-ly-luong/BangChamCong/BangChamCongDoiThueNgoai/index.js","views/quan-ly-luong/BangChamCong/BangChamCongNhanVien/index.js","views/quan-ly-luong/BangChamCong/BangChamCongDoiCTy/index.js","views/quan-ly-luong/BangChamCong/TableChamCong.js","views/quan-ly-luong/BangChamCong/IndexBangChamCong.js","components/dialog/BodyDialog.js","components/dialog/Dialog.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","views/quan-ly-luong/BangLuong/Component/FormTaoBanLuong.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","components/dialog/HeaderDialog.js","views/bao-cao/kinh-phi-cong-trinh/Component/TableBaoCao/index.js","webpack://@qlxd/frontend/./src/views/quan-ly-luong/BangLuong/Component/css.scss?6024","../.yarn/__virtual__/@material-ui-styles-virtual-df1ea4bf06/6/root/.yarn/berry/cache/@material-ui-styles-npm-4.11.5-1dede414b2-10c0.zip/node_modules/@material-ui/styles/esm/createStyles/createStyles.js"],"sourcesContent":["import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport * as ReactDOM from 'react-dom';\nimport debounce from '../utils/debounce';\nimport { Transition } from 'react-transition-group';\nimport { elementAcceptingRef } from '@material-ui/utils';\nimport useForkRef from '../utils/useForkRef';\nimport useTheme from '../styles/useTheme';\nimport { duration } from '../styles/transitions';\nimport { reflow, getTransitionProps } from '../transitions/utils'; // Translate the node so he can't be seen on the screen.\n// Later, we gonna translate back the node to his original location\n// with `none`.`\n\nfunction getTranslateValue(direction, node) {\n var rect = node.getBoundingClientRect();\n var transform;\n\n if (node.fakeTransform) {\n transform = node.fakeTransform;\n } else {\n var computedStyle = window.getComputedStyle(node);\n transform = computedStyle.getPropertyValue('-webkit-transform') || computedStyle.getPropertyValue('transform');\n }\n\n var offsetX = 0;\n var offsetY = 0;\n\n if (transform && transform !== 'none' && typeof transform === 'string') {\n var transformValues = transform.split('(')[1].split(')')[0].split(',');\n offsetX = parseInt(transformValues[4], 10);\n offsetY = parseInt(transformValues[5], 10);\n }\n\n if (direction === 'left') {\n return \"translateX(\".concat(window.innerWidth, \"px) translateX(\").concat(offsetX - rect.left, \"px)\");\n }\n\n if (direction === 'right') {\n return \"translateX(-\".concat(rect.left + rect.width - offsetX, \"px)\");\n }\n\n if (direction === 'up') {\n return \"translateY(\".concat(window.innerHeight, \"px) translateY(\").concat(offsetY - rect.top, \"px)\");\n } // direction === 'down'\n\n\n return \"translateY(-\".concat(rect.top + rect.height - offsetY, \"px)\");\n}\n\nexport function setTranslateValue(direction, node) {\n var transform = getTranslateValue(direction, node);\n\n if (transform) {\n node.style.webkitTransform = transform;\n node.style.transform = transform;\n }\n}\nvar defaultTimeout = {\n enter: duration.enteringScreen,\n exit: duration.leavingScreen\n};\n/**\n * The Slide transition is used by the [Drawer](/components/drawers/) component.\n * It uses [react-transition-group](https://github.com/reactjs/react-transition-group) internally.\n */\n\nvar Slide = /*#__PURE__*/React.forwardRef(function Slide(props, ref) {\n var children = props.children,\n _props$direction = props.direction,\n direction = _props$direction === void 0 ? 'down' : _props$direction,\n inProp = props.in,\n onEnter = props.onEnter,\n onEntered = props.onEntered,\n onEntering = props.onEntering,\n onExit = props.onExit,\n onExited = props.onExited,\n onExiting = props.onExiting,\n style = props.style,\n _props$timeout = props.timeout,\n timeout = _props$timeout === void 0 ? defaultTimeout : _props$timeout,\n _props$TransitionComp = props.TransitionComponent,\n TransitionComponent = _props$TransitionComp === void 0 ? Transition : _props$TransitionComp,\n other = _objectWithoutProperties(props, [\"children\", \"direction\", \"in\", \"onEnter\", \"onEntered\", \"onEntering\", \"onExit\", \"onExited\", \"onExiting\", \"style\", \"timeout\", \"TransitionComponent\"]);\n\n var theme = useTheme();\n var childrenRef = React.useRef(null);\n /**\n * used in cloneElement(children, { ref: handleRef })\n */\n\n var handleOwnRef = React.useCallback(function (instance) {\n // #StrictMode ready\n childrenRef.current = ReactDOM.findDOMNode(instance);\n }, []);\n var handleRefIntermediary = useForkRef(children.ref, handleOwnRef);\n var handleRef = useForkRef(handleRefIntermediary, ref);\n\n var normalizedTransitionCallback = function normalizedTransitionCallback(callback) {\n return function (isAppearing) {\n if (callback) {\n // onEnterXxx and onExitXxx callbacks have a different arguments.length value.\n if (isAppearing === undefined) {\n callback(childrenRef.current);\n } else {\n callback(childrenRef.current, isAppearing);\n }\n }\n };\n };\n\n var handleEnter = normalizedTransitionCallback(function (node, isAppearing) {\n setTranslateValue(direction, node);\n reflow(node);\n\n if (onEnter) {\n onEnter(node, isAppearing);\n }\n });\n var handleEntering = normalizedTransitionCallback(function (node, isAppearing) {\n var transitionProps = getTransitionProps({\n timeout: timeout,\n style: style\n }, {\n mode: 'enter'\n });\n node.style.webkitTransition = theme.transitions.create('-webkit-transform', _extends({}, transitionProps, {\n easing: theme.transitions.easing.easeOut\n }));\n node.style.transition = theme.transitions.create('transform', _extends({}, transitionProps, {\n easing: theme.transitions.easing.easeOut\n }));\n node.style.webkitTransform = 'none';\n node.style.transform = 'none';\n\n if (onEntering) {\n onEntering(node, isAppearing);\n }\n });\n var handleEntered = normalizedTransitionCallback(onEntered);\n var handleExiting = normalizedTransitionCallback(onExiting);\n var handleExit = normalizedTransitionCallback(function (node) {\n var transitionProps = getTransitionProps({\n timeout: timeout,\n style: style\n }, {\n mode: 'exit'\n });\n node.style.webkitTransition = theme.transitions.create('-webkit-transform', _extends({}, transitionProps, {\n easing: theme.transitions.easing.sharp\n }));\n node.style.transition = theme.transitions.create('transform', _extends({}, transitionProps, {\n easing: theme.transitions.easing.sharp\n }));\n setTranslateValue(direction, node);\n\n if (onExit) {\n onExit(node);\n }\n });\n var handleExited = normalizedTransitionCallback(function (node) {\n // No need for transitions when the component is hidden\n node.style.webkitTransition = '';\n node.style.transition = '';\n\n if (onExited) {\n onExited(node);\n }\n });\n var updatePosition = React.useCallback(function () {\n if (childrenRef.current) {\n setTranslateValue(direction, childrenRef.current);\n }\n }, [direction]);\n React.useEffect(function () {\n // Skip configuration where the position is screen size invariant.\n if (inProp || direction === 'down' || direction === 'right') {\n return undefined;\n }\n\n var handleResize = debounce(function () {\n if (childrenRef.current) {\n setTranslateValue(direction, childrenRef.current);\n }\n });\n window.addEventListener('resize', handleResize);\n return function () {\n handleResize.clear();\n window.removeEventListener('resize', handleResize);\n };\n }, [direction, inProp]);\n React.useEffect(function () {\n if (!inProp) {\n // We need to update the position of the drawer when the direction change and\n // when it's hidden.\n updatePosition();\n }\n }, [inProp, updatePosition]);\n return /*#__PURE__*/React.createElement(TransitionComponent, _extends({\n nodeRef: childrenRef,\n onEnter: handleEnter,\n onEntered: handleEntered,\n onEntering: handleEntering,\n onExit: handleExit,\n onExited: handleExited,\n onExiting: handleExiting,\n appear: true,\n in: inProp,\n timeout: timeout\n }, other), function (state, childProps) {\n return /*#__PURE__*/React.cloneElement(children, _extends({\n ref: handleRef,\n style: _extends({\n visibility: state === 'exited' && !inProp ? 'hidden' : undefined\n }, style, children.props.style)\n }, childProps));\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? Slide.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * A single child content element.\n */\n children: elementAcceptingRef,\n\n /**\n * Direction the child node will enter from.\n */\n direction: PropTypes.oneOf(['down', 'left', 'right', 'up']),\n\n /**\n * If `true`, show the component; triggers the enter or exit animation.\n */\n in: PropTypes.bool,\n\n /**\n * @ignore\n */\n onEnter: PropTypes.func,\n\n /**\n * @ignore\n */\n onEntered: PropTypes.func,\n\n /**\n * @ignore\n */\n onEntering: PropTypes.func,\n\n /**\n * @ignore\n */\n onExit: PropTypes.func,\n\n /**\n * @ignore\n */\n onExited: PropTypes.func,\n\n /**\n * @ignore\n */\n onExiting: PropTypes.func,\n\n /**\n * @ignore\n */\n style: PropTypes.object,\n\n /**\n * The duration for the transition, in milliseconds.\n * You may specify a single timeout for all transitions, or individually with an object.\n */\n timeout: PropTypes.oneOfType([PropTypes.number, PropTypes.shape({\n appear: PropTypes.number,\n enter: PropTypes.number,\n exit: PropTypes.number\n })])\n} : void 0;\nexport default Slide;","// 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, { useCallback, useEffect, useState } from 'react';\nimport { Dialog, DialogContent, DialogTitle } from '@material-ui/core';\nimport { Button, Input } from 'reactstrap';\nimport DatePicker from '../../../../components/base/Input/InputDate';\nimport { CHECK_SUCCESS, CHECK_WARNING } from '../../../../components/alert/Alert';\nimport { DotLuongsEndpoint } from '../../../../service/GDTCores';\nimport SelectYear from '../../../../components/select/SelectYear';\n\nconst getNewDate = (date) => new Date(date).getTime(); // convert date to number\n\nconst areTwoDateTimeRangesOverlapping = (incommingDateTimeRange, existingDateTimeRange) => {\n /**\n * a <= a' <= b || a <= b' <= b\n * Trong đó:\n * - a', b' là từ ngày, đến ngày được nhập vào\n * - a,b là từ ngày đến ngày đã tồn tại trong 1 đợt lương\n */\n const c1 = getNewDate(incommingDateTimeRange.TuNgay) >= getNewDate(existingDateTimeRange.TuNgay) && getNewDate(incommingDateTimeRange.TuNgay) <= getNewDate(existingDateTimeRange.DenNgay);\n const c2 = getNewDate(incommingDateTimeRange.DenNgay) >= getNewDate(existingDateTimeRange.TuNgay) && getNewDate(incommingDateTimeRange.DenNgay) <= getNewDate(existingDateTimeRange.DenNgay);\n return c1 || c2;\n}\n\nconst areManyDateTimeRangesOverlapping = (incommingDateTimeRange, existingDateTimeRanges) => {\n return existingDateTimeRanges.findIndex((existingDateTimeRange) => areTwoDateTimeRangesOverlapping(incommingDateTimeRange, existingDateTimeRange))\n}\n\nexport default function TaoDotLuong({ open, onCancel, lstDotLuong, onReloadTable, dotLuong }) {\n const [reqTenDotLuong, setReqTenDotLuong] = useState(null);\n const [reqTuNgay, setReqTuNgay] = useState(null);\n const [reqDenNgay, setReqDenNgay] = useState(null);\n const [lstDotLuongState, setLstDotLuongState] = useState([]);\n const [nam, setNam] = useState(new Date().getFullYear());\n\n const onSave = () => {\n // kiểm tra đợt không năm đã được tạo chưa?\n const checkDot = lstDotLuongState.findIndex(f => f.Dot === +reqTenDotLuong && (new Date(f.TuNgay).getFullYear() === (new Date(reqTuNgay).getFullYear())));\n // kiểm tra ngày có bị trùng lặp không?\n const checkDateOverlap = areManyDateTimeRangesOverlapping({ TuNgay: reqTuNgay, DenNgay: reqDenNgay }, lstDotLuongState)\n\n if (checkDot !== -1) return CHECK_WARNING('Đợt đã bị trùng, vui lòng kiểm tra lại!');\n if (checkDateOverlap !== -1) return CHECK_WARNING('Đã bị trùng thời gian với đợt khác. Vui lòng chọn lại thời gian!');\n if (reqTuNgay > reqDenNgay) return CHECK_WARNING('Thời gian đã chọn chưa đúng đúng, vui lòng thử lại!');\n\n const req = {\n Dot: +reqTenDotLuong,\n TuNgay: reqTuNgay,\n DenNgay: reqDenNgay,\n Nam: +nam\n }\n\n if (!dotLuong) {\n DotLuongsEndpoint.add(req).then(() => {\n CHECK_SUCCESS('Tạo đợt lương thành công!');\n onReloadTable();\n onCancel();\n })\n } else {\n DotLuongsEndpoint.edit(dotLuong.Id, req).then(() => {\n CHECK_SUCCESS('Cập nhật đợt lương thành công!');\n onReloadTable();\n onCancel();\n })\n }\n }\n\n const cancelTaoDotLuong = () => {\n setNullValue();\n onCancel();\n }\n\n const setNullValue = () => {\n setReqTenDotLuong(null);\n setReqTuNgay(null);\n setReqDenNgay(null);\n }\n\n const removeDotLuongUpdate = useCallback((dotLuong) => {\n /**\n * xóa đợt lương cần sửa trong mảng để check ngày trùng lặp\n */\n const newLstDotLuong = lstDotLuong.filter(f => f.Id !== dotLuong.Id);\n setLstDotLuongState(newLstDotLuong);\n }, [lstDotLuong]);\n\n const selectedNam = (nam) => {\n setNam(nam);\n setReqTuNgay(null);\n setReqDenNgay(null);\n }\n\n useEffect(() => {\n if (!open) return;\n if (!dotLuong) {\n setLstDotLuongState(lstDotLuong);\n setNullValue();\n } else {\n setReqTenDotLuong(dotLuong.Dot);\n setReqTuNgay(dotLuong.TuNgay);\n setReqDenNgay(dotLuong.DenNgay);\n removeDotLuongUpdate(dotLuong);\n }\n }, [dotLuong, lstDotLuong, open, removeDotLuongUpdate]);\n\n const handleChangeDotLuong = useCallback((e) => {\n const value = e.target.value;\n if (+value < 0) {\n setReqTenDotLuong('')\n } else {\n setReqTenDotLuong(value)\n }\n }, [])\n\n return (\n <div className=\"index-tao-dot-luong\">\n <Dialog\n onClose={onCancel}\n aria-labelledby=\"simple-dialog-title\"\n open={open}\n disableBackdropClick\n disableEscapeKeyDown\n maxWidth=\"sm\"\n >\n <DialogTitle\n style={{\n padding: '5px 24px',\n border: '1px solid #ccc'\n }}\n id=\"simple-dialog-title\">\n {!dotLuong ? 'Tạo mới đợt lương' : 'Cập nhật đợt lương'}\n </DialogTitle>\n\n <DialogContent>\n <div style={{ paddingBottom: '5px', minWidth: '250px' }}>\n <div className=\"d-flex align-items-center justify-content-between\" >\n <span>Đợt:</span> <span style={{ fontSize: 10, color: 'red' }}>Vui lòng không nhập số âm</span>\n </div>\n <Input\n min='0'\n type=\"number\"\n name=\"tenDotLuong\"\n id=\"tenDotLuong\"\n placeholder=\"Nhập đợt lương...\"\n value={reqTenDotLuong}\n onChange={(e) => handleChangeDotLuong(e)}\n />\n </div>\n\n <div style={{ paddingBottom: '5px' }}>\n <span>Năm:</span>\n <SelectYear\n value={nam}\n onChange={(e) => selectedNam(e.value)}\n >\n </SelectYear>\n </div>\n\n {\n <>\n <div style={{ paddingBottom: '5px' }}>\n <span>Từ ngày:</span>\n <DatePicker\n value={reqTuNgay}\n onChange={(e) => { setReqTuNgay(e) }}\n placeholder=\"Chọn thời gian\"\n name=\"tuNgay\"\n minDate={new Date(`${nam}/1/1`)}\n maxDate={new Date(`${nam}/12/31`)}\n />\n </div>\n\n <div style={{ paddingBottom: '5px' }}>\n <span>Đến ngày:</span>\n <DatePicker\n value={reqDenNgay}\n onChange={(e) => { setReqDenNgay(e) }}\n placeholder=\"Chọn thời gian\"\n name=\"denNgay\"\n minDate={new Date(`${nam}/1/1`)}\n maxDate={new Date(`${nam}/12/31`)}\n />\n </div>\n </>\n }\n\n <div style={{ display: 'flex', justifyContent: 'flex-end', paddingTop: '10px' }}>\n <Button style={{ marginRight: 10 }} color=\"primary\" onClick={onSave}>Xác nhận</Button>\n <Button onClick={cancelTaoDotLuong}>Hủy</Button>\n </div>\n </DialogContent>\n </Dialog>\n </div>\n )\n}\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, { 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, { 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 { Skeleton } from '@material-ui/lab';\nimport React from 'react';\n/**\n * @param occurrences The number Skeleton appears (default 1)\n * @param width Default null\n * @param height Default 5\n * @returns Skeletons\n */\n\nfunction RenderSkeletons({ occurrences = 1, width, height = 5 }) {\n return <div>\n {\n Array.from(new Array(occurrences).keys()).map(k =>\n <Skeleton\n variant=\"text\"\n key={k}\n width={width ? width : null}\n height={height}\n />\n )\n }\n </div>\n}\n\nexport default RenderSkeletons","import React from 'react';\nimport Dialog from './Dialog';\nimport HeaderDialog from './HeaderDialog';\nimport BodyDialog from './BodyDialog';\n\nexport default function FullScreenDialog(props) {\n const { renderCustom, renderButton, children, title, onClose, open, style, className } = props;\n return (\n <Dialog open={open} onClose={onClose} style={style} className={className}>\n <HeaderDialog renderCustom={renderCustom} renderButton={renderButton} title={title} onClose={onClose} />\n <BodyDialog>{children}</BodyDialog>\n </Dialog>\n );\n}\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 _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport withStyles from '../styles/withStyles';\nimport capitalize from '../utils/capitalize';\nimport Paper from '../Paper';\nexport var styles = function styles(theme) {\n var backgroundColorDefault = theme.palette.type === 'light' ? theme.palette.grey[100] : theme.palette.grey[900];\n return {\n /* Styles applied to the root element. */\n root: {\n display: 'flex',\n flexDirection: 'column',\n width: '100%',\n boxSizing: 'border-box',\n // Prevent padding issue with the Modal and fixed positioned AppBar.\n zIndex: theme.zIndex.appBar,\n flexShrink: 0\n },\n\n /* Styles applied to the root element if `position=\"fixed\"`. */\n positionFixed: {\n position: 'fixed',\n top: 0,\n left: 'auto',\n right: 0,\n '@media print': {\n // Prevent the app bar to be visible on each printed page.\n position: 'absolute'\n }\n },\n\n /* Styles applied to the root element if `position=\"absolute\"`. */\n positionAbsolute: {\n position: 'absolute',\n top: 0,\n left: 'auto',\n right: 0\n },\n\n /* Styles applied to the root element if `position=\"sticky\"`. */\n positionSticky: {\n // ⚠️ sticky is not supported by IE 11.\n position: 'sticky',\n top: 0,\n left: 'auto',\n right: 0\n },\n\n /* Styles applied to the root element if `position=\"static\"`. */\n positionStatic: {\n position: 'static'\n },\n\n /* Styles applied to the root element if `position=\"relative\"`. */\n positionRelative: {\n position: 'relative'\n },\n\n /* Styles applied to the root element if `color=\"default\"`. */\n colorDefault: {\n backgroundColor: backgroundColorDefault,\n color: theme.palette.getContrastText(backgroundColorDefault)\n },\n\n /* Styles applied to the root element if `color=\"primary\"`. */\n colorPrimary: {\n backgroundColor: theme.palette.primary.main,\n color: theme.palette.primary.contrastText\n },\n\n /* Styles applied to the root element if `color=\"secondary\"`. */\n colorSecondary: {\n backgroundColor: theme.palette.secondary.main,\n color: theme.palette.secondary.contrastText\n },\n\n /* Styles applied to the root element if `color=\"inherit\"`. */\n colorInherit: {\n color: 'inherit'\n },\n\n /* Styles applied to the root element if `color=\"transparent\"`. */\n colorTransparent: {\n backgroundColor: 'transparent',\n color: 'inherit'\n }\n };\n};\nvar AppBar = /*#__PURE__*/React.forwardRef(function AppBar(props, ref) {\n var classes = props.classes,\n className = props.className,\n _props$color = props.color,\n color = _props$color === void 0 ? 'primary' : _props$color,\n _props$position = props.position,\n position = _props$position === void 0 ? 'fixed' : _props$position,\n other = _objectWithoutProperties(props, [\"classes\", \"className\", \"color\", \"position\"]);\n\n return /*#__PURE__*/React.createElement(Paper, _extends({\n square: true,\n component: \"header\",\n elevation: 4,\n className: clsx(classes.root, classes[\"position\".concat(capitalize(position))], classes[\"color\".concat(capitalize(color))], className, position === 'fixed' && 'mui-fixed'),\n ref: ref\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? AppBar.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content of the component.\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,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The color of the component. It supports those theme colors that make sense for this component.\n */\n color: PropTypes.oneOf(['default', 'inherit', 'primary', 'secondary', 'transparent']),\n\n /**\n * The positioning type. The behavior of the different options is described\n * [in the MDN web docs](https://developer.mozilla.org/en-US/docs/Learn/CSS/CSS_layout/Positioning).\n * Note: `sticky` is not universally supported and will fall back to `static` when unavailable.\n */\n position: PropTypes.oneOf(['absolute', 'fixed', 'relative', 'static', 'sticky'])\n} : void 0;\nexport default withStyles(styles, {\n name: 'MuiAppBar'\n})(AppBar);","// extracted by mini-css-extract-plugin\nexport default {};","import React, { Component } from 'react';\nimport Select from './Select';\n\nclass SelectSingle extends Component {\n render() {\n const {\n name, disabled, options, placeholder, onChange, valueRef, labelRef, value,\n onMenuScrollToBottom, isLoading, onInputChange, onMenuOpen, onMenuClose, isClearable,\n menuPlacement\n } = this.props;\n\n const filterOption = (e) => e && e.map(k => {\n k.value = k[valueRef];\n k.label = k[labelRef];\n return k;\n });\n\n const values = filterOption(options);\n\n const select = value === null || value === '' ? null : values.filter(e => e.value === value)\n return (\n <Select\n menuPlacement={menuPlacement}\n isDisabled={disabled}\n className=\"basic-single\"\n name={name}\n value={select}\n defaultValue={select}\n isClearable={isClearable}\n isSearchable\n options={values}\n placeholder={placeholder}\n onChange={(e, meta) => onChange(e, meta)}\n onMenuScrollToBottom={onMenuScrollToBottom}\n isLoading={isLoading}\n onInputChange={onInputChange}\n onMenuOpen={onMenuOpen}\n onMenuClose={onMenuClose}\n // menuScrollIntoViewElement={menuScrollIntoViewElement}\n />\n );\n }\n};\n\nSelectSingle.propTypes = {\n\n};\n\nSelectSingle.defaultProps = {\n placeholder: 'Chọn...'\n};\n\nexport default SelectSingle;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport withStyles from '../styles/withStyles';\nexport var styles = function styles(theme) {\n return {\n /* Styles applied to the root element. */\n root: {\n position: 'relative',\n display: 'flex',\n alignItems: 'center'\n },\n\n /* Styles applied to the root element if `disableGutters={false}`. */\n gutters: _defineProperty({\n paddingLeft: theme.spacing(2),\n paddingRight: theme.spacing(2)\n }, theme.breakpoints.up('sm'), {\n paddingLeft: theme.spacing(3),\n paddingRight: theme.spacing(3)\n }),\n\n /* Styles applied to the root element if `variant=\"regular\"`. */\n regular: theme.mixins.toolbar,\n\n /* Styles applied to the root element if `variant=\"dense\"`. */\n dense: {\n minHeight: 48\n }\n };\n};\nvar Toolbar = /*#__PURE__*/React.forwardRef(function Toolbar(props, ref) {\n var classes = props.classes,\n className = props.className,\n _props$component = props.component,\n Component = _props$component === void 0 ? 'div' : _props$component,\n _props$disableGutters = props.disableGutters,\n disableGutters = _props$disableGutters === void 0 ? false : _props$disableGutters,\n _props$variant = props.variant,\n variant = _props$variant === void 0 ? 'regular' : _props$variant,\n other = _objectWithoutProperties(props, [\"classes\", \"className\", \"component\", \"disableGutters\", \"variant\"]);\n\n return /*#__PURE__*/React.createElement(Component, _extends({\n className: clsx(classes.root, classes[variant], className, !disableGutters && classes.gutters),\n ref: ref\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? Toolbar.propTypes = {\n /**\n * Toolbar children, usually a mixture of `IconButton`, `Button` and `Typography`.\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 * If `true`, disables gutter padding.\n */\n disableGutters: PropTypes.bool,\n\n /**\n * The variant to use.\n */\n variant: PropTypes.oneOf(['regular', 'dense'])\n} : void 0;\nexport default withStyles(styles, {\n name: 'MuiToolbar'\n})(Toolbar);","import { createStyles as createStylesOriginal } from '@material-ui/styles'; // let warnOnce = false;\n// To remove in v5\n\nexport default function createStyles(styles) {\n // warning(\n // warnOnce,\n // [\n // 'Material-UI: createStyles from @material-ui/core/styles is deprecated.',\n // 'Please use @material-ui/styles/createStyles',\n // ].join('\\n'),\n // );\n // warnOnce = true;\n return createStylesOriginal(styles);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport withStyles from '../styles/withStyles';\nimport Typography from '../Typography';\nexport var styles = {\n /* Styles applied to the root element. */\n root: {\n margin: 0,\n padding: '16px 24px',\n flex: '0 0 auto'\n }\n};\nvar DialogTitle = /*#__PURE__*/React.forwardRef(function DialogTitle(props, ref) {\n var children = props.children,\n classes = props.classes,\n className = props.className,\n _props$disableTypogra = props.disableTypography,\n disableTypography = _props$disableTypogra === void 0 ? false : _props$disableTypogra,\n other = _objectWithoutProperties(props, [\"children\", \"classes\", \"className\", \"disableTypography\"]);\n\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n className: clsx(classes.root, className),\n ref: ref\n }, other), disableTypography ? children : /*#__PURE__*/React.createElement(Typography, {\n component: \"h2\",\n variant: \"h6\"\n }, children));\n});\nprocess.env.NODE_ENV !== \"production\" ? DialogTitle.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content of the component.\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,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * If `true`, the children won't be wrapped by a typography component.\n * For instance, this can be useful to render an h4 instead of the default h2.\n */\n disableTypography: PropTypes.bool\n} : void 0;\nexport default withStyles(styles, {\n name: 'MuiDialogTitle'\n})(DialogTitle);","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, useEffect, useCallback } from 'react';\n// import SelectMultiCheck from './Component/SelectMultiCheck';\nimport './css.scss';\nimport { Button } from 'reactstrap';\nimport Select from 'react-select';\nimport { DotLuongsEndpoint, DuAnDoiThueNgoaiEndpoint } from '../../../service/GDTCores';\n// import { FormControl, FormControlLabel, Radio, RadioGroup } from '@material-ui/core';\nimport { CHECK_WARNING } from '../../../components/alert/Alert';\nimport SelectYear from '../../../components/select/SelectYear';\nimport SelectMonth from '../../../components/select/SelectMonth';\nimport { _Enums_DoiTuong } from '../../action/defaultEnums';\nimport { formatTime } from '../../bao-cao/kinh-phi-cong-trinh/Component/TableBaoCao';\nimport TaoDotLuong from './Component/TaoDotLuong';\n// import { format } from 'date-fns';\n\n// const findValueSelect = (arr, label) => arr.find(f => f.Name === label)\nconst getPlaceholder = (label) => <div style={{ fontSize: '13px' }}>{label}</div>\n\nconst LstDoiTuong = [\n { value: 'PhongBan', label: 'Phòng ban' },\n { value: 'CongTy', label: 'Công ty' },\n { value: 'ThueNgoai', label: 'Thuê ngoài' },\n]\n\nfunction FilterBox({ onFilter }) {\n const [_duAnSelected, setDuAnSelected] = useState(null);\n const [year, setYear] = useState(new Date().getFullYear());\n const [month, setMonth] = useState(null);\n const [day, setDay] = useState(null);\n const [denNgay, setDenNgay] = useState(null);\n const [tuNgay, setTuNgay] = useState(null);\n const [doiTuong, setDoiTuong] = useState(LstDoiTuong[0]);\n const [lstDoi, setLstDoi] = useState([]);\n const [selectedDoi, setSelectedDoi] = useState(null);\n const [isTaoDotLuong, setIsTaoDotLuong] = useState(false);\n const [dotLuong, setDotLuong] = useState(null);\n const [lstDotLuong, setLstDotLuong] = useState([]);\n const [lstDuAn, setLstDuAnDoiThueNgoai] = useState([])\n\n const onSelected = (selected) => {\n if (!selected) {\n setDuAnSelected(null);\n return;\n }\n setDuAnSelected(selected);\n }\n\n const onSelectedDuAn = (selected) => {\n if (!selected) {\n setDuAnSelected(null);\n return;\n }\n setDuAnSelected(selected);\n setSelectedDoi(null);\n setLstDoi(selected.Organs);\n }\n\n const selectedDoiTuong = (value) => {\n setDoiTuong(value)\n setMonth(null);\n setYear(new Date().getFullYear());\n setDuAnSelected(null);\n if (value.value === _Enums_DoiTuong.ThueNgoai || value.value === _Enums_DoiTuong.CongTy) {\n if (value.value === _Enums_DoiTuong.ThueNgoai) loadLstDotLuong();\n loadLstDuAnDoiThueNgoai(value, year);\n }\n }\n\n const loadLstDuAnDoiThueNgoai = (doiTuong, _year) => {\n const param = {\n filter: `$filter=Organization/Status eq true and Organization/DoiTuong eq '${doiTuong.value}' and DuAn/Status eq true`,\n expand: `$expand=Organization($select=Id,OrganName,LuongTheoNgayCong),DuAn($select=Id,Name,BatDau)`\n }\n DuAnDoiThueNgoaiEndpoint.getAll(`?${param.filter}&${param.expand}`)\n .then(({ value }) => {\n let newArr = [];\n for (let elm of value) {\n const indexElm = newArr.findIndex(f => f.DuAnId === elm.DuAnId);\n if (indexElm === -1) {\n newArr.push({\n DuAnId: elm.DuAnId,\n TenDuAn: elm.DuAn.Name,\n Organs: [{\n OrganId: elm.OrganId,\n OrganName: elm.Organization.OrganName,\n LuongTheoNgayCong: elm.Organization.LuongTheoNgayCong\n }]\n });\n } else {\n newArr[indexElm].Organs.push({\n OrganId: elm.OrganId,\n OrganName: elm.Organization.OrganName,\n LuongTheoNgayCong: elm.Organization.LuongTheoNgayCong\n })\n }\n }\n setLstDuAnDoiThueNgoai(newArr);\n })\n }\n\n const loadLstDotLuong = useCallback(() => {\n DotLuongsEndpoint.getAll(`?$select=Id,TuNgay,DenNgay,Dot&$filter=Status eq true`).then(({ value }) => {\n const arr = [];\n for (let item of value) {\n arr.push({\n Id: item.Id,\n TenDot: `Đợt ${item.Dot}( ${formatTime(item.TuNgay)} - ${formatTime(item.DenNgay)} )`,\n TuNgay: item.TuNgay,\n DenNgay: item.DenNgay,\n Dot: item.Dot\n })\n }\n setLstDotLuong(arr)\n })\n }, []);\n\n const handleFilter = () => {\n if (doiTuong.value === _Enums_DoiTuong.PhongBang) {\n if (!month) return CHECK_WARNING('Bạn chưa chọn tháng, vui lòng thử lại!');\n if (!year) return CHECK_WARNING('Bạn chưa chọn năm, vui lòng thử lại!');\n return onFilter({\n duAnSelected: [],\n organization: doiTuong.value,\n thang: month,\n nam: year\n });\n }\n if (doiTuong.value === _Enums_DoiTuong.ThueNgoai) {\n const _tuNgay = (new Date(tuNgay));\n const _denNgay = new Date(denNgay);\n // const checkNgayTrongLstCong = lstChamCongOld.findIndex(f => (new Date(f.DenNgay)) < _tuNgay);\n if (!dotLuong) return CHECK_WARNING('Bạn chưa chọn đợt thanh toán lương, vui lòng thử lại!');\n if (!_tuNgay) return CHECK_WARNING('Thời gian từ ngày chưa đúng, vui lòng kiểm tra lại!');\n if (_tuNgay > _denNgay) return CHECK_WARNING('Thời gian từ ngày phải nhỏ hơn thời gian đến ngày!');\n if (_tuNgay < (new Date(dotLuong.TuNgay)) || _denNgay > (new Date(dotLuong?.DenNgay))) {\n return CHECK_WARNING(`Thời gian phải nằm trong khoảng từ ngày ${formatTime(dotLuong?.TuNgay)} đến ${formatTime(dotLuong.DenNgay)}`)\n }\n // if (checkNgayTrongLstCong !== -1) return CHECK_WARNING(`Bạn phải chọn thời gian lớn hơn ngày ${_tuNgay}`)\n if (!_denNgay) return CHECK_WARNING('Thời gian đến ngày chưa đúng, vui lòng kiểm tra lại!');\n if (!_duAnSelected) return CHECK_WARNING('Bạn chưa chọn dự án, vui lòng thử lại!');\n if (!selectedDoi) return CHECK_WARNING('Bạn chưa chọn đội, vui lòng thử lại!');\n\n return onFilter({\n duAnSelected: _duAnSelected.DuAnId,\n organization: doiTuong.value,\n selectedDoi: selectedDoi,\n dotLuong: dotLuong,\n ngay: day,\n thang: month + 1,\n nam: year,\n denNgay: _denNgay\n })\n }\n if (doiTuong.value === _Enums_DoiTuong.CongTy) {\n if (!month) return CHECK_WARNING('Bạn chưa chọn tháng, vui lòng thử lại!');\n if (!year) return CHECK_WARNING('Bạn chưa chọn năm, vui lòng thử lại!');\n if (!_duAnSelected) return CHECK_WARNING('Bạn chưa chọn dự án, vui lòng thử lại!');\n\n return onFilter({\n duAnSelected: _duAnSelected.DuAnId,\n organization: doiTuong.value,\n thang: month,\n nam: year\n });\n }\n }\n\n const selectedDotLuong = (selected) => {\n setDotLuong(selected);\n setTuNgay(new Date(selected.TuNgay));\n const ngay = new Date(selected.TuNgay).getDate();\n const thang = new Date(selected.TuNgay).getMonth();\n const nam = new Date(selected.TuNgay).getFullYear();\n setDay(ngay);\n setMonth(thang);\n setYear(nam);\n setDenNgay(new Date(selected.DenNgay));\n setDuAnSelected(null);\n setSelectedDoi(null);\n }\n\n useEffect(() => {\n loadLstDotLuong();\n }, [loadLstDotLuong])\n\n return (\n <div className=\"index-filter-box\">\n <div className=\"header-bcc__items\">\n <span className=\"header-bcc__items--title\">Đối tượng *</span>\n <Select\n name='doiTuong'\n options={LstDoiTuong}\n menuPosition={'fixed'}\n className=\"cus-select\"\n placeholder={getPlaceholder('Chọn đối tượng...')}\n onChange={(selected) => selectedDoiTuong(selected)}\n getOptionValue={option => option}\n value={LstDoiTuong.find(f => f.value === doiTuong?.value) || null}\n getOptionLabel={option => option.label}\n />\n </div>\n\n {(doiTuong.value === _Enums_DoiTuong.PhongBang || doiTuong.value === _Enums_DoiTuong.CongTy)\n && <>\n <div className=\"header-bcc__items\">\n <span className=\"header-bcc__items--title\">Chấm công tháng *</span>\n <div style={{ display: 'flex', justifyContent: 'space-between' }}>\n <div style={{ width: '47%' }}>\n <SelectMonth\n value={month}\n onChange={(selected) => { setMonth(selected.value) }}\n placeholder={'Chọn tháng...'}\n />\n </div>\n\n <div style={{ width: '47%' }}>\n <SelectYear\n value={year}\n onChange={(selected) => { setYear(selected.value); loadLstDuAnDoiThueNgoai(doiTuong, selected.value) }}\n placeholder={'Chọn năm...'}\n />\n </div>\n </div>\n </div>\n </>\n }\n\n {\n doiTuong.value === _Enums_DoiTuong.ThueNgoai &&\n <>\n <div className=\"header-bcc__items\">\n <span className=\"header-bcc__items--title\">Đợt lương *</span>\n <div style={{ display: 'flex', width: '100%', justifyContent: 'space-between' }}>\n <div style={{ width: '82%' }}>\n <Select\n name='dotLuong'\n options={lstDotLuong}\n menuPosition={'fixed'}\n className=\"cus-select\"\n placeholder={getPlaceholder('Chọn đợt lương...')}\n onChange={(selected) => { selectedDotLuong(selected) }}\n getOptionValue={option => option}\n value={lstDotLuong.find(f => f.Id === dotLuong?.Id) || null}\n getOptionLabel={option => option.TenDot}\n />\n </div>\n <div style={{ width: '16%', display: 'flex' }}>\n <Button color=\"info\" onClick={() => setIsTaoDotLuong(true)} ><i class=\"fas fa-plus\"></i></Button>\n </div>\n </div>\n </div>\n </>\n }\n\n {\n doiTuong.value !== _Enums_DoiTuong.PhongBang &&\n <>\n <div className=\"header-bcc__items\">\n <span className=\"header-bcc__items--title\">Dự án *</span>\n {\n doiTuong.value === _Enums_DoiTuong.ThueNgoai ?\n <>\n <Select\n name='duAn'\n options={lstDuAn}\n menuPosition={'fixed'}\n className=\"cus-select\"\n placeholder={getPlaceholder('Chọn dự án...')}\n onChange={(selected) => onSelectedDuAn(selected)}\n getOptionValue={option => option}\n getOptionLabel={option => option.TenDuAn}\n value={_duAnSelected}\n />\n\n <div className=\"mt-2\">\n <span>Danh sách đội *</span>\n <Select\n value={selectedDoi}\n menuPosition={'fixed'}\n options={lstDoi}\n onChange={(selected) => setSelectedDoi(selected)}\n getOptionValue={option => option}\n getOptionLabel={option => option.OrganName}\n />\n </div>\n </>\n :\n <Select\n menuPosition={'fixed'}\n options={lstDuAn}\n onChange={(selected) => onSelected(selected)}\n getOptionValue={option => option}\n getOptionLabel={option => option.TenDuAn}\n />\n }\n </div>\n </>\n }\n\n <div>\n <Button color=\"primary\" onClick={() => handleFilter()} >Lọc</Button>\n </div>\n\n {\n <TaoDotLuong\n open={isTaoDotLuong}\n onCancel={() => setIsTaoDotLuong(false)}\n onReloadTable={loadLstDotLuong}\n lstDotLuong={lstDotLuong}\n />\n }\n </div >\n )\n}\n\nexport default FilterBox\n\n","import React, { useEffect, useState } from 'react';\nimport Select from 'react-select';\nimport { Button, Input } from 'reactstrap';\nimport { Dialog, DialogContent, DialogTitle } from '@material-ui/core';\nimport { CHECK_ERROR, CHECK_SUCCESS, CHECK_WARNING } from '../../../../components/alert/Alert';\nimport { BangLuongEndpoint, KhoanChisEndpoint } from '../../../../service/GDTCores';\nimport { formatTime } from '../../../bao-cao/kinh-phi-cong-trinh/Component/TableBaoCao';\nimport DatePicker from '../../../../components/base/Input/InputDate';\nimport NumberFormat from '../../../../components/numberformat/NumberFormat';\n\nconst getPlaceholder = (label) => <div style={{ fontSize: '13px' }}>{label}</div>\nconst DMKhoanChiId = '94C2BEE5-9865-4025-9A18-02008B31FDDB';\n\nexport default function FormChamCongThueNgoai({\n open, onCancel, selectedDoi, PhuongThucChamCong,\n dotLuong, duAnId, reloadTable, doiUpdate\n}) {\n\n const [phuongThuc, setPhuongThuc] = useState(PhuongThucChamCong['ChuaXacDinh']);\n const [lamTron, setLamTron] = useState(null);\n const [soCong, setSoCong] = useState(null);\n const [year, setYear] = useState(null);\n const [month, setMonth] = useState(null);\n const [day, setDay] = useState(null);\n const [tuNgay, setTuNgay] = useState(null);\n const [noiDung, setNoiDung] = useState(null);\n const [donGiaLuong, setDonGiaLuong] = useState(null);\n\n const selectPhuongThuc = (value) => {\n setPhuongThuc(value);\n setLamTron(0);\n setSoCong(0);\n setNoiDung('');\n }\n\n const setThoiGianTuNgay = (date) => {\n const newDate = new Date(date);\n if (newDate < (new Date(dotLuong.TuNgay)) || newDate > (new Date(dotLuong.DenNgay))) {\n setTuNgay('');\n return CHECK_WARNING(`Thời gian phải nằm trong khoảng ${formatTime(dotLuong.TuNgay)} đến ${formatTime(dotLuong.DenNgay)} `)\n }\n const ngay = newDate.getDate();\n const thang = newDate.getMonth();\n const nam = newDate.getFullYear();\n setDay(ngay);\n setMonth(thang);\n setYear(nam);\n setTuNgay(date);\n }\n\n const handleChangeSoCong = (value) => {\n if (phuongThuc.value === null) {\n setSoCong(null)\n return CHECK_WARNING('Bạn chưa chọn phương thức tính công!');\n }\n if (phuongThuc.value) {\n setSoCong(value);\n setLamTron(value);\n } else {\n setLamTron(null);\n setSoCong(value);\n }\n }\n\n const onSaveSoCong = () => {\n if (phuongThuc.value === null) return CHECK_WARNING('Bạn chưa chọn phương thức chấm công!');\n if (!tuNgay) return CHECK_WARNING('Thời gian bạn chọn chưa đúng!');\n if (!soCong) return CHECK_WARNING('Bạn chưa nhập số công!');\n\n const reqKhoanChi = {\n ThoiGian: new Date(year, month, day),\n DuAnId: duAnId,\n NoiDung: noiDung,\n KhoiLuong: +soCong,\n DonGia: +donGiaLuong,\n TienThanhToan: phuongThuc.value ? (+donGiaLuong * +lamTron) : (+donGiaLuong * +soCong),\n OrganId: selectedDoi.OrganId,\n DMKhoanChiId: DMKhoanChiId\n };\n KhoanChisEndpoint.add(reqKhoanChi)\n .then(({ ResultObj }) => {\n const req = {\n NgayCong: +ResultObj.KhoiLuong,\n LamTron: phuongThuc.value ? ((lamTron || +lamTron !== 0) ? +lamTron : +soCong) : 0,\n Ngay: day,\n Thang: month + 1,\n Nam: year,\n OrganId: selectedDoi.OrganId,\n IsKhoiLuong: phuongThuc.value,\n DotLuongId: dotLuong.Id,\n DuAnId: duAnId,\n LuongTheoNgayCong: +donGiaLuong,\n TongLuong: phuongThuc.value ? (+donGiaLuong * +lamTron) : (+donGiaLuong * +soCong),\n ThucNhan: phuongThuc.value ? (+donGiaLuong * +lamTron) : (+donGiaLuong * +soCong),\n Name: noiDung,\n IsComplete: true,\n KhoanChiId: ResultObj.Id,\n LoaiChamCong: phuongThuc.id\n };\n BangLuongEndpoint.add(req)\n .then(() => {\n CHECK_SUCCESS('Thành công!');\n reloadTable();\n onCancel();\n })\n .catch(() => {\n CHECK_ERROR('Đã xảy ra lỗi!');\n KhoanChisEndpoint.deleteKhoanChi(ResultObj.Id)\n })\n });\n }\n\n useEffect(() => {\n if (!open) return;\n setDonGiaLuong(selectedDoi.LuongTheoNgayCong);\n }, [doiUpdate, open, selectedDoi, selectedDoi.LuongTheoNgayCong])\n\n return (\n <div className=\"form-dot-luong\">\n <Dialog\n onClose={onCancel}\n aria-labelledby=\"simple-dialog-title\"\n open={open}\n disableBackdropClick\n disableEscapeKeyDown\n maxWidth=\"xs\"\n >\n <DialogTitle\n style={{\n padding: '5px 24px',\n border: '1px solid #ccc'\n }}>\n {`Chấm công cho đội ${selectedDoi.OrganName}`}\n </DialogTitle>\n\n <DialogContent>\n <div style={{ paddingBottom: '5px' }}>\n <span>Chấm công theo: <span style={{ color: 'red' }}>*</span></span>\n <Select\n name='phuongThucChamCong'\n options={PhuongThucChamCong}\n menuPosition={'fixed'}\n className=\"cus-select\"\n placeholder={getPlaceholder('Chấm công theo...')}\n onChange={(selected) => { selectPhuongThuc(selected) }}\n getOptionValue={option => option}\n value={PhuongThucChamCong?.find(f => f.id === phuongThuc?.id) || null}\n getOptionLabel={option => option.label}\n />\n </div>\n\n <div style={{ paddingBottom: '5px' }}>\n <span>Thời gian: <span style={{ color: 'red' }}>*</span></span>\n <DatePicker\n onChange={(e) => { setThoiGianTuNgay(e) }}\n placeholder=\"Thời gian ứng\"\n name=\"thoiGian\"\n defaultValue={tuNgay}\n />\n </div>\n\n <div style={{ paddingBottom: '5px' }}>\n <span>Nội dung:</span>\n <Input\n className=\"input-cong\"\n type=\"text\" placeholder=\"Nhập nội dung...\"\n onChange={(e) => setNoiDung(e.target.value)}\n defaultValue={noiDung}\n />\n </div>\n\n {\n phuongThuc?.value !== null &&\n <div style={{ paddingBottom: '5px' }}>\n <span>{(phuongThuc?.id === 6 || phuongThuc?.id === 7) ? 'Số lượng' : 'Số công:'}<span style={{ color: 'red' }}>*</span></span>\n <Input\n className=\"input-cong\"\n type=\"number\" placeholder=\"Nhập...\"\n onChange={(e) => handleChangeSoCong(e.target.value)}\n defaultValue={soCong}\n />\n </div>\n }\n\n {\n (phuongThuc?.id === 3 || phuongThuc?.id === 5)\n ?\n <div style={{ paddingBottom: '5px' }}>\n <span>Làm tròn: <span style={{ color: 'red' }}>*</span></span>\n <Input\n className=\"input-cong\"\n type=\"number\" placeholder=\"Nhập...\"\n onChange={(e) => setLamTron(e.target.value)}\n defaultValue={lamTron}\n />\n </div>\n : <> </>\n }\n\n <div style={{ paddingBottom: '5px' }}>\n <span>{(phuongThuc?.id === 6 || phuongThuc?.id === 7) ? 'Đơn giá ( VNĐ )' : phuongThuc?.id === 5 ? 'Đơn giá theo Ngày/md ( VNĐ ):' : 'Đơn giá theo Ngày/m2 ( VNĐ ): '}<span style={{ color: 'red' }}>*</span></span>\n <NumberFormat\n onValueChange={(e) => { setDonGiaLuong(e.values.value) }}\n value={donGiaLuong}\n />\n </div>\n\n <div style={{ display: 'flex', justifyContent: 'flex-end', paddingTop: '10px' }}>\n <Button style={{ marginRight: 10 }} color=\"primary\" onClick={onSaveSoCong}>Xác nhận</Button>\n <Button onClick={onCancel}>Hủy</Button>\n </div>\n </DialogContent>\n </Dialog>\n </div>\n )\n}\n","import React, { memo, useEffect, useState } from 'react';\nimport Select from 'react-select';\nimport { Button, Input } from 'reactstrap';\nimport { Dialog, DialogContent, DialogTitle } from '@material-ui/core';\nimport { CHECK_ERROR, CHECK_SUCCESS, CHECK_WARNING } from '../../../../components/alert/Alert';\nimport { BangLuongEndpoint, KhoanChisEndpoint } from '../../../../service/GDTCores';\nimport { formatTime } from '../../../bao-cao/kinh-phi-cong-trinh/Component/TableBaoCao';\nimport DatePicker from '../../../../components/base/Input/InputDate';\nimport NumberFormat from '../../../../components/numberformat/NumberFormat';\n\nconst getPlaceholder = (label) => <div style={{ fontSize: '13px' }}>{label}</div>\n\nconst initialData = {\n IsKhoiLuong: null,\n Name: '',\n Ngay: null,\n Thang: null,\n Nam: null,\n NgayCong: 0,\n LamTron: 0,\n LuongTheoNgayCong: 0,\n ThucNhan: 0\n}\n\nfunction FormUpdateChamCongThueNgoai({\n open, onCancel, selectedDoi, PhuongThucChamCong,\n dotLuong, reloadTable, doiUpdate\n}) {\n const [phuongThuc, setPhuongThuc] = useState(PhuongThucChamCong['ChuaXacDinh']);\n const [stateDoiUpdate, setStateDoiUpdate] = useState(initialData);\n\n const selectPhuongThuc = (value) => {\n setPhuongThuc(value);\n setStateDoiUpdate(pre => ({ ...pre, ...initialData }));\n }\n\n const setThoiGianTuNgay = (date) => {\n const newDate = new Date(date);\n if (newDate < (new Date(dotLuong.TuNgay)) || newDate > (new Date(dotLuong.DenNgay))) {\n setStateDoiUpdate(prev => ({ ...prev, Ngay: null, Thang: null, Nam: null }));\n return CHECK_WARNING(`Thời gian phải nằm trong khoảng ${formatTime(dotLuong.TuNgay)} đến ${formatTime(dotLuong.DenNgay)} `)\n }\n const ngay = newDate.getDate();\n const thang = newDate.getMonth() + 1;\n const nam = newDate.getFullYear();\n setStateDoiUpdate(prev => ({ ...prev, Ngay: ngay, Thang: thang, Nam: nam }));\n }\n\n const handleChangeValue = (inputName, value) => {\n setStateDoiUpdate(prev => ({ ...prev, [inputName]: value }))\n }\n\n const onSaveSoCong = () => {\n // const isTest = true;\n if (phuongThuc.value === null) return CHECK_WARNING('Bạn chưa chọn phương thức chấm công!');\n if (!stateDoiUpdate.Ngay) return CHECK_WARNING(\"Bạn chưa chọn thời gian. Vui lòng thử lại!\");\n if (!stateDoiUpdate.NgayCong) return CHECK_WARNING(\"Bạn chưa nhập số ngày công. Vui lòng thử lại!\");\n if (!stateDoiUpdate.LuongTheoNgayCong) return CHECK_WARNING(\"Bạn chưa đơn giá theo ngày. Vui lòng thử lại!\");\n if (phuongThuc.value && !stateDoiUpdate.LamTron) {\n return CHECK_WARNING(\"Bạn chưa chọn thời gian. Vui lòng thử lại!\");\n }\n // if (isTest) return;\n BangLuongEndpoint.edit(`${stateDoiUpdate.Id}`, {\n NgayCong: +stateDoiUpdate.NgayCong,\n LamTron: +stateDoiUpdate.LamTron,\n Ngay: +stateDoiUpdate.Ngay,\n Thang: +stateDoiUpdate.Thang,\n Nam: +stateDoiUpdate.Nam,\n IsKhoiLuong: phuongThuc.value,\n LuongTheoNgayCong: +stateDoiUpdate.LuongTheoNgayCong,\n TongLuong: phuongThuc.value ? (+stateDoiUpdate.LuongTheoNgayCong * +stateDoiUpdate.LamTron) : (+stateDoiUpdate.LuongTheoNgayCong * +stateDoiUpdate.NgayCong),\n ThucNhan: phuongThuc.value ? (+stateDoiUpdate.LuongTheoNgayCong * +stateDoiUpdate.LamTron) : (+stateDoiUpdate.LuongTheoNgayCong * +stateDoiUpdate.NgayCong),\n Name: stateDoiUpdate.Name\n })\n .then(() => {\n KhoanChisEndpoint.update(stateDoiUpdate.KhoanChiId, {\n ThoiGian: new Date(`${stateDoiUpdate.Nam}-${stateDoiUpdate.Thang}-${stateDoiUpdate.Ngay}`),\n NoiDung: stateDoiUpdate.Name,\n KhoiLuong: phuongThuc.value ? +stateDoiUpdate.LamTron : +stateDoiUpdate.NgayCong,\n DonGia: +stateDoiUpdate.LuongTheoNgayCong,\n TienThanhToan: phuongThuc.value ? (+stateDoiUpdate.LuongTheoNgayCong * +stateDoiUpdate.LamTron) : (+stateDoiUpdate.LuongTheoNgayCong * +stateDoiUpdate.NgayCong),\n });\n CHECK_SUCCESS('Thành công!');\n reloadTable();\n onCancel();\n })\n .catch(() => CHECK_ERROR('Không thể cập nhật chấm công!'))\n }\n\n useEffect(() => {\n if (!open) return;\n if (!doiUpdate) return;\n const _phuongThuc = PhuongThucChamCong.find(f => f.id === doiUpdate.LoaiChamCong);\n setPhuongThuc(_phuongThuc);\n setStateDoiUpdate(doiUpdate)\n }, [PhuongThucChamCong, doiUpdate, open])\n\n return (\n <div className=\"form-dot-luong\">\n <Dialog\n onClose={onCancel}\n aria-labelledby=\"simple-dialog-title\"\n open={open}\n disableBackdropClick\n disableEscapeKeyDown\n maxWidth=\"xs\"\n >\n <DialogTitle\n style={{\n padding: '5px 24px',\n border: '1px solid #ccc'\n }}>\n {`Cập nhật công cho đội ${selectedDoi.OrganName}`}\n </DialogTitle>\n\n <DialogContent>\n <div style={{ paddingBottom: '5px' }}>\n <span>Chấm công theo: <span style={{ color: 'red' }}>*</span></span>\n <Select\n name='phuongThucChamCong'\n options={PhuongThucChamCong}\n menuPosition={'fixed'}\n className=\"cus-select\"\n placeholder={getPlaceholder('Chấm công theo...')}\n onChange={(selected) => { selectPhuongThuc(selected) }}\n getOptionValue={option => option}\n value={PhuongThucChamCong?.find(f => f.id === phuongThuc?.id) || null}\n getOptionLabel={option => option.label}\n />\n </div>\n\n <div style={{ paddingBottom: '5px' }}>\n <span>Thời gian: <span style={{ color: 'red' }}>*</span></span>\n <DatePicker\n onChange={(e) => { setThoiGianTuNgay(e) }}\n placeholder=\"Thời gian ứng\"\n name=\"thoiGian\"\n value={new Date(`${stateDoiUpdate.Nam}-${stateDoiUpdate.Thang}-${stateDoiUpdate.Ngay}`)}\n />\n </div>\n\n <div style={{ paddingBottom: '5px' }}>\n <span>Nội dung:</span>\n <Input\n className=\"input-cong\"\n value={stateDoiUpdate.Name}\n type=\"text\" placeholder=\"Nhập nội dung...\"\n onChange={(e) => handleChangeValue('Name', e.target.value)}\n />\n </div>\n\n {\n phuongThuc?.value !== null &&\n <div style={{ paddingBottom: '5px' }}>\n <span>Số công: <span style={{ color: 'red' }}>*</span></span>\n <Input\n className=\"input-cong\"\n value={stateDoiUpdate.NgayCong}\n type=\"number\" placeholder=\"Nhập...\"\n onChange={(e) => handleChangeValue('NgayCong', e.target.value)}\n />\n </div>\n }\n\n {\n ( ['MetDai','KhoiLuong'].includes(phuongThuc?.id) )\n ?\n <div style={{ paddingBottom: '5px' }}>\n <span>Làm tròn: <span style={{ color: 'red' }}>*</span></span>\n <Input\n className=\"input-cong\"\n value={stateDoiUpdate.LamTron}\n type=\"number\" placeholder=\"Nhập...\"\n onChange={(e) => handleChangeValue('LamTron', e.target.value)}\n />\n </div>\n : <> </>\n }\n\n <div style={{ paddingBottom: '5px' }}>\n <span>Đơn giá theo Ngày/m2 ( VNĐ ): <span style={{ color: 'red' }}>*</span></span>\n <NumberFormat\n onValueChange={(e) => { handleChangeValue('LuongTheoNgayCong', e.values.value) }}\n value={stateDoiUpdate.LuongTheoNgayCong}\n />\n </div>\n\n <div style={{ display: 'flex', justifyContent: 'flex-end', paddingTop: '10px' }}>\n <Button style={{ marginRight: 10 }} color=\"primary\" onClick={onSaveSoCong}>Xác nhận</Button>\n <Button onClick={onCancel}>Hủy</Button>\n </div>\n </DialogContent>\n </Dialog>\n </div>\n )\n}\n\nexport default memo(FormUpdateChamCongThueNgoai)\n","import React, { useState, useEffect, useCallback } from 'react';\nimport './css.scss';\nimport { ButtonAdd, ButtonDelete, ButtonEdit } from '../../../../components/base/Button';\nimport EmptyNoData from '../../../../components/Empty/EmptyNoData';\n// import { Badge } from 'reactstrap';\nimport { BangLuongEndpoint, KhoanChisEndpoint } from '../../../../service/GDTCores';\nimport FormChamCongThueNgoai from './FormChamCongThueNgoai';\nimport { formatCurrency } from '../../../../actions/util';\nimport { CHECK_CONFIRM, CHECK_ERROR, CHECK_SUCCESS } from '../../../../components/alert/Alert';\nimport ButtonReset from '../../../../components/base/Button/ButtonReset';\nimport RenderSkeletons from '../../../../components/skeleton/RenderSkeleton';\nimport FormUpdateChamCongThueNgoai from './FormUpdateChamCongThueNgoai';\n// import { _Enums_DoiTuongNumber } from '../../../action/defaultEnums';\n\nconst PhuongThucChamCong = [\n { id: 'ChuaXacDinh', label: 'Chưa xác định', value: null },\n { id: 'Ngay', label: 'Theo ngày', value: false },\n { id: 'KhoiLuong', label: 'Theo khối lượng(m2)', value: true },\n { id: 'Cum', label: 'Theo cụm', value: false },\n { id: 'MetDai', label: 'Theo mét dài(md)', value: true },\n { id: 'Cai', label: 'Theo cái', value: false },\n { id: 'Xe', label: 'Theo xe', value: false },\n { id: 'Kg', label: 'Theo kg', value: false },\n { id: 'Tan', label: 'Theo tấn', value: false },\n { id: 'M3', label: 'Theo khối lượng(m3)', value: false },\n { id: 'CaMay', label: 'Ca máy', value: false },\n { id: 'Bao', label: 'Bao', value: false },\n { id: 'Vien', label: 'Viên', value: false },\n { id: 'Cay', label: 'Cây', value: false },\n { id: 'Xe3M3', label: 'Theo xe 3m3', value: false },\n { id: 'Xe7M3', label: 'Theo xe 7m3', value: false },\n { id: 'Gio', label: 'Giờ', value: false },\n];\n\nfunction IndexChamCongDoiThueNgoai({\n filter: { ngay, thang, nam, dotLuong, duAnId, selectedDoi },\n}) {\n\n const [isOpenCreateCong, setIsOpenCreateCong] = useState(false);\n const [isOpenEditCong, setIsOpenEditCong] = useState(false);\n const [lstChamCong, setLstChamCong] = useState([]);\n const [doiUpdate, setDoiUpdate] = useState(null);\n const [isSkeleton, setIsSkeleton] = useState(false);\n\n const loadLstCongThueNgoai = useCallback(() => {\n setIsSkeleton(true);\n const param = {\n filter: `$filter=Status eq true and DuAnId eq ${duAnId} and DotLuongId eq ${dotLuong.Id} and OrganId eq ${selectedDoi.OrganId}`,\n select: `$select=Id,Ngay,Thang,Nam,IsKhoiLuong,LamTron,NgayCong,DotLuongId,LuongTheoNgayCong,Name,ThucNhan,KhoanChiId,LoaiChamCong`,\n };\n BangLuongEndpoint.getAll(`?${param.filter}&${param.select}`)\n .then(({ value }) => {\n setLstChamCong(value.sort((a, b) => {\n if ((new Date(`${a.Nam}-${a.Thang}-${a.Ngay}`)) < (new Date(`${b.Nam}-${b.Thang}-${b.Ngay}`))) return -1;\n return a - b;\n }))\n setIsSkeleton(false);\n })\n .catch(() => { setIsSkeleton(false); })\n }, [duAnId, dotLuong.Id, selectedDoi.OrganId])\n\n // const getPhuongThucChamCong = (doi) => {\n // if (doi.IsKhoiLuong === false && doi.NgayCong !== null) return <Badge color=\"primary\">Theo ngày</Badge>\n // if (doi.IsKhoiLuong) return <Badge color=\"primary\">m2</Badge>\n // return <Badge>Chưa xác định</Badge>\n // }\n\n // const getThanhTien = (doi) => {\n // if (doi.IsKhoiLuong) {\n // return doi.LamTron ? (doi.LamTron * doi.LuongTheoNgayCong) : (doi.NgayCong * doi.LuongTheoNgayCong)\n // }\n // return (doi.NgayCong * doi.LuongTheoNgayCong);\n // }\n\n const openFormCreateCong = (doi) => {\n setIsOpenCreateCong(true);\n }\n\n const openFormUpdateCong = (doi) => {\n setIsOpenEditCong(true);\n setDoiUpdate(doi)\n }\n\n const reloadTable = () => {\n loadLstCongThueNgoai();\n }\n\n const onDelete = (bangLuong) => {\n BangLuongEndpoint.DeleteADMINODATA(`(${bangLuong.Id})`).then(() => {\n KhoanChisEndpoint.deleteKhoanChi(bangLuong.KhoanChiId).then(() => {\n reloadTable();\n CHECK_SUCCESS('Xóa thành công!');\n })\n })\n .catch(() => { CHECK_ERROR('Lỗi! Không thể xóa') })\n\n // const promiseAll = [];\n // promiseAll.push(BangLuongEndpoint.DeleteADMINODATA(`(${bangLuong.Id})`));\n // promiseAll.push(KhoanChisEndpoint.deleteKhoanChi(bangLuong.KhoanChiId));\n // Promise.all(promiseAll).then(() => {\n // reloadTable();\n // CHECK_SUCCESS('Xóa thành công!');\n // })\n }\n\n useEffect(() => {\n loadLstCongThueNgoai();\n }, [loadLstCongThueNgoai])\n\n return (\n <div className=\"index-bang-cham-cong-thue-ngoai\">\n <div className=\"tableFixHead\">\n <div style={{ display: 'flex', justifyContent: 'space-between' }}>\n <div><u><i>Chấm công cho đối tượng đội Thuê ngoài - <b>{selectedDoi.OrganName}</b></i></u></div>\n <div>\n <ButtonReset style={{ width: '30px', height: '29px', marginRight: '5px' }} onClick={reloadTable} />\n <ButtonAdd onClick={() => openFormCreateCong(null)}>Chấm công</ButtonAdd>\n </div>\n </div>\n\n <table>\n <thead>\n <tr>\n <th className=\"th-table\" style={{ width: '4%' }}>STT</th>\n <th className=\"th-table\" style={{ width: '10%' }}>Thời gian</th>\n <th className=\"th-table\">Nội dung</th>\n {/* <th className=\"th-table\" style={{ width: '10%' }}>Đơn vị tính</th> */}\n <th className=\"th-table\" style={{ width: '10%' }}>Đơn giá( VNĐ )</th>\n <th className=\"th-table\" style={{ width: '10%' }}>Số công/Khối lượng</th>\n <th className=\"th-table\" style={{ width: '10%' }}>Làm tròn</th>\n <th className=\"th-table\" style={{ width: '10%' }}>Thành tiền</th>\n <th className=\"th-table\" style={{ width: '10%' }}>Thao tác</th>\n </tr>\n </thead>\n\n <tbody>\n {\n (lstChamCong && lstChamCong.length)\n ?\n lstChamCong.map((doi, i) =>\n <React.Fragment key={i}>\n <tr>\n <td style={{ padding: '5px 15px', textAlign: 'center' }}>{i + 1}</td>\n <td style={{ padding: '5px 15px', textAlign: 'center' }}>{doi.Ngay}/{doi.Thang}/{doi.Nam}</td>\n <td style={{ padding: '5px 15px', textAlign: 'center' }}>{doi.Name}</td>\n {/* <td style={{ padding: '5px 15px', textAlign: 'center' }}>{getPhuongThucChamCong(doi)}</td> */}\n <td style={{ padding: '5px 15px', textAlign: 'center' }}>{formatCurrency(doi.LuongTheoNgayCong)}</td>\n <td style={{ padding: '5px 15px', textAlign: 'center' }}>{(doi.NgayCong) ? doi.NgayCong : 0}</td>\n <td\n style={{ textAlign: 'center' }}\n className={`${(!doi?.IsKhoiLuong && doi?.NgayCong !== null) ? 'disable' : ''}`}>\n {doi.LamTron ? doi.LamTron : ''}\n </td>\n <td\n style={{ textAlign: 'end' }}>\n {formatCurrency(doi.ThucNhan)}\n </td>\n <td>\n {\n <div style={{ display: 'flex' }}>\n <ButtonEdit\n onClick={() => { openFormUpdateCong(doi) }}\n />\n <ButtonDelete\n style={{ marginLeft: '10px' }}\n onClick={() => CHECK_CONFIRM(`Bạn chắc chắn muốn xóa`)\n .then(res => { if (res && res.isConfirmed) onDelete(doi) })}\n />\n </div>\n }\n </td>\n </tr>\n </React.Fragment>\n )\n :\n <tr>\n <td colSpan={9}>\n {\n isSkeleton ? <RenderSkeletons occurrences={5} height={20} /> : <EmptyNoData size=\"sm\" />\n }\n </td>\n </tr>\n }\n </tbody>\n </table>\n </div>\n\n {\n isOpenCreateCong &&\n <FormChamCongThueNgoai\n open={isOpenCreateCong}\n onCancel={() => setIsOpenCreateCong(false)}\n selectedDoi={selectedDoi}\n PhuongThucChamCong={PhuongThucChamCong}\n ngay={ngay}\n thang={thang}\n nam={nam}\n dotLuong={dotLuong}\n duAnId={duAnId}\n reloadTable={reloadTable}\n />\n }\n {\n isOpenEditCong &&\n <FormUpdateChamCongThueNgoai\n open={isOpenEditCong}\n onCancel={() => setIsOpenEditCong(false)}\n selectedDoi={selectedDoi}\n PhuongThucChamCong={PhuongThucChamCong}\n dotLuong={dotLuong}\n doiUpdate={doiUpdate}\n reloadTable={reloadTable}\n />\n }\n </div>\n )\n}\n\nexport default IndexChamCongDoiThueNgoai\n\n","import React, { useCallback, useEffect, useState } from 'react';\nimport { Input } from 'reactstrap';\nimport { formatCurrency } from '../../../../actions/util';\nimport { CHECK_ERROR, CHECK_SUCCESS, CHECK_WARNING } from '../../../../components/alert/Alert';\nimport { ButtonCancel, ButtonEdit, ButtonSave } from '../../../../components/base/Button';\nimport ButtonReset from '../../../../components/base/Button/ButtonReset';\nimport EmptyNoData from '../../../../components/Empty/EmptyNoData';\nimport RenderSkeletons from '../../../../components/skeleton/RenderSkeleton';\nimport { BangLuongEndpoint, ChamCongEndpoint } from '../../../../service/GDTCores';\n\nfunction Index({\n thang, nam\n}) {\n\n const [lstChamCong, setLstChamCong] = useState([]);\n const [nhanSuSelected, setNhanSuSelected] = useState({});\n const [soCong, setSoCong] = useState(null);\n const [luongTheoNgay, setLuongTheoNgay] = useState(null);\n const [isSkeleton, setIsSkeleton] = useState(false);\n\n const loadDanhSachChamCong = useCallback(() => {\n setIsSkeleton(true)\n const req = {\n DoiTuong: 5,\n PhuongThucChamCong: 0,\n Thang: thang,\n Nam: nam,\n DuAnIds: []\n };\n ChamCongEndpoint.getDanhSachChamCong(req)\n .then(({ ResultObj }) => {\n setLstChamCong(ResultObj);\n setIsSkeleton(false)\n })\n .catch(() => setIsSkeleton(false))\n }, [thang, nam])\n\n const onSavePhongBan = (doi, nhanSu) => {\n if (!soCong) return CHECK_WARNING('Bạn chưa nhập số công!');\n if (+soCong > 9999) return CHECK_WARNING('Số công phải nhỏ hơn 9999');\n const req = {\n Thang: thang,\n Nam: nam,\n NgayCong: +soCong,\n OrganId: doi.Id,\n NhanSuId: nhanSu.Id,\n LuongTheoNgayCong: +luongTheoNgay\n }\n if (nhanSu.ChamCong.Id) {\n if (nhanSu.IsComplete) return CHECK_ERROR('Bảng lương đã được tạo, bạn không thể sửa ngày công!');\n BangLuongEndpoint.edit(nhanSu.ChamCong.Id, {\n NgayCong: +soCong,\n LuongTheoNgayCong: +luongTheoNgay,\n })\n .then(() => {\n CHECK_SUCCESS('Cập nhật thành công!');\n loadDanhSachChamCong();\n onCancelInput();\n });\n } else {\n BangLuongEndpoint.add(req).then(() => {\n CHECK_SUCCESS('Thêm thành công!');\n loadDanhSachChamCong();\n onCancelInput();\n });\n }\n }\n\n const onEditCong = (nhanSu) => {\n setNhanSuSelected(nhanSu);\n setLuongTheoNgay(nhanSu.LuongNhanVien);\n setSoCong(nhanSu.ChamCong.SoCong);\n }\n\n // const onDelete = (chamCong) => {\n // if (chamCong?.IsComplete) return CHECK_ERROR('Bảng lương đã được tạo, nếu bạn muốn xóa xin vui lòng hãy xóa bảng lương!');\n // BangLuongEndpoint.DeleteADMINODATA(`(${chamCong.Id})`)\n // .then(() => {\n // loadDanhSachChamCong();\n // CHECK_SUCCESS('Xóa thành công!');\n // })\n // }\n\n const onCancelInput = () => {\n setNhanSuSelected({});\n setSoCong(null);\n setLuongTheoNgay(null);\n }\n\n useEffect(() => {\n loadDanhSachChamCong();\n }, [loadDanhSachChamCong])\n\n return (\n <div className=\"index-bang-cham-cong-nhan-vien\" style={{ height: 'calc(100vh - 220px)' }}>\n <div style={{ display: 'flex', justifyContent: 'space-between' }}>\n <div><u><i>Chấm công cho đối tượng Phòng ban</i></u></div>\n <ButtonReset onClick={loadDanhSachChamCong}> Tải lại</ButtonReset>\n </div>\n\n <table>\n <thead>\n <tr style={{ background: '#006FCA' }}>\n <th className=\"th-table\" style={{ width: '10%' }}>STT</th>\n <th className=\"th-table\" style={{ width: '50%' }}>Họ và tên</th>\n <th className=\"th-table\" style={{ width: '17%' }}>Đơn giá/Ngày</th>\n <th className=\"th-table\" style={{ width: '13%' }}>Số công</th>\n <th className=\"th-table\" style={{ width: '10%' }}></th>\n </tr>\n </thead>\n\n <tbody>\n {\n lstChamCong.length ?\n lstChamCong[0].Organs.map((doi, idx) => {\n return (\n <React.Fragment key={idx}>\n <tr style={{ background: '#f9ecce' }}>\n <td style={{ padding: '5px 15px' }} colSpan={5}>{doi.TenDoi}</td>\n </tr>\n <>\n {\n doi.NhanSus && doi.NhanSus.map((nhanSu, index) => {\n return (\n <tr key={index}>\n <td style={{ textAlign: 'center', verticalAlign: 'middle' }}>{index + 1}</td>\n <td style={{ verticalAlign: 'middle' }}>{nhanSu.HoVaTen}</td>\n <td style={{ verticalAlign: 'middle', textAlign: 'center' }}>\n {\n nhanSuSelected.Id === nhanSu.Id ?\n <div className=\"form-edit\">\n <Input className=\"input-cong\"\n defaultValue={nhanSu.LuongNhanVien ? nhanSu.LuongNhanVien : 0}\n type=\"number\" placeholder=\"Nhập...\"\n onKeyUp={(e) => setLuongTheoNgay(e.target.value)}\n />\n </div>\n :\n <div className=\"value-cong\">\n {formatCurrency(nhanSu.LuongNhanVien)}\n </div>\n }\n </td>\n\n <td>\n {\n nhanSuSelected.Id === nhanSu.Id ?\n <div className=\"form-edit\">\n <Input className=\"input-cong\"\n maxLength={4}\n defaultValue={nhanSu.ChamCong.SoCong ? nhanSu.ChamCong.SoCong : 0}\n type=\"number\" placeholder=\"Nhập...\"\n onKeyUp={(e) => setSoCong(e.target.value)}\n />\n </div>\n :\n <div className=\"value-cong\">\n {nhanSu.ChamCong.SoCong ? nhanSu.ChamCong.SoCong : 0}\n </div>\n }\n </td>\n\n <td style={{ padding: '2px 20px' }}>\n {\n nhanSuSelected.Id === nhanSu.Id ?\n <div className=\"form-edit\">\n <div className=\"but-edit\">\n <div className=\"btn-save\">\n <ButtonSave color=\"success\" onClick={() => onSavePhongBan(doi, nhanSu)} />\n </div>\n <div><ButtonCancel onClick={onCancelInput} /></div>\n </div>\n </div>\n :\n <div className=\"value-cong\">\n <ButtonEdit onClick={() => onEditCong(nhanSu)} />\n {/* <ButtonDelete\n style={{ marginLeft: '10px' }}\n onClick={() => CHECK_CONFIRM(`Bạn chắc chắn muốn xóa`)\n .then(res => { if (res && res.isConfirmed) onDelete(nhanSu.ChamCong) })}\n /> */}\n </div>\n }\n </td>\n </tr>\n )\n }\n )}\n </>\n </React.Fragment>\n )\n })\n :\n <tr>\n <td colSpan={5}>\n {\n isSkeleton ? <RenderSkeletons occurrences={5} height={20} /> : <EmptyNoData size=\"sm\" />\n }\n </td>\n </tr>\n }\n </tbody>\n </table>\n </div>\n )\n}\n\nexport default Index\n\n","import React, { useEffect, useCallback, useState } from 'react';\nimport { Input } from 'reactstrap/lib';\nimport { formatCurrency } from '../../../../actions/util';\nimport { CHECK_ERROR, CHECK_SUCCESS, CHECK_WARNING } from '../../../../components/alert/Alert';\nimport { ButtonCancel, ButtonEdit, ButtonSave } from '../../../../components/base/Button';\nimport ButtonReset from '../../../../components/base/Button/ButtonReset';\nimport EmptyNoData from '../../../../components/Empty/EmptyNoData';\nimport RenderSkeletons from '../../../../components/skeleton/RenderSkeleton';\nimport { BangLuongEndpoint, ChamCongEndpoint } from '../../../../service/GDTCores';\nimport './css.scss';\n\nexport default function IndexChamCongDoiCTy({\n filter: { thang, nam, duAn }\n}) {\n\n const [danhSachChamCong, setDanhSachChamCong] = useState([]);\n const [nhanSuSelected, setNhanSuSelected] = useState({});\n const [soCong, setSoCong] = useState(null);\n const [luongTheoNgay, setLuongTheoNgay] = useState(null);\n const [isSkeleton, setIsSkeleton] = useState(false);\n\n const loadDanhSachChamCong = useCallback(() => {\n setIsSkeleton(true)\n const req = {\n DoiTuong: 4,\n PhuongThucChamCong: 1,\n Thang: thang,\n Nam: nam,\n DuAnIds: [duAn.DuAnId]\n };\n ChamCongEndpoint.getDanhSachChamCong(req)\n .then(({ ResultObj }) => {\n setDanhSachChamCong(ResultObj);\n setIsSkeleton(false)\n })\n .catch(() => setIsSkeleton(false))\n }, [thang, nam, duAn.DuAnId])\n\n const onEditCong = (nhanSu) => {\n setNhanSuSelected(nhanSu);\n setLuongTheoNgay(nhanSu.LuongNhanVien);\n setSoCong(nhanSu.ChamCong.SoCong);\n }\n\n const onCancelInput = () => {\n setNhanSuSelected({});\n setSoCong(null)\n setLuongTheoNgay(null);\n }\n\n // const onDelete = (chamCong) => {\n // if (chamCong?.IsComplete) return CHECK_ERROR('Bảng lương đã được tạo, nếu bạn muốn xóa xin vui lòng xóa bảng lương!');\n // BangLuongEndpoint.DeleteADMINODATA(`(${chamCong.Id})`)\n // .then(() => {\n // loadDanhSachChamCong();\n // CHECK_SUCCESS('Xóa thành công!');\n // })\n // }\n\n const onSave = (duAn, doi, nhanSu) => {\n if (!soCong) return CHECK_WARNING('Bạn chưa nhập số công!');\n if (+soCong > 9999) return CHECK_WARNING('Số công phải nhỏ hơn 9999');\n if (!nhanSu.ChamCong.Id) {\n const req = {\n Thang: thang,\n Nam: nam,\n NgayCong: +soCong,\n OrganId: doi.Id,\n NhanSuId: nhanSu.Id,\n DuAnId: duAn.DuAnId,\n LuongTheoNgayCong: +luongTheoNgay\n }\n BangLuongEndpoint.add(req)\n .then(() => {\n onCancelInput();\n CHECK_SUCCESS('Thêm thành công!');\n loadDanhSachChamCong();\n })\n } else {\n if (nhanSu.IsComplete) return CHECK_ERROR('Bảng lương đã được tạo, bạn không thể sửa ngày công!');\n BangLuongEndpoint.edit(nhanSu.ChamCong.Id, {\n NgayCong: +soCong,\n LuongTheoNgayCong: +luongTheoNgay\n })\n .then(() => {\n onCancelInput();\n CHECK_SUCCESS('Cập nhật thành công!');\n loadDanhSachChamCong();\n })\n }\n }\n\n useEffect(() => {\n loadDanhSachChamCong();\n }, [loadDanhSachChamCong])\n\n return (\n <div className='index-bang-cham-cong-doi-cty'>\n <div style={{ display: 'flex', justifyContent: 'space-between' }}>\n <div><u><i>Chấm công cho đối tượng đội Công ty</i></u></div>\n <ButtonReset onClick={loadDanhSachChamCong} > Tải lại </ButtonReset>\n </div>\n <table>\n <thead>\n <tr style={{ background: '#006FCA' }}>\n <th className=\"th-table\" style={{ width: '10%' }}>STT</th>\n <th className=\"th-table\" style={{ width: '50%' }}>Họ và tên</th>\n <th className=\"th-table\" style={{ width: '15%' }}>Đơn giá/Ngày</th>\n <th className=\"th-table\" style={{ width: '13%' }}>Số công</th>\n <th className=\"th-table\" style={{ width: '12%' }}></th>\n </tr>\n </thead>\n\n <tbody>\n {\n danhSachChamCong.length ?\n danhSachChamCong.map((duAn, idx) => {\n return (\n <React.Fragment key={idx}>\n <tr style={{ background: '#f9ecce' }}>\n <td style={{ padding: '5px 15px' }} colSpan={5}>Dự án {duAn.TenDuAn}</td>\n </tr>\n {\n duAn.Organs && duAn.Organs.map((doi) => {\n return (\n <React.Fragment key={doi.Id}>\n <tr style={{ fontWeight: '600' }}>\n <td style={{ padding: '5px 15px' }}></td>\n <td style={{ padding: '5px 15px' }} colSpan={4}>{doi.TenDoi}</td>\n </tr>\n {\n doi.NhanSus.map((nhanSu, idxNs) =>\n <tr key={nhanSu.Id}>\n <td style={{ textAlign: 'center', verticalAlign: 'middle' }}>{idxNs + 1}</td>\n <td style={{ verticalAlign: 'middle' }}>{nhanSu.HoVaTen}</td>\n <td style={{ verticalAlign: 'middle', textAlign: 'center' }}>\n {\n nhanSuSelected.Id === nhanSu.Id ?\n <div className=\"form-edit\">\n <Input className=\"input-cong\"\n defaultValue={nhanSu.LuongNhanVien ? nhanSu.LuongNhanVien : 0}\n type=\"number\" placeholder=\"Nhập...\"\n onKeyUp={(e) => setLuongTheoNgay(e.target.value)}\n />\n </div>\n :\n <div className=\"value-cong\">\n {formatCurrency(nhanSu.LuongNhanVien)}\n </div>\n }\n </td>\n <td style={{ textAlign: 'center' }}>\n {\n nhanSuSelected.Id === nhanSu.Id ?\n <div className=\"form-edit\">\n <Input className=\"input-cong\"\n maxLength={4}\n defaultValue={nhanSu?.ChamCong?.SoCong ? nhanSu.ChamCong.SoCong : 0}\n type=\"number\" placeholder=\"Nhập...\"\n onKeyUp={(e) => setSoCong(e.target.value)}\n />\n </div>\n :\n <div className=\"value-cong\">\n {nhanSu?.ChamCong?.SoCong ? nhanSu.ChamCong.SoCong : 0}\n </div>\n }\n </td>\n\n <td style={{ textAlign: 'center' }}>\n {\n nhanSuSelected.Id === nhanSu.Id ?\n <div className=\"form-edit\">\n <div className=\"but-edit\">\n <div className=\"btn-save\">\n <ButtonSave color=\"success\" onClick={() => onSave(duAn, doi, nhanSu)} />\n </div>\n <div><ButtonCancel onClick={onCancelInput} /></div>\n </div>\n </div>\n :\n <div className=\"value-cong\">\n <ButtonEdit onClick={() => onEditCong(nhanSu)} />\n {/* <ButtonDelete\n style={{ marginLeft: '10px' }}\n onClick={() => CHECK_CONFIRM(`Bạn chắc chắn muốn xóa`)\n .then(res => { if (res && res.isConfirmed) onDelete(nhanSu.ChamCong) })}\n /> */}\n </div>\n }\n </td>\n </tr>\n )\n }\n </React.Fragment>\n )\n }\n )}\n </React.Fragment>\n )\n }\n )\n :\n <tr>\n <td colSpan={5}>\n {\n isSkeleton ? <RenderSkeletons occurrences={5} height={20} /> : <EmptyNoData size=\"sm\" />\n }\n </td>\n </tr>\n }\n </tbody>\n </table>\n </div>\n )\n}\n","import React, { useState } from 'react';\nimport './css.scss';\n\nimport { _Enums_DoiTuong } from '../../action/defaultEnums';\n\nimport FullScreenDialog from \"../../../components/dialog/FullScreenDialog\";\nimport { Card, CardBody } from \"reactstrap\";\nimport FormTaoBanLuong from '../BangLuong/Component/FormTaoBanLuong';\nimport IndexChamCongDoiThueNgoai from './BangChamCongDoiThueNgoai';\nimport IndexChamCongPhongBang from './BangChamCongNhanVien';\nimport IndexChamCongDoiCTy from './BangChamCongDoiCTy';\n\nfunction TableChamCong({\n filter: {\n duAnSelected, ngay, thang, nam, denNgay, organization, selectedDoi, dotLuong\n } }) {\n\n const [isModalBangLuong, setIsModalBangLuong] = useState(false);\n\n return (\n <div className=\"index-table-cham-cong\">\n {\n organization === _Enums_DoiTuong.ThueNgoai &&\n <IndexChamCongDoiThueNgoai\n filter={{\n ngay: ngay,\n thang: thang,\n nam: nam,\n denNgay: denNgay,\n dotLuong: dotLuong,\n duAnId: duAnSelected,\n selectedDoi: selectedDoi\n }}\n />\n }\n\n {\n <div className=\"tableFixHead\">\n {\n organization === _Enums_DoiTuong.CongTy &&\n <div>\n <IndexChamCongDoiCTy\n filter={{\n thang: thang,\n nam: nam,\n duAn: duAnSelected\n }}\n />\n </div>\n }\n {\n organization === _Enums_DoiTuong.PhongBang &&\n <>\n <IndexChamCongPhongBang\n thang={thang}\n nam={nam}\n organization={organization}\n />\n </>\n }\n </div>\n }\n\n {\n isModalBangLuong ?\n <FullScreenDialog\n style={{ zIndex: 1049 }}\n title={`Bảng lương`}\n open={isModalBangLuong}\n onClose={() => setIsModalBangLuong(false)}>\n <Card>\n <CardBody className=\"detail\">\n <FormTaoBanLuong thang={thang} nam={nam} />\n </CardBody>\n </Card>\n\n </FullScreenDialog>\n : <> </>\n }\n </div>\n )\n}\n\nexport default TableChamCong\n\n","import React, { useState } from 'react';\nimport './css.scss'\nimport EmptyNoData from '../../../components/Empty/EmptyNoData';\nimport FilterBox from './FilterBox';\nimport TableChamCong from './TableChamCong';\nimport { Col, Row } from 'reactstrap';\n\nfunction IndexBangChamCong(props) {\n const [valueFilter, setValueFilter] = useState(null);\n\n return (\n <Row className=\"index-ban-cham-cong row\">\n <Col md='3'>\n <div className=\"left-bcc\"><FilterBox onFilter={filter => {\n setValueFilter(filter)\n }} /></div>\n </Col>\n <Col md='9'>\n <div className=\"right-bcc\"> {\n valueFilter\n ? <>\n <div className=\"table-bcc\">\n <TableChamCong filter={valueFilter} />\n </div>\n </>\n : <EmptyNoData size='sm' text={'Chưa có dữ liệu. Vui lòng chọn thông tin!'} ></EmptyNoData>\n }</div>\n </Col>\n </Row>\n )\n}\n\nexport default IndexBangChamCong\n\n","import React from 'react';\nimport DialogContent from '@material-ui/core/DialogContent';\n\nexport default function HeaderDialog(props) {\n return (\n <DialogContent style={{ backgroundColor: \"#eee\", paddingTop: 20 }}>\n {props.children}\n </DialogContent>\n );\n}","import React from 'react';\nimport Dialog from '@material-ui/core/Dialog';\nimport Slide from '@material-ui/core/Slide';\n\nconst Transition = React.forwardRef((props, ref) => <Slide direction=\"up\" ref={ref} {...props} />);\n\nexport default function FullScreenDialog(props) {\n const { children, onClose, open, style, className } = props;\n return (\n <Dialog className={className} style={style} disableEnforceFocus fullScreen open={open} onClose={onClose}\n TransitionComponent={Transition}>\n {children}\n </Dialog>\n );\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 React, { useState, useEffect, useCallback, useRef } from 'react';\nimport './css.scss';\nimport EmptyNoData from '../../../../components/Empty/EmptyNoData';\nimport { BangLuongEndpoint } from '../../../../service/GDTCores';\nimport NumberFormat from '../../../../components/numberformat/NumberFormat';\nimport { Enum_Flag, _Enums_DoiTuongNumber } from '../../../action/defaultEnums';\nimport { formatDecimalCurrency } from '../../../../actions/util'\nimport { Button } from 'reactstrap';\nimport { CHECK_SUCCESS, CHECK_WARNING } from '../../../../components/alert/Alert';\nimport produce from 'immer';\nimport { ButtonIcon } from '../../../../components/base/Button';\nimport { TOKEN_CLIENT_INFO } from '../../../../actions/constants';\n\nfunction FormTaoBanLuong({ thang, nam, open, flag, onCloseModal, lstPhuCap, duAn, reload }) {\n const [dataBangLuong, setDataBangLuong] = useState([]);\n const [truTamUng, setTruTamUng] = useState([]);\n const [truTamUngOld, setTruTamUngOld] = useState([]);\n const [reqBangLuong, setReqBangLuong] = useState([]);\n const [BangLuongId, setBangLuongId] = useState(null);\n const [lstTienPhuCap, setLstTienPhuCap] = useState([]);\n const [lstTienPhuCapOld, setLstTienPhuCapOld] = useState([]);\n const [isDisable, setIsDisable] = useState(false);\n const truTamUngRef = useRef([]);\n const truPhuCapRef = useRef([]);\n const userNameLogin = TOKEN_CLIENT_INFO.username;\n\n // const getDaysInMonth = (thang, nam) => {\n // return new Date(nam, thang, 0).getDate();\n // }\n\n const createBangLuong = useCallback(() => {\n const req = {\n Thang: thang,\n Nam: nam,\n DoiTuong: _Enums_DoiTuongNumber.CongTy,\n DuAnIds: [duAn.Id]\n }\n BangLuongEndpoint.postExtension(`/DanhSachBangLuong`, req)\n .then(({ ResultObj }) => {\n setDataBangLuong(ResultObj)\n if (ResultObj.length === 0) setIsDisable(true)\n const newReq = [];\n const newPhuCap = [];\n for (let pc of lstPhuCap) {\n newPhuCap.push({\n PhuCapId: pc.Id,\n SoTien: 0\n })\n }\n for (let item of ResultObj) {\n for (let bangLuong of item.Items) {\n newReq.push({\n BangLuongId: bangLuong.BangLuongId,\n TruTamUng: 0,\n PhuCaps: newPhuCap,\n })\n }\n }\n setReqBangLuong(newReq);\n })\n .catch(() => setIsDisable(true))\n }, [thang, nam, duAn.Id, lstPhuCap])\n\n const getTongTamUng = (bangLuong) => {\n return bangLuong.NoCu + bangLuong.CungKy;\n }\n\n const getNoLaikiSau = (bangLuong) => {\n const numTruTamUng = truTamUngRef.current.find(f => f.BangLuongId === bangLuong.BangLuongId);\n if (numTruTamUng) return bangLuong.NoCu + bangLuong.CungKy - numTruTamUng.SoTien;\n return (bangLuong.NoCu + bangLuong.CungKy);\n }\n\n const setLstTienTamUng = (bangLuong, soTien) => {\n if ((bangLuong.NoCu + bangLuong.CungKy) < soTien) {\n setIsDisable(true);\n return CHECK_WARNING('Số tiền trừ tạm ứng vượt quá số tiền đã ứng');\n }\n setTruTamUng(prev => {\n const newArr = prev.slice();\n const index = newArr.findIndex(f => f.BangLuongId === bangLuong.BangLuongId);\n if (index === -1) {\n newArr.push({ BangLuongId: bangLuong.BangLuongId, SoTien: +soTien });\n return newArr;\n }\n const _tu = produce(prev, draft => {\n draft[index].SoTien = +soTien;\n })\n return _tu;\n })\n setIsDisable(false);\n }\n\n const handleTruTamUng = useCallback(\n (bangLuong, doiId) => {\n // kiểm tra nếu có 1 ô nhập sai thông tin thì return;\n if (isDisable) {\n setIsDisable(true);\n return CHECK_WARNING('Đã tồn tại thông tin không hợp lệ. Vui lòng kiểm tra lại!');\n }\n setIsDisable(false);\n // lấy số tiền trừ tạm ứng\n const _truTamUng = () => {\n const tu = truTamUngRef.current.find(f => f.BangLuongId === bangLuong.BangLuongId)\n if (tu) return +tu.SoTien;\n return null;\n }\n // lấy số tiền trừ tạm ứng cũ\n const _truTamUngOld = () => {\n const tu = truTamUngOld.find(f => f.BangLuongId === bangLuong.BangLuongId)\n if (tu) return +tu.SoTien;\n return null;\n }\n const _soTien = _truTamUng();\n const _soTienOld = _truTamUngOld();\n if (!_soTien) return CHECK_WARNING('Bạn chưa nhập số tiền cần trừ. Vui lòng thử lại!');\n if (_soTien > bangLuong.ThucNhan) {\n setIsDisable(true);\n return CHECK_WARNING('Số tiền trừ tạm ứng không được lớn hơn số thực nhận. Vui lòng thử lại!');\n };\n if (_soTien < 0) {\n setIsDisable(true);\n return CHECK_WARNING('Số tiền trừ tạm ứng phải lớn hơn 0. Vui lòng thử lại!');\n }\n if (_soTien > (bangLuong.NoCu + bangLuong.CungKy)) {\n setIsDisable(true);\n return CHECK_WARNING('Số tiền trừ đã vượt quá số tiền đã ứng. Vui lòng thử lại!');\n }\n // lưu lại giá trị đã trừ tạm ứng trc đó\n setTruTamUngOld(prev => {\n const newArr = prev.slice();\n const index = newArr.findIndex(f => f.BangLuongId === bangLuong.BangLuongId)\n if (index === -1) {\n newArr.push({ BangLuongId: bangLuong.BangLuongId, SoTien: _soTien })\n return newArr;\n }\n const data = produce(prev, draft => { // thay đổi giá trị tránh bị tham chiếu\n draft[index].SoTien = _soTien;\n })\n return data;\n });\n\n const indexDoi = dataBangLuong.findIndex(f => f.DoiId === doiId);\n if (indexDoi !== -1) {\n const indexBLe = dataBangLuong[indexDoi].Items.findIndex(f => f.BangLuongId === bangLuong.BangLuongId)\n if (indexBLe !== -1) {\n const data = produce(dataBangLuong, d => {\n d[indexDoi].Items[indexBLe].ThucNhan = d[indexDoi].Items[indexBLe].ThucNhan - (_soTien - _soTienOld);\n })\n setDataBangLuong(data)\n }\n }\n if (_soTien === 0) return;\n const indexBL = reqBangLuong.findIndex(f => f.BangLuongId === bangLuong.BangLuongId);\n // nếu nhập lần đầu thì\n // if (indexBL === -1) {\n // const newReq = [];\n // const newPhuCap = [];\n\n // for (let pc of lstPhuCap) {\n // newPhuCap.push({\n // PhuCapId: pc.Id,\n // SoTien: 0\n // })\n // }\n\n // newReq.push({\n // BangLuongId: bangLuong.BangLuongId,\n // TruTamUng: 0,\n // PhuCaps: newPhuCap,\n // })\n\n // }\n const _ttu = produce(reqBangLuong, draft => {\n draft[indexBL].TruTamUng = _soTien;\n })\n setReqBangLuong(_ttu);\n setIsDisable(false);\n },\n [dataBangLuong, isDisable, reqBangLuong, truTamUngOld]\n )\n\n const setValueLstPhuCap = useCallback((bangLuongId, phuCap, soTien) => {\n setLstTienPhuCap(prev => {\n const newLst = [...prev];\n const indexPc = newLst.findIndex(f => f.PhuCapId === phuCap.Id && f.BangLuongId === bangLuongId);\n if (indexPc === -1) {\n newLst.push({ BangLuongId: bangLuongId, PhuCapId: phuCap.Id, SoTien: +soTien })\n return newLst;\n }\n const _pc = produce(prev, draft => {\n draft[indexPc].SoTien = +soTien;\n })\n return _pc;\n })\n }, [])\n\n const handlePhucap = useCallback(\n (phuCap, bangLuong, doiId) => {\n if (isDisable) return CHECK_WARNING('Đã tồn tại thông tin không hợp lệ. Vui lòng kiểm tra lại!');\n const tienPhuCap = () => {\n const st = truPhuCapRef.current.find(f => f.PhuCapId === phuCap.Id && f.BangLuongId === bangLuong.BangLuongId);\n if (st) return +st.SoTien;\n return null;\n }\n const tienPhuCapOld = () => {\n const st = lstTienPhuCapOld.find(f => f.PhuCapId === phuCap.Id && f.BangLuongId === bangLuong.BangLuongId);\n if (st) return +st.SoTien;\n return null;\n };\n const _soTien = tienPhuCap();\n const _soTienOld = tienPhuCapOld();\n\n if (_soTien === null || _soTien < 0) return CHECK_WARNING('Bạn chưa nhập số tiền. Vui lòng thử lại!');\n if (_soTien > bangLuong.ThucNhan && phuCap.IsTruLuong) return CHECK_WARNING('Số tiền trừ không được lớn hơn thực nhận, vui lòng thử lại!')\n\n const indexDoi = dataBangLuong.findIndex(f => f.DoiId === doiId);\n if (indexDoi !== -1) {\n const indexBl = dataBangLuong[indexDoi].Items.findIndex(f => f.BangLuongId === bangLuong.BangLuongId);\n if (indexBl !== -1) {\n const valuePhuCap = produce(dataBangLuong, draft => {\n let soTienPhuCap = +(_soTien - (_soTienOld ? _soTienOld : 0));\n if (phuCap.IsTheoCong) soTienPhuCap = bangLuong.TNC * soTienPhuCap;\n if (phuCap.IsTruLuong) {\n draft[indexDoi].Items[indexBl].ThucNhan = draft[indexDoi].Items[indexBl].ThucNhan - soTienPhuCap;\n } else {\n draft[indexDoi].Items[indexBl].ThucNhan = draft[indexDoi].Items[indexBl].ThucNhan + soTienPhuCap;\n }\n })\n setLstTienPhuCapOld(prev => {\n const newLst = prev.slice();\n const index = newLst.findIndex(f => f.PhuCapId === phuCap.Id && f.BangLuongId === bangLuong.BangLuongId);\n if (index === -1) {\n newLst.push({ BangLuongId: bangLuong.BangLuongId, PhuCapId: phuCap.Id, SoTien: _soTien });\n return newLst;\n }\n newLst[index].SoTien = _soTien;\n return newLst;\n })\n setDataBangLuong(valuePhuCap);\n }\n }\n\n if (_soTien === 0) return;\n const idxBangLuong = reqBangLuong.findIndex(f => f.BangLuongId === bangLuong.BangLuongId);\n const indexPhuCap = reqBangLuong[idxBangLuong].PhuCaps.findIndex(f => f.PhuCapId === phuCap.Id);\n const _bangLuong = produce(reqBangLuong, draft => {\n draft[idxBangLuong].PhuCaps[indexPhuCap].SoTien = _soTien;\n })\n setReqBangLuong(_bangLuong)\n },\n [dataBangLuong, isDisable, lstTienPhuCapOld, reqBangLuong]\n )\n\n const xacNhanBangLuong = () => {\n let danhSachLuong = [];\n // thêm NoCu và cùng kỳ vào reqBangLuong\n dataBangLuong.forEach((doi) => {\n doi.Items.forEach((bangLuong) => {\n const findBL = reqBangLuong.find(f => f.BangLuongId === bangLuong.BangLuongId)\n const cc = { ...findBL, NoCu: Number(bangLuong.NoCu), NoCungKy: Number(bangLuong.CungKy) }\n danhSachLuong.push(cc);\n })\n })\n const req = {\n DanhSachLuong: danhSachLuong,\n NguoiLapPhieu: userNameLogin\n }\n BangLuongEndpoint.postExtension('/TaoDanhSachLuong', req).then(() => {\n reload && reload();\n CHECK_SUCCESS('Thành công!');\n onCloseModal();\n });\n }\n\n useEffect(() => {\n if (!open) return;\n createBangLuong();\n }, [createBangLuong, open])\n\n useEffect(() => {\n truTamUngRef.current = truTamUng;\n }, [truTamUng])\n\n useEffect(() => {\n truPhuCapRef.current = lstTienPhuCap;\n }, [lstTienPhuCap])\n\n const renderTR = useCallback((item, idx, i, bangLuong) => {\n\n return <tr key={`${i}.${idx}`}\n style={{ background: `${item.BangLuongId === BangLuongId ? '#598eff' : ''}` }}\n onClick={() => setBangLuongId(item.BangLuongId)}\n >\n <td style={{ textAlign: 'center' }}>{idx + 1}</td>\n <td>{item.HoTen}</td>\n <td style={{ textAlign: 'center' }}>{formatDecimalCurrency(item.NoCu ? item.NoCu : 0)}</td>\n <td style={{ textAlign: 'center' }}>{formatDecimalCurrency(item.CungKy ? item.CungKy : 0)}</td>\n <td style={{ textAlign: 'center' }}>{formatDecimalCurrency(getTongTamUng(item))}</td>\n <td style={{ textAlign: 'center' }}>\n {flag === Enum_Flag.add\n ? <div style={{ display: 'flex', alignItems: 'center' }}>\n <NumberFormat onValueChange={(e) => setLstTienTamUng(item, e.values.value)} />\n <ButtonIcon\n style={{ height: '23px', width: '25px', marginLeft: '5px' }}\n color=\"danger\"\n icon={'minus'}\n onClick={() => handleTruTamUng(item, bangLuong.DoiId)}\n />\n </div>\n : <>{item.TruTamUng ? formatDecimalCurrency(item.TruTamUng) : 0}</>\n }\n </td>\n <td style={{ textAlign: 'center' }}>{formatDecimalCurrency(getNoLaikiSau(item))}</td>\n <td style={{ textAlign: 'center' }}>{item.TNC ? item.TNC : 0}</td>\n <td style={{ textAlign: 'center' }}>{formatDecimalCurrency(item.DonGia ? item.DonGia : 0)}</td>\n <td style={{ textAlign: 'center' }}>{formatDecimalCurrency(item.ThanhTien ? item.ThanhTien : 0)}</td>\n {\n lstPhuCap.map((pc) => <td key={pc.Id} style={{ textAlign: 'center' }}>\n {\n flag === Enum_Flag.add\n ? <div style={{ display: 'flex', alignItems: 'center' }}>\n <NumberFormat onValueChange={(e) => { setValueLstPhuCap(item.BangLuongId, pc, e.values.value) }} />\n {\n pc.IsTruLuong\n ? <ButtonIcon\n style={{ height: '23px', width: '25px', marginLeft: '5px' }}\n color=\"danger\" icon={'minus'}\n onClick={() => handlePhucap(pc, item, bangLuong.DoiId)}\n />\n : <ButtonIcon\n style={{ height: '23px', width: '25px', marginLeft: '5px' }}\n color=\"success\"\n icon={'plus'}\n onClick={() => handlePhucap(pc, item, bangLuong.DoiId)}\n />\n }\n </div>\n : <>{item[pc.Id]} </>\n }\n </td>)\n }\n <td style={{ textAlign: 'center', fontWeight: '700' }}> {formatDecimalCurrency(item.ThucNhan ? item.ThucNhan : 0)}</td>\n {/* <td style={{ textAlign: 'center' }}> 0</td>\n <td style={{ textAlign: 'center' }}> 0</td> */}\n </tr>\n }, [BangLuongId, flag, handlePhucap, handleTruTamUng, lstPhuCap, setValueLstPhuCap])\n\n const renderBangLuong = React.useMemo(() => {\n return <>\n {\n dataBangLuong.length ? dataBangLuong.map((bangLuong, i) =>\n <>\n <tr key={i}>\n <td colSpan={16} style={{ background: '#f9ecce', fontWeight: 'bold' }}>{bangLuong.TenDoi}</td>\n </tr>\n {\n bangLuong.Items.map((item, idx) => renderTR(item, idx, i, bangLuong))\n }\n </>)\n :\n <tr>\n <td colSpan={16}>\n <EmptyNoData size=\"sm\" />\n </td>\n </tr>\n }\n </>\n }, [dataBangLuong, renderTR])\n\n return (\n <div className=\"index-form-tao-bang-luong\">\n <div className=\"tableFixHead\">\n <table>\n <thead>\n <tr style={{ background: '#006FCA' }}>\n <th className=\"th-table\" style={{ width: '2%', textAlign: 'center' }}>STT</th>\n <th className=\"th-table\" style={{ width: '13%' }}>Họ và tên</th>\n <th className=\"th-table\">Nợ cũ</th>\n <th className=\"th-table\" style={{ width: '7%', textAlign: 'center' }}>Tạm ứng trong kì</th>\n <th className=\"th-table\" style={{ width: '7%', textAlign: 'center' }}>Tổng tạm ứng</th>\n <th className=\"th-table\" style={{ textAlign: 'center', width: '12%' }}>Trừ tạm ứng</th>\n <th className=\"th-table\" style={{ textAlign: 'center' }}>Nợ lại kì sau</th>\n <th className=\"th-table\" style={{ textAlign: 'center' }}>TNC</th>\n <th className=\"th-table\" style={{ textAlign: 'center' }}>Đơn giá</th>\n <th className=\"th-table\" style={{ textAlign: 'center' }}>Thành tiền</th>\n {\n lstPhuCap.map((phuCap) =>\n <th\n key={phuCap.Id}\n className=\"th-table\"\n style={{ textAlign: 'center', width: '12%' }}\n >{phuCap.Name}</th>\n )\n }\n <th className=\"th-table\" style={{ textAlign: 'center' }}>Thực nhận</th>\n </tr>\n </thead>\n\n <tbody>\n {renderBangLuong}\n </tbody>\n </table>\n </div>\n <div className=\"footer-form\">\n <Button disabled={isDisable} color=\"primary\" onClick={() => xacNhanBangLuong()}>Xác nhận</Button>\n </div>\n </div>\n )\n}\n\nexport default FormTaoBanLuong\n\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport { fade, withStyles } from '@material-ui/core/styles';\nexport var styles = function styles(theme) {\n return {\n /* Styles applied to the root element. */\n root: {\n display: 'block',\n // Create a \"on paper\" color with sufficient contrast retaining the color\n backgroundColor: fade(theme.palette.text.primary, theme.palette.type === 'light' ? 0.11 : 0.13),\n height: '1.2em'\n },\n\n /* Styles applied to the root element if `variant=\"text\"`. */\n text: {\n marginTop: 0,\n marginBottom: 0,\n height: 'auto',\n transformOrigin: '0 60%',\n transform: 'scale(1, 0.60)',\n borderRadius: theme.shape.borderRadius,\n '&:empty:before': {\n content: '\"\\\\00a0\"'\n }\n },\n\n /* Styles applied to the root element if `variant=\"rect\"`. */\n rect: {},\n\n /* Styles applied to the root element if `variant=\"circle\"`. */\n circle: {\n borderRadius: '50%'\n },\n\n /* Styles applied to the root element if `animation=\"pulse\"`. */\n pulse: {\n animation: '$pulse 1.5s ease-in-out 0.5s infinite'\n },\n '@keyframes pulse': {\n '0%': {\n opacity: 1\n },\n '50%': {\n opacity: 0.4\n },\n '100%': {\n opacity: 1\n }\n },\n\n /* Styles applied to the root element if `animation=\"wave\"`. */\n wave: {\n position: 'relative',\n overflow: 'hidden',\n '&::after': {\n animation: '$wave 1.6s linear 0.5s infinite',\n background: \"linear-gradient(90deg, transparent, \".concat(theme.palette.action.hover, \", transparent)\"),\n content: '\"\"',\n position: 'absolute',\n transform: 'translateX(-100%)',\n // Avoid flash during server-side hydration\n bottom: 0,\n left: 0,\n right: 0,\n top: 0\n }\n },\n '@keyframes wave': {\n '0%': {\n transform: 'translateX(-100%)'\n },\n '60%': {\n // +0.5s of delay between each loop\n transform: 'translateX(100%)'\n },\n '100%': {\n transform: 'translateX(100%)'\n }\n },\n\n /* Styles applied when the component is passed children. */\n withChildren: {\n '& > *': {\n visibility: 'hidden'\n }\n },\n\n /* Styles applied when the component is passed children and no width. */\n fitContent: {\n maxWidth: 'fit-content'\n },\n\n /* Styles applied when the component is passed children and no height. */\n heightAuto: {\n height: 'auto'\n }\n };\n};\nvar Skeleton = /*#__PURE__*/React.forwardRef(function Skeleton(props, ref) {\n var _props$animation = props.animation,\n animation = _props$animation === void 0 ? 'pulse' : _props$animation,\n classes = props.classes,\n className = props.className,\n _props$component = props.component,\n Component = _props$component === void 0 ? 'span' : _props$component,\n height = props.height,\n _props$variant = props.variant,\n variant = _props$variant === void 0 ? 'text' : _props$variant,\n width = props.width,\n other = _objectWithoutProperties(props, [\"animation\", \"classes\", \"className\", \"component\", \"height\", \"variant\", \"width\"]);\n\n var hasChildren = Boolean(other.children);\n return /*#__PURE__*/React.createElement(Component, _extends({\n ref: ref,\n className: clsx(classes.root, classes[variant], className, hasChildren && [classes.withChildren, !width && classes.fitContent, !height && classes.heightAuto], animation !== false && classes[animation])\n }, other, {\n style: _extends({\n width: width,\n height: height\n }, other.style)\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Skeleton.propTypes = {\n /**\n * The animation.\n * If `false` the animation effect is disabled.\n */\n animation: PropTypes.oneOf(['pulse', 'wave', false]),\n\n /**\n * Optional children to infer width and height from.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object.isRequired,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes\n /* @typescript-to-proptypes-ignore */\n .elementType,\n\n /**\n * Height of the skeleton.\n * Useful when you don't want to adapt the skeleton to a text element but for instance a card.\n */\n height: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n\n /**\n * The type of content that will be rendered.\n */\n variant: PropTypes.oneOf(['text', 'rect', 'circle']),\n\n /**\n * Width of the skeleton.\n * Useful when the skeleton is inside an inline element with no width of its own.\n */\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string])\n} : void 0;\nexport default withStyles(styles, {\n name: 'MuiSkeleton'\n})(Skeleton);","import React from 'react';\nimport { createStyles, makeStyles } from '@material-ui/core/styles';\nimport AppBar from '@material-ui/core/AppBar';\nimport Toolbar from '@material-ui/core/Toolbar';\nimport Typography from '@material-ui/core/Typography';\nimport ButtonClose from '../base/Button/ButtonClose';\n\nconst useStyles = makeStyles((theme) =>\n createStyles({\n appBar: {\n position: 'relative',\n backgroundColor: '#006fca'\n },\n toolbar: {\n minHeight: 40\n },\n title: {\n marginLeft: theme.spacing(2),\n flex: 1,\n },\n }),\n);\n\nexport default function HeaderDialog(props) {\n const classes = useStyles();\n const { renderCustom, renderButton, title, onClose } = props;\n return (\n <AppBar className={classes.appBar}>\n <Toolbar className={classes.toolbar} variant=\"dense\">\n {renderCustom}\n <Typography variant=\"h6\" className={classes.title}>{title}</Typography>\n {renderButton}\n <ButtonClose onClick={onClose}>Đóng</ButtonClose>\n </Toolbar>\n </AppBar>\n );\n}\n","import React from 'react';\nimport { formatCurrency } from '../../../../../actions/util';\nimport EmptyNoData from '../../../../../components/Empty/EmptyNoData';\nimport '../css.scss';\n\nexport const formatTime = (thoiGian) => {\n\tconst ngay = new Date(thoiGian).getDate();\n\tconst thang = new Date(thoiGian).getMonth() + 1;\n\tconst nam = new Date(thoiGian).getFullYear();\n\tif (ngay && !thang && !nam) return `${ngay}`;\n\tif (ngay && thang && !nam) return `${ngay}/${thang}`;\n\treturn `${ngay}/${thang}/${nam}`;\n}\n\nfunction IndexTable({ dataKinhPhi }) {\n\n\treturn (\n\t\t<div className=\"index-table-kinh-phi-cong-trinh\">\n\t\t\t<div className=\"tableFixHead\">\n\t\t\t\t<table>\n\t\t\t\t\t<thead>\n\t\t\t\t\t\t<tr style={{ background: '#006FCA' }}>\n\t\t\t\t\t\t\t<th className=\"th-table\" style={{ width: '10%' }}>NGÀY THÁNG</th>\n\t\t\t\t\t\t\t<th className=\"th-table\" style={{ width: '40%' }}>NỘI DUNG CHI PHÍ</th>\n\t\t\t\t\t\t\t<th className=\"th-table\" style={{ width: '10%' }}>ĐVT</th>\n\t\t\t\t\t\t\t<th className=\"th-table\" style={{ width: '10%' }}>SỐ LƯỢNG</th>\n\t\t\t\t\t\t\t<th className=\"th-table\" style={{ width: '10%' }}>ĐƠN GIÁ</th>\n\t\t\t\t\t\t\t<th className=\"th-table\" style={{ width: '10%' }}>THÀNH TIỀN</th>\n\t\t\t\t\t\t\t<th className=\"th-table\" style={{ width: '10%' }}>GHI CHÚ</th>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t</thead>\n\n\t\t\t\t\t<tbody>\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tdataKinhPhi.length > 0\n\t\t\t\t\t\t\t\t? dataKinhPhi.map((data, i) =>\n\t\t\t\t\t\t\t\t\t<tr key={i}>\n\t\t\t\t\t\t\t\t\t\t<td style={{ textAlign: 'center' }}> {formatTime(data.ThoiGian)} </td>\n\t\t\t\t\t\t\t\t\t\t<td> {data.NoiDung} </td>\n\t\t\t\t\t\t\t\t\t\t<td style={{ textAlign: 'center' }}> {data.DVT} </td>\n\t\t\t\t\t\t\t\t\t\t<td style={{ textAlign: 'center' }}> {data.KhoiLuong} </td>\n\t\t\t\t\t\t\t\t\t\t<td style={{ textAlign: 'end' }}> {formatCurrency(data.DonGia)} </td>\n\t\t\t\t\t\t\t\t\t\t<td style={{ textAlign: 'end' }}> {formatCurrency(data.ThanhTien)} </td>\n\t\t\t\t\t\t\t\t\t\t<td> {data.GhiChu} </td>\n\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t: <tr>\n\t\t\t\t\t\t\t\t\t<td colSpan={7}>\n\t\t\t\t\t\t\t\t\t\t<EmptyNoData size=\"sm\"></EmptyNoData>\n\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t}\n\t\t\t\t\t</tbody>\n\t\t\t\t</table>\n\t\t\t</div>\n\t\t</div >\n\t)\n}\n\nexport default IndexTable\n\n","// extracted by mini-css-extract-plugin\nexport default {};","export default function createStyles(styles) {\n return styles;\n}"],"names":["setTranslateValue","direction","node","transform","rect","getBoundingClientRect","fakeTransform","computedStyle","window","getComputedStyle","getPropertyValue","offsetX","offsetY","transformValues","split","parseInt","concat","innerWidth","left","width","innerHeight","top","height","getTranslateValue","style","webkitTransform","defaultTimeout","enter","duration","enteringScreen","exit","leavingScreen","React","props","ref","children","_props$direction","inProp","in","onEnter","onEntered","onEntering","onExit","onExited","onExiting","_props$timeout","timeout","_props$TransitionComp","TransitionComponent","Transition","other","_objectWithoutProperties","theme","useTheme","childrenRef","handleOwnRef","instance","current","ReactDOM","handleRefIntermediary","useForkRef","handleRef","normalizedTransitionCallback","callback","isAppearing","undefined","handleEnter","reflow","handleEntering","transitionProps","getTransitionProps","mode","webkitTransition","transitions","create","_extends","easing","easeOut","transition","handleEntered","handleExiting","handleExit","sharp","handleExited","updatePosition","handleResize","debounce","addEventListener","clear","removeEventListener","nodeRef","appear","state","childProps","visibility","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","getNewDate","date","Date","getTime","areManyDateTimeRangesOverlapping","incommingDateTimeRange","existingDateTimeRanges","findIndex","existingDateTimeRange","areTwoDateTimeRangesOverlapping","c1","TuNgay","DenNgay","c2","TaoDotLuong","_ref","open","onCancel","lstDotLuong","onReloadTable","dotLuong","reqTenDotLuong","setReqTenDotLuong","useState","reqTuNgay","setReqTuNgay","reqDenNgay","setReqDenNgay","lstDotLuongState","setLstDotLuongState","nam","setNam","getFullYear","setNullValue","removeDotLuongUpdate","useCallback","newLstDotLuong","filter","f","Id","useEffect","Dot","handleChangeDotLuong","e","target","_jsx","className","_jsxs","Dialog","onClose","disableBackdropClick","disableEscapeKeyDown","maxWidth","DialogTitle","padding","border","id","DialogContent","paddingBottom","minWidth","fontSize","color","Input","min","type","name","placeholder","onChange","SelectYear","selectedNam","_Fragment","DatePicker","minDate","maxDate","display","justifyContent","paddingTop","Button","marginRight","onClick","onSave","checkDot","checkDateOverlap","CHECK_WARNING","req","Nam","DotLuongsEndpoint","then","CHECK_SUCCESS","cancelTaoDotLuong","EmptyNoData","Component","render","size","text","this","EmptyContainerSmall","EmptyContainerLarge","styled","div","SelectMonth","SelectSingle","options","data","option","i","push","valueRef","labelRef","defaultProps","getData","year","val","occurrences","Array","from","keys","map","k","Skeleton","variant","FullScreenDialog","renderCustom","renderButton","title","HeaderDialog","BodyDialog","_excluded","propTypes","tag","tagPropType","inverse","PropTypes","body","outline","cssModule","innerRef","Card","Tag","attributes","_objectWithoutPropertiesLoose","classes","mapToCssModules","classNames","AppBar","_props$color","_props$position","position","Paper","square","component","elevation","clsx","root","capitalize","withStyles","backgroundColorDefault","palette","grey","flexDirection","boxSizing","zIndex","appBar","flexShrink","positionFixed","right","positionAbsolute","positionSticky","positionStatic","positionRelative","colorDefault","backgroundColor","getContrastText","colorPrimary","primary","main","contrastText","colorSecondary","secondary","colorInherit","colorTransparent","disabled","onMenuScrollToBottom","isLoading","onInputChange","onMenuOpen","onMenuClose","isClearable","menuPlacement","values","select","Select","isDisabled","defaultValue","isSearchable","meta","Toolbar","_props$component","_props$disableGutters","disableGutters","_props$variant","gutters","alignItems","_defineProperty","paddingLeft","spacing","paddingRight","breakpoints","up","regular","mixins","toolbar","dense","minHeight","createStyles","styles","createStylesOriginal","_props$disableTypogra","disableTypography","Typography","margin","flex","colourStyles","multiValueLabel","menuPortal","base","control","lineHeight","cursor","borderRadius","menu","input","marginLeft","singleValue","marginTop","container","valueContainer","LoadingIndicator","SpinnerSmall","IndicatorsContainer","components","getStyles","ClearIndicator","innerProps","restInnerProps","FontAwesome","fa","verticalAlign","IndicatorSeparator","_ref2","alignSelf","marginBottom","DropdownIndicator","MenuList","maxHeight","overflowY","constructor","super","valueRequire","RefReactSelect","noOptionsMessage","loadingMessage","required","attribute","Fragment","ReactSelect","classNamePrefix","setState","menuPortalTarget","document","menuPosition","readOnly","tabIndex","autoComplete","opacity","onFocus","focus","getPlaceholder","LstDoiTuong","onFilter","_duAnSelected","setDuAnSelected","setYear","month","setMonth","day","setDay","denNgay","setDenNgay","tuNgay","setTuNgay","doiTuong","setDoiTuong","lstDoi","setLstDoi","selectedDoi","setSelectedDoi","isTaoDotLuong","setIsTaoDotLuong","setDotLuong","setLstDotLuong","lstDuAn","setLstDuAnDoiThueNgoai","loadLstDuAnDoiThueNgoai","_year","param","DuAnDoiThueNgoaiEndpoint","getAll","newArr","elm","indexElm","DuAnId","TenDuAn","DuAn","Name","Organs","OrganId","OrganName","Organization","LuongTheoNgayCong","loadLstDotLuong","_ref3","arr","item","TenDot","formatTime","selected","selectedDoiTuong","getOptionValue","find","getOptionLabel","ngay","getDate","thang","getMonth","selectedDotLuong","class","onSelectedDuAn","onSelected","handleFilter","duAnSelected","organization","_tuNgay","_denNgay","FormChamCongThueNgoai","PhuongThucChamCong","duAnId","reloadTable","doiUpdate","phuongThuc","setPhuongThuc","lamTron","setLamTron","soCong","setSoCong","noiDung","setNoiDung","donGiaLuong","setDonGiaLuong","newDate","setThoiGianTuNgay","handleChangeSoCong","NumberFormat","onValueChange","onSaveSoCong","reqKhoanChi","ThoiGian","NoiDung","KhoiLuong","DonGia","TienThanhToan","DMKhoanChiId","KhoanChisEndpoint","ResultObj","NgayCong","LamTron","Ngay","Thang","IsKhoiLuong","DotLuongId","TongLuong","ThucNhan","IsComplete","KhoanChiId","LoaiChamCong","BangLuongEndpoint","catch","CHECK_ERROR","deleteKhoanChi","initialData","FormUpdateChamCongThueNgoai","stateDoiUpdate","setStateDoiUpdate","handleChangeValue","inputName","prev","_phuongThuc","pre","includes","update","memo","isOpenCreateCong","setIsOpenCreateCong","isOpenEditCong","setIsOpenEditCong","lstChamCong","setLstChamCong","setDoiUpdate","isSkeleton","setIsSkeleton","loadLstCongThueNgoai","sort","a","b","ButtonReset","ButtonAdd","length","doi","textAlign","formatCurrency","ButtonEdit","openFormUpdateCong","ButtonDelete","CHECK_CONFIRM","res","bangLuong","isConfirmed","DeleteADMINODATA","colSpan","RenderSkeletons","nhanSuSelected","setNhanSuSelected","luongTheoNgay","setLuongTheoNgay","loadDanhSachChamCong","DoiTuong","DuAnIds","ChamCongEndpoint","getDanhSachChamCong","onCancelInput","background","idx","TenDoi","NhanSus","nhanSu","index","HoVaTen","LuongNhanVien","onKeyUp","maxLength","ChamCong","SoCong","ButtonSave","onSavePhongBan","NhanSuId","ButtonCancel","onEditCong","IndexChamCongDoiCTy","duAn","danhSachChamCong","setDanhSachChamCong","fontWeight","idxNs","_nhanSu$ChamCong","_nhanSu$ChamCong2","isModalBangLuong","setIsModalBangLuong","IndexChamCongDoiThueNgoai","IndexChamCongPhongBang","CardBody","FormTaoBanLuong","valueFilter","setValueFilter","Row","Col","md","FilterBox","TableChamCong","Slide","disableEnforceFocus","fullScreen","ownerDocument","createChainedFunction","_len","arguments","funcs","_key","reduce","acc","func","_len2","args","_key2","apply","flag","onCloseModal","lstPhuCap","reload","dataBangLuong","setDataBangLuong","truTamUng","setTruTamUng","truTamUngOld","setTruTamUngOld","reqBangLuong","setReqBangLuong","BangLuongId","setBangLuongId","lstTienPhuCap","setLstTienPhuCap","lstTienPhuCapOld","setLstTienPhuCapOld","isDisable","setIsDisable","truTamUngRef","useRef","truPhuCapRef","userNameLogin","TOKEN_CLIENT_INFO","username","createBangLuong","postExtension","newReq","newPhuCap","pc","PhuCapId","SoTien","Items","TruTamUng","PhuCaps","getTongTamUng","CungKy","getNoLaikiSau","numTruTamUng","handleTruTamUng","doiId","_soTien","_truTamUng","tu","_soTienOld","_truTamUngOld","slice","produce","draft","indexDoi","DoiId","indexBLe","d","indexBL","_ttu","setValueLstPhuCap","bangLuongId","phuCap","soTien","newLst","indexPc","handlePhucap","tienPhuCap","st","tienPhuCapOld","IsTruLuong","indexBl","valuePhuCap","soTienPhuCap","IsTheoCong","TNC","idxBangLuong","indexPhuCap","_bangLuong","renderTR","HoTen","formatDecimalCurrency","setLstTienTamUng","ButtonIcon","icon","ThanhTien","renderBangLuong","xacNhanBangLuong","danhSachLuong","forEach","cc","Number","NoCungKy","DanhSachLuong","NguoiLapPhieu","_props$animation","animation","hasChildren","Boolean","withChildren","fitContent","heightAuto","fade","transformOrigin","shape","content","circle","pulse","wave","overflow","action","hover","bottom","useStyles","makeStyles","ButtonClose","thoiGian","dataKinhPhi","DVT","GhiChu"],"sourceRoot":""}