กำลังประมวลผลข้อมูล...

Dashboard กลาง — สรุปจากทุกคลัง

โรงพยาบาลจิตเวชเลยราชนครินทร์ · ข้อมูล ณ {{ guestNowText }} · ข้อมูลทั้งหมดเป็นการเปิดดูเท่านั้น
มูลค่าคงคลังรวมทุกคลัง

{{ sjFmt(guestTotals.value) }}

บาท · {{ guestTotals.skus }} รายการที่มีของ
ใกล้หมดอายุ (≤ 6 เดือน)

{{ guestTotals.near }} ล็อต

มูลค่า {{ sjFmt(guestTotals.nearVal) }} บาท
หมดอายุแล้ว (ยังมียอดคงเหลือ)

{{ guestTotals.expired }} ล็อต

มูลค่า {{ sjFmt(guestTotals.expiredVal) }} บาท
คลังที่มีการใช้งานใน 30 วันล่าสุด

{{ guestTotals.activeStocks }} / {{ guestStats.length }} คลัง

ธุรกรรมรวม {{ guestTotals.tx30 }} รายการ
{{ grp.title }}
{{ st.label }} {{ st.actText }}
มูลค่าคงคลัง
{{ sjFmt(st.value) }} บาท
{{ st.skus }} รายการที่มีของ · ED {{ sjFmt(st.edVal) }} / NED {{ sjFmt(st.nedVal) }}
{{ st.near }}
ใกล้หมดอายุ
{{ st.expired }}
หมดอายุ
{{ st.reorder }}
ถึงจุดสั่งซื้อ

7 วัน: {{ st.tx7 }} · 30 วัน: {{ st.tx30 }} รายการ · จ่ายขึ้น Shelf 30 วัน: {{ st.shelf30 }}
เคลื่อนไหวล่าสุด: {{ st.lastText }}
มูลค่าคงคลังแต่ละคลัง
มูลค่าการจ่ายออกรายเดือน (12 เดือนล่าสุด) — สะท้อนการใช้งานระบบของแต่ละคลัง
รายละเอียด: {{ guestDetail.label }}
รหัสรายการคงเหลือหน่วยมูลค่า (บาท)
{{ r.id }}{{ r.name }}{{ sjFmt(r.qty) }}{{ r.unit }}{{ sjFmt(r.val) }}
รายการLotวันหมดอายุเหลือ (วัน)คงเหลือมูลค่า (บาท)
{{ r.name }}{{ r.lot }}{{ r.exp }}{{ r.days < 0 ? 'หมดอายุแล้ว' : r.days }}{{ sjFmt(r.qty) }}{{ sjFmt(r.val) }}
รหัสรายการคงเหลือจุดสั่งซื้อ (Min)หน่วย
{{ r.id }}{{ r.name }}{{ sjFmt(r.qty) }}{{ sjFmt(r.min) }}{{ r.unit }}
วันที่ประเภทรายการจำนวนมูลค่า (บาท)
{{ r.date }}{{ r.label }}{{ r.name }}{{ sjFmt(r.qty) }}{{ sjFmt(r.val) }}
ไม่มีรายการ
{{ guestDetail.note }}
โหมดผู้เยี่ยมชมแสดงเฉพาะข้อมูลสรุปที่เปิดเผยได้ — ไม่สามารถทำรายการใด ๆ ได้ · หากต้องการใช้งานเต็มรูปแบบให้เข้าสู่ระบบด้วยบัญชีผู้ใช้
JVL Inventory

📊 Executive Dashboard ({{ globalStock === 'ALL' ? 'รวมทุกคลัง' : 'คลัง '+globalStock }})

มูลค่ายาคงคลัง (พร้อมจ่าย)

{{ formatCurrency(dashInventoryValue) }}

{{ dashFilteredInventory.length }} รายการ
มูลค่ายารอตรวจรับ (Pending)

{{ formatCurrency(dashPendingValue) }}

รอตรวจรับ: {{ pendingBills.length }} บิล
ใบเบิกฉุกเฉิน (รอเคลียร์)
{{ unclearedEmgList ? unclearedEmgList.length : 0 }} รายการ
คลิกเพื่อดูทะเบียนจ่ายออก
จุดสั่งซื้อ & สินค้าหมด

{{ dashReorderItems.length }} รายการ

