tamanocontroller.java

/*
 * 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 com.avbravo.store.controller;

// <editor-fold defaultstate="collapsed" desc="imports">
import com.avbravo.avbravoutils.JsfUtil;
import com.avbravo.avbravoutils.printer.Printer;
import com.avbravo.ejbjmoordb.interfaces.IController;
import com.avbravo.ejbjmoordb.services.RevisionHistoryServices;
import com.avbravo.ejbjmoordb.services.UserInfoServices;
import com.avbravo.storeejb.datamodel.TamanoDataModel;
import com.avbravo.storeejb.repository.TamanoRepository;
import com.avbravo.storeejb.repository.RevisionHistoryStoreejbRepository;
import com.avbravo.storeejb.entity.Tamano;
import com.avbravo.storeejb.services.TamanoServices;
import com.avbravo.store.util.ResourcesFiles;
import com.avbravo.storeejb.services.AutoincrementableStoreejbServices;
import com.avbravo.storeejb.services.LookupStoreejbServices;

import java.util.ArrayList;
import java.io.Serializable;
import java.util.HashMap;
import java.util.List;
import java.util.Optional;
import javax.annotation.PostConstruct;
import javax.faces.view.ViewScoped;
import javax.inject.Inject;
import javax.inject.Named;
import javax.faces.context.FacesContext;
import org.bson.Document;
import org.primefaces.context.RequestContext;
import org.primefaces.event.SelectEvent;
// </editor-fold>

/**
 *
 * @authoravbravo
 */
@Named
@ViewScoped
public class TamanoController implements Serializable, IController {
// <editor-fold defaultstate="collapsed" desc="fields">  

    private static final long serialVersionUID = 1L;

//    @Inject
//private transient ExternalContext externalContext;
    private Boolean writable = false;
    //DataModel
    private TamanoDataModel tamanoDataModel;
    private String _old = "";
    Integer page = 1;
    Integer rowPage = 25;

    List<Integer> pages = new ArrayList<>();
    //

    //Entity
    Tamano tamano;
    Tamano tamanoSelected;

    //List
    List<Tamano> tamanoList = new ArrayList<>();
    List<Tamano> tamanoFiltered = new ArrayList<>();

    //Repository
    @Inject
    TamanoRepository tamanoRepository;
    @Inject
    RevisionHistoryStoreejbRepository revisionHistoryStoreejbRepository;

    //Services
    //Atributos para busquedas
    @Inject
    AutoincrementableStoreejbServices autoincrementableStoreejbServices;
    @Inject
    LookupStoreejbServices lookupStoreejbServices;
    @Inject
    RevisionHistoryServices revisionHistoryServices;
    @Inject
    UserInfoServices userInfoServices;
    @Inject
    TamanoServices tamanoServices;
    @Inject
    ResourcesFiles rf;
    @Inject
    Printer printer;
    @Inject
    LoginController loginController;

    //List of Relations
    //Repository of Relations
    // </editor-fold>
// <editor-fold defaultstate="collapsed" desc="getter/setter">
    public List<Integer> getPages() {

        return tamanoRepository.listOfPage(rowPage);
    }

    public void setPages(List<Integer> pages) {
        this.pages = pages;
    }

    public LookupStoreejbServices getLookupStoreejbServices() {
        return lookupStoreejbServices;
    }

    public void setLookupStoreejbServices(LookupStoreejbServices lookupStoreejbServices) {
        this.lookupStoreejbServices = lookupStoreejbServices;
    }

    public Integer getPage() {
        return page;
    }

    public void setPage(Integer page) {
        this.page = page;
    }

    public Integer getRowPage() {
        return rowPage;
    }

    public void setRowPage(Integer rowPage) {
        this.rowPage = rowPage;
    }

    public TamanoServices getTamanoServices() {
        return tamanoServices;
    }

    public void setTamanoServices(TamanoServices tamanoServices) {
        this.tamanoServices = tamanoServices;
    }

    public List<Tamano> getTamanoList() {
        return tamanoList;
    }

    public void setTamanoList(List<Tamano> tamanoList) {
        this.tamanoList = tamanoList;
    }

    public List<Tamano> getTamanoFiltered() {
        return tamanoFiltered;
    }

    public void setTamanoFiltered(List<Tamano> tamanoFiltered) {
        this.tamanoFiltered = tamanoFiltered;
    }

    public Tamano getTamano() {
        return tamano;
    }

    public void setTamano(Tamano tamano) {
        this.tamano = tamano;
    }

    public Tamano getTamanoSelected() {
        return tamanoSelected;
    }

