1414namespace Pimcore \Bundle \StudioBackendBundle \Unit \Repository ;
1515
1616use Pimcore \Bundle \StaticResolverBundle \Models \DataObject \QuantityValue \UnitResolverInterface ;
17+ use Pimcore \Bundle \StudioBackendBundle \Filter \FilterType ;
1718use Pimcore \Bundle \StudioBackendBundle \Filter \MappedParameter \FilterParameter ;
1819use Pimcore \Bundle \StudioBackendBundle \Listing \Service \ListingFilterInterface ;
1920use Pimcore \Model \DataObject \QuantityValue \Unit ;
@@ -69,6 +70,7 @@ public function getUnitListByBaseUnit(string $baseUnitId, string $fromUnitId): a
6970 public function getUnitListing (FilterParameter $ parameters ): Listing
7071 {
7172 $ listing = $ this ->getUnfilteredUnitListing ();
73+ $ this ->applySearchCondition ($ listing , $ parameters );
7274 $ this ->listingFilter ->applyFilters ($ parameters , $ listing );
7375
7476 return $ listing ;
@@ -78,4 +80,27 @@ private function getUnfilteredUnitListing(): Listing
7880 {
7981 return new Listing ();
8082 }
83+
84+ private function applySearchCondition (Listing $ listing , FilterParameter $ parameters ): void
85+ {
86+ $ searchFilter = $ parameters ->getSimpleColumnFilterByType (FilterType::SEARCH ->value );
87+ if (!$ searchFilter ) {
88+ return ;
89+ }
90+
91+ if ($ searchFilter ->getFilterValue () === '' || $ searchFilter ->getFilterValue () === null ) {
92+ return ;
93+ }
94+
95+ $ param = ['searchTerm ' => "% {$ searchFilter ->getFilterValue ()}% " ];
96+ $ listing ->addConditionParam ('`id` LIKE :searchTerm ' , $ param );
97+ $ listing ->addConditionParam ('`abbreviation` LIKE :searchTerm ' , $ param , 'OR ' );
98+ $ listing ->addConditionParam ('`longname` LIKE :searchTerm ' , $ param , 'OR ' );
99+ $ listing ->addConditionParam ('`group` LIKE :searchTerm ' , $ param , 'OR ' );
100+ $ listing ->addConditionParam ('`baseunit` LIKE :searchTerm ' , $ param , 'OR ' );
101+ $ listing ->addConditionParam ('`reference` LIKE :searchTerm ' , $ param , 'OR ' );
102+ $ listing ->addConditionParam ('`converter` LIKE :searchTerm ' , $ param , 'OR ' );
103+ $ listing ->addConditionParam ('CAST(`factor` AS CHAR) LIKE :searchTerm ' , $ param , 'OR ' );
104+ $ listing ->addConditionParam ('CAST(`conversionOffset` AS CHAR) LIKE :searchTerm ' , $ param , 'OR ' );
105+ }
81106}
0 commit comments