امکانات جدید ارائه شده در هسته مرکزی نسخه 13.04: فیلدهای قابل اصلاح آزاد اطلاعات اصلی حقوق
برای ایجاد امکان ثبت مالیات حقوق با محاسبات صحیح و همزمان حفظ مبالغ مالیاتی که سازمان امور مالیاتی محاسبه کرده است، مجبوریم ترتیبی دهیم که اطلاعات اصلی حقوق، پس از ثبت حقوق (یا پس از اجرای محاسبات معوقه) قابل اصلاح باشند. بدیهی است که اگر کاربر امکان اصلاح آزاد همهی فیلدهای اطلاعات اصلی حقوق را داشته باشد، عملا انسجام محاسبات مخدوش خواهد شد. همچنین این امکان را برای همهی فیلدهای اصلی حقوق لازم نداریم – در حال حاضر فقط برای یک فیلد (مبلغ مالیات محاسبه شده توسط سامانه) نیاز به اصلاح آزاد داریم. پس در تعریف فیلدهای اصلی حقوق یک مشخصهی جدید لحاظ میکنیم: قابل اصلاح آزاد (در کاربرگ اصلاح آزاد اطلاعات اصلی حقوق). فقط فیلدهایی که این مشخصه را داشته باشند پس از ثبت حقوق قابل اصلاح خواهند بود.
از طرف دیگر فیلدهایی که به این صورت تعریف شدهاند به هیچ وجه نباید در محاسبات برنامهی ثبت حقوق دخالت داده شوند – چرا که ممکن است مقدار آنها پس از انجام محاسبات توسط کاربر تغییر کند و علاوه بر اینکه حاصل محاسبات نادرست خواهد شد، مکانیزمهای مربوط به محاسبات معوقه را نیز کاملا از کار خواهد انداخت. به جز برنامهی ثبت حقوق، در همهی برنامهها و کاربردهای دیگر، این فیلدها هیچ تفاوتی با سایر فیلدهای اصلی حقوق نخواهند داشت.
بخش عمدهی فعالیتهای انجام شده در ارائهی ویرایش 1304 مربوط به همین فیلدها بوده است. برای کار با آنها نیاز به یک کاربرگ اختصاصی داشتهایم که در منوی اصلی در مسیر "دستمزد / ثبت و حذف حقوق / کاربرگ اصلاح آزاد حقوق" تعبیه شده است. امکانات کاملی که عموما از یک کاربرگ ویرایش دادهها در سیستم دستمزد انتظار داریم در این کاربرگ نیز پیادهسازی شدهاند که در ادامه و در همین مستند، به آنها خواهیم پرداخت. به خصوص باید امکان فراخوانی دادهها (از Text) فراهم باشد. این همان امکانی است که برای فراخوانی دادههای محاسبه شده در سامانه از آن استفاده خواهیم کرد.
فیلدهای قابل اصلاح آزاد اطلاعات اصلی حقوق
سامانهی مالیات حقوق مبلغ مالیات را محاسبه میکند. از طرف دیگر، بسیاری از کاربران نوسا تمایل دارند که کماکان مالیات را به روش متعارفی که در برنامهی ثبت حقوق پیادهسازی میشود محاسبه نمایند. به این ترتیب مبلغی که بابت مالیات از حقوق پرسنل کسر میشود متفاوت از مبلغی که باید به سازمان امور مالیاتی پرداخت شود خواهد بود. در انتهای هر سال مابهالتفاوت مبلغ مالیات محاسبه شده توسط سیستم (مثلا مالیات علیالحساب) و مالیات محاسبه شده توسط سامانه امور مالیاتی (مثلا مالیات واقعی) به صورت مناسب محاسبه شده و در حقوق ماه آخر کارسازی خواهد شد. احتمال میدهیم که این شیوهی محاسبه به دو دلیل طراحی شده باشد:
1) پاسخگویی به پرسنلی که مالیات آنها در سامانه به صورت نادرست محاسبه شده و در ماههای انتهایی سال به صورت پلکانی افزایش مییابد برای کاربران دشوار خواهد بود.
2) معوقهپذیر بودن محاسبات.
در این شیوهی محاسبه، لازم است تا مبلغ مالیات محاسبه شده توسط سازمان امور مالیاتی را به صورتی در سیستم حفظ کنیم تا اولا آنرا در تنظیم سند مالیات مورد استفاده قرار دهیم و ثانیا در انتهای سال بتوانیم مبلغ مزبور را تجمیع کنیم و مابهالتفاوت آن با مالیاتهای علیالحساب را محاسبه کنیم. طبیعیترین روش برای حفظ این مبالغ تعریف یک نوع رخداد اختصاصی و حفظ مبالغ به صورت رخداد است. متاسفانه، مطابق سیاستهای فروش شرکت و هزینه خرید و راه اندازی نرم افزار حقوق رخداد محور، اکثر کاربران نوسا نمیتوانند از رخدادها استفاده نمایند. به همین دلیل تنها روشی که برای حفظ این مبالغ باقی میماند این است که آنها را در (کنار) حقوق هر ماه حفظ نماییم – یعنی در یکی از فیلدهای اطلاعات اصلی حقوق.
این روش هم با امکاناتی که از قبل در سیستم پیادهسازی شده بوده است به سهولت قابل اجرا بود – با تعریف یک فیلد اصلی با ارجاع از یک فیلد متغیر ماهانه + فراخوانی مبلغ مالیات در کاربرگ معوقه + یک محاسبهی معوقه، صرفا برای قرار دادن فیلد مزبور در اطلاعات اصلی حقوق. متاسفانه، برای برخی از کاربران نوسا، اجرای محاسبهی معوقه کار بسیار دشواری تلقی میشود و این راهحل بسیار ساده به صورت یک فرآیند دشوار و تقریبا غیرقابل اجرا فرض میشود. یادآوری میکنم که با حذف سابقهی اجرای معوقه، دادههای حاصله مطلقا تفاوتی با آنچه از ثبت عادی حقوق حاصل میشود نخواهند داشت.
با توجه به نکات فوق، قرار شد مکانیزمی برای اصلاح آزاد اطلاعات اصلی حقوق فراهم کنیم تا کاربران با استفاده از آن و بدون نیاز به اجرای معوقه، کاربران بتوانند مبالغ مالیات محاسبه شده توسط سامانه را در اطلاعات اصلی حقوق هر ماه درج نمایند. نکات زیر قابل توجه هستند:
- هر یک از فیلدهای اطلاعات اصلی حقوق که قرار است به این شیوه (به صورت آزاد) قابل اصلاح باشند حتما باید به صورت صریح مشخص (علامتگذاری) شده باشند. جزییات را در ادامه خواهیم گفت.
- فیلدهای قابل اصلاح حقوق نباید در برنامهی ثبت حقوق بکار روند – با اصلاح آزاد، حاصل محاسبات قبلی بیاعتبار خواهد شد + معوقهپذیری نقض خواهد شد.
- ویرایش این فیلدها با استفاده از یک کاربرگ جدید انجام خواهد شد که در بخشهای بعدی توضیح داده شده است.
- فیلدهای اصلی ارجاعی نمیتوانند قابل اصلاح آزاد باشند.
- فیلدهای مزبور در محاسبات معوقه دخالت داده نمیشوند و به همین دلیل مقدار آنها در محاسبات معوقه نیز بدون تغییر باقی خواهد ماند. مثل این است که در تعریف فیلد، به صورت ضمنی، دریچهی "مقدار فیلد در محاسبات معوقه پاک نشود" علامت خورده باشد (البته نیازی به علامتگذاری صریح نیست).
- در صورت حذف حقوق یک ماه، مقادیر این فیلدها نیز حذف خواهد شد.
- فیلدهای مزبور فقط برای رکوردهای "دارای" اطلاعات حقوق قابل ویرایش خواهند بود.
- در صورتی که حقوق یکی از پرسنل در محاسبات معوقه "پاک" شود (با دستور clear در برنامهی ثبت حقوق) مقادیر این فیلدها نیز پاک خواهند شد – رکورد اصلی، با این سناریو، دیگر "دارای" اطلاعات حقوق نخواهد بود.
دریچهی جدیدی به صورتی که در شکل زیر دیده میشود، به انتهای محاورهی تدوین یک فیلد اطلاعات اصلی حقوق اضافه شده است:
انتخاب فیلد: در محاورهی انتخاب فیلد، از قبل ابزارهایی برای فیلتر کردن فیلدهای اصلی حقوق مبتنی بر نوع یا وضعیت ارجاع تعبیه شده بود. در کنار آن ابزارها، امکانی برای بازنمایی "فقط فیدهای قابل اصلاح آزاد" نیز تعبیه شده است که به صورت اختصاصی برای اطلاعات اصلی حقوق عمل میکند.
نکتهی مهم: موضوعی که منجر به ظهور فیلدهای قابل اصلاح آزاد شد، حفظ مبلغ مالیات محاسبه شده توسط یک سامانهی خارجی در حقوق هر یک از ماهها در دادههای سیستم بود. در این کاربرد، قاعدتا قرار است در انتهای سال، مبالغ مالیات خارجی (واقعی – محاسبه شده توسط سامانهی مالیات حقوق) در یک سال با هم جمع شوند و مابهالتفاوت این مجموع با جمع مالیات علیالحاسب در حقوق ماه آخر کارسازی شود. باید توجه کنید که استفاده از فیلدهای قابل اصلاح آزاد در برنامهی ثبت حقوق ممنوع است – حتی در دستوراتی مثل X/YSum. پس برای استفاده از این مبالغ باید قبلا آنها را در یک کاربرگ دیگر (اطلاعات متغیر ماهانه – یا مثلا کاربرگ معوقه) جمعآوری کنید و از این حاصل به عنوان یک فیلد ارجاعی حقوق در محاسبات استفاده نمایید. پرکردن فیلد کاربرگ باید با پردازهی اضافه انجام شود. این تنها روش برای معوقهپذیر بودن محاسبات است – به صورتی که اگر یکی از مبالغ در یکی از ماهها تغییر کرده باشد (مثلا توسط کاربر و با استفاده از کاربرگ اصلاح آزاد) بتوانیم با همان پردازهی اضافه مجموع جدید را به کاربرگ معوقه منتقل کنیم و محاسبات را، با حفظ تفاوتهای معنیدار، به صورت معوقه انجام دهیم.
کاربرگ اصلاح آزاد حقوق
این کاربرگ برای ویرایش فیلدهای قابل اصلاح اطلاعات اصلی حقوق پیادهسازی شده است و از مسیر زیر قابل احضار است:
محاورهی ابتدایی این کاربرگ را در شکل زیر مشاهده میکنید:
"ماه" مورد نظر در این محاوره تعیین میشود. همهی پرسنلی که از قبل در آن ماه، رکورد حقوق "دارای" اطلاعات داشته باشند به صورت پیشفرض در کاربرگ احضار میشوند. با این همه، همانند موارد مشابه قبلی، امکان تعیین محدوده شماره پرسنلی یا جستجو نیز در کاربرگ تعبیه شده است. به جز این از شرایط و ترتیب هم میتوان استفاده کرد. بقیهی اجزاء این محاوره دقیقا همانند قبل هستند.
در تعریف فرمهای کاربرگ و محاورهی مربوط به آن، طبق معمول میتوانیم از فیلدهای مشخصات پایه پرسنلی، اطلاعات متغیر ماهانه و اطلاعات اصلی حقوق (طبیعتا آخرین وضعیت حقوق ثبت شده) استفاده کنیم – اما به هر حال فقط آن گروه از فیلدهای اصلی حقوق (NM) که "قابل اصلاح آزاد" باشند در کاربرگ و محاوره قابل ویرایش خواهند بود. همانند آنچه در کاربرگ اطلاعات متغیر ماهانه دیده بودیم، در اینجا نیز تفاوتهای ناشی از معوقه، صرفا برای استفاده در پردازههای اضافی نیز در دسترس قرار دارند. سوابق مورد نظر، در محاورهی ابتدایی ، در صفحهی معوقه قابل انتخاب هستند.
در حین کار با این کاربرگ، امکانات آشنایی که پیش از این در کاربرگهای مشابه داشتیم نیز در اختیار قرار دارند: اصلاح یکبارهی سطرهای کاربرگ / صفر (پاک) کردن یکبارهی فیلدها در سطرهای کاربرگ / ملاحظهی انواع رکورد کامل، فیش حقوق و گزارش ماهانه حقوق پرسنل / اجرای پردازهی اضافی / اصلاح اطلاعات با فراخوانی از فایل Text یا DBF. شکلهای زیر جانمایی این امکانات در Tool Bar این کاربرگ را نشان میدهند:
محاورههای مربوط به این امکانات اضافه شبیه کاربردهای قبلی هستند. در همهی آنها فقط امکان کار با آخرین وضعیت (NM) فیلدهای قابل اصلاح آزاد از اطلاعات اصلی حقوق را خواهیم داشت (اصلاح، صفر کردن، تغییر مقدار فیلد در برنامهی پردازهی اضافی، فراخوانی). فراخوانی، با روشهای اختصاصی که برای همین کاربرگ توسعه داده شدهاند و باید قبلا تعریف شوند انجام خواهد شد. این روشها در بخش بعدی توضیح داده خواهند شد.
روشهای فراخوانی اطلاعات – کاربرگ اصلاح آزاد حقوق
برای فراخوانی اطلاعات از فایلهای Text یا DBF در این کاربرگ نیاز به روشهای فراخوانی اختصاصی داریم – چرا که فیلدهای مقصد (آنها که قرار است در فراخوانی اصلاح شوند) در این کاربرد نسبت به کاربردهای مشابه قبلی متفاوت هستند: فیلدهای قابل اصلاح آزاد از اطلاعات اصلی حقوق. تعریف این روشها با یک گزینه از منوی اصلی سیستم، به صورتی که در شکل زیر نشان داده شده است، انجام میشود.
تعریف روش فراخوانی، بسیار مشابه قبل انجام میشود. در اینجا هم انطباق رکوردهای فراخوانی شده با دادههای موجود، با شمارهی پرسنلی، شمارهی کارت حضور و غیاب و فیلد جدید "کد ملی (دستمزد)" میسر است. تنها تفاوت، در انتخاب فیلد مقصد است: در اینجا حتما باید از بین فیلدهای اطلاعات اصلی حقوق که قابل اصلاح آزاد باشند انتخاب شود.