diff --git a/invoice/src/main/java/com/ning/billing/invoice/dao/DefaultInvoiceDao.java b/invoice/src/main/java/com/ning/billing/invoice/dao/DefaultInvoiceDao.java
index 6aa3452..a37f5d6 100644
--- a/invoice/src/main/java/com/ning/billing/invoice/dao/DefaultInvoiceDao.java
+++ b/invoice/src/main/java/com/ning/billing/invoice/dao/DefaultInvoiceDao.java
@@ -242,8 +242,19 @@ public class DefaultInvoiceDao implements InvoiceDao {
}
@Override
- public void notifyOfPaymentAttempt(InvoicePayment invoicePayment, CallContext context) {
- invoicePaymentSqlDao.notifyOfPaymentAttempt(invoicePayment, context);
+ public void notifyOfPaymentAttempt(final InvoicePayment invoicePayment, final CallContext context) {
+ invoicePaymentSqlDao.inTransaction(new Transaction<Void, InvoicePaymentSqlDao>() {
+ @Override
+ public Void inTransaction(InvoicePaymentSqlDao transactional, TransactionStatus status) throws Exception {
+ transactional.notifyOfPaymentAttempt(invoicePayment, context);
+
+ AuditSqlDao auditSqlDao = transactional.become(AuditSqlDao.class);
+ String invoicePaymentId = invoicePayment.getId().toString();
+ auditSqlDao.insertAuditFromTransaction("invoice_payments", invoicePaymentId, ChangeType.INSERT, context);
+
+ return null;
+ }
+ });
}
@Override
diff --git a/invoice/src/main/java/com/ning/billing/invoice/dao/InvoicePaymentSqlDao.java b/invoice/src/main/java/com/ning/billing/invoice/dao/InvoicePaymentSqlDao.java
index 1a506c5..c51d65d 100644
--- a/invoice/src/main/java/com/ning/billing/invoice/dao/InvoicePaymentSqlDao.java
+++ b/invoice/src/main/java/com/ning/billing/invoice/dao/InvoicePaymentSqlDao.java
@@ -42,6 +42,8 @@ import org.skife.jdbi.v2.sqlobject.SqlBatch;
import org.skife.jdbi.v2.sqlobject.SqlQuery;
import org.skife.jdbi.v2.sqlobject.SqlUpdate;
import org.skife.jdbi.v2.sqlobject.customizers.RegisterMapper;
+import org.skife.jdbi.v2.sqlobject.mixins.Transactional;
+import org.skife.jdbi.v2.sqlobject.mixins.Transmogrifier;
import org.skife.jdbi.v2.sqlobject.stringtemplate.ExternalizedSqlViaStringTemplate3;
import org.skife.jdbi.v2.tweak.ResultSetMapper;
@@ -49,7 +51,7 @@ import com.ning.billing.invoice.api.InvoicePayment;
@ExternalizedSqlViaStringTemplate3
@RegisterMapper(InvoicePaymentSqlDao.InvoicePaymentMapper.class)
-public interface InvoicePaymentSqlDao {
+public interface InvoicePaymentSqlDao extends Transactional<InvoicePaymentSqlDao>, Transmogrifier {
@SqlQuery
public InvoicePayment getByPaymentAttemptId(@Bind("paymentAttempt") final String paymentAttemptId);
@@ -74,6 +76,8 @@ public interface InvoicePaymentSqlDao {
void notifyOfPaymentAttempt(@InvoicePaymentBinder final InvoicePayment invoicePayment,
@CallContextBinder final CallContext context);
+
+
public static class InvoicePaymentMapper extends MapperBase implements ResultSetMapper<InvoicePayment> {
@Override
public InvoicePayment map(int index, ResultSet result, StatementContext context) throws SQLException {