Commit Graph
42 Commits
Author SHA1 Message Date
Reza Fouladian ca655f36fe Add intent wedge scanner, MDM support for Android (#863)
Add Android intent wedge scanner support with auto configuration for supported Zebra and Datalogic devices.
Intent wedge scans can be done without pressing the scan button first.

Adds the ability for an MDM server to push settings on Android.
2026-08-16 13:59:20 +10:00
Oliver 0fe2bdd507 Transfer order (#854)
* Add API version check

* Implement basic transfer order support

* add link to drawer

* Adjust dashboard display order

* Support transfer order allocation detail

* Add progress bar

* Enable scan of transfer order
2026-07-14 15:37:43 +10:00
Oliver e301abebd8 display model pk entries (#851) 2026-07-06 23:18:51 +10:00
Ben HagenAsterix\Oliver <oliver@currawongeng.com>Oliver Walters
ea132599d8 Build Order (#673)
* WIP

* Remove debug msg

* Add required roles

* More roles

* Fix refresh for BuildDetail widget

* Add attachments widget

* Translated text

* Further updates

* More translations

* Form field updates

* Cleanup

* Code formatting

* Fix duplicate import

* formatting

* Remove duplicate switch case

* Update to match modern app

* Improved required parts list

* Filtering for build outputs

* Display list of allocated stock items

* Display source and destination locations

* Fix typo

* Add build orders to drawer

* Fix hard-coded string

* Set default filter value

* Tweak build fields (remove "notes")

* Fixes

* Add "start_date" to build edit form

* Disable editing of build line

* Tweak build item / build detail views

* Remove unused func

* Remove unused import

---------

Co-authored-by: Asterix\Oliver <oliver@currawongeng.com>
Co-authored-by: Oliver Walters <oliver.henry.walters@gmail.com>
2026-04-21 15:45:37 +10:00
Oliver ee553af93b Part requirements (#761)
* Add setting to control if part requirements are shown

* Split settings for Part and Stock

* Fetch part requirements information

* Add "building" indicator

* Show order allocation progress for part requirements

* Bump release notes

* Remove unused import
2026-02-02 22:52:53 +11:00
Oliver 864c3eea76 Parameters refactor (#738)
* refactor attachment code into its own file

* Add getters

* Remove custom models for each type of attachment

* Refactor existing widgets

* Fix double camera open bug

* Add check for modern parameter API

* Add generic parameter type

* Remove old code

* Remove dead code

* Refactor previous widget

* Remove unused imports

* Refactor common code

* format

* Update release notes

* Helper func to render parameters list tile

* Display parameters on part page

* parameters for company

* Supplier more model types:

- ManufacturerPart
- SupplierPart
- PurchaseOrder
- SalesOrder

* dart format

* Fix image prefix

* Remove unused import

* Adjust API version
2025-12-04 18:34:05 +11:00
Oliver 13d95dd1b1 Modern Label printing (#724)
* Basic widget

* Redirect label printing action

* Refactor label printing code

* Construct form elements

* Refactor to allow re-use of forms

* Basic rendering of label printing form

* Remove dead code

* Pass custom handler through to form context

* Refactoring API forms:

- Allow custom pk field name
- Add callback when values change

* linting

* Dynamically rebuild form

* Handle nested fields

* Handle label printing status

* Run dart format

* Update release notes

* Remove unused var

* Enable close icon

* Handle initial plugin default value

* Store default values:

- Selected template (per label type)
- Selected printing plugin

* Dart format

* Fix dart linting

* use setter

* Just use a public field
2025-11-22 07:26:37 +11:00
Oliver 624655ec6b SalesOrderShipment (#697)
* Add detail widget for SalesOrderShipment

* Support editing of shipment details

* Rearrange SalesOrderDetail page

* Add support for attachments against shipment model

* refactoring

* Add shipment details page

* Add user actions for shipments:

- Check / uncheck
- Take photo

* Placeholder action to send shipment

* Send shipment from app

* Display pending shipments on the home screen

* Improve rending for shipments list

* Add class definition for SalesOrderAllocation

* Display list of items allocated against SalesOrderShipment

* Bump release notse

* Click through to stock item

* Bump version number

* dart format

* cleanup

* Remove unused imports
2025-10-24 13:36:10 +11:00
Ben Hagen 4444884afa Format Code and Add Format Checks to CI (#643)
* Remove unused lib/generated/i18n.dart

* Use `fvm dart format .`

* Add contributing guidelines

* Enforce dart format

* Add `dart format off` directive to generated files
2025-06-24 09:55:01 +10:00
OliverandJarEXE 13abcae84c Part pricing detail (#655)
* Implement part pricing data and new part pricing widget

* improve part pricing widget and part pricing data. Add part pricing setting.

* Refactor helper func

* Tweak translated string

* Refactor part pricing page

* Update release notes

* Fixes

* More cleanup

---------

Co-authored-by: JarEXE <eykenj@gmail.com>
2025-06-14 10:56:56 +10:00
Oliver 524c5469f1 [refactor] Scan improvements (#577)
* Handle error on unexpected barcode response

* Add ManufacturerPart detail view

* Support barcode scanning for manufacturer part

* Refactoring for null checks

* Ignore selected errors in sentry

* Fix API implementation for ManufacturerPart

* Update release notes

* More error handling

* Decode quantity betterer

* Refactoring

* Add option to confirm checkin details

* Improve response handlign

* Cleanup

* Remove unused imports

* Fix async function

* Fix for assigning custom barcode

* Handle barcode scan result for company

* Fix

* Adjust scan priority

* Refactoring MODEL_TYPE

- Use instead of duplicated const strings

* @override fix
2024-12-14 15:24:23 +11:00
Oliver 2e798b1bd1 Order picture action (#557)
* Add "take picture" to purchase order detail

* Rename uploaded images

* Provide prefix when uploading images

* Add similar functionality for "sales order" detail

* Add new settings screens

* Control camera shortcut

* Bump release notes
2024-12-05 14:38:53 +11:00
Oliver d990508237 Update Requirements (#541)
Android / build (push) Has been cancelled
CI / test (push) Has been cancelled
iOS / build (push) Has been cancelled
* Update package requiremenst

* github workflow updates

* ios build updates

* Theme adjustments

* Further updates

* Fix typo

* Deprecated imperative apply of Flutter's Gradle plugins

Ref: https://docs.flutter.dev/release/breaking-changes/flutter-gradle-plugin-apply

* Refactor wedge scanner

* Add context checks

* Adjust behaviour if testing

* Further refactoring

* Moar checks

* Logic fix

* Fix for wedge scanner test

* Fix for barcode processing

* Fix

* Yet another fix
2024-10-01 12:25:11 +10:00
Oliver 4499f3e00e Barcode workflow (#485)
* Refactor stock barcode operations into new file

* Add setting to control confirmation of stock transfer actions

* Update details when scannign stock item

* Confirm movement when moving items into location

* Cleanup
2024-04-18 22:53:21 +10:00
Oliver 8cb5dd20f0 Barcode Scanning Updates (#448)
* Add new setting for controlling manual barcode scan

* Adds ability to pause and resume scanning with button

- Camera is still "live" during this

* Add UI elements

* Change scan setting

- "Continuous" scanning
- Enabled by default

* Update release notes

* Scanner updates

- Use "hold to pause" in continuous scan
- Use "tap to pause" in single scan

* Improve barcode scanning options

- Allow tap-to-pause or hold-to-pause
- More obvious user interactions

* Ensure consistent icon placement

* Remove separate setting for barcode pause mode
2023-11-14 07:39:06 +11:00
Oliver bdd5470e68 Sales order support (#438)
* Add new models for SalesOrder

- Create generic Order and OrderLine models with common functionality

* Refactor

- Move some widgets around
- Cleanup directory structure

* Add link to home screen and nav drawer

* Add SalesOrder list widget

* Linting fixes

* Fix string

* Refactor PurchaseOrderDetailWidget

* Tweaks to existing code

* linting

* Fixes for drawer widget

* Add "detail" page for SalesOrder

* Add more tiles to SalesOrder detail

* Allow editing of salesorder

* add list filters for sales orders

* Display list of line items

* Customer updates

- Display customer icon on home screen
- Fetch sales orders for customer detail page

* Cleanup company detail view

* Create new sales order from list

* Stricter typing for formFields method

* Create new PurchaseOrder and SalesOrder from company deatil

* Status code updates

- Add function for name comparison
- Remove hard-coded values

* Update view permission checks for home widget

* Add ability to manually add SalesOrderLineItem

* Add nice progress bar widgets

* Display detail view for sales order line item

* edit SalesOrderLineItem

* Fix unused import

* Hide "shipped items" tab

- Will be added in a future update
2023-11-12 23:13:22 +11:00
Oliver c641cea369 Scanner wedge mode (#437)
* Add code_scan_listener package

* Implement wedge controller widget

* Update barcode settings widget

- Allow user to choose which barcode scanner to use

* Fix typo

* Select barcode scanner widget based on user preference

* Fix rendering issues for wedge controller

* Update release notes

* Add unit test for wedge scanner widget

- Required some tweaks to other code

* Use better library

- https://github.com/fuadreza/flutter_barcode_listener
- Fork of https://github.com/shaxxx/flutter_barcode_listener
- Properly handles key "case" issues (shift, essentially)
- Verified that it works correctly for multiple character types

* Local copy of code, rather than relying on package which is not available on pub.dev

* Fix unit test
2023-10-25 22:40:49 +11:00
Oliver 443e6e856c Label print updates (#399)
* Allow download of printed label

* Add setting for controlling label printing

* Control display of label printing via setting

* Refactor label printing functionality

- Move to helpers.dart
- Will be used for other label types also

* Factor out request for label templates

* Add label printing support for part

* Support label printing for stock location

* update release notes
2023-07-16 00:51:11 +10:00
Oliver e9eb84eace Stock display (#379)
* Display stock quantity more prominently

* Cleanup search widget

* Update for stock_detail widget

* More tweaks

* Change bottom bar icon

* Display boolean parameters appropriately

* Adds ability to edit part parameters

* Bump icon size a bit

* Improvements to filter options

- Allow filtering by "option" type
- To start with, filter stock by status code

* Remove debug message

* Remove getTriState method

- No longer needed
- Remove associated unit tests

* Adjust filters based on server API version

* Muted colors
2023-06-24 11:34:42 +10:00
Oliver 71bf3ad049 App orientation (#369)
* Configurable screen orientation

- Follow system (default)
- Fixed in portrait
- Fixed in landscape

* Fix for dialog
2023-06-13 19:53:50 +10:00
Oliver b051aeccda Barcode refactor (#363)
* Move barcode.dart

* Fix

* Refactoring barcode scanner code:

- Abstract the "controller" class (for future development)
- Break barcode scanning code out into multiple files
- Add CameraBarcodeController class (qr_code_scanner)

* Add await

* Make barcode scan delay configurable

* remove unused import

* Handle camera exceptions

* Improve sequencing for camera scanner

- Show loading overlay
- Prevent reload if view is no longer mounted

* Update docstring

* Update release notes
2023-06-11 09:41:26 +10:00
Oliver 383571707e Stock test actions (#345)
* Use FAB for stock item test result

* Change long press to tap

* Add setting to control display of stock tests results

* Add question mark if no result recorded
2023-04-28 23:27:59 +10:00
Oliver efb6fc353e Bom optional (#227)
* Split part settings onto different screen

* show_bom setting controls whether BOM information is displayed

* linting
2022-12-04 23:05:35 +11:00
Oliver c2574e9fa5 Part parameters (#224)
* Adds class representing the PartParameter model

* Adds API method for determining support for PartParmaters

* Display part parameter count in part detail widget

* Adds user setting for controlling if part parameters are displayed

* Fix URL for model

* Widget for displaying part parameters

* linting
2022-12-04 20:51:48 +11:00
Oliver 9559b8602e Locale switch (#200)
* Add function to set app locale

* Setting for selecting app language

- Adds requirement for "flutter_localized_locales"
- Change main app to stateless

* Reload entire app tree when language is changed

* Update release notes

* linting
2022-08-02 15:54:59 +10:00
Oliver 13ebaf43e1 List refactor (#179)
* Catch paginator bug if widget is disposed before request returns

* Refactoring paginated query widget

- Add option to enable / disable search filters

* Major refactor of paginated search widget

- Learned something new.. a state can access widget.<attribute>
- THIS CHANGES EVERTHING

* Preferences: Add code for tri-state values

- Also improve unit testing for preferences code

* Allow boolean form fields to be optionally tristate

* paginator: Allow custom boolean filters

* Remove outdated filtering preferences

* Refactor filter options

- Allow specification of more detailed options

* Add custom filters for "part" list

* filter tweaks

* Remove legacy "SublocationList" widget

* Add filtering option for locationlist

* Updates for stock location widget

* Refactor category display widget

* More widget refactoring

* Update main search widget

* Fix unit tests

* Improve filtering on BOM display page
2022-07-19 23:29:01 +10:00
Oliver Walters 4e14bd077c Improved debug messages 2022-05-22 09:17:32 +10:00
Oliver Walters 6ef95499b7 Add genhtml step 2022-05-21 19:27:44 +10:00
Oliver 77bac9af36 Yet more linting 2021-09-28 20:35:19 +10:00
Oliver ad0cc36540 More linting work 2021-09-28 20:24:55 +10:00
Oliver c1152ee286 Fixes for type casting 2021-09-28 17:53:14 +10:00
Oliver 83e29777c2 More cleanup 2021-07-15 23:28:55 +10:00
Oliver d3eec6a79e Many many changes for null-safety support 2021-07-09 23:56:38 +10:00
Oliver Walters dba45c7600 Remove reliance on shared preferences 2021-02-11 00:53:52 +11:00
Oliver Walters d918079440 Cleanup 2021-02-09 09:12:47 +11:00
Oliver Walters d5649af2f9 Server login now references the UserProfile class 2021-02-08 22:03:14 +11:00
Oliver Walters b34a91b865 UserProfile 2021-02-08 20:32:49 +11:00
Oliver Walters b69762ff15 API refactoring:
- Error if the server version is *older* than the min required version
- Display dialog boxes for different server errors
2021-02-02 20:37:54 +11:00
Oliver Walters aa8a3602e8 Expansion state is now saved on the session level, not per widget 2020-04-06 23:01:11 +10:00
Oliver Walters 055cc37e68 API improvements
- Simple function connect() which loads saves settings from preferences file
2020-04-04 13:43:29 +11:00
Oliver Walters ee7ab5308e server / username / password now saved to local preferences 2020-04-03 14:25:28 +11:00
Oliver Walters b71c665453 Better use of async functions for API
- Use local_preferences for storing data
2019-06-26 00:07:18 +10:00