# Field Sale App

<p class="doc-lead">The <b>Field Sale App</b> is the mobile companion to Freespace ERP for sales teams working outside the office. Use it on Android and iOS to create invoices, collect payments, view reports, and manage daily field operations.</p>

<div class="doc-toc">
<p class="doc-toc-title">On this page</p>
<div class="doc-toc-section">
<span class="doc-toc-group-title">Getting started</span>
<div class="doc-toc-links">
<a href="#/field-sale-app/?id=recent-updates">Recent updates</a>
<a href="#/field-sale-app/?id=installation">Installation</a>
<a href="#/field-sale-app/settings?id=setup">Admin setup</a>
</div>
</div>
<div class="doc-toc-section">
<span class="doc-toc-group-title">Using the app</span>
<div class="doc-toc-links">
<a href="#/field-sale-app/?id=app-layout">App layout</a>
<a href="#/field-sale-app/?id=route-selector">Route selector</a>
<a href="#/field-sale-app/?id=geolocation">Geolocation</a>
<a href="#/field-sale-app/customers">Customers</a>
<a href="#/field-sale-app/leads">Leads</a>
<a href="#/field-sale-app/hr-and-payroll">HR &amp; Payroll</a>
<a href="#/field-sale-app/?id=documentation">Documentation</a>
<a href="#/field-sale-app/?id=role-resources">Role access</a>
</div>
</div>
<div class="doc-toc-section">
<span class="doc-toc-group-title">Videos</span>
<div class="doc-toc-links">
<a href="#/field-sale-app/?id=video-setup">Setup video</a>
<a href="#/field-sale-app/?id=full-video">Full video</a>
</div>
</div>
</div>

<hr class="doc-section-divider">

<h2 id="recent-updates">Recent updates</h2>

<p>Numbered releases are published on <a href="#/version-releases/field-sale-app">Version Releases → Field Sale App</a>. Informal notes below remain until each ship is captured there.</p>

<p><b>August 2026</b> — Android <b>2.0.86</b> / iOS <b>1.0.18</b>: Default Sale Return Reason on new Credit Notes. See <a href="#/version-releases/field-sale-app?id=v2-0-86">release notes</a>.</p>

<p><b>July 2026</b> — Bulk attendance entry on mobile:</p>

<ul>
<li><b>Attendance Entry</b> on <b>More</b> — select multiple employees at once, apply shared status, overtime, notes, and project task, then edit individual exceptions before save. See <a href="#/field-sale-app/hr-and-payroll/attendance">Attendance</a>.</li>
<li><b>Select All</b> on the attendance employee picker — respects search and department filter.</li>
</ul>

<p><b>June 2026</b> — Project scheduling on mobile:</p>

<ul>
<li><b>Daily Schedule</b> on <b>Home</b> — view today's project tasks grouped by project, update progress or completed quantity inline, create tasks, and save bulk changes. See <a href="#/field-sale-app/daily-schedule">Daily Schedule</a>.</li>
<li><b>Work Schedule</b> on <b>Reports</b> — read-only single-day schedule with summary counts and task detail. See <a href="#/field-sale-app/reports?id=work-schedule">Work Schedule</a>.</li>
<li><b>Project Task</b> on <b>Attendance Entry</b> — optionally link each attendance line to a project task when a project is selected on the header. See <a href="#/field-sale-app/hr-and-payroll/attendance">Attendance</a>.</li>
<li><b>Progress tracking mode</b> (percentage vs quantity) follows <a href="#/project/project-settings">Project Settings</a> on the web ERP, same as the web Daily Schedule.</li>
<li><b>Salesman Ranking</b> compares sales across all salesmen for the selected period. Enable <b>Salesman Ranking</b> on the user role to show the report. See <a href="#/field-sale-app/reports?id=salesman-ranking">Salesman Ranking</a>.</li>
</ul>

<hr class="doc-section-divider">

