package com.ese.beans;
import com.ese.model.db.MSStockInOutNoteModel;
import com.ese.model.db.StockInOutModel;
import com.ese.model.view.IncomingView;
import com.ese.service.IncomingService;
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.List;
@Getter
@Setter
@ViewScoped
@ManagedBean(name = "incomingBean")
public class IncomingBean extends Bean {
private static final long serialVersionUID = 4112578634263394840L;
@ManagedProperty("#{message['authorize.menu.stockmovement.incoming']}") private String key;
@ManagedProperty("#{incomingService}") private IncomingService incomingService;
private List<MSStockInOutNoteModel> stockInOutNoteModelList;
private List<MSStockInOutNoteModel> stockInOutNoteModelListTV;
@NotNull private IncomingView incomingView;
@NotNull private MSStockInOutNoteModel msStockInOutNoteModel;
private List<StockInOutModel> stockInOutModelList;
@NotNull private StockInOutModel stockInOutModel;
private boolean flagBtnPrint;
private String mode;
private boolean modeFlag;
private boolean flagBtnShow;
private boolean flagBtnPost;
private boolean flagBtnSave;
@PostConstruct
private void onCreation(){
log.debug("onCreation()");
if(preLoad()) {//&& isAuthorize(key)){
init();
}
}
private void init(){
onLoadTable();
onLoadDocumentNote();
mode = "Mode(New)";
incomingView = new IncomingView();
msStockInOutNoteModel = new MSStockInOutNoteModel();
stockInOutModel = new StockInOutModel();
flagBtnPrint = Boolean.TRUE;
modeFlag = Boolean.TRUE;
flagBtnPost = Boolean.TRUE;
flagBtnShow = Boolean.TRUE;
// flagBtnSave = Boolean.TRUE;
}
private void onLoadDocumentNote(){
stockInOutNoteModelList = incomingService.getAllStockInOutNote();
stockInOutNoteModelListTV = incomingService.getAllStockInOutNote();
}
private void onLoadTable(){
stockInOutModelList = incomingService.getOnLoad();
}
public void onClickTable(){
mode = "Mode(Edit)";
incomingView = new IncomingView();
incomingView.setId(stockInOutModel.getId());
incomingView.setDocNo(stockInOutModel.getDocNo());
incomingView.setDocDate(stockInOutModel.getDocDate());
incomingView.setRemark(stockInOutModel.getRemark());
incomingView.setMsStockInOutNoteModel(stockInOutModel.getMsStockInOutNoteModel());
if (stockInOutModel.getStatus().getStatusSeq() == 3){
flagBtnPost = Boolean.FALSE;
flagBtnSave = Boolean.TRUE;
}else if(stockInOutModel.getStatus().getStatusSeq() == 1){
flagBtnPost = Boolean.TRUE;
flagBtnSave = Boolean.FALSE;
}else{
flagBtnPost = Boolean.TRUE;
flagBtnSave = Boolean.TRUE;
}
modeFlag = Boolean.FALSE;
flagBtnShow = Boolean.FALSE;
//flagBtnPost = Boolean.FALSE;
flagBtnPrint = Boolean.FALSE;
}
public void onClickShowItem(){
HttpSession session = FacesUtil.getSession(false);
session.setAttribute("stockInOutModel", stockInOutModel);
FacesUtil.redirect("/site/incomingShowItem.xhtml");
}
public void onClickNew(){
mode = "Mode(New)";
incomingView = new IncomingView();
msStockInOutNoteModel = new MSStockInOutNoteModel();
stockInOutModel = new StockInOutModel();
flagBtnPrint = Boolean.TRUE;
flagBtnShow = Boolean.TRUE;
flagBtnSave = Boolean.FALSE;
modeFlag = Boolean.TRUE;
}
public void onClickSave(){
if (Utils.isZero(incomingView.getMsStockInOutNoteModel().getId())){
showDialog(MessageDialog.WARNING.getMessageHeader(), "Document Note should not be empty");
} else {
if (modeFlag) {
incomingService.save(incomingView);
showDialogSaved();
} else {
incomingService.edit(incomingView);
showDialogEdited();
}
init();
}
}
public void onSearch(){
stockInOutModel = new StockInOutModel();
stockInOutModelList = incomingService.search(incomingView);
}
public void onPrint(){
incomingService.printReport(stockInOutModel.getId());
}
public void onClickPost(){
incomingService.post(incomingView);
showDialogClosed();
init();
}
}