This commit is contained in:
@@ -1,38 +1,53 @@
|
||||
# DATA TYPES
|
||||
|
||||
## DATES / TIMES
|
||||
## DATE / TIME TYPES
|
||||
|
||||
### UTC
|
||||
All dates and times are stored at the server in UTC (GMT) values. The server has no knowledge of time zones. The browser time zone and language settings control the display format of the time and date and which time zone is used to convert them. Input and display is considered to be in the time zone as set in the browser or overridden in User settings.
|
||||
### TimeZone
|
||||
|
||||
All dates and times are stored at the server in UTC (GMT) values without time zone information. The server has no knowledge of time zones and does not involve time zones in any calculations or filtering. The browser time zone and language settings control the display format of the time and date and which time zone is used to convert them. Input and display is considered to be in the time zone as set in the browser or overridden in User settings.
|
||||
|
||||
### Filtering dates
|
||||
When viewing data in AyaNova that is filtered with one of the relative date filters (for example a filter of "TODAY"), this time zone setting is taken into account in order to ensure that the user sees data appropriate to *their time zone*. This means that two people with browsers in different time zones using a filter of TODAY for a date field may see different list of results from each other.
|
||||
|
||||
## Currency / Decimal numbers
|
||||
Currency and decimal numbers are stored with 38 digit precision and 18 digit scale. (DECIMAL(38,18)) This level of precision and scale is necessary to accomodate potential usage of crypto currencies such as Etherium or Bitcoin.
|
||||
Date filtering is relative to the user doing the filtering.
|
||||
|
||||
When viewing data in AyaNova that is filtered, the browser's current time and time zone setting is taken into account when the filtering query is built in order to ensure that the user sees data relative to _their time zone_. This means that two people with browsers in different time zones using a filter of TODAY for a date field may see different list of results from each other because each user has a different "today" relative to their own time zone.
|
||||
|
||||
## NUMBER TYPES
|
||||
|
||||
### Currency
|
||||
AyaNova is a single-currency program, it assumes all currency values entered are for the same currency and values entered are stored at the server as Decimal numbers. Currency as entered is interpreted and displayed with a combination of settings specified in the user's Currency setting and the locale / language setting of the browser (or the override if overriden).
|
||||
|
||||
Currency values are stored with 38 digit precision and 18 digit scale. This means a total of 38 digits can be stored and of those 38 digits, up to 18 can come after the decimal point. This level of precision and scale is more than adequate for most circulating currencies but is necessary to accomodate potential usage of crypto currencies such as Etherium or Bitcoin.
|
||||
This applies to any item which is a currency amount or a rate used to calculate a currency amount (except taxes see below)
|
||||
|
||||
AyaNova is a single-currency program, it assumes all currency values entered are for the same currency and values entered are stored at the server as Decimal numbers. Currency as entered is interpreted and displayed with a combination of settings specified in the user's Currency setting and the locale / language setting of the browser (or the override if overriden).
|
||||
|
||||
### Decimal numbers
|
||||
Decimal numbers are exactly the same as currency but without a currency symbol
|
||||
|
||||
At the back end in the database the actual values stored are
|
||||
Decimal numbers used typically for quantities of items are stored internally with 19 digit precision and 5 digit scale meaning 19 total digits can be stored of which a maximum of 5 can come after the decimal point. They are displayed and accepted from entry according to the rules of the locale / language setting of the browser (or the override if overriden).
|
||||
|
||||
## Text
|
||||
### Taxes / percentages
|
||||
|
||||
Taxes are stored and displayed in "face" value and not as fractions. So, for example a 7% sales tax is entered displayed adn stored as 7.0 and not .07.
|
||||
Taxes are stored with 8 digits precision and 5 digits scale so a total of 8 digits with up to 5 of those 8 after the decimal point.
|
||||
|
||||
todo: document that emojis can be used in any text field and key combo on windows is winkey-period
|
||||
-other os's too?
|
||||
### Geographic coordinates
|
||||
|
||||
todo: WIKI controls
|
||||
Latitude and longitude are entered and stored in decimal notation format and internally support 9 digits of precision and 6 digits of scale (9 total digits of which 6 can be after the decimal point)
|
||||
|
||||
todo: DATA TABLES
|
||||
Need help page specific to DataTable usage, link to it from the top of all manual pages that are for DataList UI pages (e.g. Customers page)
|
||||
Note: arbitrary 1024 max char text field length, truncates after that.
|
||||
Note: Special note to indicate that filtering by a column then hiding that column is supported as a feature
|
||||
User won't see the filtered column if they hid it but the filter still applies
|
||||
User can tell it's still filtered by the prescence of the filter reset button (circle with X inside) to the right of the filter selection list
|
||||
note: filtering system, column view system, saving filter, case sensitivity, tokens etc
|
||||
hidden query-affecting columns: Data Table column selector button will change to larger and accented when this is the case and the column selector form will highlight these hidden columns that affect the view with raised elevation, accent color and filter+sort icon (both show, there is no distinction which type of way it's affecting)
|
||||
### Object Identities / id values
|
||||
|
||||
Records created in AyaNova are automatically assigned a sequential id value (per object type) of a large-range 8 byte integer starting at 1 and extending to a maximum id value of 9223372036854775807
|
||||
|
||||
## TEXT TYPES
|
||||
|
||||
### General text entry fields
|
||||
|
||||
AyaNova general text fields are unlimited in length and fully support Unicode text (including emojis). These are typically things like Name fields or Note fields. While it's possible to enter an unlimited amount of text in some fields it is best to limit the length for practical reasons in areas like Names of objects due to the limited space to display them in some user interface devices. e.g. it's possible to use a 1000 character name for a Customer but would be impractical in display. Keep names short and store any extra data in custom fields or notes fields.
|
||||
|
||||
### Tags
|
||||
|
||||
Tags are special variation of Text type and are stored internally as an unlimited array of _maximum_ 255 characters each. Spaces are not allowed instead a dash symbol - is substituted for spaces and all tags are lower case by default.
|
||||
|
||||
## Custom fields
|
||||
|
||||
Custom fields can represent many types but are all stored in the database as a fragment of JSON formatted data and rules for JSON data are applicable regardless of type.
|
||||
|
||||
Reference in New Issue
Block a user