Accounting in the Eyes of a Programmer - Haifa Linux Club · 29 Hacking GnuCash Default data...
Transcript of Accounting in the Eyes of a Programmer - Haifa Linux Club · 29 Hacking GnuCash Default data...
![Page 2: Accounting in the Eyes of a Programmer - Haifa Linux Club · 29 Hacking GnuCash Default data storage is in XML (gzipped) Root is in /usr/share/gnucash: – User interface is done](https://reader031.fdocuments.in/reader031/viewer/2022022118/5cd9dd7b88c99392708d31fc/html5/thumbnails/2.jpg)
22
Motivation
● You have a small business
● Family accounts
● Your bank manager calls...
![Page 3: Accounting in the Eyes of a Programmer - Haifa Linux Club · 29 Hacking GnuCash Default data storage is in XML (gzipped) Root is in /usr/share/gnucash: – User interface is done](https://reader031.fdocuments.in/reader031/viewer/2022022118/5cd9dd7b88c99392708d31fc/html5/thumbnails/3.jpg)
33
Account Types
● Double Entry:
Each transaction appears on two accounts
![Page 4: Accounting in the Eyes of a Programmer - Haifa Linux Club · 29 Hacking GnuCash Default data storage is in XML (gzipped) Root is in /usr/share/gnucash: – User interface is done](https://reader031.fdocuments.in/reader031/viewer/2022022118/5cd9dd7b88c99392708d31fc/html5/thumbnails/4.jpg)
44
Account Tree
● How detailed?
– Labor
vs.
– Control
![Page 5: Accounting in the Eyes of a Programmer - Haifa Linux Club · 29 Hacking GnuCash Default data storage is in XML (gzipped) Root is in /usr/share/gnucash: – User interface is done](https://reader031.fdocuments.in/reader031/viewer/2022022118/5cd9dd7b88c99392708d31fc/html5/thumbnails/5.jpg)
55
Simple Transactions
![Page 6: Accounting in the Eyes of a Programmer - Haifa Linux Club · 29 Hacking GnuCash Default data storage is in XML (gzipped) Root is in /usr/share/gnucash: – User interface is done](https://reader031.fdocuments.in/reader031/viewer/2022022118/5cd9dd7b88c99392708d31fc/html5/thumbnails/6.jpg)
66
Split Transactions
![Page 7: Accounting in the Eyes of a Programmer - Haifa Linux Club · 29 Hacking GnuCash Default data storage is in XML (gzipped) Root is in /usr/share/gnucash: – User interface is done](https://reader031.fdocuments.in/reader031/viewer/2022022118/5cd9dd7b88c99392708d31fc/html5/thumbnails/7.jpg)
77
Date Shortcuts
- previous day today + next day
[ month ago ] month ahead
month start month end
year start year end
In any date field
![Page 8: Accounting in the Eyes of a Programmer - Haifa Linux Club · 29 Hacking GnuCash Default data storage is in XML (gzipped) Root is in /usr/share/gnucash: – User interface is done](https://reader031.fdocuments.in/reader031/viewer/2022022118/5cd9dd7b88c99392708d31fc/html5/thumbnails/8.jpg)
88
Other Shortcuts
● In any amount field there is:
– A mini-calculator
● In the number field:
– A +/- increments/decrements by one
● The description field:
– Is copied from previous transations
![Page 9: Accounting in the Eyes of a Programmer - Haifa Linux Club · 29 Hacking GnuCash Default data storage is in XML (gzipped) Root is in /usr/share/gnucash: – User interface is done](https://reader031.fdocuments.in/reader031/viewer/2022022118/5cd9dd7b88c99392708d31fc/html5/thumbnails/9.jpg)
99
The “num” field
● Used for reference
● Examples:
– Check number (for my checks)
– Invoice number (for my invoices)
– Payment counter – 3/12
![Page 10: Accounting in the Eyes of a Programmer - Haifa Linux Club · 29 Hacking GnuCash Default data storage is in XML (gzipped) Root is in /usr/share/gnucash: – User interface is done](https://reader031.fdocuments.in/reader031/viewer/2022022118/5cd9dd7b88c99392708d31fc/html5/thumbnails/10.jpg)
1010
A mini-demo
● Create an account tree
● Set assets and liabilities (against equity)
● Use transactions
![Page 11: Accounting in the Eyes of a Programmer - Haifa Linux Club · 29 Hacking GnuCash Default data storage is in XML (gzipped) Root is in /usr/share/gnucash: – User interface is done](https://reader031.fdocuments.in/reader031/viewer/2022022118/5cd9dd7b88c99392708d31fc/html5/thumbnails/11.jpg)
1111
Action->Schedule...
![Page 12: Accounting in the Eyes of a Programmer - Haifa Linux Club · 29 Hacking GnuCash Default data storage is in XML (gzipped) Root is in /usr/share/gnucash: – User interface is done](https://reader031.fdocuments.in/reader031/viewer/2022022118/5cd9dd7b88c99392708d31fc/html5/thumbnails/12.jpg)
1212
Scheduled Transactions
![Page 13: Accounting in the Eyes of a Programmer - Haifa Linux Club · 29 Hacking GnuCash Default data storage is in XML (gzipped) Root is in /usr/share/gnucash: – User interface is done](https://reader031.fdocuments.in/reader031/viewer/2022022118/5cd9dd7b88c99392708d31fc/html5/thumbnails/13.jpg)
1313
Scheduling Variables
● ST may contain arbitrary variables
● Must be filed during "run"
● Obviously cannot be automatic
● Example...
![Page 14: Accounting in the Eyes of a Programmer - Haifa Linux Club · 29 Hacking GnuCash Default data storage is in XML (gzipped) Root is in /usr/share/gnucash: – User interface is done](https://reader031.fdocuments.in/reader031/viewer/2022022118/5cd9dd7b88c99392708d31fc/html5/thumbnails/14.jpg)
1414
Since Last Run...
![Page 15: Accounting in the Eyes of a Programmer - Haifa Linux Club · 29 Hacking GnuCash Default data storage is in XML (gzipped) Root is in /usr/share/gnucash: – User interface is done](https://reader031.fdocuments.in/reader031/viewer/2022022118/5cd9dd7b88c99392708d31fc/html5/thumbnails/15.jpg)
1515
Reconciliation
● Against the bank/credit card statement
– I do it every month
● This is the QA of your management:
– How many items are "discovered"
– "What? I bought this? When?"
– You get to see the bank commissions etc.
![Page 16: Accounting in the Eyes of a Programmer - Haifa Linux Club · 29 Hacking GnuCash Default data storage is in XML (gzipped) Root is in /usr/share/gnucash: – User interface is done](https://reader031.fdocuments.in/reader031/viewer/2022022118/5cd9dd7b88c99392708d31fc/html5/thumbnails/16.jpg)
1616
Reconciliation Window
![Page 17: Accounting in the Eyes of a Programmer - Haifa Linux Club · 29 Hacking GnuCash Default data storage is in XML (gzipped) Root is in /usr/share/gnucash: – User interface is done](https://reader031.fdocuments.in/reader031/viewer/2022022118/5cd9dd7b88c99392708d31fc/html5/thumbnails/17.jpg)
1717
Business Features
● Relatively new (GnuCash 1.8.x)
● Entities:
– Customer: Jobs, Invoices
– Vendor: Jobs, Bills
– Employee: Expenses (no Integrated Payroll yet)
● Tax Tables
● Billing Terms
![Page 18: Accounting in the Eyes of a Programmer - Haifa Linux Club · 29 Hacking GnuCash Default data storage is in XML (gzipped) Root is in /usr/share/gnucash: – User interface is done](https://reader031.fdocuments.in/reader031/viewer/2022022118/5cd9dd7b88c99392708d31fc/html5/thumbnails/18.jpg)
1818
Tax Tables
● Percent or Fixed
● Tax account
● I only use VAT
![Page 19: Accounting in the Eyes of a Programmer - Haifa Linux Club · 29 Hacking GnuCash Default data storage is in XML (gzipped) Root is in /usr/share/gnucash: – User interface is done](https://reader031.fdocuments.in/reader031/viewer/2022022118/5cd9dd7b88c99392708d31fc/html5/thumbnails/19.jpg)
1919
Billing Terms
● Days or Proximo
● Discounts
● Where is?
current + 60
And its ilk?
![Page 20: Accounting in the Eyes of a Programmer - Haifa Linux Club · 29 Hacking GnuCash Default data storage is in XML (gzipped) Root is in /usr/share/gnucash: – User interface is done](https://reader031.fdocuments.in/reader031/viewer/2022022118/5cd9dd7b88c99392708d31fc/html5/thumbnails/20.jpg)
2020
Customer
● Billing Address
● Terms
● Tax
![Page 21: Accounting in the Eyes of a Programmer - Haifa Linux Club · 29 Hacking GnuCash Default data storage is in XML (gzipped) Root is in /usr/share/gnucash: – User interface is done](https://reader031.fdocuments.in/reader031/viewer/2022022118/5cd9dd7b88c99392708d31fc/html5/thumbnails/21.jpg)
2121
Invoice
● Manual Invoice ID
● One job, Many invoices
● Terms
![Page 22: Accounting in the Eyes of a Programmer - Haifa Linux Club · 29 Hacking GnuCash Default data storage is in XML (gzipped) Root is in /usr/share/gnucash: – User interface is done](https://reader031.fdocuments.in/reader031/viewer/2022022118/5cd9dd7b88c99392708d31fc/html5/thumbnails/22.jpg)
2222
Edit Invoice
● Action: Hours, Material, Project
● Discounts, Tax included
● POST when ready!
![Page 23: Accounting in the Eyes of a Programmer - Haifa Linux Club · 29 Hacking GnuCash Default data storage is in XML (gzipped) Root is in /usr/share/gnucash: – User interface is done](https://reader031.fdocuments.in/reader031/viewer/2022022118/5cd9dd7b88c99392708d31fc/html5/thumbnails/23.jpg)
2323
Invoice List
● Search similar to:
– Vendors
– Jobs
– Customers
– Bills
● Invoice status
![Page 24: Accounting in the Eyes of a Programmer - Haifa Linux Club · 29 Hacking GnuCash Default data storage is in XML (gzipped) Root is in /usr/share/gnucash: – User interface is done](https://reader031.fdocuments.in/reader031/viewer/2022022118/5cd9dd7b88c99392708d31fc/html5/thumbnails/24.jpg)
2424
Process Payment
● Amount:
Default – invoice sum
● Transfer Account
And for the hard work...
![Page 25: Accounting in the Eyes of a Programmer - Haifa Linux Club · 29 Hacking GnuCash Default data storage is in XML (gzipped) Root is in /usr/share/gnucash: – User interface is done](https://reader031.fdocuments.in/reader031/viewer/2022022118/5cd9dd7b88c99392708d31fc/html5/thumbnails/25.jpg)
2525
Customer Report (Tada!!)
![Page 26: Accounting in the Eyes of a Programmer - Haifa Linux Club · 29 Hacking GnuCash Default data storage is in XML (gzipped) Root is in /usr/share/gnucash: – User interface is done](https://reader031.fdocuments.in/reader031/viewer/2022022118/5cd9dd7b88c99392708d31fc/html5/thumbnails/26.jpg)
2626
More Reports
● Cash Flow
● Profit and Loss
● Expenses/Income Bar/Pie charts
● Balance Sheet
● Print Checks (from Register)
● Print invoices
![Page 27: Accounting in the Eyes of a Programmer - Haifa Linux Club · 29 Hacking GnuCash Default data storage is in XML (gzipped) Root is in /usr/share/gnucash: – User interface is done](https://reader031.fdocuments.in/reader031/viewer/2022022118/5cd9dd7b88c99392708d31fc/html5/thumbnails/27.jpg)
2727
Print Invoice
![Page 28: Accounting in the Eyes of a Programmer - Haifa Linux Club · 29 Hacking GnuCash Default data storage is in XML (gzipped) Root is in /usr/share/gnucash: – User interface is done](https://reader031.fdocuments.in/reader031/viewer/2022022118/5cd9dd7b88c99392708d31fc/html5/thumbnails/28.jpg)
2828
Not Covered● Investments
– Stock, prices, dividends
– Interest, depreciation
– Currencies
● Tax Forms (US)● Localization:
– Hebrew data
– Hebrew interface
– Local data sources
– Local taxes
![Page 29: Accounting in the Eyes of a Programmer - Haifa Linux Club · 29 Hacking GnuCash Default data storage is in XML (gzipped) Root is in /usr/share/gnucash: – User interface is done](https://reader031.fdocuments.in/reader031/viewer/2022022118/5cd9dd7b88c99392708d31fc/html5/thumbnails/29.jpg)
2929
Hacking GnuCash
● Default data storage is in XML (gzipped)● Root is in /usr/share/gnucash:
– User interface is done via Glade
– Logic is in scheme (libguile)
● Example:cd guile-modules/gnucash/reportdiff invoice.scm fancy-invoice.scm
● Anybody?
![Page 30: Accounting in the Eyes of a Programmer - Haifa Linux Club · 29 Hacking GnuCash Default data storage is in XML (gzipped) Root is in /usr/share/gnucash: – User interface is done](https://reader031.fdocuments.in/reader031/viewer/2022022118/5cd9dd7b88c99392708d31fc/html5/thumbnails/30.jpg)
3030
Thank You
Questions?