Users Working Time Report

Dears;

I’m sure you can help me in this, I need to create a report shows the start working time and end working time for users by register a sign in and sign out time as attendance.
To be specific, I need 2 buttons Sign in and Sign out to be know what time cashiers come and leave, then I need to view a report for that.

If you please can help me.

Also I need to make such that report for result

Search the forum for “time clock” there are already a number of solutions for what you are trying to do depending on how you want to implement it and the type of functionality you need. They all come with reports.

@markjw Yes I read it already but that is not what I asked, my request is simple, and for cashiers not for employees. I only need sign in and out not log trace

Just implement time clock it does exactly what you need. Cashier, employee - same thing.

Why would you not want to use the time clock? It’s exactly the same as what you said you want…

The problem is I don’t understand it, I read it twice but I don’t know the working cycle and how to get result from it.
Also I found Punch Editor, and all in the forum seems to be understand the screens except me, so I feeling embarrassing to ask “What is this means?”, so I tried to ask a separate question with what I need.

It’s better if you ask on the original question and ask question about what you don’t understand. No need to feel embarrassed we all had to learn at the beginning. Because you ask a new question people like myself will see it’s just a time clock you need and refer you to the other post.

I don’t think you need the punch editor.

There is one that does exactly what you want and works well, it includes a database tools file which you can just import.

I have some scripts I made as well that automate the creation / update of employee entities from users on V5. I’m on my mobile at the moment I’ll share them with you later.

2 Likes

Ok, and thank you for your help :slight_smile:

@Mohamed_Seddiek here is the script below, you also need to add an action to execute the script and a rule to automatically execute the script on work period start.

I included the script, action and rule in a database tools file: Time Clock Update Employees Script Rule.zip (1.2 KB)

function updateEmployees() {

	var qry = '';
	var userCount = 0;
	var employeeCount = 0;
	
	var employeeEntityType = 'Employees';
	
	// Get Users
	qry = "SELECT count([Name]) as [CT] FROM [Users]";
	userCount = sql.Query(qry).First;
	
	qry = "SELECT [Name], [PinCode] FROM [Users]";
	var userList = sql.Query(qry).Delimit('~').All;
	
	for (var i = 0; i < userCount; i++) {
		var user = userList[i].split('~');
		var userName = user[0];
		var userPin = user[1];
		
		if (!api.Entity(userName).Exists()) {
			// Create new Employee entity for user
			api.Entity(userName).Create(employeeEntityType);
		}
		
		// Update PIN of Employee entity
		api.Entity(userName).Data('Pin').Update(userPin);
	}
	
	// Get Employee entities
	qry = "SELECT count([Name]) as [CT] FROM [Entities] WHERE [EntityTypeId]=(SELECT [Id] FROM [EntityTypes] WHERE [Name]='" + employeeEntityType + "')";
	employeeCount = sql.Query(qry).First;
	
	qry = "SELECT [Name] FROM [Entities] WHERE [EntityTypeId]=(SELECT [Id] FROM [EntityTypes] WHERE [Name]='" + employeeEntityType + "') ORDER BY [Name]";
	var employees = sql.Query(qry).Delimit(',').All;
	
	for (var i = 0; i < employeeCount; i++) {
		var userFound = false;
		
		for (var j = 0; j < userCount; j++) {
			var user = userList[j].split('~');
			
			if (employees[i] == user[0]) {
				userFound = true;
				break;
			}
		}
		
		if (!userFound) {
			// User not found - remove PIN from Employee entity
			api.Entity(employees[i]).Data('Pin').Update('');
		}
	}
	
}
2 Likes

@markjw Thank you, I will try it and give you my feedback

@markjw Check this,
1- it is repeated
2- it comes with old days not only on my working day

This is not the one I linked above.

You need to post on the actual topic for which one you used and also give more info about what you did.

Actually I used before one in other topic and uploaded. do I shall remove what uploaded before to get this work or what?

To be honest it would be better if you took the time to study the reports so you can build one yourself. It may never satisfy you to use someone else’s report. It would also give you the ability to build and tweak reports to your own business need which is a very valuable skill.

2 Likes