=== Persian Office Automation SaaS ===
Contributors: syeedalireza
Tags: automation, office, correspondence, dabirkhane, letter-management
Requires at least: 6.0
Tested up to: 7.1
Requires PHP: 7.4
Stable tag: 3.1.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

اتوماسیون اداری برای وردپرس: دبیرخانه، نامه، کارتابل، سربرگ، یادداشت روزانه و تقویم جلالی.

== Description ==

**توضیحات به زبان فارسی**

**Persian Office Automation SaaS** پلاگین تخصصی **اتوماسیون اداری** و **مدیریت دبیرخانه (کارتابل)** برای وردپرس است. اگر به دنبال جایگزینی پرونده‌های کاغذی، پیگیری شماره نامه، ارجاع بین همکاران و یک **داشبورد اداری فارسی** روی همان زیرساختی که برای وب‌سایت استفاده می‌کنید هستید، این افزونه مسیر دیجیتال‌سازی مکاتبات را بدون نیاز به نرم‌افزار جداگانه فراهم می‌کند.

**این پلاگین به درد چه سازمان‌ها و کسب‌وکارهایی می‌خورد؟**

* شرکت‌های کوچک و متوسط، دفاتر حقوقی، مشاوره و خدمات حرفه‌ای
* فروشگاه‌ها و واحدهای تجاری کوچک تا متوسط با نیاز به بایگانی سفارشات، مکاتبات تامین‌کننده یا پیگیری داخلی
* تیم‌های اجرایی، پشتیبانی و پروژه‌ای که وظایف روزمره را روی یک تقویم و بورد مدیریت می‌کنند
* نهادها و مجموعه‌هایی که **شماره‌گذاری نامه وارده و صادره**، **بایگانی الکترونیک** و **کنترل دسترسی نقش‌محور** برایشان اولویت دارد
* هر سازمانی که **تاریخ جلالی (شمسی)** در فرم‌ها و گزارش‌ها نیاز دارد

**قابلیت‌ها و امکانات اصلی (خلاصهٔ کاربردی)**

* **کارتابل و دبیرخانه:** صندوق ورودی، ارسال‌شده، در انتظار، ستاره‌دار و آرشیو؛ دریافت، ارجاع و پیگیری نامه در یک گردش کار واحد.
* **نامه وارده و صادره:** ثبت شماره، مرجع، موضوع، فرستنده/گیرنده، اولویت، تاریخ و ضمیمه؛ جستجو و آرشیو برای مرور سریع سوابق.
* **مکاتبات داخلی:** تبادل یادداشت و مکاتبهٔ داخلی بین کاربران و واحدها، به‌همراه **پاسخ به نامه** و ثبت سابقه در کارتابل.
* **مدیریت وظایف (Tasks):** ایجاد وظیفه، تخصیص به کاربر، وضعیت در نمای فهرست یا کانبان، چک‌لیست، ثبت زمان و نظرات برای هماهنگی تیمی.
* **جلسات:** ثبت جلسه با تاریخ، مکان، شرکت‌کنندگان و یادداشت؛ هم‌راستا با تقویم و رویدادهای اداری.
* **سربرگ سازمانی:** تعریف قالب سربرگ با لوگو، نام سازمان، بسمه‌تعالی و پاورقی؛ اعمال روی نامه وارده، صادره یا مکاتبه داخلی هنگام مشاهده و چاپ.
* **یادداشت روزانه فردی:** ثبت یادداشت شخصی روی تقویم شمسی، با حال‌وهوا، برچسب، پین و نمایش در تقویم کاری.
* **فرآیندهای کسب‌وکار (اختیاری):** فعال‌سازی ماژول گردش کار و چارت سازمانی از تنظیمات، بدون شلوغ کردن منو برای سازمان‌هایی که به آن نیاز ندارند.
* **تقویم شمسی (جلالی):** نمایی یکپارچه از نامه‌ها، جلسات، وظایف و یادداشت‌های روزانه روی تقویم فارسی.
* **گزارش‌ها:** گزارش‌های آماری برای مدیران جهت نظارت بر حجم مکاتبات و وضعیت کارها (با محدودیت نقش مناسب).
* **نقش‌ها و دسترسی دقیق:** قابلیت‌های سفارشی مانند ایجاد/مشاهدهٔ نامه (`persian_oa_create_letter`، `persian_oa_view_letter` و …) برای تفکیک دسترسی کارکنان.
* **تنظیمات واحد:** تنظیمات عمومی، آپلود، شماره‌گذاری، دسته‌بندی‌ها و فرآیندهای کسب‌وکار برای هماهنگی با رویهٔ سازمان شما.
* **اعلان‌ها:** صفحهٔ اعلان‌ها، نشان زنده در منو و نوار مدیریت، علامت‌گذاری خوانده‌شده، ترجیح ایمیل هر کاربر و یادآوری مهلت.
* **آمادهٔ چندزبانگی:** بستهٔ ترجمه و Text Domain استاندارد برای توسعهٔ آینده.
* **حفاظت از فایل‌های آپلودشده:** پیوست نامه‌ها، فایل وظایف، لوگو و آیکون در پوشهٔ خصوصی ذخیره می‌شوند و فقط کاربر لاگین‌شده با مجوز مجاز می‌تواند آن‌ها را دانلود کند.

