Compare commits

...

50 Commits

Author SHA1 Message Date
administrator 552518cfe1 Initial commit 2025-06-10 10:42:44 +05:30
administrator 6dbb39ae69 Initial commit 2025-06-10 10:42:44 +05:30
administrator d2c91f20dd Initial commit 2025-06-10 10:42:44 +05:30
administrator bc3fe02f96 Initial commit 2025-06-10 10:42:44 +05:30
administrator c3bfc9f84d Initial commit 2025-06-10 10:42:44 +05:30
administrator c4c921f3a3 Initial commit 2025-06-10 10:42:44 +05:30
administrator 206e9d6c3b Initial commit 2025-06-10 10:42:44 +05:30
administrator 16fcd6efb1 Initial commit 2025-06-10 10:42:44 +05:30
administrator b419913fe1 Initial commit 2025-06-10 10:42:44 +05:30
administrator fbc29e4ef1 Initial commit 2025-06-10 10:42:44 +05:30
administrator 912ffc4afc Initial commit 2025-06-10 10:42:44 +05:30
administrator 5c061a1bf1 Initial commit 2025-06-10 10:42:43 +05:30
administrator bfd79d42b8 Initial commit 2025-06-10 10:42:43 +05:30
administrator 6fb1047ea8 Initial commit 2025-06-10 10:42:43 +05:30
administrator 42a55eba7d Initial commit 2025-06-10 10:42:43 +05:30
administrator 41e1d5c76b Initial commit 2025-06-10 10:42:43 +05:30
administrator 0811863d41 Initial commit 2025-06-10 10:42:43 +05:30
administrator ce42a4c1e3 Initial commit 2025-06-10 10:42:43 +05:30
administrator 627b4fa799 Initial commit 2025-06-10 10:42:43 +05:30
administrator 0ee3943892 Initial commit 2025-06-10 10:42:43 +05:30
administrator 9be4174309 Initial commit 2025-06-10 10:42:43 +05:30
administrator 9b565b6746 pull commit 2025-06-10 10:42:43 +05:30
administrator 011d75baf1 Initial commit 2025-06-10 10:42:43 +05:30
Pranay 1c6cd50ea9 TimeOff Fix 2025-06-10 10:42:43 +05:30
Pranay 6cedda73ca time-off FIX 2025-06-10 10:42:43 +05:30
Pranay 653af0702d Recruitment Changes 2025-06-10 10:42:43 +05:30
Pranay a8c161d969 fix whatsapp 2025-06-10 10:42:43 +05:30
Pranay 6ac7199b55 update whatsapp code 2025-06-10 10:42:43 +05:30
administrator 7e5e49af9f Initial commit 2025-06-10 10:42:43 +05:30
administrator db49307dad Initial commit 2025-06-10 10:42:43 +05:30
administrator 51f19eea91 Initial commit 2025-06-10 10:42:43 +05:30
administrator 177f4c4161 Initial commit 2025-06-10 10:42:43 +05:30
administrator 4ec6c1a33b Initial commit 2025-06-10 10:42:43 +05:30
administrator aacf24880f Initial commit 2025-06-10 10:42:42 +05:30
administrator 88848197ee Initial commit 2025-06-10 10:42:42 +05:30
administrator 6dd301e365 Initial commit 2025-06-10 10:42:42 +05:30
administrator f98af9f9ee Initial commit 2025-06-10 10:42:42 +05:30
administrator b669ac988b Initial commit 2025-06-10 10:42:42 +05:30
administrator bb31c591fb Initial commit 2025-06-10 10:42:42 +05:30
administrator 5c37d6895e Initial commit 2025-06-10 10:42:42 +05:30
administrator 689d999c37 Initial commit 2025-06-10 10:42:42 +05:30
administrator 3a80c6cd8c Initial commit 2025-06-10 10:42:42 +05:30
administrator 2600cc713d Initial commit 2025-06-10 10:42:42 +05:30
administrator fce43c3721 Initial commit 2025-06-10 10:42:42 +05:30
administrator d3049e1368 Initial commit 2025-06-10 10:42:42 +05:30
administrator dce09293c5 Initial commit 2025-06-10 10:42:42 +05:30
administrator 5eb39bf12b Initial commit 2025-06-10 10:42:42 +05:30
administrator 2bd85ae939 Initial commit 2025-06-10 10:42:42 +05:30
raman c1b7d5f07f hr payslip days 2025-06-10 10:27:16 +05:30
raman e28c02a469 float to time in dashboard 2025-06-09 10:25:18 +05:30
5 changed files with 35 additions and 3 deletions

