Pārlūkot izejas kodu

Introduce an interface for num ref generators

Laurent Destailleur 2 gadi atpakaļ
vecāks
revīzija
7bbaf37ffe

+ 137 - 0
htdocs/core/class/commonnumrefgenerator.class.php

@@ -0,0 +1,137 @@
+<?php
+/* Copyright (C) 2023	Laurent Destailleur     <eldy@users.sourceforge.net>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ * or see https://www.gnu.org/
+ */
+
+/**
+ *	    \file       htdocs/core/class/commonnumrefgenerator.class.php
+ *		\ingroup    core
+ *		\brief      File of parent class for num ref generators
+ */
+
+
+/**
+ *	Parent class for number ref generators
+ */
+abstract class CommonNumRefGenerator
+{
+	/**
+	 * @var string Model name
+	 */
+	public $name = '';
+
+	/**
+	 * @var string Version
+	 */
+	public $version = '';
+
+	/**
+	 * @var string Error code (or message)
+	 */
+	public $error = '';
+
+	/**
+	 * @var string[]    Array of error strings
+	 */
+	public $errors = array();
+
+	/**
+	 * @var DoliDB Database handler.
+	 */
+	protected $db;
+
+
+	/**
+	 *	Return if a module can be used or not
+	 *
+	 *	@return		boolean     true if module can be used
+	 */
+	public function isEnabled()
+	{
+		return true;
+	}
+
+	/**
+	 *	Returns the default description of the numbering template
+	 *
+	 *	@return     string      Descriptive text
+	 */
+	public function info()
+	{
+		global $langs;
+		return $langs->trans("NoDescription");
+	}
+
+	/**
+	 *	Returns an example of numbering
+	 *
+	 *	@return     string      Example
+	 */
+	public function getExample()
+	{
+		global $langs;
+		return $langs->trans("NoExample");
+	}
+
+	/**
+	 *  Checks if the numbers already in the database do not
+	 *  cause conflicts that would prevent this numbering working.
+	 *
+	 *	@param	Object		$object		Object we need next value for
+	 *	@return boolean     			false if conflict, true if ok
+	 */
+	public function canBeActivated($object)
+	{
+		return true;
+	}
+
+	/**
+	 *	Returns next assigned value
+	 *
+	 *	@param	Object		$object		Object we need next value for
+	 *	@return	string      Valeur
+	 */
+	public function getNextValue($object)
+	{
+		global $langs;
+		return $langs->trans("NotAvailable");
+	}
+
+	/**
+	 *	Returns version of numbering module
+	 *
+	 *	@return     string      Valeur
+	 */
+	public function getVersion()
+	{
+		global $langs;
+		$langs->load("admin");
+
+		if ($this->version == 'development') {
+			return $langs->trans("VersionDevelopment");
+		}
+		if ($this->version == 'experimental') {
+			return $langs->trans("VersionExperimental");
+		}
+		if ($this->version == 'dolibarr') {
+			return DOL_VERSION;
+		}
+		if ($this->version) {
+			return $this->version;
+		}
+		return $langs->trans("NotAvailable");
+	}
+}

+ 0 - 2
htdocs/recruitment/core/modules/recruitment/modules_recruitmentcandidature.php

@@ -49,8 +49,6 @@ abstract class ModelePDFRecruitmentCandidature extends CommonDocGenerator
 	public static function liste_modeles($db, $maxfilenamelength = 0)
 	{
 		// phpcs:enable
-		global $conf;
-
 		$type = 'recruitmentjobcandidature';
 		$list = array();
 

+ 3 - 90
htdocs/recruitment/core/modules/recruitment/modules_recruitmentjobposition.php

@@ -29,6 +29,7 @@
  */
 
 require_once DOL_DOCUMENT_ROOT.'/core/class/commondocgenerator.class.php';
+require_once DOL_DOCUMENT_ROOT.'/core/class/commonnumrefgenerator.class.php';
 require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php'; // required for use by classes that inherit
 
 
@@ -84,8 +85,6 @@ abstract class ModelePDFRecruitmentJobPosition extends CommonDocGenerator
 	public static function liste_modeles($db, $maxfilenamelength = 0)
 	{
 		// phpcs:enable
-		global $conf;
-
 		$type = 'recruitmentjobposition';
 		$list = array();
 
@@ -101,93 +100,7 @@ abstract class ModelePDFRecruitmentJobPosition extends CommonDocGenerator
 /**
  *  Parent class to manage numbering of RecruitmentJobPosition
  */
-abstract class ModeleNumRefRecruitmentJobPosition
+abstract class ModeleNumRefRecruitmentJobPosition extends CommonNumRefGenerator
 {
-	/**
-	 * @var string Error code (or message)
-	 */
-	public $error = '';
-
-	/**
-	 *	Return if a module can be used or not
-	 *
-	 *	@return		boolean     true if module can be used
-	 */
-	public function isEnabled()
-	{
-		return true;
-	}
-
-	/**
-	 *	Returns the default description of the numbering template
-	 *
-	 *	@return     string      Descriptive text
-	 */
-	public function info()
-	{
-		global $langs;
-		$langs->load("recruitment");
-		return $langs->trans("NoDescription");
-	}
-
-	/**
-	 *	Returns an example of numbering
-	 *
-	 *	@return     string      Example
-	 */
-	public function getExample()
-	{
-		global $langs;
-		$langs->load("recruitment");
-		return $langs->trans("NoExample");
-	}
-
-	/**
-	 *  Checks if the numbers already in the database do not
-	 *  cause conflicts that would prevent this numbering working.
-	 *
-	 *	@param	Object		$object		Object we need next value for
-	 *	@return boolean     			false if conflict, true if ok
-	 */
-	public function canBeActivated($object)
-	{
-		return true;
-	}
-
-	/**
-	 *	Returns next assigned value
-	 *
-	 *	@param	Object		$object		Object we need next value for
-	 *	@return	string      Valeur
-	 */
-	public function getNextValue($object)
-	{
-		global $langs;
-		return $langs->trans("NotAvailable");
-	}
-
-	/**
-	 *	Returns version of numbering module
-	 *
-	 *	@return     string      Valeur
-	 */
-	public function getVersion()
-	{
-		global $langs;
-		$langs->load("admin");
-
-		if ($this->version == 'development') {
-			return $langs->trans("VersionDevelopment");
-		}
-		if ($this->version == 'experimental') {
-			return $langs->trans("VersionExperimental");
-		}
-		if ($this->version == 'dolibarr') {
-			return DOL_VERSION;
-		}
-		if ($this->version) {
-			return $this->version;
-		}
-		return $langs->trans("NotAvailable");
-	}
+	// No overloaded code
 }