protected void writeLaborGLEntry(
      LaborOriginEntry laborOriginEntry,
      LaborLedgerUnitOfWork laborLedgerUnitOfWork,
      Date runDate,
      int lineNumber,
      Map<String, Integer> glEntryReportSummary) {
    LaborOriginEntry summarizedEntry =
        summarizeLaborGLEntries(
            laborOriginEntry, laborLedgerUnitOfWork, runDate, lineNumber, glEntryReportSummary);
    if (summarizedEntry == null) {
      return;
    }

    try {
      List<Message> errors = this.isPostableForLaborGLEntry(summarizedEntry);
      if (errors == null || errors.isEmpty()) {
        String operationType = laborGLLedgerEntryPoster.post(summarizedEntry, 0, runDate, null);
        updateReportSummary(
            glEntryReportSummary, laborGLLedgerEntryPoster.getDestinationName(), operationType);
      } else {
        updateReportSummary(glEntryReportSummary, ORIGN_ENTRY, KFSConstants.OperationType.BYPASS);
      }
    } catch (RuntimeException ioe) {
      // catch here again, it should be from postSingleEntryIntoLaborLedger
      LOG.error(
          "postLaborGLEntries stopped due to: "
              + ioe.getMessage()
              + " on line number : "
              + lineNumber,
          ioe);
      throw new RuntimeException(
          "Unable to execute: " + ioe.getMessage() + " on line number : " + lineNumber, ioe);
    }
  }
 /**
  * update the labor ledger balance for the given entry
  *
  * @param originEntry the given origin entry, a transaction
  * @param postDate the data when the transaction is processes return the operation type of the
  *     process
  */
 protected String updateLedgerBalance(LaborOriginEntry originEntry, Date postDate) {
   return laborLedgerBalancePoster.post(originEntry, 0, postDate, null);
 }
 /**
  * post the given entry to the labor entry table
  *
  * @param originEntry the given origin entry, a transaction
  * @param postDate the data when the transaction is processes return the operation type of the
  *     process
  */
 protected String postAsLedgerEntry(LaborOriginEntry originEntry, Date postDate) {
   return laborLedgerEntryPoster.post(originEntry, 0, postDate, null);
 }