<h2 id="installation">Installation</h2>

- **Android:** Download **Freespace ERP** from **Google Play**.
- **iOS:** Download **Freespace ERP** from the **App Store** (iPhone and iPad).

The app login screen shows the current app version after installation.

For admin setup (user role, user defaults, Field Sale App Settings), see [Settings — Admin setup](field-sale-app/settings.md?id=setup). Web route and app defaults: [Employee Routes](settings/employee-routes.md), [Routes](settings/routes.md), [Field Sale App Settings](settings/field-sale-app-settings.md).

<hr class="doc-section-divider">

<h2 id="app-layout">App layout</h2>

After login, the app opens with a bottom tab bar and a left drawer menu (hamburger icon).

<h3>Bottom tabs</h3>

| Tab | Purpose |
|-----|---------|
| **Home** | Daily transactions — new invoice, receipts, orders, customers, **Daily Schedule**, projects, and more |
| **Fleet** | Vehicle assignment, odometer logs, quick log (shown only when the user has vehicle access) |
| **Reports** | Day report, work schedule, customer statement, salesman ranking, and other field reports |
| **More** | Attendance entry, cash advance request, expense claim, printer settings |

<h3>Left drawer</h3>

Open the drawer from the hamburger icon on any tab:

- **Printer Settings** — connect a Bluetooth thermal printer and set paper width
- **Logout** — sign out of the app

Company name, signed-in user, and app version appear at the bottom of the drawer.

<hr class="doc-section-divider">

<h2 id="route-selector">Route selector</h2>

At the top of the **Home** tab, the **Route** card filters field data to one sales route assigned to the logged-in employee.

<h3>When it appears</h3>

The selector is shown only when **all** of the following are true:

- Default **Employee** is set in web user settings
- User role includes **Employee Route** access
- The employee has at least one active route assigned

If any condition fails, the route card is hidden and lists are not route-filtered.

<h3>Using the selector</h3>

1. Tap **Route** → **Select a route** opens the route picker.
2. Search routes with **Search routes…**
3. Tap a route to select it — the card shows the route name with a highlighted border.
4. Tap **Clear Selection** to remove the filter (shows all routes again for that employee).

On first login, when no route was saved before, the app **auto-selects the first route** in the list once.

The selected route is stored on the device until changed or cleared.

<h3>What the route filter affects</h3>

| Area | Effect |
|------|--------|
| **Customers** list | Customers on the selected route |
| **Leads** list | Leads on the selected route |
| **Customers Near Me** | Nearby customers on the selected route |
| **Recent Invoices**, **Orders**, **Credit Notes**, **Quotations** | Documents for customers on the route |
| **New Sale Invoice** | `routeId` saved on the invoice |
| **New Material Request** | `routeId` saved on the request |
| **Create Customer** / **Convert to Customer** | Route pre-filled when a route is active |

<hr class="doc-section-divider">

<h2 id="geolocation">Geolocation</h2>

The Field Sale App uses GPS in two ways: **background employee tracking** (optional, Android) and **on-demand location** for customers, leads, check-ins, and nearby lists.

<h3>Background tracking (Android only)</h3>

When **Enable Geolocation Tracking?** is turned on in web **User Settings**, the app starts background location reporting after login on **Android only**. **iOS does not run background tracking** in the current app build.

On first use, Android shows permission prompts:

1. **Location Access Required** — explains why location is needed; tap **Continue**
2. **Fine location** — allow while using the app
3. **Background location** — choose **Allow all the time** when prompted

If background permission is denied, the app shows guidance to open system settings and set location to **Allow all the time** for Freespace ERP.

When enabled and permitted, the app periodically posts the employee’s coordinates to the server (`/api2/hr/employee-geolocation`) while the session is active.

<h3>On-demand GPS (Android and iOS)</h3>

Device location is also read when the user explicitly requests it:

