Country Specific Functionality for South Africa
This is a Frappe app, intended to be used with ERPNext (version 15).
- Value-added Tax Return: This makes submitting your VAT201 returns to SARS much easier
- Support for Bank Statements from South African Banks: Native import of .csv formats from FNB, ABSA and Bank Zero
- Easy-add of VAT in Bank Reconciliation Tool: No need to Edit in Full Page for those Journal Entries that require a VAT leg
MIT
📄 South Africa Customisations Documentation
You can install this app using the bench CLI:
cd $PATH_TO_YOUR_BENCH
bench get-app $URL_OF_THIS_REPO --branch develop
bench install-app csf_zaTo run unit tests:
bench --site test_site run-tests --app csf_za --coverageTo run UI/integration tests:
The following depencies are required
sudo apt update
# Dependencies for cypress: https://docs.cypress.io/guides/continuous-integration/introduction#UbuntuDebian
sudo apt-get install libgtk2.0-0 libgtk-3-0 libgbm-dev libnotify-dev libgconf-2-4 libnss3 libxss1 libasound2 libxtst6 xauth xvfb
sudo apt-get install chromiumbench --site test_site run-ui-tests csf_za --headless --browser chromiumThis app uses pre-commit for code formatting and linting. Please install pre-commit and enable it for this repository:
cd apps/csf_za
pre-commit install
#(optional) Run against all the files
pre-commit run --all-filesPre-commit is configured to use the following tools for checking and formatting your code:
- ruff
- eslint
- prettier
- pyupgrade
We use Semgrep rules specific to Frappe Framework
# Install semgrep
python3 -m pip install semgrep
# Clone the rules repository
git clone --depth 1 https://github.com/frappe/semgrep-rules.git frappe-semgrep-rules
# Run semgrep specifying rules folder as config
semgrep --config=/workspace/development/frappe-semgrep-rules/rules apps/csf_zaFor documentation, we use vitepress. You can run yarn docs:dev to preview the docs when applying changes
This app can use GitHub Actions for CI. The following workflows are configured:
- CI: Installs this app and runs unit tests on every push to
developbranch. - Linters: Runs Frappe Semgrep Rules and pip-audit on every pull request, as well as Semgrep