    public void setTamanoSelected(Tamano tamanoSelected) {
        this.tamanoSelected = tamanoSelected;
    }

    public TamanoDataModel getTamanoDataModel() {
        return tamanoDataModel;
    }

    public void setTamanoDataModel(TamanoDataModel tamanoDataModel) {
        this.tamanoDataModel = tamanoDataModel;
    }

    public Boolean getWritable() {
        return writable;
    }

    public void setWritable(Boolean writable) {
        this.writable = writable;
    }

    // </editor-fold>
// <editor-fold defaultstate="collapsed" desc="constructor">
    public TamanoController() {
    }

    // </editor-fold>
// <editor-fold defaultstate="collapsed" desc="preRenderView()">
    @Override
    public String preRenderView(String action) {
        //acciones al llamar el formulario despues del init    
        return "";
    }
// </editor-fold>
// <editor-fold defaultstate="collapsed" desc="init">

    @PostConstruct
    public void init() {
        try {

            String action = loginController.get("tamano");
            String id = loginController.get("idtamano");
            String pageSession = loginController.get("pagetamano");
            //Search
            loginController.put("searchtamano", "_init");
            writable = false;

            tamanoList = new ArrayList<>();
            tamanoFiltered = new ArrayList<>();
            tamano = new Tamano();
            tamanoSelected = new Tamano();

            tamanoDataModel = new TamanoDataModel(tamanoList);

            if (id != null) {

                Optional<Tamano> optional = tamanoRepository.find("idtamano", Integer.parseInt(id));
                if (optional.isPresent()) {
                    tamano = optional.get();
                    tamanoSelected = optional.get();
                    _old = tamano.getDescripcion();
                    writable = true;

                }
            }
            if (action != null && action.equals("gonew")) {
                tamano = new Tamano();
                tamanoSelected = tamano;
                writable = false;

            }
            if (pageSession != null) {
                page = Integer.parseInt(pageSession);
            }
            Integer c = tamanoRepository.sizeOfPage(rowPage);
            page = page > c ? c : page;
            move();
        } catch (Exception e) {
            JsfUtil.errorMessage("init() " + e.getLocalizedMessage());
        }
    }// </editor-fold>
// <editor-fold defaultstate="collapsed" desc="reset">

    @Override
    public void reset() {

        RequestContext.getCurrentInstance().reset(":form:content");
        prepare("new");
    }// </editor-fold>

// <editor-fold defaultstate="collapsed" desc="prepare(String action, Object... item)">
    @Override
    public String prepare(String action, Object... item) {
        String url = "";
        try {
            loginController.put("pagetamano", page.toString());
            loginController.put("tamano", action);
            switch (action) {
                case "new":
                    tamano = new Tamano();
                    tamanoSelected = new Tamano();

                    writable = false;
                    break;

                case "view":
                    if (item.length != 0) {
                        tamanoSelected = (Tamano) item[0];
                        tamano = tamanoSelected;
                        loginController.put("idtamano", tamano.getIdtamano().toString());
                    }

                    url = "/pages/tamano/view.xhtml";
                    break;

                case "golist":
                    url = "/pages/tamano/list.xhtml";
                    break;

                case "gonew":
                    url = "/pages/tamano/new.xhtml";
                    break;

            }

        } catch (Exception e) {
            JsfUtil.errorMessage("prepare() " + e.getLocalizedMessage());
        }

        return url;
    }// </editor-fold>

// <editor-fold defaultstate="collapsed" desc="showAll">
    @Override
    public String showAll() {
        try {
            tamanoList = new ArrayList<>();
            tamanoFiltered = new ArrayList<>();
            tamanoList = tamanoRepository.findAll();
            tamanoFiltered = tamanoList;
            tamanoDataModel = new TamanoDataModel(tamanoList);

        } catch (Exception e) {
            JsfUtil.errorMessage("showAll()" + e.getLocalizedMessage());
        }
        return "";
    }// </editor-fold>
// <editor-fold defaultstate="collapsed" desc="isNew">

