Package sn.unitech.stock.dao

Source Code of sn.unitech.stock.dao.SysEcritsDao

package sn.unitech.stock.dao;

import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

import javax.persistence.EntityManager;


import sn.unitech.common.dao.ReadProperties;
import sn.unitech.stock.entity.Compte;
import sn.unitech.stock.entity.DetailEvent;
import sn.unitech.stock.entity.Ecritures;
import sn.unitech.stock.entity.EcrituresId;
import sn.unitech.stock.entity.Events;
import sn.unitech.stock.entity.IUniversel;
import sn.unitech.stock.entity.Stock;
import sn.unitech.stock.entity.SysAdherEventId;
import sn.unitech.stock.entity.SysEcrits;
import sn.unitech.stock.entity.SysEvents;
import sn.unitech.stock.entity.SysProduit;
import sn.unitech.stock.entity.SysTaxe;
import sn.unitech.stock.entity.SysUsers;
import sn.unitech.stock.entity.SysUsersId;
import sn.unitech.stock.entity.Taxes;




public class SysEcritsDao<E> extends SysChampDao {
        private List <IUniversel> listICro;
        private List<Taxes> listTaxes;
        private List<Ecritures> listEcritures;
        private List<SysEcrits> listSysEcrits;
        private IUniversel iCro;
        EntityManager em;

    private SysEcritsDao() {
    }
   
    public SysEcritsDao(List<IUniversel>listICro,List<Taxes> listTaxes,EntityManager em){ 
    this.listICro=listICro;
    this.listTaxes=listTaxes;
    this.em=em;
    Map<Integer,String> map=new LinkedHashMap<Integer,String>();
    map.put(0,this.listICro.get(0).getEvents().getSysUsers().getId().getIdAdherent());
    map.put(1,this.listICro.get(0).getEvents().getSysEvents().getIdEvent());
    this.listSysEcrits=this.getResultList(ReadProperties.getReadProperties().read("SysEcrit.jpqlEcrit"),this.em,map);
    this.listEcritures=new ArrayList<Ecritures>();
    }
    private Compte getCompte(String idCompte){
    Compte compte; 
    compte=(Compte)this.find(Compte.class, idCompte,this.em);
    return compte; 
    }
    //definitions des variables du cro
    public Compte getCompteFixe(String varCpt){
    return this.getCompte(varCpt)
    }
    public Compte getCptProduit(){
    return this.getCompte(this.iCro.getSysProduit().getCompte().getIdCompte())
    }
    public Compte getCptFournisseur(){
      Map<Integer,String> param=new LinkedHashMap<Integer,String>();
      param.put(0,this.iCro.getEvents().getCodTiers());
      param.put(1,ToolsDao.CATEGORIEFOURNISSEUR);
      return (Compte) this.getSingleResult(ReadProperties.getReadProperties().read("SysEcrit.jpqlCptCliFournisseur"), em, param)
    }
    public Compte getCptCli(){
      Map<Integer,String> param=new LinkedHashMap<Integer,String>();
      param.put(0,this.iCro.getEvents().getCodTiers());
      param.put(1,ToolsDao.CATEGORIECLIENT);
      return (Compte) this.getSingleResult(ReadProperties.getReadProperties().read("SysEcrit.jpqlCptCliFournisseur"), em, param)
    }
    public Compte getCptUser(){
      return this.getCompte(this.iCro.getEvents().getSysUsers().getCompte().getIdCompte())
    }
    public Double getMontant(){
       return this.iCro.getPrixTot()
    }
    public Double getTotMontant(){
       return this.iCro.getEvents().getMntTot()
    }
    //
   
    private String getConventionName(String variableCro){
    variableCro=variableCro.substring(0,1).toUpperCase()+variableCro.substring(1,variableCro.length());
    return "get"+variableCro; 
    }
   
