????
Current Path : C:/inetpub/vhost/xaydung.gdtsolutions.vn/build/static/js/ |
Current File : C:/inetpub/vhost/xaydung.gdtsolutions.vn/build/static/js/8483.c77bc90f.chunk.js.map |
{"version":3,"file":"static/js/8483.c77bc90f.chunk.js","mappings":"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","sources":["components/export/ExcelPlugin/utils/helpers.js","components/export/ExcelExtensions/WorksheetWrapper.js","components/export/ExcelExtensions/ExcelWorkbook.js","components/export/ExcelExtensions/index.js","views/tai-chinh/BaoCaoSoCai/ExportKhoanChiSoQuy.js","components/export/ExcelPlugin/utils/constant.js"],"sourcesContent":["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;","/* eslint-disable no-unused-vars */\n/** @requires module:src/components/export */\nimport { HEADER_STYLE, CELL_STYLE, Title_Header, CELL_RIGHT } from '../../../components/export/ExcelPlugin/utils/constant';\n\nimport { formatCurrency, formatDate, formatNumber } from '../../../actions/util';\nimport ExcelWorkbook from '../../../components/export/ExcelExtensions';\n<reference path=\"../../../../../components/export/ExcelPlugin/utils/types.js\" />\n\n/**\n * Export Công nợ\n * @param {ExportCongNoModel} data\n * @param {string} filename\n */\n\nexport const ExportKhoanChiSoQuy = ({ data, Nam, ConLai }, filename) => {\n const wb = new ExcelWorkbook();\n const totalCol = 6;\n // Tạo worksheet công nợ\n const ws = wb.addWorksheet(`SỔ CÁI`);\n ws.worksheet.getColumn(1).width = 20;\n ws.worksheet.getColumn(2).width = 70;\n ws.worksheet.getColumn(3).width = 15;\n ws.worksheet.getColumn(4).width = 15;\n ws.worksheet.getColumn(5).width = 15;\n ws.worksheet.getColumn(totalCol).width = 25;\n\n // Render thông tin chung\n ws.renderArrayRowGroup([1, 1], {\n style: Title_Header,\n rows: [\n [\n {\n value: `Công Ty TNHH Xây dựng Vận tải Tân Phát`,\n colspan: 3\n },\n ],\n [\n {\n value: 'Địa chỉ: 276/63 Hoàng Văn Thụ - Tp.Quy Nhơn - tỉnh Bình Định ',\n colspan: 3,\n }\n ],\n [\n {\n value: `ĐT: 0256.3524.789 `,\n colspan: 3\n }\n ]\n ]\n })\n\n ws.renderArrayRowGroup([\n 5, 1\n ], {\n style: {\n font: {\n bold: true\n },\n alignment: {\n horizontal: 'center'\n }\n },\n rows: [\n [\n {\n value: `SỔ CÁI - ${Nam} `.toUpperCase(),\n colspan: totalCol - 3,\n rowspan: 2\n },\n {\n value: ''\n },\n {\n value: ''\n },\n {\n value: `Tiền dư sổ quỹ: `,\n rowspan: 2\n },\n {\n value: `${formatNumber(ConLai)}`,\n rowspan: 2\n }\n ],\n ]\n });\n // Render chi tiết\n ws.renderArrayRowGroup([7, 1], TableHeader({}));\n ws.renderArrayRowGroup([8, 3], RowColspan({}));\n\n const getLength = (arr, i) => {\n if (i === 0) return 0\n const l = Array.from(new Array(i).keys()).reduce((l, e) => l + 1, 1)\n return l - 1\n }\n\n data.map((i, index, arr) => {\n return (\n ws.renderArrayRowGroup([9 + getLength(arr, index), 1], {\n style: CELL_STYLE,\n rows: [[\n { value: formatDate(i.ThoiGian), rowspan: i.rowSpan, style: { font: { bold: true, size: 12 } } },\n { value: i.NoiDung },\n { value: i.Thu > 0 ? formatNumber(i.Thu) : '', style: { ...CELL_RIGHT } },\n { value: i.Chi > 0 ? formatNumber(i.Chi) : '', style: { ...CELL_RIGHT } },\n { value: i.Ton > 0 ? formatNumber(i.Ton) : '', style: { ...CELL_RIGHT } },\n { value: '' },\n ]]\n })\n )\n })\n\n wb.download(filename)\n}\n\n// #region Các hàm hỗ trợ xuất bảng tổng hợp công nợ\n\n/**\n * Render header của bảng export công nợ\n * @param {Omit<ExportKhenThuongModel, 'data'>} param\n * @returns {ExcelArrayRowGroupProps}\n */\n\n\nfunction RowColspan() {\n return ({\n style: HEADER_STYLE,\n rows: [\n [\n {\n value: 'THU'\n },\n {\n value: 'CHI'\n },\n // {\n // value: 'TỒN'\n // },\n ]\n ]\n })\n}\nfunction TableHeader() {\n return ({\n style: HEADER_STYLE,\n rows: [\n [\n {\n rowspan: 2,\n value: 'NGÀY, THÁNG GHI SỔ'\n },\n {\n rowspan: 2,\n value: 'DIỄN GIẢI'\n },\n {\n colspan: 2,\n value: '',\n },\n {\n value: ''\n },\n {\n rowspan: 2,\n value: 'GHI CHÚ'\n },\n ]\n ],\n })\n}\n\n/**\n * Render chi tiết dự án \n * @param {Array<Object>} data dữ liệu chi tiết\n * @param {Array<Object>} OrganId id cửa hàng\n * @returns {Array<ExcelRow>}\n */\n\n\n\n\n/**\n * @param {boolean} bold đậm cho font chữ\n * @param {intNumber} enumsGroup 1-nhóm dự án || 2-khoản thu || 3-dự án\n*/\n// fun\n// function TableRow({row}) {\n\n// }\n\n/**\n * Chuyển số thành chữ số La Mã\n * @param {number} intNumber\n */\nexport function IntegerToRoman(intNumber) {\n if (typeof intNumber !== 'number')\n return '';\n\n\n var digits = String(+ intNumber).split(\"\"),\n key = [\"\", \"C\", \"CC\", \"CCC\", \"CD\", \"D\", \"DC\", \"DCC\", \"DCCC\", \"CM\",\n \"\", \"X\", \"XX\", \"XXX\", \"XL\", \"L\", \"LX\", \"LXX\", \"LXXX\", \"XC\",\n \"\", \"I\", \"II\", \"III\", \"IV\", \"V\", \"VI\", \"VII\", \"VIII\", \"IX\"],\n roman_num = \"\",\n i = 3;\n while (i--)\n roman_num = (key[+ digits.pop() + (i * 10)] || \"\") + roman_num;\n\n return Array(+ digits.join(\"\") + 1).join(\"M\") + roman_num;\n}\n\n// #endregion\n\n// #region JSDoc Types\n\n// #endregion\n","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}"],"names":["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","this","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","render","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","ExportKhoanChiSoQuy","Nam","ConLai","Title_Header","toUpperCase","totalCol","formatNumber","HEADER_STYLE","getLength","arr","reduce","e","index","CELL_STYLE","formatDate","ThoiGian","rowSpan","size","NoiDung","Thu","CELL_RIGHT","Chi","Ton","IntegerToRoman","intNumber","digits","String","split","roman_num","pop","join","of","numFmt","family","color","argb","vertical","wrapText","fill","pattern","border","top","left","bottom","right","Tilte_Columns","background","CELL_CENTER"],"sourceRoot":""}