????

Your IP : 216.73.216.152


Current Path : C:/inetpub/vhost/xaydung.gdtsolutions.vn/build/static/js/
Upload File :
Current File : C:/inetpub/vhost/xaydung.gdtsolutions.vn/build/static/js/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":""}