ticket fomattage
This commit is contained in:
@@ -1,26 +1,59 @@
|
||||
package com.example.quiz;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.graphics.Color;
|
||||
import android.os.Bundle;
|
||||
|
||||
import androidx.appcompat.app.AlertDialog;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.lifecycle.Observer;
|
||||
import androidx.lifecycle.ViewModelProvider;
|
||||
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.Button;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.example.quiz.data.model.ParisResponse;
|
||||
import com.example.quiz.data.model.enums.PariStatut;
|
||||
import com.example.quiz.databinding.FragmentWinTicketBinding;
|
||||
import com.example.quiz.utils.LoaderDialog;
|
||||
import com.example.quiz.utils.MessageDialog;
|
||||
import com.example.quiz.utils.Result;
|
||||
import com.example.quiz.utils.SharedPrefsHelper;
|
||||
import com.example.quiz.viewModel.LogsViewModel;
|
||||
import com.example.quiz.viewModel.PariViewModel;
|
||||
import com.google.android.material.appbar.MaterialToolbar;
|
||||
|
||||
import org.w3c.dom.Text;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.OffsetDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
|
||||
import dagger.hilt.android.AndroidEntryPoint;
|
||||
|
||||
/**
|
||||
* A simple {@link Fragment} subclass.
|
||||
* Use the {@link WinTicket#newInstance} factory method to
|
||||
* create an instance of this fragment.
|
||||
*/
|
||||
@AndroidEntryPoint
|
||||
public class WinTicket extends Fragment {
|
||||
|
||||
FragmentWinTicketBinding binding;
|
||||
|
||||
PariViewModel pariViewModel;
|
||||
|
||||
LogsViewModel logsViewModel;
|
||||
|
||||
SharedPrefsHelper sharedPrefsHelper;
|
||||
|
||||
LoaderDialog loader;
|
||||
|
||||
|
||||
public WinTicket() {
|
||||
// Required empty public constructor
|
||||
@@ -48,6 +81,10 @@ public class WinTicket extends Fragment {
|
||||
@Override
|
||||
public void onViewCreated(View view, Bundle savedInstanceState) {
|
||||
super.onViewCreated(view, savedInstanceState);
|
||||
pariViewModel = new ViewModelProvider(this).get(PariViewModel.class);
|
||||
logsViewModel = new ViewModelProvider(this).get(LogsViewModel.class);
|
||||
sharedPrefsHelper = SharedPrefsHelper.getInstance(getContext());
|
||||
loader = new LoaderDialog(getContext());
|
||||
binding.winTicketBtnBack.setOnClickListener(v -> {
|
||||
getActivity().onBackPressed();
|
||||
});
|
||||
@@ -58,6 +95,173 @@ public class WinTicket extends Fragment {
|
||||
});
|
||||
scannerDialog.show(getParentFragmentManager(), "scanner");
|
||||
});
|
||||
binding.winTicketVerificationBtn.setOnClickListener(v -> {
|
||||
String reference = binding.referenceTicket.getText().toString();
|
||||
if(reference.isEmpty()){
|
||||
MessageDialog.showError(getContext(), "Veuillez donner la reference du ticket");
|
||||
return;
|
||||
}
|
||||
pariViewModel.getPariByNumero(reference).observe(getViewLifecycleOwner(), new Observer<Result<ParisResponse>>() {
|
||||
@Override
|
||||
public void onChanged(Result<ParisResponse> parisResponseResult) {
|
||||
switch (parisResponseResult.status){
|
||||
case LOADING:{
|
||||
loader.show("Recherche du ticket");
|
||||
break;
|
||||
}
|
||||
case ERROR:{
|
||||
MessageDialog.showError(getContext(), parisResponseResult.message);
|
||||
break;
|
||||
}
|
||||
case SUCCESS:{
|
||||
if(parisResponseResult.data.getNumeroTicket().equals(reference)){
|
||||
loader.dismiss();
|
||||
_showDialog(parisResponseResult.data);
|
||||
}else{
|
||||
MessageDialog.showError(getContext(), "Le ticket n'existe pas");
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
@SuppressLint("SetTextI18n")
|
||||
void _showDialog(ParisResponse pari){
|
||||
LayoutInflater inflater = getLayoutInflater();
|
||||
View view = inflater.inflate(R.layout.pay_confirmation_layout, null);
|
||||
TextView statut = (TextView) view.findViewById(R.id.tv_statut);
|
||||
statut.setText("Statut: "+String.valueOf(pari.getStatutPari()));
|
||||
TextView dateHeure = (TextView) view.findViewById(R.id.tv_date_heure);
|
||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd/MM/yyyy HH:mm");
|
||||
dateHeure.setText(formatter.format(LocalDateTime.now()));
|
||||
TextView numeroCourse = (TextView) view.findViewById(R.id.tv_numero_course);
|
||||
numeroCourse.setText(String.valueOf(pari.getCourseNumero()));
|
||||
TextView nomCourse = (TextView) view.findViewById(R.id.tv_nom_course);
|
||||
nomCourse.setText(pari.getCourseNom());
|
||||
TextView numeroTicket = (TextView) view.findViewById(R.id.tv_numero_ticket);
|
||||
numeroTicket.setText(pari.getNumeroTicket());
|
||||
TextView datePrise = (TextView) view.findViewById(R.id.tv_date_prise);
|
||||
datePrise.setText(formatter.format(OffsetDateTime.parse(pari.getDateHeurePrise())));
|
||||
TextView combinaison = (TextView) view.findViewById(R.id.tv_combinaison);
|
||||
combinaison.setText(pari.getCombinaison());
|
||||
TextView montant = (TextView) view.findViewById(R.id.tv_montant);
|
||||
LinearLayout montantLayout = (LinearLayout) view.findViewById(R.id.tv_montant_layout);
|
||||
Button confirmer = (Button) view.findViewById(R.id.btn_confirmer);
|
||||
LinearLayout notesLayout = (LinearLayout) view.findViewById(R.id.notes_layout);
|
||||
TextView notes = (TextView) view.findViewById(R.id.notes);
|
||||
|
||||
TextView messageStatut = (TextView) view.findViewById(R.id.tv_message_statut);
|
||||
switch (pari.getStatutPari()){
|
||||
case GAGNANT:{
|
||||
messageStatut.setText("Veuillez confirmer le paiement de ce pari");
|
||||
montant.setText(pari.getGainCalcule()+" CFA");
|
||||
break;
|
||||
}
|
||||
case A_REMBOURSER:{
|
||||
messageStatut.setText("Veuillez confirmer le remboursement de ce pari");
|
||||
montant.setText(pari.getMiseTotale()+" CFA");
|
||||
break;
|
||||
}
|
||||
case PAYE:{
|
||||
messageStatut.setText("Ce pari a déjà été payé");
|
||||
montant.setText(pari.getGainCalcule()+" CFA");
|
||||
notesLayout.setVisibility(View.VISIBLE);
|
||||
notes.setText(pari.getNotes());
|
||||
confirmer.setVisibility(View.GONE);
|
||||
break;
|
||||
}
|
||||
default:{
|
||||
montantLayout.setVisibility(View.GONE);
|
||||
statut.setTextColor(Color.parseColor("#cf1c08"));
|
||||
messageStatut.setVisibility(View.GONE);
|
||||
confirmer.setVisibility(View.GONE);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
AlertDialog.Builder builder = new AlertDialog.Builder(getContext());
|
||||
builder.setView(view);
|
||||
AlertDialog dialog = builder.create();
|
||||
Button annuler = (Button) view.findViewById(R.id.btn_annuler);
|
||||
annuler.setOnClickListener(v -> {
|
||||
dialog.dismiss();
|
||||
});
|
||||
confirmer.setOnClickListener(v -> {
|
||||
switch (pari.getStatutPari()){
|
||||
case A_REMBOURSER:{
|
||||
pariViewModel.rembourserPari(pari.getNumeroTicket()).observe(getViewLifecycleOwner(), new Observer<Result<ParisResponse>>() {
|
||||
@Override
|
||||
public void onChanged(Result<ParisResponse> pariResponseResult) {
|
||||
switch (pariResponseResult.status){
|
||||
case LOADING: {
|
||||
loader.show("Remboursement en cours");
|
||||
break;
|
||||
}
|
||||
case ERROR: {
|
||||
loader.dismiss();
|
||||
MessageDialog.showError(getContext(), pariResponseResult.message);
|
||||
break;
|
||||
}
|
||||
case SUCCESS: {
|
||||
loader.dismiss();
|
||||
if(sharedPrefsHelper.get("id") == null){
|
||||
MessageDialog.showError(getContext(), "Erreur de connexion");
|
||||
return;
|
||||
}
|
||||
logsViewModel.insertLog(sharedPrefsHelper.get("id"), "REMBOURSEMENT TICKET", "Remboursement du ticket numéro "+ pari.getNumeroTicket()+" montant "+pari.getMiseTotale(), System.currentTimeMillis());
|
||||
MessageDialog.showSuccess(getContext(), "Remboursement effectué avec succès");
|
||||
binding.referenceTicket.setText("");
|
||||
dialog.dismiss();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
break;
|
||||
}
|
||||
case GAGNANT:{
|
||||
pariViewModel.payerPari(pari.getNumeroTicket()).observe(getViewLifecycleOwner(), new Observer<Result<ParisResponse>>() {
|
||||
@Override
|
||||
public void onChanged(Result<ParisResponse> pariResponseResult) {
|
||||
switch (pariResponseResult.status){
|
||||
case LOADING: {
|
||||
loader.show("Paiement en cours");
|
||||
break;
|
||||
}
|
||||
case ERROR: {
|
||||
loader.dismiss();
|
||||
MessageDialog.showError(getContext(), pariResponseResult.message);
|
||||
break;
|
||||
}
|
||||
case SUCCESS: {
|
||||
loader.dismiss();
|
||||
if(sharedPrefsHelper.get("id") == null){
|
||||
MessageDialog.showError(getContext(), "Erreur de connexion");
|
||||
return;
|
||||
}
|
||||
logsViewModel.insertLog(sharedPrefsHelper.get("id"), "PAIEMENT TICKET", "Paiement du ticket numéro "+ pari.getNumeroTicket()+" montant "+pari.getGainCalcule(), System.currentTimeMillis());
|
||||
binding.referenceTicket.setText("");
|
||||
MessageDialog.showSuccess(getContext(), "Paiement effectué avec succès");
|
||||
dialog.dismiss();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
break;
|
||||
}
|
||||
default:{
|
||||
dialog.dismiss();
|
||||
MessageDialog.showError(getContext(), "Action non comprise pour ce ticket");
|
||||
binding.referenceTicket.setText("");
|
||||
break;
|
||||
}
|
||||
}
|
||||
});
|
||||
dialog.show();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user