**امکانات اضافه‌شده در نسخه ۳.۱.۰**

* **نامه صادره:** گردش تأیید یا رد توسط امضاکننده، شماره مرجع (پاسخ)، رونوشت داخلی، روش ارسال، تاریخ ارسال و چند پیوست.
* **نامه وارده:** باز کردن نامه برای گیرنده و افراد ارجاع بدون حق ویرایش؛ پاسخ با نامه صادره یا ثبت اقدام؛ تغییر وضعیت، بایگانی و حذف؛ حفظ رونوشت و ذخیرهٔ پیوست هنگام ویرایش.
* **ارجاع:** ارجاع همزمان به چند نفر، همراه هامش (پاراف) و مهلت، روی نامه وارده، صادره و داخلی.
* **مکاتبات داخلی:** تب پیش‌نویس، ویرایش و ارسال بعدی. پیش‌نویس برای گیرنده نمایش داده نمی‌شود و اعلان نمی‌سازد.
* **کارتابل:** صفحه‌بندی همهٔ تب‌ها، فیلتر تاریخ شمسی در آرشیو، و قرار گرفتن نامه‌های منتظر امضا در «در انتظار».
* **نظر روی نامه:** اعلان برای افراد مرتبط هنگام ثبت نظر روی نامه.
* **وظایف:** کنترل دسترسی در همهٔ صفحه‌ها و عملیات، آپلود محافظت‌شده در نظرات، ثبت زمان با تاریخ شمسی، نمای تیمی و همهٔ وظایف، کانبان امن‌تر، پاکسازی کامل هنگام حذف. برآورد زمان از این نسخه بر حسب دقیقه ذخیره می‌شود.
* **یادآوری روزانه:** پاکسازی اعلان‌های قدیمی و یادآوری مهلت نامه، ارجاع و وظیفه.

معماری افزونه بر پایهٔ لایه‌بندی تمیز (دامنه، سرویس‌ها، زیرساخت و نمایش) است تا نگهداری و توسعه برای تیم فنی ساده‌تر باشد. برای **سئو و دیده‌شدن موضوعی**، این افزونه در حوزه‌های کلیدی واژگانی مانند *اتوماسیون اداری وردپرس*، *دبیرخانه دیجیتال*، *مدیریت مکاتبات*، *کارتابل نامه*، *تقویم شمسی در وردپرس* و *مدیریت وظایف سازمانی* طراحی شده است تا در جستجوهای مرتبط مخاطب مناسب را پیدا کند.

---

**English**

**Persian Office Automation SaaS** is a WordPress plugin for **office automation**, **correspondence (Dabirkhane / cartable)** and **team operations**. It helps you replace paper trails with structured incoming/outgoing letter registers, internal memos, task boards and a **Jalali (Persian) calendar**—all inside the WordPress admin you already use.

**Who is it for?**

* **Small and medium companies**, professional offices, consulting and service businesses
* **Small-to-medium shops** that need **document trails**, supplier correspondence or lightweight internal tracking
* **Operational and project teams** that coordinate work with tasks, checklists and status boards
* Organizations that need **letter numbering**, **digital archiving** and **role-based access control**
* Anyone who requires **Jalali dates** consistently across forms and lists