    private Object declencher(String methodeName)throws Exception
    Method method=this.getClass().getMethod(methodeName,null);
    return method.invoke(this,null);
    }
   
    private boolean isCompteFixe(String variableCompte){
    try{
    Double.parseDouble(variableCompte)
    return true
    }
    catch(RuntimeException r){return false;}
    }
   
    private void getEcritsSchema(int rangProduit,int maxRang) throws Exception {
    String varCpt,varMnt;
    boolean isSomme;
    for (int i=0;i< this.listSysEcrits.size();i++){
    isSomme=this.listSysEcrits.get(i).getSysChampByCodChampMnt().getIsSomme().equals("True")
    if((!isSomme)||(isSomme && rangProduit==maxRang)){ 
    varCpt=this.listSysEcrits.get(i).getSysChampByCodChampCpt().getIdChamp();
    varMnt=this.listSysEcrits.get(i).getSysChampByCodChampMnt().getIdChamp();
    Ecritures ecritures=new Ecritures();
    if(this.isCompteFixe(varCpt))ecritures.setCompte(getCompteFixe(varCpt));
    else ecritures.setCompte((Compte)this.declencher(this.getConventionName(varCpt)));
    ecritures.setMontant((Double)this.declencher(this.getConventionName(varMnt)));
    ecritures.setSens(this.listSysEcrits.get(i).getSens());
    this.listEcritures.add(this.completeEcrits(ecritures));
    }
    }
    }
   
    private void getEcritsTaxes() throws Exception{
    for (int i=0;this.listTaxes!=null && i<this.listTaxes.size();i++){
    Ecritures ecrituresCtrePartie=new Ecritures();
    if(this.isCompteFixe(this.listTaxes.get(i).getCptContrePartie()))
    ecrituresCtrePartie.setCompte(getCompteFixe(this.listTaxes.get(i).getCptContrePartie()))
    else ecrituresCtrePartie.setCompte((Compte)this.declencher(this.getConventionName(this.listTaxes.get(i).getCptContrePartie())));
    ecrituresCtrePartie.setMontant(this.listTaxes.get(i).getValeur());
    ecrituresCtrePartie.setSens(this.sensContraire(this.listTaxes.get(i).getSensTaxe()));
    this.listEcritures.add(this.completeEcrits(ecrituresCtrePartie))
    Ecritures ecrituresTaxe=new Ecritures();
    ecrituresTaxe.setCompte(this.getCompteFixe(this.listTaxes.get(i).getCptTaxe()));
    ecrituresTaxe.setMontant(this.listTaxes.get(i).getValeur());
    ecrituresTaxe.setSens(this.listTaxes.get(i).getSensTaxe());
    this.listEcritures.add(this.completeEcrits(ecrituresTaxe));
    }
    }
   
    private Ecritures completeEcrits(Ecritures ecritures){
    ecritures.setLibelle(this.iCro.getEvents().getSysEvents().getIdEvent().trim()+"/ "+ecritures.getCompte().getIntitule().trim());
    ecritures.setMntDebit(ecritures.getSens()=='D'? ecritures.getMontant():0);
    ecritures.setMntCredit(ecritures.getSens()=='C'? ecritures.getMontant():0);
    ecritures.setSysUsers(this.iCro.getEvents().getSysUsers());
    EcrituresId ecrituresId=new EcrituresId();
    ecrituresId.setIdNumop(this.iCro.getEvents().getIdLot());
    ecritures.setId(ecrituresId);
    ecritures.setSysDate(ToolsDao.getCurrentDate());
    return ecritures; 
    }
   
    private void getAllEcrits() throws Exception{
    for(int i=0;i< this.listICro.size();i++){
    this.iCro=this.listICro.get(i);
    this.getEcritsSchema(i,this.listICro.size()-1);
    }
    this.getEcritsTaxes();
    }
   
    public EntityManager persistAllEcrits()throws Exception{
    this.getAllEcrits()
    System.out.println("size ecrits"+this.listEcritures.size());
    for (short i=0;i<this.listEcritures.size();i++){
    this.listEcritures.get(i).getId().setIdRang(i);
    this.persist(this.listEcritures.get(i),this.em);
    }
    return this.em; 
    }
   
        public Character sensContraire(Character sens){
        if(sens=='C') return 'D';
        else return 'C';
        }
    public static void main(String args[]){
      List<DetailEvent> listDetailEvent=new ArrayList<DetailEvent>();
      DetailEvent detailEvent=new DetailEvent();
      Stock stock=new Stock();
      SysProduit sysProduit=new SysProduit();
      sysProduit.setCompte(new Compte());
      sysProduit.getCompte().setIdCompte("1");
      stock.setSysProduit(sysProduit);
      detailEvent.setStock(stock);
      detailEvent.setEvents(new Events());
      detailEvent.getEvents().setMntNet(new Double(100000));
      detailEvent.setPrixTot(new Double(40000));
      SysUsers sysUsers=new SysUsers();
      sysUsers.setCompte(new Compte());
      sysUsers.getCompte().setIdCompte("2");
      sysUsers.setId(new SysUsersId());
      sysUsers.getId().setIdAdherent("1");
      detailEvent.getEvents().setSysUsers(sysUsers);
      detailEvent.getEvents().setSysEvents(new SysEvents());
      detailEvent.getEvents().getSysEvents().setIdEvent("VT");
      listDetailEvent.add(detailEvent);
      SysEcritsDao sysEcritsDao=new SysEcritsDao(listDetailEvent,new ArrayList(),null);
     
      try {
        sysEcritsDao.persistAllEcrits();
      } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
      }
      System.out.println("taille liste"+sysEcritsDao.listEcritures.size());
        }
}
TOP

Related Classes of sn.unitech.stock.dao.SysEcritsDao

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.