314 lines
14 KiB
Java
314 lines
14 KiB
Java
/*
|
|
* To change this license header, choose License Headers in Project Properties.
|
|
* To change this template file, choose Tools | Templates
|
|
* and open the template in the editor.
|
|
*/
|
|
package Controllers.Reglement;
|
|
|
|
import Controllers.CommandeClt.CommandeCltDialogConfirmationController;
|
|
import Controllers.Traitement.Adaptateur;
|
|
import Controllers.Traitement.MyWindow;
|
|
import Controllers.Traitement.ParametreSystem;
|
|
import Models.FactureFrs.FactureFrs;
|
|
import Models.Reglement.ChequeFrs;
|
|
import Models.Reglement.Reglement;
|
|
import Models.Reglement.ReglementDB;
|
|
import Models.Reglement.TraiteFrs;
|
|
import java.io.IOException;
|
|
import java.net.URL;
|
|
import java.text.DecimalFormat;
|
|
import java.util.ResourceBundle;
|
|
import java.util.logging.Level;
|
|
import java.util.logging.Logger;
|
|
import javafx.beans.property.SimpleStringProperty;
|
|
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.Node;
|
|
import javafx.scene.Scene;
|
|
import javafx.scene.control.ProgressIndicator;
|
|
import javafx.scene.control.TableCell;
|
|
import javafx.scene.control.TableColumn;
|
|
import javafx.scene.control.TableView;
|
|
import javafx.scene.control.cell.PropertyValueFactory;
|
|
import javafx.scene.layout.AnchorPane;
|
|
import javafx.scene.layout.GridPane;
|
|
import javafx.scene.layout.StackPane;
|
|
import javafx.scene.text.Text;
|
|
import javafx.stage.Stage;
|
|
import javafx.util.Callback;
|
|
|
|
/**
|
|
* FXML Controller class
|
|
*
|
|
* @author Maher
|
|
*/
|
|
public class ReglementDialogDetailController implements Initializable {
|
|
|
|
public Node nodeFxml ;
|
|
|
|
@FXML public AnchorPane AnchorPrincipal ;
|
|
@FXML public ProgressIndicator ProgressReglement;
|
|
@FXML public AnchorPane PaneDetailReglement;
|
|
|
|
@FXML private Text TextCodeReglement;
|
|
@FXML private Text TextTypePaiement;
|
|
@FXML private Text TextModePaiement;
|
|
@FXML private Text TextDateCreation;
|
|
@FXML private Text TextTotalReglement;
|
|
@FXML private Text TextProfile;
|
|
|
|
@FXML private Text TextCodeFrs;
|
|
@FXML private Text TextNomFrs;
|
|
@FXML private Text TextTele1Frs;
|
|
@FXML private Text TextTele2Frs;
|
|
|
|
@FXML private GridPane GridPaneCheque;
|
|
@FXML private GridPane GridPaneCarte;
|
|
|
|
@FXML private Text TextCartNomBanque;
|
|
@FXML private Text TextCartNumeroCart;
|
|
@FXML private Text TextCartNumeroTransaction;
|
|
@FXML private Text TextCartDateHeurTransaction;
|
|
|
|
@FXML private Text TextChequeNomBanque;
|
|
@FXML private Text TextChequeNumero;
|
|
@FXML private Text TextChequeNomComple;
|
|
@FXML private Text TextChequeDate;
|
|
|
|
@FXML private TableView<ChequeFrs> TableViewListeCheque ;
|
|
@FXML private TableColumn<ChequeFrs ,String> TabColDateCheque;
|
|
@FXML private TableColumn<ChequeFrs ,String> TabColNumeroCheque;
|
|
@FXML private TableColumn<ChequeFrs ,String> TabColBanqueCheque;
|
|
@FXML private TableColumn<ChequeFrs ,String> TabColMontantCheque;
|
|
|
|
@FXML private TableView<TraiteFrs> TableViewListeTraite ;
|
|
@FXML private TableColumn<TraiteFrs ,String> TabColDateTraite;
|
|
@FXML private TableColumn<TraiteFrs ,String> TabColMontantTraite;
|
|
|
|
|
|
@FXML private TableView<FactureFrs> TableViewFactureFrs;
|
|
@FXML private TableColumn<FactureFrs ,String> TabColNumeroFact;
|
|
@FXML private TableColumn<FactureFrs ,String> TabColProfile;
|
|
@FXML private TableColumn<FactureFrs ,String> TabColDate;
|
|
@FXML private TableColumn<FactureFrs ,String> TabColHeur;
|
|
@FXML private TableColumn<FactureFrs ,String> TabColLocalReception;
|
|
@FXML private TableColumn<FactureFrs ,String> TabColNetPayer;
|
|
|
|
private Service<Void> ThreadReglement;
|
|
|
|
DecimalFormat Formatter = new DecimalFormat("##,###.## ");
|
|
|
|
/**
|
|
* Initializes the controller class.
|
|
*/
|
|
@Override
|
|
public void initialize(URL url, ResourceBundle rb) {
|
|
TabColMontantTraite.setStyle( "-fx-alignment: CENTER;");
|
|
TabColMontantTraite.getStyleClass().add("Center");
|
|
TabColMontantTraite.setCellValueFactory(new PropertyValueFactory<TraiteFrs, String>("Montant"));
|
|
|
|
TabColDateTraite.setStyle( "-fx-alignment: CENTER; -fx-font-weight:bold; -fx-font-size: 10pt;");
|
|
TabColDateTraite.getStyleClass().add("Center");
|
|
TabColDateTraite.setCellValueFactory(new PropertyValueFactory<TraiteFrs, String>("DatePaiement"));
|
|
|
|
|
|
TabColNumeroCheque.setStyle( "-fx-alignment: CENTER;");
|
|
TabColNumeroCheque.getStyleClass().add("Center");
|
|
TabColNumeroCheque.setCellValueFactory(new PropertyValueFactory<ChequeFrs, String>("NumeroChequeFrs"));
|
|
|
|
TabColBanqueCheque.setStyle( "-fx-alignment: CENTER;");
|
|
TabColBanqueCheque.getStyleClass().add("Center");
|
|
TabColBanqueCheque.setCellValueFactory(new PropertyValueFactory<ChequeFrs, String>("BanqueChequeFrs"));
|
|
|
|
TabColDateCheque.setStyle( "-fx-alignment: CENTER;");
|
|
TabColDateCheque.getStyleClass().add("Center");
|
|
TabColDateCheque.setCellValueFactory(new PropertyValueFactory<ChequeFrs, String>("DatePaiement"));
|
|
|
|
TabColMontantCheque.setStyle( "-fx-alignment: CENTER;");
|
|
TabColMontantCheque.getStyleClass().add("Center");
|
|
TabColMontantCheque.setCellValueFactory(new PropertyValueFactory<ChequeFrs, String>("MontantChequeFrs"));
|
|
|
|
TabColNumeroFact.setCellValueFactory(new PropertyValueFactory<FactureFrs, String>("Numero"));
|
|
|
|
TabColProfile.setStyle( "-fx-alignment: CENTER; -fx-font-weight:bold; -fx-font-size: 10pt;");
|
|
TabColProfile.getStyleClass().add("Center");
|
|
TabColProfile.setCellValueFactory(new Callback<TableColumn.CellDataFeatures<FactureFrs,String>, ObservableValue<String>>() {
|
|
@Override
|
|
public ObservableValue<String> call(TableColumn.CellDataFeatures<FactureFrs, String> data) {
|
|
return new SimpleStringProperty(data.getValue().getProfile().getNom()+" "+data.getValue().getProfile().getPrenom());
|
|
}
|
|
});
|
|
|
|
TabColDate.setCellValueFactory(new PropertyValueFactory<FactureFrs, String>("DateCreation"));
|
|
TabColDate.setStyle( "-fx-alignment: CENTER; -fx-font-weight:bold; -fx-font-size: 10pt;");
|
|
TabColDate.getStyleClass().add("Center");
|
|
|
|
TabColHeur.setCellValueFactory(new PropertyValueFactory<FactureFrs, String>("HeurCreation"));
|
|
TabColHeur.setStyle( "-fx-alignment: CENTER; -fx-font-weight:bold; -fx-font-size: 10pt;");
|
|
TabColHeur.getStyleClass().add("Center");
|
|
|
|
TabColLocalReception.setCellValueFactory(new PropertyValueFactory<FactureFrs, String>("Local"));
|
|
TabColLocalReception.setStyle( "-fx-alignment: CENTER; -fx-font-weight:bold; -fx-font-size: 10pt;");
|
|
TabColLocalReception.getStyleClass().add("Center");
|
|
|
|
TabColNetPayer.setCellValueFactory(new PropertyValueFactory<FactureFrs, String>("NetAPayer"));
|
|
TabColNetPayer.setStyle( "-fx-alignment: CENTER; -fx-font-weight:bold; -fx-font-size: 10pt;");
|
|
TabColNetPayer.getStyleClass().add("Center");
|
|
TabColNetPayer.setCellFactory(new Callback<TableColumn<FactureFrs,String>,TableCell<FactureFrs,String>>(){
|
|
@Override
|
|
public TableCell<FactureFrs, String> call(TableColumn<FactureFrs, String> param) {
|
|
TableCell<FactureFrs, String> cell = new TableCell<FactureFrs, String>(){
|
|
@Override
|
|
public void updateItem(String item, boolean empty) {
|
|
if(item!= null){
|
|
Text text = new Text(Formatter.format(Float.parseFloat(item)));
|
|
setGraphic(text);
|
|
}else{
|
|
setGraphic(null);
|
|
}
|
|
}
|
|
};
|
|
return cell;
|
|
}
|
|
});
|
|
|
|
}
|
|
|
|
public void LanchShowReglement(final String IdReglement){
|
|
|
|
ThreadReglement = new Service<Void>(){
|
|
@Override
|
|
protected Task<Void> createTask(){
|
|
return new Task<Void>(){
|
|
@Override
|
|
protected Void call() throws Exception{
|
|
Reglement reglement = new ReglementDB().getReglementDB(IdReglement);
|
|
setReglement(reglement);
|
|
return null;
|
|
}
|
|
};
|
|
}
|
|
};
|
|
ThreadReglement.setOnSucceeded(new EventHandler<WorkerStateEvent>(){
|
|
@Override
|
|
public void handle(WorkerStateEvent event){
|
|
ProgressReglement.setVisible(false);
|
|
PaneDetailReglement.setVisible(true);
|
|
}
|
|
});
|
|
ThreadReglement.start();
|
|
}
|
|
|
|
public void setReglement(Reglement reglement){
|
|
|
|
TextCodeReglement.setText(reglement.getNumero());
|
|
TextTypePaiement.setText(reglement.getTypePaiementString());
|
|
TextModePaiement.setText(reglement.getModePaiementString());
|
|
TextDateCreation.setText(reglement.getDateTimeCreationString());
|
|
|
|
|
|
TextTotalReglement.setText(Formatter.format(Float.parseFloat(reglement.getMontant()))+" "+ParametreSystem.CurrencySign);
|
|
TextProfile.setText(reglement.getProfile().getPrenom()+" "+reglement.getProfile().getNom());
|
|
|
|
TextCodeFrs.setText(reglement.getFournisseur().getCode());
|
|
TextNomFrs.setText(reglement.getFournisseur().getNom());
|
|
TextTele1Frs.setText(reglement.getFournisseur().getTele1());
|
|
TextTele2Frs.setText(reglement.getFournisseur().getTele2());
|
|
|
|
TableViewFactureFrs.setItems(reglement.getListFacture());
|
|
// 0 Comptant
|
|
if(reglement.getTypePaiement().equals("0")){
|
|
|
|
//0 espèce
|
|
if(reglement.getModePaiement().equals("0")){
|
|
|
|
//1 Chéque
|
|
}else if(reglement.getModePaiement().equals("1")){
|
|
GridPaneCheque.setVisible(true);
|
|
TextChequeNomBanque.setText(reglement.getCheque().getBanqueChequeFrs());
|
|
TextChequeNumero.setText(reglement.getCheque().getNumeroChequeFrs());
|
|
TextChequeNomComple.setText(reglement.getCheque().getNomCompletChequeFrs());
|
|
TextChequeDate.setText(reglement.getCheque().getDateCreation());
|
|
|
|
//2 Carte électronique
|
|
}else if(reglement.getModePaiement().equals("2")){
|
|
GridPaneCarte.setVisible(true);
|
|
TextCartNomBanque.setText(reglement.getCarte().getBanque());
|
|
TextCartNumeroCart.setText(reglement.getCarte().getNumeroCarte());
|
|
TextCartNumeroTransaction.setText(reglement.getCarte().getNumeroTransaction());
|
|
TextCartDateHeurTransaction.setText(reglement.getCarte().getDateTransaction()+" "+reglement.getCarte().getHeurTransaction());
|
|
}
|
|
|
|
|
|
//1 Facilité
|
|
}else if(reglement.getTypePaiement().equals("1")){
|
|
|
|
//1 Chéque
|
|
if(reglement.getModePaiement().equals("1")){
|
|
TableViewListeCheque.setVisible(true);
|
|
ObservableList<ChequeFrs> NewListCheque = FXCollections.observableArrayList();
|
|
for(ChequeFrs Cheque : reglement.getListCheque()) {
|
|
String CodeChequeFrs = Cheque.getCodeChequeFrs();
|
|
String NumeroChequeFrs = Cheque.getNumeroChequeFrs();
|
|
String BanqueChequeFrs = Cheque.getBanqueChequeFrs();
|
|
String MontantChequeFrs = Adaptateur.StringDeleZero(Cheque.getMontantChequeFrs());
|
|
String NomCompletChequeFrs = Cheque.getNomCompletChequeFrs();
|
|
String DatePaiement = Adaptateur.NormalDateFormat(Cheque.getDatePaiement());
|
|
String DateCreation = Adaptateur.NormalDateTimeFormat(Cheque.getDateCreation());
|
|
NewListCheque.add(new ChequeFrs(CodeChequeFrs, NumeroChequeFrs, BanqueChequeFrs, MontantChequeFrs, NomCompletChequeFrs, DatePaiement, DateCreation));
|
|
}
|
|
TableViewListeCheque.setItems(NewListCheque);
|
|
|
|
|
|
//3 Traite
|
|
}else if(reglement.getModePaiement().equals("3")){
|
|
TableViewListeTraite.setVisible(true);
|
|
TableViewListeTraite.setItems(reglement.getListTraiteString());
|
|
}
|
|
}
|
|
}
|
|
|
|
public ReglementDialogDetailController(){
|
|
try {
|
|
FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("/Views/Reglement/ReglementDialogDetail.fxml"));
|
|
fxmlLoader.setController(this);
|
|
nodeFxml = (Node) fxmlLoader.load();
|
|
} catch (IOException ex) {
|
|
Logger.getLogger(CommandeCltDialogConfirmationController.class.getName()).log(Level.SEVERE, null, ex);
|
|
}
|
|
}
|
|
|
|
@FXML
|
|
private void ExitButtonAction(ActionEvent event) throws IOException {
|
|
AnchorPrincipal.setVisible(false);
|
|
}
|
|
|
|
|
|
|
|
public void Show()
|
|
{
|
|
StackPane Sp = new StackPane();
|
|
|
|
Scene scene = new Scene(Sp);
|
|
|
|
Sp.setPrefSize((double)MyWindow.PrincipalContentWidth, (double)MyWindow.PrincipalContentHeight);
|
|
|
|
Sp.getChildren().add(MyWindow.myParent);
|
|
Sp.getChildren().add(nodeFxml);
|
|
|
|
Stage stage = MyWindow.myStage;
|
|
stage.setScene(scene);
|
|
stage.show();
|
|
}
|
|
|
|
}
|