@Override public BusinessInvoiceModelDao map(final int index, final ResultSet r, final StatementContext ctx) throws SQLException { final UUID invoiceId = UUID.fromString(r.getString(1)); final Integer invoiceNumber = r.getInt(2); final DateTime createdDate = new DateTime(r.getLong(3), DateTimeZone.UTC); final DateTime updatedDate = new DateTime(r.getLong(4), DateTimeZone.UTC); final UUID accountId = UUID.fromString(r.getString(5)); final String accountKey = r.getString(6); final LocalDate invoiceDate = getDate(r, "invoice_date"); final LocalDate targetDate = getDate(r, "target_date"); final Currency currency = Currency.valueOf(r.getString(9)); final BigDecimal balance = BigDecimal.valueOf(r.getDouble(10)); final BigDecimal amountPaid = BigDecimal.valueOf(r.getDouble(11)); final BigDecimal amountCharged = BigDecimal.valueOf(r.getDouble(12)); final BigDecimal amountCredited = BigDecimal.valueOf(r.getDouble(13)); return new BusinessInvoiceModelDao(accountId, accountKey, amountCharged, amountCredited, amountPaid, balance, createdDate, currency, invoiceDate, invoiceId, invoiceNumber, targetDate, updatedDate); } }
public DefaultBusinessInvoice(final BusinessInvoiceModelDao businessInvoiceModelDao, final Collection<BusinessInvoiceItemModelDao> businessInvoiceItemModelDaos) { super(businessInvoiceModelDao.getInvoiceId(), businessInvoiceModelDao.getCreatedDate(), businessInvoiceModelDao.getUpdatedDate()); this.accountId = businessInvoiceModelDao.getAccountId(); this.accountKey = businessInvoiceModelDao.getAccountKey(); this.amountCharged = businessInvoiceModelDao.getAmountCharged(); this.amountCredited = businessInvoiceModelDao.getAmountCredited(); this.amountPaid = businessInvoiceModelDao.getAmountPaid(); this.balance = businessInvoiceModelDao.getBalance(); this.currency = businessInvoiceModelDao.getCurrency(); this.invoiceDate = businessInvoiceModelDao.getInvoiceDate(); this.invoiceId = businessInvoiceModelDao.getInvoiceId(); this.invoiceNumber = businessInvoiceModelDao.getInvoiceNumber(); this.targetDate = businessInvoiceModelDao.getTargetDate(); this.invoiceItems = toInvoiceItems(businessInvoiceItemModelDaos); }
@Test(groups = "slow") public void testCRUD() throws Exception { final UUID invoiceId = UUID.randomUUID(); final UUID accountId = UUID.randomUUID(); final String accountKey = UUID.randomUUID().toString(); final BusinessInvoiceModelDao invoice = createInvoice(accountId, invoiceId, accountKey); // Verify initial state Assert.assertNull(invoiceSqlDao.getInvoice(invoice.getInvoiceId().toString(), internalCallContext)); Assert.assertEquals(invoiceSqlDao.deleteInvoice(invoice.getInvoiceId().toString(), internalCallContext), 0); // Add the invoice Assert.assertEquals(invoiceSqlDao.createInvoice(invoice, internalCallContext), 1); // Retrieve it Assert.assertEquals(invoiceSqlDao.getInvoice(invoice.getInvoiceId().toString(), internalCallContext), invoice); Assert.assertEquals(invoiceSqlDao.getInvoicesForAccount(invoice.getAccountId().toString(), internalCallContext).size(), 1); Assert.assertEquals(invoiceSqlDao.getInvoicesForAccount(invoice.getAccountId().toString(), internalCallContext).get(0), invoice); // Delete it Assert.assertEquals(invoiceSqlDao.deleteInvoice(invoice.getInvoiceId().toString(), internalCallContext), 1); Assert.assertNull(invoiceSqlDao.getInvoice(invoice.getInvoiceId().toString(), internalCallContext)); Assert.assertEquals(invoiceSqlDao.getInvoicesForAccount(invoice.getAccountId().toString(), internalCallContext).size(), 0); }
public void bind(final SQLStatement q, final BusinessInvoiceBinder bind, final BusinessInvoiceModelDao invoice) { q.bind("invoice_id", invoice.getInvoiceId().toString()); if (invoice.getInvoiceNumber() != null) { q.bind("invoice_number", invoice.getInvoiceNumber()); } else { q.bindNull("invoice_number", Types.BIGINT); if (invoice.getCreatedDate() != null) { q.bind("created_date", invoice.getCreatedDate().getMillis()); } else { q.bind("created_date", dateTimeNow.getMillis()); if (invoice.getUpdatedDate() != null) { q.bind("updated_date", invoice.getUpdatedDate().getMillis()); } else { q.bind("updated_date", dateTimeNow.getMillis()); q.bind("account_id", invoice.getAccountId().toString()); q.bind("account_key", invoice.getAccountKey()); if (invoice.getInvoiceDate() != null) { q.bind("invoice_date", invoice.getInvoiceDate().toDate()); } else { q.bindNull("invoice_date", Types.DATE); if (invoice.getTargetDate() != null) { q.bind("target_date", invoice.getTargetDate().toDate()); } else { q.bindNull("target_date", Types.DATE);
public void rebuildInvoiceInTransaction(final String accountKey, final Invoice invoice, final BusinessInvoiceSqlDao transactional, final InternalCallContext context) { // Delete the invoice transactional.deleteInvoice(invoice.getId().toString(), context); // Re-create it - this will update the various amounts transactional.createInvoice(new BusinessInvoiceModelDao(accountKey, invoice), context); }
final LocalDate targetDate = clock.getUTCToday(); final DateTime updatedDate = clock.getUTCNow(); final BusinessInvoiceModelDao invoice = new BusinessInvoiceModelDao(accountId, accountKey, amountCharged, amountCredited, amountPaid, balance, createdDate, currency, invoiceDate, invoiceId, invoiceNumber, targetDate, updatedDate); Assert.assertSame(invoice, invoice); Assert.assertEquals(invoice, invoice); Assert.assertTrue(invoice.equals(invoice)); Assert.assertEquals(invoice.getAccountId(), accountId); Assert.assertEquals(invoice.getAccountKey(), accountKey); Assert.assertEquals(invoice.getAmountCharged(), amountCharged); Assert.assertEquals(invoice.getAmountCredited(), amountCredited); Assert.assertEquals(invoice.getAmountPaid(), amountPaid); Assert.assertEquals(invoice.getBalance(), balance); Assert.assertEquals(invoice.getCreatedDate(), createdDate); Assert.assertEquals(invoice.getCurrency(), currency); Assert.assertEquals(invoice.getInvoiceDate(), invoiceDate); Assert.assertEquals(invoice.getInvoiceId(), invoiceId); Assert.assertEquals(invoice.getInvoiceNumber(), invoiceNumber); Assert.assertEquals(invoice.getTargetDate(), targetDate); Assert.assertEquals(invoice.getUpdatedDate(), updatedDate); final BusinessInvoiceModelDao otherInvoice = new BusinessInvoiceModelDao(null, null, null, null, null, null, createdDate, null, null, invoiceId, 0, null, null); Assert.assertFalse(invoice.equals(otherInvoice));
final BusinessInvoiceModelDao businessInvoice = new BusinessInvoiceModelDao(account.getExternalKey(), invoice);
private BusinessInvoiceModelDao createInvoice(final UUID invoiceId, final UUID accountId, final String accountKey) { final BigDecimal amountCharged = BigDecimal.ZERO; final BigDecimal amountCredited = BigDecimal.ONE; final BigDecimal amountPaid = BigDecimal.TEN; final BigDecimal balance = BigDecimal.valueOf(123L); final DateTime createdDate = clock.getUTCNow(); final Currency currency = Currency.MXN; final LocalDate invoiceDate = clock.getUTCToday(); final LocalDate targetDate = clock.getUTCToday(); final DateTime updatedDate = clock.getUTCNow(); return new BusinessInvoiceModelDao(accountId, accountKey, amountCharged, amountCredited, amountPaid, balance, createdDate, currency, invoiceDate, invoiceId, 12, targetDate, updatedDate); } }