package com.ese.beans;
import com.ese.service.BarcodePrintingService;
import com.ese.utils.MessageDialog;
import com.ese.utils.Utils;
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;
@Getter
@Setter
@ViewScoped
@ManagedBean(name = "barcodePrintingBean")
public class BarcodePrintingBean extends Bean {
private static final long serialVersionUID = 4112578634029879990L;
@ManagedProperty("#{barcodePrintingService}") private BarcodePrintingService barcodePrintingService;
@ManagedProperty("#{message['authorize.menu.barcode']}") private String key;
private String startBarcode;
private int qty;
private String finishBarcode;
private String lastBarcode;
private int qtyReport;
private String starBarcodeReport;
@PostConstruct
public void onCreation(){
log.debug("onCreation().");
if(preLoad()){ //&& isAuthorize("0100")){
init();
}
}
private void init(){
setLastBarcode(barcodePrintingService.getLastSeq());
String formatBarcode = "TW"+String.format("%08d", Utils.parseInt(getLastBarcode(), 0)+1);
setStartBarcode(formatBarcode);
setFinishBarcode(formatBarcode);
setQty(0);
}
public void onClickOk(){
if(!Utils.isZero(getQty())){
if(getLastBarcode().equalsIgnoreCase(barcodePrintingService.getLastSeq())){
qtyReport = getQty();
starBarcodeReport = replaceFormat(getStartBarcode());
barcodePrintingService.save(getQty(), replaceFormat(getStartBarcode()), replaceFormat(getFinishBarcode()));
setMessage(MessageDialog.SAVE.getMessage());
setMessageHeader(MessageDialog.SAVE.getMessageHeader());
onCreation();
} else {
showDialogWarning("Plz try again.");
init();
}
} else {
showDialogWarning("QTY must more than 0.");
}
}
public void onPrintReport(){
log.debug("starBarcodeReport : {}, qtyReport : {}", starBarcodeReport, qtyReport);
barcodePrintingService.onPrintBarcode(starBarcodeReport, qtyReport);
}
public void calculator(){
final int start = Utils.parseInt(replaceFormat(getStartBarcode()), 0);
final int finish = (getQty() + start) - 1;
final String result = finish > 99999999 ? "99999999" : String.format("%08d", finish);
setFinishBarcode("TW"+ result);
}
private String replaceFormat(String startBarcode){
return startBarcode.replace("TW", "");
}
}