سامانهی فیش حقوقی آنلاین
هر ماه که حقوق پرداخت میشود، هر کارمند میخواهد بداند دقیقاً چه مبلغی و بابت چه چیزی گرفته است: چند روز کارکرد، چه مزایایی، چه کسوراتی. سامانهی فیش حقوقی آنلاین را ساختم تا کارکنان یک شرکت فیش حقوقی هر ماه را هر وقت خواستند آنلاین ببینند، و واحد مالی هم برای انتشارش کاری جز بارگذاری همان فایل اکسل همیشگی انجام ندهد.
چه کار میکند
برای کارکنان:
- ورود با پیامک: کارمند کد ملی یا شمارهی پرسنلیاش را وارد میکند و یک کد چهاررقمی به موبایلش پیامک میشود؛ رمز عبوری برای به خاطر سپردن یا فراموش کردن وجود ندارد. یک کپچای ریاضی ساده (جمع دو عدد روی تصویری مخدوش) جلوی درخواستهای خودکار را میگیرد.
- همهی فیشها در یک جا: فهرست فیشهای ماههای گذشته، از جدیدترین به قدیمیترین، با نام ماههای شمسی.
- فیشی شبیه همان فیش کاغذی: هر فیش با سربرگ شرکت و در همان چیدمان آشنای فیش حقوقی نمایش داده میشود: کارکرد، مزد مبنا، مزایای مستمر و غیرمستمر، کسورات، جمع هر بخش و مبلغ خالص پرداختی، که به حروف هم نوشته میشود. ردیفهایی که مقدارشان صفر است نمایش داده نمیشوند تا فیش شلوغ نشود.
- چاپ: دکمهی چاپ فقط خود فیش را، بدون منو و دکمهها، روی کاغذ میبرد.
- تیکت پشتیبانی: اگر کارمند دربارهی فیشش سؤالی داشت، از داخل سامانه تیکت میفرستد؛ با اولویت و در صورت نیاز یک فایل پیوست. واحد مالی پاسخ میدهد و وضعیت تیکت را باز، در انتظار یا بسته تعیین میکند.
برای واحد مالی:
- بارگذاری کارکنان از اکسل: فهرست کارکنان (شمارهی پرسنلی، نام، موبایل، شمارهی حساب، واحد و عنوان شغلی) یکجا از فایل اکسل وارد میشود.
- قالب فیش، بدون برنامهنویسی: ردیف عنوانهای فایل حقوق بارگذاری میشود و هر ستون آن یک قلم فیش میشود. بعد در یک صفحه مشخص میکنید هر قلم در کدام بخش فیش بنشیند و چه عنوانی داشته باشد. اگر ساختار فایل حقوق عوض شد، کافی است قالب تازهای بسازید؛ فیشهای قبلی با قالب خودشان سالم میمانند.
- انتشار حقوق ماهانه: فایل اکسل حقوق ماه، همراه با قالب، سال و ماه بارگذاری میشود و فیش همهی کارکنان یکجا ساخته میشود. ردیفها با شمارهی پرسنلی یا کد ملی به کارکنان وصل میشوند و برای فیشی که قبلاً ثبت شده میشود انتخاب کرد که رد شود یا جایگزین. در پایان گزارش میدهد چند فیش ثبت، جایگزین یا رد شد و چند ردیف کارمندی پیدا نکرد.
- مدیریت کارکنان: جستجو، ویرایش اطلاعات، دیدن فیش هر کارمند و زمان آخرین ورود هر کس.
چرا ساختمش
فیش حقوقی از آن اطلاعاتی است که همه به آن نیاز دارند ولی رساندنش به دست تکتک کارکنان، هر ماه، کار وقتگیری است. سامانه را طوری طراحی کردم که برای شرکتهای مختلف قابلاستفاده باشد: هر شرکت سربرگ، کارکنان و قالب فیش خودش را دارد. نرمافزار حقوق و دستمزد خروجیاش را بهصورت فایل اکسل میدهد؛ میخواستم همین فایل، بدون هیچ کار اضافهای، مستقیم به فیش آنلاین هر کارمند تبدیل شود. نکتهی اصلی این بود که سامانه به ساختار آن فایل گره نخورد: ستونهای فایل حقوق با گذشت زمان عوض میشوند و نمیخواستم هر تغییر کوچک در آن یعنی تغییر در کد.
چطور ساختمش
سامانه با PHP و فریمورک Laravel نوشته شده و دادهها در MySQL نگه داشته میشوند.
- قالبهای دادهمحور: به جای اینکه ستونهای فیش در کد تعریف شوند، هر قالب فهرستی از ستونهای فایل اکسل است و هر ستون به یک بخش فیش نگاشت میشود. مقدار هر قلم برای هر کارمند جداگانه ذخیره میشود و هنگام نمایش، با نگاشت همان قالبی که فیش با آن ساخته شده، سر جایش قرار میگیرد.
- خواندن اکسل: فایلها با PhpSpreadsheet خوانده میشوند و فقط ردیفها و ستونهای لازم بارگذاری میشوند. اکسل گاهی عددها را به شکل «12345.0» برمیگرداند یا صفرهای ابتدای کد ملی را حذف میکند؛ سامانه هر دو را پیش از تطبیق اصلاح میکند تا هیچ کارمندی به این دلیل جا نماند.
- ورود دومرحلهای ساده: کد یکبارمصرف از طریق سامانهی پیامکی sms.ir ارسال میشود، و کارکنان و مدیران از همان صفحهی ورود و با همین روش وارد میشوند؛ دسترسی هر گروه با میانافزارهای جداگانه کنترل میشود.
- فارسی از پایه: تاریخها شمسیاند (با کتابخانهی Verta)، رابط کاربری راستبهچپ است، و مبلغ خالص با یک تابع اختصاصی به حروف فارسی تبدیل میشود.
اگر شما هم فرایندی دارید که هنوز با فایل اکسل و کاغذ میچرخد و میخواهید آن را به یک سامانهی ساده تبدیل کنید، با من در تماس باشید.
Member discussion