ดูตารางด้านล่าง
🎯 ABC-VEN Matrix (ยา) ปีงบ {{ abcFY }} · คลิกช่องเพื่อดูรายการ
เปิดสรุปรายงาน ABC-VEN ›
VENยังไม่ระบุรวม
{{ r === '-' ? 'ไม่มีซื้อ' : r }} {{ abcVenMatrix.cells[r + c].n }} {{ abcVenMatrix.rowTotal[r] }}
🛒 มูลค่าจัดซื้อสะสมทั้งหมด (ED vs NED)
ED: {{purchasedEdPercent}}%
NED: {{purchasedNedPercent}}%
ไม่มีประวัติการจัดซื้อยา ED/NED
ED: {{ formatCurrency(purchasedEdTotal) }} NED: {{ formatCurrency(purchasedNedTotal) }}
📊 มูลค่ายาคงคลังปัจจุบัน (ED vs NED)
ED: {{edPercent}}%
NED: {{nedPercent}}%
ไม่มีข้อมูลยา ED/NED คงคลัง
ED: {{ formatCurrency(edTotal) }} NED: {{ formatCurrency(nedTotal) }}
การจัดซื้อเทียบแผนประจำปี (คลังยาใหญ่ · นับการรับจากบริษัท)
ยังไม่มีแผนจัดซื้อปี {{ planYear }} นำเข้าหรือเพิ่มแผน
📊 แนวโน้มรายเดือน (ตามรายงาน สจ.รง.1051) คลังใหญ่
เปิดรายงาน สจ.รง.1051 ›
คงคลัง · จ่ายออก · จัดซื้อ รายเดือน
{{ sjDash.mode === 'control' ? 'Control Chart (I-Chart)' : 'Run Chart' }}
ค่าเฉลี่ย {{ sjFmt(sjStats.center) }} · UCL {{ sjFmt(sjStats.ucl) }} · LCL {{ sjFmt(sjStats.lcl) }} · จุดนอกเส้นควบคุม {{ sjStats.out }} มัธยฐาน {{ sjFmt(sjStats.center) }} · จุดที่อยู่ในช่วงเลื่อนไหล (≥ 6 จุดติดกันด้านเดียวกัน) {{ sjStats.shift }} ⚠ ข้อมูลน้อยกว่า 8 เดือน การแปลผลอาจไม่แม่นยำ
📈 Top 10 มูลค่าเบิกใช้สูงสุด
🏢 สัดส่วนเบิกใช้ตามหน่วยงาน
ไม่มีประวัติ
การจ่ายยา
🍩 แหล่งงบประมาณ
ไม่มีข้อมูล
บิลตรวจรับ
🔴 สินค้าหมด / ต่ำกว่าจุดสั่งซื้อ (คลัง: {{ globalStock }})
สินค้า {{sortIcon('name')}} คงเหลือ {{sortIcon('qty')}} ต่ำกว่า Min {{sortIcon('diffMin')}} Min {{sortIcon('locMin')}}
{{ i.name }} {{ formatNumber(i.qty) }} {{ i.unit }} -{{ formatNumber(i.diffMin) }} {{ i.locMin }}
สินค้าในคลังเพียงพอ
หน้า {{ dashReorderPage }} / {{ totalDashReorderPages }}
⚠️ ใกล้หมดอายุ / หมดอายุแล้ว
สินค้าLotExp Date
{{ l.productName }} {{ l.lot }} {{ l.exp }}
ปลอดภัย ไม่มีรายการใกล้ Exp
หน้า {{ dashExpPage }} / {{ totalDashExpPages }}

📦 บันทึกยอดยกมา (คลัง: {{ globalStock }})

คีย์รายการสินค้าคงเหลือ
ผูกบาร์โค้ด
รายการสินค้าจำนวนราคา/หน่วยมูลค่ารวมLot/Expลบ
{{ item.productName }} {{ formatNumber(item.qty) }} {{ formatNumber(item.unitPrice) }} {{ formatNumber(item.totalPrice) }} {{ item.lotNo }}
{{ item.expDate }}
{{ globalStock === 'MAIN' ? 'การรับยาเข้าคลังจากบริษัท จะรับเข้าคลังใหญ่ (MAIN) ก่อนเสมอ' : 'รับตรงจากบริษัทเข้า ' + locLabel(globalStock) + ' (ไม่ผ่านคลังใหญ่) — เลือกสินค้าได้ทุกประเภท ทั้งยาและเวชภัณฑ์มิใช่ยา' }}

📥 รับ{{ globalStock === 'MAIN' ? 'ยา' : 'ของ' }}จากบริษัท (รอตรวจรับ) → {{ locLabel(globalStock) }}

📋 ตรวจรับเข้าคลัง ({{ locLabel(globalStock) }})

เพิ่มบริษัทใหม่
ข้อมูลเพิ่มเติมสำหรับ 5 แฟ้ม (RECEIPT)
เพิ่มรายการยาในบิลนี้
รายการยาจำนวนPackSizeราคา/หน่วยราคารวมLot/Expลบ
{{ item.productName }} {{ formatNumber(item.qty) }} {{ formatNumber(item.packSize) }} {{ formatNumber(item.unitPrice) }} {{ formatNumber(item.totalPrice) }} {{ item.lotNo }}
{{ item.expDate }}
ยอดรวมทั้งบิล (รอตรวจรับ) {{ formatCurrency(cartRecTotal) }}
รอนานสุด: {{ waitMetrics.max }} วัน
เฉลี่ย: {{ waitMetrics.avg }} วัน
เร็วสุด: {{ waitMetrics.min }} วัน
วันที่รับของ เลขบิล บริษัท มูลค่ารวม สถานะ วันที่ตรวจรับ เลขเอกสาร แหล่งเงิน Action
{{ bill.receivedDate }} {{ bill.refBillNo }}เบิก ฉ. {{ billEmgMap[bill.id] }} รายการ {{ bill.vendor }} {{ formatCurrency(bill.totalVal) }} รอตรวจรับตรวจรับแล้ว {{ bill.inspectDate || '-' }} {{ bill.docNo || '-' }} {{ bill.budgetSource || '-' }}
ไม่มีข้อมูลบิล

🗂️ แผนจัดซื้อประจำปี (คลังยาใหญ่)

มูลค่าตามแผน
{{ formatCurrency(planSummary.planVal) }}
{{ planSummary.itemCount }} รายการ
จัดซื้อแล้ว (ในแผน)
{{ formatCurrency(planSummary.boughtVal) }}
รับตั้งแต่ {{ planRange.start }} ถึง {{ planRange.end }}
% จัดซื้อต่อแผน
{{ fmtPct(planSummary.pct) }}
ซื้อนอกแผน
{{ formatCurrency(planSummary.unplannedVal) }}
{{ planSummary.counts.unplanned }} รายการ
นำเข้าแผนจากไฟล์ (Excel / CSV)

หัวตาราง: ID | รายการ | หน่วยนับ | ราคาต่อหน่วย | จำนวน | มูลค่า — ID คือรหัสสินค้าในระบบ (ระบบจับคู่ด้วย ID ก่อน แล้วรหัสทำงาน/ชื่อ)

