101 Commits

Author SHA1 Message Date
Ahmed Ejaz
e6b9373570 Refactor line items search to improve security and maintainability
Moves search field configuration from frontend to backend to prevent potential security issues with exposing internal field names. The change also improves maintainability by centralizing search logic in the controller.

Adds conditional logic to use name_alias for non-admin users when searching distributor names, enhancing data access control.
2025-07-13 18:07:14 +05:00
Ahmed Ejaz
cd01a27bdd Add distributor_name_alias to searchable attributes and implement ransacker for filtering line items 2025-06-21 16:19:31 +05:00
Ahmed Ejaz
db0922a7cf 13180: increase filter time to 1 year 2025-05-12 01:14:51 +05:00
Gaetan Craig-Riou
83a619b097 Fix bulk order management page 2024-10-14 15:01:18 +11:00
Gaetan Craig-Riou
add6d15fc4 Fix bulk order management system spec 2024-07-03 11:16:53 +10:00
Dung Bui
8a3aababa1 group specs into one it block, added fullname with comma reversed ransacker 2023-12-04 08:45:19 +07:00
Dung Bui
600226cb52 add fullname reversed search 2023-12-03 14:15:41 +07:00
Dung Bui
febda2ce12 add search by fullname with comma 2023-12-03 14:10:12 +07:00
Matt-Yorkley
73b2d37224 Don't try to load orders if the number of line_items with the current filters applied is zero
This ends up sending a request to the orders endpoint with no filters and no search params, which then tries to load every order in the entire database if the user is superadmin, which blows up.
2023-06-13 15:47:19 +01:00
Jean-Baptiste Bellet
ccb183d60b Sort by order_date desc for line_items in BOM
+ update spec to have different order time
2023-06-05 10:05:09 +02:00
saunmanoj888
aee7645e29 Fix searching issue with full name on bulk order management 2023-05-17 13:14:10 +02:00
Jean-Baptiste Bellet
f679d8733e Pass the restock_items params to each methods and request call
+ update spec to test whether the restock item checkbox is checked or not.
2023-05-11 22:58:44 +02:00
Jean-Baptiste Bellet
11a7aa9f96 When clicking on "Clear Filters" button, to not reset variant selection
+ add some specs to cover that particular case
2023-04-17 11:08:17 +02:00
Jean-Baptiste Bellet
df5c21048a Clear on bulk submenu should reset some filters + refresh data as well 2023-04-12 09:58:01 +02:00
Jean-Baptiste Bellet
8a124fb6be BOM: once variant has been selected, refresh data with a new search
- Remove variant_filter
 - instantiate a new search to avoid pagination issues
2023-04-12 09:58:00 +02:00
Filipe
e8430eae6d Merge pull request #10460 from jibees/10400-pagination-in-bom-not-aggregating-results-from-quick-search-field
BOM: Add a search input that search for items with pagination
2023-03-15 16:31:32 +00:00
Jean-Baptiste Bellet
ac739108a2 Improve readability by generating search string for ransack 2023-03-06 11:31:36 +01:00
Jean-Baptiste Bellet
8ad532c41a Can search bill_address:phone, firstname, lastname and distributor:name 2023-03-01 14:54:46 +01:00
Jean-Baptiste Bellet
ebd5d706c2 Add search input
Actually this only search for `order_email` or `order_number` or `product_name` or `supplier_name`

+ Improve display by reduce each columns width
2023-03-01 14:40:12 +01:00
Jean-Baptiste Bellet
8658b1a743 Remove quick filter that search only on displayed line items
+ remove specs as well
2023-02-28 15:39:31 +01:00
Jean-Baptiste Bellet
c83dac58a3 Confirm line items deletion that doesn't trigger an order cancelation 2023-02-27 11:09:59 +01:00
Jean-Baptiste Bellet
e5ca8b0ee1 Delete selected line items even if does not lead to order cancellation 2023-02-15 11:49:53 +01:00
Jean-Baptiste Bellet
bddd887dcd Load orders only if current line_items are loaded
+ update spec as well
2023-02-03 12:25:47 +01:00
Jean-Baptiste Bellet
d00e75de70 We should load orders that are linked to line_items displayed
This should not be related to any pagination, search or whatever: actually we consolidate line_items with order additional info based on line_items.order.id.
2023-02-03 11:40:07 +01:00
Jean-Baptiste Bellet
06cbc120f5 Pagination is actually linked to line_items and not orders
We display line_items as rows in BOM
2023-02-03 11:37:51 +01:00
Filipe
ad4670705e Merge pull request #10245 from jibees/10222-in-bom-dont-show-group-buy-info-if-equal-to-0
Admin, BOM: Don't display "group by size" if group by product value is actually null
2023-01-25 15:29:05 +00:00
Jean-Baptiste Bellet
1a874d6fcf Introduce pagination for BOM page 2023-01-18 17:39:42 +01:00
Jean-Baptiste Bellet
85a748af99 When selecting an OC, do not pre-fill date range with OC date range
+ update specs as well
2023-01-18 17:39:42 +01:00
Jean-Baptiste Bellet
121a4a08af On filters reseting , set dates to undefined: range is not mandatory
+ send flatpickr event to reset the component

