Package sn.unitech.stock.bean

Source Code of sn.unitech.stock.bean.ChartMBean$Cproperties

package sn.unitech.stock.bean;

import java.awt.image.BufferedImage;
import java.io.IOException;
import java.io.Serializable;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.component.UIParameter;
import javax.faces.event.ActionEvent;
import javax.faces.event.ValueChangeEvent;
import javax.imageio.ImageIO;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.DefaultCategoryDataset;

import sn.unitech.common.dao.ReadProperties;
import sn.unitech.stock.entity.DetailCommand;
import sn.unitech.stock.entity.DetailEvent;
import sn.unitech.stock.entity.Fournisseur;
import sn.unitech.stock.entity.SysGroupProd;
import sn.unitech.stock.entity.SysProduit;
import sn.unitech.stock.metier.ChartM;
import sn.unitech.stock.metier.ToolsMetier;
import sn.unitech.stock.metier.iface.IChartM;
import sn.unitech.stock.modal.DataForGraph;
import sn.unitech.stock.modal.Noeud;


@ManagedBean
@ViewScoped                       
public class ChartMBean implements Serializable{
  private ReadProperties readProperties=ReadProperties.getReadProperties();
  private SimpleDateFormat format=new SimpleDateFormat("dd/MM/yyyy");
    private IChartM chartM =new ChartM();
    private DataForGraph dataForGraphVariation= new DataForGraph();
    private DataForGraph dataForGraphComparaison= new DataForGraph();
    private CItems citems=new CItems();
  private Cproperties cproperties=citems;
  private Fournisseur fournisseur=new Fournisseur();
 
    public ChartMBean(){
   // this.getDataForGraphComparaison();
   // this.getDataForGraphVariation();
    }
  ParamsUser getParamsUser(){ //alias
    return ((ParamsUser)ToolsBean.getToolsBean().getAttribute(ToolsBean.idParamUser));
  }
   
  public Map defaultParametter(){
        Map param=new HashMap<Integer,Object>();
      param.put(0,getParamsUser().adherent.getIdAdherent());
      return param;
    }
  public void clickProduit(ActionEvent e){
  String id= ((UIParameter) e.getComponent().findComponent("idProduit")).getValue().toString();
  this.cproperties.setIdProduit(Integer.parseInt(id))
  this.cproperties.libelleProduit=((UIParameter) e.getComponent().findComponent("libelleProduit")).getValue().toString();
 
  }
 
  public void changeFournisseur(ValueChangeEvent e){
    if(e.getNewValue()!=null){
     this.cproperties.setIdFournisseur(Integer.parseInt(e.getNewValue().toString()));
     this.fournisseur= this.chartM.getCurrentFournisseur(this.cproperties.idFournisseur);
     this.citems.getItemsCommande();
     if((this.citems.itemsCommande!=null)&&(this.citems.itemsCommande.size()>0))
     this.cproperties.setIdCommande(this.citems.itemsCommande.values().iterator().next());
     else this.cproperties.setIdCommande(-1);
     this.dataForGraphComparaison.getCurrentDataset().clear();
    }
    else this.fournisseur=new Fournisseur();
  }
 
  public void changeCommande(ValueChangeEvent e){
   if(e.getNewValue()!=null){
     this.cproperties.setIdCommande(Integer.parseInt(e.getNewValue().toString()));
     this.getDataForGraphComparaison();
   }
  }
 
