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

import Controllers.Traitement.Adaptateur;
import Models.FactureFrs.FactureFrs;
import Models.Fournisseur.Fournisseur;
import Models.User.Profile;
import java.text.DecimalFormat;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;

/**
 *
 * @author Maher
 */
public class Reglement {
    
    public String Numero;
    public Fournisseur Fournisseur;
    public ObservableList<FactureFrs> ListFacture;
    public String DateTimeCreation;
    public String Montant;
    public String TypePaiement ; // 0 Comptant |  1 Facilité
    public String ModePaiement; //0 :espace  |   1:Chèque   |   2 :carte bancaire  |   3: Traite
    public String EtatReglement; // 0:En Cour | 1:Payer |  2:Retart
    public Profile Profile;
    
    //public 
    public CarteElectroniqueFrs Carte;
    public ChequeFrs Cheque;
    
    public ObservableList<ChequeFrs> ListCheque;
    public ObservableList<TraiteFrs> ListTraite;
    
    
    public String getNumero() {
        return Numero;
    }

    public void setNumero(String Numero) {
        this.Numero = Numero;
    }

    public String getMontant() {
        return Montant;
    }

    public void setMontant(String Montant) {
        this.Montant = Montant;
    }

    
    public String getEtatReglement() {
        return EtatReglement;
    }

    public void setEtatReglement(String EtatReglement) {
        this.EtatReglement = EtatReglement;
    }

    public CarteElectroniqueFrs getCarte() {
        return Carte;
    }

    public void setCarte(CarteElectroniqueFrs Carte) {
        this.Carte = Carte;
    }

    public ChequeFrs getCheque() {
        return Cheque;
    }

    public void setCheque(ChequeFrs Cheque) {
        this.Cheque = Cheque;
    }

    public ObservableList<ChequeFrs> getListCheque() {
        return ListCheque;
    }

    
    
    public void setListCheque(ObservableList<ChequeFrs> ListCheque) {
        this.ListCheque = ListCheque;
    }

    public ObservableList<TraiteFrs> getListTraite() {
        return ListTraite;
    }

    public ObservableList<TraiteFrs> getListTraiteString() {
        ObservableList<TraiteFrs> NewListTraite =  FXCollections.observableArrayList();
        DecimalFormat Formatter = new DecimalFormat("##,###.## ");
        for(TraiteFrs Trait : ListTraite) {
            String DatePaiement = Adaptateur.NormalDateFormat(Trait.getDatePaiement());
            String DateCreation = Adaptateur.NormalDateTimeFormat(Trait.getDateCreation());
            String Montant = Formatter.format(Float.parseFloat(Trait.getMontant()));
            NewListTraite.add(new TraiteFrs(Trait.getCodeTraiteClt(), DatePaiement, DateCreation, Montant, Trait.getProfile()));
        }
        return NewListTraite;
    }
    
    public void setListTraite(ObservableList<TraiteFrs> ListTraite) {
        this.ListTraite = ListTraite;
    }

    
    
    
    public Fournisseur getFournisseur() {
        return Fournisseur;
    }

    public void setFournisseur(Fournisseur Fournisseur) {
        this.Fournisseur = Fournisseur;
    }

    public ObservableList<FactureFrs> getListFacture() {
        return ListFacture;
    }

    public void setListFacture(ObservableList<FactureFrs> ListFacture) {
        this.ListFacture = ListFacture;
    }

    public String getDateTimeCreation() {
        return DateTimeCreation;
    }
    
    public String getDateTimeCreationString() {
        return Adaptateur.NormalDateTimeFormat(DateTimeCreation);
    }
    
    public void setDateTimeCreation(String DateTimeCreation) {
        this.DateTimeCreation = DateTimeCreation;
    }

    

    public String getModePaiement() {
        return ModePaiement;
    }

    public String getModePaiementString() {
        //0 :espace  |   1:Chèque   |   2 :carte bancaire  |   3: Traite
        if(ModePaiement.equals("0")){
            return "Espace";
        }else if(ModePaiement.equals("1")){
            return "Chèque";
        }else if(ModePaiement.equals("2")){
            return "Carte bancaire";
        }else if(ModePaiement.equals("3")){
            return "Traite";
        }
        return ModePaiement;
    }
    
    public void setModePaiement(String ModePaiement) {
        this.ModePaiement = ModePaiement;
    }

    public String getTypePaiement() {
        return TypePaiement;
    }

    // 0 Comptant |  1 Facilité
    public String getTypePaiementString() {
        if(TypePaiement.equals("0")){
            return "Comptant";
        }else{
            return "Facilité";
        }
    }
    
    public void setTypePaiement(String TypePaiement) {
        this.TypePaiement = TypePaiement;
    }

    public Profile getProfile() {
        return Profile;
    }

    public void setProfile(Profile Profile) {
        this.Profile = Profile;
    }
    
    
}
