killbill-uncached

invoice: add missing audits for credits Signed-off-by:

8/11/2012 4:23:18 PM

Details

diff --git a/invoice/src/main/java/com/ning/billing/invoice/dao/AuditedInvoiceDao.java b/invoice/src/main/java/com/ning/billing/invoice/dao/AuditedInvoiceDao.java
index 49d21ee..5f7b71f 100644
--- a/invoice/src/main/java/com/ning/billing/invoice/dao/AuditedInvoiceDao.java
+++ b/invoice/src/main/java/com/ning/billing/invoice/dao/AuditedInvoiceDao.java
@@ -583,7 +583,12 @@ public class AuditedInvoiceDao implements InvoiceDao {
 
                 // Note! The amount is negated here!
                 final InvoiceItem credit = new CreditAdjInvoiceItem(invoiceIdForCredit, accountId, effectiveDate, positiveCreditAmount.negate(), currency);
-                insertItemAndAddCBAIfNeeded(transactional, credit, context);
+                final Long recordId = insertItemAndAddCBAIfNeeded(transactional, credit, context);
+
+                // Add audit
+                final EntityAudit audit = new EntityAudit(TableName.INVOICE_ITEMS, recordId, ChangeType.INSERT);
+                transactional.insertAuditFromTransaction(audit, context);
+
                 return credit;
             }
         });
@@ -650,11 +655,13 @@ public class AuditedInvoiceDao implements InvoiceDao {
      * @param item          the invoice item to create
      * @param context       the call context
      */
-    private void insertItemAndAddCBAIfNeeded(final InvoiceSqlDao transactional, final InvoiceItem item, final CallContext context) {
+    private Long insertItemAndAddCBAIfNeeded(final InvoiceSqlDao transactional, final InvoiceItem item, final CallContext context) {
         final InvoiceItemSqlDao transInvoiceItemDao = transactional.become(InvoiceItemSqlDao.class);
         transInvoiceItemDao.create(item, context);
 
         addCBAIfNeeded(transactional, item.getInvoiceId(), context);
+
+        return transInvoiceItemDao.getRecordId(item.getId().toString());
     }
 
     /**
diff --git a/invoice/src/main/resources/com/ning/billing/invoice/dao/InvoiceItemSqlDao.sql.stg b/invoice/src/main/resources/com/ning/billing/invoice/dao/InvoiceItemSqlDao.sql.stg
index 2e2c6c9..0c14015 100644
--- a/invoice/src/main/resources/com/ning/billing/invoice/dao/InvoiceItemSqlDao.sql.stg
+++ b/invoice/src/main/resources/com/ning/billing/invoice/dao/InvoiceItemSqlDao.sql.stg
@@ -25,6 +25,18 @@ getById() ::= <<
   WHERE id = :id;
 >>
 
+getByRecordId() ::= <<
+  SELECT <fields()>
+  FROM invoice_items
+  WHERE record_id = :recordId;
+>>
+
+getRecordId() ::= <<
+  SELECT record_id
+  FROM invoice_items
+  WHERE id = :id;
+>>
+
 getInvoiceItemsByInvoice() ::= <<
   SELECT <fields()>
   FROM invoice_items