| Feature | Purpose |
|---------|---------|
| **Customers Near Me** | Sort customers by distance |
| **Customer / Lead location** | **Get My Location** on the map |
| **Customer / Lead directions** | Navigate icon on the map opens Apple Maps (iOS) or Google Maps (Android) |
| **Customer check-in** | Record visit coordinates |
| **Lead visit / reminder check-in** | GPS at lead location |
| **Sale Invoice / Receipt Voucher create** | Optional location capture on save (when configured) |

These flows use the device GPS when the user taps a location action — they do not require background tracking to be enabled.

<h3>Related settings and access</h3>

- Web user setting: **Enable Geolocation Tracking?** — see [Settings](field-sale-app/settings.md)
- Web Field Sale App setting: **Customer check-in boundary** — max distance from saved customer pin for check-in
- Customer map: **Customer — Save Location**, **Customer — Update Location**
- Customer check-in: **Customer Check In — New**; last check-in display requires **Customer Check In — List**

<hr class="doc-section-divider">

<h2 id="documentation">Documentation</h2>

| Topic | Page |
|-------|------|
| Transactions, actions, item selector | [Transactions](field-sale-app/transactions.md) |
| Customers, check-in, nearby | [Customers](field-sale-app/customers.md) |
| Leads, reminders, convert | [Leads](field-sale-app/leads.md) |
| Expense claims, cash advance, attendance | [HR & Payroll](field-sale-app/hr-and-payroll.md) — [Attendance](field-sale-app/hr-and-payroll/attendance.md) |
| Reports and access requirements | [Reports](field-sale-app/reports.md) |
| Fleet management | [Fleet Management](field-sale-app/fleet-management.md) |
| Projects | [Projects](field-sale-app/projects.md) |
| Daily Schedule (tasks, progress) | [Daily Schedule](field-sale-app/daily-schedule.md) |
| Web setup, defaults, and Field Sale App Settings | [Settings](field-sale-app/settings.md) |
| Bluetooth printer setup | [Printer Settings](field-sale-app/printer-settings.md) |
| Print formats (Regular / Retail, paper widths) | [Print Formats](field-sale-app/print-formats.md) |

<hr class="doc-section-divider">

<h2 id="role-resources">User role access</h2>

Field Sale App tiles, buttons, and reports are controlled by permissions on the user role (web **Settings > Users > User Role**). Grant the permissions below to show the matching feature in the app.

<h3>Navigation and layout</h3>

| Permission | Controls |
|------------|----------|
| **Employee Route** | **Route** selector on Home |
| **Vehicle** | **Fleet** bottom tab |
| **Fleet Management** | **Fleet Management** tile on Home |
| **Attachments** | Customer **Attachments** |
| **Branch — List** | **Branch** field on Material Request / Consumable Issue create (when **Allow Branch Editing?** is on) |
| **Secondary Status — Update** | **Update Secondary Status** on approved Sale Invoice |
| **Secondary Status — List** | Secondary status picker on update form |

<h3>Home tab tiles</h3>

| Tile | Permission |
|------|------------|
| New Invoice | Sale Invoice — New |
| Recent Invoices | Sale Invoice — List |
| New Receipt | Receipt Voucher — New |
| Recent Receipts | Receipt Voucher — List |
| New Order | Sale Order — New |
| Recent Orders | Sale Order — List |
| Credit Notes | Credit Note — List |
| Sale Quotations | Sale Quotation — List |
| Projects | Project — List |
| Daily Schedule | Daily Schedule and (Task Schedule or Work Schedule report) |
| Customers | Customer — List |
| Leads | Lead — List |
| Material Request | Material Request — List |
| Consumable Issue | Consumable Issue — List |
| Fleet Management | Fleet Management |
| RP Transfer | Customer RP — List |
| RP Center Transfer | RP Center Transfer — List |
| New RP deposit | RP Deposit — New |
| RP deposits | RP Deposit — List |

<h3>More tab</h3>