เพิ่มทีละรายการ
มูลค่า: {{ formatCurrency((planForm.price || 0) * (planForm.qty || 0)) }}
ตรวจสอบก่อนนำเข้า: {{ planImport.fileName }}
พร้อมนำเข้า {{ planImportOk.length }} มีข้อสังเกต {{ planImport.rows.filter(r => r.status === 'warn').length }} ข้าม {{ planImport.rows.filter(r => r.status === 'error').length }}
#IDรายการ (ไฟล์)สินค้าในระบบราคาจำนวนมูลค่าผล
{{ r.line }}{{ r.id }}{{ r.name }}{{ r.product ? r.product.name : '-' }}{{ formatNumber(r.price) }}{{ formatNumber(r.qty) }}{{ formatCurrency(r.price * r.qty) }}{{ r.msg || 'OK' }}
แสดง {{ planView.length }} จาก {{ planRows.length }} รายการ
รายการ {{ planSortMark('name') }}หน่วย ราคา/หน่วย จำนวนแผน {{ planSortMark('planQty') }} มูลค่าแผน {{ planSortMark('planVal') }} ซื้อแล้ว (จน.) {{ planSortMark('boughtQty') }} ซื้อแล้ว (มูลค่า) {{ planSortMark('boughtVal') }} คงเหลือตามแผน {{ planSortMark('remainQty') }} % จัดซื้อ {{ planSortMark('pctQty') }} จัดการ
{{ r.name }} [{{ r.productId }}]นอกแผน {{ r.unit }} {{ r.status === 'unplanned' ? '-' : formatNumber(r.price) }} {{ r.status === 'unplanned' ? '-' : formatNumber(r.planQty) }} {{ r.status === 'unplanned' ? '-' : formatCurrency(r.planVal) }} {{ formatNumber(r.boughtQty) }} {{ formatCurrency(r.boughtVal) }} {{ r.status === 'unplanned' ? '-' : formatNumber(r.remainQty) }} -
ไม่มีรายการตามเงื่อนไข
% จัดซื้อ = จำนวนที่รับจากบริษัทเข้าคลังยาใหญ่ในปีงบประมาณนั้น (1 ต.ค. – 30 ก.ย.) ÷ จำนวนตามแผน · ไม่นับยอดยกมา/การปรับสต็อก/การโอนระหว่างคลัง

📋 บันทึกการใช้งาน (Log) เฉพาะ God

{{ filteredLogs.length }} / {{ activityLogs.length }} รายการ
เวลาผู้ทำรายการการกระทำเอกสาร / เป้าหมายคลังรายละเอียด
{{ l.log_time }} {{ l.user_name || l.username }}
{{ l.username }} · {{ l.user_role }}
{{ LOG_LABEL[l.action] || l.action }} {{ l.target }} {{ l.stock_location }}
{{ t }}
⚠ Log เก่า ไม่มีข้อมูลเต็ม — กู้คืนไม่ได้
{{ logLoading ? 'กำลังโหลด...' : 'ไม่มี Log' }}

🔢 ปรับรหัส (ID) แบบเก่าเป็นตัวเลข เฉพาะ God

ทำก่อนกดยืนยัน: สำรองฐานข้อมูล (Export จาก phpMyAdmin) · ให้ผู้ใช้อื่นออกจากระบบชั่วคราว
ระบบจะเปลี่ยนรหัสสินค้า PROD-… / DRUG-…, บริษัท V-… และหน่วยเบิก DEPT-… ให้เป็นเลขลำดับต่อท้ายค่าล่าสุดที่มีอยู่ พร้อมแก้ทุกที่ที่อ้างอิงรหัสสินค้า (รายการรับ-จ่าย แผนจัดซื้อ บาร์โค้ด Min/Max ใบขอเบิก) — ทำทั้งหมดในครั้งเดียว ถ้าพลาดจะย้อนกลับ
ดำเนินการเสร็จแล้ว — รหัสถูกเปลี่ยนตามตารางด้านล่าง และบันทึกใน Log แล้ว
{{ idMig.plan.products.length }}
สินค้า
{{ idMig.plan.vendors.length }}
บริษัท
{{ idMig.plan.depts.length }}
หน่วยเบิก/ปลายทาง
{{ idMig.plan.deleteDepts.length }}
ปลายทางซ้ำที่จะลบ
แถวที่จะถูกแก้รหัสสินค้าตาม: {{ t }}: {{ n }}
ลบ {{ d.id }} “{{ d.name }}” (ซ้ำกับ {{ d.keep }} “{{ d.keepName }}”)
ปลายทางในใบจ่ายเก่า “{{ r.from }}” → “{{ r.to }}” ({{ r.rows }} แถว)
{{ sec[0] }}
รหัสเดิม→ รหัสใหม่ชื่อ
{{ m.old }}{{ m.new }}{{ m.name }}
ไม่มีรายการที่ต้องเปลี่ยน
ไม่มีรหัสแบบเก่าที่ต้องเปลี่ยนแล้ว

เคลียร์รายการเบิกฉุกเฉิน (ฉ.)

รายการเหล่านี้คือการเบิกจาก "รอตรวจรับ (Pending)" เมื่อมีการออกใบเบิกจริงแล้ว ให้เลือกรายการและระบุเลขใบเบิกเพื่อกระทบยอด
(ระบบจะทำการย้ายสต็อกไปอยู่ MAIN เสมือนรับเข้าคลังใหญ่และจ่ายออกทันที เพื่อให้ Stock Card ของ MAIN สมบูรณ์)
วันที่เบิกฉุกเฉิน รายการสินค้า หน่วยงานที่เบิก จำนวน
{{ formatThaiDate(t.date.split(' ')[0]) }} {{ getProductName(t.productId) }} ตรวจรับแล้ว – รอเลขใบเบิกจริงยังไม่ตรวจรับ
Lot {{ t.lotNo }} · เอกสาร ฉ. {{ t.billId }}
{{ t.vendorOrDept }} {{ formatNumber(t.qty) }}
ไม่มีรายการเบิกฉุกเฉินค้างเคลียร์

จ่ายสินค้า / ตัดสต็อก

