#P1604
POST /v2/manual-document/get
Route Info
| Method | Endpoint | Controller |
| POST | /v2/manual-document/get | AccountingController@getManualDocument |
شرح عملکرد (Functionality)
این مسیر جهت دریافت تمامی جزئیات یک سند دستی و تمام ردیفهای وابسته به آن استفاده میشود.
فرآیند متد:
- جستجو و بازیابی رکورد موردنظر از جدول
manual_documents. - استخراج آیتمهای مرتبط از جدول
paysبر اساسgroup = id. - محاسبه مجموع:
- تعداد آیتمها (count)
- جمع بدهکار (debit)
- جمع بستانکار (credit)
- استخراج جزئیات هر pay از Redis:
- کلید:
accounting:pays:{pay_id} - درصورت نبود داده: تبدیل داده با
convertPayDetailsDbToTable
- کلید:
- تبدیل شناسههای معین و طرفحساب به ساختار استاندارد با:
Functions::getDetailsItems()
- برگشت ساختار استاندارد «document payload» شامل:
- system_serial
- serial (با +1000)
- type
- date
- title با استفاده از
getManualDocumentTitle - توضیحات، زیر شمارهها، وضعیت و جمع کل
پارامترهای ورودی (JSON Body)
Body:
{
"id": 1524
}
- id: شناسه سند در جدول
manual_documents(اجباری)
خروجی موفق (Success Response)
خروجی شامل سه بخش اصلی است:
- items: لیست کامل پرداختها/دریافتهای سند
- payload: اطلاعات کامل سند
- meta: زمان اجرا
{
"items": [
{
"id": 980211,
"serial": 1452,
"moeen": {
"id": 1102,
"serial": 220,
"group": 4,
"details": { ... },
"type": { "fa": "معین", "en": "moeen" },
"title": {
"fa": { "simple": "بانک ملت", "html": "بانک ملت" }
}
},
"preference": {
"id": "colleague-5421",
"serial": 5421,
"title": "علی رضایی"
},
"preference_2": {
"id": 1452,
"title": 1452
},
"preference_3": false,
"preference_4": false,
"description": "واریز نقدی",
"credit": 0,
"debit": 850000
}
],
"payload": {
"document": {
"serial": 3125,
"system_serial": 1524,
"title": "سند شماره 3125 | دستی - توضیحات"
},
"system_serial": 1524,
"serial": 3125,
"type": "manual",
"title": "سند شماره 3125 | دستی - توضیحات",
"date": "1403/01/25",
"manual_serial": false,
"sub_serial": false,
"description": "توضیحات سند",
"total": {
"count": 4,
"debit": 3200000,
"credit": 2400000
},
"status": 1
},
"meta": {
"timestamp": 1718450000
}
}
خروجی خطا (Error Response)
در صورت بروز Exception:
{
"status": false,
"time": 1718450000,
"code": 5005,
"message": "Error message...",
"trace": [ ... ]
}
نکات داخلی اجرای متد
- کلید Redis برای آیتمها:
accounting:pays:{id} - در صورت عدم وجود داده در Redis:
V2CreditDebitController::convertPayDetailsDbToTable() - تبدیل شناسهها به عنوان و ساختار کامل:
Functions::getDetailsItems(type, id, "autocomplete") - عنوان سند از:
getManualDocumentTitle() - serial خروجی سند = serial + 1000