#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-yearMethod: 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