+ update specs as well
2023-01-18 17:39:09 +01:00
Jean-Baptiste Bellet
b75b123cba Don't check date range before refreshing data: they aren't mandatory
- Creates a simple formatDates method that handle date formatting before sending it as params instead of creating scoped variable (useless)
 - Put key to `undefined` (ie. don't then the params) if no date: already handled by the backend
2023-01-18 17:39:09 +01:00
Jean-Baptiste Bellet
2258af9cec Don't display "group by size" if value is actually null or empty
+ add spec
2023-01-06 14:39:39 +01:00
Jean-Baptiste Bellet
a0056553b0 Do not override date range selection when an order cycle is selected
Therefor user can change date range after selecting an order cycle
2022-12-14 10:14:54 +01:00
Jean-Baptiste Bellet
ac494f97ec When changing order cycle selection, update date range selector value
Date selector should change when selecting an order cycle in order to reflect the order cycle date range itself
2022-12-14 10:12:42 +01:00
Jean-Baptiste Bellet
4716ed19dc Remove the watch collection on date range: not needed anymore
Yes!
This simplifies a lot the code now since we have a "Search" button and we don't need to watch for date range changes
2022-12-12 16:18:39 +01:00
Jean-Baptiste Bellet
cd743e5c2c Call resetSelectFilters on page load
+ init start and end date with a method (will be re-used)
2022-12-12 16:18:39 +01:00
Jean-Baptiste Bellet
39e5613db8 When confirm modal is dismissed, reset daterange picker to previous values
+ update specs as well
2022-11-04 14:18:29 +01:00
Jean-Baptiste Bellet
1a241e4953 Only call confirmRefresh() on time, on date range change
Previously, when changing the date range, we had several modals that opened.
Now, the `confirmRefresh()` method should be open only one time.

Update specs as well:
 - use the method `accept_confirm`
 - Removing pending and sleep as the spec is now green
2022-11-03 15:55:48 +01:00
Jean-Baptiste Bellet
e076e23064 Do not use ng-change on endDate but instead watch both start and end date 2022-10-08 16:36:26 +02:00
Jean-Baptiste Bellet
a68f9a71fb When items quantities, update sumUnitValues() and sumMaxUnitValues()
by summing only `quantity` and `max_quantity`

+ update the specs as well

Co-Authored-By: Maikel <maikel@email.org.au>
2022-04-27 11:21:47 +02:00
Jean-Baptiste Bellet
a4afeeaa3d When BOM is 'item', do not update sumOfUnitValues with scale
since scale is always `1`, but return a value

+ update tests as well
2022-04-25 15:53:38 +02:00
Jean-Baptiste Bellet
3553cc0d9f When it's items scale is '1'
update tests as well
2022-04-25 15:51:38 +02:00
Jean-Baptiste Bellet
c9248f872d Remplace window.confirm by ofnCancelOrderAlert
to prevent use that the order will be canceled
2022-03-25 11:28:10 +01:00
Filipe
87c79a5941 Merge pull request #8294 from guidoDutra/8131-cancel-empty-orders-on-BOM-page
Cancel empty orders on BOM page
2022-03-18 11:24:26 +00:00
Jean-Baptiste Bellet
ea3e15f0c8 Max|Current fulfilled value is the max|current divided by group_buy_unit_size
+ improve testing with representative values
 + Update bulk_order_management_spec.rb and revert previously changed values
2022-03-14 09:06:05 +01:00
Jean-Baptiste Bellet
915714246f Directly use the variant_unit_scale instead of VariantUnitManager.getScale
and update the tests as well
2022-03-08 14:59:08 +01:00
Jean-Baptiste Bellet
a1b21d7706 Take into account the lb unit name 2022-01-10 11:50:40 +01:00
Jean-Baptiste Bellet
c5beff249e Should be divided by scale if the smallest unit 2022-01-10 11:27:18 +01:00
Jean-Baptiste Bellet
4c508a5bf9 Group by unit size is specific: it needs to be divided by scale if not the smallest unit 2022-01-10 11:24:22 +01:00
Jean-Baptiste Bellet
da9c0f4b8c Refactor: create two internal methods: getScale and getFormattedValueWithUnitName
Then, the old formattedValueWithUnitName calls those two private methods
2022-01-10 11:23:30 +01:00
Jean-Baptiste Bellet
467183af48 Rename getScale to getLineItemScale to be more specific 2022-01-10 11:22:11 +01:00