use of org.adempiere.pos.service.CPOS in project adempiere-gRPC-Server by adempiere.
the class PointOfSalesServiceImplementation method printTicket.
@Override
public void printTicket(PrintTicketRequest request, StreamObserver<PrintTicketResponse> responseObserver) {
try {
if (Util.isEmpty(request.getOrderUuid())) {
throw new AdempiereException("@C_Order_ID@ @NotFound@");
}
log.fine("Print Ticket = " + request);
ContextManager.getContext(request.getClientRequest().getSessionUuid(), request.getClientRequest().getLanguage(), request.getClientRequest().getOrganizationUuid(), request.getClientRequest().getWarehouseUuid());
//
MPOS pos = getPOSFromUuid(request.getPosUuid(), true);
int orderId = RecordUtil.getIdFromUuid(I_C_Order.Table_Name, request.getOrderUuid(), null);
Env.clearWinContext(1);
CPOS posController = new CPOS();
posController.setOrder(orderId);
posController.setM_POS(pos);
posController.setWindowNo(1);
POSTicketHandler handler = POSTicketHandler.getTicketHandler(posController);
if (handler == null) {
throw new AdempiereException("@TicketClassName@ " + pos.getTicketClassName() + " @NotFound@");
}
// Print it
handler.printTicket();
PrintTicketResponse.Builder ticket = PrintTicketResponse.newBuilder().setResult("Ok");
responseObserver.onNext(ticket.build());
responseObserver.onCompleted();
} catch (Exception e) {
log.severe(e.getLocalizedMessage());
responseObserver.onError(Status.INTERNAL.withDescription(e.getLocalizedMessage()).augmentDescription(e.getLocalizedMessage()).withCause(e).asRuntimeException());
}
}
Aggregations