Chọn tòa nhà cần làm việc. Mở Công nợ - thanh toán → Duyệt số liệu.
2
Kiểm tra thông tin bảng kê
Kiểm tra mã bảng kê, tên khách hàng, căn hộ, kỳ phí và số tiền phát sinh trên danh sách.
3
Chọn bảng kê và duyệt
Đánh dấu vào ô vuông ở đầu dòng của các bảng kê cần duyệt (hoặc tích ô ở tiêu đề cột để chọn tất cả trên trang). Sau đó bấm nút Duyệt đã chọn màu vàng. Hệ thống sẽ hiện hộp thoại xác nhận số lượng bảng kê cần duyệt.
4
Kiểm tra kết quả
Khi duyệt thành công, bảng kê chuyển sang trạng thái đã duyệt và tự động biến mất khỏi danh sách chờ duyệt. Mở Danh sách bảng kê để xem toàn bộ bảng kê đã sẵn sàng thu nợ.
Transaction cập nhật Bills.status, approved_by, approved_at, version và tạo AuditLogs. Kiểm thử concurrent approval nằm trong test/financial-workflows.test.ts.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Taho","description":"Tài liệu hành vi hiện tại của hệ thống Taho, được xác minh từ source code.","colors":{"primary":"#8A5A00","light":"#F3BA2F","dark":"#B08020"},"logo":{"light":"https://mintcdn.com/taho-a5b7eb2b/qpXbhngqabQW8FVI/logo/light.svg?fit=max\u0026auto=format\u0026n=qpXbhngqabQW8FVI\u0026q=85\u0026s=9c77740b78f781548956801966e2e927","dark":"https://mintcdn.com/taho-a5b7eb2b/qpXbhngqabQW8FVI/logo/dark.svg?fit=max\u0026auto=format\u0026n=qpXbhngqabQW8FVI\u0026q=85\u0026s=64873ec19459d1629b770ec7d16f99aa","href":"/"},"favicon":"https://mintcdn.com/taho-a5b7eb2b/qpXbhngqabQW8FVI/favicon.svg?fit=max\u0026auto=format\u0026n=qpXbhngqabQW8FVI\u0026q=85\u0026s=9762ba4d8b5241abbb0517f9e2d1d43d","api":{"playground":{"display":"simple"}},"appearance":{"default":"light","strict":true},"navbar":{"links":[{"icon":"globe","href":"https://taho.com.vn/","label":"Trang chủ"},{"icon":"mail","href":"mailto:contact@taho.com.vn","label":"Liên hệ"}]},"footer":{"socials":{"website":"https://taho.com.vn/"},"links":[{"header":"Taho","items":[{"label":"Trang chủ","href":"https://taho.com.vn/"},{"label":"contact@taho.com.vn","href":"mailto:contact@taho.com.vn"}]}]},"icons":{"library":"lucide"},"contextual":{"options":["copy","view","chatgpt","claude","mcp"],"display":"header"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"taho-a5b7eb2b","hasAudioNarration":false,"actualSubdomain":"taho-a5b7eb2b","customDomains":["docs.taho.com.vn"],"gitSource":{"type":"github","owner":"taho-vn","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"latestBuiltDeploymentHistoryId":"6ac5fbcf78c1c22ae0f122ec","collectionId":"a5207557-1faf-4071-89fd-270931402be2","liveDeploymentHistoryId":"6ac5fbcf78c1c22ae0f122ec","schemaVersion":"v3"},"feedback":{"thumbs":true,"edits":true,"issues":true,"agentFeedback":true},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6adad01462b6f64d97e13178","clientVersion":"0.0.4043","searchFilterCounts":[{"language":"default","tag":"Nghiệp vụ","count":20},{"language":"default","tag":"Kỹ thuật","count":11},{"language":"default","tag":"Công nợ và thanh toán","count":10},{"language":"default","tag":"API / Swagger","count":9},{"language":"default","tag":"Tra cứu","count":8},{"language":"default","tag":"Phát triển","count":7},{"language":"default","tag":"Mini App","count":6},{"language":"default","tag":"Danh mục kỹ thuật","count":5},{"language":"default","tag":"Trợ lý AI","count":4},{"language":"default","tag":"Bắt đầu","count":4}],"searchSettings":{"showContentSnippets":true,"isFiltersEnabled":true}},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"custom.css","content":".taho-home{--taho-ink:#191a1d;--taho-muted:#545861;--taho-line:#e5e5e1;--taho-accent:#f3ba2f;color:var(--taho-ink);max-width:1180px;margin:0 auto;padding:56px 28px 96px}.taho-home *{box-sizing:border-box}.taho-home a:focus-visible{outline:3px solid #8a5a00;outline-offset:3px}.taho-hero{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(290px,.8fr);gap:clamp(28px,5vw,70px);align-items:center;padding:clamp(34px,6vw,72px);border:1px solid #e8e4d8;border-radius:24px;background:radial-gradient(circle at 96% 5%,#fff0c6 0,transparent 40%),#faf9f6}.taho-eyebrow{color:#8a5a00;font-size:11px;font-weight:800;letter-spacing:.14em;margin:0 0 18px}.taho-home h1,.taho-home h2,.taho-home h3{color:var(--taho-ink);letter-spacing:-.035em}.taho-home h1{font-size:clamp(40px,5vw,65px);line-height:1.06;margin:0 0 22px;font-weight:760}.taho-home h1 span{background:var(--taho-accent);border-radius:13px;padding:0 .13em;white-space:nowrap}.taho-lead{color:var(--taho-muted);font-size:17px;line-height:1.7;max-width:580px;margin:0 0 32px}.taho-hero-actions{display:flex;flex-wrap:wrap;gap:11px}.taho-button,.taho-hero-map a{align-items:center;text-decoration:none!important}.taho-button{display:inline-flex;justify-content:center;gap:18px;min-height:45px;border-radius:9px;padding:11px 16px;font-size:13px;font-weight:750;transition:transform .18s ease,box-shadow .18s ease}.taho-button:hover{transform:translateY(-2px);box-shadow:0 8px 18px #17171718}.taho-button-primary{background:var(--taho-accent);color:#171717!important}.taho-button-secondary{border:1px solid #cfcfc9;background:#fff;color:var(--taho-ink)!important}.taho-hero-map{background:#1d1f22;color:#fff;border-radius:16px;padding:20px 24px 17px;box-shadow:0 18px 40px #1111111e}.taho-map-label{color:#f3ba2f;font-size:11px;font-weight:800;letter-spacing:.14em;margin:0 0 6px}.taho-hero-map a{display:grid;grid-template-columns:32px 1fr auto;gap:9px;padding:17px 0;border-bottom:1px solid #414247;color:#fff!important;font-size:14px;font-weight:700}.taho-hero-map a:hover{color:#f3ba2f!important}.taho-map-index{color:#f3ba2f;font-size:12px}.taho-hero-map small{display:block;margin-top:3px;color:#bdc0c5;font-size:12px;font-weight:400;line-height:1.45}.taho-map-note{color:#bdc0c5;font-size:11px;margin:14px 0 0}.taho-section{padding-top:84px}.taho-home h2{font-size:clamp(28px,3.1vw,39px);line-height:1.16;margin:0 0 13px}.taho-section-intro{color:var(--taho-muted);margin:0 0 28px}.taho-path-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.taho-path-card{display:flex;flex-direction:column;align-items:flex-start;min-height:228px;gap:13px;padding:24px;border:1px solid var(--taho-line);border-radius:14px;color:var(--taho-muted)!important;text-decoration:none!important;background:#fff;transition:border-color .18s ease,transform .18s ease,box-shadow .18s ease}.taho-path-card:hover{transform:translateY(-3px);border-color:#d4a520;box-shadow:0 12px 30px #17171712}.taho-card-number{color:#8a5a00;font-size:10px;font-weight:800;letter-spacing:.1em}.taho-path-card strong{color:var(--taho-ink);font-size:19px;line-height:1.2;letter-spacing:-.02em}.taho-path-card>span:nth-of-type(2){font-size:13px;line-height:1.6}.taho-card-link{margin-top:auto;color:#72500a;font-size:12px;font-weight:800}.taho-topic-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;margin-top:23px;border-top:1px solid var(--taho-line)}.taho-topic{padding:26px 0 0}.taho-topic h3{font-size:19px;margin:0 0 8px}.taho-topic p{color:var(--taho-muted);font-size:13px;line-height:1.6;min-height:62px;margin:0 0 16px}.taho-topic div{display:flex;flex-direction:column;align-items:flex-start;gap:8px}.taho-topic a{color:#72500a!important;font-size:13px;font-weight:700;text-decoration:none!important}.taho-reference-links a:hover,.taho-topic a:hover{text-decoration:underline!important}.taho-reference{display:grid;grid-template-columns:1.4fr 1fr;gap:40px;padding:36px;margin-top:84px;background:#f6f6f3;border-radius:16px}.taho-reference .taho-eyebrow{margin-bottom:12px}.taho-reference h2{font-size:27px}.taho-reference p:last-child{color:var(--taho-muted);line-height:1.65;font-size:13px;margin:0}.taho-reference-links{display:flex;flex-direction:column;justify-content:center}.taho-reference-links a{padding:13px 0;display:flex;justify-content:space-between;border-bottom:1px solid #d9d9d4;color:var(--taho-ink)!important;font-weight:700;font-size:13px;text-decoration:none!important}@media (max-width:900px){.taho-hero{grid-template-columns:1fr}.taho-path-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.taho-topic-grid{grid-template-columns:1fr;gap:0}.taho-topic p{min-height:0}}@media (max-width:600px){.taho-home{padding:24px 16px 70px}.taho-hero{padding:28px 20px;border-radius:16px}.taho-section{padding-top:60px}.taho-path-grid{grid-template-columns:1fr}.taho-path-card{min-height:170px}.taho-reference{margin-top:60px;padding:24px;grid-template-columns:1fr;gap:16px}}"}],"page":{"pagePath":"finance/approve-bill","slug":"/finance/approve-bill","pageMetadata":{"title":"Duyệt bảng kê","description":"Cách chuyển một bảng kê nháp sang trạng thái approved.","keywords":["approve bill","approved","bảng kê"],"href":"/finance/approve-bill"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Cách chuyển một bảng kê nháp sang trạng thái approved.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,blockquote:`blockquote`,code:`code`,li:`li`,p:`p`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{Accordion,Frame,Heading,OptimizedImage,Step,Steps,Table}=_components;if(!Accordion)_missingMdxReference(`Accordion`,true);if(!Frame)_missingMdxReference(`Frame`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Step)_missingMdxReference(`Step`,true);if(!Steps)_missingMdxReference(`Steps`,true);if(!Table)_missingMdxReference(`Table`,true);return _jsxs(_Fragment,{children:[_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Tóm tắt`}),_jsx(_components.th,{children:`Nội dung`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Trạng thái`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`Implemented`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Người thực hiện`}),_jsx(_components.td,{children:`Tài khoản có quyền duyệt bảng kê và đã chọn tòa nhà`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Kết quả`}),_jsxs(_components.td,{children:[`Bảng kê chuyển sang `,_jsx(_components.code,{children:`approved`}),`; hệ thống lưu người duyệt, thời điểm và audit log`]})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`trước-khi-thực-hiện`,children:`Trước khi thực hiện`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Bảng kê thuộc tòa nhà đang chọn.`}),`\n`,_jsxs(_components.li,{children:[`Trạng thái là `,_jsx(_components.code,{children:`draft`}),` hoặc `,_jsx(_components.code,{children:`waiting_confirmation`}),`.`]}),`\n`,_jsx(_components.li,{children:`Kỳ của bảng kê đang mở.`}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`Bạn duyệt bảng kê tại `,_jsx(_components.strong,{children:`Công nợ - thanh toán`}),` → `,_jsx(_components.strong,{children:`Duyệt số liệu`}),`. Sau khi duyệt, bảng kê chuyển sang trạng thái sẵn sàng để thu tiền.`]}),`\n`,_jsx(Frame,{caption:`Màn hình Duyệt số liệu hiển thị các bảng kê chờ duyệt`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/taho-a5b7eb2b/EvnCrV7SdQSoqqYy/images/finance/approve-bill-list.png?fit=max\u0026auto=format\u0026n=EvnCrV7SdQSoqqYy\u0026q=85\u0026s=d74da7d9548882bbacf502ad95a12e3b`,alt:`Màn hình duyệt số liệu bảng kê`,\"data-og-width\":`1440`,width:`1440`,\"data-og-height\":`900`,height:`900`,\"data-path\":`images/finance/approve-bill-list.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/taho-a5b7eb2b/EvnCrV7SdQSoqqYy/images/finance/approve-bill-list.png?w=280\u0026fit=max\u0026auto=format\u0026n=EvnCrV7SdQSoqqYy\u0026q=85\u0026s=2893050e517d57e6138664b0263d54c2 280w, https://mintcdn.com/taho-a5b7eb2b/EvnCrV7SdQSoqqYy/images/finance/approve-bill-list.png?w=560\u0026fit=max\u0026auto=format\u0026n=EvnCrV7SdQSoqqYy\u0026q=85\u0026s=b86fb9a8b3d2529d367621f958dbc4bf 560w, https://mintcdn.com/taho-a5b7eb2b/EvnCrV7SdQSoqqYy/images/finance/approve-bill-list.png?w=840\u0026fit=max\u0026auto=format\u0026n=EvnCrV7SdQSoqqYy\u0026q=85\u0026s=e7f0f8d1a7754ec16aa5752eeb6977e4 840w, https://mintcdn.com/taho-a5b7eb2b/EvnCrV7SdQSoqqYy/images/finance/approve-bill-list.png?w=1100\u0026fit=max\u0026auto=format\u0026n=EvnCrV7SdQSoqqYy\u0026q=85\u0026s=53b728273242d9f6fa24299440e6ca1d 1100w, https://mintcdn.com/taho-a5b7eb2b/EvnCrV7SdQSoqqYy/images/finance/approve-bill-list.png?w=1650\u0026fit=max\u0026auto=format\u0026n=EvnCrV7SdQSoqqYy\u0026q=85\u0026s=f7d3e445c76e36e3f1d6f4cef215ad0a 1650w, https://mintcdn.com/taho-a5b7eb2b/EvnCrV7SdQSoqqYy/images/finance/approve-bill-list.png?w=2500\u0026fit=max\u0026auto=format\u0026n=EvnCrV7SdQSoqqYy\u0026q=85\u0026s=1f1b56f97671981cfd47338845b0544c 2500w`})}),`\n`,_jsx(Heading,{level:`2`,id:`các-bước`,children:`Các bước`}),`\n`,_jsxs(Steps,{children:[_jsxs(Step,{title:`Mở màn hình duyệt số liệu`,children:[`Chọn tòa nhà cần làm việc. Mở `,_jsx(_components.strong,{children:`Công nợ - thanh toán`}),` → `,_jsx(_components.strong,{children:`Duyệt số liệu`}),`.`]}),_jsx(Step,{title:`Kiểm tra thông tin bảng kê`,children:`Kiểm tra mã bảng kê, tên khách hàng, căn hộ, kỳ phí và số tiền phát sinh trên danh sách.`}),_jsx(Step,{title:`Chọn bảng kê và duyệt`,children:_jsxs(_components.p,{children:[`Đánh dấu vào ô vuông ở đầu dòng của các bảng kê cần duyệt (hoặc tích ô ở tiêu đề cột để chọn tất cả trên trang). Sau đó bấm nút `,_jsx(_components.strong,{children:`Duyệt đã chọn`}),` màu vàng. Hệ thống sẽ hiện hộp thoại xác nhận số lượng bảng kê cần duyệt.`]})}),_jsxs(Step,{title:`Kiểm tra kết quả`,children:[_jsxs(_components.p,{children:[`Khi duyệt thành công, bảng kê chuyển sang trạng thái đã duyệt và tự động biến mất khỏi danh sách chờ duyệt. Mở `,_jsx(_components.strong,{children:`Danh sách bảng kê`}),` để xem toàn bộ bảng kê đã sẵn sàng thu nợ.`]}),_jsx(Frame,{caption:`Danh sách bảng kê sau khi đã duyệt thành công`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/taho-a5b7eb2b/EvnCrV7SdQSoqqYy/images/finance/bill-list-approved.png?fit=max\u0026auto=format\u0026n=EvnCrV7SdQSoqqYy\u0026q=85\u0026s=b58c898fe06b4e4ed1a8fd7b7e931319`,alt:`Danh sách bảng kê đã duyệt`,\"data-og-width\":`1440`,width:`1440`,\"data-og-height\":`900`,height:`900`,\"data-path\":`images/finance/bill-list-approved.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/taho-a5b7eb2b/EvnCrV7SdQSoqqYy/images/finance/bill-list-approved.png?w=280\u0026fit=max\u0026auto=format\u0026n=EvnCrV7SdQSoqqYy\u0026q=85\u0026s=774a81defccb43edd6c4de15a20309f8 280w, https://mintcdn.com/taho-a5b7eb2b/EvnCrV7SdQSoqqYy/images/finance/bill-list-approved.png?w=560\u0026fit=max\u0026auto=format\u0026n=EvnCrV7SdQSoqqYy\u0026q=85\u0026s=40674a4db5e5fac882c1c9c32c0d2d56 560w, https://mintcdn.com/taho-a5b7eb2b/EvnCrV7SdQSoqqYy/images/finance/bill-list-approved.png?w=840\u0026fit=max\u0026auto=format\u0026n=EvnCrV7SdQSoqqYy\u0026q=85\u0026s=4b3fc254e94fce81dd56b70e99cf0293 840w, https://mintcdn.com/taho-a5b7eb2b/EvnCrV7SdQSoqqYy/images/finance/bill-list-approved.png?w=1100\u0026fit=max\u0026auto=format\u0026n=EvnCrV7SdQSoqqYy\u0026q=85\u0026s=faaebfacb0e82b5e3b92c0d4ec3cec13 1100w, https://mintcdn.com/taho-a5b7eb2b/EvnCrV7SdQSoqqYy/images/finance/bill-list-approved.png?w=1650\u0026fit=max\u0026auto=format\u0026n=EvnCrV7SdQSoqqYy\u0026q=85\u0026s=10e72ecb5435afb9421e89b666059d34 1650w, https://mintcdn.com/taho-a5b7eb2b/EvnCrV7SdQSoqqYy/images/finance/bill-list-approved.png?w=2500\u0026fit=max\u0026auto=format\u0026n=EvnCrV7SdQSoqqYy\u0026q=85\u0026s=a5e10c3b11290b40ccab8e5c3f62adc9 2500w`})})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`tình-huống-thực-tế`,children:`Tình huống thực tế`}),`\n`,_jsxs(_components.blockquote,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Ví dụ:`}),` Sau khi tính công nợ kỳ `,_jsx(_components.code,{children:`07/2026`}),`:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Ban quản lý mở `,_jsx(_components.strong,{children:`Duyệt số liệu`}),`, thấy 2 bảng kê: `,_jsx(_components.code,{children:`BK-202607-A0101`}),` (687.000 đ) và `,_jsx(_components.code,{children:`BK-202607-A0102`}),` (180.000 đ).`]}),`\n`,_jsxs(_components.li,{children:[`Người phụ trách tích chọn cả 2 bảng kê rồi bấm `,_jsx(_components.strong,{children:`Duyệt đã chọn`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Cả 2 bảng kê chuyển sang trạng thái `,_jsx(_components.strong,{children:`Chờ thanh toán`}),`. Kế toán có thể bắt đầu `,_jsx(_components.a,{href:`/finance/create-receipt`,children:`Lập phiếu thu`}),` cho các căn hộ này.`]}),`\n`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`khi-hệ-thống-không-duyệt`,children:`Khi hệ thống không duyệt`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Điều kiện`}),_jsx(_components.th,{children:`Kết quả`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Không tìm thấy bảng kê trong tòa nhà đang chọn`}),_jsx(_components.td,{children:`Trả lỗi`})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[`Trạng thái không phải `,_jsx(_components.code,{children:`draft`}),` hoặc `,_jsx(_components.code,{children:`waiting_confirmation`})]}),_jsx(_components.td,{children:`Không duyệt`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Kỳ đã khóa`}),_jsx(_components.td,{children:`Không duyệt`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Bảng kê đổi trong lúc duyệt`}),_jsx(_components.td,{children:`Yêu cầu reload trước khi thử lại`})]})]})]}),`\n`,_jsxs(Accordion,{title:`Dành cho BA, QA và kỹ thuật`,id:`danh-cho-ba-qa-va-ky-thuat`,children:[_jsx(Heading,{level:`3`,id:`user-story`,children:`User story`}),_jsxs(_components.p,{children:[`Với tài khoản có quyền `,_jsx(_components.code,{children:`action:approve_bill`}),`, người dùng có thể chuyển bảng kê hợp lệ sang `,_jsx(_components.code,{children:`approved`}),`.`]}),_jsx(Heading,{level:`3`,id:`acceptance-criteria`,children:`Acceptance criteria`}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Given`}),` bảng kê thuộc `,_jsx(_components.code,{children:`activeTowerId`}),`, ở trạng thái hợp lệ và kỳ đang mở, `,_jsx(_components.strong,{children:`when`}),` gửi intent `,_jsx(_components.code,{children:`approve-bill`}),`, `,_jsx(_components.strong,{children:`then`}),` bảng kê chuyển sang `,_jsx(_components.code,{children:`approved`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Given`}),` bảng kê đã đổi `,_jsx(_components.code,{children:`version`}),`, `,_jsx(_components.strong,{children:`when`}),` duyệt, `,_jsx(_components.strong,{children:`then`}),` request bị từ chối.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Given`}),` kỳ đã khóa, `,_jsx(_components.strong,{children:`when`}),` duyệt, `,_jsx(_components.strong,{children:`then`}),` trạng thái bảng kê không đổi.`]}),`\n`]}),_jsx(Heading,{level:`3`,id:`d%E1%BB%AF-li%E1%BB%87u-v%C3%A0-ki%E1%BB%83m-th%E1%BB%AD`,children:`Dữ liệu và kiểm thử`}),_jsxs(_components.p,{children:[`Transaction cập nhật `,_jsx(_components.code,{children:`Bills.status`}),`, `,_jsx(_components.code,{children:`approved_by`}),`, `,_jsx(_components.code,{children:`approved_at`}),`, `,_jsx(_components.code,{children:`version`}),` và tạo `,_jsx(_components.code,{children:`AuditLogs`}),`. Kiểm thử concurrent approval nằm trong `,_jsx(_components.code,{children:`test/financial-workflows.test.ts`}),`.`]})]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Duyệt bảng kê","description":"Cách chuyển một bảng kê nháp sang trạng thái approved.","keywords":["approve bill","approved","bảng kê"],"href":"/finance/approve-bill"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Trước khi thực hiện","slug":"trước-khi-thực-hiện","depth":2,"children":[]},{"title":"Các bước","slug":"các-bước","depth":2,"children":[]},{"title":"Tình huống thực tế","slug":"tình-huống-thực-tế","depth":2,"children":[]},{"title":"Khi hệ thống không duyệt","slug":"khi-hệ-thống-không-duyệt","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"taho-a5b7eb2b","siteName":"Taho","title":"Duyệt bảng kê - Taho","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-07T07:59:18.295Z","originalFileLocation":"finance/approve-bill.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=\"light\";if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"light\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Cách chuyển một bảng kê nháp sang trạng thái approved.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Taho\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/taho-a5b7eb2b/FZaR2m99oriv2xkR/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/taho-a5b7eb2b/FZaR2m99oriv2xkR/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/taho-a5b7eb2b/FZaR2m99oriv2xkR/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/taho-a5b7eb2b/FZaR2m99oriv2xkR/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/taho-a5b7eb2b/FZaR2m99oriv2xkR/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/taho-a5b7eb2b/FZaR2m99oriv2xkR/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/taho-a5b7eb2b/FZaR2m99oriv2xkR/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/taho-a5b7eb2b/FZaR2m99oriv2xkR/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/taho-a5b7eb2b/FZaR2m99oriv2xkR/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Duyệt bảng kê - Taho\">\u003cmeta data-mint-head property=\"og:description\" content=\"Cách chuyển một bảng kê nháp sang trạng thái approved.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Taho\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.taho.com.vn/finance/approve-bill\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://taho-a5b7eb2b.mintlify.app/_mintlify/api/og/v2?division=C%C3%B4ng+n%E1%BB%A3+v%C3%A0+thanh+to%C3%A1n\u0026amp;title=Duy%E1%BB%87t+b%E1%BA%A3ng+k%C3%AA\u0026amp;description=C%C3%A1ch+chuy%E1%BB%83n+m%E1%BB%99t+b%E1%BA%A3ng+k%C3%AA+nh%C3%A1p+sang+tr%E1%BA%A1ng+th%C3%A1i+approved.\u0026amp;theme=b39568b17f0020cbd4c9afa8\u0026amp;signature=abae5812a2ce609066ff4facc3915649ed9ecd3e37d3d262d86b3aedacb2767e\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Duyệt bảng kê - Taho\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Cách chuyển một bảng kê nháp sang trạng thái approved.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://taho-a5b7eb2b.mintlify.app/_mintlify/api/og/v2?division=C%C3%B4ng+n%E1%BB%A3+v%C3%A0+thanh+to%C3%A1n\u0026amp;title=Duy%E1%BB%87t+b%E1%BA%A3ng+k%C3%AA\u0026amp;description=C%C3%A1ch+chuy%E1%BB%83n+m%E1%BB%99t+b%E1%BA%A3ng+k%C3%AA+nh%C3%A1p+sang+tr%E1%BA%A1ng+th%C3%A1i+approved.\u0026amp;theme=b39568b17f0020cbd4c9afa8\u0026amp;signature=abae5812a2ce609066ff4facc3915649ed9ecd3e37d3d262d86b3aedacb2767e\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/taho-a5b7eb2b/FZaR2m99oriv2xkR/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Taho\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#8A5A00\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.taho.com.vn/finance/approve-bill\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/finance/approve-bill.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.taho.com.vn/#organization\",\"name\":\"Taho\",\"url\":\"https://docs.taho.com.vn\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/taho-a5b7eb2b/qpXbhngqabQW8FVI/logo/light.svg?fit=max\u0026auto=format\u0026n=qpXbhngqabQW8FVI\u0026q=85\u0026s=9c77740b78f781548956801966e2e927\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.taho.com.vn#website\",\"name\":\"Taho\",\"url\":\"https://docs.taho.com.vn\",\"publisher\":{\"@id\":\"https://docs.taho.com.vn/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.taho.com.vn/finance/approve-bill#webpage\",\"url\":\"https://docs.taho.com.vn/finance/approve-bill\",\"name\":\"Duyệt bảng kê\",\"description\":\"Cách chuyển một bảng kê nháp sang trạng thái approved.\",\"dateModified\":\"2026-10-07T07:59:18.295Z\",\"isPartOf\":{\"@id\":\"https://docs.taho.com.vn#website\"},\"breadcrumb\":{\"@id\":\"https://docs.taho.com.vn/finance/approve-bill#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.taho.com.vn/finance/approve-bill#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Công nợ và thanh toán\",\"item\":\"https://docs.taho.com.vn/operations/debt-payments\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Duyệt bảng kê\",\"item\":\"https://docs.taho.com.vn/finance/approve-bill\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.taho.com.vn/finance/approve-bill#article\",\"headline\":\"Duyệt bảng kê\",\"name\":\"Duyệt bảng kê\",\"description\":\"Cách chuyển một bảng kê nháp sang trạng thái approved.\",\"url\":\"https://docs.taho.com.vn/finance/approve-bill\",\"mainEntityOfPage\":{\"@id\":\"https://docs.taho.com.vn/finance/approve-bill#webpage\"},\"dateModified\":\"2026-10-07T07:59:18.295Z\",\"keywords\":\"approve bill, approved, bảng kê\",\"publisher\":{\"@id\":\"https://docs.taho.com.vn/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.taho.com.vn#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Taho\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Taho","nav":{"global":null,"tabs":[{"tab":"Bắt đầu","pages":[{"title":"Bắt đầu","href":""}]},{"tab":"Nghiệp vụ","pages":[{"group":"Căn hộ và dịch vụ","pages":[{"title":"Căn hộ và cư dân","href":"/operations/apartments-residents"},{"title":"Dịch vụ và phương tiện","href":"/operations/services-vehicles"}]},{"group":"Công nợ và thanh toán","pages":[{"title":"Công nợ và thanh toán","href":"/operations/debt-payments"},{"title":"Tính công nợ","description":"Cách tạo bảng kê nháp và dòng phí cho một kỳ đang mở.","href":"/finance/calculate-billing"},{"title":"Duyệt bảng kê","href":"/finance/approve-bill"},{"title":"Lập phiếu thu","description":"Cách tạo phiếu thu, phân bổ tiền vào công nợ và ghi nhận tiền thừa.","href":"/finance/create-receipt"},{"title":"Tạo điều chỉnh công nợ","href":"/finance/create-adjustment"},{"title":"Duyệt điều chỉnh công nợ","href":"/finance/approve-adjustment"},{"title":"Hủy điều chỉnh công nợ","href":"/finance/cancel-adjustment"},{"title":"Hủy phiếu thu","href":"/finance/cancel-receipt"},{"title":"Gửi nhắc công nợ","href":"/finance/send-debt-reminders"},{"title":"Báo cáo và sổ quỹ","href":"/operations/reports-ledgers"}]},{"group":"Tương tác cư dân","pages":[{"title":"Tương tác cư dân","href":"/operations/resident-interactions"},{"title":"Duyệt truy cập Mini App","href":"/operations/resident-miniapp"}]},{"group":"Tài khoản và cấu hình","pages":[{"title":"Thêm tòa nhà cho công ty","href":"/operations/add-tower"},{"title":"Tài khoản và phân quyền","href":"/operations/accounts-permissions"},{"title":"Cấu hình hệ thống","href":"/operations/system-configuration"}]},{"group":"Quy tắc dùng chung","pages":[{"title":"Use case và workflow","href":"/product-specs/workflow-specifications"},{"title":"Quy tắc nghiệp vụ","href":"/product-specs/business-rules"},{"title":"Vòng đời trạng thái","href":"/product-specs/state-machines"}]}]},{"tab":"AI","pages":[{"title":"AI","href":"/ai"}]},{"tab":"Mini App","pages":[{"title":"Mini App","href":"/mini-app"}]},{"tab":"API / Swagger","pages":[{"title":"API / Swagger","href":"/api-reference"}]},{"tab":"Kỹ thuật","pages":[{"title":"Kỹ thuật","href":"/product-specs/domain-model"}]},{"tab":"Tra cứu","pages":[{"title":"Tra cứu","href":"/reference/route-catalog"}]}]},"basePath":"","title":"Duyệt bảng kê - Taho","buildId":"dpl_G9nrg4qeJSZtah1Ziwbc2n6WkLch","deploymentId":"dpl_G9nrg4qeJSZtah1Ziwbc2n6WkLch","dynamics":["07c022d89b","a74be98ba7"],"chunks":["Frame-Bpq2Z6jK.js","DynamicMarkdown-D5M2At0B.js","zoom-image-lightbox-DL4wrF0w.js","lightbox-handle-r17bVUz3.js"]}