* added capability to scan digikey barcodes and open the local part page based on the digikey part number or manufacturer part number
* had replaced one too many doublequotes
* Generalized interpretation of format06 barcodes, added ids for mouser
* Renamed vendor_barcode to user_barcode in entities
* Added a own class to parse EIGP114 barcodes
* Added tests to EIGP114Barcode parser
* Refactored code
* Changed BarcodeRedirector to support the new Barcode EIGP114BarcodeScanResult class
* Added possibility to just show all information contained in a barcode
* Dont require trailer for EIGP114 barcodes, as digikey does not seem to put them onto their barcodes
* Fixed inspection issues
---------
Co-authored-by: jona <a@b.c>
Co-authored-by: Jan Böhmer <mail@jan-boehmer.de>
* added button to show existing part with same manufacturer and mpn in provider list
* added button to edit existing part in provider list
* added docstring and comments
* replaced unnecessary double quotes
* Introduced a new twig variable localPart to split up the result
* Highlight a row, if the part is already existing
* Made buttons translatable
* Improved styling of the buttons and added a badge to show a hint
* Extracted database queries for part matching into its own service and optimized the query reducing the required queries by factor 2
* Allow to find existing parts via the stored providerReference
This should allow the database to more quickly find entries
* Allow to use part name and manufacturer alternative names for mapping
* Added a button to update a local part from the info provider and moved some buttons into dropdown menu
---------
Co-authored-by: jona <a@b.c>
Co-authored-by: Jan Böhmer <mail@jan-boehmer.de>
This is required only for postgres as every other database is case invariant by default. But to achieve a portable way, we implement it via a custom DQL function.
This fixes issue #784
* OEMSecrets provider interface v.1.0
New class for interacting with the OEMSecrets (https://www.oemsecrets.com) API version 3.0.1.
* Refactored info provider to be stateless and independent from session, optimized Part-DB API usage, and fixed PHPStan issues.
Refactored info provider to be stateless and independent from session, now use Psr\Cache, fixed issues identified by PHPStan, additional minor enhancements and bug fixes.
* Prefix cache keys with oemsecrets_ to avoid key collissions
* Use uniqid with more entropy to reduce probability of collisions
* Made $resultData local as it is only used inside searchByKeyword
* Use the parameter name $id from interface declaration for getDetails to avoid problems with named arguments
* Use unicode modifier for preg_match to avoid problems when parameters contain non-unicode strings
* Various small code quality improvements
* Try to retrieve the part from the API in getDetails, if the DTO was not cached before
* Improved code formatting
* Channged OEMSecret default country to DE to be consistent with other default values
* Do not call gc_collect_cycles in the loop to process the results, but only after all processBatch calls
---------
Co-authored-by: Jan Böhmer <mail@jan-boehmer.de>