    @Override
    public String isNew() {
        try {
            writable = true;
if(JsfUtil.isVacio(tamano.getDescripcion())){
    writable=false;
    return "";
}
            List<Tamano> list = tamanoRepository.findBy("descripcion", tamano.getDescripcion());
            if (!list.isEmpty()) {
                writable = false;

                JsfUtil.warningMessage(rf.getAppMessage("warning.idexist"));
                return "";
            } else {
                String idsecond = tamano.getDescripcion();
                tamano = new Tamano();
                tamano.setDescripcion(idsecond);
                tamanoSelected = new Tamano();
            }

        } catch (Exception e) {
            JsfUtil.errorMessage("isNew()" + e.getLocalizedMessage());
        }
        return "";
    }// </editor-fold>

// <editor-fold defaultstate="collapsed" desc="save">
    @Override
    public String save() {
        try {
  List<Tamano> list = tamanoRepository.findBy("descripcion", tamano.getDescripcion());
            if (!list.isEmpty()) {
                writable = false;

                JsfUtil.warningMessage(rf.getAppMessage("warning.idexist"));
                return "";
            }
            Integer identity = autoincrementableStoreejbServices.getContador("tamano");
            tamano.setIdtamano(identity);

            tamano.setUserInfo(userInfoServices.generateListUserinfo(loginController.getUsername(), "create"));

            if (tamanoRepository.save(tamano)) {
                revisionHistoryStoreejbRepository.save(revisionHistoryServices.getRevisionHistory(tamano.getIdtamano().toString(), loginController.getUsername(),
                        "create", "tamano", tamanoRepository.toDocument(tamano).toString()));
                JsfUtil.successMessage(rf.getAppMessage("info.save"));
                reset();
            } else {
                JsfUtil.successMessage("save() " + tamanoRepository.getException().toString());
            }

        } catch (Exception e) {
            JsfUtil.errorMessage("save()" + e.getLocalizedMessage());
        }
        return "";
    }// </editor-fold>
// <editor-fold defaultstate="collapsed" desc="edit">

    @Override
    public String edit() {
        try {

            if (!tamano.getDescripcion().equals(_old)) {

                List<Tamano> list = tamanoRepository.findBy("descripcion", tamano.getDescripcion());
                if (!list.isEmpty()) {
                    writable = false;

                    JsfUtil.warningMessage(rf.getAppMessage("warning.noeditableproduceduplicado"));
                    return "";
                }

            }

            tamano.getUserInfo().add(userInfoServices.generateUserinfo(loginController.getUsername(), "update"));

            revisionHistoryStoreejbRepository.save(revisionHistoryServices.getRevisionHistory(tamano.getIdtamano().toString(), loginController.getUsername(),
                    "update", "tamano", tamanoRepository.toDocument(tamano).toString()));

            tamanoRepository.update(tamano);
            JsfUtil.successMessage(rf.getAppMessage("info.update"));
        } catch (Exception e) {
            JsfUtil.errorMessage("edit()" + e.getLocalizedMessage());
        }
        return "";
    }// </editor-fold>
// <editor-fold defaultstate="collapsed" desc="delete(Object item, Boolean deleteonviewpage)">

    @Override
    public String delete(Object item, Boolean deleteonviewpage) {
        String path = "";
        try {
            tamano = (Tamano) item;

            tamanoSelected = tamano;
            if (tamanoRepository.delete("idtamano", tamano.getIdtamano())) {
                revisionHistoryStoreejbRepository.save(revisionHistoryServices.getRevisionHistory(tamano.getIdtamano().toString(), loginController.getUsername(), "delete", "tamano", tamanoRepository.toDocument(tamano).toString()));
                JsfUtil.successMessage(rf.getAppMessage("info.delete"));

                if (!deleteonviewpage) {
                    tamanoList.remove(tamano);
                    tamanoFiltered = tamanoList;
                    tamanoDataModel = new TamanoDataModel(tamanoList);

                    FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put("pagetamano", page.toString());

                } else {
                    tamano = new Tamano();
                    tamanoSelected = new Tamano();
                    writable = false;

                }

            }

        } catch (Exception e) {
            JsfUtil.errorMessage("delete() " + e.getLocalizedMessage());
        }
        //  path = deleteonviewpage ? "/pages/tamano/list.xhtml" : "";
        path = "";
        return path;
    }// </editor-fold>

// <editor-fold defaultstate="collapsed" desc="deleteAll">
    @Override
    public String deleteAll() {
        if (tamanoRepository.deleteAll() != 0) {
            JsfUtil.successMessage(rf.getAppMessage("info.delete"));
        }
        return "";
    }// </editor-fold>
// <editor-fold defaultstate="collapsed" desc="print">

    @Override
    public String print() {
        try {
            FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put("pagetamano", page.toString());
            List<Tamano> list = new ArrayList<>();
            list.add(tamano);
            String ruta = "/resources/reportes/tamano/details.jasper";
            HashMap parameters = new HashMap();
            // parameters.put("P_parametro", "valor");
            printer.imprimir(list, ruta, parameters);
        } catch (Exception ex) {
            JsfUtil.errorMessage("imprimir() " + ex.getLocalizedMessage());
        }
        return null;
    }// </editor-fold>
// <editor-fold defaultstate="collapsed" desc="printAll">

