protected Long createCredit( final Long userId, final Long offerId, final Long merchantId, final Long locationId) { Kikbak kikbak = roKikbakDao.findByOfferId(offerId); Offer offer = roOfferDao.findById(offerId); Credit credit = new Credit(); credit.setBeginDate(offer.getBeginDate()); credit.setEndDate(offer.getEndDate()); credit.setLocationId(locationId); credit.setMerchantId(offer.getMerchantId()); credit.setOfferId(offerId); credit.setUserId(userId); credit.setValue(kikbak.getValue()); credit.setRewardType(kikbak.getRewardType()); credit.setKikbakId(kikbak.getId()); credit.setRedeemCount(1); credit.setCreatedDate(new Date()); Transaction txn = new Transaction(); txn.setAmount(credit.getValue()); txn.setAuthorizationCode("created"); txn.setLocationId(locationId); txn.setMerchantId(merchantId); txn.setOfferId(offerId); txn.setTransactionType((short) TransactionType.Credit.ordinal()); txn.setVerificationCode("created"); txn.setUserId(userId); txn.setDate(new Date()); rwCreditDao.makePersistent(credit); rwTransactionDao.makePersistent(txn); return credit.getId(); }