/*
 * 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.BonLivraisonClt;

import Models.BonLivraisonClt.BonLivraisonClt;
import Models.BonLivraisonClt.BonLivraisonCltDB;
import Models.CommandeClt.CommandeCltDB;
import java.net.URL;
import java.util.ResourceBundle;
import javafx.concurrent.Service;
import javafx.concurrent.Task;
import javafx.concurrent.WorkerStateEvent;
import javafx.event.EventHandler;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.ProgressIndicator;
import javafx.scene.image.ImageView;
import javafx.scene.layout.GridPane;
import javafx.scene.text.Text;

/**
 *
 * @author Maher
 */
public class BonLivraisonCltAjouterEtape3Controller implements Initializable {
    
    @FXML public ProgressIndicator ProgressBonLivraion;
    @FXML public ImageView ImageBonLivraion;
    @FXML public GridPane GridPaneBonLivraion;
    @FXML public Text TextBonLivraion;
    
    BonLivraisonClt BonLivraison = new BonLivraisonClt();
    BonLivraisonCltDB  BonLivraisonDB = new BonLivraisonCltDB();
    
    private String IdBonLivraison;
    private String CodeCommandeclt;
    private Service<Void> ThreadBonLivraison;
    
    
    @Override
    public void initialize(URL url, ResourceBundle rb) {
        
    }
    
    public void BonLivraisonStep2ToStep3(BonLivraisonClt bon_livraison_clt, String code_commandeclt){
        BonLivraison = bon_livraison_clt;
        CodeCommandeclt = code_commandeclt;
        LanchSaveBonLivraison();
    }
    
    public void LanchSaveBonLivraison(){
        ThreadBonLivraison = new Service<Void>(){
            @Override
            protected Task<Void> createTask(){
                return new Task<Void>(){
                    @Override
                    protected Void call(){
                        IdBonLivraison = BonLivraisonDB.AddBonLivraisonClt(BonLivraison);
                        new CommandeCltDB().UpdateCommandeCltSetIdBonLivraison(CodeCommandeclt, IdBonLivraison);
                        return null;
                    }
                };
            }
	};
        ThreadBonLivraison.setOnSucceeded(new EventHandler<WorkerStateEvent>(){
            @Override
            public void handle(WorkerStateEvent event){
                ProgressBonLivraion.setVisible(false);
                TextBonLivraion.setText("La bon livraison numéro "+IdBonLivraison+" a été enregistrés avec succès");
                ImageBonLivraion.setVisible(true);
                //GridPaneBonLivraion.setVisible(true);
            }
        });
        ThreadBonLivraison.start();
    }
    
    
}
