Skip to main content
#P1609

PUT /v2/accounting/closing/definite/{type}

Route Info

Method Endpoint Controller Middleware
PUT /v2/accounting/closing/definite/{type} AccountingController@definiteDocumentsInClosingAccount authWithJwt

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

این مسیر برای قطعی‌کردن دسته‌ای اسناد هنگام بستن دوره مالی استفاده می‌شود. نوع سند از پارامتر {type} تعیین می‌شود و شامل موارد زیر است:

  • daily_sales: اسناد فروش روزانه (جدول factors)
  • daily_credit_debit: اسناد دریافت/پرداخت روزانه (جدول pays)
  • manual_documents: اسناد دستی (جدول manual_documents)
  • salary: (رزرو – بدون پیاده‌سازی)
  • treasury_bills: (رزرو – بدون پیاده‌سازی)

هر نوع سند با شرط‌های خاص زمانی (شمسی/میلادی) و وضعیت فعلی، به وضعیت 3 (قطعی) به‌روزرسانی می‌شود. این API بخشی از پیوستگی عملیات بستن حساب است و معمولاً پس از بررسی عدم وجود سند باز انجام می‌شود.

پارامترهای ورودی (Input)

Path Parameter

  • {type}: نوع سند هدف (daily_sales/daily_credit_debit/manual_documents/…)

Body (JSON):

{
  "year": "1404",
  "month": "03",
  "branch": 1
}
  • year: سال شمسی موردنظر
  • month: ماه شمسی موردنظر
  • branch: شعبه هدف

منطق پردازش (Logic)

ابتدا سال/ماه شمسی به میلادی تبدیل می‌شوند:

  • miladi.year = سال میلادی
  • miladi.month = ماه میلادی
  • shamsi.year = سال شمسی
  • shamsi.month = ماه شمسی

قطعی‌کردن اسناد فروش روزانه (type = daily_sales)

فیلترها:
  • status ∈ [1, 4]
  • branch = {branch}
  • created_at.year = میلادی
  • created_at.month = میلادی
عملیات:
UPDATE factors SET status = 3

قطعی‌کردن دریافت/پرداخت روزانه (type = daily_credit_debit)

شرط‌ها:
  • status ∈ [4, 6]
  • group IS NULL
  • branch = {branch}
فیلتر تاریخ:
  • اگر deadline NULL → created_at ≤ YYYY-12-31 میلادی
  • اگر deadline NOT NULL و نوع چک باشد → deadline ≤ YYYYMM31 شمسی
عملیات:
UPDATE pays SET status = 3

قطعی‌کردن اسناد دستی (type = manual_documents)

شرط‌ها:
  • status = 1
  • branch = {branch}
  • date ≤ YYYYMM31 شمسی
عملیات:
UPDATE manual_documents SET status = 3

موارد رزرو (به‌صورت NO-OP)

  • salary → بدون تغییر
  • treasury_bills → بدون تغییر
اگر type نامعتبر باشد:
return false

پاسخ موفق (Success Response)

اگر عملیات با موفقیت انجام شود (true):

Status: 204 No Content
Body: ""

پاسخ خطا (Invalid Type)

اگر نوع سند شناسایی نشود (false):

Status: 422 Unprocessable Entity
Body: ""

وابستگی دیتابیس

Table Description
factors اسناد فروش روزانه
pays اسناد دریافت/پرداخت (چک + نقد)
manual_documents سندهای دستی

Meta

  • HTTP Status Codes: 204, 422
  • نقش کلیدی در فرآیند قطعی‌سازی قبل از بستن مالی
  • همواره نیازمند year + month + branch