first commit

This commit is contained in:
maher
2026-05-16 17:34:53 +02:00
commit 80817b9be0
1619 changed files with 106327 additions and 0 deletions
@@ -0,0 +1,402 @@
package Controllers.TraiteClt;
import Controllers.Traitement.Adaptateur;
import Controllers.Traitement.ParametreSystem;
import Controllers.Traitement.contro;
import Models.Fournisseur.FournisseurDB;
import Models.TraiteClt.TraiteCltDB;
import Models.TraiteClt.TraiteCltGestionDB;
import Models.TraiteClt.TraiteCltPaiementListe;
import java.io.IOException;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.time.LocalDate;
import java.util.logging.Level;
import java.util.logging.Logger;
import javafx.application.Platform;
import javafx.collections.ObservableList;
import javafx.concurrent.Service;
import javafx.concurrent.Task;
import javafx.concurrent.WorkerStateEvent;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.scene.Node;
import javafx.scene.control.Button;
import javafx.scene.control.DatePicker;
import javafx.scene.control.RadioButton;
import javafx.scene.control.Tab;
import javafx.scene.control.TabPane;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.TextField;
import javafx.scene.control.cell.PropertyValueFactory;
import javafx.scene.input.MouseEvent;
import javafx.scene.layout.AnchorPane;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.StackPane;
import javafx.scene.paint.Color;
import javafx.scene.text.Text;
/**
* FXML Controller class
* @author Maher Ben Tili
*/
public class TraiteCltDetailController {
@FXML private AnchorPane PaneDetailTraite;
@FXML private AnchorPane AnchorPaneLoadingTraite;
@FXML public TableView<TraiteCltPaiementListe> TableViewPaiement;
@FXML public TableColumn<TraiteCltPaiementListe ,String> TabColTypePaiement;
@FXML public TableColumn<TraiteCltPaiementListe ,String> TabColMontantPaiement;
@FXML public TableColumn<TraiteCltPaiementListe ,String> TabColDatePaiement;
@FXML public TableColumn<TraiteCltPaiementListe ,String> TabColHeurPaiement;
@FXML public TableColumn<TraiteCltPaiementListe ,String> TabColBanquePaiement;
@FXML public TableColumn<TraiteCltPaiementListe ,String> TabColNumeroPaiement;
@FXML private Text TextIdTraite;
@FXML private Text TextDate;
@FXML private Text TextEtat;
@FXML private Text TextMontant;
@FXML private Text TextTypeClt;
@FXML private Text TextIdClient;
@FXML private Text TextNomClt;
@FXML private Text TextPrenomClt;
@FXML private Text TxtPrenomMatricule;
@FXML private Text TextCodeFact;
@FXML private Text TextTotalFact;
@FXML private RadioButton RadioEspace;
@FXML private RadioButton RadioCheque;
@FXML private RadioButton RadioCarte;
@FXML private GridPane GridEspace;
@FXML private GridPane GridCheque;
@FXML private GridPane GridCarte;
@FXML private TextField MontantEspace;
@FXML private TextField MontantCheque;
@FXML private TextField MontantChequeBanque;
@FXML private TextField MontantChequeNumero;
@FXML private DatePicker DatePickerCheque;
@FXML private TextField MontantCarte;
@FXML private TextField MontantCarteBanque;
@FXML private TextField MontantCarteNumero;
@FXML private TabPane TabPanePayement;
@FXML private Tab TabPayerTraite;
@FXML private Tab TabDetailPaiement;
@FXML private Text TextCtlEspace;
@FXML private Text TextCtlBanque;
@FXML private Text TextCtlCarte;
@FXML private Text TextCtlDateCheque;
@FXML private Text TextCtlNumCheque;
@FXML private Text TextCtlNameBanque;
@FXML private Text TextCtlNumCarte;
@FXML private Text TextCtlNameCarteBq;
@FXML private Button ButtonPayerTraite;
private int TypePayement ; // 0=>Cheque | 1=>Espace | 2=>Carte
public String IdTraiteClt;
private float OldMontantPayer;
private float MontantTraite;
public Service<Void> ThreadIdTraiteClt;
ResultSet Resultat ;
contro clt = new contro();
public Node GetNodeTraiteCltDetail() {
Node nodeFxml = null;
try {
FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("/Views/TraiteClt/TraiteCltDetail.fxml"));
fxmlLoader.setController(this);
nodeFxml = (Node)fxmlLoader.load();
} catch (IOException ex) {
Logger.getLogger(TraiteCltDetailController.class.getName()).log(Level.SEVERE, null, ex);
}
return nodeFxml;
}
public void SetSelectPayement()
{
RadioEspace.setOnMouseClicked(new EventHandler<MouseEvent>() {
public void handle(MouseEvent me) {
GridEspace.setVisible(true);
GridCheque.setVisible(false);
GridCarte.setVisible(false);
TypePayement = 0;
}
});
RadioCheque.setOnMouseClicked(new EventHandler<MouseEvent>() {
public void handle(MouseEvent me) {
GridCheque.setVisible(true);
GridEspace.setVisible(false);
GridCarte.setVisible(false);
TypePayement = 1;
}
});
RadioCarte.setOnMouseClicked(new EventHandler<MouseEvent>() {
public void handle(MouseEvent me) {
GridCarte.setVisible(true);
GridEspace.setVisible(false);
GridCheque.setVisible(false);
TypePayement = 2;
}
});
}
public void SetTraiteCltDetail(String id_traite) {
IdTraiteClt = id_traite;
TabColTypePaiement.setStyle( "-fx-alignment: CENTER;");TabColTypePaiement.getStyleClass().add("Center");
TabColTypePaiement.setCellValueFactory(new PropertyValueFactory<TraiteCltPaiementListe, String>("TypePaiement"));
TabColMontantPaiement.setStyle( "-fx-alignment: CENTER;");TabColMontantPaiement.getStyleClass().add("Center");
TabColMontantPaiement.setCellValueFactory(new PropertyValueFactory<TraiteCltPaiementListe, String>("MontantPaiement"));
TabColDatePaiement.setStyle( "-fx-alignment: CENTER;");TabColDatePaiement.getStyleClass().add("Center");
TabColDatePaiement.setCellValueFactory(new PropertyValueFactory<TraiteCltPaiementListe, String>("DatePaiement"));
TabColHeurPaiement.setStyle( "-fx-alignment: CENTER;");TabColHeurPaiement.getStyleClass().add("Center");
TabColHeurPaiement.setCellValueFactory(new PropertyValueFactory<TraiteCltPaiementListe, String>("HeurPaiement"));
TabColBanquePaiement.setStyle( "-fx-alignment: CENTER;");TabColBanquePaiement.getStyleClass().add("Center");
TabColBanquePaiement.setCellValueFactory(new PropertyValueFactory<TraiteCltPaiementListe, String>("BanquePaiement"));
TabColNumeroPaiement.setStyle( "-fx-alignment: CENTER;");TabColNumeroPaiement.getStyleClass().add("Center");
TabColNumeroPaiement.setCellValueFactory(new PropertyValueFactory<TraiteCltPaiementListe, String>("NumeroPaiement"));
startTask();
ButtonPayerTraiteAction();
SetSelectPayement();
}
public void startTask()
{
ThreadIdTraiteClt = new Service<Void>(){
@Override
protected Task<Void> createTask(){
return new Task<Void>(){
@Override
protected Void call() throws Exception{
Resultat = new TraiteCltGestionDB().GetDetailTraite(IdTraiteClt);
return null;
}
};
}
};
ThreadIdTraiteClt.setOnSucceeded(new EventHandler<WorkerStateEvent>(){
@Override
public void handle(WorkerStateEvent event){
try {
TextIdTraite.setText(Resultat.getString("id_traite"));
TextDate.setText(Resultat.getString("date_traite_format"));
TextCodeFact.setText(Resultat.getString("id_factureclt"));
TextTotalFact.setText(Adaptateur.StringToStringEspaceCurrency(Resultat.getString("net_a_payer")));
if(Resultat.getInt("typeclt") == 0){
TextTypeClt.setText("Personne");
TextIdClient.setText(Resultat.getString("codeclient"));
TextNomClt.setText(Resultat.getString("nom"));
TextPrenomClt.setText(Resultat.getString("prenom"));
}else if(Resultat.getInt("typeclt") == 1){
TextTypeClt.setText("Entreprise");
TextIdClient.setText(Resultat.getString("idcliententreprise"));
TextNomClt.setText(Resultat.getString("nomentrepise"));
TextPrenomClt.setText(Resultat.getString("matricule_fiscale"));
TxtPrenomMatricule.setText("Matricule:");
}
MontantTraite = Resultat.getFloat("montant_traite");
OldMontantPayer = Resultat.getFloat("montant_payer");
float RestMontantPayer = MontantTraite - OldMontantPayer;
String StrRestMontantPayer = Adaptateur.ArrondFloatToString(RestMontantPayer);
MontantCheque.setText(StrRestMontantPayer);
MontantCarte.setText(StrRestMontantPayer);
MontantEspace.setText(StrRestMontantPayer);
DatePickerCheque.setValue(LocalDate.now());
TextMontant.setText(Adaptateur.StringToStringEspaceCurrency(Resultat.getString("montant_traite")));
String etat = Resultat.getString("etat");
if(etat.equals("1")){
TextEtat.setText("Payer"); TextEtat.setFill(Color.web("#428BCA"));
}else if(etat.equals("2")){
TextEtat.setText("En Cours"); TextEtat.setFill(Color.web("#000000"));
}else if(etat.equals("3")){
TextEtat.setText("En Retart"); TextEtat.setFill(Color.RED);
}
TraiteCltDB TraiteDB= new TraiteCltDB();
ObservableList<TraiteCltPaiementListe> PaiementListe = TraiteDB.getListPaiementTraiteClt(IdTraiteClt);
TableViewPaiement.setItems(PaiementListe);
// terminer le payement
if(OldMontantPayer>= MontantTraite){
TabPanePayement.getSelectionModel().select(TabDetailPaiement);
TabPayerTraite.setDisable(true);
TabPayerTraite.setText("");
TabDetailPaiement.setDisable(false);
TabDetailPaiement.setText("Detail de paiement");
// (données un montant mais n'est pas terminer le payement
}else if( (OldMontantPayer>0) && (OldMontantPayer<MontantTraite) ){
TabPayerTraite.setDisable(false);
TabPayerTraite.setText("Payer Traite");
TabDetailPaiement.setDisable(false);
TabDetailPaiement.setText("Detail de paiement");
// n'est pas payer
}else if(OldMontantPayer == 0){
TabPanePayement.getSelectionModel().select(TabPayerTraite);
TabDetailPaiement.setDisable(true);
TabDetailPaiement.setText("");
}
} catch (SQLException ex) {
Logger.getLogger(TraiteCltDetailController.class.getName()).log(Level.SEVERE, null, ex);
}
PaneDetailTraite.setVisible(true);
AnchorPaneLoadingTraite.setVisible(false);
}
});
ThreadIdTraiteClt.start();
/*PaneDetailTraite.setVisible(false);
// Create a Runnable
Runnable task = new Runnable(){
public void run(){
Platform.runLater(new Runnable(){
@Override
public void run(){
SetTextData();
StackProgress.setVisible(false);
PaneDetailTraite.setVisible(true);
}
});
}
};
// Run the task in a background thread
Thread backgroundThread = new Thread(task);
// Terminate the running thread if the application exits
backgroundThread.setDaemon(true);
// Start the thread
backgroundThread.start();*/
}
public void ButtonPayerTraiteAction(){
ButtonPayerTraite.setOnAction(new EventHandler<ActionEvent>(){ //Action when the button is pressed
@Override
public void handle(ActionEvent t) {
TraiteCltDB TraiteDB= new TraiteCltDB();
//Espace
if(TypePayement == 0){
String NewMontant = MontantEspace.getText();
if(ControleMontantPaiement(MontantEspace, TextCtlEspace)){
String IdPayementTraite = TraiteDB.SetPayerTraiteEnEspaceDB(IdTraiteClt, Adaptateur.StringToFloat(NewMontant), OldMontantPayer);
startTask();
}
//Banque
}else if(TypePayement == 1){
String NewMontant = MontantCheque.getText();
String NameBanque = MontantChequeBanque.getText();
String NumeroCheque = MontantChequeNumero.getText();
//
if(ControleMontantPaiement(MontantCheque, TextCtlBanque) &&
clt.ContrNull(MontantChequeBanque, TextCtlNameBanque) &&
clt.ContrNumeriqueNotnull(MontantChequeNumero, TextCtlNumCheque) &&
clt.ContrNullDatePicker(DatePickerCheque , TextCtlDateCheque)){
String DateCheque = DatePickerCheque.getValue().toString();
String IdPayementTraite = TraiteDB.SetPayerTraiteEnChequeDB(IdTraiteClt, Adaptateur.StringToFloat(NewMontant), OldMontantPayer, NameBanque, NumeroCheque, DateCheque);
startTask();
}
//Carte Bancaire
}else if(TypePayement == 2){
String NewMontant = MontantCarte.getText();
String NameBanque = MontantCarteBanque.getText();
String NumeroCarte = MontantCarteNumero.getText();
if(ControleMontantPaiement(MontantCarte, TextCtlCarte)){
String IdPayementTraite = TraiteDB.SetPayerTraiteEnCarteDB(IdTraiteClt, Adaptateur.StringToFloat(NewMontant), OldMontantPayer, NameBanque, NumeroCarte);
startTask();
}
}
}
});
}
public boolean ControleMontantPaiement(TextField TextFieldMontant, Text TextClt){
String NewMontant = MontantEspace.getText();
boolean ResultClt = false;
if(clt.isFloatNotnull(NewMontant)== false){
float FolatNewMontant = Adaptateur.StringToFloat(NewMontant);
if( (FolatNewMontant>0) && (FolatNewMontant<= (MontantTraite - OldMontantPayer)) ){
TextFieldMontant.setStyle("-fx-border-color:transparent;");
ResultClt = true;
}else{
TextFieldMontant.setStyle("-fx-border-color:#f20606;");
TextClt.setText(" champ doit être entre 1 à "+(MontantTraite - OldMontantPayer));
}
}else{
TextFieldMontant.setStyle("-fx-border-color:#f20606;");
TextClt.setText(" champ doit être réel");
}
return ResultClt;
}
}
@@ -0,0 +1,430 @@
package Controllers.TraiteClt;
import Models.TraiteClt.TraiteCltGestionDB;
import Models.TraiteClt.TraiteCltGestionListe;
import com.gluonhq.charm.glisten.control.ProgressBar;
import java.io.IOException;
import java.net.URL;
import java.util.ResourceBundle;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.concurrent.Service;
import javafx.concurrent.Task;
import javafx.concurrent.WorkerStateEvent;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.fxml.Initializable;
import javafx.scene.Group;
import javafx.scene.Node;
import javafx.scene.control.Button;
import javafx.scene.control.ChoiceBox;
import javafx.scene.control.DatePicker;
import javafx.scene.control.Label;
import javafx.scene.control.TableCell;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.TextField;
import javafx.scene.control.cell.PropertyValueFactory;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.input.KeyCode;
import javafx.scene.input.KeyEvent;
import javafx.scene.input.MouseEvent;
import javafx.scene.layout.AnchorPane;
import javafx.scene.paint.Color;
import javafx.scene.text.Font;
import javafx.scene.text.FontWeight;
import javafx.scene.text.Text;
import javafx.util.Callback;
/**
* FXML Controller class
* @author Maher Ben Tili
*/
public class TraiteCltGestionController implements Initializable {
@FXML public AnchorPane PaneTraiteCltGestion ;
@FXML private ProgressBar ProgressBarTraiteClt;
@FXML private Button ButtonSearchTraiteClt ;
@FXML public TextField TextFieldIdTraite ;
@FXML public TextField TextFieldCodeFacture ;
@FXML public TextField TextFieldCodeClt ;
@FXML public TextField TextFieldNomCompet ;
@FXML public TextField TextFieldCinClt ;
@FXML public DatePicker PickerDateTraite;
@FXML public TableView<TraiteCltGestionListe> TableViewTraiteCltGestion;
@FXML public TableColumn<TraiteCltGestionListe ,String> TabColNumTraite;
@FXML public TableColumn<TraiteCltGestionListe ,String> TabColEtat;
@FXML public TableColumn<TraiteCltGestionListe ,String> TabColFacture;
@FXML public TableColumn<TraiteCltGestionListe ,String> TabColCodeClt;
@FXML public TableColumn<TraiteCltGestionListe ,String> TabColTypeClient;
@FXML public TableColumn<TraiteCltGestionListe ,String> TabColNomPrenom;
@FXML public TableColumn<TraiteCltGestionListe ,String> TabColDateTraite;
@FXML public TableColumn<TraiteCltGestionListe ,String> TabColDatePayer; //la date de payer par le client
@FXML public TableColumn<TraiteCltGestionListe ,Boolean>TabColDetail;
@FXML private Text ActuellePage ;
@FXML private Text NbrPage ;
@FXML private Group nextgroupe ;
@FXML private Group avancergroupe ;
@FXML private Group lastgroupe ;
@FXML private Group retourgroupe ;
@FXML private Label LabelCount;
@FXML private ChoiceBox NbrLigne ;
ObservableList cursors = FXCollections.observableArrayList("10","15","20");
private Integer nbrligne = 10 ;
private Integer totalcount = 0 ;
private Integer nbrpage = 0;
private Integer actuellepage = 1;
Integer position = 0;
private Service<Void> ThreadSearchTraiteClt;
/**
* Initializes the controller class.
*/
@Override
public void initialize(URL url, ResourceBundle rb) {
NbrLigne.setItems(cursors);
NbrLigne.getSelectionModel().selectFirst();
TabColNumTraite.setCellValueFactory(new PropertyValueFactory<TraiteCltGestionListe, String>("NumTraite"));
TabColFacture.setStyle( "-fx-alignment: CENTER;");TabColFacture.getStyleClass().add("Center");
TabColFacture.setCellValueFactory(new PropertyValueFactory<TraiteCltGestionListe, String>("Facture"));
TabColCodeClt.setStyle( "-fx-alignment: CENTER;");TabColCodeClt.getStyleClass().add("Center");
TabColCodeClt.setCellValueFactory(new PropertyValueFactory<TraiteCltGestionListe, String>("CodeClt"));
TabColTypeClient.setStyle( "-fx-alignment: CENTER;");TabColTypeClient.getStyleClass().add("Center");
TabColTypeClient.setCellValueFactory(new PropertyValueFactory<TraiteCltGestionListe, String>("TypeClient"));
TabColNomPrenom.setCellValueFactory(new PropertyValueFactory<TraiteCltGestionListe, String>("NomPrenom"));
TabColDateTraite.setStyle( "-fx-alignment: CENTER;");TabColDateTraite.getStyleClass().add("Center");
TabColDateTraite.setCellValueFactory(new PropertyValueFactory<TraiteCltGestionListe, String>("DateTraite"));
TabColDatePayer.setStyle( "-fx-alignment: CENTER;");TabColDatePayer.getStyleClass().add("Center");
TabColDatePayer.setCellValueFactory(new PropertyValueFactory<TraiteCltGestionListe, String>("DatePayer"));
TabColEtat.setStyle( "-fx-alignment: CENTER;");TabColEtat.getStyleClass().add("Center");
TabColEtat.setCellValueFactory(new PropertyValueFactory<TraiteCltGestionListe, String>("Etat"));
TabColEtat.setCellFactory(new Callback<TableColumn<TraiteCltGestionListe,String>,TableCell<TraiteCltGestionListe,String>>(){
@Override
public TableCell<TraiteCltGestionListe, String> call(TableColumn<TraiteCltGestionListe, String> param) {
TableCell<TraiteCltGestionListe, String> cell = new TableCell<TraiteCltGestionListe, String>(){
@Override
public void updateItem(String item, boolean empty) {
//1 Payer 2 En Cours 3 En Retart
if(item!=null && item.equals("2")){
Text text = new Text("En Cours");
text.setFill(Color.web("#000000"));
text.setFont(Font.font("Arial", FontWeight.BOLD, 14));
setGraphic(text);
}else if(item!=null && item.equals("1")){
Text text = new Text("Payer");
text.setFill(Color.web("#428BCA"));
text.setFont(Font.font("Arial", FontWeight.BOLD, 14));
setGraphic(text);
}else if(item!=null && item.equals("3")){
Text text = new Text("En Retart");
text.setFill(Color.RED);
text.setFont(Font.font("Arial", FontWeight.BOLD, 14));
setGraphic(text);
}else{
setGraphic(null);
}
}
};
return cell;
}
});
TabColDetail.setStyle( "-fx-alignment: CENTER;");TabColDetail.getStyleClass().add("Center");
TabColDetail.setCellFactory(new Callback<TableColumn<TraiteCltGestionListe, Boolean>, TableCell<TraiteCltGestionListe, Boolean>>() {
@Override
public TableCell<TraiteCltGestionListe, Boolean> call(TableColumn<TraiteCltGestionListe, Boolean> personBooleanTableColumn) {
return new ButtonCell();
}
});
ButtonSearchTraiteClt.setOnMouseClicked(new EventHandler<MouseEvent>() {
public void handle(MouseEvent me) {
SearchTraiteClt();
}
});
PaneTraiteCltGestion.setOnKeyPressed(new EventHandler<KeyEvent>() {
@Override
public void handle(KeyEvent ke) {
if (ke.getCode().equals(KeyCode.ENTER)) {
SearchTraiteClt();
}
}
});
GestionSearchTraiteClt();
}
private class ButtonCell extends TableCell<TraiteCltGestionListe, Boolean> {
final Button cellButton = new Button();
ButtonCell(){
cellButton.getStyleClass().add("btn-icon-primary");
Image coffeeImage = new Image(getClass().getResourceAsStream("/Public/icon/iconedit.png"));
ImageView buttonGraphic = new ImageView();
buttonGraphic.setImage(coffeeImage);
cellButton.setGraphic(buttonGraphic);
cellButton.setOnAction(new EventHandler<ActionEvent>(){ //Action when the button is pressed
@Override
public void handle(ActionEvent t) {
TraiteCltGestionListe current = (TraiteCltGestionListe) ButtonCell.this.getTableView().getItems().get(ButtonCell.this.getIndex());
String IdTraite = current.getNumTraite();
TraiteCltDetailController TraiteCltDetail = new TraiteCltDetailController();
PaneTraiteCltGestion.getChildren().add(TraiteCltDetail.GetNodeTraiteCltDetail());
TraiteCltDetail.SetTraiteCltDetail(IdTraite);
}
});
}
//Display button if the row is not empty
@Override
protected void updateItem(Boolean t, boolean empty) {
if(!empty){
setGraphic(cellButton);
} else {
setGraphic(null);
}
}
}
@FXML
private void TraiteCltRetardButtonAction(ActionEvent event) throws IOException {
PaneTraiteCltGestion.getChildren().clear();
PaneTraiteCltGestion.getChildren().add((Node) FXMLLoader.load(getClass().getResource("/Views/TraiteClt/TraiteCltRetard.fxml")));
}
/****************************************************************************** *
* *
* Methode last Next TableView *
* * *
******************************************************************************/
private void SearchTraiteClt()
{
ProgressBarTraiteClt.setVisible(true);
ButtonSearchTraiteClt.setDisable(true);
ThreadSearchTraiteClt = new Service<Void>(){
@Override
protected Task<Void> createTask(){
return new Task<Void>(){
@Override
protected Void call() throws Exception{
position = 0;
actuellepage = 1;
String DateTraite = "";
if(PickerDateTraite.getValue() != null){
DateTraite = PickerDateTraite.getValue().toString();
}
ObservableList<TraiteCltGestionListe> ListTraiteClts = new TraiteCltGestionDB().SearchTraiteClt(
position,
nbrligne,
TextFieldIdTraite.getText(),
TextFieldCodeFacture.getText(),
DateTraite,
TextFieldCodeClt.getText(),
TextFieldCinClt.getText(),
TextFieldNomCompet.getText());
TableViewTraiteCltGestion.setItems(ListTraiteClts);
totalcount = new TraiteCltGestionDB().nbrSearchTraiteClt(TextFieldIdTraite.getText(),
TextFieldCodeFacture.getText(),
DateTraite,
TextFieldCodeClt.getText(),
TextFieldCinClt.getText(),
TextFieldNomCompet.getText());
if(totalcount > 0){
ActuellePage.setText("1");
}else{
ActuellePage.setText("0");
}
if(totalcount % nbrligne==0){
nbrpage = totalcount / nbrligne ;
}
else{
nbrpage = (totalcount / nbrligne) + 1 ;
}
NbrPage.setText(Integer.toString(nbrpage));
return null;
}
};
}
};
ThreadSearchTraiteClt.setOnSucceeded(new EventHandler<WorkerStateEvent>(){
@Override
public void handle(WorkerStateEvent event){
ProgressBarTraiteClt.setVisible(false);
ButtonSearchTraiteClt.setDisable(false);
LabelCount.setText(totalcount.toString());
}
});
ThreadSearchTraiteClt.start();
}
private void NextLastSearchTraiteClt(Integer ParmPosition, Integer ParamNbrligne)
{
ProgressBarTraiteClt.setVisible(true);
ButtonSearchTraiteClt.setDisable(true);
ThreadSearchTraiteClt = new Service<Void>(){
@Override
protected Task<Void> createTask(){
return new Task<Void>(){
@Override
protected Void call() throws Exception{
String DateTraite = "";
if(PickerDateTraite.getValue() != null){
DateTraite = PickerDateTraite.getValue().toString();
}
ObservableList<TraiteCltGestionListe> ListTraiteClts = new TraiteCltGestionDB().SearchTraiteClt(
ParmPosition,
ParamNbrligne,
TextFieldIdTraite.getText(),
TextFieldCodeFacture.getText(),
DateTraite,
TextFieldCodeClt.getText(),
TextFieldCinClt.getText(),
TextFieldNomCompet.getText());
TableViewTraiteCltGestion.setItems(ListTraiteClts);
return null;
}
};
}
};
ThreadSearchTraiteClt.setOnSucceeded(new EventHandler<WorkerStateEvent>(){
@Override
public void handle(WorkerStateEvent event){
ProgressBarTraiteClt.setVisible(false);
ButtonSearchTraiteClt.setDisable(false);
}
});
ThreadSearchTraiteClt.start();
}
private void GestionSearchTraiteClt()
{
NbrLigne.getSelectionModel().selectedIndexProperty().addListener(new ChangeListener<Number>() {
public void changed(ObservableValue ov, Number value, Number new_value) {
nbrligne= Integer.parseInt((String) cursors.get(new_value.intValue()));
if(totalcount % nbrligne==0){ nbrpage = totalcount / nbrligne ;}
else{ nbrpage = (totalcount / nbrligne) + 1 ; }
NbrPage.setText(Integer.toString(nbrpage));
position=0;
ActuellePage.setText("1");
actuellepage=1;
NextLastSearchTraiteClt(position, nbrligne);
}
});
if(totalcount % nbrligne==0){ nbrpage = totalcount / nbrligne ;}
else{ nbrpage = (totalcount / nbrligne) + 1 ; }
NbrPage.setText(Integer.toString(nbrpage));
//next page
nextgroupe.setOnMousePressed(new EventHandler<MouseEvent>(){
@Override
public void handle(MouseEvent event) {
if(actuellepage<nbrpage)
{
position=position+nbrligne;
NextLastSearchTraiteClt(position, nbrligne);
actuellepage=actuellepage+1 ;
ActuellePage.setText(Integer.toString(actuellepage));
}
}
});
//last page
lastgroupe.setOnMousePressed(new EventHandler<MouseEvent>(){
@Override
public void handle(MouseEvent event) {
if(actuellepage>1)
{
position=position-nbrligne;
NextLastSearchTraiteClt(position, nbrligne);
actuellepage=actuellepage-1 ;
ActuellePage.setText(Integer.toString(actuellepage));
}
}
});
//next page avec pas de 5
avancergroupe.setOnMousePressed(new EventHandler<MouseEvent>(){
@Override
public void handle(MouseEvent event) {
if(actuellepage+3<nbrpage)
{
position=(position+4)+nbrligne;
NextLastSearchTraiteClt(position, nbrligne);
actuellepage=actuellepage+3 ;
ActuellePage.setText(Integer.toString(actuellepage));
}
}
});
//last page avec un pas de -5
retourgroupe.setOnMousePressed(new EventHandler<MouseEvent>(){
@Override
public void handle(MouseEvent event) {
if(actuellepage-3>1){
position=(position-4)-nbrligne;
NextLastSearchTraiteClt(position, nbrligne);
actuellepage=actuellepage-3 ;
ActuellePage.setText(Integer.toString(actuellepage));
}
}
});
}
}
@@ -0,0 +1,178 @@
/*
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
* Click nbfs://nbhost/SystemFileSystem/Templates/javafx/FXMLController.java to edit this template
*/
package Controllers.TraiteClt;
import Controllers.Traitement.ParametreSystem;
import java.net.URL;
import java.util.ResourceBundle;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.text.Text;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.xml.sax.SAXException;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import java.io.File;
import java.io.IOException;
import javafx.scene.layout.AnchorPane;
import javafx.scene.text.TextFlow;
import javax.xml.XMLConstants;
/**
* FXML Controller class
*
* @author Administrateur
*/
public class TraiteCltPrintController implements Initializable {
@FXML private AnchorPane AnchorPaneTraiteClt;
@FXML private Text TextCompanyName;
@FXML private Text TextCompanyPlace;
@FXML private Text TextCompanySIREN;
@FXML private Text TextCompanyAddress;
@FXML private TextFlow TextFlowCompanyAddress;
@FXML private Text TextNomCompletClt;
@FXML private Text TextCIN;
@FXML private Text TextBank;
@FXML private TextFlow TextFlowBank;
@FXML private Text TextAmountLetter;
@FXML private Text TextAmountFigures;
@FXML private Text TextDateDeadline;
/**
* Initializes the controller class.
*/
@Override
public void initialize(URL url, ResourceBundle rb) {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
try {
// optional, but recommended
// process XML securely, avoid attacks like XML External Entities (XXE)
dbf.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true);
// parse XML file
DocumentBuilder db = dbf.newDocumentBuilder();
//C:\Users\Administrateur\Documents\NetBeansProjects\PowerERP\conf\print.xml
Document doc = db.parse(new File("./conf/print.xml"));
doc.getDocumentElement().normalize();
Element elementTraiteClt = (Element) doc.getElementsByTagName("TraiteClt").item(0);
//AnchorPane
Element elementAnchorPane = (Element)elementTraiteClt.getElementsByTagName("AnchorPaneTraiteClt").item(0);
AnchorPaneTraiteClt.setPrefHeight(Double.parseDouble(elementAnchorPane.getElementsByTagName("prefHeight").item(0).getTextContent()));
AnchorPaneTraiteClt.setPrefWidth(Double.parseDouble(elementAnchorPane.getElementsByTagName("prefWidth").item(0).getTextContent()));
//CompanyName
Element elementCompanyName = (Element)elementTraiteClt.getElementsByTagName("CompanyName").item(0);
TextCompanyName.setVisible(Boolean.valueOf(elementCompanyName.getElementsByTagName("Visible").item(0).getTextContent()));
TextCompanyName.setLayoutX(Double.parseDouble(elementCompanyName.getElementsByTagName("LayoutX").item(0).getTextContent()));
TextCompanyName.setLayoutY(Double.parseDouble(elementCompanyName.getElementsByTagName("LayoutY").item(0).getTextContent()));
//CompanyPlace
Element elementCompanyPlace = (Element)elementTraiteClt.getElementsByTagName("CompanyPlace").item(0);
TextCompanyPlace.setVisible(Boolean.valueOf(elementCompanyPlace.getElementsByTagName("Visible").item(0).getTextContent()));
TextCompanyPlace.setLayoutX(Double.parseDouble(elementCompanyPlace.getElementsByTagName("LayoutX").item(0).getTextContent()));
TextCompanyPlace.setLayoutY(Double.parseDouble(elementCompanyPlace.getElementsByTagName("LayoutY").item(0).getTextContent()));
//CompanyAddress
Element elementCompanyAddress = (Element)elementTraiteClt.getElementsByTagName("CompanyAddress").item(0);
TextFlowCompanyAddress.setVisible(Boolean.valueOf(elementCompanyAddress.getElementsByTagName("Visible").item(0).getTextContent()));
TextFlowCompanyAddress.setLayoutX(Double.parseDouble(elementCompanyAddress.getElementsByTagName("LayoutX").item(0).getTextContent()));
TextFlowCompanyAddress.setLayoutY(Double.parseDouble(elementCompanyAddress.getElementsByTagName("LayoutY").item(0).getTextContent()));
TextFlowCompanyAddress.setPrefHeight(Double.parseDouble(elementCompanyAddress.getElementsByTagName("prefHeight").item(0).getTextContent()));
TextFlowCompanyAddress.setPrefWidth(Double.parseDouble(elementCompanyAddress.getElementsByTagName("prefWidth").item(0).getTextContent()));
//CompanySIREN
Element elementCompanySIREN = (Element)elementTraiteClt.getElementsByTagName("CompanySIREN").item(0);
TextCompanySIREN.setVisible(Boolean.valueOf(elementCompanySIREN.getElementsByTagName("Visible").item(0).getTextContent()));
TextCompanySIREN.setLayoutX(Double.parseDouble(elementCompanySIREN.getElementsByTagName("LayoutX").item(0).getTextContent()));
TextCompanySIREN.setLayoutY(Double.parseDouble(elementCompanySIREN.getElementsByTagName("LayoutY").item(0).getTextContent()));
//NomCompletClt
Element elementNomCompletClt = (Element)elementTraiteClt.getElementsByTagName("NomCompletClt").item(0);
TextNomCompletClt.setVisible(Boolean.valueOf(elementNomCompletClt.getElementsByTagName("Visible").item(0).getTextContent()));
TextNomCompletClt.setLayoutX(Double.parseDouble(elementNomCompletClt.getElementsByTagName("LayoutX").item(0).getTextContent()));
TextNomCompletClt.setLayoutY(Double.parseDouble(elementNomCompletClt.getElementsByTagName("LayoutY").item(0).getTextContent()));
//CIN
Element elementCIN = (Element)elementTraiteClt.getElementsByTagName("CIN").item(0);
TextCIN.setVisible(Boolean.valueOf(elementCIN.getElementsByTagName("Visible").item(0).getTextContent()));
TextCIN.setLayoutX(Double.parseDouble(elementCIN.getElementsByTagName("LayoutX").item(0).getTextContent()));
TextCIN.setLayoutY(Double.parseDouble(elementCIN.getElementsByTagName("LayoutY").item(0).getTextContent()));
//Bank
Element elementBank = (Element)elementTraiteClt.getElementsByTagName("Bank").item(0);
TextFlowBank.setVisible(Boolean.valueOf(elementBank.getElementsByTagName("Visible").item(0).getTextContent()));
TextFlowBank.setLayoutX(Double.parseDouble(elementBank.getElementsByTagName("LayoutX").item(0).getTextContent()));
TextFlowBank.setLayoutY(Double.parseDouble(elementBank.getElementsByTagName("LayoutY").item(0).getTextContent()));
TextFlowBank.setPrefHeight(Double.parseDouble(elementBank.getElementsByTagName("prefHeight").item(0).getTextContent()));
TextFlowBank.prefWidth(Double.parseDouble(elementBank.getElementsByTagName("prefWidth").item(0).getTextContent()));
//AmountLetter
Element elementAmountLetter = (Element)elementTraiteClt.getElementsByTagName("AmountLetter").item(0);
TextAmountLetter.setVisible(Boolean.valueOf(elementAmountLetter.getElementsByTagName("Visible").item(0).getTextContent()));
TextAmountLetter.setLayoutX(Double.parseDouble(elementAmountLetter.getElementsByTagName("LayoutX").item(0).getTextContent()));
TextAmountLetter.setLayoutY(Double.parseDouble(elementAmountLetter.getElementsByTagName("LayoutY").item(0).getTextContent()));
//AmountFigures
Element elementAmountFigures = (Element)elementTraiteClt.getElementsByTagName("AmountFigures").item(0);
TextAmountFigures.setVisible(Boolean.valueOf(elementAmountFigures.getElementsByTagName("Visible").item(0).getTextContent()));
TextAmountFigures.setLayoutX(Double.parseDouble(elementAmountFigures.getElementsByTagName("LayoutX").item(0).getTextContent()));
TextAmountFigures.setLayoutY(Double.parseDouble(elementAmountFigures.getElementsByTagName("LayoutY").item(0).getTextContent()));
//DateDeadline
Element elementDateDeadline = (Element)elementTraiteClt.getElementsByTagName("DateDeadline").item(0);
TextDateDeadline.setVisible(Boolean.valueOf(elementDateDeadline.getElementsByTagName("Visible").item(0).getTextContent()));
TextDateDeadline.setLayoutX(Double.parseDouble(elementDateDeadline.getElementsByTagName("LayoutX").item(0).getTextContent()));
TextDateDeadline.setLayoutY(Double.parseDouble(elementDateDeadline.getElementsByTagName("LayoutY").item(0).getTextContent()));
} catch (ParserConfigurationException | SAXException | IOException e) {
e.printStackTrace();
}
TextCompanyName.setText(ParametreSystem.CompanyName);
TextCompanyPlace.setText(ParametreSystem.CompanyPlace);
TextCompanySIREN.setText(ParametreSystem.CompanySIREN);
TextCompanyAddress.setText(ParametreSystem.CompanyAddress);
TextBank.setText(ParametreSystem.Bank);
}
public void SetData(String AmountLetter,
String AmountFigures,
String DateDeadline,
String NomCompletClt,
String CIN)
{
TextNomCompletClt.setText(NomCompletClt);
TextCIN.setText(CIN);
TextAmountLetter.setText(AmountLetter);
TextAmountFigures.setText(AmountFigures);
TextDateDeadline.setText(DateDeadline);
}
}
@@ -0,0 +1,73 @@
package Controllers.TraiteClt;
import Models.Caisse.CaisseEntreListe;
import Models.TraiteClt.TraiteCltGestionListe;
import java.net.URL;
import java.util.ResourceBundle;
import javafx.collections.ObservableList;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.cell.PropertyValueFactory;
import javafx.scene.text.Text;
/**
* FXML Controller class
* @author Maher Ben Tili
*/
public class TraiteCltPrintRetardController implements Initializable {
@FXML private Text TextNbrTraiteCltRetard ;
@FXML private Text TextPageTraiteCltRetard ;
@FXML public TableView<TraiteCltGestionListe> TableViewTraiteCltRetard;
@FXML public TableColumn<TraiteCltGestionListe ,String> TabColNumTraite;
@FXML public TableColumn<TraiteCltGestionListe ,String> TabColDateTraite;
@FXML public TableColumn<TraiteCltGestionListe ,String> TabColMontant;
@FXML public TableColumn<TraiteCltGestionListe ,String> TabColFacture;
@FXML public TableColumn<TraiteCltGestionListe ,String> TabColCodeClt;
@FXML public TableColumn<TraiteCltGestionListe ,String> TabColLocal;
@FXML public TableColumn<TraiteCltGestionListe ,String> TabColNomPrenom;
/**
* Initializes the controller class.
*/
@Override
public void initialize(URL url, ResourceBundle rb) {
TabColNumTraite.setStyle( "-fx-alignment: CENTER;");TabColNumTraite.getStyleClass().add("Center");
TabColNumTraite.setCellValueFactory(new PropertyValueFactory<TraiteCltGestionListe, String>("NumTraite"));
TabColDateTraite.setStyle( "-fx-alignment: CENTER;");TabColDateTraite.getStyleClass().add("Center");
TabColDateTraite.setCellValueFactory(new PropertyValueFactory<TraiteCltGestionListe, String>("DateTraite"));
TabColMontant.setStyle( "-fx-alignment: CENTER;");TabColMontant.getStyleClass().add("Center");
TabColMontant.setCellValueFactory(new PropertyValueFactory<TraiteCltGestionListe, String>("Montant"));
TabColFacture.setStyle( "-fx-alignment: CENTER;");TabColFacture.getStyleClass().add("Center");
TabColFacture.setCellValueFactory(new PropertyValueFactory<TraiteCltGestionListe, String>("Facture"));
TabColCodeClt.setStyle( "-fx-alignment: CENTER;");TabColCodeClt.getStyleClass().add("Center");
TabColCodeClt.setCellValueFactory(new PropertyValueFactory<TraiteCltGestionListe, String>("CodeClt"));
TabColLocal.setStyle( "-fx-alignment: CENTER;");TabColLocal.getStyleClass().add("Center");
TabColLocal.setCellValueFactory(new PropertyValueFactory<TraiteCltGestionListe, String>("TypeClient"));
TabColNomPrenom.setStyle( "-fx-alignment: CENTER;");TabColNomPrenom.getStyleClass().add("Center");
TabColNomPrenom.setCellValueFactory(new PropertyValueFactory<TraiteCltGestionListe, String>("NomPrenom"));
}
public void setTraiteCltPrintRetard(
String NbrTraiteCltRetard,
String PageTraiteCltRetard,
ObservableList<TraiteCltGestionListe> obsListTraiteCltGestion)
{
TextNbrTraiteCltRetard.setText(NbrTraiteCltRetard);
TextPageTraiteCltRetard.setText(PageTraiteCltRetard);
TableViewTraiteCltRetard.setItems(obsListTraiteCltGestion);
}
}
@@ -0,0 +1,452 @@
package Controllers.TraiteClt;
import Controllers.Traitement.Adaptateur;
import Models.Stock.StockDB;
import Models.TraiteClt.TraiteCltDB;
import Models.TraiteClt.TraiteCltGestionListe;
import com.gluonhq.charm.glisten.control.ProgressBar;
import java.io.IOException;
import java.net.URL;
import java.util.ArrayList;
import java.util.ResourceBundle;
import javafx.application.Platform;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.concurrent.Service;
import javafx.concurrent.Task;
import javafx.concurrent.WorkerStateEvent;
import javafx.event.EventHandler;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.fxml.Initializable;
import javafx.print.PageLayout;
import javafx.print.PageOrientation;
import javafx.print.PageRange;
import javafx.print.Paper;
import javafx.print.Printer;
import javafx.print.PrinterJob;
import javafx.scene.Group;
import javafx.scene.Node;
import javafx.scene.control.Button;
import javafx.scene.control.ChoiceBox;
import javafx.scene.control.DatePicker;
import javafx.scene.control.Label;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.TextField;
import javafx.scene.control.cell.PropertyValueFactory;
import javafx.scene.input.KeyCode;
import javafx.scene.input.KeyEvent;
import javafx.scene.input.MouseEvent;
import javafx.scene.layout.AnchorPane;
import javafx.scene.text.Text;
/**
* FXML Controller class
* @author Maher Ben Tili
*/
public class TraiteCltRetardController implements Initializable {
@FXML private AnchorPane AnchorPaneTraiteCltRetard;
@FXML private ProgressBar ProgressBarTraiteClt;
@FXML public TableView<TraiteCltGestionListe> TableViewTraiteCltRetard;
@FXML public TableColumn<TraiteCltGestionListe ,String> TabColNumTraite;
@FXML public TableColumn<TraiteCltGestionListe ,String> TabColDateTraite;
@FXML public TableColumn<TraiteCltGestionListe ,String> TabColMontant;
@FXML public TableColumn<TraiteCltGestionListe ,String> TabColFacture;
@FXML public TableColumn<TraiteCltGestionListe ,String> TabColCodeClt;
@FXML public TableColumn<TraiteCltGestionListe ,String> TabColLocal;
@FXML public TableColumn<TraiteCltGestionListe ,String> TabColNomPrenom;
@FXML private Button ButtonSearchTraiteCltRetard;
@FXML private Button ButtonPrintTraiteCltRetard;
@FXML private DatePicker DatePickeDebut;
@FXML private TextField TextFieldIdFacture ;
@FXML private TextField TextFieldCodeClt ;
@FXML private TextField TextFieldCINClt ;
@FXML private TextField TextFieldNomClt ;
@FXML private ChoiceBox ChoiceBoxLocal ;
@FXML private Text ActuellePage ;
@FXML private Text NbrPage ;
@FXML private Group nextgroupe ;
@FXML private Group avancergroupe ;
@FXML private Group lastgroupe ;
@FXML private Group retourgroupe ;
@FXML private Label LabelCount;
@FXML private ChoiceBox NbrLigne ;
ObservableList cursors = FXCollections.observableArrayList("10","15","20");
private Integer nbrligne = 10 ;
private Integer totalcount = 0;
private Integer nbrpage = 0;
private Integer actuellepage = 1;
Integer position = 0;
private Service<Void> ThreadSearchTraiteCltRetard;
private Service<Void> ThreadPrintTraiteCltRetard;
ObservableList<TraiteCltGestionListe> ListPrintTraiteCltRetards;
@Override
public void initialize(URL url, ResourceBundle rb) {
NbrLigne.setItems(cursors);
NbrLigne.getSelectionModel().selectFirst();
TabColNumTraite.setStyle( "-fx-alignment: CENTER;");TabColNumTraite.getStyleClass().add("Center");
TabColNumTraite.setCellValueFactory(new PropertyValueFactory<TraiteCltGestionListe, String>("NumTraite"));
TabColDateTraite.setStyle( "-fx-alignment: CENTER;");TabColDateTraite.getStyleClass().add("Center");
TabColDateTraite.setCellValueFactory(new PropertyValueFactory<TraiteCltGestionListe, String>("DateTraite"));
TabColMontant.setStyle( "-fx-alignment: CENTER;");TabColMontant.getStyleClass().add("Center");
TabColMontant.setCellValueFactory(new PropertyValueFactory<TraiteCltGestionListe, String>("Montant"));
TabColFacture.setStyle( "-fx-alignment: CENTER;");TabColFacture.getStyleClass().add("Center");
TabColFacture.setCellValueFactory(new PropertyValueFactory<TraiteCltGestionListe, String>("Facture"));
TabColCodeClt.setStyle( "-fx-alignment: CENTER;");TabColCodeClt.getStyleClass().add("Center");
TabColCodeClt.setCellValueFactory(new PropertyValueFactory<TraiteCltGestionListe, String>("CodeClt"));
TabColLocal.setStyle( "-fx-alignment: CENTER;");TabColLocal.getStyleClass().add("Center");
TabColLocal.setCellValueFactory(new PropertyValueFactory<TraiteCltGestionListe, String>("TypeClient"));
TabColNomPrenom.setStyle( "-fx-alignment: CENTER;");TabColNomPrenom.getStyleClass().add("Center");
TabColNomPrenom.setCellValueFactory(new PropertyValueFactory<TraiteCltGestionListe, String>("NomPrenom"));
ArrayList<String> ListLocale = new StockDB().getAllListLocal();
ChoiceBoxLocal.getItems().addAll(ListLocale);
ButtonSearchTraiteCltRetard.setOnMouseClicked(new EventHandler<MouseEvent>() {
public void handle(MouseEvent me) {
SearchTraiteCltRetard();
}
});
AnchorPaneTraiteCltRetard.setOnKeyPressed(new EventHandler<KeyEvent>() {
@Override
public void handle(KeyEvent ke) {
if (ke.getCode().equals(KeyCode.ENTER)) {
SearchTraiteCltRetard();
}
}
});
ButtonPrintTraiteCltRetard.setOnMouseClicked(new EventHandler<MouseEvent>() {
public void handle(MouseEvent me) {
ImprimerTraiteCltRetard();
}
});
GestionSearchTraiteCltRetard();
}
private void ImprimerTraiteCltRetard()
{
ProgressBarTraiteClt.setVisible(true);
ButtonPrintTraiteCltRetard.setDisable(true);
ThreadPrintTraiteCltRetard = new Service<Void>(){
@Override
protected Task<Void> createTask(){
return new Task<Void>(){
@Override
protected Void call() throws Exception{
String DateDebut = "";
if(DatePickeDebut.getValue() != null){
DateDebut = DatePickeDebut.getValue().toString();
}
ListPrintTraiteCltRetards = new TraiteCltDB().SearchTraiteCltRetard(0, 0, DateDebut, TextFieldIdFacture.getText(), (String) ChoiceBoxLocal.getValue(), TextFieldCodeClt.getText(), TextFieldCINClt.getText(), TextFieldNomClt.getText(), true);
return null;
}
};
}
};
ThreadPrintTraiteCltRetard.setOnSucceeded(new EventHandler<WorkerStateEvent>(){
@Override
public void handle(WorkerStateEvent event){
int SizeListeTraiteCltGestion = ListPrintTraiteCltRetards.size();
int total = SizeListeTraiteCltGestion / 16 + 1 ;
int page = 0;
PrinterJob jobPrint = PrinterJob.createPrinterJob();
jobPrint.getJobSettings().setPageRanges(new PageRange(1, total));
if (jobPrint.showPrintDialog(null))
{
Printer printer = jobPrint.getPrinter();
PageLayout pageLayout = printer.createPageLayout(Paper.A4, PageOrientation.LANDSCAPE, Printer.MarginType.DEFAULT);
for (int i=0; i<SizeListeTraiteCltGestion; i+=16)
{
try {
ObservableList<TraiteCltGestionListe> listTemp = FXCollections.observableArrayList();
for (int j=i; (j<(i+16)) && (j<SizeListeTraiteCltGestion); j++)
{
TraiteCltGestionListe ListCaisseClt = ListPrintTraiteCltRetards.get(j);
listTemp.add(new TraiteCltGestionListe(
ListCaisseClt.getNumTraite(),
ListCaisseClt.getEtat(),
ListCaisseClt.getFacture(),
ListCaisseClt.getCodeClt(),
ListCaisseClt.getTypeClient(),
ListCaisseClt.getNomPrenom(),
ListCaisseClt.getDateTraite(),
ListCaisseClt.getDatePayer(),
ListCaisseClt.getMontant(),
ListCaisseClt.getMontantFloat()
));
}
FXMLLoader fxmlLoaderTraiteCltPrintRetard = new FXMLLoader(getClass().getResource("/Views/TraiteClt/TraiteCltPrintRetard.fxml"));
final Node ParentFxmlTraiteCltPrintRetard = (Node)fxmlLoaderTraiteCltPrintRetard.load();
TraiteCltPrintRetardController traiteCltPrintRetardController = fxmlLoaderTraiteCltPrintRetard.getController();
page++;
traiteCltPrintRetardController.setTraiteCltPrintRetard(
Integer.toString(SizeListeTraiteCltGestion),
page+"/"+total,
listTemp);
jobPrint.printPage(pageLayout, ParentFxmlTraiteCltPrintRetard);
} catch (IOException ex) {
System.out.println(ex.getMessage());
}
}
jobPrint.endJob();
}
System.out.println(ListPrintTraiteCltRetards.size());
ProgressBarTraiteClt.setVisible(false);
ButtonPrintTraiteCltRetard.setDisable(false);
}
});
ThreadPrintTraiteCltRetard.start();
}
/****************************************************************************** *
* *
* Methode last Next TableView *
* * *
******************************************************************************/
private void SearchTraiteCltRetard()
{
ProgressBarTraiteClt.setVisible(true);
ButtonSearchTraiteCltRetard.setDisable(true);
ThreadSearchTraiteCltRetard = new Service<Void>(){
@Override
protected Task<Void> createTask(){
return new Task<Void>(){
@Override
protected Void call() throws Exception{
position = 0;
actuellepage = 1;
String DateDebut = "";
if(DatePickeDebut.getValue() != null){
DateDebut = DatePickeDebut.getValue().toString();
}
ObservableList<TraiteCltGestionListe> ListTraiteCltRetards = new TraiteCltDB().SearchTraiteCltRetard(
position,
nbrligne,
DateDebut,
TextFieldIdFacture.getText(),
(String) ChoiceBoxLocal.getValue(),
TextFieldCodeClt.getText(),
TextFieldCINClt.getText(),
TextFieldNomClt.getText(),
false);
TableViewTraiteCltRetard.setItems(ListTraiteCltRetards);
totalcount = new TraiteCltDB().nbrTraiteCltRetard(DateDebut,
TextFieldIdFacture.getText(),
(String) ChoiceBoxLocal.getValue(),
TextFieldCodeClt.getText(),
TextFieldCINClt.getText(),
TextFieldNomClt.getText());
if(totalcount > 0){
ActuellePage.setText("1");
}else{
ActuellePage.setText("0");
}
if(totalcount % nbrligne==0){
nbrpage = totalcount / nbrligne ;
}
else{
nbrpage = (totalcount / nbrligne) + 1 ;
}
NbrPage.setText(Integer.toString(nbrpage));
return null;
}
};
}
};
ThreadSearchTraiteCltRetard.setOnSucceeded(new EventHandler<WorkerStateEvent>(){
@Override
public void handle(WorkerStateEvent event){
ProgressBarTraiteClt.setVisible(false);
ButtonSearchTraiteCltRetard.setDisable(false);
LabelCount.setText(totalcount.toString());
}
});
ThreadSearchTraiteCltRetard.start();
}
private void NextLastSearchTraiteCltRetard(Integer ParmPosition, Integer ParamNbrligne)
{
ProgressBarTraiteClt.setVisible(true);
ButtonSearchTraiteCltRetard.setDisable(true);
ThreadSearchTraiteCltRetard = new Service<Void>(){
@Override
protected Task<Void> createTask(){
return new Task<Void>(){
@Override
protected Void call() throws Exception{
String DateDebut = "";
if(DatePickeDebut.getValue() != null){
DateDebut = DatePickeDebut.getValue().toString();
}
ObservableList<TraiteCltGestionListe> ListTraiteCltRetards = new TraiteCltDB().SearchTraiteCltRetard(ParmPosition,
ParamNbrligne,
DateDebut,
TextFieldIdFacture.getText(),
(String) ChoiceBoxLocal.getValue(),
TextFieldCodeClt.getText(),
TextFieldCINClt.getText(),
TextFieldNomClt.getText(),
false );
TableViewTraiteCltRetard.setItems(ListTraiteCltRetards);
return null;
}
};
}
};
ThreadSearchTraiteCltRetard.setOnSucceeded(new EventHandler<WorkerStateEvent>(){
@Override
public void handle(WorkerStateEvent event){
ProgressBarTraiteClt.setVisible(false);
ButtonSearchTraiteCltRetard.setDisable(false);
}
});
ThreadSearchTraiteCltRetard.start();
}
private void GestionSearchTraiteCltRetard()
{
NbrLigne.getSelectionModel().selectedIndexProperty().addListener(new ChangeListener<Number>() {
public void changed(ObservableValue ov, Number value, Number new_value) {
nbrligne= Integer.parseInt((String) cursors.get(new_value.intValue()));
if(totalcount % nbrligne==0){ nbrpage = totalcount / nbrligne ;}
else{ nbrpage = (totalcount / nbrligne) + 1 ; }
NbrPage.setText(Integer.toString(nbrpage));
position=0;
ActuellePage.setText("1");
actuellepage=1;
NextLastSearchTraiteCltRetard(position, nbrligne);
}
});
if(totalcount % nbrligne==0){ nbrpage = totalcount / nbrligne ;}
else{ nbrpage = (totalcount / nbrligne) + 1 ; }
NbrPage.setText(Integer.toString(nbrpage));
//next page
nextgroupe.setOnMousePressed(new EventHandler<MouseEvent>(){
@Override
public void handle(MouseEvent event) {
if(actuellepage<nbrpage)
{
position=position+nbrligne;
NextLastSearchTraiteCltRetard(position, nbrligne);
actuellepage=actuellepage+1 ;
ActuellePage.setText(Integer.toString(actuellepage));
}
}
});
//last page
lastgroupe.setOnMousePressed(new EventHandler<MouseEvent>(){
@Override
public void handle(MouseEvent event) {
if(actuellepage>1)
{
position=position-nbrligne;
NextLastSearchTraiteCltRetard(position, nbrligne);
actuellepage=actuellepage-1 ;
ActuellePage.setText(Integer.toString(actuellepage));
}
}
});
//next page avec pas de 5
avancergroupe.setOnMousePressed(new EventHandler<MouseEvent>(){
@Override
public void handle(MouseEvent event) {
if(actuellepage+3<nbrpage)
{
position=(position+4)+nbrligne;
NextLastSearchTraiteCltRetard(position, nbrligne);
actuellepage=actuellepage+3 ;
ActuellePage.setText(Integer.toString(actuellepage));
}
}
});
//last page avec un pas de -5
retourgroupe.setOnMousePressed(new EventHandler<MouseEvent>(){
@Override
public void handle(MouseEvent event) {
if(actuellepage-3>1){
position=(position-4)-nbrligne;
NextLastSearchTraiteCltRetard(position, nbrligne);
actuellepage=actuellepage-3 ;
ActuellePage.setText(Integer.toString(actuellepage));
}
}
});
}
}