Universal accounting
Create customized accounting files
Banana Accounting is universal accounting software, which can be used in any countries, sectors or operating system. It can also be installed on the server. With Banana Accounting you may manage an unlimited number of mandates.
It is extremely versatile, you can fully adapt your acounting file:
- Create accounting plans with any numbering, any structure and any language or different languages.
- Use your preferred language, local currency and settings.
- Define how accounts should be grouped together.
- Define Cost center and Segments
- Add columns to the accounts table and transactions tables to insert any kind of information you need.
- Define VAT Code (or sales tax code) that automate the VAT calculation (see adapt the VAT table).
- Fully personalize Balance Sheet and Profit and Loss.
- Create extensions for printing or importing or exporting data.
Similar to Excel
Banana Accounting software, is similar to Excel, it is based on the same spreadsheet concept. It is flexible and easy to use (see also Accounting in 3 steps). Like Excel, it has a limitation that only one person at a time, can work on the same file.
Choice of different accounting methods
It offer predefined accounting spreadsheet, supporting the accounting methods
- Cash book
- Income and expenses accounting
- Double entry accounting
- Double entry accounting with multi-currency
It has also has predefined spreadsheet for:
- Address management.
- Libraries management.
Banana in different countries and sectors
Banana Accounting can be used in different countries and different sectors.
- Double entry accounting is a worldwide standard
- Banana supports different languages and locals
- Banana can be easily parametrized
- Banana can be easily extended with BananaApps
Create the accounting that is right for you
With Banana Accounting you can easily create the accounting solution that perfectly suits your needs.
- Look at the large selections of predefined templates for different countries and industries.
- Start with a template that is similar to your needs (language and method) and adapt to you.
- Take a look of the documentation.
Banana.ch international accounting team
Our accounting team as a broad international experience and would really like to work to create the best solution for you.
- We have customers in more the 120 countries.
- We work in different languages.
- We have experience with many accounting and fiscal systems.
BananaApps
With Banana Apps you can extend Banana to exactly match all your needs:
- Reports that combine different accounts, segments.
- Reports that use different account groupings.
- Printing a facsimile of a required Balance sheet form.
- Printing a facsimile of a Monthly VAT report.
- Creating an Export file based on the tax requirement.
- Creating a list of an association that has not yet payed the due amount.
- Checking the accounting data so that it comply to a specific standard.
- Calculating interest rates.
- Splitting the expenses among different people.
- Planning your business.
- Calculating Ratio.
- Creating Charts.
Existing BananaApps
Here are some examples we have been working on and distributing with the open sourece Apache 2.0 license.
- Austria
- China
- Template for SME companies
Template created based on the Chinese standard accounting plan and standard VAT (Chinese and English texts)
- Template for SME companies
- Germany
- Import file for GLS Bank e-statement format
Project by Bernhard Fürst
- Import file for GLS Bank e-statement format
- Italy
- Accounting plan for Non profit organisations in Veneto
Accounting plan and reports required by the regional and national authorities.
Project developed together with the Centro Servizi Volontariato, Padova
- Accounting plan for Non profit organisations in Veneto
- Netherland
- Audit file (accounting data is exported in XML as required by the NL tax autoryties)
- Switzerland - Ticino
- Curatele Accounting plan and required report
Project Istituti Sociali Città di Lugano - Patriziati
Project based on specificaction of the Sezioni Enti Locali Cantone Ticino.
- Curatele Accounting plan and required report
- USA Non Profit Organisation
- Unified Chart of Nonprofit Accounts (UCOA).
Setup the accounting plan, with segments as required by UCOA.
- Unified Chart of Nonprofit Accounts (UCOA).
Introductions to the tools you will use
- When creating a new accounting, you can choose the accounting type, language and template that is more suited to you.
- In the accounting properties, you can set the basic currency, address, and other option of the accounting.
- You can now save your file and the adapt it to your needs and use it later as a template.
For each year and each company you will have a different file name. - In the Accounts table you set the account numbering, description and grouping, cost centers and segments that are more suited for your needs.
- In case you will manage the VAT, in the VAT Codes table you will enter the different VAT percentages.
- In case you have chosen the multi-currency accounting, the Exchange rate table will allow you to specify the different currencies and exchange rates.
- Once you have setup all this you can start booking.
- In the Balance by group you can setup and save different printouts settings
- With the BananaApps you can create printouts that suit the needs for tax declaration, data presentation for a specific sector.
- If your bank has a specific e-statement format you can create an import filter that will transform the bank data into Banana transactions.
Creating a new accounting file
XBRL taxonomies
It is also possible to create an instance file in the XBRL format that is specific to a country.
The documentation is not ready yet, so feel free to contact us.
Case guide
Banana Accounting is a versatile accounting software. It can be used for different purposes.
When accounting is mandated by law
Business
- Required to do double entry accounting
Double entry accounting, with/without VAT or with/without multicurrency- Small companies (10 or more employees).
- Micro companies (1-9 employees).
- Companies or other organization with no employees.
Financial and Holding companies, Foundations, Asset management, Trusts.
- Required to report Revenue and Expenses.
- Small companies with revenue less then a specified amount
- Self employed individuals.
Certified public accountants (CPA)
CPA doing accounting for small businesses usually prefer to use Double entry accounting.
Not for profit organizations
- Small non profit organization.
Income and expense accounting or double entry accounting. - Entities with institutional and commercial activities.
Double entry accounting. - International NGO
Double entry accounting with multi-currency.
Public sectors
- Small public entities.
Double entry accounting
Private and family accounting
- Private and Family accounting.
Income and Expense accounting. - Private and Family accounting with international investments.
Double entry accounting.
Auxiliary accounting
- Cash and liquidity management.
Income and Expense accounting.- Simple cash manager.
- Liquidity manager.
Companies that have a person that keep track of cash and banks.
- Project and Department accounting.
Income and Expense accounting.- Internal projects within larger organizations.
- Construction accounting.
Double entry or Income and Expense accounting.- Owners that build a property and keep track of the investment and progress.
- Contractors or architects that have responsibility of the construction’s project.
- Property management accounting.
Income and Expense accounting or Income and Expenses accounting.- Owner that mange a rented property.
- Condominiums.
- Professionals that manage properties for others.
Education
Banana Accounting is used as a tool to learn and exercise Double Entry Accounting.
- Basic accounting in low grade school.
- Introduction to accounting.
Show how the accounting works, with possibility. - Accounting training.
Students enter transactions (exercises on double entry accounting). - Accounting for a virtual company..
Budgeting and financial planning
Use the financial planning functionalities of Banana Accounting.
- Budgeting.
- Financial plan for a startup.
- Retirement planning.
Create file templates
The first step is to create a new accounting file (File new) by choosing the more suitable type and language.
- It is suitable to start by choosing a predefined template that looks like the one you desire. You can then change everything you want.
- In the following examples we assume you use the double entry accounting system for a company.
- Once you have created a file you save it by giving it a name. This file can be used for your accounting or serve as a template for other companies.
Accounting in a language not available
You can create an accounting file that is in the desired language, even if your the software is not available in the local language.
- Create a new template, using a template in another language that is similar to you needs.
- Translate the accounting plan
Translate adapt the Description in the accounting plan as needed. - Translate the column headers.
- Menu Data -> Column settings.
- For each column change the header.
Create an accounting file with different settings
If the template setting are not suitable for you:
- Tools -> Convert to new file command, you will create a copy of the file
- Choose the file type
- Set the language, decimals rounding that is more suitable.
The Accounting properties
You insert the name of the company, the opening and closing date of the accounting year.
You can chose the accounting currency. If a currency is not on the list type the new currency code.
The accounting plan
Your country will probably have its own accounting numbering and grouping.
You will have to write or copy and paste the data in the Accounts table.
- Sections will define the main separations in the accounting.
- Balance sheet
- Income Statements
- Cost Centers
- Segments
- Account (Account number)
Is where you put the account number. - Group is where you insert the group number.
- Gr is where you insert the Group code where this Account or group should be totalized.
When creating a new accounting structure keep in mind:
- Add the accounts you will need. Don’t create a huge accounting plan in case you do not really need it.
Users can always add new accounts. - Keep the grouping simple, so that you have the groping required for your country.
The grouping usually also conforms to the country specific requirements. - For tax purposes you will probably need also a different grouping scheme that is different from the normal one that you use for Balance sheet or Income presentation:
- Use the column Gr1, Gr2, to assign to each account a different grouping scheme.
You will use then use the external report or create a BananaApps that will use the number to group different accounts together. - If you have a strict accounting numbering scheme, you can also create BananaApps that groups account based on specific number.
- Use the column Gr1, Gr2, to assign to each account a different grouping scheme.
- In case you need specific report for other need consider creating a BananaApps or an Excel sheet that takes the data from the accounting file.
Cost centers and segments
Consider using Cost Centers and Segments for more detailed reporting. If you do not have this specific need, you can add later.
In Banana you can define up to
- 3 types of cost centers, with an unlimited number of cost centers for each type.
- 10 levels of segments, with an unlimited number of segments for each type.
You can use the cost centers and segments while booking.
You specify the transaction code for the transaction. Cost centers are very flexible, and they are usually used for:
- Project income and expenses management
- Taking note of special transactions
- Have a parallel accounting scheme (for example large international NGO)
With the debit and credit account they have their internal accounting.
With the cost centers they have the transactions recorded by the donors accounting scheme. At any time they have reports for internal use or to presents to the donors.
You specify the segment in the transaction when you enter the account. You can have a segment that is different for account debit and credit. Consider using for managing:
- Branches, Organisations, Departments
- Different types of businesses
Vat Code
In the Accounts table you can setup all the VAT or sales tax percentage you will need. Basically there are two types of VAT Codes:
- VAT Due.
- VAT recoverable.
You can setup codes for all the percentages and purposes you will need.
Your country will have a specific reporting. With BananaApps you can create a printout that is a facsimile of the state form, with the amounts already grouped and summed as needed.
Use the column Gr1 or Gr2 to enter the number of the Tax form, were the VAT Code should be grouped. If a VAT code needs to be grouped in more than one place, separate the form number with a semicolon “;”.
The advantage of using Vat Code is that you can configure the accounting so that only useing the appropiate VAT code it is possible to extract the data necessary for the VAT reporting. You can have just one account where all the vat plus or minus is recorded. The accounting plan remain very simple and can focus on the company's need.
There are other approaches. For example in Germany the Datev accounting plan use the accounts as a base for the VAT reporting. For each specific VAT cases there must be a corresponding account. . The disadvantage of this approach is that there are accounts with special meaning (for example automatic accounts) with predefined VAT percentage and rules that are not visible for the users. This kind of accounting are more difficult to use unless you know exactly the purpose. With the VAT code the VAT complexity is resolved in the VAT table.
You will therefore have a choice to create an accounting plan, that is based on the need of a company and use the VAT code functionality for reporting, or mantain each VAT transaction separated for each case and have many VAT Accounts in the accounting plan.
Exchange rate table
If you have chosen the multi-currency option in the Exchange rate table you will setup the currency you will use.
Once you have declared a currency you can use it for an account.
Composition Balance sheet and Income statements
You can create predefined printouts of Balance Sheets and Income statements by creating a new composition.
It could be interesting to create predefined composition for:
- End of year report
- Trial balance
- Actual vs. Budget
- Columns with amount by Quarter
- Columns with amount by Segments
Adapt the Accounts table
In the following we will explain what need to be considered when creating a new accounting tabble for a specific country.
- Creating the account structure and grouping specific country.
- Creating the country specific reports or export files, using the functionalities offered by the Banana API .
Documentation
- Accounts table documentation including table accounts columns.
Examples files
- The examples files are available on github/General/CaseStudies.
- File "scalar_income.ac2" is used in the following as an example of scalar accounting plan.
Using an existing accounting system
Usually countries have accounting system that include:
- Accounts numbering
- Accounts description
- Accounts grouping and totalisation
The country or sector specific accounting system is usually focused on helping prepare the Balance Sheet and Income & Exanses report.
Based on this accounting system it is also necessary to generate report that summirize the accounts for specific tax purposes, in case that the tax autorities require a report that is different from the Balance structure.
Accounts table
In Banana accounts and grouping are specified in the accounts table.
Banana allow to adapt to different county or sector specific requirement, but at the first moment the Banana grouping system look confusing, for the fact that there are different columns that contains similar information.
Accounts, groups and sections
There are three different type of line in the account table.
- Account.
Lines that have an account number in the column account.
Accounts can be normal account, cost center or segmente - Group
Lines that have a group number in the column group. - Section
Line the have a section number in the column section.
A line in the account table can is either an Account, Group or Section. It cannot be both, so if there are on the same line an account, group or section there is an error.
In the above example there are lines for Section, group and accounts.
Here is the meaning
- Accounts.
Are used for recording transactions. - Group
Are used to create sums. - Sections
Are used to separate different part of the report.
Summing and creating totals
In Banana you can create sum by using the combination of:
- Groups columns.
You enter the group number and the line become a group. - Gr
I where you enter the group on where this line should be totalized.
Accounts and Groups can have a Gr.
In the example above.
- The accounts 1000 and 1020 is totilized on the group 100.
- The group 100 is totilized on the group 10.
- The group 10 is totilized on the group 1
- The group 1 is totlized on the group 00.
By creating the group line and specifingin in the Gr whe the each line is grouped you create a wole totalisation.
Total debit = Total credit
Computer represent debit amount in positive and credit amounts in negative therefore we should totalize all accounts and groups in a final group that, if the accounting is correct, should have the amount to zero.
At the end of the grouping we will have a group named "Difference should be zero (null)" that in the above accountng example has the number 00.
Basically in the double entry accountiong system the totalisations is done in this way.
- Group Income and expenses (example group E7)
Is the sum of all Revenue and Costs accounts.
The Profit or Loss of the year that is further totalized in the Equity as the current year result. - Group Assets (example group 2)
Include all Assets accounts
Asset are totalized on the group Difference should zero. - Liabilities and Equity (example group 2).
Is the sum of all the Liabilities and Equity accouns, plus the Profit and loss of the current year from the total group of income and expenses.
Liabilities and Equity on the group Difference should zero. -
Difference should be = 0 (example group 00)
Is the end sum of all accounts and the Balance should be null if the accounting is correnct.
The BClass column
In Banana each column has a (Banana class number) that indicate if the account belong to:
- 1 Total Assets
- 2 Total Liabilities
- 3 Total Expenses
- 4 Total Revenue
- 5 Total off balance sheet: Assets
- 6 Total off balance sheet: Liabilities
- 7 Total class 7
- 8 Total class 8
- 9 Total class 9
The BClass is somewhat a redundant information, but unfortunalty is also necessary in order to let Banana if the accounting is correct.
The BClass is also some time confusing for the fact that the country specific accounting system have normally class number that are not the same as the BClass in banana.
The Section column
Is also sometime redundant information, but unfortunatly is necessary in order to have the possibility to customize Balance sheet and other repors.
Grouping for the Balance
- Assets
You need to create a Total Assets group and intermediary groups (like fixed assets) so that up grouping the accounts specific to the Assets. - Liabilities (Third party capital and Equity)
Has subgroups for- Third party capital (Liabilities in anglo saxan terminology)
- Equity
Grouping for Income statemant
It groups all the accounts belonging to the Income statement. At the end there should be a group "Loss (+) por Profit (-).
There are two fundamentally different system to present the Income statement. One that sum separately the Revenue and the Costs and another one (scalar system) where the the Profit and Loss is calculated by starting from the revenues and obtainings intermediary results.
Revenue and Cost separated
There are two groups that are summed in the Loss and Profit
- Total Revenue
- Total Income
Scalar system
- (E1) Gross operating
Sum of all accounts for Revenue and Productions cost - (E2) Gross operating result after deducting personnel expenses
Sum of Gross operating group (E1) and the accounts Personel costs. -
(E3) Operating result before depreciation and value adjustments, financial results and taxes (EBITDA)
Sum of E2 and the operating cost -
(E4) Operating result before financial results and taxes (EBIT)
Sum of E3 and the depreciation -
(E5) Operating result before taxes (EBT)
Sum of E4 and Financial costs -
(E6) Profit or loss before taxes
Sum of E6 and extraordinary costs -
(E7) Annual profit or loss
Sum of E6 and the tax - In this form it is necessary to create intermediary groups for.
Adapt the VAT table
In the following we will explain what need to be considered when creating a BananaApps for VAT reporting suitable a specific country.
- Creating the Vat code for the specific country.
- Creating the country specific reports or export files, using the functionalities offered by the Banana API .
Documentation
Examples files
- The examples files are available on github/General/CaseStudies.
- Solutions making use of the vat api.
Vat Table
We have 2 main groups:
- Vat due to the tax autorithy.
- Vat recoverable
Creating the VatCode for a specific country
When you use Banana Accounting in a new country you need to adapt the VatCode table to your country needs. Basically you should procede as described here.
- You should be aware of how the Vat reporting form is. You need to create the VatCode so that the user can assign to the transcaction the correct code so that the Vat is calculated and the amount can be assigned to a specific item in the Vat declaration.
- If there are different Vat percentage you should create a VatCode for sales and a VatCode for recoverable, due the the fact that when there is a Vat declaration the Vat payable must be separated from the Vat recoverable.
- You may nedd to create more Vat code for the same percentage if the Vat tax form require you to separate some amounts.
Example, for a country that has a Vat percentage of 5% and 10%.
- For the 0% you need to report both the sales exempt and the export:
- Create a Vat code S0 for Vat Exempt (Vat due Yes even if percentage is 0)
- Create a Vat code SE for Vat Export. (Vat due Yes even if percentage is 0)
- For the 5%
- Create a Vat code S5 for sales at 5% (Vat due Yes)
- Create a Vat code P5 for purchase. (Vat due void, means recoverable)
- If you need to show separatly on the tax form the discounts create a Vat code SD5 for discount on sales at 5%.
If it is not necessary to show separatly the discounts, when entering the transactions for discount we precede the Vat code with the "-S5" so the amount will be reversed.
There are countries where the are many Vat percentage and a complex tax reporting form. In this case you will end up having a Vat table with many codes.
Use the Gr1 to groups Vat Code toghether
If the Vat amounts for different Vat code need to be grouped together you can use the Gr1 to enter to witch field the Vat code belong.
- When creating a BananaApps to groups the amounts together you can use this groups to report the amounts.
- In case the user need to add a new VatCode that fit in a form it can do it and it get correctly summed in the tax form.
Specify in the Gr1 the field number of the Vat form, separating the number with a ";" if the same goes in more then on group. For examples:
- The field 100 of the tax form requre to declare all sales amounts.
- The different sales need also to be indicated in the specific tax field, so we specify also the other tax field.
- Discount need to be indicate separately so we specify for a discount the specific field. The same for purchases.
Give the full Vat code table
It is possible that you will end up with a very complex Vat table.
Some user will probably use only few Vat code, the one that are necessary for their actitivity.
But it is better not to give to the user a stripped down Vat table, for the fact that it may need one specific Vat code.
In this case enter the 1 in the Disable columns. The user will be able to use the code but this will not appear in the list of available VatCode when entering it in the Transactions table.
Assigning vat code to the accounts table
For each account you can assign a default Vat Code (column Vat code).
When you enter or import transactions the Vat code will be retrived, but you can in case changte it.
Vat Transactions
We see above different example of VAT transactions.
- Doc 10-11.
We record cash sale usind different Amount type.
We see that the transaction amount is different but the Taxable amount and Vat amount are always the sames.
VAT amount is in negative for the fact that the VAT amount is registered in credit, and therefore the amount must be pay to the tax authority. - Doc 20.
Return of goods from customer.
We use the same VAT code, but preceded by the minus sing. The taxable amount and VAT amout sign is inverted.
Vat Amount is positive (debit) meaning we recover the vat from the tax authoriy. - Doc 100-102.
Purchase the VAT amount is positive (debit) meaning we recover the vat from the tax authortity. - Doc 130.
Return of good to suppliers the VAT code is inverted, and we own the taxt to the authority.
Excel summary
With Banana ExcelSync we have created a excel spreadshed with the summary value of the vat code.
Javascipt API equivalent
The API to retrieve the values above would be.
//get the description of the vat code Banana.document.vatDescription("S10"); // use the vatCurrent Balance to retrieve the different values Banana.document.vatCurrentBalance("S10").vatTaxable; Banana.document.vatCurrentBalance("S10").vatAmount; Banana.document.vatCurrentBalance("S102").vatNotDeductible; Banana.document.vatCurrentBalance("S10").vatPosted; Banana.document.vatCurrentBalance("S10").rowCount;
- vatTaxable is the amount netto, the one tha usually must figure on the vat report as the amount of revenue to declare.
- vatAmount is the Vat amount.
- vatTaxable + vatAmount is the amount inclusive Vat..
- vatNotDeductible is the amount of vat that cannot be fiscally deducted. In case you have an expense where the Vat cannot be totally deducted.
- vatPosted (vatAmount - vatNotDeductible) is the amount that has been posted on tha vat account.
- count is the number of row that have been found to use the vatCode.
The sign of the vatAmount
The sign of the vatAmount follows the accounting convention.
- If the sign of the vatAmount is negative (debit) it means that the vat is due.
- If the sign of the vatAmount is positive it means that the vat is recoverable.
The sign of the vatTaxable follow the sign of the vatAmount. In case the vatAmount is zero the vatTaxable sign is negative if the isDue of the vatCode is true.
If you use the vatAmount to create a tax form you should take care to invert the amount.
vatAmount sign and isDue flag:
- Vat code that have the isDue to true (1) normally have the vatAmount in negative, but the vatAmount could also be positive in case the user has used the vatCode with the minus sign "-S10".
The minus sign before the vatCode is used in case of reversal transaction (correction of an incorrect transactions). In this case the vatAmount would be recorded in the positive. - Vat code that have the isDue to false (void) normally have the vatAmount in positive, but the vatAmount could also be necative in in case the user has used the vatCode with the minus sign "-P10".
In this case the vatAmount would be recorded in negative.
Amount used in the vat report for the tax authorities
Vat due
The amounts are usually in negative,so they must be inverted.
Banana.document.vatCurrentBalance("S10").vatTaxable * (-1); Banana.document.vatCurrentBalance("S10").vatAmount * (-1);
They could be positive in the case that there have been a good returned from clients that exceed the amount of sales.
Vat recoverable
The amounts are usually in negative,so they must be inverted.
Banana.document.vatCurrentBalance("P10").vatTaxable; Banana.document.vatCurrentBalance("P10").vatAmount;
They could be negative in the case that there have been a good returned to suppliers that exceed the amount of sales.
Period
Vat report are usually done for a period (month, quarter or semester).
You should use the vatCurrentBalance with tha startDate and endDate
//vat report for January 2018 var startDate = "2018-01-01"; var endDate = "2018-01-31 Banana.document.vatCurrentBalance("S10", startDate, endDate).vatTaxable; Banana.document.vatCurrentBalance("P10", startDate, endDate).vatTaxable;
Summing many Vat codes
You can have the total of different code by separating the vat code with the sign "|"
//vat report for January 2018 var startDate = "2018-01-01"; var endDate = "2018-01-31 // The taxable amount Banana.document.vatCurrentBalance("S0|S5|S10|SD5|SD10", startDate, endDate).vatTaxable * (-1); // The vat due Banana.document.vatCurrentBalance("S0|S5|S10|SD5|SD10", startDate, endDate).vatAmount * (-1); // The vat taxable vat recoverable Banana.document.vatCurrentBalance("P0|P5|P10|PD5|PD10", startDate, endDate).vatTaxable; // The vat vat recoverable Banana.document.vatCurrentBalance("P0|P5|P10|PD5|PD10", startDate, endDate).vatAmount;
Printing the vat tansactions list
To print the transactions with Vat or doing Vat calculation use the function Banana.document.journal().
// use the data from the transactions and only normal accounts (exclude cost centers) var journal = Banana.document.journal(Banana.document.ORIGINTYPE_CURRENT, Banana.document.ACCOUNTTYPE_NORMAL); for (i = 0; i < journal.rowCount; i++) { var tRow = journal.row(i); // we get the vat values var vatTaxable = tRow.value('JVatTaxable'); var vatAmount = tRow.value('VatAmount'); var vatPosted = tRow.value('VatPosted'); }
Within the samples apps repository you find two examples of transactions list:
- List of transactions with vatTaxable, vatAmount and vatPosted.
- List of transctions with vatTaxable, vatAmount and vatPosted also converted in the transaction's currency.
Accounting in more languages
Banana Accounting software lets you setup the accounting file to use different languages.
- Create the accounting file with a main language.
- Add another language by adding the columns for the description in the other language.
You can add as many languages you need. - Customize the printout.
Program language
Every user can select and change the program language any time. Changing the program language will have no effect on the accounting data and accounting setup.
Adding columns for a different language
You can use the command Add column to create a supplementary column for the description in second language, in the table accounting, VAT table or Transaction's table. Use the language name (for example German, Chinese, etc.) as column name.
In the supplementary columns you will enter the description in the language.
You can add a new View for each language (German, Chinese, etc). You can customize the view to see only the description in one language or in more language at the same time.
People wiil be able to work on their language. .
Enhanced Balance sheet with in different languages
In the Enhanced Balance sheet you can choose witch column to use as description.
Under Columns select Add and choose the column you want to show.
You can create a Composition to save the setting for the printout. This way you can create printout for each language.
BananaApps
With BananaApps you can program a report to adapt to your necessity.
Journal reporting
In the following we will explain what need to be considered when creating a new BananaApps for a journal reporting.
- Retrieving the transactions data.
- Creating specific reports using the functionalities offered by the Banana API.
Documentation
Example files
- The examples files are available on github/General/CaseStudies/JournalReport.
- Solutions making use of the journal api:
- China, Voucher report
- Netherlands, Auditfile
Transactions table
The following table is an example of transactions:
We see above different types of transactions. The transactions can be on a single line or over multiple lines, with or without VAT.
The idea here is to print a journal’s table that contains all the accounts and the transactions. The final result it’s the following one:
Javascript API equivalent
To retrieve a Table object with all the amount registered on the accounts, we use the Journal’s API:
var journal = Banana.document.journal(Banana.document.originType, Banana.document.accountType);
where
originType specifies the row to be filtered for. Can be one of:
- ORIGINTYPE_NONE no filter is applyied and all rows are returned (current and budget)
- ORIGINTYPE_CURRENT only the normal transactions are returned
- ORIGINTYPE_BUDGET only the budget transactions are returned
accountType specifies the row to be filtered for. Can be one of:
- ACCOUNTTYPE_NONE no filter is applied and all rows are returned.
- ACCOUNTTYPE_NORMAL only rows for normal accounts are returned
- ACCOUNTTYPE_CC1 only rows for Cost Center 1 are returned
- ACCOUNTTYPE_CC2 only rows for Cost Center 2 are returned
- ACCOUNTTYPE_CC3 only rows for Cost Center 1 are returned
- ACCOUNTTYPE_CC Cost Center rows are returned same as using (ACCOUNTTYPE_CC1 | ACCOUNTTYPE_CC2 | ACCOUNTTYPE_CC3)
The returned table has all the columns of the transaction's table plus many other (please, visit the Journal's API for more information).
Code example
A common use to create and use a journal table to retrieve transactions data would be:
// Create the journal table var journal = Banana.document.journal(Banana.document.ORIGINTYPE_CURRENT, Banana.document.ACCOUNTTYPE_NORMAL); // Read the table row by row and save some values for (var i = 0; i < journal.rowCount; i++) { var tRow = journal.row(i); // From the journal table we take only the transactions rows if (tRow.value('JOperationType') == Banana.document.OPERATIONTYPE_TRANSACTION) { // Save some column values var jContraAccountGroup = tRow.value('JContraAccountGroup'); var jRowOrigin = tRow.value('JRowOrigin'); var jDate = tRow.value('JDate'); var jAccount = tRow.value('JAccount'); var jContraAccount = tRow.value('JContraAccount'); var jDescription = tRow.value('JDescription'); var jAccountDescription = tRow.value('JAccountDescription'); var jAmount = tRow.value('JAmount'); //... } }
Results of the Journal’s table for each transaction
The journal’s table above is useful to better understand exactly how the journal works.
In general:
- For each account used in the transaction table (AccountDebit, AccountCredit, CC1, CC2, CC3) the program generates a journal row with the JAccount column set with the specific account.
- For a double entry account transaction that use AccountDebit, AccountCredit, AccountVat, CC1, CC2, CC3 the Journal will contain six rows. If the transaction has only AccountDebit and AccountCredit, then two rows will be generated.
All transactions in specific:
- Doc 001 – Single line transaction without VAT
Journal:
One line for the 2020 JAccount
One line for the 1010 JAccount
- Doc 005 – Single line transaction with VAT
Journal:
One line for the 3260 JAccount
One line for the 1000 JAccount
One line for the 2020 JAccount
- Doc 006 – Single line transaction with negative VAT
Journal:
One line for the 1000 JAccount
One line for the 4100 JAccount
One line for the 2020 JAccount. The VAT amount is in negative for the fact that the VAT amount is registered in credit, and therefore the amount must be pay to the tax authority
- Doc 011 – Multiple lines transaction with VAT
Journal:
One line for the 1010 JAccount
One line for the 3270 JAccount
One line for the 2020 JAccount
One line for the 3200 JAccount
Distributed accounting
The Banana Accounting software is used by thousands of organisations and projects as a distributed accounting system.
Banana.ch has been a world pioneer in using blockchain technology, which faciltates the creation of a distributed accounting system.
Examples are:
- Entities that keep track of accounting transactions in different places and integrate the data in one central accounting.
- Projects accounting, with specific and detailed reporting, not available on the central system.
- A Non-profit organization that has projects worldwide, lets each project keep their accounting, and the data are integrated in the central accounting system (See Helvetas - Blockchain decentralized accounting).
- A large public organization that uses SAP, lets some organizations keep their accounting with Banana. (See Example of Kanton Basel City - German).
- Companies with different branches, that operate in different countries, with different currencies and accounting setup.
When Distributed accounting makes sense
Organizations tend to centralize their accounting system, so that all data reside in one system only.
Cloud computing makes it easier for organizations to share a centralized system. But distributed accounting still is the best choice:
- Connections are slow or costly.
- Using the central system is difficult:
- Require specifically trained personal
- Have high license costs.
- It is not flexible.
- Have a different workflow.
- Local accountings have specific needs, and customizing the central system would be too difficult and costly:
- different accounting plans and requirements
- different legal requirements
- different currencies.
- Accounting documents are kept at the branch level.
- Branches need a lot of flexibility but at the same time you do want to limit data access.
- The different branches have few interactions.
- There is no need to have all the detail-information in a central system.
In these cases it makes sense to have people in the branches use Banana Accounting.
Setting up the distributed accounting system
Organizations that use a distributed accounting system will then need to integrate the data in a central system, in order to have financial statements that include all branches and projects.
The data integration process must consider:
- With what frequency the data need to be integrated (monthly, quarterly, yearly, ...).
- The detail-transactions that need to be integrated in the central system.
- Whether only summary data are being integrated in the main system.
- How the data will be made available to the center.
Integrating all transactions into the central system
The requirements for working this way are:
- The distributed accounting and the central accounting use the same account numbers, same currency.
- In this case the integration process is done by importing the transactions from the branch into the central system.
- In Banana you have a central accounting system and use the import function.
- The distributed accounting and the central accounting have different account numbers or currencies
- The transactions must be converted to a format that is suitable for importing.
You can create a BananaApps that exports the data from the Banana Accounting file into the requested format's data. - Currency conversion.
You need to define at what rate the amounts from one currency are converted to the other currency. - If you use Banana for the central and distributed accounting see
- Import transactions
- Import file (this function also allows to convert account numbers).
- The transactions must be converted to a format that is suitable for importing.
Integrating only the summary data into the central system
This approach facilitates the integration process and is particularly adequate when:
- The central accounting system differs from the local one.
- Local accountings use different settings (currency, accounting plan), making the integration complex.
- There is no need to have detailed transactional information in the central system.
Detailed information can easily be accessed with the Banana accounting file. - There are large quantities of data and integrating it makes managing the central system more complex and costly.
Therefore, in the central system only the summary data are integrated:
- The period of the data that should be integrated (monthly, quarter, year) are defined
- Defined is whether the integration is done at the accounting level or at the group level (see below).
- Each branch accounting prints a summary of transactions (see BananaApps Trial Balance with blockchain) that includes:
- accounts or group number
- total debit and credit for the period.
- these amounts are registered unto the central accounting:
- Manually (directly from the report)
- With the import function. In this case the data should be exported from Banana Accounting.
Using blockchain lock function
If you use a distributed accounting system, it is important that, once you have integrated the data into the central system, the local data are not changed. In case the local data have been changed you will have difficulty in reconciling the different systems. The situation will get complicated if you have many accounting files.
The branch cannot be prevented to modify the file, for the fact that they have the file on their local system.
The only way to make sure that the data have not been changed, is to use a blockchain security mechanism embedded in Banana and named Lock transaction:
Each branch, at the end of each period, is required to:
- Check that the progressive lock of the previous period is the same as the one that has been printed.
- Lock the accounting for the period.
- Print the lock report, sign it and send it to the headquarters, together with the accounting file.
Once the accounting has been locked, the branch, should:
- Continue to work on the same file.
- Do not unlock or change the locked transactions.
The headquarter should:
- Keep note of the progrLock and number when they integrate the data.
- Keep a copy of the file that has been integrated previously.
The best is to put in a directory with the date or have a date in the file name. - When they receive the file, check that the lockProgressive of the last period is the same.
- If is not the same require the branch to fix the problem.
- do not proceed with the data integration.
- Use the BananaApps Compare two files to see the differences.
- In this case, it will be worth it to return the previous file, so that they can start from this and add the new transactions.
- If it is the same
- Proceed with the integration.
- Keep note of the last LockProgr and LockNumber.
- If is not the same require the branch to fix the problem.
Structuring the accounting plan to facilitate the data integration
Keep the same account numbers
If you need to use in the branch the same accounts number that you use in the central system, the best way is to use the same accounts number in the branch accounting file.
Using different account numbers
This is necessary in case local accounting should use a different accounting plan (local rules) or a more detailed accounting.
There are different options:
Add a column to the accounting plan for the central accounting number, so that each account will also have a corresponding central account number:
- The account column will use a local account number.
- In the columns Central account you enter for each account the number of the account used in the central system.
- Different accounts can have the same central account number.
Use a grouping schema where the groups in the accounting table corresponds to the account number of the central accounting (see Helvetas example)
- Each group in the accounting plan will correspond to an account number in the central accounting.
- In the accounts table you will have the groups totals corresponding to the accounts in the central accounting.
- You will end up having a lot of groups.
- This approach is useful if the local accounting needs to create many local accounts. For examples many bank accounts.
Multiple levels
If your organization is complex it may make sense to have different level of integration (see Helvetas example) with different approaches:
- Each country integrates the data of the local projects, by importing all transactions in one file.
- The summary data of each country is then integrated in the central accounting system.
Cash book accounting
If the local project only has one account to manage, it make sense to set up a Cash book accounting.
- Create a Cash book file in which the branch keeps track of it's expenses.
- Use the import Cash Book function to integrate the data in the main Banana Accounting file.
Translate Banana Software
Prepare for translation
Introduction
This documentation relates to Banana version 8.0.4 and later
Download Banana 8 at https://www.banana.ch/en/download_en
Download and install the tranlsation package
- The translation package contains
- QtLinquist
- The Banana Accounting texts to be translated
- The QtLibrary text (only few to translate)
- In order to access the texts to be translated you have to download the following file:
ban80_translations.zip - (www.banana.ch/accounting/files/banana8/translations/ban80_translations.zip)
last update: 14 january 2016
- Once you downloaded the file, double click on it in order to extract its content - once the process is finished you will have a new directory on your Desktop:
ban80_translations directory, with the following content:- "win_start_linguist.cmd" file - to launch under Windows the software QtLinguist used to translate banana accounting
- "mac_start_linguist.cmd" file - to launch under Mac the software QtLinguist used to translate banana accounting
- "win_compile_translations.cmd" file - to compile under Windows the translations in a binary form readable by banana accounting
- "mac_compile_translations.cmd" file - to compile under Mac the translations in a binary form readable by banana accounting
- "output" directory - once you run "compile_translations.cmd", it contains the compiled translations
- "src/translations" directory - contains the Banana Accounting files with the texts to be translated
- "win_bin", "mac_bin" and "qtrsrc" directories - contain various files
QtLinguist
Is a software tool that allow to insert the translated text.
Before opening the QtLinguist sofware we advise you to read the QtLinquist guide for translators
Start QtLinuist and open the translation file :
- Launch the QtLinguist software with a double on the file "start_linguist.cmd"
- Open the translation file src/translations/ban8000_xxx.ts (where xxx stand for the abbreviation of your language)
QtLinquist Interface
You will face a screenshot similar to this one:
Translate the texts
- You need to translate the missing text and mark every finished text with a green check mark (you will find it
in the toolbar) until all texts will be marked with either one of these symbols:
or
.
- We advise you to start with the more general texts, this means leaving for later texts starting with a Dlg (dialog) or Tab symbol - for example "CDate"
- You won't be able to change the English texts - if you find any mistake in English you will have to ask us to correct it.
- If you want to have a comparison with other languages, you just need to open the corresponding *.ts files.
- If it is not Se non è chiaro come tradurre un termine leggere le indicazioni dello sviluppatore
- f you need further information from us in order to translate a specific texts, there is a field called "Translator notes" where you can enter your comments.
Start with the words: "TODO:" this is just a code so later on we will be able to trace and easily extract all your comments.
Special texts and charachters
- You will find %1, %2, %3 within the text.
The symbol %1 will be replaced by the program by the appropriate value (account number, date, file name, etc.).
If there is a %1, %2, %* this should also be present in the translation in the appropriate place. - Banana Accounting columns name an table names.
For example "ReportWithMovements;With mov.;with movements"- The text is separated by the semicolumn ";"
- First part is the field name, in the translated text
- No space or special charachters
- Camel case (first charachter of the word is Capital)
- Second part is the column header. Should possible fit on the columns with.
- Thirt part is the full description, it is displayed as a tooltip when you go with the mouse on the column header.
QtLibrary translation files
- This are the text of the library file. They contains many text but we do need only to translate a fews.
- This texts are in ban80_translations/src/translations/qt_xx.ts file,
- You need to translate it in the same way as the other, and we actually advise you to start from this one. Attention: in the qt_xx.ts file not all the texts are to be translated, but only those that have a green check mark
in the Italian file qt_it.ts (which you will have to open for comparison).
Do not translate
- It is not necessary to translate the following texts: ResocontoIvaCh*, ReportIvaItalia*I
After the translation
Send the translation back to us:
Once you finish your translation work:
- Send us as an attachement the *.ts files of your languages, this means the file ban8000_xxx.ts and the file qt_xx.ts if you have it in your language.
- Once you have send us the files back do not translate any more text.
Wait until we will make the next version of the translations files available.
How to get your translation text in Banana Accounting software
You can verify how your translation look in the Banana accounting software - here is how to proceed:
- Check that you have the latest version of Banana Accounting.
Get in touch with with Banana Tecnictian to know if the latest version is available. - Double click on the file compile_translations.cmd
- Copy all the files output/*.qm in the Lang folder of the Banana software (usually the location is C:\Program files\Banana80\Lang or , C:\Program files\BananaExpm80\Lang, but it could vary depending on where you have installed Banana 8)
- Restart Banana 8 and select your language from the Option command (Tools menu)
- If some text does not display at the correct place it is due to different software version (can happen with experimental version)
Tools and links for translators
Microsoft Language portal - it contains all Microsoft translation
KDE Qt Translations - suggestion on how to translate the qt_xx.ts texts
Bing Translator - this is an online translator that you can rely on to translate complete sentences if you have not found a suitable solution with the previous links. Please note that technical and specific terms might not always be translated correctly.
Notes
Please let us know if we can improve this documentation.