Skip to main content
#P1627

POST /v2/redis-accounting/save-document

1. Overview

این روت مسئول ثبت یک سند حسابداری در Redis است. سند شامل مبالغ بدهکار/بستانکار، تاریخ شمسی، تاریخ میلادی، گروه/کل/معین/تفضیلی، و توضیحات است.

این Endpoint هستهٔ سیستم حسابداری است. تمام مانده‌های حساب‌ها از همین مسیر به‌روز می‌شوند.

2. Request Schema

POST /v2/redis-accounting/save-document
Content-Type: application/json
      

Body

{
  "serial": number,
  "description": string,
  "jalaliDate": "YYYY-MM-DD",
  "debtor": number,
  "creditor": number,
  "group": number,
  "general": number,
  "account": number,
  "subsidiary": number,
  "datetime": "YYYY-MM-DD HH:MM:SS" (optional)
}
      

3. Validation Rules

  • serial → required, integer
  • description → required, string
  • jalaliDate → required, format /^[0-9]{4}-[0-9]{2}-[0-9]{2}$/
  • debtor/creditor → numeric, max 9999999999999
  • group/general/account/subsidiary → required, integer
  • datetime → optional → converted to Carbon

4. Controller Flow

  1. ورودی validate می‌شود.
  2. jalaliDate → تبدیل به میلادی با Jalalian::fromFormat
  3. اگر debtor یا creditor وجود نداشته باشد → 0
  4. datetime اگر وجود نداشت → now()
  5. صدا زدن RedisAccountingService::saveDocument()
  6. برگشت خروجی با:
    {
      "status": true,
      "serial": {computed_serial},
      "id": {doc_id},
      "time": {execution_time_ms}
    }