#P1601
DELETE /v2/manual-document
Route Info
| Method | Endpoint | Controller |
| DELETE | /v2/manual-document | AccountingController@trashManualDocument |
شرح عملکرد (Functionality)
این مسیر جهت حذف نرم (Soft Delete) یک سند دستی (Manual Document) استفاده میشود. فرآیند عملکرد به صورت زیر است:
- ابتدا تنظیم «پایان دوره مالی بسته» از جدول
office_configخوانده میشود. - تاریخ سند موردنظر از جدول
manual_documentsگرفته شده و با تاریخ بسته مالی مقایسه میشود. - اگر تاریخ سند داخل بازه بسته مالی باشد، حذف انجام نمیشود و پیام خطا باز میگردد.
- در صورت معتبر بودن تاریخ و شناسه:
- فیلد
status=5روی رکورد سند و پرداختهای مرتبط در جدولpaysاعمال میشود. - زمان ویرایش با
Carbon::now()بهروزرسانی میشود. - لاگ عملیات از طریق
SystemLogثبت و وارد صفsnailJobمیشود.
- فیلد
- در نهایت پاسخ HTTP با وضعیت
204 No Contentبازگردانده میشود.
ورودیها (Request Inputs)
Body Parameters (JSON/Form):
{
"id": 1542
}
- id: شناسه سند دستی که باید حذف شود (الزامی)
- branch: شناسه شعبه جاری (به صورت خودکار توسط سیستم/توکن ارسال میشود)
- operator: اطلاعات اپراتور لاگین شده (از JWT)
خروجی موفق (Success Response)
در صورت موفقیت عملیات، پاسخ بدون بدنه با کد 204 بازگردانده میشود:
HTTP 204 No Content
خطاها (Error Responses)
۱) سند داخل دوره مالی بسته شده باشد
{
"status": false,
"time": 1718450000,
"type": "danger",
"code": 5007,
"message": "حذف سند دستی در بازه زمانی بسته شده امکان پذیر نمیباشد. حساب ها تا تاریخ YYYY/MM بسته شده است."
}
۲) عدم ارسال شناسه معتبر
{
"error": {
"code": 1000,
"message": "شناسه سند ارسالی صحیح نمی باشد"
},
"meta": {
"timestamp": 1718450000
}
}
نکات داخلی (Internal Logic Notes)
- تاریخها قبل از مقایسه با تابع
Functions::checkDatetimeنرمالسازی میشوند. - فیلد
status=5برای حذف نرم اسناد و پرداختها استفاده میشود. - لاگ شامل:
- type = TrashManualDocument
- goal = id سند
- by = operator.id
- ip, agent, datetime