Adds three different barcodes and barcodes types to a test item and
checks that they are added correctly.
Adds a barcode that already exists, and checks a DuplicateEntryError
is raised.
Adds an invalid EAN barcode and checks InvalidBarcode (a subclass of
ValidationError) is raised.
Currently, it is difficult to add new custom barcode types for two reasons, both of which relate to validate_barcode in item.py:
- There is a bug where barcode types with a space in, such as Code 128, are split in two (so barcode_type is checked against 'Code' and '128' rather than 'Code 128'). This is fixed by splitting the Options field against a newline, instead of spaces.
- All barcodes are validated against the stdnum.ean library. This only handles EAN-8, EAN-13 and UPC-12 barcodes and any other barcode will fail. Barcodes with no type will continue to not be checked. Barcodes with the default barcode_types of EAN, UPC will continue to be checked. The non-default barcode_types of EAN-13 and EAN-8 will also be checked. The barcode_type is cast to upper case before this check is made so ean, upc, ean-13 and ean-8 will also be validated.
This allows people to add their own barcode types, such as Code 128 and QR codes. Users can add custom validation of these barcodes using the usual hooks, but they cannot remove the standard validation.
update_total_qty_field patch was using UPDATE statement with CASE
Now use INSERT INTO with ON DUPLICATE KEY UPDATE clause which
allows this query to use indexes and update multiple rows per query.
* -Added field def_warehouse that sets warehouse of all items
-Grouped warehouse fields together and put raw materies supplied before items table, it will only show if there are any items supplied
* Set def_warehouse in test_sales_order.py
* Changed from def_warehouse to set_warehouse
* Rest of def_warehouse to set_warehouse
* feat(delivery_trip_status): Update Delivery Trip status based on visited stops
* feat(delivery_trip_status): Fix tests
* feat(delivery_trip_status): Fix allow on submit for status
* feat(delivery_trip_status): Change status mapping
* feat(delivery_trip_status): Fix patch
* Update update_delivery_trip_status.py
* Add new button to Sales Order form - Request for Raw Materials
* Modify get_work_order_items function
* Commonify functions in Production Plan to make it compatible with new feature
* Create and submit Material Request from Sales Order
* Link Sales Order with Material Request
* Minor
* Rename label
* Fix Codacy
* Modify as per review suggestions
- Move dialog to a new function
- Move checkboxes below other fields
* Minor changes
* Check for permissions
* Add common checkboxes for all items
* Fix codacy
* fix: Travis
* fix: Use variable to store query result
* fix: Add comment before fetching exploded items
* refactor: Break into multiple functions
* test: Add test case
* Update transaction.js
* setup barcode scan
stock entry controller not inherited from transaction.js, need to call setup barcode scan from transaction.js
* fix bug of item_code change always reset qty to 0
when calling frappe.model.set_value(dt,dn,'item_code',xxx), even qty is set, system always reset qty to 0.
* Update transaction.js
* Update transaction.js
* Update transaction.js
* Update transaction.js
* Update transaction.js
* Update transaction.js
* clean up barcode logic for transactions
* call scan_barcode method for stock entry
* separate out logic for searching serial, batch or barcode number
* added scan barcode field in transactions doctype
* search barcode-serial-batch sequence, code rectify
* hide all barcode related field if disabled from settings
* remove print statement
* Update stock_entry.py
* Purchase Analytics Query Report
* Minor Changes
* Codacy Issue Fixes
* Codacy Issues Fixed
* Code cleaning and optimization
* Indentation Issue Fix
* Code cleaning and better function naming
* Added link for purchase analytics in buying.py
* Added link for production analytics in manufacturing.py
* Commonified purchase-analytics using Analytics class
* Codacy issue fix