AR Status
API เอกสารลูกหนี้คงค้าง — ยอดหนี้คงค้างของลูกหนี้แต่ละราย พร้อมเอกสารที่ยังค้างชำระเป็นรายการย่อย (อ่านอย่างเดียว)
ใช้ตรรกะเดียวกับหน้าจอ สถานะลูกหนี้ ใน SML ERP
ต่างจาก AR Balance ตรงที่ AR Balance คืนเฉพาะยอดรวมต่อลูกหนี้ ส่วนเมนูนี้คืนเอกสารที่ค้างแต่ละใบด้วย
- ดึงลูกหนี้คงค้าง ทั้งหมด
- ดึงลูกหนี้คงค้าง ตามรหัสลูกหนี้
- AR Status Attribute
- AR Status Detail Attribute
Header Request
| Field | Value |
|---|---|
| GUID | GUID สำหรับการเชื่อมต่อ (smlx เสมอ) |
| provider | ชื่อผู้ใช้บริการ |
| databaseName | ชื่อฐานข้อมูล |
| configFileName | ชื่อไฟล์ตั้งค่า — รูปแบบ SMLConfig<provider>.xml |
| Content-Type | application/json; charset=utf-8 |
Header Example
{
"GUID": "smlx",
"provider": "DATA",
"databaseName": "data1",
"configFileName": "SMLConfigDATA.xml",
"Content-Type": "application/json; charset=utf-8"
}HTTP Response
| Status | ความหมาย |
|---|---|
200 | สำเร็จ — กรณี list ที่ไม่พบข้อมูลก็ได้ 200 เช่นกัน โดย data เป็น [] และ pages.total_record เป็น 0 |
400 | ข้อมูลผิดพลาด (code = 99) — ดูสาเหตุจริงใน message |
404 | ไม่พบลูกหนี้ที่มีหนี้คงค้างตามรหัสที่ระบุ (code = 404) หรือเรียก URL / path ไม่ถูกต้อง |
405 | ใช้ HTTP method ไม่ถูกต้อง |
500 | ข้อผิดพลาดภายในระบบ |
ArStatus List
แสดงลูกหนี้ที่มีหนี้คงค้าง พร้อมเอกสารที่ยังค้างชำระของแต่ละราย
EndPoint
GET /SMLJavaRESTService/arstatus/v4
ขอบเขตข้อมูล
- นับเฉพาะเอกสารที่ยังไม่ถูกยกเลิก (
last_status= 0) และมีวันที่เอกสารไม่เกินวันปัจจุบัน- ยอดคงค้างต่อเอกสาร = ยอดเงินตามเอกสาร − ยอดที่รับชำระมาแล้ว (รายวันรับชำระหนี้
trans_flag239)- แสดงเฉพาะเอกสารที่ยอดคงค้างไม่เท่ากับ 0
- ลูกหนี้ที่ไม่มีเอกสารค้างเลย จะไม่อยู่ในผลลัพธ์
เอกสารที่นำมาคิดเป็นหนี้ ได้แก่
| ประเภทเอกสาร | trans_flag | ผลต่อยอดหนี้ |
|---|---|---|
| ขาย (เงินเชื่อ) | 44 | บวก |
| เพิ่มหนี้(ขาย) | 46 | บวก |
| ตั้งหนี้ยกมา / เพิ่มหนี้ยกมา (ลูกหนี้) | 93, 95 | บวก |
| ตั้งหนี้อื่นๆ / เพิ่มหนี้อื่นๆ (ลูกหนี้) | 99, 101 | บวก |
| เช็ครับคืน/ตั้งหนี้ใหม่ | 418 | บวก |
| รายได้อื่น / เพิ่มหนี้รายได้อื่นๆ | 250, 254 | บวก |
| บันทึกการขายสินทรัพย์ | 1802 | บวก |
| รับคืน/ลดหนี้ | 48 | ลบ |
| ลดหนี้ยกมา / ลดหนี้อื่นๆ (ลูกหนี้) | 97, 103 | ลบ |
| รายได้อื่นลดหนี้ | 252 | ลบ |
Query Request
| Field | Description | Example |
|---|---|---|
| cust_code | รหัสลูกหนี้/ลูกค้า | AR20-00001 |
| from_date | วันที่เอกสาร ตั้งแต่ (≥) | 2022-01-01 |
| to_date | วันที่เอกสาร ถึง (≤) | 2022-12-31 |
| doc_no | เลขที่เอกสาร (ค้นแบบตรงตัว) | INV2201-0001 |
| page | หน้าที่ (เริ่ม 1) | 1 |
| size | จำนวนต่อหน้า | 10 |
หมายเหตุ:
- วันที่ใช้รูปแบบ
yyyy-MM-ddและกรองจากวันที่เอกสาร (doc_date)sizeคือจำนวนลูกหนี้ต่อหน้า เอกสารในdetailsของแต่ละรายจะมาครบเสมอtotal_recordคือจำนวนลูกหนี้ทั้งหมดที่มีหนี้คงค้างตามเงื่อนไข- เรียงจากยอดคงค้างมากไปน้อย
- เมื่อกรองด้วย
from_date/to_dateค่าar_balanceจะเป็นผลรวมเฉพาะเอกสารในช่วงนั้น ไม่ใช่ยอดหนี้ทั้งหมดของลูกค้า
Example:
GET localhost:8084/SMLJavaRESTService/arstatus/v4?page=1&size=10
GET localhost:8084/SMLJavaRESTService/arstatus/v4?cust_code=AR20-00001
GET localhost:8084/SMLJavaRESTService/arstatus/v4?from_date=2022-01-01&to_date=2022-12-31&page=1&size=10Response Success
ตัวอย่างจริงจากคำสั่ง
GET /SMLJavaRESTService/arstatus/v4?page=1&size=1&cust_code=SPY001019
{
"success": true,
"data": [
{
"cust_code": "SPY001019",
"cust_name": "ร้านพีค",
"credit_money": 1,
"credit_day": 30,
"ar_balance": 6800,
"ar_credit_balance": -6799,
"doc_count": 2,
"details": [
{
"cust_code": "SPY001019",
"doc_no": "INV2205-0003",
"doc_date": "2022-05-11",
"doc_type": 44,
"doc_type_name": "ขาย",
"due_date": "2022-05-11",
"credit_day": 0,
"over_due_day": 1596,
"amount": 5400,
"balance_amount": 5400,
"used_status": 0,
"tax_doc_no": "INV2205-0003",
"tax_doc_date": "2022-05-11",
"ref_doc_no": "",
"branch_code": "001",
"remark": ""
},
{
"cust_code": "SPY001019",
"doc_no": "INV2209-0007",
"doc_date": "2022-09-13",
"doc_type": 44,
"doc_type_name": "ขาย",
"due_date": "2022-10-13",
"credit_day": 30,
"over_due_day": 1441,
"amount": 1400,
"balance_amount": 1400,
"used_status": 0,
"tax_doc_no": "INV2209-0007",
"tax_doc_date": "2022-09-13",
"ref_doc_no": "",
"branch_code": "001",
"remark": ""
}
]
}
],
"pages": {
"size": 1,
"page": 1,
"total_record": 1,
"max_page": 1
}
}Response Error
{
"success": false,
"error": true,
"message": "error message",
"code": "99"
}ArStatus Information
ดึงสถานะลูกหนี้ทีละ 1 ราย พร้อมเอกสารที่ยังค้างชำระ
EndPoint
GET /SMLJavaRESTService/arstatus/v4/{cust_code}
Path Parameter
| Name | Description | Example |
|---|---|---|
| cust_code | รหัสลูกหนี้ — ถ้าลูกหนี้รายนั้นไม่มีหนี้คงค้างจะได้ 404 | SPY001017 |
ใช้ query
from_date/to_date/doc_noร่วมด้วยได้เหมือนหัวข้อ List
Example:
GET localhost:8084/SMLJavaRESTService/arstatus/v4/SPY001017Response Success
ตัวอย่างจริงจากคำสั่ง
GET /SMLJavaRESTService/arstatus/v4/SPY001017
{
"success": true,
"data": {
"cust_code": "SPY001017",
"cust_name": "วันเพ็ญ",
"credit_money": 1,
"credit_day": 30,
"ar_balance": 38711,
"ar_credit_balance": -38710,
"doc_count": 6,
"details": [
{
"cust_code": "SPY001017",
"doc_no": "INV2107-0001",
"doc_date": "2021-07-14",
"doc_type": 44,
"doc_type_name": "ขาย",
"due_date": "2021-07-14",
"credit_day": 0,
"over_due_day": 1897,
"amount": 8000,
"balance_amount": 8000,
"used_status": 0,
"tax_doc_no": "INV2107-0001",
"tax_doc_date": "2021-07-14",
"ref_doc_no": "",
"branch_code": "001",
"remark": ""
},
{
"cust_code": "SPY001017",
"doc_no": "INV2207-0001",
"doc_date": "2022-07-08",
"doc_type": 44,
"doc_type_name": "ขาย",
"due_date": "2022-07-08",
"credit_day": 0,
"over_due_day": 1538,
"amount": 16108,
"balance_amount": 16108,
"used_status": 0,
"tax_doc_no": "INV2207-0001",
"tax_doc_date": "2022-07-08",
"ref_doc_no": "",
"branch_code": "001",
"remark": ""
},
{
"cust_code": "SPY001017",
"doc_no": "INV2208-0003",
"doc_date": "2022-08-17",
"doc_type": 44,
"doc_type_name": "ขาย",
"due_date": "2022-08-17",
"credit_day": 0,
"over_due_day": 1498,
"amount": 4999,
"balance_amount": 4999,
"used_status": 0,
"tax_doc_no": "INV2208-0003",
"tax_doc_date": "2022-08-17",
"ref_doc_no": "",
"branch_code": "001",
"remark": ""
},
{
"cust_code": "SPY001017",
"doc_no": "INV2301-0008",
"doc_date": "2023-01-31",
"doc_type": 44,
"doc_type_name": "ขาย",
"due_date": "2023-03-02",
"credit_day": 30,
"over_due_day": 1301,
"amount": 5136,
"balance_amount": 5136,
"used_status": 0,
"tax_doc_no": "INV2301-0008",
"tax_doc_date": "2023-01-31",
"ref_doc_no": "",
"branch_code": "",
"remark": ""
},
{
"cust_code": "SPY001017",
"doc_no": "INV2301-0009",
"doc_date": "2023-01-31",
"doc_type": 44,
"doc_type_name": "ขาย",
"due_date": "2023-03-02",
"credit_day": 30,
"over_due_day": 1301,
"amount": 2568,
"balance_amount": 2568,
"used_status": 0,
"tax_doc_no": "INV2301-0009",
"tax_doc_date": "2023-01-31",
"ref_doc_no": "",
"branch_code": "",
"remark": ""
},
{
"cust_code": "SPY001017",
"doc_no": "INV2304-0002",
"doc_date": "2023-04-27",
"doc_type": 44,
"doc_type_name": "ขาย",
"due_date": "2023-05-27",
"credit_day": 30,
"over_due_day": 1215,
"amount": 1900,
"balance_amount": 1900,
"used_status": 0,
"tax_doc_no": "INV2304-0002",
"tax_doc_date": "2023-04-27",
"ref_doc_no": "",
"branch_code": "",
"remark": ""
}
]
}
}Response Error
ไม่พบลูกหนี้ที่มีหนี้คงค้างตามรหัสที่ระบุ → HTTP
404
{
"success": false,
"error": true,
"message": "ArStatus not found: SPY001017",
"code": "404"
}ArStatus Attribute
ทุกฟิลด์เป็นข้อมูลที่ระบบคืนกลับมา (เมนูนี้ไม่มี POST)
| Field Name | Field Type | Length | Description |
|---|---|---|---|
| ar_balance | Float | ยอดหนี้คงค้างรวมของลูกหนี้รายนี้ | |
| ar_credit_balance | Float | วงเงินเครดิตคงเหลือ = credit_money − ar_balance | |
| credit_day | Integer | จำนวนวันเครดิตของลูกหนี้ | |
| credit_money | Float | วงเงินเครดิตของลูกหนี้ | |
| cust_code | String | 25 | รหัสลูกหนี้/ลูกค้า |
| cust_name | String | 255 | ชื่อลูกหนี้/ลูกค้า |
| details | Array | เอกสารที่ยังค้างชำระ (ดู AR Status Detail) | |
| doc_count | Integer | จำนวนเอกสารที่ยังค้างชำระ |
ArStatus Detail
| Field Name | Field Type | Length | Description |
|---|---|---|---|
| amount | Float | จำนวนเงินตามเอกสาร (เอกสารลดหนี้/รับคืนเป็นค่าติดลบ) | |
| balance_amount | Float | ยอดคงค้างของเอกสารนี้ | |
| branch_code | String | 25 | รหัสสาขา |
| credit_day | Integer | จำนวนวันเครดิตของเอกสาร | |
| cust_code | String | 25 | รหัสลูกหนี้/ลูกค้า |
| doc_date | Date | วันที่เอกสาร | |
| doc_no | String | 25 | เลขที่เอกสาร |
| doc_type | Integer | รหัสประเภทเอกสาร (trans_flag) | |
| doc_type_name | String | 255 | ชื่อประเภทเอกสาร เช่น ขาย, รับคืน, เพิ่มหนี้(ขาย) |
| due_date | Date | วันครบกำหนดชำระ | |
| over_due_day | Integer | จำนวนวันที่เกินกำหนดชำระ (0 = ยังไม่ถึงกำหนด) | |
| ref_doc_date | Date | วันที่เอกสารอ้างอิง | |
| ref_doc_no | String | 25 | เลขที่เอกสารอ้างอิง |
| remark | String | 255 | หมายเหตุ |
| tax_doc_date | Date | วันที่ใบกำกับภาษี | |
| tax_doc_no | String | 25 | เลขที่ใบกำกับภาษี |
| used_status | Integer | สถานะการใช้เอกสาร |