total review
This commit is contained in:
4
.idea/deploymentTargetSelector.xml
generated
4
.idea/deploymentTargetSelector.xml
generated
@@ -4,10 +4,10 @@
|
|||||||
<selectionStates>
|
<selectionStates>
|
||||||
<SelectionState runConfigName="app">
|
<SelectionState runConfigName="app">
|
||||||
<option name="selectionMode" value="DROPDOWN" />
|
<option name="selectionMode" value="DROPDOWN" />
|
||||||
<DropdownSelection timestamp="2026-02-13T13:45:19.610071900Z">
|
<DropdownSelection timestamp="2026-04-03T13:27:33.582048600Z">
|
||||||
<Target type="DEFAULT_BOOT">
|
<Target type="DEFAULT_BOOT">
|
||||||
<handle>
|
<handle>
|
||||||
<DeviceId pluginId="PhysicalDevice" identifier="serial=5051918437" />
|
<DeviceId pluginId="PhysicalDevice" identifier="serial=5051917024" />
|
||||||
</handle>
|
</handle>
|
||||||
</Target>
|
</Target>
|
||||||
</DropdownSelection>
|
</DropdownSelection>
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
import java.util.Properties
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
alias(libs.plugins.android.application)
|
alias(libs.plugins.android.application)
|
||||||
alias(libs.plugins.google.android.libraries.mapsplatform.secrets.gradle.plugin)
|
alias(libs.plugins.google.android.libraries.mapsplatform.secrets.gradle.plugin)
|
||||||
@@ -5,6 +7,13 @@ plugins {
|
|||||||
alias(libs.plugins.kotlin.android)
|
alias(libs.plugins.kotlin.android)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
val keystoreProperties = Properties()
|
||||||
|
val keystorePropertiesFile = rootProject.file("local.properties")
|
||||||
|
|
||||||
|
if (keystorePropertiesFile.exists()) {
|
||||||
|
keystoreProperties.load(keystorePropertiesFile.inputStream())
|
||||||
|
}
|
||||||
|
|
||||||
android {
|
android {
|
||||||
namespace = "com.example.quiz"
|
namespace = "com.example.quiz"
|
||||||
compileSdk = 34
|
compileSdk = 34
|
||||||
@@ -19,22 +28,37 @@ android {
|
|||||||
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
|
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
signingConfigs {
|
||||||
|
create("release") {
|
||||||
|
storeFile = file(keystoreProperties["STORE_FILE"] as String)
|
||||||
|
storePassword = keystoreProperties["STORE_PASSWORD"] as String
|
||||||
|
keyAlias = keystoreProperties["KEY_ALIAS"] as String
|
||||||
|
keyPassword = keystoreProperties["KEY_PASSWORD"] as String
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
buildTypes {
|
buildTypes {
|
||||||
release {
|
release {
|
||||||
isMinifyEnabled = false
|
isMinifyEnabled = false
|
||||||
|
signingConfig = signingConfigs.getByName("release")
|
||||||
|
|
||||||
proguardFiles(
|
proguardFiles(
|
||||||
getDefaultProguardFile("proguard-android-optimize.txt"),
|
getDefaultProguardFile("proguard-android-optimize.txt"),
|
||||||
"proguard-rules.pro"
|
"proguard-rules.pro"
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
compileOptions {
|
compileOptions {
|
||||||
sourceCompatibility = JavaVersion.VERSION_11
|
sourceCompatibility = JavaVersion.VERSION_11
|
||||||
targetCompatibility = JavaVersion.VERSION_11
|
targetCompatibility = JavaVersion.VERSION_11
|
||||||
}
|
}
|
||||||
|
|
||||||
buildFeatures {
|
buildFeatures {
|
||||||
viewBinding = true
|
viewBinding = true
|
||||||
}
|
}
|
||||||
|
|
||||||
kotlinOptions {
|
kotlinOptions {
|
||||||
jvmTarget = "17"
|
jvmTarget = "17"
|
||||||
}
|
}
|
||||||
@@ -42,41 +66,50 @@ android {
|
|||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation(fileTree(mapOf("dir" to "libs", "include" to listOf("*.jar", "*.aar"))))
|
implementation(fileTree(mapOf("dir" to "libs", "include" to listOf("*.jar", "*.aar"))))
|
||||||
|
|
||||||
implementation(libs.room.runtime)
|
implementation(libs.room.runtime)
|
||||||
|
annotationProcessor(libs.room.compiler)
|
||||||
|
|
||||||
implementation("com.github.NaikSoftware:StompProtocolAndroid:1.6.6")
|
implementation("com.github.NaikSoftware:StompProtocolAndroid:1.6.6")
|
||||||
|
|
||||||
// RxJava (déjà présent normalement)
|
|
||||||
implementation("io.reactivex.rxjava2:rxjava:2.2.21")
|
implementation("io.reactivex.rxjava2:rxjava:2.2.21")
|
||||||
implementation("io.reactivex.rxjava2:rxandroid:2.1.1")
|
implementation("io.reactivex.rxjava2:rxandroid:2.1.1")
|
||||||
annotationProcessor(libs.room.compiler)
|
|
||||||
implementation(libs.stompprotocolandroid)
|
implementation(libs.retrofit)
|
||||||
|
implementation(libs.okhttp)
|
||||||
|
implementation(libs.logging.interceptor)
|
||||||
|
implementation(libs.converter.gson)
|
||||||
|
|
||||||
|
implementation(libs.kotlinx.coroutines.android)
|
||||||
|
|
||||||
|
implementation(libs.hilt.android)
|
||||||
|
annotationProcessor(libs.hilt.compiler)
|
||||||
|
|
||||||
|
implementation(libs.recyclerview.v7)
|
||||||
|
implementation(libs.appcompat)
|
||||||
|
implementation(libs.material)
|
||||||
|
implementation(libs.constraintlayout)
|
||||||
|
|
||||||
|
implementation(libs.navigation.fragment)
|
||||||
|
implementation(libs.navigation.ui)
|
||||||
|
|
||||||
|
implementation(libs.play.services.maps)
|
||||||
|
|
||||||
implementation("androidx.swiperefreshlayout:swiperefreshlayout:1.1.0")
|
implementation("androidx.swiperefreshlayout:swiperefreshlayout:1.1.0")
|
||||||
|
|
||||||
implementation("androidx.camera:camera-camera2:1.2.3")
|
implementation("androidx.camera:camera-camera2:1.2.3")
|
||||||
implementation("androidx.camera:camera-lifecycle:1.2.3")
|
implementation("androidx.camera:camera-lifecycle:1.2.3")
|
||||||
implementation("androidx.camera:camera-view:1.2.3")
|
implementation("androidx.camera:camera-view:1.2.3")
|
||||||
implementation("androidx.camera:camera-core:1.2.3")
|
implementation("androidx.camera:camera-core:1.2.3")
|
||||||
|
|
||||||
implementation("com.google.mlkit:barcode-scanning:17.2.0")
|
implementation("com.google.mlkit:barcode-scanning:17.2.0")
|
||||||
implementation(libs.retrofit)
|
|
||||||
implementation(libs.okhttp)
|
|
||||||
implementation(libs.logging.interceptor)
|
|
||||||
implementation(libs.kotlinx.coroutines.android)
|
|
||||||
implementation(libs.converter.gson)
|
|
||||||
implementation(libs.hilt.android)
|
|
||||||
annotationProcessor(libs.hilt.compiler)
|
|
||||||
implementation(libs.rxjava)
|
|
||||||
implementation(libs.rxandroid)
|
|
||||||
implementation(libs.recyclerview.v7)
|
|
||||||
implementation(libs.appcompat)
|
|
||||||
implementation(libs.material)
|
|
||||||
implementation(libs.google.core)
|
|
||||||
implementation(libs.zxing.android.embedded)
|
implementation(libs.zxing.android.embedded)
|
||||||
implementation(libs.constraintlayout)
|
|
||||||
implementation(libs.navigation.fragment)
|
|
||||||
implementation(libs.navigation.ui)
|
|
||||||
implementation(libs.play.services.maps)
|
|
||||||
implementation(project(":printama"))
|
implementation(project(":printama"))
|
||||||
|
|
||||||
testImplementation(libs.junit)
|
testImplementation(libs.junit)
|
||||||
androidTestImplementation(libs.ext.junit)
|
androidTestImplementation(libs.ext.junit)
|
||||||
androidTestImplementation(libs.espresso.core)
|
androidTestImplementation(libs.espresso.core)
|
||||||
|
implementation("androidx.annotation:annotation:1.7.1")
|
||||||
}
|
}
|
||||||
@@ -27,6 +27,7 @@ import com.example.quiz.utils.MessageDialog;
|
|||||||
import com.example.quiz.utils.Result;
|
import com.example.quiz.utils.Result;
|
||||||
import com.example.quiz.utils.SharedPrefsHelper;
|
import com.example.quiz.utils.SharedPrefsHelper;
|
||||||
import com.example.quiz.viewModel.AgentViewModel;
|
import com.example.quiz.viewModel.AgentViewModel;
|
||||||
|
import com.example.quiz.viewModel.LogsViewModel;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -47,6 +48,7 @@ public class AgentDetails extends Fragment {
|
|||||||
private String agentId;
|
private String agentId;
|
||||||
private FragmentAgentDetailsBinding binding;
|
private FragmentAgentDetailsBinding binding;
|
||||||
MultiTypeOfBetsAdapter multiTypeOfBetsAdapter;
|
MultiTypeOfBetsAdapter multiTypeOfBetsAdapter;
|
||||||
|
LogsViewModel logsViewModel;
|
||||||
private AgentViewModel agentViewModel;
|
private AgentViewModel agentViewModel;
|
||||||
|
|
||||||
private boolean userInteraction = false;
|
private boolean userInteraction = false;
|
||||||
@@ -91,6 +93,7 @@ public class AgentDetails extends Fragment {
|
|||||||
allowedBetTypes = new Restriction();
|
allowedBetTypes = new Restriction();
|
||||||
prefsHelper = SharedPrefsHelper.getInstance(getContext());
|
prefsHelper = SharedPrefsHelper.getInstance(getContext());
|
||||||
loaderDialog = new LoaderDialog(getContext());
|
loaderDialog = new LoaderDialog(getContext());
|
||||||
|
logsViewModel = new ViewModelProvider(this).get(LogsViewModel.class);
|
||||||
return binding.getRoot();
|
return binding.getRoot();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -130,6 +133,8 @@ public class AgentDetails extends Fragment {
|
|||||||
case SUCCESS:{
|
case SUCCESS:{
|
||||||
loaderDialog.dismiss();
|
loaderDialog.dismiss();
|
||||||
MessageDialog.showSuccess(getContext(), "L'accès a été mis à jour");
|
MessageDialog.showSuccess(getContext(), "L'accès a été mis à jour");
|
||||||
|
String logsMessage = !b? "Activation de l'accès du sous agent":"Désactivation de l'accès du sous agent";
|
||||||
|
logsViewModel.insertLog(prefsHelper.get("id"), !b?"ACTIVATION":"DESACTIVATION",message+" "+agent.getCode(), System.currentTimeMillis());
|
||||||
loadAgentDetails(agentId);
|
loadAgentDetails(agentId);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -181,6 +186,7 @@ public class AgentDetails extends Fragment {
|
|||||||
}
|
}
|
||||||
case SUCCESS:{
|
case SUCCESS:{
|
||||||
loaderDialog.dismiss();
|
loaderDialog.dismiss();
|
||||||
|
logsViewModel.insertLog(prefsHelper.get("id"), "MIS A JOUR PRODUIT", "Mise à jour des types de paris"+" "+agent.getCode()+": "+allowedBetTypes.getAllowedBetTypes().stream().map(Enum::toString).collect(Collectors.joining(",")), System.currentTimeMillis());
|
||||||
MessageDialog.showSuccess(getContext(), "Les types de paris ont été mises à jour");
|
MessageDialog.showSuccess(getContext(), "Les types de paris ont été mises à jour");
|
||||||
loadAgentDetails(agentId);
|
loadAgentDetails(agentId);
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package com.example.quiz;
|
package com.example.quiz;
|
||||||
|
|
||||||
|
import android.Manifest;
|
||||||
import android.annotation.SuppressLint;
|
import android.annotation.SuppressLint;
|
||||||
import android.bluetooth.BluetoothAdapter;
|
import android.bluetooth.BluetoothAdapter;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
@@ -373,30 +374,30 @@ public class BetValidation extends Fragment {
|
|||||||
});
|
});
|
||||||
|
|
||||||
binding.betValidateBtn.setOnClickListener(v->{
|
binding.betValidateBtn.setOnClickListener(v->{
|
||||||
if (ActivityCompat.checkSelfPermission(getContext(), android.Manifest.permission.BLUETOOTH_CONNECT) != PackageManager.PERMISSION_GRANTED) {
|
// Log.d("PAPER_STATUS", String.valueOf(ActivityCompat.checkSelfPermission(getContext(), Manifest.permission.BLUETOOTH_CONNECT))+" "+String.valueOf(PackageManager.PERMISSION_GRANTED));
|
||||||
// TODO: Consider calling
|
// if (ActivityCompat.checkSelfPermission(getContext(), android.Manifest.permission.BLUETOOTH_CONNECT)
|
||||||
// ActivityCompat#requestPermissions
|
// != PackageManager.PERMISSION_GRANTED) {
|
||||||
// here to request the missing permissions, and then overriding
|
// // TODO: Consider calling
|
||||||
// public void onRequestPermissionsResult(int requestCode, String[] permissions,
|
// // ActivityCompat#requestPermissions
|
||||||
// int[] grantResults)
|
// // here to request the missing permissions, and then overriding
|
||||||
// to handle the case where the user grants the permission. See the documentation
|
// // public void onRequestPermissionsResult(int requestCode, String[] permissions,
|
||||||
// for ActivityCompat#requestPermissions for more details.
|
// // int[] grantResults)
|
||||||
return;
|
// // to handle the case where the user grants the permission. See the documentation
|
||||||
}
|
// // for ActivityCompat#requestPermissions for more details.
|
||||||
int paperStatus = Printama.with(getContext()).checkPaperStatus();
|
// return;
|
||||||
Log.d("PAPER_STATUS", String.valueOf(paperStatus));
|
// }
|
||||||
switch (paperStatus){
|
// int paperStatus = Printama.with(getContext()).checkPaperStatus();
|
||||||
case 2 :{
|
// switch (paperStatus){
|
||||||
MessageDialog.showError(getContext(), "Le papier d'impression est vide");
|
// case 2 :{
|
||||||
return;
|
// MessageDialog.showError(getContext(), "Le papier d'impression est vide");
|
||||||
}
|
// return;
|
||||||
case 1:{
|
// }
|
||||||
MessageDialog.showError(getContext(), "Le papier d'impression est presque vide");
|
// case 1:{
|
||||||
break;
|
// MessageDialog.showError(getContext(), "Le papier d'impression est presque vide");
|
||||||
}
|
// break;
|
||||||
default:
|
// }
|
||||||
break;
|
// }
|
||||||
}
|
|
||||||
if(binding.paymentType.getSelectedItem().toString().equals("Orange Money") && binding.phoneNumber.getText().toString().isEmpty()){
|
if(binding.paymentType.getSelectedItem().toString().equals("Orange Money") && binding.phoneNumber.getText().toString().isEmpty()){
|
||||||
MessageDialog.showError(getContext(), "Veuillez saisir le numéro de téléphone");
|
MessageDialog.showError(getContext(), "Veuillez saisir le numéro de téléphone");
|
||||||
return;
|
return;
|
||||||
@@ -593,8 +594,8 @@ public class BetValidation extends Fragment {
|
|||||||
case SUCCESS:
|
case SUCCESS:
|
||||||
try {
|
try {
|
||||||
loader.dismiss();
|
loader.dismiss();
|
||||||
|
logsViewModel.insertLog(prefsHelper.get("id"), "BET", "Création du pari "+pariResult.data.getNumeroTicket()+", type de paris: "+pariResult.data.getTypesParisMises().get(0).getTypePari()+", combinaison:"+selectedHorses.getValue().stream().map(String::valueOf).collect(Collectors.joining("-")), System.currentTimeMillis());
|
||||||
printPari(pariResult.data);
|
printPari(pariResult.data);
|
||||||
logsViewModel.insertLog(prefsHelper.get("id"), "BET", "Création du pari "+pariResult.data.getNumeroTicket()+" type de paris: "+pariResult.data.getTypesParisMises().get(0).getTypePari(), System.currentTimeMillis());
|
|
||||||
dialog.dismiss();
|
dialog.dismiss();
|
||||||
MessageDialog.showSuccess(getContext(), "Pari créé avec succès");
|
MessageDialog.showSuccess(getContext(), "Pari créé avec succès");
|
||||||
} catch (WriterException e) {
|
} catch (WriterException e) {
|
||||||
|
|||||||
@@ -33,6 +33,7 @@ import com.example.quiz.utils.SharedPrefsHelper;
|
|||||||
import com.example.quiz.viewModel.LogsViewModel;
|
import com.example.quiz.viewModel.LogsViewModel;
|
||||||
import com.example.quiz.viewModel.PariViewModel;
|
import com.example.quiz.viewModel.PariViewModel;
|
||||||
import com.google.android.material.appbar.MaterialToolbar;
|
import com.google.android.material.appbar.MaterialToolbar;
|
||||||
|
import com.google.zxing.WriterException;
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.time.format.DateTimeFormatter;
|
import java.time.format.DateTimeFormatter;
|
||||||
@@ -140,7 +141,11 @@ public class Sold extends Fragment {
|
|||||||
case SUCCESS:{
|
case SUCCESS:{
|
||||||
dialog.dismiss();
|
dialog.dismiss();
|
||||||
|
|
||||||
_showSold(doubleResult.data, date);
|
try {
|
||||||
|
_showSold(doubleResult.data, date);
|
||||||
|
} catch (WriterException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
logsViewModel.insertLog(prefsHelper.get("id"), "SOLDE JOUR", "Solde du "+date, System.currentTimeMillis());
|
logsViewModel.insertLog(prefsHelper.get("id"), "SOLDE JOUR", "Solde du "+date, System.currentTimeMillis());
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -156,44 +161,38 @@ public class Sold extends Fragment {
|
|||||||
datePickerDialog.show();
|
datePickerDialog.show();
|
||||||
}
|
}
|
||||||
|
|
||||||
void _showSold(SoldeResponse soldeResponse, String date){
|
void _showSold(SoldeResponse soldeResponse, String date) throws WriterException {
|
||||||
int solde = soldeResponse.getMontantParis() - soldeResponse.getMontantAnnulations() - soldeResponse.getMontantPaiements();
|
try {
|
||||||
new AlertDialog.Builder(getContext())
|
int solde = soldeResponse.getMontantParis() - soldeResponse.getMontantAnnulations() - soldeResponse.getMontantPaiements();
|
||||||
.setTitle("Solde")
|
new AlertDialog.Builder(getContext())
|
||||||
.setMessage("Solde la course "+solde)
|
.setTitle("Solde")
|
||||||
.setNeutralButton("Ok", (dialog, which)->{
|
.setMessage("Solde la course "+solde)
|
||||||
dialog.dismiss();
|
.setNeutralButton("Ok", (dialog, which)->{
|
||||||
})
|
dialog.dismiss();
|
||||||
.setPositiveButton("Imprimer", (dialog, which)->{
|
})
|
||||||
if (ActivityCompat.checkSelfPermission(getContext(), android.Manifest.permission.BLUETOOTH_CONNECT) != PackageManager.PERMISSION_GRANTED) {
|
.setPositiveButton("Imprimer", (dialog, which)->{
|
||||||
// TODO: Consider calling
|
Printama printama = Printama.with(getContext());
|
||||||
// ActivityCompat#requestPermissions
|
Bitmap logo = BitmapFactory.decodeResource(getResources(), R.drawable.pmu_logo);
|
||||||
// here to request the missing permissions, and then overriding
|
String title = "SOLDE AU "+date;
|
||||||
// public void onRequestPermissionsResult(int requestCode, String[] permissions,
|
StringBuilder text = new StringBuilder();
|
||||||
// int[] grantResults)
|
text.append("VENTES HIPPIQUES: ").append(String.valueOf(soldeResponse.getMontantParis())).append(" XOF").append("\n");
|
||||||
// to handle the case where the user grants the permission. See the documentation
|
text.append("NBR. PAIEMENTS: ").append(soldeResponse.getNombrePaiements()).append("\n");
|
||||||
// for ActivityCompat#requestPermissions for more details.
|
text.append("PAIEMENTS: ").append(String.valueOf(soldeResponse.getMontantPaiements())).append(" XOF").append("\n");
|
||||||
return;
|
text.append("NBR. ANNULATIONS: ").append(soldeResponse.getNombreAnnulations()).append("\n");
|
||||||
}
|
text.append("ANNULATIONS: ").append(String.valueOf(soldeResponse.getMontantAnnulations())).append(" XOF").append("\n");
|
||||||
Printama printama = Printama.with(getContext());
|
text.append(printama.lineSeparator()).append("\n");
|
||||||
Bitmap logo = BitmapFactory.decodeResource(getResources(), R.drawable.pmu_logo);
|
text.append("SOLDE: ").append(String.valueOf(solde)).append(" XOF").append("\n");
|
||||||
String title = "SOLDE AU "+date;
|
text.append(printama.lineSeparator()).append("\n");
|
||||||
StringBuilder text = new StringBuilder();
|
text.append("AGENT : ").append(prefsHelper.get("code")).append("\n");
|
||||||
text.append("VENTES HIPPIQUES: ").append(String.valueOf(soldeResponse.getMontantParis())).append(" XOF").append("\n");
|
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd/MM/yyyy HH:mm:ss");
|
||||||
text.append("NBR. PAIEMENTS: ").append(soldeResponse.getNombrePaiements()).append("\n");
|
String now = formatter.format(LocalDateTime.now());
|
||||||
text.append("PAIEMENTS: ").append(String.valueOf(soldeResponse.getMontantPaiements())).append(" XOF").append("\n");
|
text.append("DATE : ").append(now).append("\n");
|
||||||
text.append("NBR. ANNULATIONS: ").append(soldeResponse.getNombreAnnulations()).append("\n");
|
printama.printSold(logo, title, text);
|
||||||
text.append("ANNULATIONS: ").append(String.valueOf(soldeResponse.getMontantAnnulations())).append(" XOF").append("\n");
|
})
|
||||||
text.append(printama.lineSeparator()).append("\n");
|
.show();
|
||||||
text.append("SOLDE: ").append(String.valueOf(solde)).append(" XOF").append("\n");
|
}catch (SecurityException e){
|
||||||
text.append(printama.lineSeparator()).append("\n");
|
MessageDialog.showError(getContext(), "Erreur lors de l'affichage du solde");
|
||||||
text.append("AGENT : ").append(prefsHelper.get("code")).append("\n");
|
}
|
||||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd/MM/yyyy HH:mm:ss");
|
|
||||||
String now = formatter.format(LocalDateTime.now());
|
|
||||||
text.append("DATE : ").append(now).append("\n");
|
|
||||||
printama.printSold(logo, title, text);
|
|
||||||
})
|
|
||||||
.show();
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -27,6 +27,7 @@ import com.example.quiz.utils.Result;
|
|||||||
import com.example.quiz.utils.SharedPrefsHelper;
|
import com.example.quiz.utils.SharedPrefsHelper;
|
||||||
import com.example.quiz.viewModel.LogsViewModel;
|
import com.example.quiz.viewModel.LogsViewModel;
|
||||||
import com.example.quiz.viewModel.PariViewModel;
|
import com.example.quiz.viewModel.PariViewModel;
|
||||||
|
import com.google.zxing.WriterException;
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.time.format.DateTimeFormatter;
|
import java.time.format.DateTimeFormatter;
|
||||||
@@ -102,7 +103,11 @@ public class SoldByCourse extends Fragment {
|
|||||||
}
|
}
|
||||||
case SUCCESS:{
|
case SUCCESS:{
|
||||||
loader.dismiss();
|
loader.dismiss();
|
||||||
_showPariDialog(doubleResult.data, binding.etRaceNumber.getText().toString());
|
try {
|
||||||
|
_showPariDialog(doubleResult.data, binding.etRaceNumber.getText().toString());
|
||||||
|
} catch (WriterException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
logsViewModel.insertLog(prefsHelper.get("id"), "SOLDE COURSE", "Solde de la course "+binding.etRaceNumber.getText(), System.currentTimeMillis());
|
logsViewModel.insertLog(prefsHelper.get("id"), "SOLDE COURSE", "Solde de la course "+binding.etRaceNumber.getText(), System.currentTimeMillis());
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -112,44 +117,38 @@ public class SoldByCourse extends Fragment {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
void _showPariDialog(SoldeResponse soldeResponse, String numero){
|
void _showPariDialog(SoldeResponse soldeResponse, String numero) throws WriterException {
|
||||||
int solde = soldeResponse.getMontantParis() - soldeResponse.getMontantAnnulations() - soldeResponse.getMontantPaiements();
|
try {
|
||||||
new AlertDialog.Builder(getContext())
|
int solde = soldeResponse.getMontantParis() - soldeResponse.getMontantAnnulations() - soldeResponse.getMontantPaiements();
|
||||||
.setTitle("Solde")
|
new AlertDialog.Builder(getContext())
|
||||||
.setMessage("Solde la course "+solde)
|
.setTitle("Solde")
|
||||||
.setNeutralButton("Ok", (dialog, which) -> {
|
.setMessage("Solde la course "+solde)
|
||||||
binding.etRaceNumber.setText("");
|
.setNeutralButton("Ok", (dialog, which) -> {
|
||||||
dialog.dismiss();
|
binding.etRaceNumber.setText("");
|
||||||
})
|
dialog.dismiss();
|
||||||
.setPositiveButton("Imprimer", (dialog, which)->{
|
})
|
||||||
if (ActivityCompat.checkSelfPermission(getContext(), android.Manifest.permission.BLUETOOTH_CONNECT) != PackageManager.PERMISSION_GRANTED) {
|
.setPositiveButton("Imprimer", (dialog, which)->{
|
||||||
// TODO: Consider calling
|
Printama printama = Printama.with(getContext());
|
||||||
// ActivityCompat#requestPermissions
|
Bitmap logo = BitmapFactory.decodeResource(getResources(), R.drawable.pmu_logo);
|
||||||
// here to request the missing permissions, and then overriding
|
String title = "SOLDE DE LA COURSE "+numero;
|
||||||
// public void onRequestPermissionsResult(int requestCode, String[] permissions,
|
StringBuilder text = new StringBuilder();
|
||||||
// int[] grantResults)
|
text.append("VENTES HIPPIQUES: ").append(String.valueOf(soldeResponse.getMontantParis())).append(" XOF").append("\n");
|
||||||
// to handle the case where the user grants the permission. See the documentation
|
text.append("NBR. PAIEMENTS: ").append(soldeResponse.getNombrePaiements()).append("\n");
|
||||||
// for ActivityCompat#requestPermissions for more details.
|
text.append("PAIEMENTS: ").append(String.valueOf(soldeResponse.getMontantPaiements())).append(" XOF").append("\n");
|
||||||
return;
|
text.append("NBR. ANNULATIONS: ").append(soldeResponse.getNombreAnnulations()).append("\n");
|
||||||
}
|
text.append("ANNULATIONS: ").append(String.valueOf(soldeResponse.getMontantAnnulations())).append(" XOF").append("\n");
|
||||||
Printama printama = Printama.with(getContext());
|
text.append(printama.lineSeparator()).append("\n");
|
||||||
Bitmap logo = BitmapFactory.decodeResource(getResources(), R.drawable.pmu_logo);
|
text.append("SOLDE: ").append(String.valueOf(solde)).append(" XOF").append("\n");
|
||||||
String title = "SOLDE DE LA COURSE "+numero;
|
text.append(printama.lineSeparator()).append("\n");
|
||||||
StringBuilder text = new StringBuilder();
|
text.append("AGENT : ").append(prefsHelper.get("code")).append("\n");
|
||||||
text.append("VENTES HIPPIQUES: ").append(String.valueOf(soldeResponse.getMontantParis())).append(" XOF").append("\n");
|
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd/MM/yyyy HH:mm:ss");
|
||||||
text.append("NBR. PAIEMENTS: ").append(soldeResponse.getNombrePaiements()).append("\n");
|
String now = formatter.format(LocalDateTime.now());
|
||||||
text.append("PAIEMENTS: ").append(String.valueOf(soldeResponse.getMontantPaiements())).append(" XOF").append("\n");
|
text.append("DATE : ").append(now).append("\n");
|
||||||
text.append("NBR. ANNULATIONS: ").append(soldeResponse.getNombreAnnulations()).append("\n");
|
printama.printSold(logo, title, text);
|
||||||
text.append("ANNULATIONS: ").append(String.valueOf(soldeResponse.getMontantAnnulations())).append(" XOF").append("\n");
|
})
|
||||||
text.append(printama.lineSeparator()).append("\n");
|
.show();
|
||||||
text.append("SOLDE: ").append(String.valueOf(solde)).append(" XOF").append("\n");
|
}catch (SecurityException e){
|
||||||
text.append(printama.lineSeparator()).append("\n");
|
MessageDialog.showError(getContext(), "Erreur lors de l'affichage du solde");
|
||||||
text.append("AGENT : ").append(prefsHelper.get("code")).append("\n");
|
}
|
||||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd/MM/yyyy HH:mm:ss");
|
|
||||||
String now = formatter.format(LocalDateTime.now());
|
|
||||||
text.append("DATE : ").append(now).append("\n");
|
|
||||||
printama.printSold(logo, title, text);
|
|
||||||
})
|
|
||||||
.show();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -42,6 +42,8 @@ public class UpdatePin extends Fragment {
|
|||||||
String newPin;
|
String newPin;
|
||||||
String confirmation;
|
String confirmation;
|
||||||
|
|
||||||
|
LogsViewModel logsViewModel;
|
||||||
|
|
||||||
AuthNavigator authNavigator;
|
AuthNavigator authNavigator;
|
||||||
|
|
||||||
LoginViewModel viewModel;
|
LoginViewModel viewModel;
|
||||||
@@ -69,6 +71,7 @@ public class UpdatePin extends Fragment {
|
|||||||
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container,
|
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container,
|
||||||
Bundle savedInstanceState) {
|
Bundle savedInstanceState) {
|
||||||
viewModel = new ViewModelProvider(this).get(LoginViewModel.class);
|
viewModel = new ViewModelProvider(this).get(LoginViewModel.class);
|
||||||
|
logsViewModel = new ViewModelProvider(this).get(LogsViewModel.class);
|
||||||
loaderDialog = new LoaderDialog(getContext());
|
loaderDialog = new LoaderDialog(getContext());
|
||||||
authNavigator = new AuthNavigator(getContext(), getParentFragmentManager(), new SessionManager(getContext()), new ViewModelProvider(this).get(LoginViewModel.class),new ViewModelProvider(this).get(LogsViewModel.class),this);
|
authNavigator = new AuthNavigator(getContext(), getParentFragmentManager(), new SessionManager(getContext()), new ViewModelProvider(this).get(LoginViewModel.class),new ViewModelProvider(this).get(LogsViewModel.class),this);
|
||||||
// Inflate the layout for this fragment
|
// Inflate the layout for this fragment
|
||||||
@@ -110,7 +113,9 @@ public class UpdatePin extends Fragment {
|
|||||||
}
|
}
|
||||||
case SUCCESS:{
|
case SUCCESS:{
|
||||||
loaderDialog.dismiss();
|
loaderDialog.dismiss();
|
||||||
|
|
||||||
MessageDialog.showSuccess(getContext(), "Pin mis à jour avec succès");
|
MessageDialog.showSuccess(getContext(), "Pin mis à jour avec succès");
|
||||||
|
logsViewModel.insertLog(String.valueOf(userResult.data.getId()), "MIS A JOUR PIN", "Mise à jour du pin", System.currentTimeMillis());
|
||||||
SessionManager sessionManager = new SessionManager(getContext());
|
SessionManager sessionManager = new SessionManager(getContext());
|
||||||
authNavigator.showPinDialog(()->{
|
authNavigator.showPinDialog(()->{
|
||||||
sessionManager.updateLastExpiredDate();
|
sessionManager.updateLastExpiredDate();
|
||||||
|
|||||||
BIN
key_store.jks
Normal file
BIN
key_store.jks
Normal file
Binary file not shown.
@@ -385,6 +385,7 @@ public class Printama {
|
|||||||
_util.setAlign(PA.CENTER);
|
_util.setAlign(PA.CENTER);
|
||||||
_util.printText("Powered by PMU-MALI");
|
_util.printText("Powered by PMU-MALI");
|
||||||
_util.printText("\n"+printama.lineSeparator()+"\n");
|
_util.printText("\n"+printama.lineSeparator()+"\n");
|
||||||
|
_util.printText("\n\n\n");
|
||||||
printama.feedPaper();
|
printama.feedPaper();
|
||||||
printama.close();
|
printama.close();
|
||||||
});
|
});
|
||||||
@@ -404,10 +405,13 @@ public class Printama {
|
|||||||
_util.setNormalText();
|
_util.setNormalText();
|
||||||
_util.setAlign(PA.LEFT);
|
_util.setAlign(PA.LEFT);
|
||||||
_util.printText(text.toString());
|
_util.printText(text.toString());
|
||||||
_util.printText(lineSeparator());
|
_util.printText(printama.lineSeparator()+"\n");
|
||||||
|
_util.setBold();
|
||||||
|
_util.setNormalText();
|
||||||
_util.setAlign(PA.CENTER);
|
_util.setAlign(PA.CENTER);
|
||||||
_util.printText("Powered by PMU-MALI"+"\n");
|
_util.printText("Powered by PMU-MALI");
|
||||||
_util.printText(lineSeparator());
|
_util.printText("\n"+printama.lineSeparator()+"\n");
|
||||||
|
_util.printText("\n\n\n");
|
||||||
printama.feedPaper();
|
printama.feedPaper();
|
||||||
printama.close();
|
printama.close();
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user