1<?php 2/* Copyright (C) 2003-2004 Rodolphe Quiedeville <rodolphe@quiedeville.org> 3 * Copyright (C) 2004-2011 Laurent Destailleur <eldy@users.sourceforge.net> 4 * Copyright (C) 2004 Eric Seigne <eric.seigne@ryxeo.com> 5 * Copyright (C) 2005-2012 Regis Houssin <regis.houssin@inodbox.com> 6 * Copyright (C) 2006 Andre Cianfarani <acianfa@free.fr> 7 * Copyright (C) 2012 Juanjo Menent <jmenent@2byte.es> 8 * Copyright (C) 2014 Marcos García <marcosgdf@gmail.com> 9 * Copyright (C) 2020 Gauthier VERDOL <gauthier.verdol@atm-consulting.fr> 10 * 11 * This program is free software; you can redistribute it and/or modify 12 * it under the terms of the GNU General Public License as published by 13 * the Free Software Foundation; either version 3 of the License, or 14 * (at your option) any later version. 15 * 16 * This program is distributed in the hope that it will be useful, 17 * but WITHOUT ANY WARRANTY; without even the implied warranty of 18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19 * GNU General Public License for more details. 20 * 21 * You should have received a copy of the GNU General Public License 22 * along with this program. If not, see <https://www.gnu.org/licenses/>. 23 * or see https://www.gnu.org/ 24 */ 25 26/** 27 * \file htdocs/core/modules/workstation/modules_workstation.php 28 * \ingroup workstation 29 * \brief File that contains parent class for workstations document models and parent class for workstations numbering models 30 */ 31 32require_once DOL_DOCUMENT_ROOT.'/core/class/commondocgenerator.class.php'; 33require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php'; // required for use by classes that inherit 34 35 36/** 37 * Parent class for documents models 38 */ 39abstract class ModelePDFWorkstation extends CommonDocGenerator 40{ 41 42 // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps 43 /** 44 * Return list of active generation modules 45 * 46 * @param DoliDB $db Database handler 47 * @param integer $maxfilenamelength Max length of value to show 48 * @return array List of templates 49 */ 50 public static function liste_modeles($db, $maxfilenamelength = 0) 51 { 52 // phpcs:enable 53 global $conf; 54 55 $type = 'workstation'; 56 $list = array(); 57 58 include_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; 59 $list = getListOfModels($db, $type, $maxfilenamelength); 60 61 return $list; 62 } 63} 64 65 66 67/** 68 * Parent class to manage numbering of Workstation 69 */ 70abstract class ModeleNumRefWorkstation 71{ 72 /** 73 * @var string Error code (or message) 74 */ 75 public $error = ''; 76 77 /** 78 * Return if a module can be used or not 79 * 80 * @return boolean true if module can be used 81 */ 82 public function isEnabled() 83 { 84 return true; 85 } 86 87 /** 88 * Returns the default description of the numbering template 89 * 90 * @return string Texte descripif 91 */ 92 public function info() 93 { 94 global $langs; 95 $langs->load("workstation@workstation"); 96 return $langs->trans("NoDescription"); 97 } 98 99 /** 100 * Returns an example of numbering 101 * 102 * @return string Example 103 */ 104 public function getExample() 105 { 106 global $langs; 107 $langs->load("workstation@workstation"); 108 return $langs->trans("NoExample"); 109 } 110 111 /** 112 * Checks if the numbers already in the database do not 113 * cause conflicts that would prevent this numbering working. 114 * 115 * @param Object $object Object we need next value for 116 * @return boolean false if conflict, true if ok 117 */ 118 public function canBeActivated($object) 119 { 120 return true; 121 } 122 123 /** 124 * Returns next assigned value 125 * 126 * @param Object $object Object we need next value for 127 * @return string Valeur 128 */ 129 public function getNextValue($object) 130 { 131 global $langs; 132 return $langs->trans("NotAvailable"); 133 } 134 135 /** 136 * Returns version of numbering module 137 * 138 * @return string Valeur 139 */ 140 public function getVersion() 141 { 142 global $langs; 143 $langs->load("admin"); 144 145 if ($this->version == 'development') { 146 return $langs->trans("VersionDevelopment"); 147 } 148 if ($this->version == 'experimental') { 149 return $langs->trans("VersionExperimental"); 150 } 151 if ($this->version == 'dolibarr') { 152 return DOL_VERSION; 153 } 154 if ($this->version) { 155 return $this->version; 156 } 157 return $langs->trans("NotAvailable"); 158 } 159} 160