package com.ese.beans; import com.ese.model.db.InvOnHandModel; import com.ese.model.db.StockInOutModel; import com.ese.model.view.BarcodeRegisterView; import com.ese.model.view.IncomingView; import com.ese.model.view.StockMovementInView; import com.ese.service.BarcodeRegisterService; import com.ese.service.IncomingService; import com.ese.utils.FacesUtil; import com.ese.utils.MessageDialog; import com.ese.utils.NamesUtil; 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.ArrayList; import java.util.List; @Getter @Setter @ViewScoped @ManagedBean(name = "incomingShowItemBean") public class IncomingShowItemBean extends Bean{ private static final long serialVersionUID = 4112578634029874840L; @ManagedProperty("#{barcodeRegisterService}") private BarcodeRegisterService barcodeRegisterService; @ManagedProperty("#{incomingService}") private IncomingService incomingService; @ManagedProperty("#{message['authorize.menu.barcode']}") private String key; private BarcodeRegisterView barcodeRegisterView; private IncomingView incomingView; // private List<MSItemModel> msItemModelList; @NotNull private List<InvOnHandModel> invOnHandModelList; @NotNull private List<InvOnHandModel> select; // private List<BarcodeRegisterModel> barcodeRegisterModelList; private List<StockMovementInView> stockMovementInViewList; // private BarcodeRegisterModel barcodeRegisterModel; private StockMovementInView stockMovementInView; private String selectType; private String productSearch; private String barcodeSearch; private String barcodeSelectType; private boolean flagBtnSelect; private boolean flagBtnDelete; private boolean flagBtnSave; private boolean flagBtnPrint; private boolean flagBtnEdit; private boolean flagBtnNewItem; private boolean flagItem; private boolean flagQty; private boolean flagStartBarcode; private String modeBarcode; private StockInOutModel stockInOutModel; @PostConstruct public void onCreation(){ HttpSession session = FacesUtil.getSession(false); stockInOutModel = (StockInOutModel) session.getAttribute("stockInOutModel"); if (stockInOutModel != null) { incomingView = new IncomingView(); incomingView.setDocDate(stockInOutModel.getDocDate()); incomingView.setDocNo(stockInOutModel.getDocNo()); incomingView.setMsStockInOutNoteModel(stockInOutModel.getMsStockInOutNoteModel()); incomingView.setRemark(stockInOutModel.getRemark()); log.debug("onCreation()."); if(preLoad()){// && isAuthorize(key)){ init(); } } else { FacesUtil.redirect(NamesUtil.LOGIN_PAGE.getName()); } } private void init(){ barcodeRegisterView = new BarcodeRegisterView(); // msItemModelList = Utils.getEmptyList(); // barcodeRegisterModelList = Utils.getEmptyList(); initBtn(); initField(); onLoadDataTable(); onClickButtonNew(); } private void initField(){ flagItem = false; flagQty = false; flagStartBarcode = false; } private void initBtn(){ flagBtnSelect = true; flagBtnDelete = true; flagBtnSave = true; flagBtnEdit = true; flagBtnPrint = true; } private void onLoadDataTable(){ onLoadDataBarcode(); // log.debug("-- onLoadDataTable() returned size = {}", barcodeRegisterModelList.size()); // barcodeRegisterModel = new BarcodeRegisterModel(); stockMovementInView = new StockMovementInView(); } private void onLoadDataBarcode(){ // barcodeRegisterModelList = barcodeRegisterService.getByStockInOut(stockInOutModel.getDocNo()); stockMovementInViewList = incomingService.getStockMoveInByStockInOutId(stockInOutModel.getId()); } public void onClickButtonNew(){ log.debug("-- onClickButtonNew()"); barcodeRegisterView = new BarcodeRegisterView(); flagBtnSave = false; flagBtnEdit = true; flagBtnPrint = true; if (stockInOutModel.getStatus().getStatusSeq() == 1 || stockInOutModel.getStatus().getStatusSeq() == 2){ flagBtnNewItem = Boolean.FALSE; flagBtnDelete = Boolean.FALSE; } else { flagBtnNewItem = Boolean.TRUE; flagBtnDelete = Boolean.TRUE; } // barcodeRegisterModel = new BarcodeRegisterModel(); stockMovementInView = new StockMovementInView(); modeBarcode = "Mode(New) "; } public void calculator(){ log.debug("-- calculator()"); final int qty = barcodeRegisterView.getQty(); final int start = Utils.parseInt(replaceFormat(barcodeRegisterView.getStartBarcode()), 0); final int finish = (qty + start) - 1; final String result = finish > 999999999 ? "999999999" : String.format("%09d", finish); barcodeRegisterView.setFinishBarcode(result); barcodeRegisterView.setFinishBarcodeText("T" + result); barcodeRegisterView.setStartBarcodeText("T" + String.format("%09d", start)); } private boolean mandate(){ if(mandateQty()){ setMessage("Qtr should be greater than 0."); return false; } else if(mandateItem()){ setMessage("Item should not be empty."); return false; } else if(mandateStartBarcode()){ setMessage("Start Barcode should be 10 characters."); return false; } else if (mandateDuplicateStartBarcode()) { setMessage("Start Barcode or Finish Barcode is duplicate."); return false; } else { return true; } } private boolean mandateQty(){ flagQty = (Utils.isZero(Utils.parseString(barcodeRegisterView.getQty(), "")) || barcodeRegisterView.getQty() < 1 )? true : false ; return flagQty; } private boolean mandateStartBarcode(){ final int FIX_LENGTH = 9; final String stringReplace = replaceFormat(barcodeRegisterView.getStartBarcode()); flagStartBarcode = stringReplace.length() != FIX_LENGTH ? true : false ; barcodeRegisterView.setStartBarcode(stringReplace); return flagStartBarcode; } private boolean mandateDuplicateStartBarcode(){ return barcodeRegisterService.isDuplicate(barcodeRegisterView.getStartBarcode(), barcodeRegisterView.getFinishBarcode(), barcodeRegisterView.getId()); } private boolean mandateItem(){ // flagItem = Utils.isZero(barcodeRegisterView.getMsItemModel().getId()) ? true : false ; return flagItem; } public void onInitSearch(){ log.debug("-- onInitSearch()"); selectType = "3"; productSearch = ""; invOnHandModelList = Utils.getEmptyList(); } public void onSubmitSearchBarcode(){ log.debug("-- onSubmitSearch()"); if(!Utils.isZero(barcodeSearch.length())){ // barcodeRegisterModelList = barcodeRegisterService.findBarcodeByCondition(barcodeSelectType, barcodeSearch); } else { onLoadDataBarcode(); } } public void onSubmitSearch(){ log.debug("-- onSubmitSearch()"); invOnHandModelList = incomingService.findInvOnHand(productSearch); //msItemModelList = barcodeRegisterService.findByCondition(selectType, productSearch); // // invOnHandModelList = new ArrayList<>(); // for (int i = 0; i < 10; i++) { // InvOnHandModel invOnHandModel = new InvOnHandModel(); // invOnHandModel.setId(i); // invOnHandModel.setSnBarcode(""+i); // invOnHandModelList.add(invOnHandModel); // } } public void onClickTableDialog(){ log.debug("-- onClickTable()"); if (select.size() > 0) { flagBtnSelect = false; } } public void onClickTable(){ log.debug("-- onClickTable() {}", stockMovementInView); // flagBtnSave = true; // // flagBtnEdit = false; // flagBtnPrint = false; // barcodeRegisterView = barcodeRegisterService.convertToView(barcodeRegisterModel); //if stock_movement_in.status = 1; delete button should be enable. if (!Utils.isNull(stockInOutModel)){ if (stockInOutModel.getStatus().getStatusSeq() == 4){ flagBtnDelete = Boolean.TRUE; }else flagBtnDelete = Boolean.FALSE; }else flagBtnDelete = Boolean.TRUE; // modeBarcode = "Mode(Edit) "; } //TODO public void onClickSelectOnDialog(){ log.debug("-- onClickSelectOnDialog() {}", select); if (select.size() > 0) { incomingService.save(productSearch, select, stockInOutModel.getId()); showDialog("Select", "Select success.", "msgBoxSystemMessageDlg"); flagBtnSelect = true; select = new ArrayList<>(); } } public void onCloseDialog(){ initBtn(); initField(); onLoadDataTable(); onClickButtonNew(); } public void preDelete(){ showDialog(MessageDialog.WARNING.getMessageHeader(), "Are you want to delete this item?", "confirmClosePalletDlg"); } public void onDelete(){ log.debug("-- onDelete()"); try { // barcodeRegisterService.deleteFormSetValid(barcodeRegisterModel); incomingService.delete(stockMovementInView.getId()); showDialogDeleted(); init(); } catch (Exception e) { log.error("{}",e); showDialogError(e.getMessage()); } } public void onSave(){ log.debug("-- onSave()"); try { if(mandate()){ barcodeRegisterView.setDocumentNo(stockInOutModel.getDocNo()); barcodeRegisterService.saveOrUpdate(barcodeRegisterView); if (!Utils.isZero(barcodeRegisterView.getId())){ showDialogEdited(); } else { showDialogSaved(); } init(); } else { showDialogWarning(getMessage()); } } catch (Exception e) { log.error("{}",e); showDialogError(e.getMessage()); } } public void onEdit(){ log.debug("-- onEdit()"); try { if(mandate()){ barcodeRegisterService.edit(barcodeRegisterView); showDialogEdited(); init(); } else { showDialogWarning(getMessage()); } } catch (Exception e) { log.error("{}",e); showDialogError(e.getMessage()); } } public void onPrint(){ // barcodeRegisterService.onPrintBarcode(barcodeRegisterModel.getId()); } private String replaceFormat(String startBarcode){ return startBarcode.replace("T", "").replace("-", "").replace("_", ""); } public void onChangeDocumentDate(){ log.debug("--- {}", barcodeRegisterView.getDocumentDate()); barcodeRegisterView.setBatchNo(Utils.getBatchNo(barcodeRegisterView.getDocumentDate())); log.debug("------- {}", Utils.getBatchNo(barcodeRegisterView.getDocumentDate())); } public void onClose(){ HttpSession session = FacesUtil.getSession(false); session.removeAttribute("stockInOutModel"); FacesUtil.redirect("/site/incoming.xhtml"); } }