/** 
  * @author Okan CIRAN
  * @ tree doldurmak için sys_machine_tool tablosundan tüm kayıtları döndürür !!
  * @version v 1.0  19.02.2016
  * @param array | null $args
  * @return array
  * @throws \PDOException
  */
 public function fillUsersFirmMachineProperties($params = array())
 {
     try {
         $pdo = $this->slimApp->getServiceManager()->get('pgConnectFactory');
         $userId = InfoUsers::getUserId(array('pk' => $params['pk']));
         if (\Utill\Dal\Helper::haveRecord($userId)) {
             $opUserIdValue = $userId['resultSet'][0]['user_id'];
             $addSql = "";
             $firmIdValue = -1;
             $firmId = InfoUsers::getUserFirmId(array('user_id' => $opUserIdValue));
             if (\Utill\Dal\Helper::haveRecord($firmId)) {
                 $firmIdValue = $firmId['resultSet'][0]['firm_id'];
             }
             $languageId = NULL;
             $languageIdValue = 647;
             if (isset($params['language_code']) && $params['language_code'] != "") {
                 $languageId = SysLanguage::getLanguageId(array('language_code' => $params['language_code']));
                 if (\Utill\Dal\Helper::haveRecord($languageId)) {
                     $languageIdValue = $languageId['resultSet'][0]['id'];
                 }
             }
             if (isset($params['machine_id'])) {
                 $addSql .= " AND a.sys_machine_tool_id = " . intval($params['machine_id']) . " ";
             }
             $sql = " \n                SELECT    \n                    smtp.id,  \n                    a.sys_machine_tool_id AS machine_id ,\t\t   \n                    COALESCE(NULLIF(pdx.property_name, ''), pd.property_name_eng) AS property_names,\n                    pd.property_name_eng,\n                    smtp.property_value, \n                    smtp.property_string_value, \n                    u.id AS unit_id,\n                    COALESCE(NULLIF(u.unitcode,''), u.unitcode_eng) AS unitcodes,\n                    CASE COALESCE(NULLIF(a.picture, ''),'-') \n                        WHEN '-' THEN CONCAT(COALESCE(NULLIF(concat(sps.folder_road,'/'), '/'),''),sps.machines_folder,'/' ,COALESCE(NULLIF(smt.picture, ''),'image_not_found.png'))\n                        ELSE CONCAT(ifk.folder_name ,'/',ifk.machines_folder,'/' ,COALESCE(NULLIF(a.picture, ''),'image_not_found.png')) END AS picture\n                FROM info_firm_machine_tool a\n                INNER JOIN sys_project_settings sps ON sps.op_project_id = 1 AND sps.active =0 AND sps.deleted =0                     \n                INNER JOIN sys_language l ON l.id = a.language_id AND l.deleted =0 AND l.active =0  \t\t\n\t\tLEFT JOIN sys_language lx ON lx.id = " . intval($languageIdValue) . " AND lx.deleted =0 AND lx.active =0\t\t\t\t\n                INNER JOIN info_firm_profile ifp ON ifp.act_parent_id = a.firm_id AND ifp.active =0 AND ifp.deleted =0 AND ifp.language_id = l.id AND ifp.language_parent_id =0 \n                INNER JOIN info_firm_keys ifk ON ifp.act_parent_id = ifk.firm_id                      \n                INNER JOIN sys_machine_tools smt ON smt.id = a.sys_machine_tool_id AND smt.language_id = l.id AND smt.deleted =0 AND smt.active=0                \n                INNER JOIN sys_machine_tool_properties smtp ON smtp.machine_tool_id = a.sys_machine_tool_id AND smtp.language_id = l.id                \n                INNER JOIN sys_machine_tool_property_definition pd ON pd.id = smtp.machine_tool_property_definition_id AND pd.language_id = l.id AND pd.deleted =0 AND pd.active=0\n                LEFT JOIN sys_machine_tool_property_definition pdx ON (pdx.id = pd.id OR pdx.language_parent_id = pd.id) AND pdx.active =0 AND pdx.deleted = 0 AND pdx.language_id = lx.id                \n                LEFT JOIN sys_units u ON u.id = smtp.unit_id AND u.language_id = l.id AND u.deleted =0 AND u.active=0\n                WHERE a.deleted =0 AND \n                    a.active =0 AND\n                    a.language_parent_id =0 AND \n                    a.firm_id = " . intval($firmIdValue) . " \n                   " . $addSql . "\n                ORDER BY a.sys_machine_tool_id  \n                                 ";
             $statement = $pdo->prepare($sql);
             // echo debugPDO($sql, $params);
             $statement->execute();
             $result = $statement->fetchAll(\PDO::FETCH_ASSOC);
             $errorInfo = $statement->errorInfo();
             if ($errorInfo[0] != "00000" && $errorInfo[1] != NULL && $errorInfo[2] != NULL) {
                 throw new \PDOException($errorInfo[0]);
             }
             return array("found" => true, "errorInfo" => $errorInfo, "resultSet" => $result);
         } else {
             $errorInfo = '23502';
             // 23502  user_id not_null_violation
             $errorInfoColumn = 'pk';
             return array("found" => false, "errorInfo" => $errorInfo, "resultSet" => '', "errorInfoColumn" => $errorInfoColumn);
         }
     } catch (\PDOException $e) {
         return array("found" => false, "errorInfo" => $e->getMessage());
     }
 }