first commit
This commit is contained in:
240
src/main/java/Controllers/DevisClt/DevisCltPrintController.java
Normal file
240
src/main/java/Controllers/DevisClt/DevisCltPrintController.java
Normal file
@@ -0,0 +1,240 @@
|
||||
package Controllers.DevisClt;
|
||||
|
||||
import Controllers.Traitement.Adaptateur;
|
||||
import Controllers.Traitement.ParametreSystem;
|
||||
import Models.DevisClt.Devis;
|
||||
import Models.Produit.ListeProduit;
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.IOException;
|
||||
import java.net.URL;
|
||||
import java.util.ResourceBundle;
|
||||
import javafx.beans.property.SimpleStringProperty;
|
||||
import javafx.collections.FXCollections;
|
||||
import javafx.collections.ObservableList;
|
||||
import javafx.fxml.FXML;
|
||||
import javafx.fxml.Initializable;
|
||||
import javafx.scene.control.Control;
|
||||
import javafx.scene.control.TableCell;
|
||||
import javafx.scene.control.TableColumn;
|
||||
import javafx.scene.control.TableView;
|
||||
import javafx.scene.control.cell.PropertyValueFactory;
|
||||
import javafx.scene.image.Image;
|
||||
import javafx.scene.image.ImageView;
|
||||
import javafx.scene.text.Text;
|
||||
import javafx.util.Callback;
|
||||
import javax.xml.XMLConstants;
|
||||
import javax.xml.parsers.DocumentBuilder;
|
||||
import javax.xml.parsers.DocumentBuilderFactory;
|
||||
import javax.xml.parsers.ParserConfigurationException;
|
||||
import org.w3c.dom.Document;
|
||||
import org.w3c.dom.Element;
|
||||
import org.xml.sax.SAXException;
|
||||
|
||||
/**
|
||||
* FXML Controller class
|
||||
* @author Maher Ben Tili
|
||||
*/
|
||||
public class DevisCltPrintController implements Initializable {
|
||||
|
||||
@FXML public ImageView ImageViewLogo;
|
||||
|
||||
@FXML private Text TextSteNom1;
|
||||
@FXML private Text TextReference;
|
||||
@FXML private Text TextDate;
|
||||
@FXML private Text TextEcheance;
|
||||
@FXML private Text TextClient;
|
||||
|
||||
@FXML private Text TextNumDevie;
|
||||
@FXML private Text TextTotalHT;
|
||||
@FXML private Text TextTVA;
|
||||
@FXML private Text TextTotalTTC;
|
||||
|
||||
@FXML private Text TextSteNom2;
|
||||
@FXML private Text TextSteContact;
|
||||
@FXML private Text TextSteSIREN;
|
||||
|
||||
|
||||
@FXML private TableView<ListProdDevis> TableViewProdDevis ;
|
||||
@FXML private TableColumn<ListProdDevis ,String> TabColDevisReference;
|
||||
@FXML private TableColumn<ListProdDevis ,String> TabColDevisDesignation;
|
||||
@FXML private TableColumn<ListProdDevis ,String> TabColDevisQuantite ;
|
||||
@FXML private TableColumn<ListProdDevis ,String> TabColDevisPrix;
|
||||
@FXML private TableColumn<ListProdDevis ,String> TabColDevisMontant;
|
||||
|
||||
|
||||
/**
|
||||
* Initializes the controller class.
|
||||
*/
|
||||
@Override
|
||||
public void initialize(URL url, ResourceBundle rb) {
|
||||
|
||||
setImageLogo();
|
||||
|
||||
TabColDevisReference.setCellValueFactory(new PropertyValueFactory<ListProdDevis, String>("Reference"));
|
||||
|
||||
TabColDevisDesignation.setCellValueFactory(new PropertyValueFactory<ListProdDevis, String>("Description"));
|
||||
TabColDevisDesignation.setCellFactory(new Callback<TableColumn<ListProdDevis, String>,TableCell<ListProdDevis, String>>(){
|
||||
@Override
|
||||
public TableCell<ListProdDevis, String> call(TableColumn<ListProdDevis, String> param) {
|
||||
TableCell<ListProdDevis, String> cell = new TableCell<ListProdDevis, String>(){
|
||||
@Override
|
||||
public void updateItem(String item, boolean empty) {
|
||||
if (item == null) {
|
||||
super.setText(null);
|
||||
super.setGraphic(null);
|
||||
} else {
|
||||
String newItem = item.trim().toLowerCase();
|
||||
Text text = new Text(newItem);
|
||||
super.setPrefHeight(Control.USE_COMPUTED_SIZE);
|
||||
text.wrappingWidthProperty().bind(super.widthProperty());
|
||||
super.setGraphic(text);
|
||||
}
|
||||
}
|
||||
};
|
||||
return cell;
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
TabColDevisQuantite.setCellValueFactory(new PropertyValueFactory<ListProdDevis, String>("Quantite"));
|
||||
TabColDevisQuantite.setStyle( "-fx-alignment: CENTER;");
|
||||
TabColDevisQuantite.getStyleClass().add("Center");
|
||||
|
||||
TabColDevisPrix.setCellValueFactory(new PropertyValueFactory<ListProdDevis, String>("Prix"));
|
||||
TabColDevisPrix.setStyle( "-fx-alignment: CENTER;");
|
||||
TabColDevisPrix.getStyleClass().add("Center");
|
||||
|
||||
TabColDevisMontant.setCellValueFactory(new PropertyValueFactory<ListProdDevis, String>("Montant"));
|
||||
TabColDevisMontant.setStyle( "-fx-alignment: CENTER;");
|
||||
TabColDevisMontant.getStyleClass().add("Center");
|
||||
|
||||
|
||||
TextSteNom1.setText(ParametreSystem.CompanyName);
|
||||
TextSteNom2.setText("Ste:"+ParametreSystem.CompanyName+" | Adress:"+ParametreSystem.CompanyAddress+" | Tele: "+ParametreSystem.CompanyTele);
|
||||
TextSteContact.setText("Fax:"+ParametreSystem.CompanyFax+" | Mail:"+ParametreSystem.CompanyMail+" | Site:"+ParametreSystem.CompanySite);
|
||||
TextSteSIREN.setText(ParametreSystem.CompanySIREN);
|
||||
}
|
||||
|
||||
public void SetDevis(Devis devis)
|
||||
{
|
||||
TextReference.setText(devis.getCodeDevis());
|
||||
TextDate.setText(Adaptateur.NormalDateFormat(devis.getDate()));
|
||||
TextEcheance.setText(devis.getValidite());
|
||||
TextClient.setText(devis.getCodeClient()+" - "+devis.getNom()+" - "+devis.getPrenom());
|
||||
TextNumDevie.setText(devis.getCodeDevis());
|
||||
|
||||
ObservableList<ListProdDevis> PodDevis = FXCollections.observableArrayList();
|
||||
|
||||
for(ListeProduit liste : devis.getListeproduit()){
|
||||
if(!liste.getReference().equals("")){
|
||||
float remise = Adaptateur.ArrondStringToFloat(liste.getRemise().replace("%", "")) ;
|
||||
float prixht = Adaptateur.ArrondStringToFloat(liste.getPrixHT()) ;
|
||||
float tva = Adaptateur.StringToFloat(liste.getTVA().replace("%", "")) ;
|
||||
float qte = Adaptateur.StringToFloat(liste.getQuantite()) ;
|
||||
|
||||
float totalht = (prixht - ((prixht * remise)/100)) ;
|
||||
float prixttc = totalht + ((totalht * tva)/100) ;
|
||||
|
||||
float montant = prixttc * qte;
|
||||
|
||||
PodDevis.add(new ListProdDevis(liste.getReference(), liste.getDesignation(), liste.getQuantite(), Adaptateur.FloatToStringEspace(prixttc), Adaptateur.FloatToStringEspace(montant)));
|
||||
}
|
||||
}
|
||||
|
||||
TextTVA.setText(Adaptateur.StringToStringEspaceCurrency(devis.getTotalTVA()));
|
||||
TextTotalHT.setText(Adaptateur.StringToStringEspaceCurrency(devis.getTotalHorsTaxNet()));
|
||||
TextTotalTTC.setText(Adaptateur.StringToStringEspaceCurrency(devis.getNetAPayer()));
|
||||
|
||||
TableViewProdDevis.setItems(PodDevis);
|
||||
}
|
||||
|
||||
private void setImageLogo()
|
||||
{
|
||||
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();
|
||||
|
||||
//PowerERP\conf\logo.xml
|
||||
Document doc = db.parse(new File("./conf/logo.xml"));
|
||||
|
||||
doc.getDocumentElement().normalize();
|
||||
|
||||
Element elementCNX = (Element) doc.getElementsByTagName("DevisCltPrint").item(0);
|
||||
|
||||
String pathLogo = elementCNX.getElementsByTagName("PathImage").item(0).getTextContent();
|
||||
FileInputStream fis = new FileInputStream(pathLogo);
|
||||
ImageViewLogo.setImage(new Image(fis));
|
||||
|
||||
ImageViewLogo.setFitWidth(Double.parseDouble(elementCNX.getElementsByTagName("FitWidth").item(0).getTextContent()));
|
||||
ImageViewLogo.setFitHeight(Double.parseDouble(elementCNX.getElementsByTagName("FitHeight").item(0).getTextContent()));
|
||||
ImageViewLogo.setLayoutX(Double.parseDouble(elementCNX.getElementsByTagName("LayoutX").item(0).getTextContent()));
|
||||
ImageViewLogo.setLayoutY(Double.parseDouble(elementCNX.getElementsByTagName("LayoutY").item(0).getTextContent()));
|
||||
}
|
||||
catch (ParserConfigurationException | SAXException | IOException e) {
|
||||
System.out.println("error AuthentificationController/setImageLogo "+e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
public static class ListProdDevis {
|
||||
|
||||
private final SimpleStringProperty Reference;
|
||||
private final SimpleStringProperty Description;
|
||||
private final SimpleStringProperty Quantite;
|
||||
private final SimpleStringProperty Prix;
|
||||
private final SimpleStringProperty Montant;
|
||||
|
||||
private ListProdDevis(String reference, String description, String quantite, String prix, String montant) {
|
||||
this.Reference = new SimpleStringProperty(reference);
|
||||
this.Description = new SimpleStringProperty(description);
|
||||
this.Quantite = new SimpleStringProperty(quantite);
|
||||
this.Prix = new SimpleStringProperty(prix);
|
||||
this.Montant = new SimpleStringProperty(montant);
|
||||
}
|
||||
|
||||
public String getReference() {
|
||||
return Reference.get();
|
||||
}
|
||||
|
||||
public void setReference(String reference) {
|
||||
Reference.set(reference);
|
||||
}
|
||||
|
||||
public String getDescription() {
|
||||
return Description.get();
|
||||
}
|
||||
|
||||
public void setDescription(String description) {
|
||||
Description.set(description);
|
||||
}
|
||||
|
||||
public String getQuantite() {
|
||||
return Quantite.get();
|
||||
}
|
||||
|
||||
public void setQuantite(String quantite) {
|
||||
Quantite.set(quantite);
|
||||
}
|
||||
|
||||
public String getPrix() {
|
||||
return Prix.get();
|
||||
}
|
||||
|
||||
public void setPrix(String prix) {
|
||||
Prix.set(prix);
|
||||
}
|
||||
|
||||
public String getMontant() {
|
||||
return Montant.get();
|
||||
}
|
||||
|
||||
public void setMontant(String montant) {
|
||||
Montant.set(montant);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user