| Tile | Permission |
|------|------------|
| Attendance Entry | Attendance Entry |
| Cash Advance Request | Cash Advance Request — List |
| Expense Claim | Expense Claim — List |

Printer Settings has no permission gate.

<h3>Reports tab</h3>

| Tile / widget | Permission |
|---------------|------------|
| Employee summary widgets (top of Reports) | Employee Summary + default Employee |
| Day Report | Center Summary and/or Employee Summary |
| My Tasks | Lead Reminder — List |
| Salesman Ranking | Salesman Ranking |
| Item Enquiry | Item Enquiry |
| Approval Pending | Material Request — List, Consumable Issue — List, and/or Inventory Transfer — List (any one) |
| Customer Statement | Customer Statement |
| Outstanding Bills | Customer Outstanding Invoice |
| Item Wise Sale Return | Item Wise Sale Return |
| RP Stock | Center Wise RP |
| Work Schedule | Work Schedule |

<h3>Sale Invoice</h3>

| Action / feature | Permission |
|------------------|------------|
| List / open | Sale Invoice — List / Sale Invoice — View |
| Create | Sale Invoice — New |
| Edit / Delete / Approve / Cancel | Sale Invoice — Edit / Delete / Approve / Cancel |
| Pre Approve / Cancel Pre Approve | Sale Invoice — Pre Approve / Cancel Pre Approve |
| Create Receipt / Credit Note / Customer RP / RP Deposit | Receipt Voucher — New / Credit Note — New / Customer RP — New / RP Deposit — New |
| RP summary on invoice | Customer Wise RP Summary |
| Customer statement on print | Customer Statement |
| Secondary status update | Secondary Status — Update |

<h3>Receipt Voucher</h3>

| Action | Permission |
|--------|------------|
| List / view / create | Receipt Voucher — List / View / New |
| Edit / Delete / Approve / Cancel | Receipt Voucher — Edit / Delete / Approve / Cancel |
| Print linked Sale Invoice | Sale Invoice — View |

<h3>Sale Order, Quotation, Credit Note</h3>

| Document | List | View | New | Edit | Delete | Approve | Cancel |
|----------|------|------|-----|------|--------|---------|--------|
| Sale Order | Sale Order — List | Sale Order — View | Sale Order — New | Sale Order — Edit | Sale Order — Delete | Sale Order — Approve | Sale Order — Cancel |
| Sale Quotation | Sale Quotation — List | Sale Quotation — View | Sale Quotation — New | Sale Quotation — Edit | Sale Quotation — Delete | Sale Quotation — Approve | Sale Quotation — Cancel |
| Credit Note | Credit Note — List | Credit Note — View | Credit Note — New | Credit Note — Edit | Credit Note — Delete | Credit Note — Approve | Credit Note — Cancel |

Cross-create: Quotation → Order **Sale Order — New**; Quotation / Order → Invoice **Sale Invoice — New**; Order → Invoice when delivered **Sale Invoice — New**.

<h3>Customers and Leads</h3>

| Feature | Permission |
|---------|------------|
| Customer list | Customer — List |
| Customer view | Customer — View |
| Customer create (footer) | Customer — New |
| Customer edit / delete | Customer — Edit / Customer — Delete |
| Quick Invoice / Order / Receipt | Sale Invoice — New / Sale Order — New / Receipt Voucher — New |
| Save / update customer map pin | Customer — Save Location / Customer — Update Location |
| Customer check-in | Customer Check In — New |
| Last check-in display | Customer Check In — List |
| Lead list | Lead — List |
| Lead edit / delete | Lead — Edit / Lead — Delete |
| Log call / meeting / notes | Lead — Log |
| Log visit | Lead — Visit |
| Reminders list / create | Lead Reminder — List / Lead Reminder — New |
| Reminder Done / Snooze / Check in / out | Lead Reminder — Done / Snooze / Check In / Check Out |
| Convert to customer | Customer — New + Lead — Change Status |

