Go to file
Bobbe ae063d2722
Add basic support for scanning vendor barcodes (#5509)
* Add support for scanning digikey and mouser barcodes

* added small fixes if no part is found

* made small style cleanups

* Separate out ecia 2d barcode parser, Add quantity, PO number to response

* Use model instead of name for mouser supplier, add auto detection magic

* Add lcsc barcode support

* Move barcode plugins to new suppliers subdirectory

* Add get_supplier_part helper, Refactor plugins in preparation for #3791

* Add __init__.py to suppliers directory

* Improve formatting

* Add barcode integration tests

* Add api-barcode-po-receive endpoint

* Refactor supplier_barcode.py helpers into BarcodeMixin

* Implement the api-barcode-po-receive endpoint for all suppliers

* Always include lineitem in api response

* Fix location in response, only include quantity and location if set

* Check if barcode has already been assigned, Fix tests

* FIx quantity and location not being in lineitem reponse

* Use part.get_default_location() instead of part.default_location

* Fix fomatting again

* Fix type annotations for python 3.8

* Add get_supplier_part helper, check for barcode_data being a str

* Fix naming clash

* Clarify return type for scan_receive_item

* Improve model access using first() in two places

* Refactor a bunch of checks

* Improve selection of line item, if multiple line items match the SKU

* Add new api version for this PR

* Fix error if no line item exists

* Add debug print to investigate why tests are failing

* Remove the test print again

* Fix pre formatted log messages

* Test removing all plugins

* Test only with digikey plugin

* Test with all plugins, but without mouser "model" setting

* Test again without tests

* Test with simple tests

* Test with simple receive test

* Test with even more receive tests

* Test second receive test

* Test third receive test

* Test 4th receive test with debug prints

* Try deleting the stock item and stock locations

* Disable the test again

* Add SupplierBarcodeMixin to minimize shared code between plugins

* Add TME supplier barcode plugin

* Remove the TME tests again

* If this works the tests are broken, if this doesn't work the tests are broken too

* Add TME tests again

* Add back all tests again

* Fix TME purchase order number

* Fix TME qrcode regex

* Add documentation for this feature

* Fix TME qrcode regex

* Use Decimal instead of int for quantity

* Refactor get_supplier_parts, Add get_supplier method

* Improve docstrings

* Fix None type access

* FIx TME barcode detection, Improve supplier barcode handling

* Try to retrigger pipeline

* Refactor get_supplier_parts to not use lists

* Add DEFAULT_SUPPLIER_NAME to mouser plugin

* Add SUPPLIER_ID setting to other suppliers

* Fix supplier plugins not inheriting from settings mixin

---------

Co-authored-by: Matthias Mair <code@mjmair.com>
2023-10-19 23:28:21 +11:00
.devcontainer Native LDAP support (#5226) 2023-10-05 07:52:36 +11:00
.devops Add azure pipelines (#4453) 2023-04-03 16:55:27 +10:00
.github Docker CI test (#5544) 2023-09-15 22:44:54 +10:00
.vscode Add worker task to VS Code (#5605) 2023-10-01 21:06:34 +11:00
ci Fix common spelling mistakes (#4956) 2023-06-04 00:04:52 +10:00
contrib Packages - force python 3.9 (#5206) 2023-08-06 21:50:38 +10:00
deploy fix endline 2022-05-20 13:35:07 +02:00
docker Plugin auto migrate (#5668) 2023-10-06 11:38:01 +11:00
docs Add basic support for scanning vendor barcodes (#5509) 2023-10-19 23:28:21 +11:00
images/logo Export large version of the logo 2020-05-12 00:06:26 +10:00
InvenTree Add basic support for scanning vendor barcodes (#5509) 2023-10-19 23:28:21 +11:00
src/frontend [React] Login improvements (#5752) 2023-10-19 13:42:12 +11:00
.deepsource.toml Added python test paths to deepsource (#5738) 2023-10-19 07:43:50 +11:00
.djlintrc Replace mklint with djlint (#4746) 2023-05-02 20:03:52 +10:00
.eslintrc.yml Fix JS linting workflow (#4915) 2023-05-30 22:55:53 +10:00
.gitattributes fix endline 2022-05-20 13:35:07 +02:00
.gitignore React tweaks (#5300) 2023-07-21 09:46:44 +10:00
.pkgr.yml Packages - force python 3.9 (#5206) 2023-08-06 21:50:38 +10:00
.pre-commit-config.yaml Version bump (#5740) 2023-10-18 07:27:28 +11:00
backportrc.json Add workflow for backporting PRs (#4912) 2023-05-28 18:55:06 +10:00
CONTRIBUTING.md Add whitespace to fix markdown table rendering (#5675) 2023-10-07 15:41:10 +11:00
crowdin.yml P-UI: Adapt translation CI (#5299) 2023-07-21 09:00:37 +10:00
docker-compose.yml Remove container-name:s from Compose file (#5339) 2023-07-25 12:51:37 +10:00
docker.dev.env Plugin auto migrate (#5668) 2023-10-06 11:38:01 +11:00
Dockerfile Native LDAP support (#5226) 2023-10-05 07:52:36 +11:00
LICENSE Update LICENSE 2022-02-21 22:31:10 +11:00
package-lock.json [WIP] Mantine datatables (#5218) 2023-07-27 10:10:07 +10:00
package.json Version bump (#5740) 2023-10-18 07:27:28 +11:00
Procfile fix cli on 22.04 (#5204) 2023-07-09 08:40:27 +10:00
README.md Add deepsource for more security testing (#5714) 2023-10-17 11:23:19 +11:00
readthedocs.yml Update readthedocs (#5565) 2023-09-19 06:20:23 +10:00
RELEASE.md Documentation integration (#4653) 2023-04-22 22:40:29 +10:00
requirements-dev.in Version bump (#5740) 2023-10-18 07:27:28 +11:00
requirements-dev.txt Version bump (#5740) 2023-10-18 07:27:28 +11:00
requirements.in Version bump (#5740) 2023-10-18 07:27:28 +11:00
requirements.txt Version bump (#5740) 2023-10-18 07:27:28 +11:00
runtime.txt Add package-based install method (#3743) 2022-10-16 10:14:18 +11:00
SECURITY.md Spelling fix: dates -> days (#3193) 2022-06-14 10:07:48 +10:00
setup.cfg Code style improvements (#4683) 2023-04-28 20:49:53 +10:00
tasks.py refactor: remove blank lines after docstring (#5736) 2023-10-18 07:28:57 +11:00
yarn.lock Version bump (#5740) 2023-10-18 07:27:28 +11:00

InvenTree logo

InvenTree

Open Source Inventory Management System

License: MITGitHub tag (latest SemVer) CI Documentation Status Docker Build OpenSSF Best Practices Netlify Status DeepSource

Coveralls Crowdin GitHub commit activity Docker Pulls

GitHub Org's stars Twitter Follow Subreddit subscribers

View Demo · Documentation · Report Bug · Request Feature

🌟 About the Project

InvenTree is an open-source Inventory Management System which provides powerful low-level stock control and part tracking. The core of the InvenTree system is a Python/Django database backend which provides an admin interface (web-based) and a REST API for interaction with external interfaces and applications. A powerful plugin system provides support for custom applications and extensions.

Check out our website for more details.

🧭 Roadmap

Want to see what we are working on? Check out the roadmap tag and horizon milestone.

🛠️ Integration

InvenTree is designed to be extensible, and provides multiple options for integration with external applications or addition of custom plugins:

👾 Tech Stack

Server
Database
Client
DevOps

🧰 Deployment / Getting Started

There are several options to deploy InvenTree.

Single line install - read the docs for supported distros and details about the function:

wget -qO install.sh https://get.inventree.org && bash install.sh

Refer to the getting started guide for a full set of installation and setup instructions.

📱 Mobile App

InvenTree is supported by a companion mobile app which allows users access to stock control information and functionality.

👋 Contributing

Contributions are welcomed and encouraged. Please help to make this project even better! Refer to the contribution page.

📜 Translation

Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged.

💸 Sponsor

If you use InvenTree and find it to be useful, please consider sponsoring the project.

💎 Acknowledgements

We would like to acknowledge a few special projects:

Find a full list of used third-party libraries in our documentation.

This project is supported by:

Deploys by Netlify

⚠️ License

Distributed under the MIT License. See LICENSE.txt for more information.