Skip to main content
#P1645

POST /v2/batch-accounting/process/current-year

Process Batch Documents of Current Year

این اندپوینت سال جاری شمسی را به صورت خودکار تشخیص داده و اسناد آن را از طریق پردازش دسته‌ای (Batch Processing) پردازش می‌کند. سال جاری از تاریخ کامل امروز، که توسط ShamsiDateHelper::today() تولید می‌شود، استخراج شده و سپس متد processBatchByYear فراخوانی می‌شود.

Request Overview

URL: /v2/batch-accounting/process/current-year
Method: POST
Middleware: authWithJwt, shamsiDate

Body Parameters

Field Type Required Description
batch_size integer no سایز Batchها. مقدار پیش‌فرض 500.

Request Example

POST /v2/batch-accounting/process/current-year

{
  "batch_size": 700
}
  

Validation Rules

  • batch_size: integer (در صورت ارسال)
  • تاریخ today() توسط middleware shamsiDate معتبر تشخیص داده می‌شود

Response (Success)

Field Type Description
success boolean نتیجه عملیات پردازش
data.total_processed integer تعداد کل اسناد پردازش‌شده
data.total_errors integer خطاهای رخ‌داده در Batchها
data.batches_count integer مجموع Batchهای اجراشده
message string پیام نهایی شامل سال استخراج‌شده از تاریخ امروز
{
  "success": true,
  "data": {
    "success": true,
    "total_processed": 9100,
    "total_errors": 3,
    "batches_count": 20
  },
  "message": "پردازش سال 1403 کامل شد. 9100 سند پردازش شد."
}
  

Response (Server Error)

{
  "success": false,
  "message": "خطا در پردازش سال جاری: Internal server error..."
}
  

Internal Architecture

Component Description
ShamsiDateHelper::today() بازگرداندن تاریخ امروز به فرمت YYYY-MM-DD
processBatchByYear() محاسبه start/end سال و ارسال آن‌ها به processBatchByDateRange
ShamsiDateHelper::endOfYear تشخیص آخرین روز سال شمسی
processBatchByDateRange() منطق کامل پردازش دسته‌ای شامل chunking، sleep و aggregate خروجی

Process Flow

Validate JWT Token
Get Today (ShamsiDateHelper::today)
Extract Current Year (YYYY)
Call processBatchByYear(currentYear, batchSize)
Compute startOfYear / endOfYear
Execute Batch Processing (chunking + throttling)
Aggregate Results (processed + errors + batch_count)
Return Final JSON Response