/*
 * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
 * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
 */
package com.triz.trizservice.bean;

import com.triz.trizservice.modeles.Etablissement;
import com.triz.trizservice.modeles.ServiceEtablissementUser;
import com.triz.trizservice.modeles.ServiceUser;
import com.triz.trizservice.modeles.ServicehistoriqueConnection;
import com.triz.trizservice.service.TransactionService;
import com.triz.util.UtilContext;
import com.triz.util.UtilControleAccess;
import com.triz.util.UtilGetParametre;
import com.triz.util.UtilURL;
import java.util.Date;
import java.util.List;
import javax.annotation.PostConstruct;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;

/**
 *
 * @author FORCE TECH
 */
@Component("choixEtablissementBean")
@Scope("session")
public class ChoixEtablissementBean {

    private static final long serialVersionUID = 1L;

    private Etablissement etablissementSelected;
    private String URL = "/view/telephone/listActif.xhtml?faces-redirect=true";
    private String STOCK_URL = "/accueil.xhtml?faces-redirect=true";
    private String STOCK_URL_TB = "/accueil.xhtml?faces-redirect=true";
    private String TABLEAU_URL = "/view/vente/listEtab.xhtml?faces-redirect=true";
    private String STOCK_URL_VENTECOMPTOIRE = "/view/venteSuperette/list.xhtml?faces-redirect=true";
    public String Multi_Etablissement_URL = "/view/choixEtablissement/list.xhtml";
    public String URL_PRODUCTION = "/view/production/list.xhtml?faces-redirect=true";
    public String URL_SAV = "/view/SAV/list.xhtml?faces-redirect=true";
    private boolean useDistribution;
    private boolean voirTableau;

    private List<Etablissement> listeEtablissement;

    @Autowired
    public transient TransactionService service;

    @Autowired
    private transient UtilControleAccess utilControleAccess;

    @Autowired
    public transient UtilContext context;

    private ServiceUser user;

    @PostConstruct
    public void init() {
        System.out.println("//--------------init()choixEtablissementBean ");
//        useDistribution = UtilGetParametre.useTrizDistribution();
        user = context.getCurrentUser();
//        voirTableau = false;
//        if ("true".equals(user.getShowTableauDeBord())) {
//            voirTableau = true;
//        }
        listeEtablissement = service.getAllStockEtablissementFromUsersEtablissementByUser(user);
//        for (Etablissement etab : listeEtablissement) {
////            if (etab.getCodeUsine() == null) {
////                etab.setCodeUsine(etab.getId());
////                service.save(etab);
////                continue;
////            }
//            if (etab.getCodeUsine().isEmpty()) {
//                etab.setCodeUsine(etab.getId());
//                service.save(etab);
//                continue;
//            }
//        }
//        context.setAllFonctionByUser(null);
    }

    public List<Etablissement> getListeEtablissement() {
        return listeEtablissement;
    }

    public void setListeEtablissement(List<Etablissement> listeEtablissement) {
        this.listeEtablissement = listeEtablissement;
    }

    public Etablissement getEtablissementSelected() {
        return etablissementSelected;
    }

    public void setEtablissementSelected(Etablissement etablissementSelected) {
        this.etablissementSelected = etablissementSelected;
    }

    public String etablissementIsSelected(FiltreBean filtre) {
        UtilURL.resetSession();
//        context.setAllFonctionByUser(null);
//        context.setEtablissementSelect(null);
//        context.setUserSelect(null);
        if (filtre != null) {
            filtre.remiseAZero();
        }
        // UtilURL.setIsTableauDeBord(false);
//        if (voirTableau) {
//            if (etablissementSelected == null) {
//                UtilURL.setIsTableauDeBord(true);
//                UtilURL.setIdEtablissement(null);
//                UtilURL.setFonctionnaliteServer(serviceSuite.getFonctionServerByUsers(context.getCurrentUser()));
//                UtilURL.setIsProuction(false);
//                saveConnection("true", etablissementSelected);
//                return TABLEAU_URL;
//            }
//        }

        UtilURL.setIdEtablissement(etablissementSelected.getIdEtabStock());
        UtilURL.setFonctionnalite(service.getFonctionServerByUsersByEtablissement(context.getCurrentUser(), etablissementSelected));
        ServiceEtablissementUser userEtablissement = service.getAllUserEtablissementByEtablissementByUser(etablissementSelected, user);
//        if(etablissementSelected.gettypeetab)
        //getListeModeleEdition(etablissementSelected);
        saveConnection(etablissementSelected);
//        if (("true".equals(userEtablissement.getUseSuperette()))) {
//            UtilURL.setIsProuction(false);
//            return STOCK_URL_VENTECOMPTOIRE;
//        }
//        if (etablissementSelected.getType_etablissemnt() != null) {
//            if (etablissementSelected.getType_etablissemnt().equals("sav")) {
//                return URL_SAV;
//            }
//
//            if (etablissementSelected.getType_etablissemnt().equals("production")) {
//                UtilURL.setIsProuction(true);
//                return URL_PRODUCTION;
//            } else {
//                UtilURL.setIsProuction(false);
//                if (context.getUseTB() && utilControleAccess.isshow1("Acceuil")) {
//                    return STOCK_URL_TB;
//                }
//                return STOCK_URL;
//            }
//        }
//        UtilURL.setIsProuction(false);
//        if (context.getUseTB() && utilControleAccess.isshow1("Acceuil")) {
//            return STOCK_URL_TB;
//        }
        return STOCK_URL;

    }

    private void saveConnection(Etablissement etablissement) {
        ServicehistoriqueConnection his = new ServicehistoriqueConnection();
        his.setFkUser(user);
        his.setFkEtablissement(etablissement);
        his.setDate(new Date());
        his.setHeur(new Date());
        his.setAdresseIp("");
        service.save(his);
    }
//
//    public String production() {
//        return "/view/production/productionList.xhtml?faces-redirect=true";
//    }
//
//    public boolean isVoirTableau() {
//        return voirTableau;
//    }
//
//    public void setVoirTableau(boolean voirTableau) {
//        this.voirTableau = voirTableau;
//    }

    public String voirUser() {
        return "/views/user/form.xhtml?faces-redirect=true&user1=" + user.getUserid();
    }
}