**Major features**

* **Cartable / inbox workflow:** Inbox, sent, pending, starred and archive views—receive, refer and track letters end-to-end.
* **Incoming & outgoing letters:** Register reference data, subject, parties, priority, dates and attachments; search and archive historical records.
* **Internal correspondence:** Exchange internal notes between users/teams alongside formal mail.
* **Task management:** Assign work, track status (list/kanban), checklists, time notes and comments.
* **Meetings:** Schedule meetings with attendees, location and notes, aligned with calendar-style visibility.
* **Letterheads:** Build organizational letterhead templates (logo, organization name, basmala, footer) and apply them to incoming, outgoing or internal letters when viewing or printing.
* **Daily notes:** Personal Jalali journal with mood, tags, pinning and calendar visibility.
* **Optional business processes:** Enable workflow and org-chart modules from settings only when the organization needs them.
* **Jalali calendar:** Surface letters, meetings, tasks and daily notes on a Persian calendar.
* **Reports (admin):** Statistics for oversight (appropriate capability gating).
* **Fine-grained capabilities:** Custom caps such as `persian_oa_create_letter` and `persian_oa_view_letter` for least-privilege setups.
* **Settings:** General, uploads, numbering, categories and optional business-process options to match your organization’s policy.
* **Notifications:** A notifications page, a live menu badge, mark-as-read, a per-user e-mail preference and deadline reminders.
* **Translation-ready:** Text domain and languages folder for i18n.
* **Protected uploads:** Letter attachments, task files, letterhead logos and title icons are stored privately and downloaded only by logged-in users with permission.

**Added in version 3.1.0**

* **Outgoing letters:** Signer approval or rejection, a reference (reply) number, internal CC, delivery method, dispatch date and multiple attachments.
* **Incoming letters:** Recipients and referral parties can open a letter without edit rights; reply with an outgoing letter or by recording the action; change status, archive or delete; edits keep CC recipients and save new attachments.
* **Referrals:** Send one letter to several people at once, with a paraph and a deadline, on incoming, outgoing and internal letters.
* **Internal letters:** A drafts tab with edit and send later. Drafts are hidden from recipients and do not create notifications.
* **Cartable:** Pagination on every tab, a working Jalali date filter in the archive, and outgoing letters waiting for the signer listed under pending.
* **Letter comments:** People involved are notified when a comment is added.
* **Tasks:** Access control on every page and action, protected comment uploads, Jalali time logs, team and all-tasks views, safer kanban drag-and-drop and full cleanup on delete. Time estimates are stored in minutes.
* **Daily maintenance:** Old notifications are cleaned up, and letter, referral and task deadlines are reminded.

The codebase follows a **clean, layered architecture** (domain, application, infrastructure, presentation) for maintainability. For **topic SEO**, positioning keywords include *WordPress office automation*, *digital mailroom*, *correspondence management*, *Persian Jalali calendar*, *task & workflow for SMEs*—so the right teams discover the plugin when they search for those problems.

== Installation ==

1. Upload the `persian-office-automation` folder to `/wp-content/plugins/`, or install the ZIP via **Plugins → Add New → Upload Plugin**.
2. Activate **Persian Office Automation SaaS** from the **Plugins** screen.
3. Open **اتوماسیون اداری** in the admin menu and complete **تنظیمات** (عمومی، آپلود، شماره‌گذاری، دسته‌بندی‌ها و در صورت نیاز فرآیندهای کسب‌وکار) as needed.
4. On first activation or update, required database structures and default roles/capabilities are created. Ensure users receive appropriate capabilities (administrators have broad access by default).
5. To print letters on official paper, add a letterhead under **سربرگ‌ها**. Daily notes are personal to each user and appear on the Jalali calendar.

== Frequently Asked Questions ==

= آیا این افزونه فقط برای سازمان‌های بزرگ است؟ =

خیر. برای **تیم‌های کوچک و متوسط**، فروشگاه‌ها و دفاتر کاری که می‌خواهند مکاتبات و کارها را روی وردپرس متمرکز کنند طراحی شده است.

= آیا تقویم شمسی در تمام بخش‌ها پشتیبانی می‌شود؟ =

