Create Message
The Create Message initializes a new Ledger.
Business Rules
- The ledger must not already exist.
- At least one currency must be defined.
- The first currency in
currrencies
will be used as the ledger's default. - If no domain is specified, a default domain will be created.
- For initial account balances, the sum of debits must equal the sum of credits.
- A name must be specified in at least one language.
- The language of the first name will be used as the ledger default. If no language is provided, the Laravel system language will be used.
- If the code of an account defined in
accounts
is the same as one in thetemplate
, then it will overwrite the template definition. - If
transDate
is not provided then the current date is used. - Transactions can only be posted after the opening date.
Create Message Properties
Property | Type | Description |
---|---|---|
accounts |
Account[] | A list of ledger accounts. |
balances |
Balance[] | A list of balances for the opening transaction. |
currencies |
Currency[] | A list of currencies supported by the ledger. |
domains |
Domain[] | A list of ledger domains (organizational units). |
journals |
SubJournal[] | A list of sub-journals that can receive Journal Entries. |
names |
Name[] | Name of the ledger, multilingual. |
rules |
stdClass | Ledger attribute settings. See below. |
sections |
array | Section definitions. |
template |
string | A Chart of Accounts template to use. |
templatePath |
string | The path to the CoA template (read only). |
transDate |
string | The opening balance date. |
Property Requirements
At least one currency and one name are required. If account balances are provided with no opening date, then the current date is used. Transactions cannot be posted earlier than the date of the opening balances.
A list of available templates can be obtained with the Artisan ledger:templates command.
Ledger rules
The rules
property is a stdClass
object that defines the characteristics of the ledger. This
object is used to populate a LedgerRules
object. In JSON
notation the contents of the object are:
{
"rules": {
"account": {
"codeFormat": "optional regular expression, eg \/[0-9]{4}\/",
"postToCategory": false
},
"batch": {
"allowReports": true,
"limit": 0
},
"domain": {
"default": "default domain identifier (defaults to the first domain)"
},
"entry": {
"reviewed": false
},
"language": {
"default": "language_code (defaults to App::getLocale()"
},
"openDate": "Opening date for the ledger (defaults to the date of an opening transaction)",
"pageSize": 100
}
}
account->codeFormat
This is a regular expression that specifies the acceptable pattern for
ledger account codes.
account->postToCategory
If set then transactions can be posted directly to category accounts.
This normally not a recommended practice, so the default value is false.
batch->allowReports
If set false, then report requests in a batch will generate an error.
batch->limit
Limits the number of sub-requests in a batch. The default (0) is no limit.
domain->default
Sets the default domain code. If not specified, the first defined domain is used.
If no domains are defined, a default is automatically created.
entry->reviewed
Sets the default state of the reviewed flag for journal entries. Set to true if
transactions do not need to be reviewed.
language->default
Sets the default language code (examples: en, en-US, Fr-CA). If not specified,
the application's current locale is used.
pageSize
Specifies the maximum number of rows to return in an API query. JSON API users cannot
override this limit.
Applications can define additional rule properties as needed. However, to avoid conflict with future features it is recommended that any properties added by the application begin with an underscore.