/**
  * @author Okan CIRAN
  * @ info_firm_profile tablosuna yeni bir kayıt oluşturur.  !!
  * @version v 1.0  06.01.2016
  * @param array | null $args
  * @return array
  * @throws \PDOException
  */
 public function insertTemp($params = array())
 {
     try {
         $pdo = $this->getServiceLocator()->get('pgConnectFactory');
         $pdo->beginTransaction();
         $opUserId = InfoUsers::getUserIdTemp(array('pktemp' => $params['pktemp']));
         if (\Utill\Dal\Helper::haveRecord($opUserId)) {
             $opUserIdValue = $opUserId['resultSet'][0]['user_id'];
             $kontrol = $this->haveRecords($params);
             if (!\Utill\Dal\Helper::haveRecord($kontrol)) {
                 $addSql = " op_user_id, ";
                 $addSqlValue = " " . $opUserIdValue . ",";
                 $addSql .= " operation_type_id,  ";
                 $addSqlValue .= " 1,";
                 $addSql .= " owner_user_id,  ";
                 $addSqlValue .= " " . $opUserIdValue . ",";
                 $getConsultant = SysOsbConsultants::getConsultantIdForCompany(array('category_id' => 1));
                 if (\Utill\Dal\Helper::haveRecord($getConsultant)) {
                     $ConsultantId = $getConsultant['resultSet'][0]['consultant_id'];
                 } else {
                     $ConsultantId = 1001;
                 }
                 $addSql .= " consultant_id,  ";
                 $addSqlValue .= " " . intval($ConsultantId) . ",";
                 if (isset($params['foundation_year']) && $params['foundation_year'] != "") {
                     $foundationYear = $params['foundation_year'];
                     $addSql .= " foundation_year,  ";
                     $addSqlValue .= " '" . $foundationYear . "',";
                 }
                 $languageId = SysLanguage::getLanguageId(array('language_code' => $params['language_code']));
                 if (\Utill\Dal\Helper::haveRecord($languageId)) {
                     $languageIdValue = $languageId['resultSet'][0]['id'];
                 } else {
                     $languageIdValue = 647;
                 }
                 $addSql .= " language_id, ";
                 $addSqlValue .= " " . intval($languageIdValue) . ",";
                 $sql = " \n                   INSERT INTO info_firm_profile(\n                        profile_public, \n                        country_id,                    \n                        firm_name, \n                        web_address, \n                        tax_office, \n                        tax_no, \n                        sgk_sicil_no, \n                        ownership_status_id,                         \n                        language_code,                         \n                         " . $addSql . "                     \n                        firm_name_short,\n                        act_parent_id,                      \n                        description,\n                        description_eng,\n                        duns_number\n                        )\n                VALUES (\n                        " . intval($params['profile_public']) . ", \n                        " . intval($params['country_id']) . ",                     \n                        :firm_name, \n                        :web_address, \n                        :tax_office, \n                        :tax_no, \n                        :sgk_sicil_no, \n                        " . intval($params['ownership_status_id']) . ",                         \n                        :language_code,                         \n                         " . $addSqlValue . "                     \n                        :firm_name_short,\n                        (SELECT last_value FROM info_firm_profile_id_seq),                   \n                        :description,\n                        :description_eng,\n                        :duns_number\n                                            )    ";
                 $statementInsert = $pdo->prepare($sql);
                 $statementInsert->bindValue(':firm_name', $params['firm_name'], \PDO::PARAM_STR);
                 $statementInsert->bindValue(':web_address', $params['web_address'], \PDO::PARAM_STR);
                 $statementInsert->bindValue(':tax_office', $params['tax_office'], \PDO::PARAM_STR);
                 $statementInsert->bindValue(':tax_no', $params['tax_no'], \PDO::PARAM_STR);
                 $statementInsert->bindValue(':sgk_sicil_no', $params['sgk_sicil_no'], \PDO::PARAM_STR);
                 $statementInsert->bindValue(':language_code', $params['language_code'], \PDO::PARAM_STR);
                 $statementInsert->bindValue(':firm_name_short', $params['firm_name_short'], \PDO::PARAM_STR);
                 $statementInsert->bindValue(':description', $params['description'], \PDO::PARAM_STR);
                 $statementInsert->bindValue(':description_eng', $params['description_eng'], \PDO::PARAM_STR);
                 $statementInsert->bindValue(':duns_number', $params['duns_number'], \PDO::PARAM_STR);
                 $result = $statementInsert->execute();
                 $insertID = $pdo->lastInsertId('info_firm_profile_id_seq');
                 $errorInfo = $statementInsert->errorInfo();
                 if ($errorInfo[0] != "00000" && $errorInfo[1] != NULL && $errorInfo[2] != NULL) {
                     throw new \PDOException($errorInfo[0]);
                 }
                 $pdo->commit();
                 return array("found" => true, "errorInfo" => $errorInfo, "lastInsertId" => $insertID);
             } else {
                 // 23505  unique_violation
                 $errorInfo = '23505';
                 $errorInfoColumn = 'firm_name';
                 $pdo->rollback();
                 return array("found" => true, "errorInfo" => $errorInfo, "resultSet" => '', "errorInfoColumn" => $errorInfoColumn);
             }
         } else {
             $errorInfo = '23502';
             // 23502  not_null_violation
             $errorInfoColumn = 'pk';
             $pdo->rollback();
             return array("found" => true, "errorInfo" => $errorInfo, "resultSet" => '', "errorInfoColumn" => $errorInfoColumn);
         }
     } catch (\PDOException $e) {
         $pdo->rollback();
         return array("found" => false, "errorInfo" => $e->getMessage());
     }
 }
 /**
  * @author Okan CIRAN
  * @ info_firm_machine_tool tablosuna yeni bir kayıt oluşturur.  !!
  * @version v 1.0  18.02.2016
  * @param array | null $args
  * @return array
  * @throws \PDOException
  */
 public function insert($params = array())
 {
     try {
         $pdo = $this->getServiceLocator()->get('pgConnectFactory');
         $pdo->beginTransaction();
         $opUserId = InfoUsers::getUserId(array('pk' => $params['pk']));
         if (\Utill\Dal\Helper::haveRecord($opUserId)) {
             $opUserIdValue = $opUserId['resultSet'][0]['user_id'];
             $kontrol = $this->haveRecords($params);
             if (!\Utill\Dal\Helper::haveRecord($kontrol)) {
                 $addSql = " op_user_id, ";
                 $addSqlValue = " " . $opUserIdValue . ",";
                 $addSql .= " operation_type_id,  ";
                 if (isset($params['operation_type_id']) && $params['operation_type_id'] != "") {
                     $addSqlValue .= " " . intval($params['operation_type_id']) . ",";
                 } else {
                     $addSqlValue .= " 29,";
                 }
                 $getConsultant = SysOsbConsultants::getConsultantIdForCompany(array('category_id' => 1));
                 if (\Utill\Dal\Helper::haveRecord($getConsultant['resultSet'][0]['consultant_id'])) {
                     $ConsultantId = $getConsultant['resultSet'][0]['consultant_id'];
                 } else {
                     $ConsultantId = 1001;
                 }
                 $addSql .= " consultant_id,  ";
                 $addSqlValue .= " " . intval($ConsultantId) . ",";
                 if (isset($params['profile_public'])) {
                     $addSql .= " profile_public, ";
                     $addSqlValue .= intval($params['profile_public']) . ", ";
                 }
                 $languageId = SysLanguage::getLanguageId(array('language_code' => $params['language_code']));
                 if (\Utill\Dal\Helper::haveRecord($languageId)) {
                     $languageIdValue = $languageId['resultSet'][0]['id'];
                 } else {
                     $languageIdValue = 647;
                 }
                 $addSql .= " language_id, ";
                 $addSqlValue .= " " . $languageIdValue . ",";
                 $statement = $pdo->prepare("\n                   INSERT INTO info_firm_machine_tool(\n                        firm_id,                         \n                        sys_machine_tool_id,\n                        language_code,\n                        availability_id,\n                         " . $addSql . "\n                        act_parent_id\n                        )\n                VALUES (\n                        :firm_id,                        \n                        :sys_machine_tool_id,\n                        :language_code, \n                        :availability_id, \n                         " . $addSqlValue . "\n                        (SELECT last_value FROM info_firm_machine_tool_id_seq)\n                        ");
                 $statement->bindValue(':firm_id', $params['firm_id'], \PDO::PARAM_INT);
                 $statement->bindValue(':sys_machine_tool_id', $params['machine_id'], \PDO::PARAM_INT);
                 $statement->bindValue(':availability_id', $params['availability_id'], \PDO::PARAM_INT);
                 $statement->bindValue(':language_code', $params['language_code'], \PDO::PARAM_STR);
                 $result = $statement->execute();
                 $insertID = $pdo->lastInsertId('info_firm_machine_tool_id_seq');
                 $errorInfo = $statement->errorInfo();
                 if ($errorInfo[0] != "00000" && $errorInfo[1] != NULL && $errorInfo[2] != NULL) {
                     throw new \PDOException($errorInfo[0]);
                 }
                 $pdo->commit();
                 return array("found" => true, "errorInfo" => $errorInfo, "lastInsertId" => $insertID);
             } else {
                 // 23505  unique_violation
                 $errorInfo = '23505';
                 $errorInfoColumn = 'sys_machine_tool_id';
                 $pdo->rollback();
                 // $result = $kontrol;
                 return array("found" => true, "errorInfo" => $errorInfo, "resultSet" => '', "errorInfoColumn" => $errorInfoColumn);
             }
         } else {
             $errorInfo = '23502';
             // 23502  not_null_violation
             $errorInfoColumn = 'pk';
             $pdo->rollback();
             return array("found" => true, "errorInfo" => $errorInfo, "resultSet" => '', "errorInfoColumn" => $errorInfoColumn);
         }
     } catch (\PDOException $e) {
         $pdo->rollback();
         return array("found" => false, "errorInfo" => $e->getMessage());
     }
 }