คุณกำลังทำการจ่ายยาโดยตัดสต็อกจากคลังพื้นฐาน: {{ globalStock === 'MAIN' ? 'คลังยาใหญ่' : 'คลัง '+globalStock }}
มีใบขอเบิกรอจ่าย ({{ pendingRequestsList.length }} รายการ)
จ่ายขึ้น Shelf — ไม่ต้องกรอกเลขที่เอกสารและปลายทาง ระบบจะบันทึกเป็น "จ่ายขึ้น Shelf" ให้อัตโนมัติ
ระบุรายการและ "คลังต้นทาง" ที่ต้องการตัดยอด
ผูกบาร์โค้ด
จัดจ่ายตามใบขอเบิก {{ pick.reqId }} ({{ formOut.dept }})
ร่างล่าสุด {{ pick.savedAt }}
Approve แล้ว {{ pickProgress.done }} / {{ pickProgress.total }} รายการ{{ pickProgress.pct }}%
{{ pickProgress.pct }}%
แสดงหน้าละ รายการ
#สินค้าขอเบิกคงคลัง (ทุก Lot)จำนวนที่จ่ายมูลค่าApprove
{{ r.no }} {{ r.name }} {{ r.unit }} {{ formatNumber(r.want) }}
Lot {{ l.lot || '-' }} · Exp {{ l.exp }}{{ formatNumber(l.qty) }}
ไม่มีสต็อก
รวม{{ formatNumber(r.stockTotal) }}
⚠ รอตรวจรับ (เบิกฉุกเฉิน “ฉ.”)
Lot {{ l.lot || '-' }} · Exp {{ l.exp }} ({{ formatNumber(l.avail) }})
+ ฉ. {{ formatNumber(r.pendTake) }} = {{ formatNumber(r.issued) }}
ขาด {{ formatNumber(r.want - r.issued) }}
เกินที่ขอ {{ formatNumber(r.issued - r.want) }}
{{ formatCurrency(r.value) }}
รวมมูลค่าที่จ่าย (ทุกรายการ){{ formatCurrency(pickTotalValue) }}
บันทึกการจ่ายเรียบร้อย · เลขที่เอกสาร {{ pick.doneDoc.docNo }} · {{ pick.doneDoc.dept }} · ขอ {{ pick.doneDoc.rows.length }} รายการ · มูลค่า {{ formatCurrency(pick.doneDoc.total) }}
สินค้าแหล่งตัดสต็อกLot ที่ตัดจำนวนทุนรวมลบ
{{ item.productName }} {{ item.stockSource }} {{ item.lotNo }} {{ formatNumber(item.qty) }} {{ formatCurrency(item.totalPrice) }}
รวมมูลค่าต้นทุนที่จ่าย{{ formatCurrency(cartOutTotal) }}

ปรับปรุงสต็อก (Stock Take) คลัง: {{ globalStock }}

ผูกบาร์โค้ด
สินค้ายอดในระบบยอดนับจริงผลต่าง (ปรับปรุง)มูลค่าที่เปลี่ยนลบ
{{ item.productName }} {{ formatNumber(item.currentQty) }} {{ formatNumber(item.actualQty) }} {{ item.diff > 0 ? '+' : '' }}{{ formatNumber(item.diff) }} {{ formatCurrency(item.diff * item.unitPrice) }}

ตรวจสอบ/ปรับมูลค่ายาคงคลัง (MAIN)

รหัสสินค้า {{sortIcon('id')}} รายการสินค้า {{sortIcon('name')}} จำนวนคงเหลือ {{sortIcon('qty')}} มูลค่าในระบบ (บาท) {{sortIcon('totalVal')}} ปรับมูลค่า
{{ item.id }} {{ item.name }} {{ formatNumber(item.qty) }} {{ item.unit }} {{ formatCurrency(item.totalVal) }}
-- ไม่พบรายการ --

Stock Card บัตรสต็อก (คลัง: {{ globalStock }})

ผูกบาร์โค้ด
{{ getProductName(scProdId) }}
Min: {{ getLocMinMax(scProdId, globalStock).min }} | Max: {{ getLocMinMax(scProdId, globalStock).max }} ตั้งค่า
Min: {{ getLocMinMax(scProdId, globalStock).min }} Max: {{ getLocMinMax(scProdId, globalStock).max }}
ยอดปัจจุบัน: {{ formatNumber(inventory.find(i => i.id === scProdId)?.qty || 0) }}
ว.ด.ป. เลขเอกสาร สั่งซื้อจาก / จ่ายให้ ราคา/หน่วย วันหมดอายุ รับเข้า (IN) จ่ายออก (OUT) ยอดคงเหลือ จัดการ
{{ formatThaiDate(row.date.split(' ')[0]) }} {{ scDocOf(row) }} (ฉ.)
{{ row.note }}
{{ row.vendorOrDept || '-' }} {{ formatNumber(row.unitPrice) }} {{ formatThaiDate(row.expDate) || '-' }}
{{ scExpBadge(row).text }}
{{ row.type==='IN' ? formatNumber(row.qty) : '-' }} {{ row.type==='OUT' ? formatNumber(row.qty) : '-' }} {{ formatNumber(row.runBal) }}
ไม่มีประวัติการเคลื่อนไหวในคลังนี้

ประวัติรับจ่าย & พิมพ์แบบฟอร์ม รพ. (คลัง: {{ globalStock }})

ซ่อนรายการจ่ายขึ้น Shelf {{ shelfHiddenCount }} รายการ — ดูสรุปได้ที่ สรุปรายงาน › จ่ายขึ้น Shelf
วันที่เลขที่เอกสารประเภทปลายทาง/แหล่งที่มายอดรวมสุทธิพิมพ์แบบฟอร์ม รพ.จัดการ
{{ doc.date.split(' ')[0] }} {{ doc.docLabel }}
บิลบริษัท: {{ doc.bill.refBillNo }}อ้างอิง: {{doc.ref}}
{{ doc.type }} {{ doc.entity }} {{ formatCurrency(doc.total) }} -
ไม่มีประวัติการทำรายการในคลังนี้

ระบบขอเบิกเวชภัณฑ์