View File

@ -309,7 +309,7 @@ attendanceLines.forEach(line => {
const dateStr = createDate.toLocaleDateString('en-IN', { timeZone: 'Asia/Kolkata' });
const workedHours = parseFloat(line.worked_hours);
const working_hours = ''
const checkIn = new Date(line.check_in + 'Z');
const checkOut = new Date(line.check_out + 'Z');
@ -320,6 +320,7 @@ attendanceLines.forEach(line => {
groupedLines[dateStr] = {
create_date: dateStr,
worked_hours: workedHours,
working_hours: `${Math.floor(workedHours)}h ${Math.round((workedHours - Math.floor(workedHours)) * 60)}m`,
check_in: checkInStr,
check_out: checkOutStr,
earliestCheckIn: checkIn,
@ -346,6 +347,7 @@ attendanceLines.forEach(line => {
const groupedAttendance = Object.values(groupedLines).map(line => ({
create_date: line.create_date,
worked_hours: line.worked_hours.toFixed(2),
working_hours :line.working_hours,
check_in: line.check_in,
check_out: line.check_out
}));

View File

@ -219,7 +219,7 @@
</td>
<td t-esc="line['check_out']">
</td>
<td t-esc="line['worked_hours']">
<td t-esc="line['working_hours']">
</td>
</tr>
</tbody>

View File

@ -18,8 +18,12 @@
'version': '0.1',
# any module necessary for this one to work correctly
'depends': ['base','hr','account','mail','hr_skills', 'hr_contract'],
# always loaded
'data': [
'security/security.xml',

View File

@ -7,9 +7,10 @@ import pytz
from collections import defaultdict, Counter
from datetime import date, datetime, time
from datetime import timedelta
from dateutil.relativedelta import relativedelta
from functools import reduce
from odoo import api, Command, fields, models, _
from odoo.exceptions import UserError, ValidationError
from odoo.tools import float_round, date_utils, convert_file, format_amount
@ -1378,6 +1379,29 @@ class HrPayslip(models.Model):
for file_to_update in files_to_update:
convert_file(self.env, module_name, file_to_update, idref)
def days_count(self):
joining_date = self.contract_id.date_start
date_from = min(joining_date, self.date_from)
if joining_date > date_from:
# Define weekend days (Saturday and Sunday)
weekend_days = [5, 6] # 5 = Saturday, 6 = Sunday
# Count weekends between date_from and date_to
weekend_count = 0
current_date = date_from
while current_date <= joining_date:
if current_date.weekday() in weekend_days:
weekend_count += 1
current_date += timedelta(days=1)
# Output: number of weekly offs since joining
weekend_days_count = weekend_count
else:
weekend_days_count = 0
return weekend_days_count
def action_edit_payslip_lines(self):
self.ensure_one()
if not self.env.user.has_group('hr_payroll.group_hr_payroll_manager'):

View File

@ -256,6 +256,8 @@ class HRJobRecruitment(models.Model):
rec.submission_status = 'zero'
experience = fields.Many2one('candidate.experience', string="Experience")
@api.depends('application_ids.submitted_to_client')
def _compute_no_of_submissions(self):
counts = dict(self.env['hr.applicant']._read_group(