Esempio n. 1
0
 /**
  * Add Name to select
  *
  * @return $this
  */
 public function addNameToSelect()
 {
     $fields = [];
     $customerAccount = $this->_fieldsetConfig->getFieldset('customer_account');
     foreach ($customerAccount as $code => $field) {
         if (isset($field['name'])) {
             $fields[$code] = $code;
         }
     }
     $adapter = $this->getConnection();
     $concatenate = [];
     if (isset($fields['prefix'])) {
         $concatenate[] = $adapter->getCheckSql('{{prefix}} IS NOT NULL AND {{prefix}} != \'\'', $adapter->getConcatSql(['LTRIM(RTRIM({{prefix}}))', '\' \'']), '\'\'');
     }
     $concatenate[] = 'LTRIM(RTRIM({{firstname}}))';
     $concatenate[] = '\' \'';
     if (isset($fields['middlename'])) {
         $concatenate[] = $adapter->getCheckSql('{{middlename}} IS NOT NULL AND {{middlename}} != \'\'', $adapter->getConcatSql(['LTRIM(RTRIM({{middlename}}))', '\' \'']), '\'\'');
     }
     $concatenate[] = 'LTRIM(RTRIM({{lastname}}))';
     if (isset($fields['suffix'])) {
         $concatenate[] = $adapter->getCheckSql('{{suffix}} IS NOT NULL AND {{suffix}} != \'\'', $adapter->getConcatSql(['\' \'', 'LTRIM(RTRIM({{suffix}}))']), '\'\'');
     }
     $nameExpr = $adapter->getConcatSql($concatenate);
     $this->addExpressionAttributeToSelect('name', $nameExpr, $fields);
     return $this;
 }
Esempio n. 2
0
 /**
  * Get data from object|array to object|array containing fields
  * from fieldset matching an aspect.
  *
  * @param string $fieldset
  * @param string $aspect a field name
  * @param array|\Magento\Framework\Object $source
  * @param string $root
  * @return array $data
  */
 public function getDataFromFieldset($fieldset, $aspect, $source, $root = 'global')
 {
     if (!(is_array($source) || $source instanceof \Magento\Framework\Object)) {
         return null;
     }
     $fields = $this->_fieldsetConfig->getFieldset($fieldset, $root);
     if (is_null($fields)) {
         return null;
     }
     $data = array();
     foreach ($fields as $code => $node) {
         if (empty($node[$aspect])) {
             continue;
         }
         $value = $this->_getFieldsetFieldValue($source, $code);
         $targetCode = (string) $node[$aspect];
         $targetCode = $targetCode == '*' ? $code : $targetCode;
         $data[$targetCode] = $value;
     }
     return $data;
 }
Esempio n. 3
0
 public function testGetFieldsetIfFieldsetIsEmpty()
 {
     $this->_storageMock->expects($this->once())->method('get')->will($this->returnValue([]));
     $result = $this->_model->getFieldset('test');
     $this->assertEquals(null, $result);
 }