# ApprovalBlock Module
## Overview
The **ApprovalBlock** module adds individual approval limits for users in Dolibarr. Each user can have different limits for different document types.
## Features
### ✅ 5 different limit types per user:
1. **Proposals** - approval_limit_propal
2. **Customer Orders** - approval_limit_order
3. **Supplier Orders** - approval_limit_supplier_order
4. **Invoices** - approval_limit_invoice
5. **Contracts** - approval_limit_contract
### ✅ Block validation
- Trigger checks on validation if amount (excl. VAT) exceeds the limit
- If exceeded: Validation is blocked with meaningful error message
- User sees their limit and the document amount
### ✅ Admin bypass
- Users with admin rights can always validate
### ✅ Default = 0
- If no limit is set, the user can validate NOTHING
- Security: "Deny by default"
## Installation
1. Activate module in admin area: **Home → Setup → Modules → ApprovalBlock**
2. **Extrafields are created automatically** ✅
3. Set limits per user (see Configuration)
The 5 extrafields for users are created automatically during module activation:
- `approval_limit_propal` - Approval Limit for Proposals
- `approval_limit_order` - Approval Limit for Customer Orders
- `approval_limit_supplier_order` - Approval Limit for Supplier Orders
- `approval_limit_invoice` - Approval Limit for Invoices
- `approval_limit_contract` - Approval Limit for Contracts
## Configuration
### Set limits per user:
1. **Home → Users/Groups**
2. **Select user**
3. **Tab "Other attributes"**
4. **Enter values:**
- approval_limit_propal: e.g. 5000 (user can validate proposals up to 5,000 EUR)
- approval_limit_order: e.g. 10000 (orders up to 10,000 EUR)
- approval_limit_supplier_order: e.g. 3000
- approval_limit_invoice: e.g. 8000
- approval_limit_contract: e.g. 50000
## How it works
### Example 1: User with low limit
- **User:** Jakob
- **Proposals Limit:** 5,000 EUR
- **Attempt:** Validate proposal over 15,000 EUR
- **Result:** ❌ **BLOCKED** with message:
```
Validation blocked: Proposal amount 15,000.00 EUR exceeds
your approval limit of 5,000.00 EUR.
Please contact an administrator.
```
### Example 2: Different limits
- **User:** Maria
- **Proposals Limit:** 1,000 EUR
- **Orders Limit:** 10,000 EUR
- **Maria can:**
- ✅ Validate proposals up to 1,000 EUR
- ✅ Validate orders up to 10,000 EUR
- ❌ Proposal over 1,500 EUR → BLOCKED
- ✅ Order over 8,000 EUR → OK
### Example 3: Admin
- **User:** Admin
- **Admin rights:** Yes
- **Result:** ✅ Can validate EVERYTHING (regardless of limits)
## Technical Details
- **Module number:** 8000036
- **Trigger:** interface_99_modApprovalblock_ApprovalBlock.class.php
- **Actions:**
- PROPAL_VALIDATE
- ORDER_VALIDATE
- ORDER_SUPPLIER_VALIDATE
- BILL_VALIDATE
- CONTRACT_VALIDATE
## Dolibarr Version
- **Compatible with:** Dolibarr 21+
- **Tested with:** Dolibarr 21
## Support
kim@wittkowski-it.de