/**
  * @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_users_addresses tablosundan parametre olarak  gelen id kaydın active alanını 1 yapar ve 
  * yeni yeni kayıt oluşturarak deleted ve active = 1 olarak  yeni kayıt yapar. ! 
  * @version v 1.0  02.02.2016
  * @param array | null $args
  * @return array
  * @throws \PDOException
  */
 public function deletedActTemp($params = array())
 {
     try {
         $pdo = $this->getServiceLocator()->get('pgConnectFactory');
         $pdo->beginTransaction();
         $userId = InfoUsers::getUserIdTemp(array('pktemp' => $params['pktemp']));
         if (\Utill\Dal\Helper::haveRecord($userId)) {
             $userIdValue = $userId['resultSet'][0]['user_id'];
             $addSql = "";
             $addSqlValue = "";
             if (isset($params['act_parent_id'])) {
                 $act_parent_id = intval($params['act_parent_id']);
                 $addSql .= " act_parent_id, ";
                 if ($act_parent_id == 0) {
                     $act_parent_id = intval($params['id']);
                 }
                 $addSqlValue .= intval($act_parent_id) . ", ";
             }
             if (isset($params['operation_type_id'])) {
                 $addSql .= " operation_type_id, ";
                 $addSqlValue .= intval($params['operation_type_id']) . ", ";
             }
             $this->makePassive(array('id' => $params['id']));
             $statementInsert = $pdo->prepare(" \n                    INSERT INTO info_users_addresses (\n                        user_id,                        \n                        active, \n                        deleted,\n                        op_user_id, \n                        " . $addSql . "\n                        \n                        language_code, \n                        language_id,\n                        address_type_id, \n                        address1, \n                        address2, \n                        postal_code, \n                        country_id, \n                        city_id, \n                        borough_id, \n                        city_name, \n                        description, \n                        description_eng\n                        profile_public,\n                        \n                        f_check, \n                        consultant_id,\n                        consultant_confirm_type_id, \n                        confirm_id,                        \n                        language_parent_id ,\n                        history_parent_id,\n                        consultant_id,\n                        consultant_confirm_type_id,\n                        confirm_id,\n                        act_parent_id\n                        )    \n                        \n                    SELECT\n                        user_id,\n                        1 AS active,  \n                        1 AS deleted, \n                        " . intval($userIdValue) . " AS op_user_id,  \n                        " . $addSqlValue . " \n                            \n                        language_code, \n                        language_id,\n                        address_type_id, \n                        address1, \n                        address2, \n                        postal_code, \n                        country_id, \n                        city_id, \n                        borough_id, \n                        city_name, \n                        description, \n                        description_eng\n                        profile_public,    \n\n                        f_check,                \n                        consultant_id, \n                        consultant_confirm_type_id, \n                        confirm_id,                        \n                        language_parent_id ,\n                        history_parent_id,\n                        consultant_id,\n                        consultant_confirm_type_id,\n                        confirm_id,\n                        act_parent_id\n                    FROM info_users_addresses \n                    WHERE id  =" . intval($params['id']) . "    \n                    )");
             $insertAct = $statementInsert->execute();
             $affectedRows = $statementInsert->rowCount();
             $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, "affectedRowsCount" => $affectedRows);
         } else {
             $errorInfo = '23502';
             /// 23502  not_null_violation
             $errorInfoColumn = 'pk / op_user_id';
             $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_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->slimApp->getServiceManager()->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)) {
                 $operationIdValue = -1;
                 $operationId = SysOperationTypes::getTypeIdToGoOperationId(array('parent_id' => 3, 'main_group' => 3, 'sub_grup_id' => 23, 'type_id' => 1));
                 if (\Utill\Dal\Helper::haveRecord($operationId)) {
                     $operationIdValue = $operationId['resultSet'][0]['id'];
                 }
                 $ConsultantId = 1001;
                 $getConsultant = SysOsbConsultants::getConsultantIdForTableName(array('table_name' => 'info_firm_profile', 'operation_type_id' => $operationIdValue));
                 if (\Utill\Dal\Helper::haveRecord($getConsultant)) {
                     $ConsultantId = $getConsultant['resultSet'][0]['consultant_id'];
                 }
                 $foundationYearx = NULL;
                 if (isset($params['foundation_yearx']) && $params['foundation_yearx'] != "") {
                     $foundationYearx = $params['foundation_yearx'];
                 }
                 //to_timestamp(1451599200 )
                 $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'];
                     }
                 }
                 $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                        language_id,\n                        op_user_id, \n                        consultant_id,\n                        operation_type_id,                      \n                        foundation_yearx, \n                        firm_name_short,\n                        act_parent_id,                      \n                        description,\n                        description_eng,\n                        duns_number,\n                        logo\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                        " . intval($languageIdValue) . ",\n                        " . intval($opUserIdValue) . ",\n                        " . intval($ConsultantId) . ",\n                        " . intval($operationIdValue) . ",\n                        " . intval($foundationYearx) . " ,\n                        :firm_name_short,\n                        (SELECT last_value FROM info_firm_profile_id_seq),\n                        :description,\n                        :description_eng,\n                        :duns_number,\n                        :logo\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);
                 $statementInsert->bindValue(':logo', $params['logo'], \PDO::PARAM_STR);
                 // echo debugPDO($sql, $params);
                 $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]);
                 }
                 InfoFirmKeys::insert(array('firm_id' => $insertID, 'country_id' => $params['country_id']));
                 $this->insertCompanyUser(array('firm_id' => $insertID, 'language_id' => $languageIdValue, 'consultant_id' => $ConsultantId, 'user_id' => $opUserIdValue, 'op_user_id' => $opUserIdValue));
                 $pdo->commit();
                 return array("found" => true, "errorInfo" => $errorInfo, "lastInsertId" => $insertID);
             } else {
                 $errorInfo = '23505';
                 // 23505  unique_violation
                 $errorInfoColumn = 'firm_name';
                 $pdo->rollback();
                 return array("found" => false, "errorInfo" => $errorInfo, "resultSet" => '', "errorInfoColumn" => $errorInfoColumn);
             }
         } else {
             $errorInfo = '23502';
             // 23502  not_null_violation
             $errorInfoColumn = 'pk';
             $pdo->rollback();
             return array("found" => false, "errorInfo" => $errorInfo, "resultSet" => '', "errorInfoColumn" => $errorInfoColumn);
         }
     } catch (\PDOException $e) {
         $pdo->rollback();
         return array("found" => false, "errorInfo" => $e->getMessage());
     }
 }