{% extends 'base.html' %} {% load static %} {% block title %}Organization Settings - {{ organization.name }}{% endblock %} {% block page_title %}Organization Settings{% endblock %} {% block breadcrumb %} {% endblock %} {% block extra_css %} {% endblock %} {% block content %}

Organization Settings

{{ tenant_user.get_role_display }}
{% csrf_token %}

Business Information

{{ form.name }} {% if form.name.errors %}
{{ form.name.errors }}
{% endif %} {% if form.name.help_text %} {{ form.name.help_text }} {% endif %}
{{ form.business_registration_no }} {% if form.business_registration_no.errors %}
{{ form.business_registration_no.errors }}
{% endif %} {% if form.business_registration_no.help_text %} {{ form.business_registration_no.help_text }} {% endif %}
{{ form.tax_id }} {% if form.tax_id.errors %}
{{ form.tax_id.errors }}
{% endif %} {% if form.tax_id.help_text %} {{ form.tax_id.help_text }} {% endif %}

Contact Information

{{ form.address }} {% if form.address.errors %}
{{ form.address.errors }}
{% endif %}
{{ form.city }} {% if form.city.errors %}
{{ form.city.errors }}
{% endif %}
{{ form.state }} {% if form.state.errors %}
{{ form.state.errors }}
{% endif %}
{{ form.postcode }} {% if form.postcode.errors %}
{{ form.postcode.errors }}
{% endif %}
{{ form.country }} {% if form.country.errors %}
{{ form.country.errors }}
{% endif %}
{{ form.phone }} {% if form.phone.errors %}
{{ form.phone.errors }}
{% endif %}
{{ form.email }} {% if form.email.errors %}
{{ form.email.errors }}
{% endif %}
{{ form.website }} {% if form.website.errors %}
{{ form.website.errors }}
{% endif %} {% if form.website.help_text %} {{ form.website.help_text }} {% endif %}

Regional Settings

{{ form.currency }} Currency is fixed to Malaysian Ringgit (MYR)
{{ form.currency_symbol }} Currency symbol is fixed to RM
{{ form.timezone }}

LHDN Tax Filing Information

Information required for LHDN Borang B (Form B) tax filing. Complete these details to enable automated tax report generation.

{{ form.owner_name }} {% if form.owner_name.errors %}
{{ form.owner_name.errors }}
{% endif %} {% if form.owner_name.help_text %} {{ form.owner_name.help_text }} {% endif %}
{{ form.owner_ic_no }} {% if form.owner_ic_no.errors %}
{{ form.owner_ic_no.errors }}
{% endif %} {% if form.owner_ic_no.help_text %} {{ form.owner_ic_no.help_text }} {% endif %}
{{ form.business_activity_code }} {% if form.business_activity_code.errors %}
{{ form.business_activity_code.errors }}
{% endif %} {% if form.business_activity_code.help_text %} {{ form.business_activity_code.help_text }} {% endif %}
{{ form.tax_reference_no }} {% if form.tax_reference_no.errors %}
{{ form.tax_reference_no.errors }}
{% endif %} {% if form.tax_reference_no.help_text %} {{ form.tax_reference_no.help_text }} {% endif %}
{{ form.accounting_period_start }} {% if form.accounting_period_start.errors %}
{{ form.accounting_period_start.errors }}
{% endif %} {% if form.accounting_period_start.help_text %} {{ form.accounting_period_start.help_text }} {% endif %}
{{ form.accounting_period_end }} {% if form.accounting_period_end.errors %}
{{ form.accounting_period_end.errors }}
{% endif %} {% if form.accounting_period_end.help_text %} {{ form.accounting_period_end.help_text }} {% endif %}
{% if organization.owner_name and organization.owner_ic_no and organization.business_activity_code and organization.accounting_period_start and organization.accounting_period_end %} {% else %} {% endif %}
Cancel

Team Members Management

Manage users and their access to your organization

Manage Team

User Management Features

  • Role-Based Access: Assign different roles (Admin, Accountant, Staff, Viewer) with specific permissions
  • Subscription Limits: Team size limited based on your plan (currently allowing {{ organization.max_users }} users)
  • No Django Admin Needed: All user management through the application interface
  • User Activation: Easily activate or deactivate team members without deletion
Quick Overview

{{ organization.get_active_users_count }}

Active Users

{{ organization.max_users }}

Max Allowed

{% if organization.can_add_user %} {{ organization.max_users|add:"-"|add:organization.get_active_users_count }} {% else %} 0 {% endif %}

Slots Available

5

Role Types
Available Roles
Role Permissions
Owner Full system access including billing and user management
Admin User management, settings, all transactions (no billing access)
Accountant Create, edit, delete transactions; view reports; manage contacts
Staff Create and view transactions; view basic reports
Viewer Read-only access to transactions and reports
{% csrf_token %}

Document Numbering