เพิ่มรายการยาที่ต้องการเบิก (จาก MAIN สู่คลัง {{ globalStock }})
กำลังแก้ไขใบ {{ editingReqId }} เลือกแบบใดแบบหนึ่งแล้วยังแก้จำนวน/เพิ่ม/ลบรายการได้เสมอ
ผูกบาร์โค้ด
คงเหลือในคลังนี้: {{ formatNumber(invQty(tempReq.productId)) }} {{ tempReq.unit }}
รายการยาคงเหลือMinMaxจำนวนที่ขอเบิกลบ
{{ item.productName }} {{ formatNumber(invQty(item.productId)) }} {{ formatNumber(getLocMinMax(item.productId, globalStock).min) }} {{ formatNumber(getLocMinMax(item.productId, globalStock).max) }}
{{ item.unit }}
ใบขอเบิกของ {{ locLabel(globalStock) }} (ล่าสุด 50 ใบ)
เลขที่ใบขอวันที่รายการสถานะจัดการ
{{ r.id }} {{ formatThaiDate(String(r.date).split(' ')[0]) }} {{ r.items.length }} {{ r.status==='Pending' ? 'รอคลังใหญ่จ่าย' : (r.status==='Completed' ? 'จ่ายแล้ว' : 'ยกเลิก') }}
ยังไม่มีใบขอเบิกของคลังนี้

บริหารการสนับสนุนยา รพ.ชุมชน

เฉพาะใบเบิกที่จ่ายจากคลังใหญ่ไปยังโรงพยาบาล · ใช้ติดตามสถานะการเคลียร์เงิน หลักฐาน และการทวงถาม
จำนวนใบเบิก
{{ hsTotals.docs }}
ยอดเบิกรวม (บาท)
{{ formatCurrency(hsTotals.value) }}
เคลียร์แล้ว (บาท)
{{ formatCurrency(hsTotals.paid) }}
ค้างชำระ (บาท)
{{ formatCurrency(hsTotals.owed) }}
สรุปยอดสนับสนุน รพ.ชุมชน{{ hsUI.fy ? ' ปีงบ ' + hsUI.fy : ' (' + formatThaiDate(hsUI.from) + ' - ' + formatThaiDate(hsUI.to) + ')' }}
ลำดับเลขที่ใบเบิกวันที่ใบเบิกเลขที่เอกสารขอรับฯลงวันที่รพ.ยอดเบิกนอกรายการสถานะเคลียร์โดยหลักฐาน
{{ i + 1 }} {{ d.id }} {{ formatThaiDate(d.date) }} {{ d.evNo }} {{ d.evDate ? formatThaiDate(d.evDate) : '' }} {{ hsShort(d.hospital) }} {{ formatCurrency(d.total) }} {{ d.nonCore }} {{ hsStatusText(d.status) }}
ค้าง {{ formatCurrency(d.owed) }}
{{ d.settle ? d.settle.paidBy : '' }}
{{ formatThaiDate(d.settle.payDate) }}
📎{{ d.files.length }}{{ d.settle.evNo }}
ไม่พบใบเบิกในช่วงที่เลือก
รวม{{ formatCurrency(hsTotals.value) }}
สถานะการเคลียร์เงินรายโรงพยาบาล (สำหรับรายงานผู้บริหาร)
รพ.ใบเบิกยอดเบิกเคลียร์แล้วค้างชำระสัดส่วนใบเบิกค้างติดตามล่าสุด
{{ hsShort(h.name) }} {{ h.docs }} {{ formatCurrency(h.value) }} {{ formatCurrency(h.paid) }} {{ formatCurrency(h.owed) }}
{{ h.unpaidDocs }} {{ h.lastFu ? formatThaiDate(h.lastFu.date) + ' · ' + h.lastFu.note.slice(0, 40) : '-' }}
ไม่มีข้อมูล
สรุปรายการยาที่สนับสนุน {{ hsCoreSet.size ? '(ตามข้อตกลง ' + hsCoreSet.size + ' รายการ)' : '' }}
ยังไม่ได้กำหนด “รายการยาตามข้อตกลง (35 รายการ)” — ไปที่แท็บ ⚙️ ตั้งค่า เพื่อเลือกรายการ ระบบจึงจะแยกยานอกรายการให้
#รายการยาประเภทจำนวนที่จ่ายมูลค่าใบเบิกรพ.ที่เบิก
{{ i + 1 }} {{ r.name }} -ในรายการนอกรายการ (ผ่อนผัน) {{ formatNumber(r.qty) }} {{ r.unit }} {{ formatCurrency(r.value) }} {{ r.docs }} {{ r.hosps.map(hsShort).join(', ') }}
ไม่มีข้อมูล
ยาในรายการข้อตกลงที่ยังไม่มีการเบิกในช่วงนี้: {{ hsCoreUnused.length ? hsCoreUnused.join(', ') : '— ไม่มี —' }}
แนวโน้มมูลค่าการสนับสนุนยา รพ.ชุมชน รายปีงบประมาณ
ปีงบ 2569 และก่อนหน้า ใช้ยอดที่นำเข้าย้อนหลัง · ปีงบ 2570 เป็นต้นไป ใช้ใบเบิกจริงในระบบ (ถ้าปีเก่าไม่มียอดนำเข้า จะใช้ใบเบิกในระบบแทน)
รพ.{{ y }}รวม
{{ hsShort(r.name) }}{{ r.vals[y] ? formatNumber(Math.round(r.vals[y])) : '-' }}{{ formatNumber(Math.round(r.total)) }}
ยังไม่มีข้อมูล
รวมทุก รพ.{{ formatNumber(Math.round(hsTrend.totals[y] || 0)) }}{{ formatNumber(Math.round(hsTrend.grand)) }}
📥 นำเข้ายอดเบิกย้อนหลัง (ปีงบ 2569 และก่อนหน้า — เก็บเฉพาะมูลค่า)
1) ดาวน์โหลดแม่แบบ → 2) กรอก ปีงบประมาณ / โรงพยาบาล / มูลค่าเบิก (หนึ่งแถวต่อ รพ. ต่อปี หรือหลายแถวก็ได้ ระบบรวมให้) → 3) เลือกไฟล์เพื่อดูตัวอย่างก่อนนำเข้า · ถ้านำเข้าซ้ำ ปี/รพ. เดิม ระบบจะแทนที่ยอดเดิม
ไฟล์ {{ hsImp.fileName }} · {{ hsImp.rows.length }} แถว · ผิดพลาด {{ hsImpErrors }} · ยอดรวม {{ formatCurrency(hsImpTotal) }}
แถวปีงบโรงพยาบาลมูลค่าจำนวนใบเบิกหมายเหตุตรวจสอบ
{{ r.line }}{{ r.fy }}{{ r.hospital }}{{ formatNumber(r.amount) }}{{ r.docCount }}{{ r.note }}{{ r.error }}ชื่อใหม่ (ไม่ตรงรายชื่อ รพ.)OK
ข้อมูลย้อนหลังที่นำเข้าแล้ว
ปีงบรพ.มูลค่าใบเบิกหมายเหตุนำเข้าโดย
{{ r[2] }}{{ hsShort(r[1]) }}{{ formatNumber(parseFloat(r[3])) }}{{ r[4] }}{{ r[5] }}{{ r[6] }}
🏥 รายชื่อโรงพยาบาลที่นับเป็น “รพ.ชุมชน”
ระบบดึงชื่อหน่วยงานที่มีคำว่า “โรงพยาบาล/รพ.” จากการจ่ายของคลังใหญ่ให้อัตโนมัติ ติ๊กออกได้ถ้าไม่ต้องการนับ และตั้งชื่อย่อได้
นับชื่อหน่วยงานชื่อย่อ
{{ c.name }}
💊 รายการยาตามข้อตกลง (นโยบาย 35 รายการ) — เลือกแล้ว {{ hsUI.coreEdit.length }}

