File tree Expand file tree Collapse file tree 2 files changed +30
-7
lines changed
app/code/Magento/SalesGraphQl/Model/Resolver/CustomerOrders/Query
lib/internal/Magento/Framework/Api/SearchCriteria/CollectionProcessor Expand file tree Collapse file tree 2 files changed +30
-7
lines changed Original file line number Diff line number Diff line change @@ -81,6 +81,7 @@ public function createFilterGroups(
81
81
$ filterGroups [] = $ this ->filterGroupBuilder ->create ();
82
82
83
83
if (isset ($ args ['filter ' ])) {
84
+ $ filters = [];
84
85
foreach ($ args ['filter ' ] as $ field => $ cond ) {
85
86
if (isset ($ this ->fieldTranslatorArray [$ field ])) {
86
87
$ field = $ this ->fieldTranslatorArray [$ field ];
@@ -91,23 +92,21 @@ public function createFilterGroups(
91
92
throw new InputException (__ ('Invalid match filter ' ));
92
93
}
93
94
$ searchValue = $ value !== null ? str_replace ('% ' , '' , $ value ) : '' ;
94
- $ filters = $ this ->filterBuilder ->setField ($ field )
95
+ $ filters[] = $ this ->filterBuilder ->setField ($ field )
95
96
->setValue ("% {$ searchValue }% " )
96
97
->setConditionType ('like ' )
97
98
->create ();
98
- $ this ->filterGroupBuilder ->setFilters ([$ filters ]);
99
- $ filterGroups [] = $ this ->filterGroupBuilder ->create ();
100
99
} else {
101
- $ filters = $ this ->filterBuilder ->setField ($ field )
100
+ $ filters[] = $ this ->filterBuilder ->setField ($ field )
102
101
->setValue ($ value )
103
102
->setConditionType ($ condType )
104
103
->create ();
105
- $ this ->filterGroupBuilder ->setFilters ([$ filters ]);
106
- $ filterGroups [] = $ this ->filterGroupBuilder ->create ();
107
104
}
108
-
109
105
}
110
106
}
107
+
108
+ $ this ->filterGroupBuilder ->setFilters ($ filters );
109
+ $ filterGroups [] = $ this ->filterGroupBuilder ->create ();
111
110
}
112
111
return $ filterGroups ;
113
112
}
Original file line number Diff line number Diff line change @@ -85,6 +85,8 @@ private function addFilterGroupToCollection(
85
85
}
86
86
}
87
87
88
+ $ this ->checkFromTo ($ fields , $ conditions );
89
+
88
90
if ($ fields ) {
89
91
$ collection ->addFieldToFilter ($ fields , $ conditions );
90
92
}
@@ -125,4 +127,26 @@ private function getFieldMapping($field)
125
127
{
126
128
return $ this ->fieldMapping [$ field ] ?? $ field ;
127
129
}
130
+
131
+ /**
132
+ * Check filtergoup for type from & to
133
+ *
134
+ * @param string[] $fields
135
+ * @param array<string[]> $conditions
136
+ * @return void
137
+ */
138
+ private function checkFromTo (&$ fields , &$ conditions )
139
+ {
140
+ $ _fields = array_unique ($ fields );
141
+ $ _conditions = [];
142
+ foreach ($ conditions as $ condition ) {
143
+ $ _conditions [array_key_first ($ condition )] = array_first ($ condition );
144
+ }
145
+ if ((count ($ _fields ) == 1 ) && (count ($ _conditions ) == 2 )
146
+ && isset ($ _conditions ['from ' ]) && isset ($ _conditions ['to ' ])
147
+ ) {
148
+ $ fields = $ _fields ;
149
+ $ conditions = [$ _conditions ];
150
+ }
151
+ }
128
152
}
You can’t perform that action at this time.
0 commit comments