توسعه Odoo

Welcome!

This community is for professionals and enthusiasts of our products and services.
Share and discuss the best content and new marketing ideas, build your professional profile and become a better marketer together.

2

چطوری ساعت و دقیقه و ثانیه را از check_in در attendance بدست بیاورم؟

سلام و وقت بخیر.

میخوام یک rule salary پایتون برای حقوق و دستمزد بنویسم

نیاز دارم که از جدول attendance بتونم داده های زمانی check_in و check_out رو بخونم

AttendancesEmployeeCheckin=tools.env['hr.attendance'].search([('employee_id','=',employee.id),('check_in', '!=', False)])
result=AttendancesEmployeeCheckin[0].check_in.hour

از طریق این کد نمونه میتونیم به اولین سطر جدول حضور غیاب یک کارمند دسترسی کنیم.

کد بالا برای check_in.hour , check_in.minute , check_in.second داده اشتباه بر میگردونه. در حالی که سال و ماه و روز رو درست بر میگردونه.

ممنون میشم اگه راهنمایی بفرمایید چطوری میتونم به دقیقه و ساعت دسترسی کنم.

ضمنا از روش timedate.strfdate("%H,%M")  نیز استفاده کرده ام  و باز همان نتیجه غلط را میدهد. 

آواتار
انصراف
1 پاسخ
2
بهترین پاسخ

برای دریافت ساعت، دقیقه و ثانیه از check_in در attendance در اودو، می‌توانید از فیلد "check_in" استفاده کنید. این فیلد، یک مقدار datetime است که تاریخ و زمان ورود کاربر به محل کار را نشان می‌دهد.

برای استخراج ساعت، دقیقه و ثانیه از این فیلد، می‌توانید از توابع مربوط به datetime در پایتون استفاده کنید. به عنوان مثال، برای استخراج ساعت، دقیقه و ثانیه از یک مقدار datetime به صورت جداگانه، می‌توانید از کد زیر استفاده کنید:


check_in = attendance.check_in
hour = check_in.hour
minute = check_in.minute
second = check_in.second


در این کد، ابتدا مقدار فیلد check_in از attendance دریافت می‌شود و سپس با استفاده از توابع hour، minute و second مربوط به این مقدار datetime، ساعت، دقیقه و ثانیه به صورت جداگانه استخراج می‌شوند.

همچنین می‌توانید از توابع strftime و strptime در پایتون برای تبدیل مقدار datetime به استرینگ و برعکس استفاده کنید. به عنوان مثال، برای تبدیل مقدار datetime به استرینگ با فرمت خاص، می‌توانید از کد زیر استفاده کنید:


check_in = attendance.check_in
check_in_str = check_in.strftime('%H:%M:%S')


در این کد، ابتدا مقدار فیلد check_in از attendance دریافت می‌شود و سپس با استفاده از تابع strftime و فرمت '%H:%M:%S'، مقدار datetime به استرینگ با فرمت ساعت، دقیقه و ثانیه تبدیل می‌شود.

با استفاده از این روش‌ها، می‌توانید ساعت، دقیقه و ثانیه از check_in در attendance را به صورت جداگانه یا در قالب یک استرینگ با فرمت خاص به دست آورید.



در این کد، ابتدا با استفاده از تابع search، مقادیری از attendance که شامل شناسه‌ی کارمند و تاریخ ورود نیستند، جستجو می‌شوند. سپس با استفاده از این مقدار، مقدار فیلد check_in از attendance دریافت می‌شود. سپس با استفاده از تابع strftime و فرمت '%H:%M:%S'، مقدار datetime به استرینگ با فرمت ساعت، دقیقه و ثانیه تبدیل می‌شود.

با استفاده از این روش‌ها، می‌توانید ساعت، دقیقه و ثانیه از check_in در attendance را به صورت جداگانه یا در قالب یک استرینگ با فرمت خاص به دست آورید.

------------------------------------------------------------------------------------------

اگر می‌خواهید علاوه بر ساعت، دقیقه و ثانیه را نیز از check_in در attendance به دست آورید، می‌توانید از توابع مربوط به datetime در پایتون استفاده کنید. به عنوان مثال، برای استخراج ساعت، دقیقه و ثانیه از یک مقدار datetime به صورت جداگانه، می‌توانید از کد زیر استفاده کنید:

در این کد، ابتدا با استفاده از تابع search، مقادیری از attendance که شامل شناسه‌ی کارمند و تاریخ ورود نیستند، جستجو می‌شوند. سپس با استفاده از این مقدار، مقدار فیلد check_in از attendance دریافت می‌شود. سپس با استفاده از تابع strftime و فرمت '%H:%M:%S'، مقدار datetime به استرینگ با فرمت ساعت، دقیقه و ثانیه تبدیل می‌شود.

با استفاده از این روش‌ها، می‌توانید ساعت، دقیقه و ثانیه از check_in در attendance را به صورت جداگانه یا در قالب یک استرینگ با فرمت خاص به دست آورید.


در این کد، ابتدا با استفاده از تابع search، مقادیری از attendance که شامل شناسه‌ی کارمند و تاریخ ورود نیستند، جستجو می‌شوند. سپس با استفاده از این مقدار، مقدار فیلد check_in از attendance دریافت می‌شود. سپس با استفاده از تابع strftime و فرمت '%H:%M:%S'، مقدار datetime به استرینگ با فرمت ساعت، دقیقه و ثانیه تبدیل می‌شود.

با استفاده از این روش‌ها، می‌توانید ساعت، دقیقه و ثانیه از check_in در attendance را به صورت جداگانه یا در قالب یک استرینگ با فرمت خاص به دست آورید.

آواتار
انصراف