هدف افزونه **همسوکردن تاریخ جلالی** در فرم‌ها، لیست‌ها، یادداشت روزانه و تقویم است؛ جزئیات هر صفحه ممکن است با به‌روزرسانی‌ها تکمیل شود.

= سربرگ نامه چیست و روی کدام نامه‌ها اعمال می‌شود؟ =

از منوی **سربرگ‌ها** می‌توانید قالب سازمانی (لوگو، نام، بسمه‌تعالی و پاورقی) بسازید و آن را برای همه نامه‌ها، یا فقط وارده / صادره / داخلی تنظیم کنید. هنگام مشاهده نامه می‌توانید سربرگ را برای چاپ فعال کنید.

= یادداشت روزانه برای همه کاربران قابل مشاهده است؟ =

خیر. یادداشت‌های روزانه شخصی هستند و فقط برای همان کاربر ذخیره و در تقویم خودش نمایش داده می‌شوند.

= چطور مدیریت فرآیندهای کسب‌وکار را فعال کنم؟ =

از **تنظیمات → فرآیندهای کسب و کار** گزینه فعال‌سازی را روشن کنید. تا وقتی این گزینه خاموش باشد، منوی فرآیند و چارت سازمانی نمایش داده نمی‌شود.

= Is multilingual content supported in the UI? =

The plugin is **translation-ready** (text domain: `persian-office-automation`). You can ship translations via the `languages` directory or standard WordPress translation workflows.

= What are the minimum requirements? =

**WordPress 6.0+**, **PHP 7.4+**, and a compatible **MySQL/MariaDB** version as noted in the main plugin header/README.

= آیا فایل‌های پیوست برای عموم قابل دانلود است؟ =

خیر. از نسخه ۳.۰.۱۹ فایل‌های آپلودشده (پیوست نامه، فایل وظیفه، لوگو و آیکون) در پوشهٔ خصوصی ذخیره می‌شوند و فقط کاربران واردشده با مجوز مشاهدهٔ همان نامه یا وظیفه می‌توانند آن‌ها را دانلود کنند.

= Are uploaded attachments publicly downloadable? =

No. Since 3.0.19, plugin uploads are stored in a private folder (`wp-content/uploads/persian-oa-protected/`) and served only through a login- and permission-checked download endpoint. Direct public URLs are denied.

== Screenshots ==

1. **Dashboard:** مدیریت یکجای فعالیت‌های اداری و دسترسی سریع به کارتابل، وظایف و مکاتبات / Central overview for cartable, tasks and correspondence.
2. **ثبت نامه / Letter registration:** رابط کاربری برای ثبت نامه وارده یا صادره با فیلدهای استاندارد دبیرخانه / Standard mailroom fields for incoming or outgoing letters.

== Changelog ==

= 3.1.0 =
* Outgoing letters: signer approval or rejection, reference (reply) number, internal CC, delivery method, dispatch date and multiple attachments.
* نامه صادره: گردش تأیید یا رد امضاکننده، شماره مرجع، رونوشت داخلی، روش و تاریخ ارسال، و چند پیوست.
* Incoming letters: read-only recipients and referral parties can open their letters; reply by outgoing letter or by recording the action; status change, archive and delete; edits keep CC and save new attachments.
* نامه وارده: مشاهده بدون حق ویرایش، پاسخ با نامه صادره یا ثبت اقدام، تغییر وضعیت، بایگانی و حذف، حفظ رونوشت و پیوست هنگام ویرایش.
* Referrals to several people at once, with a paraph and a deadline, on incoming, outgoing and internal letters. Letter comments notify the people involved.
* ارجاع چندنفره با هامش و مهلت روی هر سه نوع نامه، و اعلان هنگام ثبت نظر روی نامه.
* Internal letters: drafts tab, edit and send later. Drafts stay hidden from recipients and do not notify them. Notification and calendar links open the letter directly.
* مکاتبات داخلی: تب پیش‌نویس با ویرایش و ارسال بعدی؛ پیش‌نویس برای گیرنده نمایش داده نمی‌شود و اعلان نمی‌سازد.
* Cartable: pagination on every tab, a working Jalali date filter in the archive, and outgoing letters awaiting the signer listed under pending.
* کارتابل: صفحه‌بندی همه تب‌ها، فیلتر تاریخ شمسی در آرشیو، و نمایش نامه‌های منتظر امضا در «در انتظار».
* Notifications: a full notifications page, mark-as-read on open, a live badge, a per-user e-mail preference, and a daily job that cleans old notifications and reminds deadlines.
* اعلان‌ها: صفحه اعلان‌ها، خوانده‌شدن با باز کردن، نشان زنده، ترجیح ایمیل هر کاربر، پاکسازی اعلان‌های قدیمی و یادآوری مهلت.
* Tasks: access checks on every page and action, protected comment uploads, Jalali time logs, team and all-tasks views, safer kanban and full cleanup on delete. Existing hour estimates are converted to minutes on update.
* وظایف: کنترل دسترسی، آپلود محافظت‌شده در نظرات، ثبت زمان شمسی، نمای تیمی، کانبان امن‌تر و پاکسازی هنگام حذف. برآوردهای قبلی (ساعت) هنگام به‌روزرسانی به دقیقه تبدیل می‌شوند.

