Skip to main content
#P1631

GET /v2/redis-accounting/documents/subsidiary

Get Documents by Subsidiary

این اندپوینت لیست اسناد حسابداری مربوط به یک کد تفضیلی را از Redis برمی‌گرداند. دیتای خروجی شامل اسناد، مانده فعلی، تعداد کل اسناد، و در صورت درخواست، مانده تجمیعی از ابتدای سال تا تاریخ مشخص است. عملیات بر اساس ایندکس Redis accounting:docs:subsidiary:{code} انجام می‌شود.

Request Overview

URL: /v2/redis-accounting/documents/subsidiary
Method: GET
Auth: Bearer Token (Required)
Content-Type: application/json

Query Parameters Schema

Field Type Required Description
code integer yes کد تفضیلی که اسناد باید براساس آن فیلتر شوند
from_year_start boolean optional اگر true باشد، مانده از ابتدای سال شمسی تا امروز یا تا تاریخ مشخص محاسبه می‌شود
to_date string (YYYY-MM-DD) optional تاریخ پایانی برای محاسبه year_start_balance (پیش‌فرض: تاریخ امروز)

Request Example

GET /v2/redis-accounting/documents/subsidiary?code=1011003&from_year_start=true&to_date=1403-09-15
  

Response (Success)

ساختار خروجی:

Field Type Description
success boolean وضعیت نهایی درخواست
data.documents array لیست اسناد؛ توجه: مقدار برگشتی شامل [diffProcess, docs] است
data.balance object مانده فعلی Redis برای تفضیلی
data.total_documents integer تعداد کل اسناد برگردانده‌شده
data.year_start_balance object فقط اگر from_year_start=true باشد
{
  "success": true,
  "data": {
    "documents": [
      [
        [1733301120.123, 1733301120.125, ...],
        [
          {
            "id": "934221",
            "date": "1403-09-01",
            "debit": "250000",
            "credit": "0",
            "group": "10",
            "general": "101",
            "account": "1011",
            "subsidiary": "1011003"
          }
        ]
      ],
      "balance": {
        "debit": 250000,
        "credit": 0,
        "remaining": 250000
      },
      "total_documents": 1,
      "year_start_balance": {
        "debit": 250000,
        "credit": 0,
        "remaining": 250000,
        "year_start": "1403-01-01",
        "to_date": "1403-09-15"
      }
    }
  }
}
  

Response (Validation Error)

{
  "success": false,
  "message": "خطا در اعتبارسنجی",
  "errors": {
    "code": [
      "The code field is required."
    ]
  }
}
  

Response (Server Error)

{
  "success": false,
  "message": "خطا در دریافت اسناد: Internal server error..."
}
  

Internal Redis Architecture

Key Type Description
accounting:docs:subsidiary:{code} Set لیست شناسه اسناد مرتبط با این تفضیلی
accounting:doc:{id} Hash اطلاعات کامل سند
balance:subsidiary:{code} Hash مانده فعلی سندهای مربوط به این تفضیلی
accounting:docs:by_date SortedSet ایندکس تمام اسناد بر اساس تاریخ

Process Flow

Receive Request + Validate Inputs
Fetch IDs from Redis Set (accounting:docs:subsidiary:{code})
Load Each Document Hash (accounting:doc:{id})
Sort Documents by Date
Load Current Balance (balance:subsidiary:{code})
If from_year_start = true → Calculate Year-Start Balance
Return Final JSON Response