  public Map<Integer,Date> getAbcisses(){
  if((this.cproperties.getDatDeb()!=null)&&(this.cproperties.getDatFin()!=null)&&
      (this.cproperties.getIdProduit()!=null)){ 
    int coefficiant=12/this.cproperties.idPeriode;
    Map<Integer,Date> abcisses=new HashMap<Integer, Date>();
    java.util.Calendar deb=ToolsMetier.createCalendarFromDate(this.cproperties.getDatDeb());
    java.util.Calendar fin=ToolsMetier.createCalendarFromDate(this.cproperties.getDatFin());       
    deb.add(Calendar.MONTH,-coefficiant);
    abcisses.put(0,deb.getTime());
    int i=1;
    deb.add(Calendar.MONTH,coefficiant);
    while(deb.getTime().compareTo(fin.getTime())<=0){     
    abcisses.put(i++,deb.getTime());
    deb.add(Calendar.MONTH,coefficiant);
    }
    if(abcisses.get(abcisses.size()-1).compareTo(fin.getTime())<0)
    abcisses.put(i,fin.getTime());
    return abcisses;
  }
  else return null;
  }
 
     
  public Double getQtes(Date debut,Date fin){
   int qteD=0,qteC=0;
   Double qte=0d
   List<DetailEvent>listInvent=this.citems.getListInventaires()
   for(int i=0;(listInvent!=null)&&(i<listInvent.size());i++){
    if((listInvent.get(i).getSysDate().compareTo(debut)>0)&&
    (listInvent.get(i).getSysDate().compareTo(fin)<=0)){
      int rapport=listInvent.get(i).getStock().getSysProduit().getRapport();
    qteC=listInvent.get(i).getQteContenant();
    qteD=listInvent.get(i).getQteDetail();
    if(rapport>0) qte+=qteC+(qteD/rapport);
    else qte+=qteC;
   
    }
   return qte;
  }
 
 
 
  public Double getTotalLivr�(int idProduit){
  Double qte=0d
    for(DetailEvent detailEvent:this.citems.listLivraison)
      if(detailEvent.getStock().getSysProduit().getIdProduit()==idProduit)
          qte+=detailEvent.getQteContenant();
      return qte; 
  }
 
 
 
  public DataForGraph getDataForGraphVariation() {
  DataForGraph dataForGraph=new DataForGraph();
  DefaultCategoryDataset  categDataset=new DefaultCategoryDataset();
  Double qte;
  categDataset.clear();   
  Map<Integer,Date> abcisses=this.getAbcisses();
  for(int i=1;(abcisses!=null)&&(i<abcisses.size());i++){
  qte=this.getQtes(abcisses.get(i-1),abcisses.get(i));         
   categDataset.addValue(qte,"series1",format.format(abcisses.get(i)));     
  }
  dataForGraph.setCurrentDataset(categDataset);
  dataForGraph.setTitre(this.cproperties.libelleProduit);
  dataForGraph.setHeight(250);
  dataForGraph.setWidth(500);
  dataForGraph.setType(ToolsBean.LINE_TYPE)
  return (this.dataForGraphVariation=dataForGraph);
  }
 
    public DataForGraph getDataForGraphComparaison() {
    DataForGraph dataForGraph=new DataForGraph();
    DefaultCategoryDataset  categDataset=new DefaultCategoryDataset();
    this.citems.getListDetailCommande();
  this.citems.getListLivraison();   
  for(DetailCommand detailCommand:this.citems.listDetailCommande){
  int idProduit=detailCommand.getSysProduit().getIdProduit();
  categDataset.setValue(new Double(detailCommand.getQteContenant()),"qt� command�e",idProduit+"");
  categDataset.setValue( this.getTotalLivr�(idProduit),"qt� livr�e",idProduit+"")
  }
  dataForGraph.setCurrentDataset(categDataset);
  if((this.cproperties.idCommande!=null)&&(this.cproperties.idCommande > 0))
  dataForGraph.setTitre("Commande N� "+this.cproperties.idCommande);
  else dataForGraph.setTitre("");
  dataForGraph.setHeight(250);
  dataForGraph.setWidth(600);
  dataForGraph.setType(ToolsBean.BAR_TYPE);
  return (this.dataForGraphComparaison=dataForGraph);
    }
 
  public void setDataForGraphVariation(DataForGraph dataForGraphVariation) {
    this.dataForGraphVariation = dataForGraphVariation;
  }
  public void setDataForGraphComparaison(DataForGraph dataForGraphComparaision) {
    this.dataForGraphComparaison = dataForGraphComparaision;
  }
  public void generateChartMethod(java.io.OutputStream out, Object data) {   
    DataForGraph dataGraph=(DataForGraph)data;
    JFreeChart chart;   
    if(dataGraph.getType().equals(ToolsBean.BAR_TYPE))
     chart = ChartFactory.createBarChart3D(dataGraph.getTitre(),null,"",dataGraph.getCurrentDataset(),PlotOrientation.VERTICAL,true,true,false);
    else  chart = ChartFactory.createLineChart3D(dataGraph.getTitre(),null,"",dataGraph.getCurrentDataset(),PlotOrientation.VERTICAL,true,true,false);
      BufferedImage buffImg = chart.createBufferedImage(
                                    dataGraph.getWidth(), //width
                                    dataGraph.getHeight(), //height
                                    BufferedImage.TYPE_INT_RGB, //image type
                                    null);
        try {ImageIO.write(buffImg, "jpeg", out);}
        catch (IOException e) {e.printStackTrace();}
    }
     
      
    public CItems getCitems() {
    return citems;
  }

  public void setCitems(CItems citems) {
    this.citems = citems;
  }

  public Cproperties getCproperties() {
    return cproperties;
  }

  public void setCproperties(Cproperties cproperties) {
    this.cproperties = cproperties;
  }

  

  public Fournisseur getFournisseur() {
    return fournisseur;
  }

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

 
  public class Cproperties{
      private Date datDeb;
      private Date datFin;
      private Integer idProduit;
      private String idOperations;
      private Integer idPeriode;
      String libelleProduit;
      Integer idFournisseur;
      Integer idCommande;
    public Date getDatDeb() {
      return datDeb;
    }
    public void setDatDeb(Date datDeb) {
      this.datDeb = datDeb;
    }
    public Date getDatFin() {
      return datFin;
    }
    public void setDatFin(Date datFin) {
      this.datFin = datFin;
    }
    public Integer getIdProduit() {
      return idProduit;
    }

    public void setIdProduit(Integer idProduit) {
      this.idProduit = idProduit;
    }
    public String getIdOperations() {
      return idOperations;
    }
    public void setIdOperations(String idOperations) {
      this.idOperations = idOperations;
    }
    public Integer getIdPeriode() {
      return idPeriode;
    }
    public void setIdPeriode(Integer idPeriode) {
      this.idPeriode = idPeriode;
    }
    public Integer getIdFournisseur() {
      return idFournisseur;
    }
    public void setIdFournisseur(Integer idFournisseur) {
      this.idFournisseur = idFournisseur;
    }
    public Integer getIdCommande() {
      return idCommande;
    }
    public void setIdCommande(Integer idCommande) {
      this.idCommande = idCommande;
    }

   }
   
    public class CItems extends Cproperties{
      Map<String,String> itemsOperation=new HashMap<String, String>()
      Map<String,Integer> itemsPeriode=new HashMap<String, Integer>();
      List<DetailEvent> listInventaires;
      List<DetailCommand> listDetailCommande;
      List<DetailEvent>   listLivraison;
      List<Noeud> listProduits;
      Map<String, Integer> itemsCommande=new HashMap<String, Integer>();
      Map<String, Integer> itemsFournisseurs=new HashMap<String, Integer>();
    public CItems(){
       this.itemsOperation=chartM.getAllOperation(readProperties.read("Events.allOperation"),defaultParametter());
       this.itemsPeriode=chartM.findAllPeriodes(readProperties.read("Events.allPeriode"),null);
       this.listProduits=this.getNodesGroupProd();      
       this.setIdOperations(this.itemsOperation.values().iterator().next());
       this.itemsFournisseurs=chartM.getAllFournisseurs(readProperties.read("Events.allFournisseur"),defaultParametter());
       if((this.itemsFournisseurs!=null)&&(this.itemsFournisseurs.size()>0)){
        this.idFournisseur=this.itemsFournisseurs.values().iterator().next();
        fournisseur= chartM.getCurrentFournisseur(this.idFournisseur);
        this.getItemsCommande();
       }
       }
      
       
  public List<Noeud> getNodesGroupProd(){
      List<Noeud> listResult=new ArrayList<Noeud>();
      for(SysGroupProd sysGroupProd:chartM.findGroupProd(readProperties.read("FamilleProduit.jpqlAllGroupProd"),defaultParametter())){
       Noeud parent=new Noeud();
       parent.setId(sysGroupProd.getIdGroupProd()+"");
       parent.setLibelle(sysGroupProd.getLibelle());
       listResult.add(parent);
       for(SysProduit sysProduit:sysGroupProd.getSysProduits()){
         Noeud fils=new Noeud();
       fils.setId(sysProduit.getIdProduit()+"");
       fils.setLibelle(sysProduit.getDesignation());
       parent.getListChildren().add(fils);
       }
       }
       return listResult; 
  }

 
  public List<Noeud> getListProduits() {
    return listProduits;
  }

  public void setListProduits(List<Noeud> listProduits) {
    this.listProduits = listProduits;
  }

  public List<DetailEvent> getListInventaires() {
    Map<Integer,Object> params=new HashMap<Integer, Object>();
    params.put(0,this.getIdProduit());
    params.put(1, this.getIdOperations());
    params.put(2,this.getDatDeb());
    params.put(3,this.getDatFin());   
    return (listInventaires=chartM.getInventaire(readProperties.read("Statistiques.Inventaire"),params));
  }

  public void setListInventaires(List<DetailEvent> listInventaires) {
    this.listInventaires = listInventaires;
  }

  public Map<String, String> getItemsOperation() {
    return itemsOperation;
  }

  public void setItemsOperation(Map<String, String> itemsOperation) {
    this.itemsOperation = itemsOperation;
  }

  public Map<String, Integer> getItemsPeriode() {
    return itemsPeriode;
  }

  public void setItemsPeriode(Map<String, Integer> itemsPeriode) {
    this.itemsPeriode = itemsPeriode;
  }
 
  public Map<String, Integer> getItemsCommande() {
     Map<Integer,Integer> param=new HashMap<Integer,Integer>();
     param.put(0,this.idFournisseur)
     this.itemsCommande=chartM.getAllCommandes(readProperties.read("Events.allCommandeFournisseur"),param);  
     return itemsCommande;     
  }

  public void setItemsCommande(Map<String, Integer> itemsCommande) {
    this.itemsCommande = itemsCommande;
  }

  public Map<String, Integer> getItemsFournisseurs() {
    return this.itemsFournisseurs;
  }

  public void setItemsFournisseurs(Map<String, Integer> itemsFournisseurs) {
    this.itemsFournisseurs = itemsFournisseurs;
  }

  public List<DetailCommand> getListDetailCommande() {
    Map<Integer, Integer> param=new HashMap<Integer, Integer>();
    param.put(0,this.idCommande);
    this.listDetailCommande=chartM.getListeDetailCommand(readProperties.read("Statistiques.detailCommande"), param);
    return listDetailCommande;
  }

  public void setListDetailCommande(List<DetailCommand> listDetailCommande) {
    this.listDetailCommande = listDetailCommande;
  }

  public List<DetailEvent> getListLivraison() {
    Map<Integer, Integer> param=new HashMap<Integer, Integer>();
    param.put(0,this.idCommande);
    this.listLivraison=chartM.getInventaire(readProperties.read("Statistiques.livraison"),param);
    return listLivraison;
  }

  public void setListLivraison(List<DetailEvent> listLivraison) {
    this.listLivraison = listLivraison;
  }

  }
  
   
   
   public static void main(String args[]) throws ParseException{
         ChartMBean c= new ChartMBean();
     c.getCproperties().setDatDeb(new SimpleDateFormat("dd/MM/yyyy").parse("31/05/2010"));
     c.getCproperties().setDatFin(new Date());
     c.getCproperties().setIdProduit(69);
     c.getCproperties().setIdPeriode(12);
     c.getCproperties().setIdOperations("VT");
     c.getCproperties().setIdCommande(48);
    //c.getDatasetComparaison();
    /* SimpleDateFormat f= new SimpleDateFormat("dd/MM/yyyy");
     System.out.println(f.parse("17/06/2010").compareTo((new Date())));*/
   }
}














TOP

Related Classes of sn.unitech.stock.bean.ChartMBean$Cproperties

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.