use of ar.com.ergio.print.fiscal.exception.FiscalPrinterStatusError in project lar_361 by comitsrl.
the class HasarFiscalPrinter method execute.
/**
* Ejecuta un comando fiscal en la impresora y analiza la existencia
* de errores en la respuesta. En caso de que se produzca algún error
* se propagan mediante excepciones.
* @param command Comando a ejecutar.
* @return Retorna un <code>FiscalPacket</code> que contiene la respuesta
* de la impresora.
* @throws FiscalPrinterIOException cuando se producce algún error de
* comunicación con el dispositivo.
* @throws FiscalPrinterStatusError cuando la impresora responde con un
* código de estado de error.
*/
protected FiscalPacket execute(FiscalPacket command) throws FiscalPrinterIOException, FiscalPrinterStatusError {
FiscalPacket response = createFiscalPacket();
// Se guarda el comando como el último ejecutado.
setLastRequest(command);
setLastResponse(null);
try {
// Se envía el comando a la interfaz de comunicación para
// ser ejecutado.
getFiscalComm().execute(command, response);
setLastResponse(response);
} catch (IOException e) {
throw new FiscalPrinterIOException(e.getMessage(), command, response);
}
// Se chequea el status devuelto por la impresora.
boolean statusChanged = checkStatus(response);
// el evento correspondiente.
if (statusChanged) {
fireStatusChanged(command, response);
}
// excepción.
if (getMessages().hasErrors()) {
throw new FiscalPrinterStatusError(command, response, getMessages());
}
// Se informa al manejador que el comando se ejecutó satisfactoriamente.
fireCommandExecuted(command, response);
return response;
}
Aggregations