Name | NEMO-billing JSON |
Version |
3.2.12
JSON |
| download |
home_page | None |
Summary | Billing plugin for NEMO |
upload_time | 2024-12-13 13:36:43 |
maintainer | None |
docs_url | None |
author | None |
requires_python | >=3.8 |
license | MIT License Copyright (c) 2024 Atlantis Labs LLC Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
keywords |
nemo
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# NEMO billing
This billing plugin for NEMO includes core facilities and custom charges/adjustments.
It also includes sub-modules for adding rates and invoices.
# Installation
`pip install NEMO-billing`
# Add core billing plugin
in `settings.py` add to `INSTALLED_APPS`:
```python
INSTALLED_APPS = [
'...',
'NEMO_billing', # Add before NEMO to have new navbar menu items show up
'NEMO_billing.rates',
'NEMO_billing.invoices',
# 'NEMO_billing.cap_discount', # Optional
# 'NEMO_billing.prepayments', # Optional
'...',
# 'NEMO_user_details', # If using user details plugin
'...',
'NEMO',
'...'
]
```
### NEMO Compatibility
NEMO & NEMO-CE >= 6.0.0 ----> NEMO-Billing >= 3.0.0
NEMO >= 5.5.3 NEMO-CE >= 2.4.4 ----> NEMO-Billing >= 2.9.4
NEMO >= 5.5.2 ----> NEMO-Billing >= 2.9.1
NEMO >= 5.5.0 ----> NEMO-Billing >= 2.9.0
NEMO >= 5.3.0 ----> NEMO-Billing >= 2.8.0
NEMO >= 4.7.0 ----> NEMO-Billing >= 2.7.0
NEMO >= 4.6.4 ----> NEMO-Billing >= 2.6.13
NEMO >= 4.6.0 ----> NEMO-Billing >= 2.5.8
NEMO >= 4.5.0 ----> NEMO-Billing >= 2.0.0
NEMO >= 4.3.0 ----> NEMO-Billing >= 1.23.0
NEMO >= 4.2.1 ----> NEMO-Billing >= 1.22.2
NEMO >= 4.2.0 ----> NEMO-Billing >= 1.22.1
NEMO >= 4.1.0 ----> NEMO-Billing >= 1.19.0
NEMO >= 4.0.0 ----> NEMO-Billing >= 1.18.0
NEMO >= 3.14.0 ----> NEMO-Billing >= 1.16.0
NEMO >= 3.13.0 ----> NEMO-Billing >= 1.13.0
NEMO 3.10.0 to 3.12.2 ----> NEMO-Billing 1.5.0 to 1.12.0
### Usage
This plugin will add core facilities and custom charges which can be added through django admin.
Core Facility can be set on Custom Charges, Tools, Areas, Consumables and Staff Charges
There are 2 ways to set them up:
1. In Detailed Administration -> Core Facilities, you can select each tool, area, consumable or staff charge
2. In Detailed Administration -> NEMO on each individual custom charge, tool, area, consumable or staff charge
Core Facility can be accessed on a tool, area, consumable or staff charge using:
`tool.core_facility`, `area.core_facility`, `consumable.core_facility` or `staff_charge.core_facility`
### Options
By default, a Core Facility is not required for each custom charge, tool, area, consumable or staff charge.
That can be changed by updating the following default settings in `settings.py`:
```python
TOOL_CORE_FACILITY_REQUIRED = False
AREA_CORE_FACILITY_REQUIRED = False
CONSUMABLE_CORE_FACILITY_REQUIRED = False
STAFF_CHARGE_CORE_FACILITY_REQUIRED = False
CUSTOM_CHARGE_CORE_FACILITY_REQUIRED = False
```
In the billing (user, project billing, billing API, invoices) tool usage and area access on behalf of a user (only during a remote project) are categorized as Staff Charges.
That can be changed by updating the following default settings in `settings.py`
```python
STAFF_TOOL_USAGE_AS_STAFF_CHARGE = True
STAFF_AREA_ACCESS_AS_STAFF_CHARGE = True
```
# Add Rates plugin
in `settings.py` add to `INSTALLED_APPS`:
'NEMO_billing.rates',
### Rates module options
The following default properties can be changed in `settings.py`
```python
# The display rate currency is set to $ by default
RATE_CURRENCY = "CAD "
# Missed reservations rates will have the "flat" checkbox checked by default
DEFAULT_MISSED_RESERVATION_FLAT = True
# The rate list URL can be customized
RATE_LIST_URL = "fee_schedule"
```
# Add Invoices plugin
in `settings.py` add to `INSTALLED_APPS`:
'NEMO_billing.invoices',
### Invoices module options
The following default properties can be changed in `settings.py`:
```python
# Date formats
INVOICE_DATETIME_FORMAT = "%m/%d/%Y %H:%M:%S"
INVOICE_DATE_FORMAT = "%B %d, %Y"
# Invoice email prefix
INVOICE_EMAIL_SUBJECT_PREFIX = "[NEMO Billing] "
# Whether to validate that all billable items belong to a core facility before generating invoice
INVOICE_ALL_ITEMS_MUST_BE_IN_FACILITY = False
```
# Add CAP discount plugin
in `settings.py` add to `INSTALLED_APPS`:
'NEMO_billing.cap_discount',
CAP Discount settings are available in Customization -> Billing CAP
# Add Project prepayments/funds plugin
in `settings.py` add to `INSTALLED_APPS`:
'NEMO_billing.prepayments',
### Email templates
To change email templates, either go to Invoices customization settings in NEMO and upload new files, or directly create a file in NEMO's media folder with the same name.<br>
The following templates can be set:
* `email_send_invoice_subject.txt`
* `email_send_invoice_message.html`
* `email_send_invoice_reminder_subject.txt`
* `email_send_invoice_reminder_message.html`
* `billing_project_expiration_reminder_email_subject.txt`
* `billing_project_expiration_reminder_email_message.html`
### Timed services/cron jobs
To send reminder emails, set a cron job daily with one of the 2 options:
1. send an authenticated http request to `<nemo_url>/invoices/send_invoice_payment_reminder`
2. run command `django-admin send_invoice_payment_reminder` or `python manage.py send_invoice_payment_reminder`
Similarly, to automatically deactivate expired projects and send expiration reminders, set a cron job daily with one of the 2 options:
1. send an authenticated http request to `<nemo_url>/projects/deactivate_expired_projects`
2. run command `django-admin deactivate_expired_projects` or `python manage.py deactivate_expired_projects`
# Post Installation
run:
`python manage.py migrate`
Raw data
{
"_id": null,
"home_page": null,
"name": "NEMO-billing",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "NEMO",
"author": null,
"author_email": "Atlantis Labs LLC <atlantis@atlantislabs.io>",
"download_url": null,
"platform": null,
"description": "# NEMO billing\n\nThis billing plugin for NEMO includes core facilities and custom charges/adjustments.\nIt also includes sub-modules for adding rates and invoices.\n\n\n# Installation\n\n`pip install NEMO-billing`\n\n# Add core billing plugin\n\nin `settings.py` add to `INSTALLED_APPS`:\n\n```python\nINSTALLED_APPS = [\n '...',\n 'NEMO_billing', # Add before NEMO to have new navbar menu items show up\n 'NEMO_billing.rates',\n 'NEMO_billing.invoices',\n # 'NEMO_billing.cap_discount', # Optional\n # 'NEMO_billing.prepayments', # Optional\n '...',\n # 'NEMO_user_details', # If using user details plugin\n '...',\n 'NEMO',\n '...'\n]\n```\n\n### NEMO Compatibility\n\nNEMO & NEMO-CE >= 6.0.0 ----> NEMO-Billing >= 3.0.0\n\nNEMO >= 5.5.3 NEMO-CE >= 2.4.4 ----> NEMO-Billing >= 2.9.4\n\nNEMO >= 5.5.2 ----> NEMO-Billing >= 2.9.1\n\nNEMO >= 5.5.0 ----> NEMO-Billing >= 2.9.0\n\nNEMO >= 5.3.0 ----> NEMO-Billing >= 2.8.0\n\nNEMO >= 4.7.0 ----> NEMO-Billing >= 2.7.0\n\nNEMO >= 4.6.4 ----> NEMO-Billing >= 2.6.13\n\nNEMO >= 4.6.0 ----> NEMO-Billing >= 2.5.8\n\nNEMO >= 4.5.0 ----> NEMO-Billing >= 2.0.0\n\nNEMO >= 4.3.0 ----> NEMO-Billing >= 1.23.0\n\nNEMO >= 4.2.1 ----> NEMO-Billing >= 1.22.2\n\nNEMO >= 4.2.0 ----> NEMO-Billing >= 1.22.1\n\nNEMO >= 4.1.0 ----> NEMO-Billing >= 1.19.0\n\nNEMO >= 4.0.0 ----> NEMO-Billing >= 1.18.0\n\nNEMO >= 3.14.0 ----> NEMO-Billing >= 1.16.0\n\nNEMO >= 3.13.0 ----> NEMO-Billing >= 1.13.0\n\nNEMO 3.10.0 to 3.12.2 ----> NEMO-Billing 1.5.0 to 1.12.0 \n\n### Usage\n\nThis plugin will add core facilities and custom charges which can be added through django admin.\n\nCore Facility can be set on Custom Charges, Tools, Areas, Consumables and Staff Charges\n\nThere are 2 ways to set them up:\n1. In Detailed Administration -> Core Facilities, you can select each tool, area, consumable or staff charge\n2. In Detailed Administration -> NEMO on each individual custom charge, tool, area, consumable or staff charge\n\nCore Facility can be accessed on a tool, area, consumable or staff charge using:\n`tool.core_facility`, `area.core_facility`, `consumable.core_facility` or `staff_charge.core_facility`\n\n### Options\nBy default, a Core Facility is not required for each custom charge, tool, area, consumable or staff charge.\n\nThat can be changed by updating the following default settings in `settings.py`:\n\n```python\nTOOL_CORE_FACILITY_REQUIRED = False\nAREA_CORE_FACILITY_REQUIRED = False\nCONSUMABLE_CORE_FACILITY_REQUIRED = False\nSTAFF_CHARGE_CORE_FACILITY_REQUIRED = False\nCUSTOM_CHARGE_CORE_FACILITY_REQUIRED = False\n```\n\nIn the billing (user, project billing, billing API, invoices) tool usage and area access on behalf of a user (only during a remote project) are categorized as Staff Charges.\n\nThat can be changed by updating the following default settings in `settings.py`\n\n```python\nSTAFF_TOOL_USAGE_AS_STAFF_CHARGE = True\nSTAFF_AREA_ACCESS_AS_STAFF_CHARGE = True\n```\n\n\n# Add Rates plugin\n\nin `settings.py` add to `INSTALLED_APPS`:\n\n 'NEMO_billing.rates',\n\n### Rates module options\nThe following default properties can be changed in `settings.py`\n\n```python\n# The display rate currency is set to $ by default\nRATE_CURRENCY = \"CAD \"\n# Missed reservations rates will have the \"flat\" checkbox checked by default\nDEFAULT_MISSED_RESERVATION_FLAT = True\n# The rate list URL can be customized\nRATE_LIST_URL = \"fee_schedule\"\n```\n\n\n# Add Invoices plugin\n\nin `settings.py` add to `INSTALLED_APPS`:\n\n 'NEMO_billing.invoices',\n\n### Invoices module options\nThe following default properties can be changed in `settings.py`:\n\n```python\n# Date formats\nINVOICE_DATETIME_FORMAT = \"%m/%d/%Y %H:%M:%S\"\nINVOICE_DATE_FORMAT = \"%B %d, %Y\"\n# Invoice email prefix\nINVOICE_EMAIL_SUBJECT_PREFIX = \"[NEMO Billing] \"\n# Whether to validate that all billable items belong to a core facility before generating invoice\nINVOICE_ALL_ITEMS_MUST_BE_IN_FACILITY = False \n```\n\n\n# Add CAP discount plugin\n\nin `settings.py` add to `INSTALLED_APPS`:\n\n 'NEMO_billing.cap_discount',\n\nCAP Discount settings are available in Customization -> Billing CAP\n\n\n# Add Project prepayments/funds plugin\n\nin `settings.py` add to `INSTALLED_APPS`:\n\n 'NEMO_billing.prepayments',\n\n\n### Email templates\nTo change email templates, either go to Invoices customization settings in NEMO and upload new files, or directly create a file in NEMO's media folder with the same name.<br>\nThe following templates can be set:\n\n* `email_send_invoice_subject.txt`\n* `email_send_invoice_message.html`\n* `email_send_invoice_reminder_subject.txt`\n* `email_send_invoice_reminder_message.html`\n* `billing_project_expiration_reminder_email_subject.txt`\n* `billing_project_expiration_reminder_email_message.html`\n\n### Timed services/cron jobs\nTo send reminder emails, set a cron job daily with one of the 2 options:\n\n1. send an authenticated http request to `<nemo_url>/invoices/send_invoice_payment_reminder`\n2. run command `django-admin send_invoice_payment_reminder` or `python manage.py send_invoice_payment_reminder`\n\nSimilarly, to automatically deactivate expired projects and send expiration reminders, set a cron job daily with one of the 2 options:\n\n1. send an authenticated http request to `<nemo_url>/projects/deactivate_expired_projects`\n2. run command `django-admin deactivate_expired_projects` or `python manage.py deactivate_expired_projects`\n\n\n# Post Installation\n\nrun:\n\n`python manage.py migrate`\n",
"bugtrack_url": null,
"license": "MIT License Copyright (c) 2024 Atlantis Labs LLC Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ",
"summary": "Billing plugin for NEMO",
"version": "3.2.12",
"project_urls": {
"CI": "https://gitlab.com/nemo-community/atlantis-labs/nemo-billing/-/pipelines",
"Changelog": "https://gitlab.com/nemo-community/atlantis-labs/nemo-billing/-/releases",
"Homepage": "https://gitlab.com/nemo-community/atlantis-labs/nemo-billing",
"Issues": "https://gitlab.com/nemo-community/atlantis-labs/nemo-billing/-/issues"
},
"split_keywords": [
"nemo"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "d6148017d1602cb6efe0212f7fa8b37de3dfcd589121084f76e7a0c97e4a9ba3",
"md5": "4aaf1f4abb3c9180dc2fa596e065b62b",
"sha256": "c94d3bf53868e7f1acc96fc1849982ec305e3601731ab7dab66c0068f47a5251"
},
"downloads": -1,
"filename": "NEMO_billing-3.2.12-py3-none-any.whl",
"has_sig": false,
"md5_digest": "4aaf1f4abb3c9180dc2fa596e065b62b",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 227915,
"upload_time": "2024-12-13T13:36:43",
"upload_time_iso_8601": "2024-12-13T13:36:43.904650Z",
"url": "https://files.pythonhosted.org/packages/d6/14/8017d1602cb6efe0212f7fa8b37de3dfcd589121084f76e7a0c97e4a9ba3/NEMO_billing-3.2.12-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-12-13 13:36:43",
"github": false,
"gitlab": true,
"bitbucket": false,
"codeberg": false,
"gitlab_user": "nemo-community",
"gitlab_project": "atlantis-labs",
"lcname": "nemo-billing"
}