    @Override
    public String printAll() {
        try {
            List<Tamano> list = new ArrayList<>();
            list = tamanoRepository.findAll(new Document("idtamano", 1));

            String ruta = "/resources/reportes/tamano/all.jasper";
            HashMap parameters = new HashMap();
            // parameters.put("P_parametro", "valor");
            printer.imprimir(list, ruta, parameters);
        } catch (Exception ex) {
            JsfUtil.errorMessage("imprimir() " + ex.getLocalizedMessage());
        }
        return null;
    }// </editor-fold>
// <editor-fold defaultstate="collapsed" desc="handleSelect">

    public void handleSelect(SelectEvent event) {
        try {
            tamanoList.removeAll(tamanoList);
            tamanoList.add(tamanoSelected);
            tamanoFiltered = tamanoList;
            tamanoDataModel = new TamanoDataModel(tamanoList);
            loginController.put("searchtamano", "_autocomplete");
        } catch (Exception ex) {
            JsfUtil.errorMessage("handleSelect() " + ex.getLocalizedMessage());
        }
    }// </editor-fold>

// <editor-fold defaultstate="collapsed" desc="last">
    @Override
    public String last() {
        try {
            page = tamanoRepository.sizeOfPage(rowPage);
            move();
        } catch (Exception e) {
            JsfUtil.errorMessage("last() " + e.getLocalizedMessage());
        }
        return "";
    }// </editor-fold>
// <editor-fold defaultstate="collapsed" desc="first">

    @Override
    public String first() {
        try {
            page = 1;
            move();
        } catch (Exception e) {
            JsfUtil.errorMessage("first() " + e.getLocalizedMessage());
        }
        return "";
    }// </editor-fold>
// <editor-fold defaultstate="collapsed" desc="next">

    @Override
    public String next() {
        try {
            if (page < (tamanoRepository.sizeOfPage(rowPage))) {
                page++;
            }
            move();
        } catch (Exception e) {
            JsfUtil.errorMessage("next() " + e.getLocalizedMessage());
        }
        return "";
    }// </editor-fold>
// <editor-fold defaultstate="collapsed" desc="back">

    @Override
    public String back() {
        try {
            if (page > 1) {
                page--;
            }
            move();
        } catch (Exception e) {
            JsfUtil.errorMessage("back() " + e.getLocalizedMessage());
        }
        return "";
    }// </editor-fold>
// <editor-fold defaultstate="collapsed" desc="skip(Integer page)">

    @Override
    public String skip(Integer page) {
        try {
            this.page = page;
            move();
        } catch (Exception e) {
            JsfUtil.errorMessage("skip() " + e.getLocalizedMessage());
        }
        return "";
    }// </editor-fold>
// <editor-fold defaultstate="collapsed" desc="move">

    @Override
    public void move() {

        try {

            Document doc;
            switch (loginController.get("searchtamano")) {
                case "_init":
                    tamanoList = tamanoRepository.findPagination(page, rowPage);

                    break;
                case "_autocomplete":
                    //no se realiza ninguna accion 
                    break;

                case "idtamano":
                    doc = new Document("idtamano", tamano.getIdtamano());
                    tamanoList = tamanoRepository.findFilterPagination(doc, page, rowPage, new Document("idtamano", -1));
                    break;

                default:

                    tamanoList = tamanoRepository.findPagination(page, rowPage);
                    break;
            }

            tamanoFiltered = tamanoList;

            tamanoDataModel = new TamanoDataModel(tamanoList);

        } catch (Exception e) {
            JsfUtil.errorMessage("move() " + e.getLocalizedMessage());
        }
    }// </editor-fold>
// <editor-fold defaultstate="collapsed" desc="tamano()">

    @Override
    public String clear() {
        try {
            loginController.put("searchtamano", "_init");
            page = 1;
            move();
        } catch (Exception e) {
            JsfUtil.errorMessage("clear()" + e.getLocalizedMessage());
        }
        return "";
    }// </editor-fold>

    // <editor-fold defaultstate="collapsed" desc="searchBy(String string)">
    @Override
    public String searchBy(String string) {
        try {

            loginController.put("searchtamano", string);

            writable = true;
            move();

        } catch (Exception e) {
            JsfUtil.errorMessage("searchBy()" + e.getLocalizedMessage());
        }
        return "";
    }// </editor-fold>

}

Last updated

Was this helpful?