รับคืน / ครอสเช็คการรับจากคลังย่อย

ข้อมูลที่คลังย่อย (OPD/IPD/เวชภัณฑ์มิใช่ยา) ยืนยันตอนรับของ — เทียบกับที่คลังใหญ่จ่าย เพื่อช่วยกันตรวจสอบจำนวนและราคาทุน
วันที่จากคลังใบรับรายการยาLot / Expจำนวนทุน/หน่วยเหตุผลผู้ส่งคืน
{{ formatThaiDate(String(r.createdAt).slice(0,10)) }}{{ locLabel(r.loc) }}{{ r.docId }}{{ getProductName(r.productId) }}{{ r.lotNo }}
{{ r.expDate }}
{{ formatNumber(r.qty) }}{{ formatNumber(r.unitPrice) }}{{ r.reason }}
{{ r.note }}
{{ r.by }}
ไม่มีรายการรอรับคืน
ตั้งแต่
วันที่คลังที่รับใบจ่ายรายการยาLotจ่ายรับจริงส่งคืนราคาต้นทางราคาที่คลังย่อยลงข้อสังเกต
{{ formatThaiDate(String(r.at).slice(0,10)) }}{{ locLabel(r.loc) }}{{ r.docId }}{{ getProductName(r.productId) }}{{ r.lotNo }}{{ r.issuedQty === null ? '-' : formatNumber(r.issuedQty) }}{{ formatNumber(r.receivedQty) }}{{ r.returnedQty ? formatNumber(r.returnedQty) : '' }}{{ r.issuedPrice === null ? '-' : formatNumber(r.issuedPrice) }}{{ formatNumber(r.receivedPrice) }}{{ r.flag }}
ไม่มีข้อมูล
ถ้าพบ “ราคาต้นทาง = 0” แปลว่าตอนจ่ายจากคลังใหญ่ไม่ได้เลือก Lot หรือข้อมูลต้นทุนไม่ครบ — ให้ตรวจสอบ/แก้ไขใบจ่ายของคลังใหญ่ในหน้าประวัติรับจ่าย (ราคาที่คลังย่อยลงไว้ใช้เป็นข้อมูลอ้างอิง)
วันที่ส่งคืนจากคลังรายการยาLotจำนวนเหตุผลสถานะเอกสารรับคืน
{{ formatThaiDate(String(r.createdAt).slice(0,10)) }}{{ locLabel(r.loc) }}{{ getProductName(r.productId) }}{{ r.lotNo }}{{ formatNumber(r.qty) }}{{ r.reason }}รับคืนแล้ว ({{ r.acceptedBy }}){{ r.returnDoc }}
ยังไม่มีประวัติ

สร้างใบ PO (คลังยาใหญ่)

กำลังแก้ไข {{ po.poNo || po.poId }} เลือกแบบใดแบบหนึ่งแล้วยังแก้จำนวน/ราคา/เพิ่ม/ลบรายการได้เสมอ
เพิ่มรายการเอง
คงเหลือ {{ formatNumber(invQty(tempPo.productId)) }} · Min {{ formatNumber(getLocMinMax(tempPo.productId, 'MAIN').min) }} · Max {{ formatNumber(getLocMinMax(tempPo.productId, 'MAIN').max) }}
#รายการบริษัทคงเหลือMinMaxจำนวนสั่งซื้อราคา/หน่วยรวมลบ
{{ idx + 1 }} {{ item.productName }} {{ Math.round(invQty(item.productId)) }}
{{ item.unit }}
{{ formatNumber((parseFloat(item.qty) || 0) * (parseFloat(item.unitPrice) || 0)) }}
รวมทั้งสิ้น{{ formatNumber(poTotal) }}
ทะเบียนใบ PO
เลขที่ POวันที่บริษัทรายการมูลค่าสถานะจัดการ
{{ r.poNo || r.id }} {{ formatThaiDate(String(r.date).split(' ')[0]) }} {{ r.vendor || '-' }} {{ r.items.length }} {{ formatNumber(r.total) }} {{ r.status==='Ordered' ? 'สั่งซื้อแล้ว' : (r.status==='Cancelled' ? 'ยกเลิก' : 'ร่าง') }}
ยังไม่มีใบ PO

บันทึกรับเข้า: {{ locLabel(globalStock) }}

