Pointage des employés

Fermé
Tar06 Messages postés 120 Date d'inscription vendredi 27 mars 2015 Statut Membre Dernière intervention 5 juillet 2023 - Modifié le 11 déc. 2018 à 16:15
Tar06 Messages postés 120 Date d'inscription vendredi 27 mars 2015 Statut Membre Dernière intervention 5 juillet 2023 - 13 déc. 2018 à 18:02
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 15472 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 25 mars 2024 3 894
11 déc. 2018 à 16:21
Bonjour,

Qu'entends-tu par "pointage" ?
0
Tar06 Messages postés 120 Date d'inscription vendredi 27 mars 2015 Statut Membre Dernière intervention 5 juillet 2023
11 déc. 2018 à 16:26
Bonjour,
la présence quotidienne
0
BunoCS Messages postés 15472 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 25 mars 2024 3 894
11 déc. 2018 à 17:07
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 120 Date d'inscription vendredi 27 mars 2015 Statut Membre Dernière intervention 5 juillet 2023
11 déc. 2018 à 17:29
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 120 Date d'inscription vendredi 27 mars 2015 Statut Membre Dernière intervention 5 juillet 2023
Modifié le 12 déc. 2018 à 09:28
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 15472 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 25 mars 2024 3 894
12 déc. 2018 à 09:33
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 120 Date d'inscription vendredi 27 mars 2015 Statut Membre Dernière intervention 5 juillet 2023
12 déc. 2018 à 22:17
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 15472 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 25 mars 2024 3 894
13 déc. 2018 à 08:38
Donc il te suffit "juste" d'afficher la liste des employés avec une case à cocher par jour, non ?
0
Tar06 Messages postés 120 Date d'inscription vendredi 27 mars 2015 Statut Membre Dernière intervention 5 juillet 2023
Modifié le 13 déc. 2018 à 15:40
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 15472 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 25 mars 2024 3 894
13 déc. 2018 à 16:14
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 120 Date d'inscription vendredi 27 mars 2015 Statut Membre Dernière intervention 5 juillet 2023
13 déc. 2018 à 18:02
Ok merci frère
0