/* * 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 TableViewListeCheque ; @FXML private TableColumn TabColDateCheque; @FXML private TableColumn TabColNumeroCheque; @FXML private TableColumn TabColBanqueCheque; @FXML private TableColumn TabColMontantCheque; @FXML private TableView TableViewListeTraite ; @FXML private TableColumn TabColDateTraite; @FXML private TableColumn TabColMontantTraite; @FXML private TableView TableViewFactureFrs; @FXML private TableColumn TabColNumeroFact; @FXML private TableColumn TabColProfile; @FXML private TableColumn TabColDate; @FXML private TableColumn TabColHeur; @FXML private TableColumn TabColLocalReception; @FXML private TableColumn TabColNetPayer; private Service 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("Montant")); TabColDateTraite.setStyle( "-fx-alignment: CENTER; -fx-font-weight:bold; -fx-font-size: 10pt;"); TabColDateTraite.getStyleClass().add("Center"); TabColDateTraite.setCellValueFactory(new PropertyValueFactory("DatePaiement")); TabColNumeroCheque.setStyle( "-fx-alignment: CENTER;"); TabColNumeroCheque.getStyleClass().add("Center"); TabColNumeroCheque.setCellValueFactory(new PropertyValueFactory("NumeroChequeFrs")); TabColBanqueCheque.setStyle( "-fx-alignment: CENTER;"); TabColBanqueCheque.getStyleClass().add("Center"); TabColBanqueCheque.setCellValueFactory(new PropertyValueFactory("BanqueChequeFrs")); TabColDateCheque.setStyle( "-fx-alignment: CENTER;"); TabColDateCheque.getStyleClass().add("Center"); TabColDateCheque.setCellValueFactory(new PropertyValueFactory("DatePaiement")); TabColMontantCheque.setStyle( "-fx-alignment: CENTER;"); TabColMontantCheque.getStyleClass().add("Center"); TabColMontantCheque.setCellValueFactory(new PropertyValueFactory("MontantChequeFrs")); TabColNumeroFact.setCellValueFactory(new PropertyValueFactory("Numero")); TabColProfile.setStyle( "-fx-alignment: CENTER; -fx-font-weight:bold; -fx-font-size: 10pt;"); TabColProfile.getStyleClass().add("Center"); TabColProfile.setCellValueFactory(new Callback, ObservableValue>() { @Override public ObservableValue call(TableColumn.CellDataFeatures data) { return new SimpleStringProperty(data.getValue().getProfile().getNom()+" "+data.getValue().getProfile().getPrenom()); } }); TabColDate.setCellValueFactory(new PropertyValueFactory("DateCreation")); TabColDate.setStyle( "-fx-alignment: CENTER; -fx-font-weight:bold; -fx-font-size: 10pt;"); TabColDate.getStyleClass().add("Center"); TabColHeur.setCellValueFactory(new PropertyValueFactory("HeurCreation")); TabColHeur.setStyle( "-fx-alignment: CENTER; -fx-font-weight:bold; -fx-font-size: 10pt;"); TabColHeur.getStyleClass().add("Center"); TabColLocalReception.setCellValueFactory(new PropertyValueFactory("Local")); TabColLocalReception.setStyle( "-fx-alignment: CENTER; -fx-font-weight:bold; -fx-font-size: 10pt;"); TabColLocalReception.getStyleClass().add("Center"); TabColNetPayer.setCellValueFactory(new PropertyValueFactory("NetAPayer")); TabColNetPayer.setStyle( "-fx-alignment: CENTER; -fx-font-weight:bold; -fx-font-size: 10pt;"); TabColNetPayer.getStyleClass().add("Center"); TabColNetPayer.setCellFactory(new Callback,TableCell>(){ @Override public TableCell call(TableColumn param) { TableCell cell = new TableCell(){ @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(){ @Override protected Task createTask(){ return new Task(){ @Override protected Void call() throws Exception{ Reglement reglement = new ReglementDB().getReglementDB(IdReglement); setReglement(reglement); return null; } }; } }; ThreadReglement.setOnSucceeded(new EventHandler(){ @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 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(); } }