mirror of
https://github.com/itflow-org/itflow
synced 2026-11-11 07:01:16 +00:00
Rates, net terms and SLAs come from the client's contract, else the instance defaults: database 3.5.0 adds a default after-hours rate (Settings > Defaults, now Rates and terms), gives each client whose own rate, net terms or SLAs differ from the defaults an active Standard terms contract setting just those (12-month term renewing itself, starting the day the client was added or the day before its earliest contract, archived with an archived client), deletes per-client SLA assignments and drops clients.client_rate and client_net_terms; time bills at the contract's rate, its after-hours rate or the default after-hours rate, else the default rate, new invoices are due on the contract's net terms else the default, and new tickets get the contract's SLA else the default; a client's own terms still apply until the update runs; the client add and edit windows lose the rate, terms and SLA fields for a note saying what the client is billed on and where it comes from, the Clients list loses Set Hourly Rate and Set Net Terms and shows the contract's rate, the overview's Terms shows the after-hours rate and whether terms are a contract's or the defaults, a contract's page and document show what it leaves empty from another contract in force or the default so signed documents stay unchanged, contract windows show the defaults as placeholders, contract names take a proper possessive; the client import and API create make a Standard terms contract for a rate or terms that aren't the defaults (returning contract_id), API update reports them in not_kept; the client export gives the rates, terms and SLAs as billed; demo data puts each demo client's terms on a contract; changelog updated
This commit is contained in:
@@ -42,7 +42,7 @@ function settingsPages() {
|
||||
'theme' => ['group' => 'company', 'title' => 'Theme', 'icon' => 'fa-paint-brush', 'url' => 'settings_theme.php',
|
||||
'about' => 'The colour of the top bar, links, buttons and highlights, and the icon on the browser tab.'],
|
||||
'default' => ['group' => 'work', 'title' => 'Defaults', 'icon' => 'fa-cogs', 'url' => 'settings_default.php',
|
||||
'about' => 'Where ITFlow opens, and what new payments, expenses, transfers and clients start with.'],
|
||||
'about' => 'Where ITFlow opens, what a client is billed on without a contract, and what new payments, expenses and transfers start with.'],
|
||||
'ticket' => ['group' => 'work', 'title' => 'Tickets', 'icon' => 'fa-life-ring', 'url' => 'settings_ticket.php', 'module' => 'ticketing',
|
||||
'about' => 'How tickets are numbered, made from email, timed, billed and closed.'],
|
||||
'project' => ['group' => 'work', 'title' => 'Projects', 'icon' => 'fa-project-diagram', 'url' => 'settings_project.php', 'module' => 'ticketing',
|
||||
@@ -137,9 +137,10 @@ function settingsFields() {
|
||||
'config_start_page' => ['page' => 'default', 'section' => 'Opening ITFlow', 'label' => 'Start page', 'kind' => 'select', 'options' => 'start_pages',
|
||||
'words' => 'home dashboard landing start page'],
|
||||
'config_default_calendar' => ['page' => 'default', 'section' => 'Opening ITFlow', 'label' => 'Calendar', 'kind' => 'calendar', 'words' => 'default calendar events'],
|
||||
'config_default_net_terms' => ['page' => 'default', 'section' => 'New clients', 'label' => 'Net terms', 'kind' => 'select', 'options' => 'net_terms',
|
||||
'words' => 'payment terms due days net 30'],
|
||||
'config_default_hourly_rate' => ['page' => 'default', 'section' => 'New clients', 'label' => 'Hourly rate', 'words' => 'rate per hour labour labor billing'],
|
||||
'config_default_net_terms' => ['page' => 'default', 'section' => 'Rates and terms', 'label' => 'Net terms', 'kind' => 'select', 'options' => 'net_terms',
|
||||
'words' => 'payment terms due days net 30 client contract'],
|
||||
'config_default_hourly_rate' => ['page' => 'default', 'section' => 'Rates and terms', 'label' => 'Hourly rate', 'words' => 'rate per hour labour labor billing client contract'],
|
||||
'config_default_after_hours_rate' => ['page' => 'default', 'section' => 'Rates and terms', 'label' => 'After-hours rate', 'words' => 'after hours rate evening weekend overtime out of hours billing contract'],
|
||||
'config_default_payment_account' => ['page' => 'default', 'section' => 'Accounts', 'label' => 'Payments go into', 'kind' => 'account', 'words' => 'payment account bank deposit'],
|
||||
'config_default_payment_method' => ['page' => 'default', 'section' => 'Accounts', 'label' => 'Payment method', 'words' => 'payment method check card cash'],
|
||||
'config_default_expense_account' => ['page' => 'default', 'section' => 'Accounts', 'label' => 'Expenses come out of', 'kind' => 'account', 'words' => 'expense account'],
|
||||
@@ -965,7 +966,7 @@ function settingsMailEncryption() {
|
||||
return ['' => 'none', 'tls' => 'STARTTLS', 'ssl' => 'SSL/TLS'];
|
||||
}
|
||||
|
||||
/* The net terms a client can have, as days => name. */
|
||||
/* The net terms a contract or the default can be, as days => name. */
|
||||
function settingsNetTerms() {
|
||||
return [0 => 'On receipt', 7 => '7 days', 10 => '10 days', 15 => '15 days', 30 => '30 days', 45 => '45 days', 60 => '60 days', 90 => '90 days'];
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user