Skip to main content
#P1602

POST /v2/manual-document/list

Route Info

Method Endpoint Controller
POST /v2/manual-document/list AccountingController@listManualDocument

شرح عملکرد (Functionality)

این مسیر برای لیست‌گیری، جستجو، فیلتر و صفحه‌بندی اسناد دستی در جدول manual_documents استفاده می‌شود. عملکرد متد به صورت زیر است:

  • دریافت ورودی JSON از کلید json شامل تنظیمات صفحه‌بندی و فیلتر.
  • محاسبه مقدار start بر اساس مقدار فعلی و طول (length).
  • اجرای کوئری با شروط:
    • فیلتر تاریخ بین from و to
    • فیلتر براساس سال
    • فیلتر شماره سند (from_document / to_document)
    • فیلتر بر اساس branch
  • بارگذاری گزارش تراز سند از Redis:
    • documents:balance_report:{id}
  • در صورت نبود داده در Redis، فراخوانی getManualDocumentDetails().
  • ساخت خروجی استاندارد شامل:
    • serial و system_serial
    • title و description
    • status فارسی
    • تراز مالی (financial)

پارامترهای ورودی (JSON Body)

Body Parameter: کل ورودی در فیلد json ارسال می‌شود

{
  "start": 0,
  "length": 20,
  "draw": 1,
  "search": {
    "from": "1403-01-01",
    "to": "1403-01-30",
    "year": "",
    "from_document": "",
    "to_document": ""
  }
}
  • start: نقطه شروع صفحه‌بندی
  • length: تعداد آیتم در هر صفحه
  • draw: شماره درخواست (برای DataTables)
  • search.from / search.to: بازه تاریخی
  • search.year: فیلتر سال
  • from_document / to_document: بازه شماره سند (با تبدیل داخلی -1000)

خروجی موفق (Success Response)

{
  "status": true,
  "time": 1718450000,
  "draw": 1,
  "recordsTotal": 152,
  "recordsFiltered": 20,
  "data": [
    {
      "serial": 3125,
      "system_serial": 125,
      "type": "manual",
      "title": "سند شماره 3125 | 1403/01/25 | دستی - توضیحات",
      "date": "14030125",
      "manual_serial": false,
      "sub_serial": false,
      "description": "توضیحات سند",
      "status": "تائید نهایی",
      "financial": {
        "debit_financial_past": 0,
        "credit_financial_past": 0,
        "debit_start_period": 0,
        "credit_start_period": 0,
        "debit_during_period": 1500000,
        "credit_during_period": 900000,
        "debit_balance": 600000,
        "credit_balance": 0
      }
    }
  ]
}

خروجی خطا (Error Response)

در صورت بروز خطای دیتابیس یا Exception:

{
  "status": false,
  "time": 1718450000,
  "code": 5005,
  "message": "SQL error message...",
  "trace": [ ... ]
}

نکات داخلی (Internal Logic Notes)

  • شماره سند خروجی = serial + 1000
  • تاریخ خروجی به صورت YYYYMMDD در فیلد date
  • عنوان سند از طریق getManualDocumentTitle() ساخته می‌شود
  • گزارش تراز مالی سند در Redis با کلید documents:balance_report:{id}
  • بازه صفحه = currentPage = start / length