= 3.0.20 =
* Fixed Jalali work calendar layout so the month grid renders in seven columns.
* Corrected the first weekday of each Jalali month in Tehran timezone.

= 3.0.19 =
* Blocked public HTTP access to plugin uploads (letters, tasks, letterheads, icons).
* Served files only through a login- and permission-checked download endpoint.
* Moved existing attachments into a private uploads folder and denied direct URL access.

= 3.0.18 =
* Enabled reply on internal letters (مکاتبات داخلی / مشاهده نامه): compose a reply to the original sender, with quote of the source letter.
* Marked the original letter as replied (reply number, date and content) and listed it under cartable «پاسخ داده شده».
* Included unanswered internal letters in cartable «در انتظار پاسخ».

= 3.0.17 =
* Added organizational letterhead templates (logo, organization name, basmala, footer) for incoming, outgoing and internal letters.
* Applied letterheads on letter view and print screens, with a per-letter toggle.
* Added personal daily notes with Jalali calendar, mood, tags, pinning and search.
* Showed daily notes alongside letters, meetings and tasks on the working calendar.
* Added an optional business-process module (workflow settings and org-chart entry) behind a settings toggle.
* Created database tables for letterheads and daily notes, with uninstall cleanup.

= 3.0.14 =
*   Version bump.

= 3.0.13 =
*   Version bump.

= 3.0.12 =
*   Version bump.

= 3.0.11 =
*   Version bump.

= 3.0.10 =
*   Version bump.

= 3.0.9 =
*   Version bump.

= 3.0.8 =
*   Version bump; readme Stable tag aligned with plugin header.

= 3.0.7 =
*   Version bump.

= 3.0.6 =
*   Version bump.

= 3.0.5 =
*   Plugin Check compliance: dashboard DB logic moved to repository; Direct DB warnings addressed in services.

= 3.0.2 =
*   Added outgoing letter view page.
*   UI/UX improvements across cartable, tasks, and correspondence views.
*   Enhanced Jalali date handling and report service.
*   Multi-language support (languages folder).
*   Various bug fixes and code quality improvements.

= 3.0.1 =
*   WordPress.org plugin directory compliance fixes.
*   Code and security improvements per review feedback.

= 3.0.0 =
*   Initial release of the SaaS version.
*   Added comprehensive task management.
*   Improved UI/UX with modern design.
*   Fixed Jalali date picker issues.

== Upgrade Notice ==

= 3.1.0 =
Signer approval, multi-recipient referrals, a notifications page, deadline reminders and task access control. Task estimates are converted from hours to minutes on update. Back up the site before updating on production.
گردش تأیید نامه، ارجاع چندنفره، صفحه اعلان‌ها، یادآوری مهلت و کنترل دسترسی وظایف. برآورد زمان وظایف از ساعت به دقیقه تبدیل می‌شود. پیش از به‌روزرسانی روی سایت اصلی پشتیبان بگیرید.

= 3.0.20 =
Fixes the Jalali work calendar month grid and weekday alignment.

= 3.0.19 =
Plugin uploads are now private. Existing attachment files are moved into a protected folder on update. Direct public URLs stop working; use the in-plugin download links.

= 3.0.18 =
Internal letter reply is now available from the letter view and cartable pending list.

= 3.0.17 =
Adds letterheads, personal daily notes and an optional business-process module. Back up the site before updating on production.
