Pointage des employés

Tar06 Messages postés 113 Date d'inscription   Statut Membre Dernière intervention   -  
Tar06 Messages postés 113 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
je suis en train de faire une application gestion des employées en android et j'ai déjà fait la majorite du projet , il me reste juste le pointage d'un employé donnée
si vous pouvez m'aider ,je travaille avec android et sqlite
Merci d'avance
Tahb


Configuration: Windows / Chrome 70.0.3538.110

3 réponses

BunoCS Messages postés 15952 Date d'inscription   Statut Modérateur Dernière intervention   3 918
 
Bonjour,

Qu'entends-tu par "pointage" ?
0
Tar06 Messages postés 113 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour,
la présence quotidienne
0
BunoCS Messages postés 15952 Date d'inscription   Statut Modérateur Dernière intervention   3 918
 
Ok, mais comment comptes-tu le faire ? Est-ce que ton app est reliée à un serveur pour centraliser et synchroniser les données ?
0
Tar06 Messages postés 113 Date d'inscription   Statut Membre Dernière intervention  
 
non , c'est une simple application ou il y a les opération(ajouter ,modifier, supprimer ,lister)les employés ,
il me manque juste comment faire le pointage d'un employé .
0
Tar06 Messages postés 113 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour
voici exemple ma mainActivity
j'ai deja creer une boutton dans le mainActivity.xml et je veux cette boutton me visulaise les employes xml
mainActivity
package com.example.soc_macmini_15.ApplicationEmploye.Activity;

import android.content.Intent;
import android.support.v4.app.FragmentManager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Toast;

import com.example.soc_macmini_15.ApplicationEmploye.DB.EmployeeOperations;
import com.example.soc_macmini_15.ApplicationEmploye.Fragments.DatePickerFragment;
import com.example.soc_macmini_15.ApplicationEmploye.Model.Employee;
import com.example.soc_macmini_15.ApplicationEmploye.R;

import java.text.SimpleDateFormat;
import java.util.Date;

public class AddUpdateEmployee extends AppCompatActivity implements DatePickerFragment.DateDialogListener {

    private static final String EXTRA_EMP_ID = "com.example.soc_macmini_15.sqlitepractice.empId";
    private static final String EXTRA_ADD_UPDATE = "com.example.soc_macmini_15.sqlitepractice.add_update";
    private static final String DIALOG_DATE = "DialogDate";
    private ImageView calendarImage;
    private RadioGroup radioGroup;
    private RadioButton maleRadioButton, femaleRadioButton;
    private EditText firstNameEditText;
    private EditText lastNameEditText;
    private EditText deptEditText;
    private EditText hireDateEditText;
    private Button addUpdateButton;
    private Employee newEmployee;
    private Employee oldEmployee;
    private String mode;
    private long empId;
    private EmployeeOperations employeeData;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_add_update_employee);

        newEmployee = new Employee();
        oldEmployee = new Employee();
        firstNameEditText = findViewById(R.id.edit_text_first_name);
        lastNameEditText = findViewById(R.id.edit_text_last_name);
        hireDateEditText = findViewById(R.id.edit_text_hire_date);
        radioGroup = findViewById(R.id.radio_gender);
        femaleRadioButton = findViewById(R.id.radio_female);
        maleRadioButton = findViewById(R.id.radio_male);
        calendarImage = findViewById(R.id.image_view_hire_date);
        deptEditText = findViewById(R.id.edit_text_dept);
        addUpdateButton = findViewById(R.id.button_add_update_employee);
        employeeData = new EmployeeOperations(this);


        Log.d("test", "onCreate: " + getIntent().getStringExtra(EXTRA_ADD_UPDATE));
        mode = getIntent().getStringExtra(EXTRA_ADD_UPDATE);
        if (mode != null)
            if (mode.equals("Update")) {
                addUpdateButton.setText("Mettre a jour employe");
                empId = getIntent().getLongExtra(EXTRA_EMP_ID, 0);

                initializeEmployee(empId);
            }
        radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup radioGroup, int i) {
                if (i == R.id.radio_male) {
                    newEmployee.setGender("M");
                    if (mode.equals("Update")) {
                        oldEmployee.setGender("M");
                    }
                } else if (i == R.id.radio_female) {
                    newEmployee.setGender("F");
                    if (mode.equals("Update")) {
                        oldEmployee.setGender("F");
                    }
                }
            }
        });
        calendarImage.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                FragmentManager manager = getSupportFragmentManager();
                DatePickerFragment dialog = new DatePickerFragment();
                dialog.show(manager, DIALOG_DATE);
            }
        });
        addUpdateButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                employeeData.open();
                if (mode != null) {
                    if (mode.equals("Add")) {
                        newEmployee.setFirstName(firstNameEditText.getText().toString());
                        newEmployee.setLastName(lastNameEditText.getText().toString());
                        newEmployee.setHireDate(hireDateEditText.getText().toString());
                        newEmployee.setDept(deptEditText.getText().toString());
                        if (maleRadioButton.isChecked())
                            newEmployee.setGender("M");
                        else
                            newEmployee.setGender("F");


                        employeeData.addEmployee(newEmployee);
                        employeeData.close();
                        Toast.makeText(AddUpdateEmployee.this, "Employee " + newEmployee.getFirstName() +
                                " est ajoute avec succes!", Toast.LENGTH_SHORT).show();
                        Intent i = new Intent(AddUpdateEmployee.this, MainActivity.class);
                        startActivity(i);
                    } else {
                        oldEmployee.setFirstName(firstNameEditText.getText().toString());
                        oldEmployee.setLastName(lastNameEditText.getText().toString());
                        oldEmployee.setHireDate(hireDateEditText.getText().toString());
                        oldEmployee.setDept(deptEditText.getText().toString());
                        employeeData.updateEmployee(oldEmployee);
                        employeeData.close();
                        Toast.makeText(AddUpdateEmployee.this, "Employee " + oldEmployee.getFirstName() +
                                " est ajoute avec succes!", Toast.LENGTH_SHORT).show();
                        Intent i = new Intent(AddUpdateEmployee.this, MainActivity.class);
                        startActivity(i);
                    }
                }
            }
        });
    }

    private void initializeEmployee(long empId) {
        oldEmployee = employeeData.getEmployee(empId);
        if (oldEmployee != null) {
            firstNameEditText.setText(oldEmployee.getFirstName());
            lastNameEditText.setText(oldEmployee.getLastName());
            hireDateEditText.setText(oldEmployee.getHireDate());
            radioGroup.check(oldEmployee.getGender().equals("M") ? R.id.radio_male : R.id.radio_female);
            deptEditText.setText(oldEmployee.getDept());
        } else {
            Toast.makeText(this, "Employee non present", Toast.LENGTH_SHORT).show();
        }
    }


    public String formatDate(Date date) {
        SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
        String hireDate = sdf.format(date);
        return hireDate;
    }

    @Override
    public void onFinishDialog(Date date) {
        hireDateEditText.setText(formatDate(date));
    }
}
0
BunoCS Messages postés 15952 Date d'inscription   Statut Modérateur Dernière intervention   3 918
 