<h3>Inventory</h3>

| Document | List | View | New | Edit | Delete | Approve | Cancel |
|----------|------|------|-----|------|--------|---------|--------|
| Material Request | Material Request — List | Material Request — View | Material Request — New | Material Request — Edit | Material Request — Delete | Material Request — Approve | Material Request — Cancel |
| Consumable Issue | Consumable Issue — List | Consumable Issue — View | Consumable Issue — New | Consumable Issue — Edit | Consumable Issue — Delete | Consumable Issue — Approve | Consumable Issue — Cancel |
| Inventory Transfer | Inventory Transfer — List | Inventory Transfer — View | — | — | Inventory Transfer — Delete | Inventory Transfer — Approve | Inventory Transfer — Cancel |

Create Consumable Issue from MR: **Consumable Issue — New**. Project on MR/CI: **Project — List**.

<h3>Returnable packaging</h3>

| Feature | Permission |
|---------|------------|
| Customer RP list / new / edit / delete / approve / cancel | Customer RP — List / New / Edit / Delete / Approve / Cancel |
| RP Center Transfer | RP Center Transfer — List / New / Edit / Delete / Approve / Cancel / View |
| RP Deposit list / new / edit / delete / approve / cancel | RP Deposit — List / New / Edit / Delete / Approve / Cancel |
| Customer-wise RP report (create screens) | Customer Wise RP |
| RP item picker | RP Item — List |
| RP stock report | Center Wise RP |

<h3>HR and payroll</h3>

| Feature | Permission |
|---------|------------|
| Expense Claim list / new / view / edit / delete | Expense Claim — List / New / View / Edit / Delete |
| Cash Advance list / new / view / edit / delete | Cash Advance Request — List / New / View / Edit / Delete |
| Bulk cash advance — department filter | Department — List |
| Attendance Entry | Attendance Entry |
| Attendance employee picker — department filter | Department — List |

<h3>Projects and scheduling</h3>

| Feature | Permission |
|---------|------------|
| Project list | Project — List |
| Project view | Project — View |
| Daily Schedule tile (Home) | Daily Schedule and (Task Schedule or Work Schedule report) |
| Work Schedule report (Reports tab) | Work Schedule |
| Project filter on schedule screens | Project — List |
| Edit progress or completed quantity (Daily Schedule) | Project Task — progress |
| New Task (Daily Schedule) | Project Task — create |
| Project task on attendance line | Project — List (project selected on attendance header) |

<h3>Item picker and pricing (supporting)</h3>

| Feature | Permission |
|---------|------------|
| Inventory Summary (Sale Invoice stock list) | Inventory Summary |
| Brand filter | Brand — List |
| Pricing / Custom pricing | Pricing / Custom Pricing |
| Tax / Tax class / Sale tax config | Tax — List / Tax Class — List / Sale Tax Configuration |
| Unit | Unit — List |
| Sale type picker | Sale Type — List |
| Cash account | Cash Account — List |
| Sale return reason (Credit Note) | Sale Return Reason — List |
| Item Enquiry (long-press / report) | Item Enquiry |
| Center Summary (Day Report stock) | Center Summary |

Enable **Employee Summary**, **Inventory Summary**, and **Center Summary** on the role when field users need reports and stock-based invoicing (see [Admin setup](field-sale-app/settings.md?id=setup)).

<hr class="doc-section-divider">

<h2 id="video-setup">Video (from 6:50)</h2>

<iframe width="560" height="315" src="https://www.youtube.com/embed/c0lHNRo38IQ?si=4CTtB5yveWZiZyXr&amp;start=410" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>

<hr class="doc-section-divider">

<h2 id="full-video">Full video</h2>

<iframe width="560" height="315" src="https://www.youtube.com/embed/TWpDaiwAluU?si=0u6ueVV8vYsBlcPt" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