ใบจ่ายจากคลังใหญ่ที่รอรับ ({{ subReceiveCandidates.length }})
ไม่มีใบจ่ายที่รอรับ (แสดงเฉพาะใบที่คลังใหญ่จ่ายโดยระบุปลายทางเป็น “{{ subDestNames(globalStock)[0] }}”) — ถ้ารับของโดยไม่มีใบจ่าย ให้คีย์รายการเองด้านล่างได้เลย
1. ข้อมูลเอกสาร
ผูกกับใบจ่ายคลังใหญ่เลขที่ {{ subRecv.linkedDoc }} (รับเข้าแล้วจะไม่แสดงในรายการรอรับอีก) ยกเลิกการผูก
2. เพิ่มรายการที่รับ (กรณีไม่มีใบจ่าย หรือเพิ่มเติม)
ผูกบาร์โค้ด
ตรวจรับของ{{ subRecv.linkedDoc ? ' ตามใบจ่าย ' + subRecv.linkedDoc : '' }}
ร่างล่าสุด {{ subPick.savedAt }}
Approve แล้ว {{ subProgress.done }} / {{ subProgress.total }} รายการ{{ subProgress.pct }}%
{{ subProgress.pct }}%
แสดงหน้าละ รายการ ใกล้หมดอายุ < 6 เดือน {{ subWarn.near }}หมดอายุแล้ว {{ subWarn.expired }}ราคาทุน 0 = {{ subWarn.zero }}
#รายการLot / Expคลังใหญ่จ่ายจำนวนที่ได้รับจริงราคาทุน/หน่วยมูลค่าส่งคืนApprove
{{ item.no }} {{ item.productName }}
ส่งคืนคลังใหญ่ {{ formatNumber(item.returnQty) }} ({{ item.returnReason }})
{{ item.lotNo || '-' }}
{{ item.expDate }}
หมดอายุแล้ว
เหลือ {{ item.expInfo.months }} เดือน
{{ formatNumber(item.issuedQty) }}-
ขาด {{ formatNumber(item.issuedQty - item.qty) }}
⚠ ราคาทุน 0
ต้นทาง {{ formatNumber(item.issuedPrice) }}
{{ formatCurrency(item.value) }}
มูลค่ารวมที่รับเข้า (หลังหักส่งคืน){{ formatCurrency(subCartTotal) }}
รับเบิกฉุกเฉินที่ยังไม่ได้ปรับเป็นใบเบิกจริง ({{ emgReceiveDocs.length }})
เลขที่ (ฉุกเฉิน)วันที่รายการมูลค่าเลขใบเบิกจริง
{{ d.docNo }} {{ formatThaiDate(String(d.date).split(' ')[0]) }} {{ d.count }} {{ formatCurrency(d.total) }}

รายงานสรุปยอดเบิกรายตัว (ช่วงเวลา & หน่วยงาน)

ผูกบาร์โค้ด
ผลลัพธ์การค้นหา
สรุปยอดเบิกจ่ายเวชภัณฑ์
(ตั้งแต่วันที่ {{ formatThaiDate(dispenseReport.start) }} ถึง {{ formatThaiDate(dispenseReport.end) }})
รหัส ชื่อรายการเวชภัณฑ์ จำนวนรวมที่เบิก หน่วยนับ มูลค่ารวม (บาท) ดูรายละเอียด
{{ item.id }} {{ item.name }} {{ formatNumber(item.qty) }} {{ item.unit }} {{ formatCurrency(item.totalPrice) }}
รวมมูลค่าการเบิกทั้งหมด (ตามเงื่อนไข): {{ formatCurrency(dispenseReportTotal) }}

ระบบรายงานการบริหารเวชภัณฑ์ (คลัง: {{ globalStock }})

{{ getReportTitle() }}

