????

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/9599.7447ec1b.chunk.js.map

{"version":3,"file":"static/js/9599.7447ec1b.chunk.js","mappings":"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","sources":["components/Empty/EmptyNoData.js","webpack://@qlxd/frontend/./src/views/bao-cao/kinh-phi-cong-trinh/Component/css.scss?3539","components/export/ExcelPlugin/utils/helpers.js","components/export/ExcelExtensions/WorksheetWrapper.js","components/export/ExcelExtensions/ExcelWorkbook.js","components/export/ExcelExtensions/index.js","components/export/ExcelPlugin/utils/constant.js","views/bao-cao/kinh-phi-cong-trinh/Component/TableBaoCao/index.js","views/bao-cao/kinh-phi-cong-trinh/ExportExcel.js"],"sourcesContent":["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`","// extracted by mini-css-extract-plugin\nexport default {};","import { ALPHABET, NUM_LETTERS, MONEY_LETTERS } from './constant';\n/** @requires ./types */\n\n/**\n * Chuyển số thứ tự cột thành chữ trong Excel\n * @param {number} n Số thứ tự cột\n * @returns {string}\n */\nexport function numToStrAddr(n) {\n    if (!n) return '';\n    n--;\n    if (n < ALPHABET.length) return ALPHABET[n];\n    const remain = n % ALPHABET.length;\n    return `${numToStrAddr(Math.floor(n / ALPHABET.length))}${ALPHABET[remain]}`\n}\n\n/**\n * Chuyển địa chỉ về dạng chuẩn\n * @param {ExcelAddress} addr\n * @returns {string}\n */\nexport function convertAddr(addr) {\n    if (typeof addr == \"string\") return addr;\n    if (Array.isArray(addr) && addr.length > 1) {\n        const [t, l, b, r] = addr;\n        if (b && r) return numToStrAddr(l) + t + \":\" + numToStrAddr(b) + r;\n        return numToStrAddr(l) + t;\n    }\n    throw new Error(\"Sai địa chỉ ô Excel\");\n}\n\n/**\n * 1. Hàm đọc số có ba chữ số;\n * @param {number} baso nhóm 3 chữ số\n */\nfunction DocSo3ChuSo(baso) {\n    var tram;\n    var chuc;\n    var donvi;\n    var KetQua = \"\";\n    tram = parseInt(baso / 100);\n    chuc = parseInt((baso % 100) / 10);\n    donvi = baso % 10;\n    if (tram === 0 && chuc === 0 && donvi === 0) return \"\";\n    if (tram !== 0) {\n        KetQua += NUM_LETTERS[tram] + \" trăm \";\n        if ((chuc === 0) && (donvi !== 0)) KetQua += \" linh \";\n    }\n    if ((chuc !== 0) && (chuc !== 1)) {\n        KetQua += NUM_LETTERS[chuc] + \" mươi\";\n        if ((chuc === 0) && (donvi !== 0)) KetQua = KetQua + \" linh \";\n    }\n    if (chuc === 1) KetQua += \" mười \";\n    switch (donvi) {\n        case 1:\n            if ((chuc !== 0) && (chuc !== 1)) {\n                KetQua += \" mốt \";\n            }\n            else {\n                KetQua += NUM_LETTERS[donvi];\n            }\n            break;\n        case 5:\n            if (chuc === 0) {\n                KetQua += NUM_LETTERS[donvi];\n            }\n            else {\n                KetQua += \" lăm \";\n            }\n            break;\n        default:\n            if (donvi !== 0) {\n                KetQua += NUM_LETTERS[donvi];\n            }\n            break;\n    }\n    return KetQua;\n}\n\n/**\n * 2. Hàm đọc số thành chữ (Sử dụng hàm đọc số có ba chữ số)\n * @param {BigInt} SoTien số tiền\n */\nexport function DocTienBangChu(SoTien) {\n    var lan = 0;\n    var i = 0;\n    var so = 0;\n    var KetQua = \"\";\n    var tmp = \"\";\n    var ViTri = [];\n    if (SoTien < 0) return \"Số tiền âm !\";\n    if (SoTien === 0) return \"Không đồng !\";\n    if (SoTien > 0) {\n        so = SoTien;\n    }\n    else {\n        so = -SoTien;\n    }\n    if (SoTien > 8999999999999999) {\n        //SoTien = 0;\n        return \"Số quá lớn!\";\n    }\n    ViTri[5] = Math.floor(so / 1000000000000000);\n    if (isNaN(ViTri[5]))\n        ViTri[5] = \"0\";\n    so = so - parseFloat(ViTri[5].toString()) * 1000000000000000;\n    ViTri[4] = Math.floor(so / 1000000000000);\n    if (isNaN(ViTri[4]))\n        ViTri[4] = \"0\";\n    so = so - parseFloat(ViTri[4].toString()) * 1000000000000;\n    ViTri[3] = Math.floor(so / 1000000000);\n    if (isNaN(ViTri[3]))\n        ViTri[3] = \"0\";\n    so = so - parseFloat(ViTri[3].toString()) * 1000000000;\n    ViTri[2] = parseInt(so / 1000000);\n    if (isNaN(ViTri[2]))\n        ViTri[2] = \"0\";\n    ViTri[1] = parseInt((so % 1000000) / 1000);\n    if (isNaN(ViTri[1]))\n        ViTri[1] = \"0\";\n    ViTri[0] = parseInt(so % 1000);\n    if (isNaN(ViTri[0]))\n        ViTri[0] = \"0\";\n    if (ViTri[5] > 0) {\n        lan = 5;\n    }\n    else if (ViTri[4] > 0) {\n        lan = 4;\n    }\n    else if (ViTri[3] > 0) {\n        lan = 3;\n    }\n    else if (ViTri[2] > 0) {\n        lan = 2;\n    }\n    else if (ViTri[1] > 0) {\n        lan = 1;\n    }\n    else {\n        lan = 0;\n    }\n    for (i = lan; i >= 0; i--) {\n        tmp = DocSo3ChuSo(ViTri[i]);\n        KetQua += tmp;\n        if (ViTri[i] > 0) KetQua += MONEY_LETTERS[i];\n        if ((i > 0) && (tmp.length > 0)) KetQua += ',';\n    }\n    if (KetQua.substring(KetQua.length - 1) === ',') {\n        KetQua = KetQua.substring(0, KetQua.length - 1);\n    }\n    KetQua = KetQua.substring(1, 2).toUpperCase() + KetQua.substring(2);\n    return KetQua.replace(/\\s+/g, \" \").replace(\"mươi một\", \"mươi mốt\").trim();\n}\n","/// <reference path=\"../ExcelPlugin/utils/types.js\"/>\n\nimport lodashMerge from 'lodash.merge';\nimport { convertAddr } from '../ExcelPlugin/utils/helpers';\nimport { DEFAULT_STYLE } from '../ExcelPlugin/utils/constant';\n/** @requires module:src/components/export */\n\nexport default class WorksheetWrapper {\n    /** @type {import('exceljs').Worksheet} */\n    #ws;\n    /** @param {import('exceljs').Worksheet} ws */\n    constructor(ws) {\n        this.#ws = ws;\n        return this;\n    }\n    get worksheet() {\n        return this.#ws;\n    }\n    /**\n     * Chuẩn hóa dữ liệu từng ô\n     * @param {ExcelCell} cell\n     * @returns {import('exceljs').CellValue}\n     */\n    #getCellValue = (cell) => {\n        if (Object.prototype.toString.call(cell) === '[object Object]'\n            && Object.prototype.hasOwnProperty.call(cell, 'value'))\n            return cell.value;\n        return cell || null;\n    }\n    //#region render array row group\n    /**\n     *\n     * @param {[number, number]} address Địa chỉ ô đầu tiên của dòng [dòng, cột]\n     * @param {ExcelRow} row Dữ liệu của dòng\n     */\n    #renderRow = ([r, c = 1], row) => {\n        const { cells, style, height } = row;\n        if (!cells) return;\n        const xr = this.#ws.getRow(r);\n        cells.forEach((ce, i) => {\n            const cell = xr.getCell(c + i);\n            if (cell.isMerged) return;\n            cell.value = this.#getCellValue(ce);\n            cell.style = lodashMerge({}, DEFAULT_STYLE, style, ce?.style);\n            if (ce?.colspan > 1 || ce?.rowspan > 1) {\n                this.#ws.mergeCells(r, c + i, r + (ce?.rowspan - 1 || 0), c + i + (ce?.colspan - 1 || 0));\n            }\n        })\n        if (height) this.#ws.getRow(r).height = height;\n    }\n    /**\n     * @param {ExcelAddress} topLeft\n     * @param {ExcelArrayRowGroupProps} rowsDef\n     * @alias export.renderArrayRowGroup\n     */\n    renderArrayRowGroup(topLeft, { rows, style }) {\n        const { col, row } = this.#ws.getCell(convertAddr(topLeft)).fullAddress;\n        const rowsData = typeof rows === 'function' ? rows() : rows;\n        rowsData.forEach((r, i) => {\n            if (r) this.#renderRow([row + i, col], {\n                r: row + i,\n                c: col,\n                style: lodashMerge({}, style, r.style),\n                cells: r.cells || r,\n                height: r.height\n            })\n        })\n    }\n    //#endregion\n\n    //#region render data row group\n    /**\n     * @template T\n     * @param {ExcelAddress} topLeft\n     * @param {ExcelGroupedData<T>} groupedDataDef\n     * @returns {number} Dòng đầu tiên của nhóm tiếp theo\n     */\n    #renderGroup = (topLeft, { keys, data, columns, style }) => {\n        const key = keys?.shift();\n        const column = columns.find(f => f.key === key);\n        let { col, row } = this.#ws.getCell(convertAddr(topLeft)).fullAddress;\n        if (key && column) {\n            const groupData = Array.from(new Set(data.map((m, i) => typeof column.render !== 'undefined' ? column.render(m, i) : m[key])));\n            for (let g of groupData) {\n                const gCell = this.#ws.getCell(row, +col, row, +col + columns.filter(f => !f.group).length);\n                gCell.value = g || null;\n                gCell.style = lodashMerge({}, DEFAULT_STYLE, style, { font: { bold: true } });\n                this.#ws.mergeCells(gCell.address);\n                row = this.#renderGroup([+row + 1, +col], {\n                    keys, columns,\n                    data: data.filter(f => f[key] === g)\n                });\n            }\n        } else {\n            columns.filter(f => !f.group).forEach((c, i) => {\n                data = typeof data === 'function' ? data() : data;\n                data.forEach((d, j) => {\n                    const cell = typeof c.render !== 'undefined' ? c.render(d, j) : d[c.key];\n                    this.#ws.getCell(+row + j, +col + i).value = this.#getCellValue(cell);\n                    this.#ws.getCell(+row + j, +col + i).style = lodashMerge({}, DEFAULT_STYLE, style, c?.style, cell?.style);\n                })\n                this.#ws.getColumn(+col + i).width = typeof c.width === 'number' ? c.width : 10;\n            })\n            row += data.length;\n        }\n        return row;\n    }\n    /**\n     * @template T\n     * @param {ExcelAddress} topLeft\n     * @param {ExcelDataRowGroupProps<T>} dataGroupDef\n     */\n    renderDataRowGroup(topLeft, { columns, data, header, totalRow, rowNum, headerStyle, cellStyle, onEndRow }) {\n        const { col, row } = this.#ws.getCell(convertAddr(topLeft)).fullAddress;\n        columns = typeof columns === 'function' ? columns() : columns;\n        if (rowNum) columns.unshift({\n            name: 'STT',\n            render: (_, idx) => idx + 1,\n            colStyle: { alignment: { horizontal: 'center' } },\n            width: 5\n        })\n        if (!header) {\n            header = [{\n                cells: columns.filter(f => !f.group).map(m => ({ value: m.name, style: lodashMerge({}, m.cellStyle) })),\n                style: headerStyle\n            }]\n        }\n        this.renderArrayRowGroup(topLeft, { rows: header, style: headerStyle });\n        const groupedCols = columns.filter(f => f.group).sort((a, b) => (+a.group) - (+b.group)).map(m => m.key);\n        const endRow = this.#renderGroup([+row + header.length, +col], { keys: groupedCols, data, columns, style: cellStyle })\n        onEndRow && onEndRow(endRow - 1);\n    }\n    //#endregion\n}","import { Workbook } from 'exceljs';\nimport { saveAs } from \"../../../actions/file-saver\";\nimport WorksheetWrapper from './WorksheetWrapper';\n\nexport default class ExcelWorkbook extends Workbook {\n    static create() {\n        // Tạo workbook\n        const wb = new Workbook();\n        wb.creator = 'GDT QLCB';\n        wb.lastModifiedBy = 'GDT QLCB';\n        wb.created = new Date();\n        wb.modified = new Date();\n        wb.lastPrinted = new Date();\n        return wb;\n    }\n\n    /**\n     * Tải về file excel\n     * @param {string} filename\n     */\n    async download(filename) {\n        const wbBuffer = await this.xlsx.writeBuffer();\n        saveAs(new Blob([wbBuffer], { type: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\" }), filename)\n    }\n    /**\n     * @param {string} [name]\n     * @param {Partial<import('exceljs').AddWorksheetOptions>} [option]\n     */\n    addWorksheet(name = \"Sheet1\", option) {\n        return new WorksheetWrapper(super.addWorksheet(name, option));\n    }\n    /** @param {string | number} indexOrName */\n    getWorksheet(indexOrName) {\n        return new WorksheetWrapper(super.getWorksheet(indexOrName));\n    }\n}","import ExcelWorkbook from './ExcelWorkbook';\nexport default ExcelWorkbook;","import lodashMerge from 'lodash.merge'\n/** Cách đọc các số */\nexport const NUM_LETTERS = Array.of(\" không \", \" một \", \" hai \", \" ba \", \" bốn \", \" năm \", \" sáu \", \" bảy \", \" tám \", \" chín \");\n/** Cách đọc phần nghìn */\nexport const MONEY_LETTERS = Array.of(\"\", \" nghìn\", \" triệu\", \" tỷ\", \" nghìn tỷ\", \" triệu tỷ\");\n/**\n * Viền xung quanh ô (dùng cho bảng)\n * @type {Partial<import('exceljs').Borders>}\n */\nconst ALL_BORDERED = {\n    top: { style: 'thin', color: { argb: 'FF808080' } },\n    left: { style: 'thin', color: { argb: 'FF808080' } },\n    bottom: { style: 'thin', color: { argb: 'FF808080' } },\n    right: { style: 'thin', color: { argb: 'FF808080' } }\n}\n/**\n * Style mặc định của Excel\n * @type {Partial<import('exceljs').Style>}\n */\nexport const DEFAULT_STYLE = {\n    numFmt: '#,##0',\n    font: {\n        name: 'Times New Roman',\n        family: 4,\n        size: 12,\n        color: { argb: 'FF000000' }\n    },\n    alignment: {\n        vertical: 'middle',\n        wrapText: true\n    },\n    fill: {\n        type: 'pattern',\n        pattern: 'none'\n    }\n}\n/**\n * Style mặc định từng ô trong Excel\n * @type {Partial<import('exceljs').Style>}\n */\nexport const CELL_STYLE = {\n    border: ALL_BORDERED\n}\n/**\n * Style mặc định tiêu đề bảng excel\n * @type {Partial<import('exceljs').Style>}\n */\nexport const HEADER_STYLE = lodashMerge({}, {\n    font: {\n        bold: true,\n        size: 12\n    },\n    alignment: {\n        horizontal: 'center',\n        wrapText: true\n    },\n    // border: ALL_BORDERED\n})\n/** Bảng chữ cái */\nexport const ALPHABET = \"ABCDEFGHIJKLMNOPQRSTUVWXYZ\";\n\n/**\n * Tiêu đề\n */\nexport const Title_Header = {\n    font: {\n        bold: true,\n        size: 10\n    }\n}\n\nexport const Tilte_Columns = {\n    background: '#F2F2F2'\n}\n\nexport const CELL_CENTER = {\n    alignment: {\n        horizontal: 'center',\n        vertical: 'middle',\n        wrapText: true\n    }\n}\n\nexport const CELL_RIGHT = {\n    alignment: {\n        horizontal: 'right',\n        vertical: 'middle',\n        wrapText: true\n    }\n}","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","import { TOKEN_CLIENT_INFO } from \"../../../actions/types\"\nimport { formatNumber } from \"../../../actions/util\"\nimport ExcelWorkbook from \"../../../components/export/ExcelExtensions\"\nimport { CELL_STYLE } from \"../../../components/export/ExcelPlugin/utils/constant\"\nimport { formatTime } from \"./Component/TableBaoCao\"\nconst CELL_CENTER = {\n  alignment: {\n    horizontal: 'center',\n    vertical: 'middle',\n    wrapText: true\n  }\n}\n\nconst DEFAULT_STYLE = {\n  numFmt: '#,##0',\n  font: {\n    name: 'Times New Roman',\n    family: 4,\n    size: 12,\n    color: { argb: 'FF000000' }\n  },\n  alignment: {\n    vertical: 'middle',\n    wrapText: true\n  },\n  fill: {\n    type: 'pattern',\n    pattern: 'none'\n  }\n}\n\nconst CELL_END = {\n  alignment: {\n    horizontal: 'right',\n    vertical: 'middle',\n    wrapText: true\n  }\n}\n\nconst ALL_BORDERED = {\n  top: { style: 'thin', color: { argb: 'FF808080' } },\n  left: { style: 'thin', color: { argb: 'FF808080' } },\n  bottom: { style: 'thin', color: { argb: 'FF808080' } },\n  right: { style: 'thin', color: { argb: 'FF808080' } }\n}\n\nconst font = {\n  font: {\n    bold: true,\n    size: 12\n  }\n}\n\n// const BORDER_TOP = {\n//   top: { style: 'thin', color: { argb: 'FF808080' } }\n// }\n\nconst BORDER_LEFT = {\n  left: { style: 'thin', color: { argb: 'FF808080' } }\n}\nconst BORDER_RIGHT = {\n  right: { style: 'thin', color: { argb: 'FF808080' } }\n}\n\nconst BORDER_BOTTOM = {\n  bottom: { style: 'thin', color: { argb: 'FF808080' } }\n}\n\nexport const ExportExcell = (datas, duAn) => {\n  const wb = new ExcelWorkbook();\n  const ws = wb.addWorksheet('Kinh Phi Cong Trinh');\n  ws.renderArrayRowGroup([1, 1], {\n    style: DEFAULT_STYLE,\n    rows: [\n      [\n        { value: 'TÂN PHÁT TOTE & BUILDING', style: font, colspan: 3 }\n      ],\n      [\n        { value: 'Luôn đồng hành - luôn sẻ chia', colspan: 3 }\n      ]\n    ]\n  })\n\n  ws.renderArrayRowGroup([1, 4], {\n    rows: [\n      [\n        { value: '276/63 Hoàng Văn Thụ', colspan: 4, style: CELL_END }\n      ],\n      [\n        { value: '0256.3524.789 - 0919190081', style: CELL_END, colspan: 4 }\n      ],\n      [{ value: 'tanphatcompany.com', colspan: 4, style: CELL_END }]\n    ]\n  })\n\n  ws.renderArrayRowGroup([5, 1], {\n    rows: [\n      [\n        { value: 'BẢNG TỔNG HỢP KINH PHÍ CÔNG TRÌNH', colspan: 7, style: { ...font, ...CELL_CENTER } }\n      ]\n    ]\n  })\n\n  ws.renderArrayRowGroup([7, 1], {\n    rows: [\n      [\n        { value: 'Khách hàng:', colspan: 3, style: { ...font, border: ALL_BORDERED } }\n      ],\n      [\n        { value: `[ Tên ] ${duAn.ThongTinCaNhan.HoVaTenDem}`, colspan: 3, style: { border: { ...BORDER_LEFT, ...BORDER_RIGHT } } }\n      ],\n      [\n        { value: `[ Địa chỉ ] ${duAn?.DiaChi}`, colspan: 3, style: { border: { ...BORDER_LEFT, ...BORDER_RIGHT } } }\n      ],\n      [\n        { value: `[ Số điện thoại ] ${duAn?.DienThoai}`, colspan: 3, style: { border: { ...BORDER_LEFT, ...BORDER_RIGHT, ...BORDER_BOTTOM } } }\n      ],\n    ]\n  })\n\n  ws.renderArrayRowGroup([7, 5], {\n    rows: [\n      [\n        { value: 'Trích dẫn mô tả dự án', colspan: 3, style: { ...font, border: ALL_BORDERED } }\n      ],\n      [\n        { value: '', colspan: 3, style: CELL_STYLE, rowspan: 3 }\n      ]\n    ]\n  })\n\n  ws.renderArrayRowGroup([12, 1], {\n    style: CELL_STYLE,\n    rows: [\n      [\n        { value: 'NGÀY THÁNG', style: CELL_CENTER },\n        { value: 'NỘI DUNG CHI PHÍ', style: CELL_CENTER },\n        { value: 'ĐVT', style: CELL_CENTER },\n        { value: 'SỐ LƯỢNG', style: CELL_CENTER },\n        { value: 'ĐƠN GIÁ', style: CELL_CENTER },\n        { value: 'THÀNH TIỀN', style: CELL_CENTER },\n        { value: 'GHI CHÚ', style: CELL_CENTER },\n      ]\n    ]\n  })\n  ws.worksheet.getColumn(1).width = 15;\n  ws.worksheet.getColumn(2).width = 45;\n  for (let i = 3; i <= 7; i++) {\n    ws.worksheet.getColumn(i).width = 15;\n  }\n\n  const renderColumn = () => {\n    const newArr = [];\n    let tongTien = 0;\n    datas.forEach((item, i) => {\n      tongTien += item.ThanhTien;\n      newArr.push([\n        { value: formatTime(item.ThoiGian), style: CELL_CENTER },\n        { value: item.NoiDung },\n        { value: item.DVT, style: CELL_CENTER },\n        { value: item.KhoiLuong, style: CELL_CENTER },\n        { value: formatNumber(item.DonGia), style: CELL_CENTER },\n        { value: formatNumber(item.ThanhTien), style: CELL_CENTER },\n        { value: item.GhiChu },\n      ])\n    });\n    newArr.push([\n      { value: '', },\n      { value: 'TỔNG CỘNG', style: font },\n      { value: '' },\n      { value: '' },\n      { value: '' },\n      { value: formatNumber(tongTien), style: CELL_END },\n      { value: '' },\n    ])\n    return newArr;\n  }\n\n  ws.renderArrayRowGroup([13, 1], {\n    style: CELL_STYLE,\n    rows: renderColumn()\n  })\n\n  ws.renderArrayRowGroup([14 + datas.length + 1, 1], {\n    rows: [\n      [\n        { value: 'Ghi chú', colspan: 3, style: { ...font, border: ALL_BORDERED } }\n      ],\n      [\n        { value: '', colspan: 3, style: CELL_STYLE, rowspan: 3 }\n      ],\n    ]\n  })\n\n  ws.renderArrayRowGroup([21 + datas.length, 1], {\n    rows: [\n      [\n        { value: '' },\n        { value: 'Chữ kí khách hàng', style: { font: { bold: true } } }\n      ],\n    ]\n  })\n\n  ws.renderArrayRowGroup([20 + datas.length, 5], {\n    style: CELL_CENTER,\n    rows: [\n      [\n        { value: `Quy Nhơn, Ngày    tháng    năm ${new Date().getFullYear()}`, colspan: 3, style: { font: { size: 9 } } }\n      ],\n      [\n        { value: TOKEN_CLIENT_INFO.About, colspan: 3, style: font }\n      ],\n      [\n        { value: 'Giám đốc', colspan: 3, style: { font: { bold: true } } }\n      ]\n    ]\n  })\n\n  wb.download(`KinhPhiDuAn.xlsx`)\n}\n"],"names":["EmptyNoData","Component","render","size","text","this","props","children","_jsxs","_jsx","className","EmptyContainerSmall","EmptyContainerLarge","styled","div","numToStrAddr","n","ALPHABET","length","remain","Math","floor","convertAddr","addr","Array","isArray","t","l","b","r","Error","_ws","_classPrivateFieldLooseKey","_getCellValue","_renderRow","_renderGroup","WorksheetWrapper","constructor","ws","Object","defineProperty","writable","value","cell","prototype","toString","call","hasOwnProperty","_ref","row","c","cells","style","height","xr","_classPrivateFieldLooseBase","getRow","forEach","ce","i","getCell","isMerged","lodashMerge","DEFAULT_STYLE","colspan","rowspan","mergeCells","topLeft","_ref2","keys","data","columns","key","shift","column","find","f","col","fullAddress","groupData","from","Set","map","m","g","gCell","filter","group","font","bold","address","d","j","getColumn","width","worksheet","renderArrayRowGroup","_ref3","rows","renderDataRowGroup","_ref4","header","totalRow","rowNum","headerStyle","cellStyle","onEndRow","unshift","name","_","idx","colStyle","alignment","horizontal","groupedCols","sort","a","endRow","ExcelWorkbook","Workbook","create","wb","creator","lastModifiedBy","created","Date","modified","lastPrinted","download","filename","wbBuffer","xlsx","writeBuffer","saveAs","Blob","type","addWorksheet","arguments","undefined","option","super","getWorksheet","indexOrName","of","numFmt","family","color","argb","vertical","wrapText","fill","pattern","CELL_STYLE","border","top","left","bottom","right","HEADER_STYLE","Title_Header","Tilte_Columns","background","CELL_CENTER","CELL_RIGHT","formatTime","thoiGian","ngay","getDate","thang","getMonth","nam","getFullYear","dataKinhPhi","textAlign","ThoiGian","NoiDung","DVT","KhoiLuong","formatCurrency","DonGia","ThanhTien","GhiChu","colSpan","CELL_END","ALL_BORDERED","BORDER_LEFT","BORDER_RIGHT","BORDER_BOTTOM","ExportExcell","datas","duAn","ThongTinCaNhan","HoVaTenDem","DiaChi","DienThoai","renderColumn","newArr","tongTien","item","push","formatNumber","TOKEN_CLIENT_INFO","About"],"sourceRoot":""}