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(
8181 $ filterGroups [] = $ this ->filterGroupBuilder ->create ();
8282
8383 if (isset ($ args ['filter ' ])) {
84+ $ filters = [];
8485 foreach ($ args ['filter ' ] as $ field => $ cond ) {
8586 if (isset ($ this ->fieldTranslatorArray [$ field ])) {
8687 $ field = $ this ->fieldTranslatorArray [$ field ];
@@ -91,23 +92,21 @@ public function createFilterGroups(
9192 throw new InputException (__ ('Invalid match filter ' ));
9293 }
9394 $ searchValue = $ value !== null ? str_replace ('% ' , '' , $ value ) : '' ;
94- $ filters = $ this ->filterBuilder ->setField ($ field )
95+ $ filters[] = $ this ->filterBuilder ->setField ($ field )
9596 ->setValue ("% {$ searchValue }% " )
9697 ->setConditionType ('like ' )
9798 ->create ();
98- $ this ->filterGroupBuilder ->setFilters ([$ filters ]);
99- $ filterGroups [] = $ this ->filterGroupBuilder ->create ();
10099 } else {
101- $ filters = $ this ->filterBuilder ->setField ($ field )
100+ $ filters[] = $ this ->filterBuilder ->setField ($ field )
102101 ->setValue ($ value )
103102 ->setConditionType ($ condType )
104103 ->create ();
105- $ this ->filterGroupBuilder ->setFilters ([$ filters ]);
106- $ filterGroups [] = $ this ->filterGroupBuilder ->create ();
107104 }
108-
109105 }
110106 }
107+
108+ $ this ->filterGroupBuilder ->setFilters ($ filters );
109+ $ filterGroups [] = $ this ->filterGroupBuilder ->create ();
111110 }
112111 return $ filterGroups ;
113112 }
Original file line number Diff line number Diff line change @@ -85,6 +85,8 @@ private function addFilterGroupToCollection(
8585 }
8686 }
8787
88+ $ this ->checkFromTo ($ fields , $ conditions );
89+
8890 if ($ fields ) {
8991 $ collection ->addFieldToFilter ($ fields , $ conditions );
9092 }
@@ -125,4 +127,26 @@ private function getFieldMapping($field)
125127 {
126128 return $ this ->fieldMapping [$ field ] ?? $ field ;
127129 }
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+ }
128152}
You can’t perform that action at this time.
0 commit comments