package com.ese.beans; import com.ese.model.db.*; import com.ese.model.view.ContainerView; import com.ese.service.ShowPickingListService; import com.ese.utils.FacesUtil; import com.ese.utils.MessageDialog; import com.ese.utils.Utils; import com.sun.istack.internal.NotNull; import lombok.Getter; import lombok.Setter; import javax.annotation.PostConstruct; import javax.faces.bean.ManagedBean; import javax.faces.bean.ManagedProperty; import javax.faces.bean.ViewScoped; import javax.servlet.http.HttpSession; import java.util.HashMap; import java.util.List; @Getter @Setter @ViewScoped @ManagedBean(name = "showPickingListBean") public class ShowPickingListBean extends Bean { private static final long serialVersionUID = 4112578634263394840L; @ManagedProperty("#{showPickingListService}") private ShowPickingListService showPickingListService; private List<PickingOrderModel> pickingOrderModelList; private List<ContainerModel> containerModelList; private List<ContainerItemModel> containerItemModelList; private List<ItemSequenceModel> itemSequenceModelList; private List<AXTruckModel> axTruckModelList; private List<AxEmpltableModel> axEmpltableModelList; @NotNull private ContainerModel containerModel; @NotNull private PickingOrderModel pickingOrderModel; @NotNull private LoadingOrderModel loadingOrderModel; @NotNull private ContainerView containerView; @NotNull private ItemSequenceModel itemSequenceModel; private String modeContainer; private HttpSession session; private String type; @PostConstruct private void onCreation(){ log.debug("onCreation()"); session = FacesUtil.getSession(true); loadingOrderModel = (LoadingOrderModel) session.getAttribute("loadingOrderModel"); type = (String) session.getAttribute("pageType"); if(preLoad()) {//&& isAuthorize(key)){ init(); } } private void init(){ tableOnload(); loadTruck(); loadEmpl(); containerView = new ContainerView(); } private void tableOnload(){ pickingOrderModelList = showPickingListService.getPickingByLoadingOrderId(loadingOrderModel.getId()); } private void loadTruck(){ axTruckModelList = showPickingListService.findAllTruck(); } private void loadEmpl(){ axEmpltableModelList = showPickingListService.findAllEmpl(); } public void onClose(){ if ("O".equals(type)){ FacesUtil.redirect("/site/overSeaLoad.xhtml"); } else if ("D".equals(type)){ FacesUtil.redirect("/site/domesticLoad.xhtml"); } session.removeAttribute("pageType"); session.removeAttribute("loadingOrderModel"); } public void onSelectPickingList(){ if ("O".equals(type)){ FacesUtil.redirect("/site/axSelectPickingList.xhtml"); } else if ("D".equals(type)){ pickingOrderModel = new PickingOrderModel(); FacesUtil.redirect("/site/selectPickingList.xhtml"); } } public void onClickContainerDlg(){ pickingOrderModel = new PickingOrderModel(); containerView = new ContainerView(); containerModel = new ContainerModel(); modeContainer = "Mode : New "; loadingOrderModel = (LoadingOrderModel) session.getAttribute("loadingOrderModel"); onLoadContainer(); } private void onLoadContainer(){ containerModelList = showPickingListService.getContainerByLoadingOrderId(loadingOrderModel.getId()); } public void onSaveContainer(){ try{ showPickingListService.saveOrupdate(containerView, loadingOrderModel); onClickContainerDlg(); showDialogSaved(); } catch (Exception e){ log.debug("Exception e: ", e); showDialogError(e.getMessage()); } } public void onClickTableContainer(){ modeContainer = "Mode : Edit "; containerView = showPickingListService.transformToView(containerModel); } public void onConfirmDeleteContainer(){ showDialog("confirm", "Please confirm delete container no " + containerModel.getContainerNo(), "confirmDeleteDlg"); } public void onDeleteContainer(){ try { showPickingListService.delete(containerModel); onClickContainerDlg(); showDialog("Success", "Delete Success.", "msgBoxSystemMessageDlg"); } catch (Exception e){ log.debug("Exception e : ", e); showDialogError(e.getMessage()); } } public void onSeperateItem(){ if (!Utils.isZero(loadingOrderModel.getId())){ containerItemModelList = showPickingListService.getContainerItemByLoadingOrderId(loadingOrderModel.getId()); } } public void onItemSeq(){ itemSequenceModelList = showPickingListService.getItemSeq(loadingOrderModel.getId()); } public void onSaveItemSeq(){ HashMap<Integer, String> hashMap = new HashMap<>(); for (ItemSequenceModel model : itemSequenceModelList){ if (hashMap.containsKey(model.getSeq())){ showDialog(MessageDialog.WARNING.getMessageHeader(), "Seq dupicate.", "dupicateSeqDlg"); return; } else if(model.getSeq() > itemSequenceModelList.size()){ showDialog(MessageDialog.WARNING.getMessageHeader(), "Seq > จำนวน record", "dupicateSeqDlg"); return; } else { hashMap.put(model.getSeq(), model.getMsItemModel().getItemId()); } } onSave(); } private void onSave(){ try { showPickingListService.save(itemSequenceModelList); showDialogSaved(); } catch (Exception e) { log.debug("Exception error on save item sequence : ", e); showDialogError(e.getMessage()); } } public void onClickSeparateItem(){ FacesUtil.redirect("/site/separateItem.xhtml"); } }