????
Current Path : C:/inetpub/vhost/xaydung.gdtsolutions.vn/build/static/js/ |
Current File : C:/inetpub/vhost/xaydung.gdtsolutions.vn/build/static/js/3051.92c6abb3.chunk.js.map |
{"version":3,"file":"static/js/3051.92c6abb3.chunk.js","mappings":"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","sources":["views/quan-ly-du-an/DuAn/TabThongTin/DuAnVatLieu/CardDuAnVatLieu.js","views/quan-ly-du-an/DuAn/TabThongTin/DuAnVatLieu/IndexCreateDuAnVatLieu.js","components/select/DropdownListForm.js","views/quan-ly-du-an/DuAn/TabThongTin/DuAnVatLieu/CardDanhSachVatLieu.js"],"sourcesContent":["/* eslint-disable no-unused-vars */\nimport { useState, useEffect, useCallback, Fragment, useMemo } from 'react'\nimport { Button, Card, CardBody, CardFooter, CardHeader, Table, Input } from 'reactstrap'\nimport Swal from 'sweetalert2'\nimport { formatCurrency, formatDate, formatNumber } from '../../../../../actions/util';\nimport { CHECK_WARNING } from '../../../../../components/alert/Alert';\nimport EmptyNoData from '../../../../../components/Empty/EmptyNoData';\nimport { FontAwesome } from '../../../../../components/icon';\nimport NumberFormat from '../../../../../components/numberformat/NumberFormat';\nimport PopupThanhToanAll from './ThanhToan/PopupThanhToanAll';\n\nexport default function CardDuAnVatLieu(props) {\n const { IdDuAn, dataDonHang, onDeleted, onResetData, BatDau, Name } = props;\n\n const [dataDH, setDataDH] = useState([]);\n const [check, setCheck] = useState(true);\n const [valueChecked, setValueChecked] = useState(false);\n const [isOpenPopupThanhToan, setIsOpenPopupThanhToan] = useState(false);\n const [dataThanhToan, setDataThanhToan] = useState([])\n\n useEffect(() => {\n setDataDH(dataDonHang);\n }, [dataDonHang]);\n\n useEffect(() => {\n if (dataDH.length !== 0) {\n let check = dataDH.find(f => f.isDisabledNumber || f.isDisabledNumberDG);\n let checkTonKho = dataDH.find(f => f.isTonKho);\n if (check || checkTonKho) { setCheck(true); }\n else { setCheck(false); }\n } else {\n setCheck(true)\n }\n }, [dataDH])\n\n const ConfirmContinue = useCallback((text) => {\n return Swal.fire({\n title: text,\n icon: 'warning',\n showCancelButton: true,\n confirmButtonColor: '#3085d6',\n cancelButtonColor: '#d33',\n confirmButtonText: 'Đồng ý',\n cancelButtonText: 'Hủy'\n })\n }, [])\n\n const onDeletedItem = useCallback(\n (item) => {\n ConfirmContinue(`Bạn chắc chắn có muốn xóa vật liệu`).then(res => {\n if (res.value) {\n let data = dataDonHang.filter(f => f.DMVatLieuId !== item.DMVatLieuId || f.OrganId !== item.OrganId);\n onDeleted(item)\n setDataDH([...data])\n }\n })\n },\n [ConfirmContinue, dataDonHang, onDeleted]\n )\n\n const onChangeSoLuong = useCallback(\n (value, item, index) => {\n dataDH[index].SoLuong = value;\n dataDH[index].isTonKho = item.OrganId === '56dfff3b-a1a5-404e-937a-3b4d02ecc1db' ? parseFloat(value) > parseFloat(item.SoLuongTon) ? true : false : false;\n dataDH[index].isDisabledNumber = value === 0 ? true : false;\n setDataDH([...dataDH])\n },\n [dataDH],\n )\n\n const onChangeDonGia = useCallback(\n (value, item, index) => {\n dataDH[index].DonGia = value;\n dataDH[index].isDisabledNumberDG = value === 0 ? true : false;\n setDataDH([...dataDH])\n },\n [dataDH],\n )\n\n // const onChangeCheck = useCallback(\n // (value, item, index) => {\n // let itemChange = {\n // ...item,\n // checked: value\n // }\n // dataDH[index] = itemChange;\n // let checkAll = dataDH.find(f => !f.checked);\n // if (checkAll) {\n // setValueChecked(false)\n // } else {\n // setValueChecked(true)\n // }\n // setDataDH([...dataDH])\n // },\n // [dataDH],\n // )\n\n // const onChangeCheckAll = useCallback(\n // (value) => {\n // let arr = dataDH.map(item => {\n // return {\n // ...item,\n // checked: value\n // }\n // })\n // setDataDH([...arr])\n // setValueChecked(value)\n // },\n // [dataDH],\n // )\n\n const save = useCallback(() => {\n // let arr = dataDH.filter(f => f.checked);\n // if (arr.length !== 0) {\n // let check = dataDH.find(f => new Date(f.NgayNhap).getTime() < new Date(BatDau).getTime())\n // if (check) {\n // CHECK_WARNING('Trong đơn hàng có vật liệu thời gian nhỏ hơn ngày bắt đầu dự án')\n // } else {\n // let check = arr.find((f, i, data) => data.find(f2 => f2.NgayNhap !== f.NgayNhap))\n // if (check) {\n // CHECK_WARNING('Đơn hàng phải cùng ngày')\n // } else {\n // setIsOpenPopupThanhToan(true);\n // setDataThanhToan(arr)\n // }\n // }\n // } else {\n // CHECK_WARNING('Vui lòng chọn vật liệu để thanh toán')\n // }\n let check = dataDH.find(f => new Date(f.NgayNhap).getTime() < new Date(BatDau).getTime())\n if (check) {\n CHECK_WARNING('Trong đơn hàng có vật liệu thời gian nhỏ hơn ngày bắt đầu dự án')\n } else {\n let check = dataDH.find((f, i, data) => data.find(f2 => formatDate(f2.NgayNhap) !== formatDate(f.NgayNhap)))\n if (check) {\n CHECK_WARNING('Đơn hàng phải cùng ngày')\n } else {\n setIsOpenPopupThanhToan(true);\n setDataThanhToan(dataDH)\n }\n }\n },\n [BatDau, dataDH],\n )\n\n const resetData = useCallback(\n () => {\n setDataDH([]);\n onResetData(dataDH);\n },\n [dataDH, onResetData],\n )\n\n const ThanhToan = useMemo(() => <PopupThanhToanAll\n isOpen={isOpenPopupThanhToan}\n onClose={() => setIsOpenPopupThanhToan(false)}\n dataThanhToan={dataThanhToan}\n IdDuAn={IdDuAn}\n resetData={() => resetData()}\n Name={Name}\n />, [IdDuAn, Name, dataThanhToan, isOpenPopupThanhToan, resetData])\n\n return (\n <Fragment>\n <Card>\n <CardHeader style={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between' }}>\n <span><b>{dataDH[0]?.Organization?.OrganName ? `Đơn hàng của ${dataDH[0]?.Organization?.OrganName}` : 'ĐƠN HÀNG'}</b></span>\n <span><b>Ngày nhập:</b> {dataDH[0]?.NgayNhap ? formatDate(dataDH[0]?.NgayNhap) : ''}</span>\n </CardHeader>\n <CardBody>\n <Table size=\"sm\" bordered>\n <thead>\n <tr>\n {/* <th>\n <Input\n style={{ position: 'unset', margin: 0 }}\n checked={valueChecked}\n type=\"checkbox\"\n onChange={e => onChangeCheckAll(e.target.checked)}\n />\n </th> */}\n <th>STT</th>\n {/* <th>Ngày nhập</th> */}\n {/* <th>Cửa hàng</th> */}\n <th>Vật liệu</th>\n <th style={{ width: '25%' }}>Số lượng</th>\n <th>Đơn giá</th>\n <th>Thành tiền</th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n {\n dataDH.length !== 0 ? dataDH.map((item, index) => (\n <tr key={index}>\n {/* <td className=\"check\">\n <Input\n style={{ position: 'unset', margin: 0 }}\n type=\"checkbox\"\n checked={item.checked || false}\n onChange={e => onChangeCheck(e.target.checked, item, index)}\n />\n </td> */}\n <td>{index + 1}</td>\n {/* <td className=\"date\">{formatDate(item.NgayNhap)}</td> */}\n {/* <td className=\"name-cuahang\">{item.Organization.OrganName}</td> */}\n <td className=\"name-vatlieu\">{item.DMVatLieu.Name} ({item.DMVatLieu.DMDonViTinh.Name})</td>\n <td className=\"soLuong\">\n <NumberFormat\n className=\"mb-1\"\n onFocus={e => e.target.select()}\n thousandSeparator={'.'}\n decimalSeparator={','}\n value={item.SoLuong || 0}\n decimalScale={8}\n invalid={item.isDisabledNumber || item.isTonKho}\n onValueChange={(value) => onChangeSoLuong(value.values.floatValue, item, index)}\n />\n <span style={{ fontSize: 9, display: (item.isDisabledNumber || item.isTonKho) ? '' : 'none', color: 'red' }}>\n {item.isTonKho ? `* Số lượng trong kho chỉ còn: ${formatNumber(item.SoLuongTon)}` : '* Vui lòng nhập số lượng'}\n </span>\n </td>\n <td className=\"money\">\n <NumberFormat\n className=\"mb-1\"\n onFocus={e => e.target.select()}\n thousandSeparator={'.'}\n decimalSeparator={','}\n value={item.DonGia || 0}\n invalid={item.isDisabledNumberDG}\n onValueChange={(value) => onChangeDonGia(value.values.floatValue, item, index)}\n />\n <span style={{ fontSize: 9, display: item.isDisabledNumberDG ? '' : 'none', color: 'red' }}>* Vui lòng nhập đơn giá</span>\n {/* {formatCurrency(item.DonGia)} */}\n </td>\n <td className=\"money\">{formatCurrency(item.SoLuong * item.DonGia)}</td>\n <td className=\"action\">\n <Button onClick={() => onDeletedItem(item)} size=\"sm\" color=\"danger\"><FontAwesome fa=\"fas fa-times\" /></Button>\n </td>\n </tr>\n )) : <tr>\n <td colSpan=\"9\"><EmptyNoData size=\"sm\" text={'Chưa có dữ liệu. Vui lòng thêm dữ liệu'} /></td>\n </tr>\n }\n </tbody>\n </Table>\n </CardBody>\n <CardFooter style={{ textAlign: 'right' }}>\n <Button className=\"mr-1\" onClick={save} color=\"success\" disabled={check}><FontAwesome fa=\"fas fa-save\" /><span style={{ marginLeft: 5 }}>Tạo đơn hàng</span></Button>\n </CardFooter>\n </Card>\n {ThanhToan}\n </Fragment>\n )\n}\n","/* eslint-disable no-unused-vars */\nimport React, { Fragment, useRef } from 'react'\nimport { Col, Row } from 'reactstrap'\nimport CardDanhSachVatLieu from './CardDanhSachVatLieu'\nimport CardDuAnVatLieu from './CardDuAnVatLieu'\nimport './style.scss'\n\nconst IndexCreateDuAnVatLieu = React.forwardRef((props, ref) => {\n const { IdDuAn, BatDau, Name } = props;\n const refCardDanhSachVatLieu = useRef();\n const [dataDonHang, setDataDonHang] = React.useState([]);\n\n const getDataDonHang = React.useCallback(\n (data) => {\n setDataDonHang(data)\n },\n [],\n )\n\n const onDeleted = React.useCallback(\n (item) => {\n let data = dataDonHang.filter(f => f.DMVatLieuId !== item.DMVatLieuId || f.OrganId !== item.OrganId);\n setDataDonHang([...data])\n refCardDanhSachVatLieu.current.onDeleted(item);\n },\n [dataDonHang],\n )\n\n const onResetData = React.useCallback(\n (dataDH) => {\n setDataDonHang([]);\n refCardDanhSachVatLieu.current.onResetData(dataDH);\n },\n [],\n )\n\n return (\n <Fragment>\n <Row className=\"row-DuAnVatLieu\">\n <Col md=\"5\" className=\"col-CardDanhSachVatLieu\">\n <CardDanhSachVatLieu getDataDonHang={getDataDonHang} ref={refCardDanhSachVatLieu} IdDuAn={IdDuAn} />\n </Col>\n <Col md=\"7\" className=\"col-CardDuAnVatLieu\">\n <CardDuAnVatLieu Name={Name} BatDau={BatDau} onDeleted={onDeleted} dataDonHang={dataDonHang} IdDuAn={IdDuAn} onResetData={onResetData} />\n </Col>\n </Row>\n </Fragment>\n )\n})\nexport default IndexCreateDuAnVatLieu;\n","import React, { Component } from 'react';\nimport Select from './Select';\nimport { callApi2 } from '../../service/api';\n\nconst styles = {\n multiValueLabel: styles => ({ ...styles, padding: '0px 0px 0px 6px', fontSize: 13 }),\n control: styles => ({\n ...styles,\n backgroundColor: 'white',\n height: '28.38px',\n minHeight: '28.38px',\n fontSize: '12px',\n lineHeight: '1.5',\n cursor: 'pointer',\n borderRadius: '4px'\n }),\n option: (styles) => ({ ...styles, fontSize: '12px', cursor: 'pointer' }),\n input: styles => ({ ...styles, position: 'unset' }),\n placeholder: styles => ({ ...styles, marginLeft: 5, marginRight: 5 }),\n singleValue: (styles, { data }) => ({ ...styles, transform: 'inherit', top: 'unset' }),\n container: styles => ({ ...styles, width: '100%' }),\n valueContainer: styles => ({ ...styles, padding: '0px 5px' }),\n indicatorsContainer: styles => ({ ...styles, padding: '0px 5px' }),\n indicatorContainer: styles => ({ ...styles, padding: '0px 5px !important', fontSize: '12px' }),\n};\n\nclass DropdownListForm extends Component {\n constructor(props) {\n super(props);\n this.state = {\n data: [],\n value: null,\n selected: null,\n isLoading: false\n };\n }\n\n componentDidMount() {\n this.setState({ isLoading: true });\n let { options, valueField, textField } = this.props;\n\n if (options) {\n let data = options.map(x => ({\n value: x[valueField],\n label: x[textField],\n obj: x\n })\n );\n this.setState({ data, isLoading: false });\n this.setStateSelected(this.state.value);\n } else {\n this.loadDataFromApi();\n }\n }\n\n loadDataFromApi = () => {\n let { columns, odata, url, where, valueField, textField } = this.props;\n let data = [];\n let _url = \"\";\n if (odata !== false) {\n _url = `${url}`;\n\n if (where) {\n _url += `/?$filter=${where}&`;\n } else {\n _url += `/?`;\n }\n\n if (columns && columns.length > 0) {\n _url += `$select=${this.props.columns.join()}`;\n }\n } else {\n _url = this.props.url;\n }\n\n callApi2(_url, \"GET\", null, odata)\n .then((res) => {\n if (odata !== false) {\n res.value.forEach(x => {\n data.push({\n value: x[valueField],\n label: x[textField],\n obj: x\n })\n });\n } else {\n data = res;\n }\n\n this.setState({ data, isLoading: false });\n this.setStateSelected(this.state.value);\n })\n }\n\n getSnapshotBeforeUpdate(prevProps, prevState) {\n if (prevProps.value !== this.props.value) {\n this.setState({ value: this.props.value });\n this.setStateSelected(this.props.value);\n return this.props.value || null;\n } else\n return null;\n }\n\n setStateSelected(value) {\n if (this.props.isMulti) {\n //console.log(\"getOptionsMulti\");\n this.setState({ selected: this.getOptionsMulti(value) });\n } else {\n //console.log(\"getOptionsSingle\");\n this.setState({ selected: this.getOptionsSingle(value) });\n }\n }\n\n getOptionsSingle(value) {\n let selected = null;\n let { data } = this.state;\n if (data && data.length > 0 && value) {\n for (let i = 0; i < data.length; i++) {\n if (data[i].value && data[i].value === value) {\n selected = data[i];\n break;\n } else if (data[i].options) {\n for (let j = 0; j < data[i].options.length; j++) {\n if (data[i].options[j].value && data[i].options[j].value === value) {\n selected = data[i].options[j];\n break;\n }\n }\n }\n }\n }\n\n return selected;\n }\n\n getOptionsMulti(value) {\n let selected = [];\n let { data } = this.state;\n if (data && data.length > 0 && value) {\n for (let i = 0; i < data.length; i++) {\n let current = data[i];\n for (let j = 0; j < value.length; j++) {\n if (current.value && current.value === value[j]) {\n selected.push(current);\n }\n }\n }\n }\n\n return selected;\n }\n\n componentDidUpdate(prevProps, prevState, snapshot) {\n if (this.props.where !== prevProps.where) {\n this.loadDataFromApi();\n }\n }\n\n onChange = (e, meta) => {\n this.setState({ selected: e });\n if (this.props.isMulti) {\n var list = [];\n for (let i = 0; i < e.length; i++) {\n list.push(e[i].value);\n }\n this.props.onChange(list, null);\n } else {\n this.props.onChange(e ? e.value : null, e ? e.obj : null);\n }\n }\n\n render() {\n let { placeholder, isMulti, isDetail, value } = this.props;\n let selected = isMulti ? this.getOptionsMulti(value) : this.getOptionsSingle(value);\n //isMulti = isMulti && !isDetail;\n return (\n this.state.data.length > 0 && isDetail ?\n <span>{selected && selected.label}</span>\n :\n <Select\n isMulti={isMulti}\n isLoading={this.state.isLoading}\n isDisabled={this.props.disabled}\n isClearable={true}\n className=\"dropdownlist\"\n value={selected}\n styles={styles}\n options={this.state.data}\n onChange={this.onChange}\n placeholder={placeholder}\n />\n )\n }\n}\n\nexport default DropdownListForm\n","/* eslint-disable no-unused-vars */\nimport React, { useState, useEffect, useMemo, useCallback, useImperativeHandle } from 'react'\nimport { Card, CardBody, CardHeader, Table, Button, Row, Col, Input } from 'reactstrap'\nimport { formatCurrency, formatDate, formatISODate, formatDateNormal, formatNumber } from '../../../../../actions/util';\nimport EmptyNoData from '../../../../../components/Empty/EmptyNoData';\nimport DropdownListForm from '../../../../../components/select/DropdownListForm';\nimport { CuaHangVatLieusEndpoint } from '../../../../../service/GDTCores';\nimport { Skeleton } from '@material-ui/lab';\nimport NumberFormat from '../../../../../components/numberformat/NumberFormat';\nimport { Fragment } from 'react';\nimport { InputDate } from '../../../../../components/base/Input';\nimport { FontAwesome } from '../../../../../components/icon';\nimport DropdownListForm2 from '../../../../../components/select/DropdownListForm2';\nimport { _Enums_DoiTuong } from '../../../../action/defaultEnums'\nimport { CHECK_CONFIRM, CHECK_WARNING } from '../../../../../components/alert/Alert';\nimport { callApiKho } from '../../../../../service/api';\n\nexport const StatusChoose = {\n Chon: 'Chon',\n ChonVaThanhToan: 'ChonVaThanhToan'\n}\n\nconst CardDanhSachVatLieu = React.forwardRef((props, ref) => {\n const { getDataDonHang } = props;\n const [loading, setLoading] = useState(false);\n const [date, setDate] = useState(formatDateNormal(new Date()) + 'T00:00:00+07:00');\n const [dataDonHang, setDataDonHang] = useState([]);\n const [IdCuaHang, setIdCuaHang] = useState(null);\n const [dataVatLieuCuaHang, setDataVatLieuCuaHang] = useState([]);\n const [newDataVatLieuCuaHang, setNewDataVatLieuCuaHang] = useState([]);\n const [textSearch, setTextSearch] = useState('');\n\n useImperativeHandle(\n ref, () => ({\n onDeleted: (item) => {\n let data = dataDonHang.filter(f => f.DMVatLieuId !== item.DMVatLieuId || f.OrganId !== item.OrganId);\n check(item, false);\n setDataDonHang([...data])\n },\n onResetData: (data) => {\n data.forEach(item => check(item, false))\n setDataDonHang([])\n }\n })\n );\n\n const getDataCuaHangVatLieu = useCallback(\n (IdCuaHang) => {\n let filter = [];\n filter.push(`OrganId eq ${IdCuaHang}`);\n filter.push(`DMVatLieu/Status eq true`);\n CuaHangVatLieusEndpoint.getCuaHangVatLieuByFilterAndSearch(filter, textSearch)\n .then(res => {\n let arr = [];\n res.value.forEach(item => {\n let element = { ...item }\n let check = dataDonHang.find(f => f.DMVatLieuId === item.DMVatLieuId && f.OrganId === item.OrganId)\n if (check) {\n element.isDisabledBtn = true;\n }\n element.isDisabledNumber = true;\n element.NgayNhap = formatISODate(new Date());\n element.formatNgayNhap = formatDate(new Date())\n arr.push(element)\n })\n setDataVatLieuCuaHang(arr)\n setNewDataVatLieuCuaHang(arr)\n }).then(() => setLoading(false))\n },\n [dataDonHang, textSearch],\n )\n\n const onChangeSoLuong = useCallback(\n (value, item, index) => {\n let itemChange = {\n ...item,\n SoLuong: value,\n isDisabledNumber: value === 0 ? true : false,\n isTonKho: false\n }\n newDataVatLieuCuaHang[index] = itemChange;\n setNewDataVatLieuCuaHang([...newDataVatLieuCuaHang])\n },\n [newDataVatLieuCuaHang],\n )\n\n const check = useCallback(\n async (item, isDisabledBtn) => {\n let itemChange = dataVatLieuCuaHang.find(f => f.DMVatLieuId === item.DMVatLieuId && f.OrganId === item.OrganId)\n let index = dataVatLieuCuaHang.findIndex(f => f.DMVatLieuId === item.DMVatLieuId && f.OrganId === item.OrganId);\n let change = {\n ...itemChange,\n SoLuong: 0,\n isDisabledBtn: isDisabledBtn\n }\n dataVatLieuCuaHang[index] = change;\n setDataVatLieuCuaHang(dataVatLieuCuaHang);\n setNewDataVatLieuCuaHang(dataVatLieuCuaHang);\n },\n [dataVatLieuCuaHang],\n )\n\n const handleClick = useCallback(\n async (item, index) => {\n let itemChange = {\n ...item,\n NgayNhap: formatISODate(new Date()),\n formatNgayNhap: formatDate(date),\n }\n let arr = [...dataDonHang, itemChange];\n let checkOrganId = dataDonHang.find(find => find.OrganId !== item.OrganId);\n const isKho = IdCuaHang === '56dfff3b-a1a5-404e-937a-3b4d02ecc1db';\n if (checkOrganId) {\n CHECK_CONFIRM(`Đơn hàng hiện tại của cửa hàng ${checkOrganId.Organization.OrganName}. Nếu bạn nhấn đồng ý thì dữ liệu đơn hàng sẽ mất`, \"CẢNH BÁO\").then((res) => {\n if (res && res.isConfirmed) {\n setDataDonHang([]);\n getDataDonHang([]);\n }\n })\n } else {\n if (isKho) {\n const { SoLuongTon } = await callApiKho(`SanPham/ThongTinSanPham?maSanPham=${item.MaSPTonKho}`, 'POST', null, false);\n if (parseFloat(itemChange.SoLuong) <= (SoLuongTon || 0)) {\n const index = arr.findIndex(f => f.DMVatLieuId === item.DMVatLieuId)\n arr[index].SoLuongTon = SoLuongTon;\n setDataDonHang(arr);\n getDataDonHang(arr);\n check(item, true);\n } else {\n CHECK_WARNING(`Số lượng tồn của sản phẩm ${item.DMVatLieu.Name}: ${formatNumber(SoLuongTon)}`, `Số lượng tồn trong kho không đủ để cung cấp!`)\n }\n } else {\n setDataDonHang(arr);\n getDataDonHang(arr);\n check(item, true);\n }\n }\n setTextSearch('');\n },\n [IdCuaHang, check, dataDonHang, date, getDataDonHang],\n )\n\n const handleClickAll = useCallback(async () => {\n const isKho = newDataVatLieuCuaHang[0].OrganId === '56dfff3b-a1a5-404e-937a-3b4d02ecc1db';\n let dataSP = newDataVatLieuCuaHang;\n\n const checkCuaHang = dataDonHang.find(find => newDataVatLieuCuaHang.find(find2 => find2.OrganId !== find.OrganId));\n if (checkCuaHang) {\n CHECK_CONFIRM(`Đơn hàng hiện tại của cửa hàng ${checkCuaHang.Organization.OrganName}. Nếu bạn nhấn đồng ý thì dữ liệu đơn hàng sẽ mất`, \"CẢNH BÁO\").then((res) => {\n if (res && res.isConfirmed) {\n setDataDonHang([]);\n getDataDonHang([]);\n }\n })\n } else if (isKho) {\n const dataMaSP = dataSP.filter(f => f.SoLuong).map(item => ({ Text: item.MaSPTonKho }))\n const dataSPKho = await callApiKho(`SanPham/ThongTinSanPhamTanPhat`, 'POST', JSON.stringify(dataMaSP), false)\n dataSP.forEach((item, index) => {\n let check = dataSPKho.find(f => f.MaSanPham === item.MaSPTonKho);\n if (check) {\n if (parseFloat(check.SoLuongTon) >= parseFloat(item.SoLuong)) {\n dataSP[index].isTonKho = false;\n dataSP[index].SoLuongTon = check.SoLuongTon || 0\n }\n else {\n dataSP[index].isTonKho = true;\n dataSP[index].SoLuongTon = check.SoLuongTon || 0\n }\n } else {\n dataSP[index].isTonKho = false\n }\n });\n setNewDataVatLieuCuaHang([...dataSP]);\n const checkSoLuongTon = dataSP.find(f => f.isTonKho);\n if (checkSoLuongTon) {\n CHECK_WARNING('Có sản phẩm không đủ số lượng tồn');\n } else {\n let arr = dataSP.filter(f => f.SoLuong).map(m => ({ ...m, NgayNhap: date }));\n if (arr.length > 0) {\n arr.forEach(item => check(item, true));\n setDataDonHang([...dataDonHang, ...arr]);\n getDataDonHang([...dataDonHang, ...arr]);\n }\n }\n } else {\n let arr = newDataVatLieuCuaHang.filter(f => f.SoLuong).map(m => ({ ...m, NgayNhap: date }));\n if (arr.length > 0) {\n arr.forEach(item => check(item, true));\n setDataDonHang([...dataDonHang, ...arr]);\n getDataDonHang([...dataDonHang, ...arr]);\n }\n }\n }, [check, dataDonHang, date, getDataDonHang, newDataVatLieuCuaHang])\n\n const handleChangeCuaHang = useCallback(\n (value) => {\n setIdCuaHang(value)\n setLoading(true);\n getDataCuaHangVatLieu(value);\n },\n [getDataCuaHangVatLieu],\n )\n\n const handleChangeVatLieu = useCallback(\n (event) => {\n setTextSearch(event.target.value)\n if (event.key === 'Enter') {\n getDataCuaHangVatLieu(IdCuaHang);\n }\n },\n [IdCuaHang, getDataCuaHangVatLieu],\n )\n\n return (\n <Fragment>\n <Card>\n <CardHeader>\n <Row className=\"d-flex align-items-center w-100\">\n <Col md=\"3\"><b>Chọn cửa hàng:</b></Col>\n <Col md=\"6\">\n <DropdownListForm2\n url=\"GDTCores/Organizations\"\n where={`Status eq true and DoiTuong eq '${_Enums_DoiTuong.CuaHang}'`}\n valueField='Id'\n textField='OrganName'\n placeholder=\"Chọn cửa hàng...\"\n value={IdCuaHang}\n onChange={(value) => handleChangeCuaHang(value)}\n />\n </Col>\n </Row>\n </CardHeader>\n <CardBody>\n <div style={{ display: 'flex', justifyContent: 'space-between', marginBottom: 5 }}>\n <span style={{ display: 'flex', alignItems: 'flex-end', fontSize: 15 }}>Danh sách vật liệu cửa hàng</span>\n <InputDate\n style={{ height: '2rem', width: '200px' }}\n className=\"date-time pay-time text-right\"\n value={date}\n onChange={date => setDate(date)}\n />\n </div>\n <div style={{ display: 'flex', justifyContent: 'space-between', marginBottom: 5 }}>\n <Input\n style={{ width: 300 }}\n placeholder=\"Nhập tên vật liệu...\"\n onChange={(event) => handleChangeVatLieu(event)}\n onKeyPress={(event) => handleChangeVatLieu(event)}\n value={textSearch}\n />\n <Button color=\"primary\" onClick={() => handleClickAll()}>Chọn tất cả</Button>\n </div>\n <div className=\"table-DanhSachVatLieu\">\n <Table size=\"sm\" bordered>\n <thead>\n <tr>\n <th>STT</th>\n <th>Vật liệu</th>\n <th>Số lượng</th>\n <th>Đơn giá</th>\n <th>Thao tác</th>\n </tr>\n </thead>\n <tbody>\n {\n loading ? Array.from(Array(5).keys()).map((item, index) => (\n <tr key={index}>\n <td colSpan=\"6\"><Skeleton key={index} /></td>\n </tr>\n )) : newDataVatLieuCuaHang.length !== 0 ? newDataVatLieuCuaHang.map((item, index) => (\n <tr key={index}>\n <td className=\"stt\">{index + 1}</td>\n <td className=\"name\">{item.DMVatLieu.Name}</td>\n <td className=\"soLuong\">\n {\n <Fragment>\n <NumberFormat\n disabled={item.isDisabledBtn}\n className=\"mb-1\"\n onFocus={e => e.target.select()}\n thousandSeparator={'.'}\n decimalSeparator={','}\n decimalScale={8}\n value={item.SoLuong || 0}\n invalid={item.isDisabledBtn ? false : (item.isDisabledNumber || item.isTonKho)}\n onValueChange={(value) => onChangeSoLuong(value.values.floatValue, item, index)}\n />\n {!item.isDisabledBtn && <span style={{ fontSize: 9, display: item.isDisabledNumber || item.isTonKho ? '' : 'none', color: 'red' }}>\n {item.isTonKho ? `* Số lượng trong kho chỉ còn: ${item.SoLuongTon ? formatNumber(item.SoLuongTon) : 0}` : '* Vui lòng nhập số lượng'}\n </span>}\n </Fragment>\n }\n </td>\n <td className=\"dongia\">{formatCurrency(item.DonGia)}</td>\n <td className=\"action\">\n <Button className=\"mr-1\" disabled={item.isDisabledBtn || item.isDisabledNumber} onClick={() => handleClick(item, index)} size=\"sm\" color=\"primary\">Chọn</Button>\n </td>\n </tr>\n )) : <tr>\n <td colSpan=\"6\">\n <EmptyNoData size=\"sm\" text={'Chưa có dữ liệu. Vui lòng chọn vật liệu !'} />\n </td>\n </tr>\n }\n </tbody>\n </Table>\n </div>\n </CardBody>\n </Card>\n </Fragment>\n )\n})\n\nexport default CardDanhSachVatLieu;\n"],"names":["CardDuAnVatLieu","props","_dataDH$","_dataDH$$Organization","_dataDH$2","_dataDH$2$Organizatio","_dataDH$3","_dataDH$4","IdDuAn","dataDonHang","onDeleted","onResetData","BatDau","Name","dataDH","setDataDH","useState","check","setCheck","valueChecked","setValueChecked","isOpenPopupThanhToan","setIsOpenPopupThanhToan","dataThanhToan","setDataThanhToan","useEffect","length","find","f","isDisabledNumber","isDisabledNumberDG","checkTonKho","isTonKho","ConfirmContinue","useCallback","text","Swal","title","icon","showCancelButton","confirmButtonColor","cancelButtonColor","confirmButtonText","cancelButtonText","onDeletedItem","item","then","res","value","data","filter","DMVatLieuId","OrganId","onChangeSoLuong","index","SoLuong","parseFloat","SoLuongTon","onChangeDonGia","DonGia","save","Date","NgayNhap","getTime","CHECK_WARNING","i","f2","formatDate","resetData","ThanhToan","useMemo","_jsx","PopupThanhToanAll","isOpen","onClose","_jsxs","Fragment","children","Card","CardHeader","style","display","alignItems","justifyContent","Organization","OrganName","CardBody","Table","size","bordered","width","map","className","DMVatLieu","DMDonViTinh","NumberFormat","onFocus","e","target","select","thousandSeparator","decimalSeparator","decimalScale","invalid","onValueChange","values","floatValue","fontSize","color","formatNumber","formatCurrency","Button","onClick","FontAwesome","fa","colSpan","EmptyNoData","CardFooter","textAlign","disabled","marginLeft","React","ref","refCardDanhSachVatLieu","useRef","setDataDonHang","getDataDonHang","current","Row","Col","md","CardDanhSachVatLieu","Component","StatusChoose","Chon","ChonVaThanhToan","loading","setLoading","date","setDate","formatDateNormal","IdCuaHang","setIdCuaHang","dataVatLieuCuaHang","setDataVatLieuCuaHang","newDataVatLieuCuaHang","setNewDataVatLieuCuaHang","textSearch","setTextSearch","useImperativeHandle","forEach","getDataCuaHangVatLieu","push","CuaHangVatLieusEndpoint","getCuaHangVatLieuByFilterAndSearch","arr","element","isDisabledBtn","formatISODate","formatNgayNhap","itemChange","async","findIndex","change","handleClick","checkOrganId","isKho","CHECK_CONFIRM","isConfirmed","callApiKho","MaSPTonKho","handleClickAll","dataSP","checkCuaHang","find2","dataMaSP","Text","dataSPKho","JSON","stringify","MaSanPham","m","handleChangeCuaHang","handleChangeVatLieu","event","key","DropdownListForm2","url","where","_Enums_DoiTuong","CuaHang","valueField","textField","placeholder","onChange","marginBottom","InputDate","height","Input","onKeyPress","Array","from","keys","Skeleton"],"sourceRoot":""}