def set_punch_out(attendance, outTime): if not attendance or not attendance.punch_in: return ( jsonify(dict(status="fail", message="Cannot puch out before puch in")), 200, ) if attendance.punch_out: return jsonify(dict(status="fail", message="student already punched out")), 200 isValid, dateOrError = parseDate(outTime, "%H:%M:%S") if not isValid: return ( jsonify( dict(status="fail", message="time is not valid {}".format(outTime)) ), 200, ) attendance.punch_out = outTime attendance.punch_out_by_id = request.user.id db.session.add(attendance) db.session.commit() return ( jsonify( dict( status="success", message="student successfuly puched out", attendance=attendance.serialize(), ) ), 200, )
def set_punch_in(attendance, inTime, studentid=None): if attendance and attendance.punch_in: return jsonify(dict(status="fail", message="student already punched in")), 200 isValid, dateOrError = parseDate(inTime, "%H:%M:%S") if not isValid: return ( jsonify(dict(status="fail", message="time is not valid {}".format(inTime))), 200, ) attendance = Attendance( date=datetime.today().date(), student_id=studentid, punch_in=inTime, punch_in_by_id=request.user.id, ) db.session.add(attendance) db.session.commit() return ( jsonify( dict( status="success", message="student successfuly puched in", attendance=attendance.serialize(), ) ), 200, )
def set_punch_in(attendance, date, inTime, studentid=None): msg = ("student successfuly puched in", ) if inTime == "" and attendance: attendance.punch_in = None db.session.delete(attendance) msg = "attendance delete" else: isValid, dateOrError = parseDate(inTime, "%H:%M:%S") if not isValid: return ( jsonify( dict(status="fail", message="time is not valid {}".format(inTime))), 200, ) if attendance: attendance.punch_in = inTime else: attendance = Attendance( date=date, student_id=studentid, punch_in=inTime, punch_in_by_id=request.user.id, ) db.session.add(attendance) db.session.commit() return ( jsonify( dict(status="success", message=msg, attendance=attendance.serialize())), 200, )
def set_attendance(studentid, what): res = dict(status="fail") res_code = 200 if what not in ["in", "out", "comment"]: res["message"] = "Invalid url" return jsonify(res), res_code faculty = Faculty.query.get(request.user.id) data = request.json or request.data or request.form if what in ("in", "out"): isValid, timeOrError = parseDate(data.get(what), "%H:%M:%S") if not isValid: res["message"] = "Invalid time format " return jsonify(res), res_code student = Student.query.get(studentid) if not student: res["message"] = "Invalid student id" return jsonify(res), res_code attendance = Attendance.query.filter_by( date=datetime.today().date(), student_id=student.id ).first() if what == "in": return set_punch_in(attendance, data.get("in"), studentid=studentid) elif what == "out": return set_punch_out(attendance, data.get("out")) elif what == "comment": return set_comment(attendance, data.get("comment"))
def set_attendance(date, studentid, what): res = dict(status="fail") res_code = 200 if what not in ["in", "out", "comment"]: res["message"] = "Invalid url" return jsonify(res), res_code data = request.json or request.data or request.form print(data) res_code = 200 isValid, dateOrError = parseDate(date, "%d%m%Y") if not isValid: res["message"] = "Invalid date format {0}".format(date) return jsonify(res), res_code date = dateOrError.date() print(date) student = Student.query.get(studentid) print(student) if not student: res["message"] = "Invalid student id" return jsonify(res), res_code attendance = Attendance.query.filter_by(date=date, student_id=student.id).first() print(attendance) if what == "in": return set_punch_in(attendance, date, data.get("in"), studentid=studentid) elif what == "out": return set_punch_out(attendance, date, data.get("out")) elif what == "comment": return set_comment(attendance, date, data.get("comment"))