artofmission / acts_as_quickbooks_model forked from zackchandler/acts_as_quickbooks_model
- Source
- Commits
- Network (6)
- Issues (0)
- Downloads (0)
- Wiki (1)
- Graphs
-
Tree:
b0bc1f5
commit b0bc1f56792ff919659664f741da31b13a1269a9
tree 53b22d41c6705ee3df5809a299bc022d7e652dd8
parent 57019e77532919d585d243e8bbdb977cec437053
tree 53b22d41c6705ee3df5809a299bc022d7e652dd8
parent 57019e77532919d585d243e8bbdb977cec437053
| name | age | message | |
|---|---|---|---|
| |
.gitignore | Sat May 17 12:36:03 -0700 2008 | |
| |
README.markdown | Sat May 17 12:36:03 -0700 2008 | |
| |
Rakefile | Fri May 02 00:03:32 -0700 2008 | |
| |
definitions/ | ||
| |
init.rb | Thu May 01 15:35:26 -0700 2008 | |
| |
lib/ | ||
| |
migrations/ | ||
| |
model_maps/ | ||
| |
test/ |
README.markdown
Introduction
This plugin simplifies the parsing of qbXML messages into ActiveRecord model attributes.
Usage
class Customer < ActiveRecord::Base
acts_as_quickbooks_model
end
xml = <<-XML
<CustomerRet>
<ListID>150000-933272658</ListID>
<Name>Abercrombie, Kristy</Name>
<BillAddress>
<Addr1>Kristy Abercrombie</Addr1>
<Addr2>5647 Cypress Hill Rd</Addr2>
<City>Bayshore</City>
<State>CA</State>
<PostalCode>94326</PostalCode>
</BillAddress>
</CustomerRet>
XML
customer = Customer.new(:qbxml => xml)
customer.list_id # => "150000-933272658"
customer.name # => "Abercrombie, Kristy"
customer.bill_address_city # => "Bayshore"
...
Auto-builds has_many associations
class Invoice < ActiveRecord::Base
acts_as_quickbooks_model
has_many :invoice_lines
has_many :invoice_line_groups
end
class InvoiceLine < ActiveRecord::Base
acts_as_quickbooks_model
belongs_to :invoice
end
class InvoiceLineGroup < ActiveRecord::Base
acts_as_quickbooks_model
belongs_to :invoice
end
xml = <<-XML
<InvoiceRet>
<TxnID>123</TxnID>
<InvoiceLineRet>
<TxnLineID>456</TxnLineID>
<ItemRef>
<ListID>789</ListID>
</ItemRef>
</InvoiceLineRet>
<InvoiceLineRet>
<TxnLineID>012</TxnLineID>
<ItemRef>
<ListID>567</ListID>
</ItemRef>
</InvoiceLineRet>
<InvoiceLineGroupRet>
<TxnLineID>321</TxnLineID>
<ItemGroupRef>
<ListID>987</ListID>
</ItemGroupRef>
</InvoiceLineGroupRet>
</InvoiceRet>
XML
invoice = Invoice.create(:qbxml => xml)
invoice.txn_id # => "123"
invoice.invoice_lines.count # => 2
invoice.invoice_line_groups.count # => 1
invoice.invoice_lines.first.txn_line_id # => "456"
invoice.invoice_line_groups.first.txn_line_id # => "321"
...

