Pointage des employés

Tar06 Messages postés 139 Statut Membre -  
Tar06 Messages postés 139 Statut Membre -
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

  1. BunoCS Messages postés 15922 Date d'inscription   Statut Modérateur Dernière intervention   3 931
     
    Bonjour,

    Qu'entends-tu par "pointage" ?
    0
    1. Tar06 Messages postés 139 Statut Membre
       
      Bonjour,
      la présence quotidienne
      0
    2. BunoCS Messages postés 15922 Date d'inscription   Statut Modérateur Dernière intervention   3 931
       
      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
    3. Tar06 Messages postés 139 Statut Membre
       
      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
  2. Tar06 Messages postés 139 Statut Membre
     
    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
  3. BunoCS Messages postés 15922 Date d'inscription   Statut Modérateur Dernière intervention   3 931
     
    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
    1. Tar06 Messages postés 139 Statut Membre
       
      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
    2. BunoCS Messages postés 15922 Date d'inscription   Statut Modérateur Dernière intervention   3 931
       
      Donc il te suffit "juste" d'afficher la liste des employés avec une case à cocher par jour, non ?
      0
    3. Tar06 Messages postés 139 Statut Membre
       
      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
    4. BunoCS Messages postés 15922 Date d'inscription   Statut Modérateur Dernière intervention   3 931
       
      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
    5. Tar06 Messages postés 139 Statut Membre
       
      Ok merci frère
      0