[minor] fixes to attendance tool and employee holiday attendance

This commit is contained in:
Anand Doshi 2016-01-29 16:57:10 +05:30
parent 07364f5ece
commit 6e33d91443
2 changed files with 140 additions and 125 deletions

View File

@ -54,11 +54,10 @@ erpnext.employee_attendance_tool = {
if(r.message['marked'].length > 0) { if(r.message['marked'].length > 0) {
unhide_field('marked_attendance_section') unhide_field('marked_attendance_section')
if(!frm.marked_employee_area) { if(!frm.marked_employee_area) {
frm.marked_employee_area = $('<div>') frm.marked_employee_area = $('<div>')
.appendTo(frm.fields_dict.marked_attendance_html.wrapper); .appendTo(frm.fields_dict.marked_attendance_html.wrapper);
} }
frm.MarkedEmployee = new erpnext.MarkedEmployee(frm, frm.marked_employee_area, r.message['marked']) frm.marked_employee = new erpnext.MarkedEmployee(frm, frm.marked_employee_area, r.message['marked'])
} }
else{ else{
hide_field('marked_attendance_section') hide_field('marked_attendance_section')
@ -79,18 +78,30 @@ erpnext.MarkedEmployee = Class.extend({
var me = this; var me = this;
$(this.wrapper).empty(); $(this.wrapper).empty();
var row;
$.each(employee, function(i, m) { $.each(employee, function(i, m) {
var attendance_icon = "'icon-check'" var attendance_icon = "icon-check";
var color_class = "";
if(m.status == "Absent") { if(m.status == "Absent") {
attendance_icon="'icon-check-empty'" attendance_icon = "icon-check-empty"
color_class = "text-muted";
} }
else if(m.status == "Half Day") { else if(m.status == "Half Day") {
attendance_icon = "'icon-check-minus'" attendance_icon = "icon-check-minus"
} }
$(repl('<div class="col-sm-3">\
<label class="marked-employee-label"><span class=%(icon)s></span>\ if (i===0 || i % 4===0) {
row = $('<div class="row"></div>').appendTo(me.wrapper);
}
$(repl('<div class="col-sm-3 %(color_class)s">\
<label class="marked-employee-label"><span class="%(icon)s"></span>\
%(employee)s</label>\ %(employee)s</label>\
</div>', {employee: m.employee_name, icon: attendance_icon})).appendTo(me.wrapper); </div>', {
employee: m.employee_name,
icon: attendance_icon,
color_class: color_class
})).appendTo(row);
}); });
} }
}); });
@ -112,9 +123,9 @@ erpnext.EmployeeSelector = Class.extend({
</div>').appendTo($(this.wrapper)); </div>').appendTo($(this.wrapper));
var mark_employee_toolbar = $('<div class="col-sm-12 bottom-toolbar">\ var mark_employee_toolbar = $('<div class="col-sm-12 bottom-toolbar">\
<button class="btn btn-default btn-primary btn-mark-present btn-xs"></button>\ <button class="btn btn-primary btn-mark-present btn-xs"></button>\
<button class="btn btn-default btn-primary btn-mark-absent btn-xs"></button>\ <button class="btn btn-default btn-mark-absent btn-xs"></button>\
<button class="btn btn-default btn-primary btn-mark-half-day btn-xs"></button></div>') <button class="btn btn-default btn-mark-half-day btn-xs"></button></div>')
employee_toolbar.find(".btn-add") employee_toolbar.find(".btn-add")
.html(__('Check all')) .html(__('Check all'))
@ -213,20 +224,20 @@ erpnext.EmployeeSelector = Class.extend({
}); });
var row;
$.each(employee, function(i, m) { $.each(employee, function(i, m) {
if (i===0 || (i % 4) === 0) {
row = $('<div class="row"></div>').appendTo(me.wrapper);
}
$(repl('<div class="col-sm-3 unmarked-employee-checkbox">\ $(repl('<div class="col-sm-3 unmarked-employee-checkbox">\
<div class="checkbox">\ <div class="checkbox">\
<label><input type="checkbox" class="employee-check" employee="%(employee)s"/>\ <label><input type="checkbox" class="employee-check" employee="%(employee)s"/>\
%(employee)s</label>\ %(employee)s</label>\
</div></div>', {employee: m.employee_name})).appendTo(me.wrapper); </div></div>', {employee: m.employee_name})).appendTo(row);
}); });
mark_employee_toolbar.appendTo($(this.wrapper)); mark_employee_toolbar.appendTo($(this.wrapper));
} }
}); });

View File

@ -16,11 +16,12 @@ def execute(filters=None):
def get_columns(): def get_columns():
return [ return [
_("Employee") + ":Link/Employee:120", _("Name") + ":Data:200", _("Date")+ ":Date:100", _("Employee") + ":Link/Employee:120",
_("Status") + ":Data:70",_("Holiday") + ":Data:200" _("Name") + ":Data:200",
_("Date")+ ":Date:100",
_("Status") + ":Data:70",
_("Holiday") + ":Data:200"
] ]
@ -30,14 +31,17 @@ def get_employees():
holidays_list = [] holidays_list = []
for holiday in holidays: for holiday in holidays:
holidays_list.append("'" + holiday.holiday_date.strftime('%Y-%m-%d') + "'") holidays_list.append(holiday.holiday_date)
holiday_names[holiday.holiday_date] = holiday.description holiday_names[holiday.holiday_date] = holiday.description
employee_list = frappe.db.sql( employee_list = frappe.db.sql("""select
"select employee, employee_name, att_date, status from tabAttendance where att_date in (" employee, employee_name, att_date, status
+ ', '.join(holidays_list) + ")", from tabAttendance
as_list=True) where
att_date in ({0})""".format(', '.join(["%s"]*len(holidays_list))),
holidays_list, as_list=True)
for employee_data in employee_list: for employee_data in employee_list:
employee_data.append(holiday_names[employee_data[2]]) employee_data.append(holiday_names[employee_data[2]])
return employee_list return employee_list