Passed
Branch develop (aaddda)
by
unknown
27:46
created

mod_workstation_advanced::getExample()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 22
Code Lines 7

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 2
eloc 7
nc 2
nop 0
dl 0
loc 22
rs 10
c 0
b 0
f 0
1
<?php
2
/* Copyright (C) 2003-2007  Rodolphe Quiedeville        <[email protected]>
3
 * Copyright (C) 2004-2007  Laurent Destailleur         <[email protected]>
4
 * Copyright (C) 2005-2009  Regis Houssin               <[email protected]>
5
 * Copyright (C) 2008       Raphael Bertrand (Resultic) <[email protected]>
6
 * Copyright (C) 2019       Frédéric France             <[email protected]>
7
 * Copyright (C) 2020 		Gauthier VERDOL <[email protected]>
8
 *
9
 * This program is free software; you can redistribute it and/or modify
10
 * it under the terms of the GNU General Public License as published by
11
 * the Free Software Foundation; either version 3 of the License, or
12
 * (at your option) any later version.
13
 *
14
 * This program is distributed in the hope that it will be useful,
15
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17
 * GNU General Public License for more details.
18
 *
19
 * You should have received a copy of the GNU General Public License
20
 * along with this program. If not, see <https://www.gnu.org/licenses/>.
21
 * or see https://www.gnu.org/
22
 */
23
24
/**
25
 * \file       htdocs/core/modules/workstation/mod_workstation_advanced.php
26
 * \ingroup    workstation
27
 * \brief      File containing class for advanced numbering model of Workstation
28
 */
29
30
require_once DOL_DOCUMENT_ROOT . '/core/modules/workstation/modules_workstation.php';
31
32
33
/**
34
 *	Class to manage customer Bom numbering rules advanced
35
 */
36
class mod_workstation_advanced extends ModeleNumRefWorkstation
37
{
38
	/**
39
	 * Dolibarr version of the loaded document
40
	 * @var string
41
	 */
42
	public $version = 'dolibarr'; // 'development', 'experimental', 'dolibarr'
43
44
	/**
45
	 * @var string Error message
46
	 */
47
	public $error = '';
48
49
	/**
50
	 * @var string name
51
	 */
52
	public $name = 'advanced';
53
54
55
	/**
56
	 *  Returns the description of the numbering model
57
	 *
58
	 *  @return     string      Texte descripif
59
	 */
60
	public function info()
61
	{
62
		global $conf, $langs, $db;
63
64
		$langs->load("bills");
65
66
		$form = new Form($db);
67
68
		$texte = $langs->trans('GenericNumRefModelDesc')."<br>\n";
69
		$texte .= '<form action="'.$_SERVER["PHP_SELF"].'" method="POST">';
70
		$texte .= '<input type="hidden" name="token" value="'.newToken().'">';
71
		$texte .= '<input type="hidden" name="action" value="updateMask">';
72
		$texte .= '<input type="hidden" name="maskconstWorkstation" value="WORKSTATION_WORKSTATION_ADVANCED_MASK">';
73
		$texte .= '<table class="nobordernopadding" width="100%">';
74
75
		$tooltip = $langs->trans("GenericMaskCodes", $langs->transnoentities("Workstation"), $langs->transnoentities("Workstation"));
76
		$tooltip .= $langs->trans("GenericMaskCodes2");
77
		$tooltip .= $langs->trans("GenericMaskCodes3");
78
		$tooltip .= $langs->trans("GenericMaskCodes4a", $langs->transnoentities("Workstation"), $langs->transnoentities("Workstation"));
79
		$tooltip .= $langs->trans("GenericMaskCodes5");
80
81
		// Parametrage du prefix
82
		$texte .= '<tr><td>'.$langs->trans("Mask").':</td>';
83
		$texte .= '<td class="right">'.$form->textwithpicto('<input type="text" class="flat" size="24" name="maskWorkstation" value="'.$conf->global->WORKSTATION_WORKSTATION_ADVANCED_MASK.'">', $tooltip, 1, 1).'</td>';
84
85
		$texte .= '<td class="left" rowspan="2">&nbsp; <input type="submit" class="button" value="'.$langs->trans("Modify").'" name="Button"></td>';
86
87
		$texte .= '</tr>';
88
89
		$texte .= '</table>';
90
		$texte .= '</form>';
91
92
		return $texte;
93
	}
94
95
	/**
96
	 *  Return an example of numbering
97
	 *
98
	 *  @return     string      Example
99
	 */
100
	public function getExample()
101
	{
102
		global $conf, $db, $langs, $mysoc;
103
104
		$object = new Workstation($db);
105
		$object->initAsSpecimen();
106
107
		/*$old_code_client = $mysoc->code_client;
108
		$old_code_type = $mysoc->typent_code;
109
		$mysoc->code_client = 'CCCCCCCCCC';
110
		$mysoc->typent_code = 'TTTTTTTTTT';*/
111
112
		$numExample = $this->getNextValue($object);
113
114
		/*$mysoc->code_client = $old_code_client;
115
		$mysoc->typent_code = $old_code_type;*/
116
117
		if (!$numExample)
118
		{
119
			$numExample = $langs->trans('NotConfigured');
120
		}
121
		return $numExample;
122
	}
123
124
	/**
125
	 * 	Return next free value
126
	 *
127
	 *  @param  Object		$object		Object we need next value for
128
	 *  @return string      			Value if KO, <0 if KO
129
	 */
130
	public function getNextValue($object)
131
	{
132
		global $db, $conf;
133
134
		require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
135
136
		// We get cursor rule
137
		$mask = $conf->global->WORKSTATION_WORKSTATION_ADVANCED_MASK;
138
139
		if (!$mask)
140
		{
141
			$this->error = 'NotConfigured';
142
			return 0;
143
		}
144
145
		$date = $object->date;
146
147
		$numFinal = get_next_value($db, $mask, 'workstation_workstation', 'ref', '', null, $date);
148
149
		return  $numFinal;
150
	}
151
}
152