| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Attendances (hr_attendance)
• Employees (hr) • Discuss (mail) |
| Lines of code | 541 |
| Technical Name |
geofence_attendance |
| License | OPL-1 |
| Website | https://saudierp.work |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Attendances (hr_attendance)
• Employees (hr) • Discuss (mail) |
| Lines of code | 541 |
| Technical Name |
geofence_attendance |
| License | OPL-1 |
| Website | https://saudierp.work |
Geofence Attendance
Restrict employee attendance to specific GPS areas - natively integrated with Odoo Attendances.
by SaudiERP
Why Geofence Attendance?
Eliminate buddy-punching and remote check-ins from unauthorised locations. With a simple toggle on each work location, you ensure every check-in and check-out happens within an allowed radius of the office, branch, warehouse, or site.
Per-location geofence settings
Enable the geofence on each work location, then enter its center coordinates and the allowed radius in meters. Disabled locations fall back to standard Odoo behaviour.
- Toggle to enable / disable geofencing
- Latitude and longitude with 7-digit precision
- Allowed radius in meters
- Server-side validation of all inputs
Accurate distance enforcement
Distance between the employee and the work location is computed using the Haversine formula on the great-circle, ensuring real-world accuracy regardless of latitude.
- Enforced on every check-in and check-out
- Works in Kiosk Mode and the My Attendance page
- Clear, translated error messages when out of range
- Logged for audit purposes
Pick from an interactive map
Choose how to set the geofence center: enter coordinates by hand, or pick a point on an interactive map with built-in address search and a "Use my location" button.
- Click anywhere on the map to set the center
- Drag the marker to fine-tune the position
- Search any address worldwide
- One-tap capture of the device's current GPS
- Visual circle showing the allowed radius
Smart location resolution
The geofence follows the employee's current work location automatically, with sensible fallbacks built in. Whether you use a single default location, a different place for each day of the week, or date-specific assignments, the right geofence applies on the right day - no extra configuration needed.
- Per-day work locations supported (Mon, Tue, Wed, ...)
- Works with Odoo's date-based employee versions
- Falls back to the default work location when no day-specific value is set
- "Active Geofence Today" shown on the employee form
Screenshots
1. Set up your geofence visually
Enable the toggle, enter coordinates manually, or click anywhere on the
interactive map to set the center. The blue circle shows the allowed
radius in real time.
2. Out-of-range protection
When an employee tries to check in or out from outside the allowed area,
Odoo blocks the action and shows the exact distance and allowed radius.
3. Smart location resolution
Assign a different work location for each day of the week, or use Odoo's
date-based employee versions for temporary assignments. The geofence
automatically applies the right location, with a clean fallback to the
default work location when no day-specific value is set.
4. Geofence summary on the employee form
See at a glance whether geofencing is enabled for the employee's
work location, the configured area, and which geofence is active today.
How it works
1. Define
Open Attendances - Geofence Locations, enable the toggle, and either enter coordinates manually or pick the center on the map.
2. Assign
On the employee form, set the Work Location field. The geofence summary appears right below it for confirmation.
3. Enforce
When the employee tries to check in, Odoo captures the GPS position and the module verifies the distance before accepting the record.
Feature summary
| Feature | Included |
|---|---|
| Per-location geofence toggle | Yes |
| Manual coordinate entry | Yes |
| Interactive map picker with address search | Yes |
| "Use my location" button | Yes |
| Per-day work location resolution | Yes |
| Compatible with Odoo date-based employee versions | Yes |
| Server-side validation (Haversine) | Yes |
| Kiosk Mode support | Yes |
| My Attendance page support | Yes |
| Multi-company aware | Yes |
| Geofence tagging on each attendance record | Yes |
| English and Arabic translations | Yes |
| RTL layout support | Yes |
External services used
The map picker relies on the following free, open services. Listed here for full transparency. The core attendance check does not depend on any of them and works fully offline.
| Service | Purpose | Data sent |
|---|---|---|
| Leaflet (unpkg CDN) | Loads the Leaflet JavaScript library and stylesheet that render the map. | None - only file requests. |
| OpenStreetMap tile servers | Serves the map background tiles displayed in the picker. | Map view coordinates and zoom level only. |
| OpenStreetMap Nominatim | Searches addresses entered in the search box. | The text typed in the search box. |
Compatibility
| Deployment | Supported |
|---|---|
| Odoo 19.0 Community | Yes - tested |
| Odoo 19.0 Enterprise | Yes - compatible (no Enterprise-only dependencies) |
| Odoo.sh (Community or Enterprise) | Yes - install via Git repository |
| Odoo Online (SaaS) | No - Odoo Online does not support third-party modules |
Requirements
- Odoo 19.0
- Depends on the standard
hr_attendancemodule - HTTPS is required in production for browser geolocation to work
- Employees must grant location permission to their browser
- The map picker requires internet access on the manager's computer; the attendance enforcement does not.
Support
For questions, bug reports, or custom development requests, please reach out to SaudiERP:
Email: support@saudierp.work
Website: saudierp.work
Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must 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.
Please log in to comment on this module