{{ settings_form.invoice_prefix }} {% if settings_form.invoice_prefix.errors %}
{{ settings_form.invoice_prefix.errors }}
{% endif %} {% if settings_form.invoice_prefix.help_text %} {{ settings_form.invoice_prefix.help_text }} {% endif %}
Preview: {{ tenant_settings.invoice_prefix }}-00001
{{ settings_form.next_invoice_number }} {% if settings_form.next_invoice_number.errors %}
{{ settings_form.next_invoice_number.errors }}
{% endif %} {% if settings_form.next_invoice_number.help_text %} {{ settings_form.next_invoice_number.help_text }} {% endif %}
Change this carefully. Next invoice will use this number.
{{ settings_form.bill_prefix }} {% if settings_form.bill_prefix.errors %}
{{ settings_form.bill_prefix.errors }}
{% endif %} {% if settings_form.bill_prefix.help_text %} {{ settings_form.bill_prefix.help_text }} {% endif %}
Preview: {{ tenant_settings.bill_prefix }}-00001
{{ settings_form.next_bill_number }} {% if settings_form.next_bill_number.errors %}
{{ settings_form.next_bill_number.errors }}
{% endif %} {% if settings_form.next_bill_number.help_text %} {{ settings_form.next_bill_number.help_text }} {% endif %}
Change this carefully. Next bill will use this number.

Tax Configuration

{{ settings_form.sst_rate }} {% if settings_form.sst_rate.errors %}
{{ settings_form.sst_rate.errors }}
{% endif %} {% if settings_form.sst_rate.help_text %} {{ settings_form.sst_rate.help_text }} {% endif %}
{{ settings_form.sst_registration_number }} {% if settings_form.sst_registration_number.errors %}
{{ settings_form.sst_registration_number.errors }}
{% endif %} {% if settings_form.sst_registration_number.help_text %} {{ settings_form.sst_registration_number.help_text }} {% endif %}

Invoice Display Settings

{{ settings_form.default_payment_terms_days }} {% if settings_form.default_payment_terms_days.errors %}
{{ settings_form.default_payment_terms_days.errors }}
{% endif %} {% if settings_form.default_payment_terms_days.help_text %} {{ settings_form.default_payment_terms_days.help_text }} {% endif %}
{{ settings_form.invoice_footer_text }} {% if settings_form.invoice_footer_text.errors %}
{{ settings_form.invoice_footer_text.errors }}
{% endif %} {% if settings_form.invoice_footer_text.help_text %} {{ settings_form.invoice_footer_text.help_text }} {% endif %}
{{ settings_form.invoice_notes_default }} {% if settings_form.invoice_notes_default.errors %}
{{ settings_form.invoice_notes_default.errors }}
{% endif %} {% if settings_form.invoice_notes_default.help_text %} {{ settings_form.invoice_notes_default.help_text }} {% endif %}

Bank Details for Invoice

These bank details will appear on your invoices for customer payments.

{{ settings_form.bank_name }} {% if settings_form.bank_name.errors %}
{{ settings_form.bank_name.errors }}
{% endif %} {% if settings_form.bank_name.help_text %} {{ settings_form.bank_name.help_text }} {% endif %}
{{ settings_form.bank_account_number }} {% if settings_form.bank_account_number.errors %}
{{ settings_form.bank_account_number.errors }}
{% endif %} {% if settings_form.bank_account_number.help_text %} {{ settings_form.bank_account_number.help_text }} {% endif %}
{{ settings_form.bank_account_holder }} {% if settings_form.bank_account_holder.errors %}
{{ settings_form.bank_account_holder.errors }}
{% endif %} {% if settings_form.bank_account_holder.help_text %} {{ settings_form.bank_account_holder.help_text }} {% endif %}
Cancel

Year-End Snapshots for Borang B LHDN

Record historical year-end balances to ensure 100% accurate Borang B generation across multiple years.
Critical: Without snapshots, historical data will show current values (incorrect for past years).

Why Year-End Snapshots?

  • POS inventory only tracks current stock (not historical values)
  • Bank balances show current balance for all years
  • Outstanding receivables/payables show current status
  • Snapshots preserve accurate year-end data for tax filing
{% if yearend_snapshots %}
{% for snapshot in yearend_snapshots %} {% endfor %}
Year Opening Inventory Closing Inventory Bank Balance Status Created Actions
{{ snapshot.year }} RM {{ snapshot.opening_inventory_value|floatformat:2 }} RM {{ snapshot.closing_inventory_value|floatformat:2 }} RM {{ snapshot.closing_bank_balance|floatformat:2 }} {% if snapshot.is_finalized %} Finalized {% else %} Draft {% endif %} {{ snapshot.created_at|date:"d M Y" }} {% if snapshot.updated_at %}
Updated: {{ snapshot.updated_at|date:"d M Y" }} {% endif %}
{% if tenant_user.role == 'OWNER' %}
{% csrf_token %}
{% endif %}
{% else %}
No snapshots

No Year-End Snapshots Yet

Auto-generate snapshots from your transaction data or create manually.

{% endif %}

✨ NEW: Auto-Generate Feature!

  • Zero manual work! System automatically calculates year-end balances from transactions
  • 100% accurate - Based on actual transaction data
  • Generate all years at once - Preview before creating
  • Still editable - Review and adjust if needed

Important Notes

  • Auto-generate recommended! Faster and more accurate than manual
  • Finalize snapshots to prevent accidental changes (OWNER only)
  • One snapshot per year - update existing if needed before finalizing
  • Borang B uses snapshots automatically when available
{% include 'tenants/partials/subscription_content.html' %}
{% include 'tenants/partials/billing_content.html' %}
{% endblock %} {% block extra_js %} {% endblock %}