Je n'ai toujours pas compris ce que tu entends par "pointage". Est-ce que :
- c'est l'employé qui utilise sa propre app pour "badger" (flasher un QR code par exemple) ?
- c'est le chef d'équipe qui a un listing de ses employés et qui coche la présence ou non ?

Dans le 1er cas, avoir une liste d'employé dans l'app n'est pas pertinent. D'autant plus que tu n'as pas de serveur donc ton "pointage" ne va pas servir à grand chose.
Dans le 2nd cas, je comprends mieux le "pointage". Par contre, j'ai l'impression qu'il manque une notion de temps/jours, non ?

Dernière question : c'est un projet réel ? Un stage ? Un projet d'études ?
0
Tar06 Messages postés 113 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour
C'est le chef d'équipe qui a un listing de ses employés et qui coche la présence ,
oui vous avez raison , il me manque le temps jour parce que c'est quotidiennement
c'est un petit projet
0
BunoCS Messages postés 15952 Date d'inscription   Statut Modérateur Dernière intervention   3 918
 
Donc il te suffit "juste" d'afficher la liste des employés avec une case à cocher par jour, non ?
0
Tar06 Messages postés 113 Date d'inscription   Statut Membre Dernière intervention  
 
comment, je vais vous montrez la fonction qui me permet d'afficher les employees et la classe d'affichage des employees
fonction
 public List<Employee> getAllEmployees() {
open();
Cursor cursor = database.query(EmployeeDBHandler.TABLE_EMPLOYEES, allColumns,
null, null, null, null, null);
List<Employee> employees = new ArrayList<>();
if (cursor.getCount() > 0) {
while (cursor.moveToNext()) {
Employee employee = new Employee();
employee.setEmpId(cursor.getLong(cursor.getColumnIndex(EmployeeDBHandler.COLUMN_ID)));
employee.setFirstName(cursor.getString(cursor.getColumnIndex(EmployeeDBHandler.COLUMN_FIRST_NAME)));
employee.setLastName(cursor.getString(cursor.getColumnIndex(EmployeeDBHandler.COLUMN_LAST_NAME)));
employee.setGender(cursor.getString(cursor.getColumnIndex(EmployeeDBHandler.COLUMN_GENDER)));
employee.setHireDate(cursor.getString(cursor.getColumnIndex(EmployeeDBHandler.COLUMN_HIRE_DATE)));
employee.setDept(cursor.getString(cursor.getColumnIndex(EmployeeDBHandler.COLUMN_DEPT)));
employees.add(employee);
}
}
close();
return employees;
}

la classe viewAllEmploye
package com.example.soc_macmini_15.ApplicationEmploye.Activity;

import android.app.ListActivity;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.Toast;

import com.example.soc_macmini_15.ApplicationEmploye.DB.EmployeeOperations;
import com.example.soc_macmini_15.ApplicationEmploye.Model.Employee;
import com.example.soc_macmini_15.ApplicationEmploye.R;

import java.util.List;

public class ViewAllEmployees extends ListActivity {


private EmployeeOperations employeeOperations;
List<Employee> employees;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_view_all_employees);

employeeOperations=new EmployeeOperations(this);
employeeOperations.open();
employees=employeeOperations.getAllEmployees();
employeeOperations.close();
if(!employees.isEmpty()) {
ArrayAdapter<Employee> adapter = new ArrayAdapter<>(this,
android.R.layout.simple_list_item_1, employees);
setListAdapter(adapter);
}
else
Toast.makeText(this, "No Data Present", Toast.LENGTH_SHORT).show();
}
}
0
BunoCS Messages postés 15952 Date d'inscription   Statut Modérateur Dernière intervention   3 918
 
Ici :
ArrayAdapter<Employee> adapter = new ArrayAdapter<>(this,
android.R.layout.simple_list_item_1, employees);

Pour le 1er paramètre, au lieu d'utiliser un layout fourni par Android, tu dois créé ton propre layout avec, par exemple, une
CheckBox
et un
TextView
.
0
Tar06 Messages postés 113 Date d'inscription   Statut Membre Dernière intervention  
 
Ok merci frère
0