private int getAD_PrintFormat_ID(
      final I_C_RfQResponse rfqResponse, final RfQReportType rfqReportType) {
    final I_C_RfQ_Topic rfqTopic = rfqResponse.getC_RfQ().getC_RfQ_Topic();

    if (rfqReportType == RfQReportType.Invitation) {
      return rfqTopic.getRfQ_Invitation_PrintFormat_ID();
    } else if (rfqReportType == RfQReportType.InvitationWithoutQtyRequired) {
      return rfqTopic.getRfQ_InvitationWithoutQty_PrintFormat_ID();
    } else if (rfqReportType == RfQReportType.Won) {
      return rfqTopic.getRfQ_Win_PrintFormat_ID();
    } else if (rfqReportType == RfQReportType.Lost) {
      return rfqTopic.getRfQ_Lost_PrintFormat_ID();
    } else {
      throw new AdempiereException("@Invalid@ @Type@: " + rfqReportType);
    }
  }
  private IMailTextBuilder createMailTextBuilder(
      final I_C_RfQResponse rfqResponse, final RfQReportType rfqReportType) {
    final I_C_RfQ_Topic rfqTopic = rfqResponse.getC_RfQ().getC_RfQ_Topic();

    final IMailTextBuilder mailTextBuilder;
    if (rfqReportType == RfQReportType.Invitation) {
      mailTextBuilder = mailBL.newMailTextBuilder(rfqTopic.getRfQ_Invitation_MailText());
    } else if (rfqReportType == RfQReportType.InvitationWithoutQtyRequired) {
      mailTextBuilder = mailBL.newMailTextBuilder(rfqTopic.getRfQ_InvitationWithoutQty_MailText());
    } else if (rfqReportType == RfQReportType.Won) {
      mailTextBuilder = mailBL.newMailTextBuilder(rfqTopic.getRfQ_Win_MailText());
    } else if (rfqReportType == RfQReportType.Lost) {
      mailTextBuilder = mailBL.newMailTextBuilder(rfqTopic.getRfQ_Lost_MailText());
    } else {
      throw new AdempiereException("@Invalid@ @Type@: " + rfqReportType);
    }

    mailTextBuilder.setC_BPartner(rfqResponse.getC_BPartner());
    mailTextBuilder.setAD_User(rfqResponse.getAD_User());
    mailTextBuilder.setRecord(rfqResponse);
    return mailTextBuilder;
  }