รหัส {{sortIcon('id')}} ชื่อสินค้า {{sortIcon('name')}} ประเภท {{sortIcon('objType')}} คงเหลือ {{sortIcon('qty')}} มูลค่ารวม {{sortIcon('totalVal')}}
{{ item.id }}{{ item.name }} {{ item.objType }} {{ formatNumber(item.qty) }} {{ item.unit }} {{ formatCurrency(item.totalVal) }}
ประเภทกลุ่มมูลค่าสุทธิ (บาท)สัดส่วน (%)
{{ row.type }}{{ row.cls }}{{ formatCurrency(row.val) }}{{ row.pct }}%
มูลค่าคงคลังรวมทั้งสิ้น{{ formatCurrency(totalInventoryValue) }}100%
รายการสินค้าLot No.วันหมดอายุ (Exp)จำนวนคงเหลือสถานะ
{{ lot.productName }}{{ lot.lot }}{{ lot.exp }}{{ formatNumber(lot.qty) }}{{ isExpired(lot.exp)?'หมดอายุแล้ว':(isNearExp(lot.exp)?'ใกล้หมด (6 เดือน)':'ปกติ') }}
-- ไม่พบข้อมูล Lot สินค้าในคลัง --
ตัวตั้ง = จำนวนรายการ (Item) ที่ได้ไม่ครบตามที่ขอเบิก · ตัวหาร = จำนวน Item ทั้งหมดที่ขอเบิก · นับเฉพาะใบขอเบิกที่จ่ายแล้ว · “ได้รับ” ใช้ยอดที่คลังย่อยยืนยันรับจริง (หักส่งคืน) ถ้ามี มิฉะนั้นใช้ยอดที่คลังใหญ่จ่าย
หน่วยที่ขอเบิกจำนวนใบขอเบิกItem ที่ขอทั้งหมดItem ที่ได้ไม่ครบในนี้ไม่ได้เลยร้อยละไม่ครบ
{{ d.label }}{{ d.reqs }}{{ d.total }}{{ d.short }}{{ d.none }}
{{ d.pct.toFixed(1) }}%
ไม่มีใบขอเบิกที่จ่ายแล้วในช่วงนี้
รวม{{ unfilledReport.tot.reqs }}{{ unfilledReport.tot.total }}{{ unfilledReport.tot.short }}{{ unfilledReport.tot.none }}{{ unfilledReport.tot.pct.toFixed(1) }}%
วันที่ขอเลขใบขอเบิกหน่วยที่ขอรายการยาขอเบิกคลังใหญ่จ่ายได้รับขาดสาเหตุ
{{ formatThaiDate(r.date) }}{{ r.reqId }}{{ r.label }}{{ r.name }}{{ formatNumber(r.requested) }}{{ formatNumber(r.issued) }}{{ formatNumber(r.got) }}{{ formatNumber(r.short) }}{{ r.reason }}
ไม่พบรายการที่ได้ไม่ครบในช่วงนี้
ช่วงเวลา:
รายการที่ตัดสต็อกด้วยโหมด "จ่ายขึ้น Shelf" ของคลัง {{ globalStock }} (เฉพาะรายการที่จ่ายสำเร็จแล้ว) · รวม {{ shelfReport.totTimes }} ครั้ง มูลค่า {{ formatCurrency(shelfReport.totValue) }}
#รหัสชื่อสินค้าจำนวนครั้งจำนวนที่จ่ายขึ้น Shelfหน่วยมูลค่า (บาท)
{{ i + 1 }}{{ r.id }}{{ r.name }}{{ r.times }}{{ formatNumber(r.qty) }}{{ r.unit }}{{ formatCurrency(r.value) }}
ไม่มีรายการจ่ายขึ้น Shelf ในช่วงเวลานี้
รวม{{ shelfReport.totTimes }}{{ formatNumber(shelfReport.totQty) }}{{ formatCurrency(shelfReport.totValue) }}
เดือนจำนวนรายการยา (ชนิด)จำนวนครั้งมูลค่า (บาท)
{{ sjMonthLabel(m.ym) }}{{ m.kinds }}{{ m.times }}{{ formatCurrency(m.value) }}
ไม่มีรายการจ่ายขึ้น Shelf ในช่วงเวลานี้
รายงาน สจ.รง.1051 ใช้ได้เฉพาะคลังใหญ่ กรุณาสลับไปที่คลังยาใหญ่
ฐาน: {{ abcModeLabel }} (จัดซื้อนับเฉพาะบิลที่ตรวจรับแล้ว · ยอดยกมา = มูลค่าที่บันทึกเป็น "ยอดยกมา" ในปีงบนี้ ถ้าไม่มีจะใช้จำนวนคงเหลือรวมทุกคลัง ณ 1 ต.ค. × ราคาเฉลี่ยต่อหน่วย) เรียงแยกตามประเภทสินค้า · VEN กำหนดที่ตั้งค่าระบบรวม
ABC \ VENV (Vital)E (Essential)N (Non-essential)ยังไม่ระบุ VENรวม
{{ r === '-' ? 'ไม่มีการจัดซื้อ' : 'กลุ่ม ' + r }}
{{ abcVenMatrix.cells[r + c].n }}
{{ formatCurrency(abcVenMatrix.cells[r + c].v) }}
{{ abcVenMatrix.rowTotal[r] }}
รวม{{ abcVenMatrix.colTotal[c] }}{{ abcVenMatrix.total }}
กลุ่มสำคัญสูงสุด AV · AE · BV กลุ่มรอง AN · BE · CV กลุ่มทั่วไป BN · CE · CN คลิกช่องในตารางเพื่อกรองรายการด้านล่าง
รายการ{{ abcFilter.abc ? ' — กลุ่ม ' + (abcFilter.abc === '-' ? 'ไม่มีการจัดซื้อ' : abcFilter.abc) + ' / VEN ' + (abcFilter.ven === '?' ? 'ยังไม่ระบุ' : abcFilter.ven) : ' ทั้งหมด'}} ({{ abcList.length }})
#รหัสชื่อสินค้าABCVEN{{ abcMode === 'carry' ? 'มูลค่ายกมา+จัดซื้อ' : 'มูลค่าจัดซื้อ' }} (บาท)% ของทั้งหมด% สะสม
{{ i + 1 }}{{ r.id }}{{ r.name }} {{ r.abc || '-' }} {{ r.ven || '-' }}{{ formatCurrency(r.value) }}{{ r.pct.toFixed(2) }}{{ r.cum.toFixed(2) }}
-- ไม่พบรายการ --
หน่วยงานที่เบิกของมูลค่ารวมที่เบิกไป (บาท)
{{ dept }}{{ formatCurrency(val) }}
-- ไม่พบการเบิกจ่ายในช่วงเวลานี้ --

{{ adminTitle }}

{{ adminRows.length }} รายการ · คลิกหัวตารางเพื่อเรียง
{{ adminTitle }} — โรงพยาบาลจิตเวชเลยราชนครินทร์ ({{ new Date().toLocaleDateString('th-TH') }})
{{ c.label }} {{ adminSort.key === c.key ? (adminSort.asc ? '▲' : '▼') : '↕' }}จัดการ
{{ adminCell(item, c.key) }}
ไม่พบข้อมูล

ส่งออกข้อมูล 5 แฟ้มมาตรฐานกระทรวงฯ

คำอธิบาย: ระบบประมวลผลข้อมูลการบริหารเวชภัณฑ์เพื่อส่งออกเป็นไฟล์ .csv หรือ .xlsx (Excel) ตามมาตรฐานกระทรวงสาธารณสุข
รูปแบบ: YYYY-MM (ค.ศ.) เช่น 2026-04
1. DRUGLIST

ข้อมูลพื้นฐานรายการยา

2. PURCHASEPLAN

แผนการจัดซื้อประจำปี

3. RECEIPT

ข้อมูลการรับเข้าคลัง

4. DISTRIBUTION

ข้อมูลการจ่ายยาให้หน่วยเบิก

5. INVENTORY

ยอดคงเหลือ ณ สิ้นเดือนนั้นๆ

6. ส่งลำปาง

Template ส่งลำปาง

{{ scanToast.msg }}