View Full Version : سوال: محاسبه میزان مرخصی برای سیستم حقوق دستمزد
delphiprog3000
چهارشنبه 30 بهمن 1392, 23:13 عصر
به نام خدا و سلام خدمت دوستان و اساتید
میخواستم نظر دوستان رو در این باره جویا بشم.
ببینید ما یه سیستم حقوق دستمزد داریم که میاد سایر محاسبات درباره کارکرد و اضافه کار هر پرسنل رو در میاره و در کنار اون بنده با مرخصی و محاسبه اون مشکل داشتم.
1- هر پرسنل یک تاریخ آغاز به کار و پایان کار دارد.مثلا آغاز:1390/01/01 . پایان:1391/12/29
خب حالا یک سری موارد:
الف: هر پرسنل در ماه 2.5 روز مرخصی ظلب دارد.
ب: ممکن است پرسنل تاریخ متفاوتی آغاز و پایان کار داشته باشد. مثلا : آغاز:1390/06/01 , پایان:1391/12/29
ج:و 6 ماه اول سال 31 روز و 6ماه آخر سال 30 روز و روز آخر سال 29 روز
2-اینها داده های ماست حالا خواسته ما از سیستم:
الف:محاسبه کند پرسنل چند ماه آمده (یا به روز تبدیل کنیم یا به ماه)که بر اساس آن مشخص کنیم چقدر مرخصی طلب دارد و چقدر استفاده کرده(با توجه به 6ماه اول و دوم سال )
3-راهکاری که به ذهنم رسیده:
بیایم یک تابع تعریف کنیم که بیاد مشخص کنه ماها رو بین 6 ماه اول و 6ماه دوم سال رو
یعنی از 1..6 بیاد 31 روزه محاسبه کنه و از 7..12 روز 30 روزه محاسبه کنه
حالا با این اوصاف لطفا اگه نظری یا راه حلی دارید به صورت کد یا روش حل برای بنده و شاید سایر دوستانی که شاید به این مشکل برخورده باشن قرار بدید. تا با کمک هم به یک نتیجه واحد برسیم تا سایرین نیز بهره ببرند.
با تشکر.......
یوسف زالی
چهارشنبه 30 بهمن 1392, 23:51 عصر
سلام.
هر پرسنل يک حکم دارد که تاريخ شروع آن معلوم است. براي قرارداد بعد بايد حکم جداگانه اي زد.
هر پرسنل فيلدي دارد که تعيين کننده تعداد روزهاي مرخصي رفته است.
در هر زمان، تعداد روزهاي مانده مرخصي طبق قانون کار مساوي است با تعداد روزهاي کاري گذشته از سال، تقسيم بر تعداد روز هاي سال، ضرب در تعداد روزهاي استحقاقي در سال (فکر مي کنم 26 روز باشه) منهاي تعداد روزهاي رفته به مرخصي پرسنل
البته بصورت دقيق تر بهتره قانون کار رو مطالعه کنيد.
delphiprog3000
پنج شنبه 01 اسفند 1392, 08:25 صبح
سلام.
هر پرسنل يک حکم دارد که تاريخ شروع آن معلوم است. براي قرارداد بعد بايد حکم جداگانه اي زد.
هر پرسنل فيلدي دارد که تعيين کننده تعداد روزهاي مرخصي رفته است.
در هر زمان، تعداد روزهاي مانده مرخصي طبق قانون کار مساوي است با تعداد روزهاي کاري گذشته از سال، تقسيم بر تعداد روز هاي سال، ضرب در تعداد روزهاي استحقاقي در سال (فکر مي کنم 26 روز باشه) منهاي تعداد روزهاي رفته به مرخصي پرسنل
البته بصورت دقيق تر بهتره قانون کار رو مطالعه کنيد.
با تشکر از پاسخ شما دوست و استاد گرامی.
سخن شما متین بنده هم اطلاع حاصل کردم. الان دنبال راهکار هستیم که بیتونیم این فرموده جناب عالی رو عملی کنیم دیدید خود بنده هم روشی رو توضیح دادم. میخوام ببینم دوستانی که تابه حال اینکار رو انجام دادند نظری روشی کدی تابعی برای روش حلش پشنهاد میکنند.
با تشکر....
hadisalahi2
پنج شنبه 01 اسفند 1392, 10:27 صبح
این کار شما ، اصطلاحا ، ایجاد کارت مرخصی هستش
من دقیقا یک برنامه دارم که همین کار رو توش انجام میده
روشهایی که گفتید درسته
اما برنامه من یک کم پیچیده تر هستش ، چون روزهای تعطیل رو از مرخصی های بعضی از پرسنل ، مانند رسمی ها حذف میکنه و یک کم کد نویسی پیچیده تری داره
دقیقا روش یا تابع خاصی برای این کار وجود نداره
هر کسی ممکنه با یک روش انجام بده
delphiprog3000
پنج شنبه 01 اسفند 1392, 10:41 صبح
این کار شما ، اصطلاحا ، ایجاد کارت مرخصی هستش
من دقیقا یک برنامه دارم که همین کار رو توش انجام میده
روشهایی که گفتید درسته
اما برنامه من یک کم پیچیده تر هستش ، چون روزهای تعطیل رو از مرخصی های بعضی از پرسنل ، مانند رسمی ها حذف میکنه و یک کم کد نویسی پیچیده تری داره
دقیقا روش یا تابع خاصی برای این کار وجود نداره
هر کسی ممکنه با یک روش انجام بده
بازم تشکر از نظر شما دوست من.
اگه براتون امکانش هست بیاید همون مقطع کاری که انجام دادید رو برای بنده و سایرین توضیح بدید و باز بفرمایید با ذکر کد اگر برای شما بلا مانع هست. حداقل روش شما رو هم مد نظر بگیریم.البته اختیاری این محبت شما.
با تشکر...
Valadi
جمعه 02 اسفند 1392, 09:02 صبح
با نظر به اينكه در پيام خصوصي خواسته بوديد نظر بدم در مورد اين تاپيك
يك راه ساده :
تعداد ماه از تاريخ سال كاري* 2.5 روز مرخصي
البته براساس قوانين كارگري و قانون خدمات كشوري
اگر نيرو رسمي وپيماني = مرخصي ذخيره مي شود
اگر نيرو قرار دادي = حداكثر 9 روز ذخيره و الباقي مي سوزد
zman123456
جمعه 02 اسفند 1392, 16:25 عصر
نمی خواد 6 ماه 6 ماه محاسبه کنی.به هر ماه یه id بده و یه فیلد تعداد روز و از کد برای محاسبه تعداد روز استفاده کن.
برای ماه های مختلف مرخصی ها رو ثبت کنید.هر کارمند کد داره.پس در هر ماه تعداد روزهای مرخصی پرسنل در میاد.
delphiprog3000
جمعه 02 اسفند 1392, 20:05 عصر
سلام با تشکر از پاسخ دوستان.
یک قطعه برنامه هست که کار یکی از اعضای همین سایت اختلاف تاریخ شمسی روحساب میکنه قرار میدم که خالی از لطف نیست. 116963
روش دوستمون zman رو بیایید بازتر کنیم. میشه توضیحت رو کامل تر کنی.
منظورت اینه جدولی برای ماهها و روزها داشته باشیم. که کدپرسنلی کلید اونه؟
لطفا توضیح کاملتر و کاربردی تر(با ذکر مثال یا کد)
دوستان همه لطف کردن و پاسخ دادن به این تاپیک اما همه اجمالی صحبت میکنن. درخواستم اینه بیایم کاربردیش کنیم و به کد نزدیکش کنیم. وگرنه مطالعه و پژوهش جواب تاپیک ما نیست.و اینکه کلی گویی کاررو پیش نمیبره.نمیدونم چرا اما انگار برخی دوستان کم لطفی میکنن و دستاوردشون رو ارائه نمیدن.هدف این تاپیک ارائه راهکار به سایرین که مشکل نداشته باشن.لطفا حداکثر راهنمایی رو بکار ببرید
الته بازم از توجه همه عزیزان سپاسگذارم.
با تشکر.....
hadisalahi2
شنبه 03 اسفند 1392, 09:46 صبح
داداش شما اگه هدفت ایجاد کارت مرخصی پرسنل هستش ، باید بگم کار خیلی سخت و بسیار پیچیده ای هستش
من خود به شخصه 1 ماه وقت برای طراحی این فرم گذاشتم تا نواقصش درست بشه و بارها و بارها تست کردم تا صحت محاسبات به 100 % برسه.
در این حالت ، شما علاوه بر مرخصی های روزانه می بایست :
1- مرخصی های ساعتی را به روز تبدیل کنید.
2- مرخصی های ساعتی تبدیل شده را با مرخصی های استحقاقی جمع کنید
3- مجموع را از استحقاق سال یک فرد کم کنید
4- مانده مرخصی طلبکار را با مانده سال های قبل جمع کنید.
و چند تا کار دیگه که باید برای صحت محاسبات انجام بدی
اگه همین منظور شماست ، من نوشتم به صورت کامل
اون رو در اختیارتون میزارم
فقط سر در آوردن از کدهای فوق پیچیده من با خودتونه :لبخند:
h_mohamadi
سه شنبه 06 اسفند 1392, 13:45 عصر
شما براي يک سال براي کارمندت بايد 240 ساعت مرخصي بدهي حالا ديگه کاري به ساعتي و يا روزانه نداشته باش و وقتي خواستي روزانه بزني 8 ساعت کم کن
zman123456
سه شنبه 06 اسفند 1392, 14:31 عصر
روش دوستمون zman رو بیایید بازتر کنیم. میشه توضیحت رو کامل تر کنی.
منظورت اینه جدولی برای ماهها و روزها داشته باشیم. که کدپرسنلی کلید اونه؟
لطفا توضیح کاملتر و کاربردی تر(با ذکر مثال یا کد)
دوستان همه لطف کردن و پاسخ دادن به این تاپیک اما همه اجمالی صحبت میکنن. درخواستم اینه بیایم کاربردیش کنیم و به کد نزدیکش کنیم.
با تشکر.....
1- اینجا معمولا ب بسم الله رو میگن و دوستان خودشون تا ی میرن.در نتیجه نزدیک کردن به کد یه خورده وقت گیره.
2- بریم سراغ نزدیک شدن به کد:
منظورم اینه که یه جدول بساز با فیلدهای (کدماه-نام ماه-تعداد روز)
وقتی می خوایین مرخصی رو ثبت کنین چون کارگزینی همه فرم ها رو یکجا ثبت می کنه پس میشه ساختار master/detail رو براش در نظر گرفت که کار برنامه نویس راحت بشه (وگرنه راه های حرفه ای تری هم وجود داره) پس در نتیجه:
اول می پرسی می خوای مرخصی چه ماهی رو ثبت کنه بعد روزها رو میگیری.واسه راحتی کاربر هم 92/07/ رو هم خودت بزن که حال کنه.
کد پرسنلی+کدماه+روز رو ذخیره کن.
سوالی بود بپرس
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.