@@ -211,14 +211,14 @@ |
||
211 | 211 | $i = 0; |
212 | 212 | while ($i < $num) { |
213 | 213 | $obj = $db->fetch_object($result); |
214 | - if (!isset($permsgroupbyentity[$obj->entity])) |
|
215 | - $permsgroupbyentity[$obj->entity] = array(); |
|
214 | + if (!isset($permsgroupbyentity[$obj->entity])) { |
|
215 | + $permsgroupbyentity[$obj->entity] = array(); |
|
216 | + } |
|
216 | 217 | array_push($permsgroupbyentity[$obj->entity], $obj->fk_id); |
217 | 218 | $i++; |
218 | 219 | } |
219 | 220 | $db->free($result); |
220 | -} |
|
221 | -else { |
|
221 | +} else { |
|
222 | 222 | dol_print_error($db); |
223 | 223 | } |
224 | 224 |
@@ -73,10 +73,10 @@ |
||
73 | 73 | |
74 | 74 | if ($user->rights->societe->lire) { |
75 | 75 | $head[$h][0] = BASE_URI . '?controller=margin&method=customerMargins'; |
76 | - $head[$h][1] = $langs->trans("CustomerMargins"); |
|
77 | - $head[$h][2] = 'customerMargins'; |
|
78 | - $h++; |
|
79 | - } |
|
76 | + $head[$h][1] = $langs->trans("CustomerMargins"); |
|
77 | + $head[$h][2] = 'customerMargins'; |
|
78 | + $h++; |
|
79 | + } |
|
80 | 80 | |
81 | 81 | if ($user->rights->margins->read->all) { |
82 | 82 | $title = 'UserMargins'; |
@@ -68,33 +68,33 @@ discard block |
||
68 | 68 | $conf->file->dol_url_root = array('main' => (string) DOL_URL_ROOT); // Define array of url root path ('' or '/dolibarr') |
69 | 69 | if (! empty($dolibarr_main_document_root_alt)) |
70 | 70 | { |
71 | - // dolibarr_main_document_root_alt can contains several directories |
|
72 | - $values=preg_split('/[;,]/',$dolibarr_main_document_root_alt); |
|
73 | - $i=0; |
|
71 | + // dolibarr_main_document_root_alt can contains several directories |
|
72 | + $values=preg_split('/[;,]/',$dolibarr_main_document_root_alt); |
|
73 | + $i=0; |
|
74 | 74 | foreach ($values as $value) |
75 | 75 | $conf->file->dol_document_root['alt' . ($i++)] = (string)$value; |
76 | - $values=preg_split('/[;,]/',$dolibarr_main_url_root_alt); |
|
77 | - $i=0; |
|
78 | - foreach($values as $value) |
|
79 | - { |
|
80 | - if (preg_match('/^http(s)?:/',$value)) |
|
81 | - { |
|
82 | - // Show error message |
|
83 | - $correct_value = str_replace($dolibarr_main_url_root, '', $value); |
|
84 | - print '<b>Error:</b><br>'."\n"; |
|
85 | - print 'Wrong <b>$dolibarr_main_url_root_alt</b> value in <b>conf.php</b> file.<br>'."\n"; |
|
86 | - print 'We now use a relative path to $dolibarr_main_url_root to build alternate URLs.<br>'."\n"; |
|
87 | - print 'Value found: '.$value.'<br>'."\n"; |
|
88 | - print 'Should be replaced by: '.$correct_value.'<br>'."\n"; |
|
89 | - print "Or something like following examples:<br>\n"; |
|
90 | - print "\"/extensions\"<br>\n"; |
|
91 | - print "\"/extensions1,/extensions2,...\"<br>\n"; |
|
92 | - print "\"/../extensions\"<br>\n"; |
|
93 | - print "\"/custom\"<br>\n"; |
|
94 | - exit; |
|
95 | - } |
|
96 | - $conf->file->dol_url_root['alt'.($i++)]=(string) $value; |
|
97 | - } |
|
76 | + $values=preg_split('/[;,]/',$dolibarr_main_url_root_alt); |
|
77 | + $i=0; |
|
78 | + foreach($values as $value) |
|
79 | + { |
|
80 | + if (preg_match('/^http(s)?:/',$value)) |
|
81 | + { |
|
82 | + // Show error message |
|
83 | + $correct_value = str_replace($dolibarr_main_url_root, '', $value); |
|
84 | + print '<b>Error:</b><br>'."\n"; |
|
85 | + print 'Wrong <b>$dolibarr_main_url_root_alt</b> value in <b>conf.php</b> file.<br>'."\n"; |
|
86 | + print 'We now use a relative path to $dolibarr_main_url_root to build alternate URLs.<br>'."\n"; |
|
87 | + print 'Value found: '.$value.'<br>'."\n"; |
|
88 | + print 'Should be replaced by: '.$correct_value.'<br>'."\n"; |
|
89 | + print "Or something like following examples:<br>\n"; |
|
90 | + print "\"/extensions\"<br>\n"; |
|
91 | + print "\"/extensions1,/extensions2,...\"<br>\n"; |
|
92 | + print "\"/../extensions\"<br>\n"; |
|
93 | + print "\"/custom\"<br>\n"; |
|
94 | + exit; |
|
95 | + } |
|
96 | + $conf->file->dol_url_root['alt'.($i++)]=(string) $value; |
|
97 | + } |
|
98 | 98 | } |
99 | 99 | |
100 | 100 | // Chargement des includes principaux de librairies communes |
@@ -108,7 +108,7 @@ discard block |
||
108 | 108 | */ |
109 | 109 | if (! defined('NOREQUIRETRAN')) |
110 | 110 | { |
111 | - $langs = new Translate('',$conf); // Must be after reading conf |
|
111 | + $langs = new Translate('',$conf); // Must be after reading conf |
|
112 | 112 | } |
113 | 113 | |
114 | 114 | /* |
@@ -118,11 +118,11 @@ discard block |
||
118 | 118 | { |
119 | 119 | $db=getDoliDBInstance($conf->db->type,$conf->db->host,$conf->db->user,$conf->db->pass,$conf->db->name,$conf->db->port); |
120 | 120 | |
121 | - if ($db->error) |
|
122 | - { |
|
123 | - dol_print_error($db,"host=".$conf->db->host.", port=".$conf->db->port.", user=".$conf->db->user.", databasename=".$conf->db->name.", ".$db->error); |
|
124 | - exit; |
|
125 | - } |
|
121 | + if ($db->error) |
|
122 | + { |
|
123 | + dol_print_error($db,"host=".$conf->db->host.", port=".$conf->db->port.", user=".$conf->db->user.", databasename=".$conf->db->name.", ".$db->error); |
|
124 | + exit; |
|
125 | + } |
|
126 | 126 | } |
127 | 127 | |
128 | 128 | // Now database connexion is known, so we can forget password |
@@ -134,7 +134,7 @@ discard block |
||
134 | 134 | */ |
135 | 135 | if (! defined('NOREQUIREUSER')) |
136 | 136 | { |
137 | - $user = new User($db); |
|
137 | + $user = new User($db); |
|
138 | 138 | } |
139 | 139 | |
140 | 140 | /* |
@@ -145,19 +145,19 @@ discard block |
||
145 | 145 | // By default conf->entity is 1, but we change this if we ask another value. |
146 | 146 | if (session_id() && ! empty($_SESSION["dol_entity"])) // Entity inside an opened session |
147 | 147 | { |
148 | - $conf->entity = $_SESSION["dol_entity"]; |
|
148 | + $conf->entity = $_SESSION["dol_entity"]; |
|
149 | 149 | } |
150 | 150 | else if (! empty($_ENV["dol_entity"])) // Entity inside a CLI script |
151 | 151 | { |
152 | - $conf->entity = $_ENV["dol_entity"]; |
|
152 | + $conf->entity = $_ENV["dol_entity"]; |
|
153 | 153 | } |
154 | 154 | else if (isset($_POST["loginfunction"]) && GETPOST("entity",'int')) // Just after a login page |
155 | 155 | { |
156 | - $conf->entity = GETPOST("entity",'int'); |
|
156 | + $conf->entity = GETPOST("entity",'int'); |
|
157 | 157 | } |
158 | 158 | else if (defined('DOLENTITY') && is_numeric(DOLENTITY)) // For public page with MultiCompany module |
159 | 159 | { |
160 | - $conf->entity = DOLENTITY; |
|
160 | + $conf->entity = DOLENTITY; |
|
161 | 161 | } |
162 | 162 | |
163 | 163 | // Sanitize entity |
@@ -165,16 +165,16 @@ discard block |
||
165 | 165 | |
166 | 166 | if (! defined('NOREQUIREDB')) |
167 | 167 | { |
168 | - //print "Will work with data into entity instance number '".$conf->entity."'"; |
|
168 | + //print "Will work with data into entity instance number '".$conf->entity."'"; |
|
169 | 169 | |
170 | - // Here we read database (llx_const table) and define $conf->global->XXX var. |
|
171 | - $conf->setValues($db); |
|
170 | + // Here we read database (llx_const table) and define $conf->global->XXX var. |
|
171 | + $conf->setValues($db); |
|
172 | 172 | } |
173 | 173 | |
174 | 174 | // Overwrite database value |
175 | 175 | if (! empty($conf->file->mailing_limit_sendbyweb)) |
176 | 176 | { |
177 | - $conf->global->MAILING_LIMIT_SENDBYWEB = $conf->file->mailing_limit_sendbyweb; |
|
177 | + $conf->global->MAILING_LIMIT_SENDBYWEB = $conf->file->mailing_limit_sendbyweb; |
|
178 | 178 | } |
179 | 179 | if (empty($conf->global->MAILING_LIMIT_SENDBYWEB)) |
180 | 180 | { |
@@ -192,41 +192,41 @@ discard block |
||
192 | 192 | // If software has been locked. Only login $conf->global->MAIN_ONLY_LOGIN_ALLOWED is allowed. |
193 | 193 | if (! empty($conf->global->MAIN_ONLY_LOGIN_ALLOWED)) |
194 | 194 | { |
195 | - $ok=0; |
|
196 | - if ((! session_id() || ! isset($_SESSION["dol_login"])) && ! isset($_POST["username"]) && ! empty($_SERVER["GATEWAY_INTERFACE"])) $ok=1; // We let working pages if not logged and inside a web browser (login form, to allow login by admin) |
|
197 | - elseif (isset($_POST["username"]) && $_POST["username"] == $conf->global->MAIN_ONLY_LOGIN_ALLOWED) $ok=1; // We let working pages that is a login submission (login submit, to allow login by admin) |
|
198 | - elseif (defined('NOREQUIREDB')) $ok=1; // We let working pages that don't need database access (xxx.css.php) |
|
199 | - elseif (defined('EVEN_IF_ONLY_LOGIN_ALLOWED')) $ok=1; // We let working pages that ask to work even if only login enabled (logout.php) |
|
200 | - elseif (session_id() && isset($_SESSION["dol_login"]) && $_SESSION["dol_login"] == $conf->global->MAIN_ONLY_LOGIN_ALLOWED) $ok=1; // We let working if user is allowed admin |
|
201 | - if (! $ok) |
|
202 | - { |
|
203 | - if (session_id() && isset($_SESSION["dol_login"]) && $_SESSION["dol_login"] != $conf->global->MAIN_ONLY_LOGIN_ALLOWED) |
|
204 | - { |
|
205 | - print 'Sorry, your application is offline.'."\n"; |
|
206 | - print 'You are logged with user "'.$_SESSION["dol_login"].'" and only administrator user "'.$conf->global->MAIN_ONLY_LOGIN_ALLOWED.'" is allowed to connect for the moment.'."\n"; |
|
195 | + $ok=0; |
|
196 | + if ((! session_id() || ! isset($_SESSION["dol_login"])) && ! isset($_POST["username"]) && ! empty($_SERVER["GATEWAY_INTERFACE"])) $ok=1; // We let working pages if not logged and inside a web browser (login form, to allow login by admin) |
|
197 | + elseif (isset($_POST["username"]) && $_POST["username"] == $conf->global->MAIN_ONLY_LOGIN_ALLOWED) $ok=1; // We let working pages that is a login submission (login submit, to allow login by admin) |
|
198 | + elseif (defined('NOREQUIREDB')) $ok=1; // We let working pages that don't need database access (xxx.css.php) |
|
199 | + elseif (defined('EVEN_IF_ONLY_LOGIN_ALLOWED')) $ok=1; // We let working pages that ask to work even if only login enabled (logout.php) |
|
200 | + elseif (session_id() && isset($_SESSION["dol_login"]) && $_SESSION["dol_login"] == $conf->global->MAIN_ONLY_LOGIN_ALLOWED) $ok=1; // We let working if user is allowed admin |
|
201 | + if (! $ok) |
|
202 | + { |
|
203 | + if (session_id() && isset($_SESSION["dol_login"]) && $_SESSION["dol_login"] != $conf->global->MAIN_ONLY_LOGIN_ALLOWED) |
|
204 | + { |
|
205 | + print 'Sorry, your application is offline.'."\n"; |
|
206 | + print 'You are logged with user "'.$_SESSION["dol_login"].'" and only administrator user "'.$conf->global->MAIN_ONLY_LOGIN_ALLOWED.'" is allowed to connect for the moment.'."\n"; |
|
207 | 207 | $nexturl = BASE_URI . '?controller=user&method=logout'; |
208 | - print 'Please try later or <a href="'.$nexturl.'">click here to disconnect and change login user</a>...'."\n"; |
|
209 | - } |
|
210 | - else |
|
211 | - { |
|
212 | - print 'Sorry, your application is offline. Only administrator user "'.$conf->global->MAIN_ONLY_LOGIN_ALLOWED.'" is allowed to connect for the moment.'."\n"; |
|
208 | + print 'Please try later or <a href="'.$nexturl.'">click here to disconnect and change login user</a>...'."\n"; |
|
209 | + } |
|
210 | + else |
|
211 | + { |
|
212 | + print 'Sorry, your application is offline. Only administrator user "'.$conf->global->MAIN_ONLY_LOGIN_ALLOWED.'" is allowed to connect for the moment.'."\n"; |
|
213 | 213 | $nexturl = BASE_URI . '/'; |
214 | - print 'Please try later or <a href="'.$nexturl.'">click here to change login user</a>...'."\n"; |
|
215 | - } |
|
216 | - exit; |
|
217 | - } |
|
214 | + print 'Please try later or <a href="'.$nexturl.'">click here to change login user</a>...'."\n"; |
|
215 | + } |
|
216 | + exit; |
|
217 | + } |
|
218 | 218 | } |
219 | 219 | |
220 | 220 | // Create object $mysoc (A thirdparty object that contains properties of companies managed by Dolibarr. |
221 | 221 | if (! defined('NOREQUIREDB') && ! defined('NOREQUIRESOC')) |
222 | 222 | { |
223 | - require_once DOL_DOCUMENT_ROOT .'/societe/class/societe.class.php'; |
|
223 | + require_once DOL_DOCUMENT_ROOT .'/societe/class/societe.class.php'; |
|
224 | 224 | |
225 | - $mysoc=new Societe($db); |
|
226 | - $mysoc->setMysoc($conf); |
|
225 | + $mysoc=new Societe($db); |
|
226 | + $mysoc->setMysoc($conf); |
|
227 | 227 | |
228 | - // For some countries, we need to invert our address with customer address |
|
229 | - if ($mysoc->country_code == 'DE' && ! isset($conf->global->MAIN_INVERT_SENDER_RECIPIENT)) $conf->global->MAIN_INVERT_SENDER_RECIPIENT=1; |
|
228 | + // For some countries, we need to invert our address with customer address |
|
229 | + if ($mysoc->country_code == 'DE' && ! isset($conf->global->MAIN_INVERT_SENDER_RECIPIENT)) $conf->global->MAIN_INVERT_SENDER_RECIPIENT=1; |
|
230 | 230 | } |
231 | 231 | |
232 | 232 |
@@ -54,7 +54,10 @@ discard block |
||
54 | 54 | $conf->db->dolibarr_main_db_collation = $dolibarr_main_db_collation; |
55 | 55 | $conf->db->dolibarr_main_db_encryption = $dolibarr_main_db_encryption; |
56 | 56 | $conf->db->dolibarr_main_db_cryptkey = $dolibarr_main_db_cryptkey; |
57 | -if (defined('TEST_DB_FORCE_TYPE')) $conf->db->type=constant('TEST_DB_FORCE_TYPE'); // Force db type (for test purpose, by PHP unit for example) |
|
57 | +if (defined('TEST_DB_FORCE_TYPE')) { |
|
58 | + $conf->db->type=constant('TEST_DB_FORCE_TYPE'); |
|
59 | +} |
|
60 | +// Force db type (for test purpose, by PHP unit for example) |
|
58 | 61 | |
59 | 62 | // Set properties specific to conf file |
60 | 63 | $conf->file->main_limit_users = $dolibarr_main_limit_users; |
@@ -71,8 +74,9 @@ discard block |
||
71 | 74 | // dolibarr_main_document_root_alt can contains several directories |
72 | 75 | $values=preg_split('/[;,]/',$dolibarr_main_document_root_alt); |
73 | 76 | $i=0; |
74 | - foreach ($values as $value) |
|
75 | - $conf->file->dol_document_root['alt' . ($i++)] = (string)$value; |
|
77 | + foreach ($values as $value) { |
|
78 | + $conf->file->dol_document_root['alt' . ($i++)] = (string)$value; |
|
79 | + } |
|
76 | 80 | $values=preg_split('/[;,]/',$dolibarr_main_url_root_alt); |
77 | 81 | $i=0; |
78 | 82 | foreach($values as $value) |
@@ -98,9 +102,16 @@ discard block |
||
98 | 102 | } |
99 | 103 | |
100 | 104 | // Chargement des includes principaux de librairies communes |
101 | -if (! defined('NOREQUIREUSER')) require_once DOL_DOCUMENT_ROOT .'/user/class/user.class.php'; // Need 500ko memory |
|
102 | -if (! defined('NOREQUIRETRAN')) require_once DOL_DOCUMENT_ROOT .'/core/class/translate.class.php'; |
|
103 | -if (! defined('NOREQUIRESOC')) require_once DOL_DOCUMENT_ROOT .'/societe/class/societe.class.php'; |
|
105 | +if (! defined('NOREQUIREUSER')) { |
|
106 | + require_once DOL_DOCUMENT_ROOT .'/user/class/user.class.php'; |
|
107 | +} |
|
108 | +// Need 500ko memory |
|
109 | +if (! defined('NOREQUIRETRAN')) { |
|
110 | + require_once DOL_DOCUMENT_ROOT .'/core/class/translate.class.php'; |
|
111 | +} |
|
112 | +if (! defined('NOREQUIRESOC')) { |
|
113 | + require_once DOL_DOCUMENT_ROOT .'/societe/class/societe.class.php'; |
|
114 | +} |
|
104 | 115 | |
105 | 116 | |
106 | 117 | /* |
@@ -143,25 +154,32 @@ discard block |
||
143 | 154 | */ |
144 | 155 | |
145 | 156 | // By default conf->entity is 1, but we change this if we ask another value. |
146 | -if (session_id() && ! empty($_SESSION["dol_entity"])) // Entity inside an opened session |
|
157 | +if (session_id() && ! empty($_SESSION["dol_entity"])) { |
|
158 | + // Entity inside an opened session |
|
147 | 159 | { |
148 | 160 | $conf->entity = $_SESSION["dol_entity"]; |
149 | 161 | } |
150 | -else if (! empty($_ENV["dol_entity"])) // Entity inside a CLI script |
|
162 | +} else if (! empty($_ENV["dol_entity"])) { |
|
163 | + // Entity inside a CLI script |
|
151 | 164 | { |
152 | 165 | $conf->entity = $_ENV["dol_entity"]; |
153 | 166 | } |
154 | -else if (isset($_POST["loginfunction"]) && GETPOST("entity",'int')) // Just after a login page |
|
167 | +} else if (isset($_POST["loginfunction"]) && GETPOST("entity",'int')) { |
|
168 | + // Just after a login page |
|
155 | 169 | { |
156 | 170 | $conf->entity = GETPOST("entity",'int'); |
157 | 171 | } |
158 | -else if (defined('DOLENTITY') && is_numeric(DOLENTITY)) // For public page with MultiCompany module |
|
172 | +} else if (defined('DOLENTITY') && is_numeric(DOLENTITY)) { |
|
173 | + // For public page with MultiCompany module |
|
159 | 174 | { |
160 | 175 | $conf->entity = DOLENTITY; |
161 | 176 | } |
177 | +} |
|
162 | 178 | |
163 | 179 | // Sanitize entity |
164 | -if (! is_numeric($conf->entity)) $conf->entity=1; |
|
180 | +if (! is_numeric($conf->entity)) { |
|
181 | + $conf->entity=1; |
|
182 | +} |
|
165 | 183 | |
166 | 184 | if (! defined('NOREQUIREDB')) |
167 | 185 | { |
@@ -193,11 +211,26 @@ discard block |
||
193 | 211 | if (! empty($conf->global->MAIN_ONLY_LOGIN_ALLOWED)) |
194 | 212 | { |
195 | 213 | $ok=0; |
196 | - if ((! session_id() || ! isset($_SESSION["dol_login"])) && ! isset($_POST["username"]) && ! empty($_SERVER["GATEWAY_INTERFACE"])) $ok=1; // We let working pages if not logged and inside a web browser (login form, to allow login by admin) |
|
197 | - elseif (isset($_POST["username"]) && $_POST["username"] == $conf->global->MAIN_ONLY_LOGIN_ALLOWED) $ok=1; // We let working pages that is a login submission (login submit, to allow login by admin) |
|
198 | - elseif (defined('NOREQUIREDB')) $ok=1; // We let working pages that don't need database access (xxx.css.php) |
|
199 | - elseif (defined('EVEN_IF_ONLY_LOGIN_ALLOWED')) $ok=1; // We let working pages that ask to work even if only login enabled (logout.php) |
|
200 | - elseif (session_id() && isset($_SESSION["dol_login"]) && $_SESSION["dol_login"] == $conf->global->MAIN_ONLY_LOGIN_ALLOWED) $ok=1; // We let working if user is allowed admin |
|
214 | + if ((! session_id() || ! isset($_SESSION["dol_login"])) && ! isset($_POST["username"]) && ! empty($_SERVER["GATEWAY_INTERFACE"])) { |
|
215 | + $ok=1; |
|
216 | + } |
|
217 | + // We let working pages if not logged and inside a web browser (login form, to allow login by admin) |
|
218 | + elseif (isset($_POST["username"]) && $_POST["username"] == $conf->global->MAIN_ONLY_LOGIN_ALLOWED) { |
|
219 | + $ok=1; |
|
220 | + } |
|
221 | + // We let working pages that is a login submission (login submit, to allow login by admin) |
|
222 | + elseif (defined('NOREQUIREDB')) { |
|
223 | + $ok=1; |
|
224 | + } |
|
225 | + // We let working pages that don't need database access (xxx.css.php) |
|
226 | + elseif (defined('EVEN_IF_ONLY_LOGIN_ALLOWED')) { |
|
227 | + $ok=1; |
|
228 | + } |
|
229 | + // We let working pages that ask to work even if only login enabled (logout.php) |
|
230 | + elseif (session_id() && isset($_SESSION["dol_login"]) && $_SESSION["dol_login"] == $conf->global->MAIN_ONLY_LOGIN_ALLOWED) { |
|
231 | + $ok=1; |
|
232 | + } |
|
233 | + // We let working if user is allowed admin |
|
201 | 234 | if (! $ok) |
202 | 235 | { |
203 | 236 | if (session_id() && isset($_SESSION["dol_login"]) && $_SESSION["dol_login"] != $conf->global->MAIN_ONLY_LOGIN_ALLOWED) |
@@ -206,8 +239,7 @@ discard block |
||
206 | 239 | print 'You are logged with user "'.$_SESSION["dol_login"].'" and only administrator user "'.$conf->global->MAIN_ONLY_LOGIN_ALLOWED.'" is allowed to connect for the moment.'."\n"; |
207 | 240 | $nexturl = BASE_URI . '?controller=user&method=logout'; |
208 | 241 | print 'Please try later or <a href="'.$nexturl.'">click here to disconnect and change login user</a>...'."\n"; |
209 | - } |
|
210 | - else |
|
242 | + } else |
|
211 | 243 | { |
212 | 244 | print 'Sorry, your application is offline. Only administrator user "'.$conf->global->MAIN_ONLY_LOGIN_ALLOWED.'" is allowed to connect for the moment.'."\n"; |
213 | 245 | $nexturl = BASE_URI . '/'; |
@@ -226,15 +258,19 @@ discard block |
||
226 | 258 | $mysoc->setMysoc($conf); |
227 | 259 | |
228 | 260 | // For some countries, we need to invert our address with customer address |
229 | - if ($mysoc->country_code == 'DE' && ! isset($conf->global->MAIN_INVERT_SENDER_RECIPIENT)) $conf->global->MAIN_INVERT_SENDER_RECIPIENT=1; |
|
230 | -} |
|
261 | + if ($mysoc->country_code == 'DE' && ! isset($conf->global->MAIN_INVERT_SENDER_RECIPIENT)) { |
|
262 | + $conf->global->MAIN_INVERT_SENDER_RECIPIENT=1; |
|
263 | + } |
|
264 | + } |
|
231 | 265 | |
232 | 266 | |
233 | 267 | // Set default language (must be after the setValues setting global $conf->global->MAIN_LANG_DEFAULT. Page main.inc.php will overwrite langs->defaultlang with user value later) |
234 | 268 | if (! defined('NOREQUIRETRAN')) |
235 | 269 | { |
236 | 270 | $langcode=(GETPOST('lang','aZ09')?GETPOST('lang','aZ09',1):(empty($conf->global->MAIN_LANG_DEFAULT)?'auto':$conf->global->MAIN_LANG_DEFAULT)); |
237 | - if (defined('MAIN_LANG_DEFAULT')) $langcode=constant('MAIN_LANG_DEFAULT'); |
|
271 | + if (defined('MAIN_LANG_DEFAULT')) { |
|
272 | + $langcode=constant('MAIN_LANG_DEFAULT'); |
|
273 | + } |
|
238 | 274 | $langs->setDefaultLang($langcode); |
239 | 275 | } |
240 | 276 | |
@@ -244,5 +280,7 @@ discard block |
||
244 | 280 | $hookmanager=new HookManager($db); |
245 | 281 | |
246 | 282 | |
247 | -if (! defined('MAIN_LABEL_MENTION_NPR') ) define('MAIN_LABEL_MENTION_NPR','NPR'); |
|
283 | +if (! defined('MAIN_LABEL_MENTION_NPR') ) { |
|
284 | + define('MAIN_LABEL_MENTION_NPR','NPR'); |
|
285 | +} |
|
248 | 286 |
@@ -34,88 +34,88 @@ discard block |
||
34 | 34 | */ |
35 | 35 | function product_prepare_head($object) |
36 | 36 | { |
37 | - global $db, $langs, $conf, $user; |
|
38 | - $langs->load("products"); |
|
37 | + global $db, $langs, $conf, $user; |
|
38 | + $langs->load("products"); |
|
39 | 39 | |
40 | - $h = 0; |
|
41 | - $head = array(); |
|
40 | + $h = 0; |
|
41 | + $head = array(); |
|
42 | 42 | |
43 | 43 | $head[$h][0] = BASE_URI . "?controller=product&method=card&id=" . $object->id; |
44 | - $head[$h][1] = $langs->trans("Card"); |
|
45 | - $head[$h][2] = 'card'; |
|
46 | - $h++; |
|
44 | + $head[$h][1] = $langs->trans("Card"); |
|
45 | + $head[$h][2] = 'card'; |
|
46 | + $h++; |
|
47 | 47 | |
48 | - if (! empty($object->status)) |
|
49 | - { |
|
48 | + if (! empty($object->status)) |
|
49 | + { |
|
50 | 50 | $head[$h][0] = BASE_URI . "?controller=product&method=price&id=" . $object->id; |
51 | - $head[$h][1] = $langs->trans("SellingPrices"); |
|
52 | - $head[$h][2] = 'price'; |
|
53 | - $h++; |
|
54 | - } |
|
55 | - |
|
56 | - if (! empty($object->status_buy) || (! empty($conf->margin->enabled) && ! empty($object->status))) // If margin is on and product on sell, we may need the cost price even if product os not on purchase |
|
57 | - { |
|
58 | - if ((! empty($conf->fournisseur->enabled) && $user->rights->fournisseur->lire) |
|
59 | - || (! empty($conf->margin->enabled) && $user->rights->margin->liretous) |
|
60 | - ) |
|
61 | - { |
|
51 | + $head[$h][1] = $langs->trans("SellingPrices"); |
|
52 | + $head[$h][2] = 'price'; |
|
53 | + $h++; |
|
54 | + } |
|
55 | + |
|
56 | + if (! empty($object->status_buy) || (! empty($conf->margin->enabled) && ! empty($object->status))) // If margin is on and product on sell, we may need the cost price even if product os not on purchase |
|
57 | + { |
|
58 | + if ((! empty($conf->fournisseur->enabled) && $user->rights->fournisseur->lire) |
|
59 | + || (! empty($conf->margin->enabled) && $user->rights->margin->liretous) |
|
60 | + ) |
|
61 | + { |
|
62 | 62 | $head[$h][0] = BASE_URI . "?controller=product&method=fournisseurs&id=" . $object->id; |
63 | - $head[$h][1] = $langs->trans("BuyingPrices"); |
|
64 | - $head[$h][2] = 'suppliers'; |
|
65 | - $h++; |
|
66 | - } |
|
67 | - } |
|
68 | - |
|
69 | - // Multilangs |
|
70 | - if (! empty($conf->global->MAIN_MULTILANGS)) |
|
71 | - { |
|
63 | + $head[$h][1] = $langs->trans("BuyingPrices"); |
|
64 | + $head[$h][2] = 'suppliers'; |
|
65 | + $h++; |
|
66 | + } |
|
67 | + } |
|
68 | + |
|
69 | + // Multilangs |
|
70 | + if (! empty($conf->global->MAIN_MULTILANGS)) |
|
71 | + { |
|
72 | 72 | $head[$h][0] = BASE_URI . "?controller=product&method=traduction&id=" . $object->id; |
73 | - $head[$h][1] = $langs->trans("Translation"); |
|
74 | - $head[$h][2] = 'translation'; |
|
75 | - $h++; |
|
76 | - } |
|
77 | - |
|
78 | - // Sub products |
|
79 | - if (! empty($conf->global->PRODUIT_SOUSPRODUITS)) |
|
80 | - { |
|
73 | + $head[$h][1] = $langs->trans("Translation"); |
|
74 | + $head[$h][2] = 'translation'; |
|
75 | + $h++; |
|
76 | + } |
|
77 | + |
|
78 | + // Sub products |
|
79 | + if (! empty($conf->global->PRODUIT_SOUSPRODUITS)) |
|
80 | + { |
|
81 | 81 | $head[$h][0] = BASE_URI . "?controller=product/composition&method=card&id=" . $object->id; |
82 | - $head[$h][1] = $langs->trans('AssociatedProducts'); |
|
82 | + $head[$h][1] = $langs->trans('AssociatedProducts'); |
|
83 | 83 | |
84 | - $nbFatherAndChild = $object->hasFatherOrChild(); |
|
85 | - if ($nbFatherAndChild > 0) $head[$h][1].= ' <span class="badge">'.$nbFatherAndChild.'</span>'; |
|
86 | - $head[$h][2] = 'subproduct'; |
|
87 | - $h++; |
|
88 | - } |
|
84 | + $nbFatherAndChild = $object->hasFatherOrChild(); |
|
85 | + if ($nbFatherAndChild > 0) $head[$h][1].= ' <span class="badge">'.$nbFatherAndChild.'</span>'; |
|
86 | + $head[$h][2] = 'subproduct'; |
|
87 | + $h++; |
|
88 | + } |
|
89 | 89 | |
90 | 90 | $head[$h][0] = BASE_URI . "?controller=product/stats&method=card&id=" . $object->id; |
91 | - $head[$h][1] = $langs->trans('Statistics'); |
|
92 | - $head[$h][2] = 'stats'; |
|
93 | - $h++; |
|
91 | + $head[$h][1] = $langs->trans('Statistics'); |
|
92 | + $head[$h][2] = 'stats'; |
|
93 | + $h++; |
|
94 | 94 | |
95 | 95 | $head[$h][0] = BASE_URI . "?controller=product/stats&method=facture&showmessage=1&id=" . $object->id; |
96 | - $head[$h][1] = $langs->trans('Referers'); |
|
97 | - $head[$h][2] = 'referers'; |
|
98 | - $h++; |
|
96 | + $head[$h][1] = $langs->trans('Referers'); |
|
97 | + $head[$h][2] = 'referers'; |
|
98 | + $h++; |
|
99 | 99 | |
100 | - if (!empty($conf->variants->enabled) && ($object->isProduct() || $object->isService())) { |
|
100 | + if (!empty($conf->variants->enabled) && ($object->isProduct() || $object->isService())) { |
|
101 | 101 | |
102 | - global $db; |
|
102 | + global $db; |
|
103 | 103 | |
104 | - require_once DOL_DOCUMENT_ROOT.'/variants/class/ProductCombination.class.php'; |
|
104 | + require_once DOL_DOCUMENT_ROOT.'/variants/class/ProductCombination.class.php'; |
|
105 | 105 | |
106 | - $prodcomb = new ProductCombination($db); |
|
106 | + $prodcomb = new ProductCombination($db); |
|
107 | 107 | |
108 | - if ($prodcomb->fetchByFkProductChild($object->id) == -1) |
|
109 | - { |
|
108 | + if ($prodcomb->fetchByFkProductChild($object->id) == -1) |
|
109 | + { |
|
110 | 110 | $head[$h][0] = BASE_URI . "?controller=variants&method=combinations&id=" . $object->id; |
111 | - $head[$h][1] = $langs->trans('ProductCombinations'); |
|
112 | - $head[$h][2] = 'combinations'; |
|
113 | - $nbVariant = $prodcomb->countNbOfCombinationForFkProductParent($object->id); |
|
111 | + $head[$h][1] = $langs->trans('ProductCombinations'); |
|
112 | + $head[$h][2] = 'combinations'; |
|
113 | + $nbVariant = $prodcomb->countNbOfCombinationForFkProductParent($object->id); |
|
114 | 114 | if ($nbVariant > 0) $head[$h][1].= ' <span class="badge">'.$nbVariant.'</span>'; |
115 | - } |
|
115 | + } |
|
116 | 116 | |
117 | - $h++; |
|
118 | - } |
|
117 | + $h++; |
|
118 | + } |
|
119 | 119 | |
120 | 120 | if ($object->isProduct() || ($object->isService() && ! empty($conf->global->STOCK_SUPPORTS_SERVICES))) // If physical product we can stock (or service with option) |
121 | 121 | { |
@@ -148,7 +148,7 @@ discard block |
||
148 | 148 | } |
149 | 149 | |
150 | 150 | // Attachments |
151 | - require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; |
|
151 | + require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; |
|
152 | 152 | require_once DOL_DOCUMENT_ROOT.'/core/class/link.class.php'; |
153 | 153 | if (! empty($conf->product->enabled) && ($object->type==Product::TYPE_PRODUCT)) $upload_dir = $conf->product->multidir_output[$object->entity].'/'.dol_sanitizeFileName($object->ref); |
154 | 154 | if (! empty($conf->service->enabled) && ($object->type==Product::TYPE_SERVICE)) $upload_dir = $conf->service->multidir_output[$object->entity].'/'.dol_sanitizeFileName($object->ref); |
@@ -160,10 +160,10 @@ discard block |
||
160 | 160 | } |
161 | 161 | $nbLinks=Link::count($db, $object->element, $object->id); |
162 | 162 | $head[$h][0] = BASE_URI . '?controller=product&method=document&id=' . $object->id; |
163 | - $head[$h][1] = $langs->trans('Documents'); |
|
164 | - if (($nbFiles+$nbLinks) > 0) $head[$h][1].= ' <span class="badge">'.($nbFiles+$nbLinks).'</span>'; |
|
165 | - $head[$h][2] = 'documents'; |
|
166 | - $h++; |
|
163 | + $head[$h][1] = $langs->trans('Documents'); |
|
164 | + if (($nbFiles+$nbLinks) > 0) $head[$h][1].= ' <span class="badge">'.($nbFiles+$nbLinks).'</span>'; |
|
165 | + $head[$h][2] = 'documents'; |
|
166 | + $h++; |
|
167 | 167 | |
168 | 168 | complete_head_from_modules($conf,$langs,$object,$head,$h,'product', 'remove'); |
169 | 169 | |
@@ -172,13 +172,13 @@ discard block |
||
172 | 172 | $head[$h][1] = $langs->trans("Events"); |
173 | 173 | if (! empty($conf->agenda->enabled) && (!empty($user->rights->agenda->myactions->read) || !empty($user->rights->agenda->allactions->read) )) |
174 | 174 | { |
175 | - $head[$h][1].= '/'; |
|
176 | - $head[$h][1].= $langs->trans("Agenda"); |
|
175 | + $head[$h][1].= '/'; |
|
176 | + $head[$h][1].= $langs->trans("Agenda"); |
|
177 | 177 | } |
178 | 178 | $head[$h][2] = 'agenda'; |
179 | 179 | $h++; |
180 | 180 | |
181 | - return $head; |
|
181 | + return $head; |
|
182 | 182 | } |
183 | 183 | |
184 | 184 | /** |
@@ -200,19 +200,19 @@ discard block |
||
200 | 200 | $head[$h][0] = BASE_URI . "?controller=product/stock&method=productlot_card&id=" . $object->id; |
201 | 201 | $head[$h][1] = $langs->trans("Card"); |
202 | 202 | $head[$h][2] = 'card'; |
203 | - $h++; |
|
203 | + $h++; |
|
204 | 204 | |
205 | - // Attachments |
|
206 | - require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; |
|
205 | + // Attachments |
|
206 | + require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; |
|
207 | 207 | require_once DOL_DOCUMENT_ROOT.'/core/class/link.class.php'; |
208 | 208 | $upload_dir = $conf->productbatch->multidir_output[$object->entity].'/'.dol_sanitizeFileName($object->ref); |
209 | 209 | $nbFiles = count(dol_dir_list($upload_dir,'files',0,'','(\.meta|_preview.*\.png)$')); |
210 | 210 | $nbLinks=Link::count($db, $object->element, $object->id); |
211 | 211 | $head[$h][0] = BASE_URI . "?controller=product/stock&method=productlot_document&id=" . $object->id; |
212 | - $head[$h][1] = $langs->trans("Documents"); |
|
213 | - if (($nbFiles+$nbLinks) > 0) $head[$h][1].= ' <span class="badge">'.($nbFiles+$nbLinks).'</span>'; |
|
212 | + $head[$h][1] = $langs->trans("Documents"); |
|
213 | + if (($nbFiles+$nbLinks) > 0) $head[$h][1].= ' <span class="badge">'.($nbFiles+$nbLinks).'</span>'; |
|
214 | 214 | $head[$h][2] = 'documents'; |
215 | - $h++; |
|
215 | + $h++; |
|
216 | 216 | |
217 | 217 | // Show more tabs from modules |
218 | 218 | // Entries must be declared in modules descriptor with line |
@@ -242,40 +242,40 @@ discard block |
||
242 | 242 | */ |
243 | 243 | function product_admin_prepare_head() |
244 | 244 | { |
245 | - global $langs, $conf, $user; |
|
245 | + global $langs, $conf, $user; |
|
246 | 246 | |
247 | - $h = 0; |
|
248 | - $head = array(); |
|
247 | + $h = 0; |
|
248 | + $head = array(); |
|
249 | 249 | |
250 | 250 | $head[$h][0] = BASE_URI . "?controller=product/admin&method=product"; |
251 | - $head[$h][1] = $langs->trans('Parameters'); |
|
252 | - $head[$h][2] = 'general'; |
|
253 | - $h++; |
|
251 | + $head[$h][1] = $langs->trans('Parameters'); |
|
252 | + $head[$h][2] = 'general'; |
|
253 | + $h++; |
|
254 | 254 | |
255 | - if (!empty($conf->global->PRODUIT_MULTIPRICES) && ! empty($conf->global->PRODUIT_MULTIPRICES_ALLOW_AUTOCALC_PRICELEVEL)) |
|
256 | - { |
|
257 | - $head[$h] = array( |
|
255 | + if (!empty($conf->global->PRODUIT_MULTIPRICES) && ! empty($conf->global->PRODUIT_MULTIPRICES_ALLOW_AUTOCALC_PRICELEVEL)) |
|
256 | + { |
|
257 | + $head[$h] = array( |
|
258 | 258 | 0 => BASE_URI . "?controller=product/admin&method=price_rules", |
259 | - 1 => $langs->trans('MultipriceRules'), |
|
260 | - 2 => 'generator' |
|
261 | - ); |
|
262 | - $h++; |
|
263 | - } |
|
264 | - |
|
265 | - // Show more tabs from modules |
|
266 | - // Entries must be declared in modules descriptor with line |
|
259 | + 1 => $langs->trans('MultipriceRules'), |
|
260 | + 2 => 'generator' |
|
261 | + ); |
|
262 | + $h++; |
|
263 | + } |
|
264 | + |
|
265 | + // Show more tabs from modules |
|
266 | + // Entries must be declared in modules descriptor with line |
|
267 | 267 | // $this->tabs = array('entity:+tabname:Title:@mymodule:/mymodule/mypage.php?id=__ID__'); to add new tab |
268 | 268 | // $this->tabs = array('entity:-tabname); to remove a tab |
269 | - complete_head_from_modules($conf,$langs,null,$head,$h,'product_admin'); |
|
269 | + complete_head_from_modules($conf,$langs,null,$head,$h,'product_admin'); |
|
270 | 270 | |
271 | 271 | $head[$h][0] = BASE_URI . '?controller=product/admin&method=product_extrafields'; |
272 | - $head[$h][1] = $langs->trans("ExtraFields"); |
|
273 | - $head[$h][2] = 'attributes'; |
|
274 | - $h++; |
|
272 | + $head[$h][1] = $langs->trans("ExtraFields"); |
|
273 | + $head[$h][2] = 'attributes'; |
|
274 | + $h++; |
|
275 | 275 | |
276 | - complete_head_from_modules($conf,$langs,null,$head,$h,'product_admin','remove'); |
|
276 | + complete_head_from_modules($conf,$langs,null,$head,$h,'product_admin','remove'); |
|
277 | 277 | |
278 | - return $head; |
|
278 | + return $head; |
|
279 | 279 | } |
280 | 280 | |
281 | 281 | |
@@ -319,146 +319,146 @@ discard block |
||
319 | 319 | */ |
320 | 320 | function show_stats_for_company($product,$socid) |
321 | 321 | { |
322 | - global $conf,$langs,$user,$db; |
|
323 | - |
|
324 | - $nblines = 0; |
|
325 | - |
|
326 | - print '<tr class="liste_titre">'; |
|
327 | - print '<td align="left" width="25%">'.$langs->trans("Referers").'</td>'; |
|
328 | - print '<td align="right" width="25%">'.$langs->trans("NbOfThirdParties").'</td>'; |
|
329 | - print '<td align="right" width="25%">'.$langs->trans("NbOfObjectReferers").'</td>'; |
|
330 | - print '<td align="right" width="25%">'.$langs->trans("TotalQuantity").'</td>'; |
|
331 | - print '</tr>'; |
|
332 | - |
|
333 | - // Customer proposals |
|
334 | - if (! empty($conf->propal->enabled) && $user->rights->propale->lire) |
|
335 | - { |
|
336 | - $nblines++; |
|
337 | - $ret=$product->load_stats_propale($socid); |
|
338 | - if ($ret < 0) dol_print_error($db); |
|
339 | - $langs->load("propal"); |
|
340 | - print '<tr><td>'; |
|
341 | - print '<a href="propal.php?id='.$product->id.'">'.img_object('','propal').' '.$langs->trans("Proposals").'</a>'; |
|
342 | - print '</td><td align="right">'; |
|
343 | - print $product->stats_propale['customers']; |
|
344 | - print '</td><td align="right">'; |
|
345 | - print $product->stats_propale['nb']; |
|
346 | - print '</td><td align="right">'; |
|
347 | - print $product->stats_propale['qty']; |
|
348 | - print '</td>'; |
|
349 | - print '</tr>'; |
|
350 | - } |
|
351 | - // Supplier proposals |
|
352 | - if (! empty($conf->supplier_proposal->enabled) && $user->rights->supplier_proposal->lire) |
|
353 | - { |
|
354 | - $nblines++; |
|
355 | - $ret=$product->load_stats_proposal_supplier($socid); |
|
356 | - if ($ret < 0) dol_print_error($db); |
|
357 | - $langs->load("propal"); |
|
358 | - print '<tr><td>'; |
|
359 | - print '<a href="supplier_proposal.php?id='.$product->id.'">'.img_object('','propal').' '.$langs->trans("SupplierProposals").'</a>'; |
|
360 | - print '</td><td align="right">'; |
|
361 | - print $product->stats_proposal_supplier['suppliers']; |
|
362 | - print '</td><td align="right">'; |
|
363 | - print $product->stats_proposal_supplier['nb']; |
|
364 | - print '</td><td align="right">'; |
|
365 | - print $product->stats_proposal_supplier['qty']; |
|
366 | - print '</td>'; |
|
367 | - print '</tr>'; |
|
368 | - } |
|
369 | - // Customer orders |
|
370 | - if (! empty($conf->commande->enabled) && $user->rights->commande->lire) |
|
371 | - { |
|
372 | - $nblines++; |
|
373 | - $ret=$product->load_stats_commande($socid); |
|
374 | - if ($ret < 0) dol_print_error($db); |
|
375 | - $langs->load("orders"); |
|
376 | - print '<tr><td>'; |
|
377 | - print '<a href="commande.php?id='.$product->id.'">'.img_object('','order').' '.$langs->trans("CustomersOrders").'</a>'; |
|
378 | - print '</td><td align="right">'; |
|
379 | - print $product->stats_commande['customers']; |
|
380 | - print '</td><td align="right">'; |
|
381 | - print $product->stats_commande['nb']; |
|
382 | - print '</td><td align="right">'; |
|
383 | - print $product->stats_commande['qty']; |
|
384 | - print '</td>'; |
|
385 | - print '</tr>'; |
|
386 | - } |
|
387 | - // Supplier orders |
|
388 | - if (! empty($conf->fournisseur->enabled) && $user->rights->fournisseur->commande->lire) |
|
389 | - { |
|
390 | - $nblines++; |
|
391 | - $ret=$product->load_stats_commande_fournisseur($socid); |
|
392 | - if ($ret < 0) dol_print_error($db); |
|
393 | - $langs->load("orders"); |
|
394 | - print '<tr><td>'; |
|
395 | - print '<a href="commande_fournisseur.php?id='.$product->id.'">'.img_object('','order').' '.$langs->trans("SuppliersOrders").'</a>'; |
|
396 | - print '</td><td align="right">'; |
|
397 | - print $product->stats_commande_fournisseur['suppliers']; |
|
398 | - print '</td><td align="right">'; |
|
399 | - print $product->stats_commande_fournisseur['nb']; |
|
400 | - print '</td><td align="right">'; |
|
401 | - print $product->stats_commande_fournisseur['qty']; |
|
402 | - print '</td>'; |
|
403 | - print '</tr>'; |
|
404 | - } |
|
405 | - // Customer invoices |
|
406 | - if (! empty($conf->facture->enabled) && $user->rights->facture->lire) |
|
407 | - { |
|
408 | - $nblines++; |
|
409 | - $ret=$product->load_stats_facture($socid); |
|
410 | - if ($ret < 0) dol_print_error($db); |
|
411 | - $langs->load("bills"); |
|
412 | - print '<tr><td>'; |
|
413 | - print '<a href="facture.php?id='.$product->id.'">'.img_object('','bill').' '.$langs->trans("CustomersInvoices").'</a>'; |
|
414 | - print '</td><td align="right">'; |
|
415 | - print $product->stats_facture['customers']; |
|
416 | - print '</td><td align="right">'; |
|
417 | - print $product->stats_facture['nb']; |
|
418 | - print '</td><td align="right">'; |
|
419 | - print $product->stats_facture['qty']; |
|
420 | - print '</td>'; |
|
421 | - print '</tr>'; |
|
422 | - } |
|
423 | - // Supplier invoices |
|
424 | - if (! empty($conf->fournisseur->enabled) && $user->rights->fournisseur->facture->lire) |
|
425 | - { |
|
426 | - $nblines++; |
|
427 | - $ret=$product->load_stats_facture_fournisseur($socid); |
|
428 | - if ($ret < 0) dol_print_error($db); |
|
429 | - $langs->load("bills"); |
|
430 | - print '<tr><td>'; |
|
431 | - print '<a href="facture_fournisseur.php?id='.$product->id.'">'.img_object('','bill').' '.$langs->trans("SuppliersInvoices").'</a>'; |
|
432 | - print '</td><td align="right">'; |
|
433 | - print $product->stats_facture_fournisseur['suppliers']; |
|
434 | - print '</td><td align="right">'; |
|
435 | - print $product->stats_facture_fournisseur['nb']; |
|
436 | - print '</td><td align="right">'; |
|
437 | - print $product->stats_facture_fournisseur['qty']; |
|
438 | - print '</td>'; |
|
439 | - print '</tr>'; |
|
440 | - } |
|
441 | - |
|
442 | - // Contracts |
|
443 | - if (! empty($conf->contrat->enabled) && $user->rights->contrat->lire) |
|
444 | - { |
|
445 | - $nblines++; |
|
446 | - $ret=$product->load_stats_contrat($socid); |
|
447 | - if ($ret < 0) dol_print_error($db); |
|
448 | - $langs->load("contracts"); |
|
449 | - print '<tr><td>'; |
|
450 | - print '<a href="contrat.php?id='.$product->id.'">'.img_object('','contract').' '.$langs->trans("Contracts").'</a>'; |
|
451 | - print '</td><td align="right">'; |
|
452 | - print $product->stats_contrat['customers']; |
|
453 | - print '</td><td align="right">'; |
|
454 | - print $product->stats_contrat['nb']; |
|
455 | - print '</td><td align="right">'; |
|
456 | - print $product->stats_contrat['qty']; |
|
457 | - print '</td>'; |
|
458 | - print '</tr>'; |
|
459 | - } |
|
460 | - |
|
461 | - return $nblines++; |
|
322 | + global $conf,$langs,$user,$db; |
|
323 | + |
|
324 | + $nblines = 0; |
|
325 | + |
|
326 | + print '<tr class="liste_titre">'; |
|
327 | + print '<td align="left" width="25%">'.$langs->trans("Referers").'</td>'; |
|
328 | + print '<td align="right" width="25%">'.$langs->trans("NbOfThirdParties").'</td>'; |
|
329 | + print '<td align="right" width="25%">'.$langs->trans("NbOfObjectReferers").'</td>'; |
|
330 | + print '<td align="right" width="25%">'.$langs->trans("TotalQuantity").'</td>'; |
|
331 | + print '</tr>'; |
|
332 | + |
|
333 | + // Customer proposals |
|
334 | + if (! empty($conf->propal->enabled) && $user->rights->propale->lire) |
|
335 | + { |
|
336 | + $nblines++; |
|
337 | + $ret=$product->load_stats_propale($socid); |
|
338 | + if ($ret < 0) dol_print_error($db); |
|
339 | + $langs->load("propal"); |
|
340 | + print '<tr><td>'; |
|
341 | + print '<a href="propal.php?id='.$product->id.'">'.img_object('','propal').' '.$langs->trans("Proposals").'</a>'; |
|
342 | + print '</td><td align="right">'; |
|
343 | + print $product->stats_propale['customers']; |
|
344 | + print '</td><td align="right">'; |
|
345 | + print $product->stats_propale['nb']; |
|
346 | + print '</td><td align="right">'; |
|
347 | + print $product->stats_propale['qty']; |
|
348 | + print '</td>'; |
|
349 | + print '</tr>'; |
|
350 | + } |
|
351 | + // Supplier proposals |
|
352 | + if (! empty($conf->supplier_proposal->enabled) && $user->rights->supplier_proposal->lire) |
|
353 | + { |
|
354 | + $nblines++; |
|
355 | + $ret=$product->load_stats_proposal_supplier($socid); |
|
356 | + if ($ret < 0) dol_print_error($db); |
|
357 | + $langs->load("propal"); |
|
358 | + print '<tr><td>'; |
|
359 | + print '<a href="supplier_proposal.php?id='.$product->id.'">'.img_object('','propal').' '.$langs->trans("SupplierProposals").'</a>'; |
|
360 | + print '</td><td align="right">'; |
|
361 | + print $product->stats_proposal_supplier['suppliers']; |
|
362 | + print '</td><td align="right">'; |
|
363 | + print $product->stats_proposal_supplier['nb']; |
|
364 | + print '</td><td align="right">'; |
|
365 | + print $product->stats_proposal_supplier['qty']; |
|
366 | + print '</td>'; |
|
367 | + print '</tr>'; |
|
368 | + } |
|
369 | + // Customer orders |
|
370 | + if (! empty($conf->commande->enabled) && $user->rights->commande->lire) |
|
371 | + { |
|
372 | + $nblines++; |
|
373 | + $ret=$product->load_stats_commande($socid); |
|
374 | + if ($ret < 0) dol_print_error($db); |
|
375 | + $langs->load("orders"); |
|
376 | + print '<tr><td>'; |
|
377 | + print '<a href="commande.php?id='.$product->id.'">'.img_object('','order').' '.$langs->trans("CustomersOrders").'</a>'; |
|
378 | + print '</td><td align="right">'; |
|
379 | + print $product->stats_commande['customers']; |
|
380 | + print '</td><td align="right">'; |
|
381 | + print $product->stats_commande['nb']; |
|
382 | + print '</td><td align="right">'; |
|
383 | + print $product->stats_commande['qty']; |
|
384 | + print '</td>'; |
|
385 | + print '</tr>'; |
|
386 | + } |
|
387 | + // Supplier orders |
|
388 | + if (! empty($conf->fournisseur->enabled) && $user->rights->fournisseur->commande->lire) |
|
389 | + { |
|
390 | + $nblines++; |
|
391 | + $ret=$product->load_stats_commande_fournisseur($socid); |
|
392 | + if ($ret < 0) dol_print_error($db); |
|
393 | + $langs->load("orders"); |
|
394 | + print '<tr><td>'; |
|
395 | + print '<a href="commande_fournisseur.php?id='.$product->id.'">'.img_object('','order').' '.$langs->trans("SuppliersOrders").'</a>'; |
|
396 | + print '</td><td align="right">'; |
|
397 | + print $product->stats_commande_fournisseur['suppliers']; |
|
398 | + print '</td><td align="right">'; |
|
399 | + print $product->stats_commande_fournisseur['nb']; |
|
400 | + print '</td><td align="right">'; |
|
401 | + print $product->stats_commande_fournisseur['qty']; |
|
402 | + print '</td>'; |
|
403 | + print '</tr>'; |
|
404 | + } |
|
405 | + // Customer invoices |
|
406 | + if (! empty($conf->facture->enabled) && $user->rights->facture->lire) |
|
407 | + { |
|
408 | + $nblines++; |
|
409 | + $ret=$product->load_stats_facture($socid); |
|
410 | + if ($ret < 0) dol_print_error($db); |
|
411 | + $langs->load("bills"); |
|
412 | + print '<tr><td>'; |
|
413 | + print '<a href="facture.php?id='.$product->id.'">'.img_object('','bill').' '.$langs->trans("CustomersInvoices").'</a>'; |
|
414 | + print '</td><td align="right">'; |
|
415 | + print $product->stats_facture['customers']; |
|
416 | + print '</td><td align="right">'; |
|
417 | + print $product->stats_facture['nb']; |
|
418 | + print '</td><td align="right">'; |
|
419 | + print $product->stats_facture['qty']; |
|
420 | + print '</td>'; |
|
421 | + print '</tr>'; |
|
422 | + } |
|
423 | + // Supplier invoices |
|
424 | + if (! empty($conf->fournisseur->enabled) && $user->rights->fournisseur->facture->lire) |
|
425 | + { |
|
426 | + $nblines++; |
|
427 | + $ret=$product->load_stats_facture_fournisseur($socid); |
|
428 | + if ($ret < 0) dol_print_error($db); |
|
429 | + $langs->load("bills"); |
|
430 | + print '<tr><td>'; |
|
431 | + print '<a href="facture_fournisseur.php?id='.$product->id.'">'.img_object('','bill').' '.$langs->trans("SuppliersInvoices").'</a>'; |
|
432 | + print '</td><td align="right">'; |
|
433 | + print $product->stats_facture_fournisseur['suppliers']; |
|
434 | + print '</td><td align="right">'; |
|
435 | + print $product->stats_facture_fournisseur['nb']; |
|
436 | + print '</td><td align="right">'; |
|
437 | + print $product->stats_facture_fournisseur['qty']; |
|
438 | + print '</td>'; |
|
439 | + print '</tr>'; |
|
440 | + } |
|
441 | + |
|
442 | + // Contracts |
|
443 | + if (! empty($conf->contrat->enabled) && $user->rights->contrat->lire) |
|
444 | + { |
|
445 | + $nblines++; |
|
446 | + $ret=$product->load_stats_contrat($socid); |
|
447 | + if ($ret < 0) dol_print_error($db); |
|
448 | + $langs->load("contracts"); |
|
449 | + print '<tr><td>'; |
|
450 | + print '<a href="contrat.php?id='.$product->id.'">'.img_object('','contract').' '.$langs->trans("Contracts").'</a>'; |
|
451 | + print '</td><td align="right">'; |
|
452 | + print $product->stats_contrat['customers']; |
|
453 | + print '</td><td align="right">'; |
|
454 | + print $product->stats_contrat['nb']; |
|
455 | + print '</td><td align="right">'; |
|
456 | + print $product->stats_contrat['qty']; |
|
457 | + print '</td>'; |
|
458 | + print '</tr>'; |
|
459 | + } |
|
460 | + |
|
461 | + return $nblines++; |
|
462 | 462 | } |
463 | 463 | |
464 | 464 | |
@@ -472,50 +472,50 @@ discard block |
||
472 | 472 | */ |
473 | 473 | function measuring_units_string($unit,$measuring_style='') |
474 | 474 | { |
475 | - global $langs; |
|
476 | - |
|
477 | - $measuring_units=array(); |
|
478 | - if ($measuring_style == 'weight') |
|
479 | - { |
|
480 | - $measuring_units[3] = $langs->transnoentitiesnoconv("WeightUnitton"); |
|
481 | - $measuring_units[0] = $langs->transnoentitiesnoconv("WeightUnitkg"); |
|
482 | - $measuring_units[-3] = $langs->transnoentitiesnoconv("WeightUnitg"); |
|
483 | - $measuring_units[-6] = $langs->transnoentitiesnoconv("WeightUnitmg"); |
|
484 | - $measuring_units[98] = $langs->transnoentitiesnoconv("WeightUnitounce"); |
|
485 | - $measuring_units[99] = $langs->transnoentitiesnoconv("WeightUnitpound"); |
|
486 | - } |
|
487 | - else if ($measuring_style == 'size') |
|
488 | - { |
|
489 | - $measuring_units[0] = $langs->transnoentitiesnoconv("SizeUnitm"); |
|
490 | - $measuring_units[-1] = $langs->transnoentitiesnoconv("SizeUnitdm"); |
|
491 | - $measuring_units[-2] = $langs->transnoentitiesnoconv("SizeUnitcm"); |
|
492 | - $measuring_units[-3] = $langs->transnoentitiesnoconv("SizeUnitmm"); |
|
475 | + global $langs; |
|
476 | + |
|
477 | + $measuring_units=array(); |
|
478 | + if ($measuring_style == 'weight') |
|
479 | + { |
|
480 | + $measuring_units[3] = $langs->transnoentitiesnoconv("WeightUnitton"); |
|
481 | + $measuring_units[0] = $langs->transnoentitiesnoconv("WeightUnitkg"); |
|
482 | + $measuring_units[-3] = $langs->transnoentitiesnoconv("WeightUnitg"); |
|
483 | + $measuring_units[-6] = $langs->transnoentitiesnoconv("WeightUnitmg"); |
|
484 | + $measuring_units[98] = $langs->transnoentitiesnoconv("WeightUnitounce"); |
|
485 | + $measuring_units[99] = $langs->transnoentitiesnoconv("WeightUnitpound"); |
|
486 | + } |
|
487 | + else if ($measuring_style == 'size') |
|
488 | + { |
|
489 | + $measuring_units[0] = $langs->transnoentitiesnoconv("SizeUnitm"); |
|
490 | + $measuring_units[-1] = $langs->transnoentitiesnoconv("SizeUnitdm"); |
|
491 | + $measuring_units[-2] = $langs->transnoentitiesnoconv("SizeUnitcm"); |
|
492 | + $measuring_units[-3] = $langs->transnoentitiesnoconv("SizeUnitmm"); |
|
493 | 493 | $measuring_units[98] = $langs->transnoentitiesnoconv("SizeUnitfoot"); |
494 | - $measuring_units[99] = $langs->transnoentitiesnoconv("SizeUnitinch"); |
|
495 | - } |
|
496 | - else if ($measuring_style == 'surface') |
|
497 | - { |
|
498 | - $measuring_units[0] = $langs->transnoentitiesnoconv("SurfaceUnitm2"); |
|
499 | - $measuring_units[-2] = $langs->transnoentitiesnoconv("SurfaceUnitdm2"); |
|
500 | - $measuring_units[-4] = $langs->transnoentitiesnoconv("SurfaceUnitcm2"); |
|
501 | - $measuring_units[-6] = $langs->transnoentitiesnoconv("SurfaceUnitmm2"); |
|
494 | + $measuring_units[99] = $langs->transnoentitiesnoconv("SizeUnitinch"); |
|
495 | + } |
|
496 | + else if ($measuring_style == 'surface') |
|
497 | + { |
|
498 | + $measuring_units[0] = $langs->transnoentitiesnoconv("SurfaceUnitm2"); |
|
499 | + $measuring_units[-2] = $langs->transnoentitiesnoconv("SurfaceUnitdm2"); |
|
500 | + $measuring_units[-4] = $langs->transnoentitiesnoconv("SurfaceUnitcm2"); |
|
501 | + $measuring_units[-6] = $langs->transnoentitiesnoconv("SurfaceUnitmm2"); |
|
502 | 502 | $measuring_units[98] = $langs->transnoentitiesnoconv("SurfaceUnitfoot2"); |
503 | - $measuring_units[99] = $langs->transnoentitiesnoconv("SurfaceUnitinch2"); |
|
504 | - } |
|
505 | - else if ($measuring_style == 'volume') |
|
506 | - { |
|
507 | - $measuring_units[0] = $langs->transnoentitiesnoconv("VolumeUnitm3"); |
|
508 | - $measuring_units[-3] = $langs->transnoentitiesnoconv("VolumeUnitdm3"); |
|
509 | - $measuring_units[-6] = $langs->transnoentitiesnoconv("VolumeUnitcm3"); |
|
510 | - $measuring_units[-9] = $langs->transnoentitiesnoconv("VolumeUnitmm3"); |
|
503 | + $measuring_units[99] = $langs->transnoentitiesnoconv("SurfaceUnitinch2"); |
|
504 | + } |
|
505 | + else if ($measuring_style == 'volume') |
|
506 | + { |
|
507 | + $measuring_units[0] = $langs->transnoentitiesnoconv("VolumeUnitm3"); |
|
508 | + $measuring_units[-3] = $langs->transnoentitiesnoconv("VolumeUnitdm3"); |
|
509 | + $measuring_units[-6] = $langs->transnoentitiesnoconv("VolumeUnitcm3"); |
|
510 | + $measuring_units[-9] = $langs->transnoentitiesnoconv("VolumeUnitmm3"); |
|
511 | 511 | $measuring_units[88] = $langs->transnoentitiesnoconv("VolumeUnitfoot3"); |
512 | 512 | $measuring_units[89] = $langs->transnoentitiesnoconv("VolumeUnitinch3"); |
513 | - $measuring_units[97] = $langs->transnoentitiesnoconv("VolumeUnitounce"); |
|
514 | - $measuring_units[98] = $langs->transnoentitiesnoconv("VolumeUnitlitre"); |
|
513 | + $measuring_units[97] = $langs->transnoentitiesnoconv("VolumeUnitounce"); |
|
514 | + $measuring_units[98] = $langs->transnoentitiesnoconv("VolumeUnitlitre"); |
|
515 | 515 | $measuring_units[99] = $langs->transnoentitiesnoconv("VolumeUnitgallon"); |
516 | - } |
|
516 | + } |
|
517 | 517 | |
518 | - return $measuring_units[$unit]; |
|
518 | + return $measuring_units[$unit]; |
|
519 | 519 | } |
520 | 520 | |
521 | 521 | /** |
@@ -527,14 +527,14 @@ discard block |
||
527 | 527 | */ |
528 | 528 | function measuring_units_squared($unit) |
529 | 529 | { |
530 | - $measuring_units=array(); |
|
531 | - $measuring_units[0] = 0; // m -> m3 |
|
532 | - $measuring_units[-1] = -2; // dm-> dm2 |
|
533 | - $measuring_units[-2] = -4; // cm -> cm2 |
|
534 | - $measuring_units[-3] = -6; // mm -> mm2 |
|
535 | - $measuring_units[98] = 98; // foot -> foot2 |
|
536 | - $measuring_units[99] = 99; // inch -> inch2 |
|
537 | - return $measuring_units[$unit]; |
|
530 | + $measuring_units=array(); |
|
531 | + $measuring_units[0] = 0; // m -> m3 |
|
532 | + $measuring_units[-1] = -2; // dm-> dm2 |
|
533 | + $measuring_units[-2] = -4; // cm -> cm2 |
|
534 | + $measuring_units[-3] = -6; // mm -> mm2 |
|
535 | + $measuring_units[98] = 98; // foot -> foot2 |
|
536 | + $measuring_units[99] = 99; // inch -> inch2 |
|
537 | + return $measuring_units[$unit]; |
|
538 | 538 | } |
539 | 539 | |
540 | 540 | |
@@ -547,12 +547,12 @@ discard block |
||
547 | 547 | */ |
548 | 548 | function measuring_units_cubed($unit) |
549 | 549 | { |
550 | - $measuring_units=array(); |
|
551 | - $measuring_units[0] = 0; // m -> m2 |
|
552 | - $measuring_units[-1] = -3; // dm-> dm3 |
|
553 | - $measuring_units[-2] = -6; // cm -> cm3 |
|
554 | - $measuring_units[-3] = -9; // mm -> mm3 |
|
555 | - $measuring_units[98] = 88; // foot -> foot3 |
|
556 | - $measuring_units[99] = 89; // inch -> inch3 |
|
557 | - return $measuring_units[$unit]; |
|
550 | + $measuring_units=array(); |
|
551 | + $measuring_units[0] = 0; // m -> m2 |
|
552 | + $measuring_units[-1] = -3; // dm-> dm3 |
|
553 | + $measuring_units[-2] = -6; // cm -> cm3 |
|
554 | + $measuring_units[-3] = -9; // mm -> mm3 |
|
555 | + $measuring_units[98] = 88; // foot -> foot3 |
|
556 | + $measuring_units[99] = 89; // inch -> inch3 |
|
557 | + return $measuring_units[$unit]; |
|
558 | 558 | } |
@@ -53,13 +53,15 @@ discard block |
||
53 | 53 | $h++; |
54 | 54 | } |
55 | 55 | |
56 | - if (! empty($object->status_buy) || (! empty($conf->margin->enabled) && ! empty($object->status))) // If margin is on and product on sell, we may need the cost price even if product os not on purchase |
|
56 | + if (! empty($object->status_buy) || (! empty($conf->margin->enabled) && ! empty($object->status))) { |
|
57 | + // If margin is on and product on sell, we may need the cost price even if product os not on purchase |
|
57 | 58 | { |
58 | 59 | if ((! empty($conf->fournisseur->enabled) && $user->rights->fournisseur->lire) |
59 | 60 | || (! empty($conf->margin->enabled) && $user->rights->margin->liretous) |
60 | 61 | ) |
61 | 62 | { |
62 | 63 | $head[$h][0] = BASE_URI . "?controller=product&method=fournisseurs&id=" . $object->id; |
64 | + } |
|
63 | 65 | $head[$h][1] = $langs->trans("BuyingPrices"); |
64 | 66 | $head[$h][2] = 'suppliers'; |
65 | 67 | $h++; |
@@ -82,7 +84,9 @@ discard block |
||
82 | 84 | $head[$h][1] = $langs->trans('AssociatedProducts'); |
83 | 85 | |
84 | 86 | $nbFatherAndChild = $object->hasFatherOrChild(); |
85 | - if ($nbFatherAndChild > 0) $head[$h][1].= ' <span class="badge">'.$nbFatherAndChild.'</span>'; |
|
87 | + if ($nbFatherAndChild > 0) { |
|
88 | + $head[$h][1].= ' <span class="badge">'.$nbFatherAndChild.'</span>'; |
|
89 | + } |
|
86 | 90 | $head[$h][2] = 'subproduct'; |
87 | 91 | $h++; |
88 | 92 | } |
@@ -111,17 +115,21 @@ discard block |
||
111 | 115 | $head[$h][1] = $langs->trans('ProductCombinations'); |
112 | 116 | $head[$h][2] = 'combinations'; |
113 | 117 | $nbVariant = $prodcomb->countNbOfCombinationForFkProductParent($object->id); |
114 | - if ($nbVariant > 0) $head[$h][1].= ' <span class="badge">'.$nbVariant.'</span>'; |
|
118 | + if ($nbVariant > 0) { |
|
119 | + $head[$h][1].= ' <span class="badge">'.$nbVariant.'</span>'; |
|
120 | + } |
|
115 | 121 | } |
116 | 122 | |
117 | 123 | $h++; |
118 | 124 | } |
119 | 125 | |
120 | - if ($object->isProduct() || ($object->isService() && ! empty($conf->global->STOCK_SUPPORTS_SERVICES))) // If physical product we can stock (or service with option) |
|
126 | + if ($object->isProduct() || ($object->isService() && ! empty($conf->global->STOCK_SUPPORTS_SERVICES))) { |
|
127 | + // If physical product we can stock (or service with option) |
|
121 | 128 | { |
122 | 129 | if (! empty($conf->stock->enabled) && $user->rights->stock->lire) |
123 | 130 | { |
124 | 131 | $head[$h][0] = BASE_URI . "?controller=product/stock&method=product&id=" . $object->id; |
132 | + } |
|
125 | 133 | $head[$h][1] = $langs->trans("Stock"); |
126 | 134 | $head[$h][2] = 'stock'; |
127 | 135 | $h++; |
@@ -138,11 +146,17 @@ discard block |
||
138 | 146 | if (empty($conf->global->MAIN_DISABLE_NOTES_TAB)) |
139 | 147 | { |
140 | 148 | $nbNote = 0; |
141 | - if(!empty($object->note_private)) $nbNote++; |
|
142 | - if(!empty($object->note_public)) $nbNote++; |
|
149 | + if(!empty($object->note_private)) { |
|
150 | + $nbNote++; |
|
151 | + } |
|
152 | + if(!empty($object->note_public)) { |
|
153 | + $nbNote++; |
|
154 | + } |
|
143 | 155 | $head[$h][0] = BASE_URI . '?controller=product&method=note&id=' . $object->id; |
144 | 156 | $head[$h][1] = $langs->trans('Notes'); |
145 | - if ($nbNote > 0) $head[$h][1].= ' <span class="badge">'.$nbNote.'</span>'; |
|
157 | + if ($nbNote > 0) { |
|
158 | + $head[$h][1].= ' <span class="badge">'.$nbNote.'</span>'; |
|
159 | + } |
|
146 | 160 | $head[$h][2] = 'note'; |
147 | 161 | $h++; |
148 | 162 | } |
@@ -150,18 +164,28 @@ discard block |
||
150 | 164 | // Attachments |
151 | 165 | require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; |
152 | 166 | require_once DOL_DOCUMENT_ROOT.'/core/class/link.class.php'; |
153 | - if (! empty($conf->product->enabled) && ($object->type==Product::TYPE_PRODUCT)) $upload_dir = $conf->product->multidir_output[$object->entity].'/'.dol_sanitizeFileName($object->ref); |
|
154 | - if (! empty($conf->service->enabled) && ($object->type==Product::TYPE_SERVICE)) $upload_dir = $conf->service->multidir_output[$object->entity].'/'.dol_sanitizeFileName($object->ref); |
|
167 | + if (! empty($conf->product->enabled) && ($object->type==Product::TYPE_PRODUCT)) { |
|
168 | + $upload_dir = $conf->product->multidir_output[$object->entity].'/'.dol_sanitizeFileName($object->ref); |
|
169 | + } |
|
170 | + if (! empty($conf->service->enabled) && ($object->type==Product::TYPE_SERVICE)) { |
|
171 | + $upload_dir = $conf->service->multidir_output[$object->entity].'/'.dol_sanitizeFileName($object->ref); |
|
172 | + } |
|
155 | 173 | $nbFiles = count(dol_dir_list($upload_dir,'files',0,'','(\.meta|_preview.*\.png)$')); |
156 | 174 | if (! empty($conf->global->PRODUCT_USE_OLD_PATH_FOR_PHOTO)) { |
157 | - if (! empty($conf->product->enabled) && ($object->type==Product::TYPE_PRODUCT)) $upload_dir = $conf->produit->multidir_output[$object->entity].'/'.get_exdir($object->id,2,0,0,$object,'product').$object->id.'/photos'; |
|
158 | - if (! empty($conf->service->enabled) && ($object->type==Product::TYPE_SERVICE)) $upload_dir = $conf->service->multidir_output[$object->entity].'/'.get_exdir($object->id,2,0,0,$object,'product').$object->id.'/photos'; |
|
175 | + if (! empty($conf->product->enabled) && ($object->type==Product::TYPE_PRODUCT)) { |
|
176 | + $upload_dir = $conf->produit->multidir_output[$object->entity].'/'.get_exdir($object->id,2,0,0,$object,'product').$object->id.'/photos'; |
|
177 | + } |
|
178 | + if (! empty($conf->service->enabled) && ($object->type==Product::TYPE_SERVICE)) { |
|
179 | + $upload_dir = $conf->service->multidir_output[$object->entity].'/'.get_exdir($object->id,2,0,0,$object,'product').$object->id.'/photos'; |
|
180 | + } |
|
159 | 181 | $nbFiles += count(dol_dir_list($upload_dir,'files',0,'','(\.meta|_preview.*\.png)$')); |
160 | 182 | } |
161 | 183 | $nbLinks=Link::count($db, $object->element, $object->id); |
162 | 184 | $head[$h][0] = BASE_URI . '?controller=product&method=document&id=' . $object->id; |
163 | 185 | $head[$h][1] = $langs->trans('Documents'); |
164 | - if (($nbFiles+$nbLinks) > 0) $head[$h][1].= ' <span class="badge">'.($nbFiles+$nbLinks).'</span>'; |
|
186 | + if (($nbFiles+$nbLinks) > 0) { |
|
187 | + $head[$h][1].= ' <span class="badge">'.($nbFiles+$nbLinks).'</span>'; |
|
188 | + } |
|
165 | 189 | $head[$h][2] = 'documents'; |
166 | 190 | $h++; |
167 | 191 | |
@@ -210,7 +234,9 @@ discard block |
||
210 | 234 | $nbLinks=Link::count($db, $object->element, $object->id); |
211 | 235 | $head[$h][0] = BASE_URI . "?controller=product/stock&method=productlot_document&id=" . $object->id; |
212 | 236 | $head[$h][1] = $langs->trans("Documents"); |
213 | - if (($nbFiles+$nbLinks) > 0) $head[$h][1].= ' <span class="badge">'.($nbFiles+$nbLinks).'</span>'; |
|
237 | + if (($nbFiles+$nbLinks) > 0) { |
|
238 | + $head[$h][1].= ' <span class="badge">'.($nbFiles+$nbLinks).'</span>'; |
|
239 | + } |
|
214 | 240 | $head[$h][2] = 'documents'; |
215 | 241 | $h++; |
216 | 242 | |
@@ -335,7 +361,9 @@ discard block |
||
335 | 361 | { |
336 | 362 | $nblines++; |
337 | 363 | $ret=$product->load_stats_propale($socid); |
338 | - if ($ret < 0) dol_print_error($db); |
|
364 | + if ($ret < 0) { |
|
365 | + dol_print_error($db); |
|
366 | + } |
|
339 | 367 | $langs->load("propal"); |
340 | 368 | print '<tr><td>'; |
341 | 369 | print '<a href="propal.php?id='.$product->id.'">'.img_object('','propal').' '.$langs->trans("Proposals").'</a>'; |
@@ -353,7 +381,9 @@ discard block |
||
353 | 381 | { |
354 | 382 | $nblines++; |
355 | 383 | $ret=$product->load_stats_proposal_supplier($socid); |
356 | - if ($ret < 0) dol_print_error($db); |
|
384 | + if ($ret < 0) { |
|
385 | + dol_print_error($db); |
|
386 | + } |
|
357 | 387 | $langs->load("propal"); |
358 | 388 | print '<tr><td>'; |
359 | 389 | print '<a href="supplier_proposal.php?id='.$product->id.'">'.img_object('','propal').' '.$langs->trans("SupplierProposals").'</a>'; |
@@ -371,7 +401,9 @@ discard block |
||
371 | 401 | { |
372 | 402 | $nblines++; |
373 | 403 | $ret=$product->load_stats_commande($socid); |
374 | - if ($ret < 0) dol_print_error($db); |
|
404 | + if ($ret < 0) { |
|
405 | + dol_print_error($db); |
|
406 | + } |
|
375 | 407 | $langs->load("orders"); |
376 | 408 | print '<tr><td>'; |
377 | 409 | print '<a href="commande.php?id='.$product->id.'">'.img_object('','order').' '.$langs->trans("CustomersOrders").'</a>'; |
@@ -389,7 +421,9 @@ discard block |
||
389 | 421 | { |
390 | 422 | $nblines++; |
391 | 423 | $ret=$product->load_stats_commande_fournisseur($socid); |
392 | - if ($ret < 0) dol_print_error($db); |
|
424 | + if ($ret < 0) { |
|
425 | + dol_print_error($db); |
|
426 | + } |
|
393 | 427 | $langs->load("orders"); |
394 | 428 | print '<tr><td>'; |
395 | 429 | print '<a href="commande_fournisseur.php?id='.$product->id.'">'.img_object('','order').' '.$langs->trans("SuppliersOrders").'</a>'; |
@@ -407,7 +441,9 @@ discard block |
||
407 | 441 | { |
408 | 442 | $nblines++; |
409 | 443 | $ret=$product->load_stats_facture($socid); |
410 | - if ($ret < 0) dol_print_error($db); |
|
444 | + if ($ret < 0) { |
|
445 | + dol_print_error($db); |
|
446 | + } |
|
411 | 447 | $langs->load("bills"); |
412 | 448 | print '<tr><td>'; |
413 | 449 | print '<a href="facture.php?id='.$product->id.'">'.img_object('','bill').' '.$langs->trans("CustomersInvoices").'</a>'; |
@@ -425,7 +461,9 @@ discard block |
||
425 | 461 | { |
426 | 462 | $nblines++; |
427 | 463 | $ret=$product->load_stats_facture_fournisseur($socid); |
428 | - if ($ret < 0) dol_print_error($db); |
|
464 | + if ($ret < 0) { |
|
465 | + dol_print_error($db); |
|
466 | + } |
|
429 | 467 | $langs->load("bills"); |
430 | 468 | print '<tr><td>'; |
431 | 469 | print '<a href="facture_fournisseur.php?id='.$product->id.'">'.img_object('','bill').' '.$langs->trans("SuppliersInvoices").'</a>'; |
@@ -444,7 +482,9 @@ discard block |
||
444 | 482 | { |
445 | 483 | $nblines++; |
446 | 484 | $ret=$product->load_stats_contrat($socid); |
447 | - if ($ret < 0) dol_print_error($db); |
|
485 | + if ($ret < 0) { |
|
486 | + dol_print_error($db); |
|
487 | + } |
|
448 | 488 | $langs->load("contracts"); |
449 | 489 | print '<tr><td>'; |
450 | 490 | print '<a href="contrat.php?id='.$product->id.'">'.img_object('','contract').' '.$langs->trans("Contracts").'</a>'; |
@@ -483,8 +523,7 @@ discard block |
||
483 | 523 | $measuring_units[-6] = $langs->transnoentitiesnoconv("WeightUnitmg"); |
484 | 524 | $measuring_units[98] = $langs->transnoentitiesnoconv("WeightUnitounce"); |
485 | 525 | $measuring_units[99] = $langs->transnoentitiesnoconv("WeightUnitpound"); |
486 | - } |
|
487 | - else if ($measuring_style == 'size') |
|
526 | + } else if ($measuring_style == 'size') |
|
488 | 527 | { |
489 | 528 | $measuring_units[0] = $langs->transnoentitiesnoconv("SizeUnitm"); |
490 | 529 | $measuring_units[-1] = $langs->transnoentitiesnoconv("SizeUnitdm"); |
@@ -492,8 +531,7 @@ discard block |
||
492 | 531 | $measuring_units[-3] = $langs->transnoentitiesnoconv("SizeUnitmm"); |
493 | 532 | $measuring_units[98] = $langs->transnoentitiesnoconv("SizeUnitfoot"); |
494 | 533 | $measuring_units[99] = $langs->transnoentitiesnoconv("SizeUnitinch"); |
495 | - } |
|
496 | - else if ($measuring_style == 'surface') |
|
534 | + } else if ($measuring_style == 'surface') |
|
497 | 535 | { |
498 | 536 | $measuring_units[0] = $langs->transnoentitiesnoconv("SurfaceUnitm2"); |
499 | 537 | $measuring_units[-2] = $langs->transnoentitiesnoconv("SurfaceUnitdm2"); |
@@ -501,8 +539,7 @@ discard block |
||
501 | 539 | $measuring_units[-6] = $langs->transnoentitiesnoconv("SurfaceUnitmm2"); |
502 | 540 | $measuring_units[98] = $langs->transnoentitiesnoconv("SurfaceUnitfoot2"); |
503 | 541 | $measuring_units[99] = $langs->transnoentitiesnoconv("SurfaceUnitinch2"); |
504 | - } |
|
505 | - else if ($measuring_style == 'volume') |
|
542 | + } else if ($measuring_style == 'volume') |
|
506 | 543 | { |
507 | 544 | $measuring_units[0] = $langs->transnoentitiesnoconv("VolumeUnitm3"); |
508 | 545 | $measuring_units[-3] = $langs->transnoentitiesnoconv("VolumeUnitdm3"); |
@@ -30,119 +30,119 @@ |
||
30 | 30 | */ |
31 | 31 | class modMargin extends DolibarrModules |
32 | 32 | { |
33 | - /** |
|
34 | - * Constructor |
|
35 | - * |
|
36 | - * @param DoliDB $db Database handler |
|
37 | - */ |
|
38 | - function __construct($db) |
|
39 | - { |
|
40 | - $this->db = $db; |
|
41 | - |
|
42 | - // Id for module (must be unique). |
|
43 | - // Use here a free id (See in Home -> System information -> Dolibarr for list of used modules id). |
|
44 | - $this->numero = 59000; |
|
45 | - // Key text used to identify module (for permissions, menus, etc...) |
|
46 | - $this->rights_class = 'margins'; |
|
47 | - |
|
48 | - // Family can be 'crm','financial','hr','projects','products','ecm','technic','other' |
|
49 | - // It is used to group modules in module setup page |
|
50 | - $this->family = "financial"; |
|
51 | - $this->module_position = '55'; |
|
52 | - // Module label (no space allowed), used if translation string 'ModuleXXXName' not found (where XXX is value of numeric property 'numero' of module) |
|
53 | - $this->name = preg_replace('/^mod/i','',get_class($this)); |
|
54 | - // Module description, used if translation string 'ModuleXXXDesc' not found (where XXX is value of numeric property 'numero' of module) |
|
55 | - $this->description = "Margin management"; |
|
56 | - // Possible values for version are: 'development', 'experimental', 'dolibarr' or version |
|
57 | - $this->version = 'dolibarr'; |
|
58 | - // Key used in llx_const table to save module status enabled/disabled (where MYMODULE is value of property name of module in uppercase) |
|
59 | - $this->const_name = 'MAIN_MODULE_'.strtoupper($this->name); |
|
60 | - // Name of png file (without png) used for this module. |
|
61 | - // Png file must be in theme/yourtheme/img directory under name object_pictovalue.png. |
|
62 | - $this->picto='margin'; |
|
63 | - |
|
64 | - // Data directories to create when module is enabled. |
|
65 | - $this->dirs = array('/margin/temp'); |
|
66 | - |
|
67 | - // Config pages. Put here list of php page names stored in admmin directory used to setup module. |
|
68 | - $this->config_page_url = array("margin.php@margin"); |
|
69 | - |
|
70 | - // Dependencies |
|
71 | - $this->hidden = false; // A condition to hide module |
|
72 | - $this->depends = array("modPropale", "modProduct"); // List of module class names as string that must be enabled if this module is enabled |
|
73 | - $this->requiredby = array(); // List of module ids to disable if this one is disabled |
|
74 | - $this->conflictwith = array(); // List of module class names as string this module is in conflict with |
|
75 | - $this->phpmin = array(5,4); // Minimum version of PHP required by module |
|
76 | - $this->need_dolibarr_version = array(3,2); // Minimum version of Dolibarr required by module |
|
77 | - $this->langfiles = array("margins"); |
|
78 | - |
|
79 | - // Constants |
|
80 | - // List of particular constants to add when module is enabled (key, 'chaine', value, desc, visible, 'current' or 'allentities', deleteonunactive) |
|
81 | - // Example: $this->const=array(0=>array('MYMODULE_MYNEWCONST1','chaine','myvalue','This is a constant to add',1), |
|
82 | - // 1=>array('MYMODULE_MYNEWCONST2','chaine','myvalue','This is another constant to add',0, 'current', 1) |
|
83 | - // ); |
|
84 | - $this->const = array(0=>array('MARGIN_TYPE','chaine','costprice','Rule for margin calculation by default',0,'current',0)); // List of particular constants to add when module is enabled |
|
85 | - |
|
86 | - // New pages on tabs |
|
87 | - $this->tabs = array( |
|
33 | + /** |
|
34 | + * Constructor |
|
35 | + * |
|
36 | + * @param DoliDB $db Database handler |
|
37 | + */ |
|
38 | + function __construct($db) |
|
39 | + { |
|
40 | + $this->db = $db; |
|
41 | + |
|
42 | + // Id for module (must be unique). |
|
43 | + // Use here a free id (See in Home -> System information -> Dolibarr for list of used modules id). |
|
44 | + $this->numero = 59000; |
|
45 | + // Key text used to identify module (for permissions, menus, etc...) |
|
46 | + $this->rights_class = 'margins'; |
|
47 | + |
|
48 | + // Family can be 'crm','financial','hr','projects','products','ecm','technic','other' |
|
49 | + // It is used to group modules in module setup page |
|
50 | + $this->family = "financial"; |
|
51 | + $this->module_position = '55'; |
|
52 | + // Module label (no space allowed), used if translation string 'ModuleXXXName' not found (where XXX is value of numeric property 'numero' of module) |
|
53 | + $this->name = preg_replace('/^mod/i','',get_class($this)); |
|
54 | + // Module description, used if translation string 'ModuleXXXDesc' not found (where XXX is value of numeric property 'numero' of module) |
|
55 | + $this->description = "Margin management"; |
|
56 | + // Possible values for version are: 'development', 'experimental', 'dolibarr' or version |
|
57 | + $this->version = 'dolibarr'; |
|
58 | + // Key used in llx_const table to save module status enabled/disabled (where MYMODULE is value of property name of module in uppercase) |
|
59 | + $this->const_name = 'MAIN_MODULE_'.strtoupper($this->name); |
|
60 | + // Name of png file (without png) used for this module. |
|
61 | + // Png file must be in theme/yourtheme/img directory under name object_pictovalue.png. |
|
62 | + $this->picto='margin'; |
|
63 | + |
|
64 | + // Data directories to create when module is enabled. |
|
65 | + $this->dirs = array('/margin/temp'); |
|
66 | + |
|
67 | + // Config pages. Put here list of php page names stored in admmin directory used to setup module. |
|
68 | + $this->config_page_url = array("margin.php@margin"); |
|
69 | + |
|
70 | + // Dependencies |
|
71 | + $this->hidden = false; // A condition to hide module |
|
72 | + $this->depends = array("modPropale", "modProduct"); // List of module class names as string that must be enabled if this module is enabled |
|
73 | + $this->requiredby = array(); // List of module ids to disable if this one is disabled |
|
74 | + $this->conflictwith = array(); // List of module class names as string this module is in conflict with |
|
75 | + $this->phpmin = array(5,4); // Minimum version of PHP required by module |
|
76 | + $this->need_dolibarr_version = array(3,2); // Minimum version of Dolibarr required by module |
|
77 | + $this->langfiles = array("margins"); |
|
78 | + |
|
79 | + // Constants |
|
80 | + // List of particular constants to add when module is enabled (key, 'chaine', value, desc, visible, 'current' or 'allentities', deleteonunactive) |
|
81 | + // Example: $this->const=array(0=>array('MYMODULE_MYNEWCONST1','chaine','myvalue','This is a constant to add',1), |
|
82 | + // 1=>array('MYMODULE_MYNEWCONST2','chaine','myvalue','This is another constant to add',0, 'current', 1) |
|
83 | + // ); |
|
84 | + $this->const = array(0=>array('MARGIN_TYPE','chaine','costprice','Rule for margin calculation by default',0,'current',0)); // List of particular constants to add when module is enabled |
|
85 | + |
|
86 | + // New pages on tabs |
|
87 | + $this->tabs = array( |
|
88 | 88 | 'product:+margin:Margins:margins:$user->rights->margins->liretous:?controller=margin/tabs&method=productMargins&id=__ID__', |
89 | 89 | 'thirdparty:+margin:Margins:margins:empty($user->societe_id) && $user->rights->margins->liretous && ($object->client > 0):?controller=margin/tabs&method=thirdpartyMargins&socid=__ID__' |
90 | - ); |
|
90 | + ); |
|
91 | 91 | |
92 | 92 | |
93 | - // Boxes |
|
94 | - $this->boxes = array(); // List of boxes |
|
95 | - $r=0; |
|
93 | + // Boxes |
|
94 | + $this->boxes = array(); // List of boxes |
|
95 | + $r=0; |
|
96 | 96 | |
97 | - // Permissions |
|
98 | - $this->rights = array(); // Permission array used by this module |
|
99 | - $r=0; |
|
97 | + // Permissions |
|
98 | + $this->rights = array(); // Permission array used by this module |
|
99 | + $r=0; |
|
100 | 100 | |
101 | - // Main menu entries |
|
102 | - $this->menu = array(); // List of menus to add |
|
103 | - $r = 0; |
|
101 | + // Main menu entries |
|
102 | + $this->menu = array(); // List of menus to add |
|
103 | + $r = 0; |
|
104 | 104 | |
105 | - // left menu entry |
|
106 | - $this->menu[$r]=array( |
|
107 | - 'fk_menu'=>'fk_mainmenu=billing', // Put 0 if this is a top menu |
|
108 | - 'type'=>'left', // This is a Top menu entry |
|
109 | - 'titre'=>'Margins', |
|
110 | - 'mainmenu'=>'billing', |
|
111 | - 'leftmenu'=>'margins', |
|
105 | + // left menu entry |
|
106 | + $this->menu[$r]=array( |
|
107 | + 'fk_menu'=>'fk_mainmenu=billing', // Put 0 if this is a top menu |
|
108 | + 'type'=>'left', // This is a Top menu entry |
|
109 | + 'titre'=>'Margins', |
|
110 | + 'mainmenu'=>'billing', |
|
111 | + 'leftmenu'=>'margins', |
|
112 | 112 | 'url' => '?controller=margin&method=index', |
113 | - 'langs'=>'margins', // Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory. |
|
114 | - 'position'=>100, |
|
115 | - 'enabled'=>'$conf->margin->enabled', // Define condition to show or hide menu entry. Use '$conf->monmodule->enabled' if entry must be visible if module is enabled. |
|
116 | - 'perms'=>'$user->rights->margins->liretous', // Use 'perms'=>'$user->rights->monmodule->level1->level2' if you want your menu with a permission rules |
|
117 | - 'target'=>'', |
|
118 | - 'user'=>2); // 0=Menu for internal users, 1=external users, 2=both |
|
119 | - $r++; |
|
120 | - |
|
121 | - // Permissions |
|
122 | - $this->rights = array(); |
|
123 | - $r=0; |
|
124 | - |
|
125 | - $r++; |
|
126 | - $this->rights[$r][0] = 59001; // id de la permission |
|
127 | - $this->rights[$r][1] = 'Visualiser les marges'; // libelle de la permission |
|
128 | - $this->rights[$r][2] = 'r'; // type de la permission (deprecie a ce jour) |
|
129 | - $this->rights[$r][3] = 0; // La permission est-elle une permission par defaut |
|
130 | - $this->rights[$r][4] = 'liretous'; |
|
131 | - |
|
132 | - $r++; |
|
133 | - $this->rights[$r][0] = 59002; // id de la permission |
|
134 | - $this->rights[$r][1] = 'Définir les marges'; // libelle de la permission |
|
135 | - $this->rights[$r][2] = 'w'; // type de la permission (deprecie a ce jour) |
|
136 | - $this->rights[$r][3] = 0; // La permission est-elle une permission par defaut |
|
137 | - $this->rights[$r][4] = 'creer'; |
|
138 | - |
|
139 | - $r++; |
|
140 | - $this->rights[$r][0] = 59003; // id de la permission |
|
141 | - $this->rights[$r][1] = 'Read every user margin'; // libelle de la permission |
|
142 | - $this->rights[$r][2] = 'r'; // type de la permission (deprecie a ce jour) |
|
143 | - $this->rights[$r][3] = 0; // La permission est-elle une permission par defaut |
|
144 | - $this->rights[$r][4] = 'read'; |
|
145 | - $this->rights[$r][5] = 'all'; |
|
146 | - } |
|
113 | + 'langs'=>'margins', // Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory. |
|
114 | + 'position'=>100, |
|
115 | + 'enabled'=>'$conf->margin->enabled', // Define condition to show or hide menu entry. Use '$conf->monmodule->enabled' if entry must be visible if module is enabled. |
|
116 | + 'perms'=>'$user->rights->margins->liretous', // Use 'perms'=>'$user->rights->monmodule->level1->level2' if you want your menu with a permission rules |
|
117 | + 'target'=>'', |
|
118 | + 'user'=>2); // 0=Menu for internal users, 1=external users, 2=both |
|
119 | + $r++; |
|
120 | + |
|
121 | + // Permissions |
|
122 | + $this->rights = array(); |
|
123 | + $r=0; |
|
124 | + |
|
125 | + $r++; |
|
126 | + $this->rights[$r][0] = 59001; // id de la permission |
|
127 | + $this->rights[$r][1] = 'Visualiser les marges'; // libelle de la permission |
|
128 | + $this->rights[$r][2] = 'r'; // type de la permission (deprecie a ce jour) |
|
129 | + $this->rights[$r][3] = 0; // La permission est-elle une permission par defaut |
|
130 | + $this->rights[$r][4] = 'liretous'; |
|
131 | + |
|
132 | + $r++; |
|
133 | + $this->rights[$r][0] = 59002; // id de la permission |
|
134 | + $this->rights[$r][1] = 'Définir les marges'; // libelle de la permission |
|
135 | + $this->rights[$r][2] = 'w'; // type de la permission (deprecie a ce jour) |
|
136 | + $this->rights[$r][3] = 0; // La permission est-elle une permission par defaut |
|
137 | + $this->rights[$r][4] = 'creer'; |
|
138 | + |
|
139 | + $r++; |
|
140 | + $this->rights[$r][0] = 59003; // id de la permission |
|
141 | + $this->rights[$r][1] = 'Read every user margin'; // libelle de la permission |
|
142 | + $this->rights[$r][2] = 'r'; // type de la permission (deprecie a ce jour) |
|
143 | + $this->rights[$r][3] = 0; // La permission est-elle une permission par defaut |
|
144 | + $this->rights[$r][4] = 'read'; |
|
145 | + $this->rights[$r][5] = 'all'; |
|
146 | + } |
|
147 | 147 | } |
148 | 148 |
@@ -78,117 +78,117 @@ discard block |
||
78 | 78 | |
79 | 79 | if ($action == 'update') |
80 | 80 | { |
81 | - if (! empty($cancel)) |
|
82 | - { |
|
81 | + if (! empty($cancel)) |
|
82 | + { |
|
83 | 83 | header("Location: " . $_SERVER['PHP_SELF'] . "&id=" . $id); |
84 | - exit; |
|
85 | - } |
|
84 | + exit; |
|
85 | + } |
|
86 | 86 | |
87 | - $error=0; |
|
87 | + $error=0; |
|
88 | 88 | |
89 | 89 | if (empty($donation_date)) |
90 | 90 | { |
91 | - setEventMessages($langs->trans("ErrorFieldRequired", $langs->trans("Date")), null, 'errors'); |
|
91 | + setEventMessages($langs->trans("ErrorFieldRequired", $langs->trans("Date")), null, 'errors'); |
|
92 | 92 | $action = "create"; |
93 | 93 | $error++; |
94 | 94 | } |
95 | 95 | |
96 | - if (empty($amount)) |
|
97 | - { |
|
98 | - setEventMessages($langs->trans("ErrorFieldRequired", $langs->trans("Amount")), null, 'errors'); |
|
99 | - $action = "create"; |
|
100 | - $error++; |
|
101 | - } |
|
96 | + if (empty($amount)) |
|
97 | + { |
|
98 | + setEventMessages($langs->trans("ErrorFieldRequired", $langs->trans("Amount")), null, 'errors'); |
|
99 | + $action = "create"; |
|
100 | + $error++; |
|
101 | + } |
|
102 | 102 | |
103 | - if (! $error) |
|
104 | - { |
|
105 | - $object->fetch($id); |
|
106 | - |
|
107 | - $object->firstname = GETPOST("firstname",'alpha'); |
|
108 | - $object->lastname = GETPOST("lastname",'alpha'); |
|
109 | - $object->societe = GETPOST("societe",'alpha'); |
|
110 | - $object->address = GETPOST("address",'alpha'); |
|
111 | - $object->amount = price2num(GETPOST("amount",'alpha')); |
|
112 | - $object->town = GETPOST("town",'alpha'); |
|
113 | - $object->zip = GETPOST("zipcode",'alpha'); |
|
103 | + if (! $error) |
|
104 | + { |
|
105 | + $object->fetch($id); |
|
106 | + |
|
107 | + $object->firstname = GETPOST("firstname",'alpha'); |
|
108 | + $object->lastname = GETPOST("lastname",'alpha'); |
|
109 | + $object->societe = GETPOST("societe",'alpha'); |
|
110 | + $object->address = GETPOST("address",'alpha'); |
|
111 | + $object->amount = price2num(GETPOST("amount",'alpha')); |
|
112 | + $object->town = GETPOST("town",'alpha'); |
|
113 | + $object->zip = GETPOST("zipcode",'alpha'); |
|
114 | 114 | $object->country_id = GETPOST('country_id', 'int'); |
115 | 115 | $object->email = GETPOST("email",'alpha'); |
116 | - $object->date = $donation_date; |
|
117 | - $object->public = GETPOST("public",'alpha'); |
|
118 | - $object->fk_project = GETPOST("fk_project",'alpha'); |
|
119 | - $object->note_private= GETPOST("note_private",'none'); |
|
120 | - $object->note_public = GETPOST("note_public",'none'); |
|
121 | - $object->modepaymentid = GETPOST('modepayment','int'); |
|
122 | - |
|
123 | - // Fill array 'array_options' with data from add form |
|
116 | + $object->date = $donation_date; |
|
117 | + $object->public = GETPOST("public",'alpha'); |
|
118 | + $object->fk_project = GETPOST("fk_project",'alpha'); |
|
119 | + $object->note_private= GETPOST("note_private",'none'); |
|
120 | + $object->note_public = GETPOST("note_public",'none'); |
|
121 | + $object->modepaymentid = GETPOST('modepayment','int'); |
|
122 | + |
|
123 | + // Fill array 'array_options' with data from add form |
|
124 | 124 | $ret = $extrafields->setOptionalsFromPost($extralabels,$object); |
125 | - if ($ret < 0) $error++; |
|
125 | + if ($ret < 0) $error++; |
|
126 | 126 | |
127 | - if ($object->update($user) > 0) |
|
128 | - { |
|
127 | + if ($object->update($user) > 0) |
|
128 | + { |
|
129 | 129 | header("Location: " . $_SERVER['PHP_SELF'] . "&id=" . $object->id); |
130 | - exit; |
|
131 | - } |
|
132 | - } |
|
130 | + exit; |
|
131 | + } |
|
132 | + } |
|
133 | 133 | } |
134 | 134 | |
135 | 135 | if ($action == 'add') |
136 | 136 | { |
137 | - if (! empty($cancel)) |
|
138 | - { |
|
139 | - header("Location: index.php"); |
|
140 | - exit; |
|
141 | - } |
|
137 | + if (! empty($cancel)) |
|
138 | + { |
|
139 | + header("Location: index.php"); |
|
140 | + exit; |
|
141 | + } |
|
142 | 142 | |
143 | - $error=0; |
|
143 | + $error=0; |
|
144 | 144 | |
145 | 145 | if (empty($donation_date)) |
146 | 146 | { |
147 | - setEventMessages($langs->trans("ErrorFieldRequired", $langs->trans("Date")), null, 'errors'); |
|
147 | + setEventMessages($langs->trans("ErrorFieldRequired", $langs->trans("Date")), null, 'errors'); |
|
148 | 148 | $action = "create"; |
149 | 149 | $error++; |
150 | 150 | } |
151 | 151 | |
152 | - if (empty($amount)) |
|
153 | - { |
|
154 | - setEventMessages($langs->trans("ErrorFieldRequired", $langs->trans("Amount")), null, 'errors'); |
|
155 | - $action = "create"; |
|
156 | - $error++; |
|
157 | - } |
|
152 | + if (empty($amount)) |
|
153 | + { |
|
154 | + setEventMessages($langs->trans("ErrorFieldRequired", $langs->trans("Amount")), null, 'errors'); |
|
155 | + $action = "create"; |
|
156 | + $error++; |
|
157 | + } |
|
158 | 158 | |
159 | - if (! $error) |
|
160 | - { |
|
161 | - $object->firstname = GETPOST("firstname",'alpha'); |
|
162 | - $object->lastname = GETPOST("lastname",'alpha'); |
|
163 | - $object->societe = GETPOST("societe",'alpha'); |
|
164 | - $object->address = GETPOST("address",'alpha'); |
|
165 | - $object->amount = price2num(GETPOST("amount",'alpha')); |
|
166 | - $object->zip = GETPOST("zipcode",'alpha'); |
|
167 | - $object->town = GETPOST("town",'alpha'); |
|
159 | + if (! $error) |
|
160 | + { |
|
161 | + $object->firstname = GETPOST("firstname",'alpha'); |
|
162 | + $object->lastname = GETPOST("lastname",'alpha'); |
|
163 | + $object->societe = GETPOST("societe",'alpha'); |
|
164 | + $object->address = GETPOST("address",'alpha'); |
|
165 | + $object->amount = price2num(GETPOST("amount",'alpha')); |
|
166 | + $object->zip = GETPOST("zipcode",'alpha'); |
|
167 | + $object->town = GETPOST("town",'alpha'); |
|
168 | 168 | $object->country_id = GETPOST('country_id', 'int'); |
169 | 169 | $object->email = GETPOST("email",'alpha'); |
170 | - $object->date = $donation_date; |
|
171 | - $object->note_private= GETPOST("note_private",'none'); |
|
172 | - $object->note_public = GETPOST("note_public",'none'); |
|
173 | - $object->public = GETPOST("public",'alpha'); |
|
174 | - $object->fk_project = GETPOST("fk_project",'alpha'); |
|
175 | - $object->modepaymentid = GETPOST('modepayment','int'); |
|
176 | - |
|
177 | - // Fill array 'array_options' with data from add form |
|
170 | + $object->date = $donation_date; |
|
171 | + $object->note_private= GETPOST("note_private",'none'); |
|
172 | + $object->note_public = GETPOST("note_public",'none'); |
|
173 | + $object->public = GETPOST("public",'alpha'); |
|
174 | + $object->fk_project = GETPOST("fk_project",'alpha'); |
|
175 | + $object->modepaymentid = GETPOST('modepayment','int'); |
|
176 | + |
|
177 | + // Fill array 'array_options' with data from add form |
|
178 | 178 | $ret = $extrafields->setOptionalsFromPost($extralabels,$object); |
179 | - if ($ret < 0) $error++; |
|
179 | + if ($ret < 0) $error++; |
|
180 | 180 | |
181 | - $res = $object->create($user); |
|
182 | - if ($res > 0) |
|
183 | - { |
|
181 | + $res = $object->create($user); |
|
182 | + if ($res > 0) |
|
183 | + { |
|
184 | 184 | header("Location: " . $_SERVER['PHP_SELF'] . '&id=' . $res); |
185 | - exit; |
|
186 | - } |
|
187 | - else |
|
188 | - { |
|
189 | - setEventMessages($object->error, $object->errors, 'errors'); |
|
190 | - } |
|
191 | - } |
|
185 | + exit; |
|
186 | + } |
|
187 | + else |
|
188 | + { |
|
189 | + setEventMessages($object->error, $object->errors, 'errors'); |
|
190 | + } |
|
191 | + } |
|
192 | 192 | } |
193 | 193 | if ($action == 'confirm_delete' && GETPOST("confirm") == "yes" && $user->rights->don->supprimer) |
194 | 194 | { |
@@ -207,46 +207,46 @@ discard block |
||
207 | 207 | } |
208 | 208 | if ($action == 'valid_promesse') |
209 | 209 | { |
210 | - $object->fetch($id); |
|
211 | - if ($object->valid_promesse($id, $user->id) >= 0) |
|
212 | - { |
|
213 | - setEventMessages($langs->trans("DonationValidated", $object->ref), null); |
|
210 | + $object->fetch($id); |
|
211 | + if ($object->valid_promesse($id, $user->id) >= 0) |
|
212 | + { |
|
213 | + setEventMessages($langs->trans("DonationValidated", $object->ref), null); |
|
214 | 214 | |
215 | 215 | header("Location: " . $_SERVER['PHP_SELF'] . "&id=" . $id); |
216 | - exit; |
|
217 | - } |
|
216 | + exit; |
|
217 | + } |
|
218 | 218 | else { |
219 | - setEventMessages($object->error, $object->errors, 'errors'); |
|
219 | + setEventMessages($object->error, $object->errors, 'errors'); |
|
220 | 220 | } |
221 | 221 | } |
222 | 222 | if ($action == 'set_cancel') |
223 | 223 | { |
224 | - $object->fetch($id); |
|
225 | - if ($object->set_cancel($id) >= 0) |
|
224 | + $object->fetch($id); |
|
225 | + if ($object->set_cancel($id) >= 0) |
|
226 | 226 | { |
227 | 227 | header("Location: " . $_SERVER['PHP_SELF'] . "&id=" . $id); |
228 | 228 | exit; |
229 | 229 | } |
230 | 230 | else { |
231 | - setEventMessages($object->error, $object->errors, 'errors'); |
|
231 | + setEventMessages($object->error, $object->errors, 'errors'); |
|
232 | 232 | } |
233 | 233 | } |
234 | 234 | if ($action == 'set_paid') |
235 | 235 | { |
236 | - $object->fetch($id); |
|
237 | - if ($object->set_paid($id, $modepayment) >= 0) |
|
238 | - { |
|
236 | + $object->fetch($id); |
|
237 | + if ($object->set_paid($id, $modepayment) >= 0) |
|
238 | + { |
|
239 | 239 | header("Location: " . $_SERVER['PHP_SELF'] . "&id=" . $id); |
240 | - exit; |
|
241 | - } |
|
240 | + exit; |
|
241 | + } |
|
242 | 242 | else { |
243 | - setEventMessages($object->error, $object->errors, 'errors'); |
|
243 | + setEventMessages($object->error, $object->errors, 'errors'); |
|
244 | 244 | } |
245 | 245 | } |
246 | 246 | else if ($action == 'classin' && $user->rights->don->creer) |
247 | 247 | { |
248 | - $object->fetch($id); |
|
249 | - $object->setProject($projectid); |
|
248 | + $object->fetch($id); |
|
249 | + $object->setProject($projectid); |
|
250 | 250 | } |
251 | 251 | |
252 | 252 | // Actions to build doc |
@@ -321,50 +321,50 @@ discard block |
||
321 | 321 | |
322 | 322 | if ($action == 'create') |
323 | 323 | { |
324 | - print load_fiche_titre($langs->trans("AddDonation")); |
|
324 | + print load_fiche_titre($langs->trans("AddDonation")); |
|
325 | 325 | |
326 | - print '<form name="add" action="' . $_SERVER["PHP_SELF"] . '" method="POST">'; |
|
327 | - print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">'; |
|
328 | - print '<input type="hidden" name="action" value="add">'; |
|
326 | + print '<form name="add" action="' . $_SERVER["PHP_SELF"] . '" method="POST">'; |
|
327 | + print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">'; |
|
328 | + print '<input type="hidden" name="action" value="add">'; |
|
329 | 329 | |
330 | - dol_fiche_head(''); |
|
330 | + dol_fiche_head(''); |
|
331 | 331 | |
332 | - print '<table class="border" width="100%">'; |
|
333 | - print '<tbody>'; |
|
332 | + print '<table class="border" width="100%">'; |
|
333 | + print '<tbody>'; |
|
334 | 334 | |
335 | - // Ref |
|
336 | - print '<tr><td class="titlefieldcreate fieldrequired">' . $langs->trans('Ref') . '</td><td colspan="2">' . $langs->trans('Draft') . '</td></tr>'; |
|
335 | + // Ref |
|
336 | + print '<tr><td class="titlefieldcreate fieldrequired">' . $langs->trans('Ref') . '</td><td colspan="2">' . $langs->trans('Draft') . '</td></tr>'; |
|
337 | 337 | |
338 | - // Company |
|
339 | - if (! empty($conf->societe->enabled) && ! empty($conf->global->DONATION_USE_THIRDPARTIES)) |
|
340 | - { |
|
341 | - // Thirdparty |
|
342 | - print '<td>' . $langs->trans('Customer') . '</td>'; |
|
343 | - if ($soc->id > 0 && ! GETPOST('fac_rec','alpha')) |
|
344 | - { |
|
345 | - print '<td colspan="2">'; |
|
346 | - print $soc->getNomUrl(1); |
|
347 | - print '<input type="hidden" name="socid" value="' . $soc->id . '">'; |
|
348 | - // Outstanding Bill |
|
349 | - $outstandingBills = $soc->get_OutstandingBill(); |
|
350 | - print ' (' . $langs->trans('CurrentOutstandingBill') . ': '; |
|
351 | - print price($outstandingBills, '', $langs, 0, 0, -1, $conf->currency); |
|
352 | - if ($soc->outstanding_limit != '') |
|
353 | - { |
|
354 | - if ($outstandingBills > $soc->outstanding_limit) print img_warning($langs->trans("OutstandingBillReached")); |
|
355 | - print ' / ' . price($soc->outstanding_limit, '', $langs, 0, 0, -1, $conf->currency); |
|
356 | - } |
|
357 | - print ')'; |
|
358 | - print '</td>'; |
|
359 | - } |
|
360 | - else |
|
361 | - { |
|
362 | - print '<td colspan="2">'; |
|
363 | - print $form->select_company($soc->id, 'socid', '(s.client = 1 OR s.client = 3) AND status=1', 'SelectThirdParty', 0, 0, null, 0, 'minwidth300'); |
|
364 | - // Option to reload page to retrieve customer informations. Note, this clear other input |
|
365 | - if (!empty($conf->global->RELOAD_PAGE_ON_CUSTOMER_CHANGE)) |
|
366 | - { |
|
367 | - print '<script type="text/javascript"> |
|
338 | + // Company |
|
339 | + if (! empty($conf->societe->enabled) && ! empty($conf->global->DONATION_USE_THIRDPARTIES)) |
|
340 | + { |
|
341 | + // Thirdparty |
|
342 | + print '<td>' . $langs->trans('Customer') . '</td>'; |
|
343 | + if ($soc->id > 0 && ! GETPOST('fac_rec','alpha')) |
|
344 | + { |
|
345 | + print '<td colspan="2">'; |
|
346 | + print $soc->getNomUrl(1); |
|
347 | + print '<input type="hidden" name="socid" value="' . $soc->id . '">'; |
|
348 | + // Outstanding Bill |
|
349 | + $outstandingBills = $soc->get_OutstandingBill(); |
|
350 | + print ' (' . $langs->trans('CurrentOutstandingBill') . ': '; |
|
351 | + print price($outstandingBills, '', $langs, 0, 0, -1, $conf->currency); |
|
352 | + if ($soc->outstanding_limit != '') |
|
353 | + { |
|
354 | + if ($outstandingBills > $soc->outstanding_limit) print img_warning($langs->trans("OutstandingBillReached")); |
|
355 | + print ' / ' . price($soc->outstanding_limit, '', $langs, 0, 0, -1, $conf->currency); |
|
356 | + } |
|
357 | + print ')'; |
|
358 | + print '</td>'; |
|
359 | + } |
|
360 | + else |
|
361 | + { |
|
362 | + print '<td colspan="2">'; |
|
363 | + print $form->select_company($soc->id, 'socid', '(s.client = 1 OR s.client = 3) AND status=1', 'SelectThirdParty', 0, 0, null, 0, 'minwidth300'); |
|
364 | + // Option to reload page to retrieve customer informations. Note, this clear other input |
|
365 | + if (!empty($conf->global->RELOAD_PAGE_ON_CUSTOMER_CHANGE)) |
|
366 | + { |
|
367 | + print '<script type="text/javascript"> |
|
368 | 368 | $(document).ready(function() { |
369 | 369 | $("#socid").change(function() { |
370 | 370 | var socid = $(this).val(); |
@@ -374,82 +374,82 @@ discard block |
||
374 | 374 | }); |
375 | 375 | }); |
376 | 376 | </script>'; |
377 | - } |
|
377 | + } |
|
378 | 378 | //print ' <a href="'.DOL_URL_ROOT.'/societe/card.php?action=create&client=3&fournisseur=0&backtopage='.urlencode($_SERVER["PHP_SELF"].'?action=create').'">'.$langs->trans("AddThirdParty").'</a>'; |
379 | 379 | print ' <a href="' . BASE_URI . '?controller=societe&method=card&action=create&client=3&fournisseur=0&backtopage=' . urlencode($_SERVER["PHP_SELF"] . '?action=create') . '">' . $langs->trans("AddThirdParty") . '</a>'; |
380 | - print '</td>'; |
|
381 | - } |
|
382 | - print '</tr>' . "\n"; |
|
383 | - } |
|
380 | + print '</td>'; |
|
381 | + } |
|
382 | + print '</tr>' . "\n"; |
|
383 | + } |
|
384 | 384 | |
385 | - // Date |
|
386 | - print '<tr><td class="fieldrequired titlefieldcreate">'.$langs->trans("Date").'</td><td>'; |
|
387 | - print $form->selectDate($donation_date?$donation_date:-1, '', '', '', '', "add", 1, 1); |
|
388 | - print '</td>'; |
|
385 | + // Date |
|
386 | + print '<tr><td class="fieldrequired titlefieldcreate">'.$langs->trans("Date").'</td><td>'; |
|
387 | + print $form->selectDate($donation_date?$donation_date:-1, '', '', '', '', "add", 1, 1); |
|
388 | + print '</td>'; |
|
389 | 389 | |
390 | - // Amount |
|
391 | - print "<tr>".'<td class="fieldrequired">'.$langs->trans("Amount").'</td><td><input type="text" name="amount" value="'.dol_escape_htmltag(GETPOST("amount")).'" size="10"> '.$langs->trans("Currency".$conf->currency).'</td></tr>'; |
|
390 | + // Amount |
|
391 | + print "<tr>".'<td class="fieldrequired">'.$langs->trans("Amount").'</td><td><input type="text" name="amount" value="'.dol_escape_htmltag(GETPOST("amount")).'" size="10"> '.$langs->trans("Currency".$conf->currency).'</td></tr>'; |
|
392 | 392 | |
393 | - // Public donation |
|
394 | - print '<tr><td class="fieldrequired">'.$langs->trans("PublicDonation")."</td><td>"; |
|
395 | - print $form->selectyesno("public",isset($_POST["public"])?$_POST["public"]:1,1); |
|
396 | - print "</td></tr>\n"; |
|
393 | + // Public donation |
|
394 | + print '<tr><td class="fieldrequired">'.$langs->trans("PublicDonation")."</td><td>"; |
|
395 | + print $form->selectyesno("public",isset($_POST["public"])?$_POST["public"]:1,1); |
|
396 | + print "</td></tr>\n"; |
|
397 | 397 | |
398 | - if (empty($conf->societe->enabled) || empty($conf->global->DONATION_USE_THIRDPARTIES)) |
|
399 | - { |
|
400 | - print "<tr>".'<td>'.$langs->trans("Company").'</td><td><input type="text" name="societe" value="'.dol_escape_htmltag(GETPOST("societe")).'" class="maxwidth200"></td></tr>'; |
|
401 | - print "<tr>".'<td>'.$langs->trans("Lastname").'</td><td><input type="text" name="lastname" value="'.dol_escape_htmltag(GETPOST("lastname")).'" class="maxwidth200"></td></tr>'; |
|
402 | - print "<tr>".'<td>'.$langs->trans("Firstname").'</td><td><input type="text" name="firstname" value="'.dol_escape_htmltag(GETPOST("firstname")).'" class="maxwidth200"></td></tr>'; |
|
403 | - print "<tr>".'<td>'.$langs->trans("Address").'</td><td>'; |
|
404 | - print '<textarea name="address" wrap="soft" class="quatrevingtpercent" rows="3">'.dol_escape_htmltag(GETPOST("address")).'</textarea></td></tr>'; |
|
405 | - |
|
406 | - // Zip / Town |
|
407 | - print '<tr><td>'.$langs->trans("Zip").' / '.$langs->trans("Town").'</td><td>'; |
|
408 | - print $formcompany->select_ziptown((isset($_POST["zipcode"])?$_POST["zipcode"]:$object->zip),'zipcode',array('town','selectcountry_id','state_id'),6); |
|
409 | - print ' '; |
|
410 | - print $formcompany->select_ziptown((isset($_POST["town"])?$_POST["town"]:$object->town),'town',array('zipcode','selectcountry_id','state_id')); |
|
411 | - print '</tr>'; |
|
412 | - |
|
413 | - // Country |
|
414 | - print '<tr><td><label for="selectcountry_id">'.$langs->trans('Country').'</label></td><td class="maxwidthonsmartphone">'; |
|
415 | - print $form->select_country(GETPOST('country_id')!=''?GETPOST('country_id'):$object->country_id); |
|
416 | - if ($user->admin) print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"),1); |
|
417 | - print '</td></tr>'; |
|
418 | - |
|
419 | - print "<tr>".'<td>'.$langs->trans("EMail").'</td><td><input type="text" name="email" value="'.dol_escape_htmltag(GETPOST("email")).'" class="maxwidth200"></td></tr>'; |
|
420 | - } |
|
398 | + if (empty($conf->societe->enabled) || empty($conf->global->DONATION_USE_THIRDPARTIES)) |
|
399 | + { |
|
400 | + print "<tr>".'<td>'.$langs->trans("Company").'</td><td><input type="text" name="societe" value="'.dol_escape_htmltag(GETPOST("societe")).'" class="maxwidth200"></td></tr>'; |
|
401 | + print "<tr>".'<td>'.$langs->trans("Lastname").'</td><td><input type="text" name="lastname" value="'.dol_escape_htmltag(GETPOST("lastname")).'" class="maxwidth200"></td></tr>'; |
|
402 | + print "<tr>".'<td>'.$langs->trans("Firstname").'</td><td><input type="text" name="firstname" value="'.dol_escape_htmltag(GETPOST("firstname")).'" class="maxwidth200"></td></tr>'; |
|
403 | + print "<tr>".'<td>'.$langs->trans("Address").'</td><td>'; |
|
404 | + print '<textarea name="address" wrap="soft" class="quatrevingtpercent" rows="3">'.dol_escape_htmltag(GETPOST("address")).'</textarea></td></tr>'; |
|
405 | + |
|
406 | + // Zip / Town |
|
407 | + print '<tr><td>'.$langs->trans("Zip").' / '.$langs->trans("Town").'</td><td>'; |
|
408 | + print $formcompany->select_ziptown((isset($_POST["zipcode"])?$_POST["zipcode"]:$object->zip),'zipcode',array('town','selectcountry_id','state_id'),6); |
|
409 | + print ' '; |
|
410 | + print $formcompany->select_ziptown((isset($_POST["town"])?$_POST["town"]:$object->town),'town',array('zipcode','selectcountry_id','state_id')); |
|
411 | + print '</tr>'; |
|
412 | + |
|
413 | + // Country |
|
414 | + print '<tr><td><label for="selectcountry_id">'.$langs->trans('Country').'</label></td><td class="maxwidthonsmartphone">'; |
|
415 | + print $form->select_country(GETPOST('country_id')!=''?GETPOST('country_id'):$object->country_id); |
|
416 | + if ($user->admin) print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"),1); |
|
417 | + print '</td></tr>'; |
|
418 | + |
|
419 | + print "<tr>".'<td>'.$langs->trans("EMail").'</td><td><input type="text" name="email" value="'.dol_escape_htmltag(GETPOST("email")).'" class="maxwidth200"></td></tr>'; |
|
420 | + } |
|
421 | 421 | |
422 | - // Payment mode |
|
423 | - print "<tr><td>".$langs->trans("PaymentMode")."</td><td>\n"; |
|
424 | - $selected = GETPOST('modepayment','int'); |
|
425 | - $form->select_types_paiements($selected, 'modepayment', 'CRDT', 0, 1); |
|
426 | - print "</td></tr>\n"; |
|
422 | + // Payment mode |
|
423 | + print "<tr><td>".$langs->trans("PaymentMode")."</td><td>\n"; |
|
424 | + $selected = GETPOST('modepayment','int'); |
|
425 | + $form->select_types_paiements($selected, 'modepayment', 'CRDT', 0, 1); |
|
426 | + print "</td></tr>\n"; |
|
427 | 427 | |
428 | - // Public note |
|
429 | - print '<tr>'; |
|
430 | - print '<td class="tdtop">' . $langs->trans('NotePublic') . '</td>'; |
|
431 | - print '<td>'; |
|
428 | + // Public note |
|
429 | + print '<tr>'; |
|
430 | + print '<td class="tdtop">' . $langs->trans('NotePublic') . '</td>'; |
|
431 | + print '<td>'; |
|
432 | 432 | |
433 | 433 | $doleditor = new DolEditor('note_public', $note_public, '', 80, 'dolibarr_notes', 'In', 0, false, true, ROWS_3, '90%'); |
434 | - print $doleditor->Create(1); |
|
435 | - print '</td></tr>'; |
|
436 | - |
|
437 | - // Private note |
|
438 | - if (empty($user->societe_id)) { |
|
439 | - print '<tr>'; |
|
440 | - print '<td class="tdtop">' . $langs->trans('NotePrivate') . '</td>'; |
|
441 | - print '<td>'; |
|
442 | - |
|
443 | - $doleditor = new DolEditor('note_private', $note_private, '', 80, 'dolibarr_notes', 'In', 0, false, true, ROWS_3, '90%'); |
|
444 | - print $doleditor->Create(1); |
|
445 | - print '</td></tr>'; |
|
446 | - } |
|
434 | + print $doleditor->Create(1); |
|
435 | + print '</td></tr>'; |
|
436 | + |
|
437 | + // Private note |
|
438 | + if (empty($user->societe_id)) { |
|
439 | + print '<tr>'; |
|
440 | + print '<td class="tdtop">' . $langs->trans('NotePrivate') . '</td>'; |
|
441 | + print '<td>'; |
|
442 | + |
|
443 | + $doleditor = new DolEditor('note_private', $note_private, '', 80, 'dolibarr_notes', 'In', 0, false, true, ROWS_3, '90%'); |
|
444 | + print $doleditor->Create(1); |
|
445 | + print '</td></tr>'; |
|
446 | + } |
|
447 | 447 | |
448 | - if (! empty($conf->projet->enabled)) |
|
448 | + if (! empty($conf->projet->enabled)) |
|
449 | 449 | { |
450 | 450 | print "<tr><td>".$langs->trans("Project")."</td><td>"; |
451 | 451 | $formproject->select_projects(-1, $projectid,'fk_project', 0, 0, 1, 1); |
452 | - print "</td></tr>\n"; |
|
452 | + print "</td></tr>\n"; |
|
453 | 453 | } |
454 | 454 | |
455 | 455 | // Other attributes |
@@ -458,21 +458,21 @@ discard block |
||
458 | 458 | print $hookmanager->resPrint; |
459 | 459 | if (empty($reshook)) |
460 | 460 | { |
461 | - print $object->showOptionals($extrafields,'edit',$parameters); |
|
461 | + print $object->showOptionals($extrafields,'edit',$parameters); |
|
462 | 462 | } |
463 | 463 | |
464 | 464 | print '</tbody>'; |
465 | - print "</table>\n"; |
|
465 | + print "</table>\n"; |
|
466 | 466 | |
467 | - dol_fiche_end(); |
|
467 | + dol_fiche_end(); |
|
468 | 468 | |
469 | - print '<div class="center">'; |
|
470 | - print '<input type="submit" class="button" name="save" value="'.dol_escape_htmltag($langs->trans("Save")).'">'; |
|
471 | - print ' '; |
|
472 | - print '<input type="button" class="button" value="'.dol_escape_htmltag($langs->trans("Cancel")).'" onClick="javascript:history.go(-1)">'; |
|
473 | - print '</div>'; |
|
469 | + print '<div class="center">'; |
|
470 | + print '<input type="submit" class="button" name="save" value="'.dol_escape_htmltag($langs->trans("Save")).'">'; |
|
471 | + print ' '; |
|
472 | + print '<input type="button" class="button" value="'.dol_escape_htmltag($langs->trans("Cancel")).'" onClick="javascript:history.go(-1)">'; |
|
473 | + print '</div>'; |
|
474 | 474 | |
475 | - print "</form>\n"; |
|
475 | + print "</form>\n"; |
|
476 | 476 | } |
477 | 477 | |
478 | 478 | |
@@ -484,80 +484,80 @@ discard block |
||
484 | 484 | |
485 | 485 | if (! empty($id) && $action == 'edit') |
486 | 486 | { |
487 | - $result=$object->fetch($id); |
|
488 | - if ($result < 0) { |
|
489 | - dol_print_error($db,$object->error); exit; |
|
490 | - } |
|
491 | - $result=$object->fetch_optionals(); |
|
492 | - if ($result < 0) { |
|
493 | - dol_print_error($db); exit; |
|
494 | - } |
|
487 | + $result=$object->fetch($id); |
|
488 | + if ($result < 0) { |
|
489 | + dol_print_error($db,$object->error); exit; |
|
490 | + } |
|
491 | + $result=$object->fetch_optionals(); |
|
492 | + if ($result < 0) { |
|
493 | + dol_print_error($db); exit; |
|
494 | + } |
|
495 | 495 | |
496 | - $hselected='card'; |
|
497 | - $head = donation_prepare_head($object); |
|
496 | + $hselected='card'; |
|
497 | + $head = donation_prepare_head($object); |
|
498 | 498 | |
499 | - print '<form name="update" action="' . $_SERVER["PHP_SELF"] . '" method="POST">'; |
|
500 | - print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">'; |
|
501 | - print '<input type="hidden" name="action" value="update">'; |
|
502 | - print '<input type="hidden" name="rowid" value="'.$object->id.'">'; |
|
503 | - print '<input type="hidden" name="amount" value="'.$object->amount.'">'; |
|
499 | + print '<form name="update" action="' . $_SERVER["PHP_SELF"] . '" method="POST">'; |
|
500 | + print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">'; |
|
501 | + print '<input type="hidden" name="action" value="update">'; |
|
502 | + print '<input type="hidden" name="rowid" value="'.$object->id.'">'; |
|
503 | + print '<input type="hidden" name="amount" value="'.$object->amount.'">'; |
|
504 | 504 | |
505 | 505 | |
506 | - dol_fiche_head($head, $hselected, $langs->trans("Donation"), 0, 'generic'); |
|
506 | + dol_fiche_head($head, $hselected, $langs->trans("Donation"), 0, 'generic'); |
|
507 | 507 | |
508 | - print '<table class="border" width="100%">'; |
|
508 | + print '<table class="border" width="100%">'; |
|
509 | 509 | |
510 | - // Ref |
|
511 | - print '<tr><td>'.$langs->trans("Ref").'</td><td colspan="2">'; |
|
512 | - print $object->getNomUrl(); |
|
513 | - print '</td>'; |
|
514 | - print '</tr>'; |
|
510 | + // Ref |
|
511 | + print '<tr><td>'.$langs->trans("Ref").'</td><td colspan="2">'; |
|
512 | + print $object->getNomUrl(); |
|
513 | + print '</td>'; |
|
514 | + print '</tr>'; |
|
515 | 515 | |
516 | - // Date |
|
517 | - print '<tr><td class="titlefieldcreate fieldrequired">'.$langs->trans("Date").'</td><td>'; |
|
518 | - print $form->selectDate($object->date,'','','','',"update"); |
|
519 | - print '</td>'; |
|
516 | + // Date |
|
517 | + print '<tr><td class="titlefieldcreate fieldrequired">'.$langs->trans("Date").'</td><td>'; |
|
518 | + print $form->selectDate($object->date,'','','','',"update"); |
|
519 | + print '</td>'; |
|
520 | 520 | |
521 | - // Amount |
|
522 | - if ($object->statut == 0) |
|
523 | - { |
|
524 | - print "<tr>".'<td class="fieldrequired">'.$langs->trans("Amount").'</td><td><input type="text" name="amount" size="10" value="'.dol_escape_htmltag($object->amount).'"> '.$langs->trans("Currency".$conf->currency).'</td></tr>'; |
|
525 | - } |
|
526 | - else |
|
527 | - { |
|
528 | - print '<tr><td>'.$langs->trans("Amount").'</td><td>'; |
|
529 | - print price($object->amount,0,$langs,0,0,-1,$conf->currency); |
|
530 | - print '</td></tr>'; |
|
531 | - } |
|
521 | + // Amount |
|
522 | + if ($object->statut == 0) |
|
523 | + { |
|
524 | + print "<tr>".'<td class="fieldrequired">'.$langs->trans("Amount").'</td><td><input type="text" name="amount" size="10" value="'.dol_escape_htmltag($object->amount).'"> '.$langs->trans("Currency".$conf->currency).'</td></tr>'; |
|
525 | + } |
|
526 | + else |
|
527 | + { |
|
528 | + print '<tr><td>'.$langs->trans("Amount").'</td><td>'; |
|
529 | + print price($object->amount,0,$langs,0,0,-1,$conf->currency); |
|
530 | + print '</td></tr>'; |
|
531 | + } |
|
532 | 532 | |
533 | - print '<tr><td class="fieldrequired">'.$langs->trans("PublicDonation")."</td><td>"; |
|
534 | - print $form->selectyesno("public",1,1); |
|
535 | - print "</td>"; |
|
536 | - print "</tr>\n"; |
|
533 | + print '<tr><td class="fieldrequired">'.$langs->trans("PublicDonation")."</td><td>"; |
|
534 | + print $form->selectyesno("public",1,1); |
|
535 | + print "</td>"; |
|
536 | + print "</tr>\n"; |
|
537 | 537 | |
538 | - $langs->load("companies"); |
|
539 | - print '<tr><td>'.$langs->trans("Company").'</td><td><input type="text" name="societe" class="maxwidth200" value="'.dol_escape_htmltag($object->societe).'"></td></tr>'; |
|
540 | - print '<tr><td>'.$langs->trans("Lastname").'</td><td><input type="text" name="lastname" class="maxwidth200" value="'.dol_escape_htmltag($object->lastname).'"></td></tr>'; |
|
541 | - print '<tr><td>'.$langs->trans("Firstname").'</td><td><input type="text" name="firstname" class="maxwidth200" value="'.dol_escape_htmltag($object->firstname).'"></td></tr>'; |
|
542 | - print '<tr><td>'.$langs->trans("Address").'</td><td>'; |
|
543 | - print '<textarea name="address" wrap="soft" class="quatrevingtpercent" rows="'.ROWS_3.'">'.dol_escape_htmltag($object->address).'</textarea></td></tr>'; |
|
538 | + $langs->load("companies"); |
|
539 | + print '<tr><td>'.$langs->trans("Company").'</td><td><input type="text" name="societe" class="maxwidth200" value="'.dol_escape_htmltag($object->societe).'"></td></tr>'; |
|
540 | + print '<tr><td>'.$langs->trans("Lastname").'</td><td><input type="text" name="lastname" class="maxwidth200" value="'.dol_escape_htmltag($object->lastname).'"></td></tr>'; |
|
541 | + print '<tr><td>'.$langs->trans("Firstname").'</td><td><input type="text" name="firstname" class="maxwidth200" value="'.dol_escape_htmltag($object->firstname).'"></td></tr>'; |
|
542 | + print '<tr><td>'.$langs->trans("Address").'</td><td>'; |
|
543 | + print '<textarea name="address" wrap="soft" class="quatrevingtpercent" rows="'.ROWS_3.'">'.dol_escape_htmltag($object->address).'</textarea></td></tr>'; |
|
544 | 544 | |
545 | 545 | // Zip / Town |
546 | 546 | print '<tr><td>'.$langs->trans("Zip").' / '.$langs->trans("Town").'</td><td>'; |
547 | - print $formcompany->select_ziptown((isset($_POST["zipcode"])?$_POST["zipcode"]:$object->zip),'zipcode',array('town','selectcountry_id','state_id'),6); |
|
547 | + print $formcompany->select_ziptown((isset($_POST["zipcode"])?$_POST["zipcode"]:$object->zip),'zipcode',array('town','selectcountry_id','state_id'),6); |
|
548 | 548 | print ' '; |
549 | - print $formcompany->select_ziptown((isset($_POST["town"])?$_POST["town"]:$object->town),'town',array('zipcode','selectcountry_id','state_id')); |
|
550 | - print '</tr>'; |
|
549 | + print $formcompany->select_ziptown((isset($_POST["town"])?$_POST["town"]:$object->town),'town',array('zipcode','selectcountry_id','state_id')); |
|
550 | + print '</tr>'; |
|
551 | 551 | |
552 | - // Country |
|
553 | - print '<tr><td class="titlefieldcreate">'.$langs->trans('Country').'</td><td>'; |
|
554 | - print $form->select_country((!empty($object->country_id)?$object->country_id:$mysoc->country_code),'country_id'); |
|
555 | - if ($user->admin) print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"),1); |
|
556 | - print '</td></tr>'; |
|
552 | + // Country |
|
553 | + print '<tr><td class="titlefieldcreate">'.$langs->trans('Country').'</td><td>'; |
|
554 | + print $form->select_country((!empty($object->country_id)?$object->country_id:$mysoc->country_code),'country_id'); |
|
555 | + if ($user->admin) print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"),1); |
|
556 | + print '</td></tr>'; |
|
557 | 557 | |
558 | - print "<tr>".'<td>'.$langs->trans("EMail").'</td><td><input type="text" name="email" class="maxwidth200" value="'.dol_escape_htmltag($object->email).'"></td></tr>'; |
|
558 | + print "<tr>".'<td>'.$langs->trans("EMail").'</td><td><input type="text" name="email" class="maxwidth200" value="'.dol_escape_htmltag($object->email).'"></td></tr>'; |
|
559 | 559 | |
560 | - // Payment mode |
|
560 | + // Payment mode |
|
561 | 561 | print "<tr><td>".$langs->trans("PaymentMode")."</td><td>\n"; |
562 | 562 | if ($object->modepaymentid) $selected = $object->modepaymentid; |
563 | 563 | else $selected = ''; |
@@ -565,16 +565,16 @@ discard block |
||
565 | 565 | print "</td></tr>\n"; |
566 | 566 | |
567 | 567 | // Status |
568 | - print "<tr>".'<td>'.$langs->trans("Status").'</td><td>'.$object->getLibStatut(4).'</td></tr>'; |
|
568 | + print "<tr>".'<td>'.$langs->trans("Status").'</td><td>'.$object->getLibStatut(4).'</td></tr>'; |
|
569 | 569 | |
570 | 570 | // Project |
571 | 571 | if (! empty($conf->projet->enabled)) |
572 | 572 | { |
573 | - $formproject=new FormProjets($db); |
|
573 | + $formproject=new FormProjets($db); |
|
574 | 574 | |
575 | 575 | $langs->load('projects'); |
576 | 576 | print '<tr><td>'.$langs->trans('Project').'</td><td>'; |
577 | - $formproject->select_projects(-1, $object->fk_project,'fk_project', 0, 0, 1, 1); |
|
577 | + $formproject->select_projects(-1, $object->fk_project,'fk_project', 0, 0, 1, 1); |
|
578 | 578 | print '</td></tr>'; |
579 | 579 | } |
580 | 580 | |
@@ -584,16 +584,16 @@ discard block |
||
584 | 584 | print $hookmanager->resPrint; |
585 | 585 | if (empty($reshook)) |
586 | 586 | { |
587 | - print $object->showOptionals($extrafields,'edit'); |
|
587 | + print $object->showOptionals($extrafields,'edit'); |
|
588 | 588 | } |
589 | 589 | |
590 | - print "</table>\n"; |
|
590 | + print "</table>\n"; |
|
591 | 591 | |
592 | - dol_fiche_end(); |
|
592 | + dol_fiche_end(); |
|
593 | 593 | |
594 | - print '<div class="center"><input type="submit" class="button" name="save" value="'.$langs->trans("Save").'"> <input type="submit" class="button" name="cancel" value="'.$langs->trans("Cancel").'"></div>'; |
|
594 | + print '<div class="center"><input type="submit" class="button" name="save" value="'.$langs->trans("Save").'"> <input type="submit" class="button" name="cancel" value="'.$langs->trans("Cancel").'"></div>'; |
|
595 | 595 | |
596 | - print "</form>\n"; |
|
596 | + print "</form>\n"; |
|
597 | 597 | } |
598 | 598 | |
599 | 599 | |
@@ -605,66 +605,66 @@ discard block |
||
605 | 605 | /* ************************************************************ */ |
606 | 606 | if (! empty($id) && $action != 'edit') |
607 | 607 | { |
608 | - // Confirmation delete |
|
608 | + // Confirmation delete |
|
609 | 609 | if ($action == 'delete') |
610 | 610 | { |
611 | 611 | $text=$langs->trans("ConfirmDeleteADonation"); |
612 | 612 | print $form->formconfirm($_SERVER["PHP_SELF"] . "&id=" . $object->id, $langs->trans("DeleteADonation"), $text, "confirm_delete", '', '', 1); |
613 | 613 | } |
614 | 614 | |
615 | - $result=$object->fetch($id); |
|
616 | - if ($result < 0) { |
|
617 | - dol_print_error($db,$object->error); exit; |
|
618 | - } |
|
619 | - $result=$object->fetch_optionals(); |
|
620 | - if ($result < 0) { |
|
621 | - dol_print_error($db); exit; |
|
622 | - } |
|
615 | + $result=$object->fetch($id); |
|
616 | + if ($result < 0) { |
|
617 | + dol_print_error($db,$object->error); exit; |
|
618 | + } |
|
619 | + $result=$object->fetch_optionals(); |
|
620 | + if ($result < 0) { |
|
621 | + dol_print_error($db); exit; |
|
622 | + } |
|
623 | 623 | |
624 | - $hselected='card'; |
|
624 | + $hselected='card'; |
|
625 | 625 | |
626 | - $head = donation_prepare_head($object); |
|
627 | - dol_fiche_head($head, $hselected, $langs->trans("Donation"), -1, 'generic'); |
|
626 | + $head = donation_prepare_head($object); |
|
627 | + dol_fiche_head($head, $hselected, $langs->trans("Donation"), -1, 'generic'); |
|
628 | 628 | |
629 | - // Print form confirm |
|
630 | - print $formconfirm; |
|
629 | + // Print form confirm |
|
630 | + print $formconfirm; |
|
631 | 631 | |
632 | 632 | // $linkback = '<a href="'.DOL_URL_ROOT.'/don/list.php'.(! empty($socid)?'?socid='.$socid:'').'">'.$langs->trans("BackToList").'</a>'; |
633 | 633 | $linkback = '<a href="' . BASE_URI . '?controller=don&method=list' . (!empty($socid) ? '&socid=' . $socid : '') . '">' . $langs->trans("BackToList") . '</a>'; |
634 | 634 | |
635 | - $morehtmlref='<div class="refidno">'; |
|
636 | - // Project |
|
637 | - if (! empty($conf->projet->enabled)) |
|
638 | - { |
|
639 | - $langs->load("projects"); |
|
640 | - $morehtmlref.=$langs->trans('Project') . ' '; |
|
641 | - if ($user->rights->don->creer) |
|
642 | - { |
|
643 | - if ($action != 'classify') |
|
644 | - $morehtmlref.='<a href="' . $_SERVER['PHP_SELF'] . '?action=classify&id=' . $object->id . '">' . img_edit($langs->transnoentitiesnoconv('SetProject')) . '</a> : '; |
|
645 | - if ($action == 'classify') { |
|
635 | + $morehtmlref='<div class="refidno">'; |
|
636 | + // Project |
|
637 | + if (! empty($conf->projet->enabled)) |
|
638 | + { |
|
639 | + $langs->load("projects"); |
|
640 | + $morehtmlref.=$langs->trans('Project') . ' '; |
|
641 | + if ($user->rights->don->creer) |
|
642 | + { |
|
643 | + if ($action != 'classify') |
|
644 | + $morehtmlref.='<a href="' . $_SERVER['PHP_SELF'] . '?action=classify&id=' . $object->id . '">' . img_edit($langs->transnoentitiesnoconv('SetProject')) . '</a> : '; |
|
645 | + if ($action == 'classify') { |
|
646 | 646 | $morehtmlref .= '<form method="post" action="' . $_SERVER['PHP_SELF'] . '&id=' . $object->id . '">'; |
647 | - $morehtmlref.='<input type="hidden" name="action" value="classin">'; |
|
648 | - $morehtmlref.='<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">'; |
|
649 | - $morehtmlref.=$formproject->select_projects($object->socid, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1); |
|
650 | - $morehtmlref.='<input type="submit" class="button valignmiddle" value="'.$langs->trans("Modify").'">'; |
|
651 | - $morehtmlref.='</form>'; |
|
652 | - } else { |
|
647 | + $morehtmlref.='<input type="hidden" name="action" value="classin">'; |
|
648 | + $morehtmlref.='<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">'; |
|
649 | + $morehtmlref.=$formproject->select_projects($object->socid, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1); |
|
650 | + $morehtmlref.='<input type="submit" class="button valignmiddle" value="'.$langs->trans("Modify").'">'; |
|
651 | + $morehtmlref.='</form>'; |
|
652 | + } else { |
|
653 | 653 | $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'] . '&id=' . $object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); |
654 | - } |
|
655 | - } else { |
|
656 | - if (! empty($object->fk_project)) { |
|
657 | - $proj = new Project($db); |
|
658 | - $proj->fetch($object->fk_project); |
|
654 | + } |
|
655 | + } else { |
|
656 | + if (! empty($object->fk_project)) { |
|
657 | + $proj = new Project($db); |
|
658 | + $proj->fetch($object->fk_project); |
|
659 | 659 | $morehtmlref .= '<a href="' . BASE_URI . '?controller=projet&methos=card&id=' . $object->fk_project . '" title="' . $langs->trans('ShowProject') . '">'; |
660 | - $morehtmlref.=$proj->ref; |
|
661 | - $morehtmlref.='</a>'; |
|
662 | - } else { |
|
663 | - $morehtmlref.=''; |
|
664 | - } |
|
665 | - } |
|
666 | - } |
|
667 | - $morehtmlref.='</div>'; |
|
660 | + $morehtmlref.=$proj->ref; |
|
661 | + $morehtmlref.='</a>'; |
|
662 | + } else { |
|
663 | + $morehtmlref.=''; |
|
664 | + } |
|
665 | + } |
|
666 | + } |
|
667 | + $morehtmlref.='</div>'; |
|
668 | 668 | |
669 | 669 | |
670 | 670 | dol_banner_tab($object, 'rowid', $linkback, 1, 'rowid', 'ref', $morehtmlref); |
@@ -676,195 +676,195 @@ discard block |
||
676 | 676 | |
677 | 677 | print '<table class="border" width="100%">'; |
678 | 678 | |
679 | - // Date |
|
680 | - print '<tr><td class="titlefield">'.$langs->trans("Date").'</td><td colspan="2">'; |
|
681 | - print dol_print_date($object->date,"day"); |
|
682 | - print "</td>"; |
|
679 | + // Date |
|
680 | + print '<tr><td class="titlefield">'.$langs->trans("Date").'</td><td colspan="2">'; |
|
681 | + print dol_print_date($object->date,"day"); |
|
682 | + print "</td>"; |
|
683 | 683 | |
684 | 684 | print '<tr><td>'.$langs->trans("Amount").'</td><td colspan="2">'; |
685 | - print price($object->amount,0,$langs,0,0,-1,$conf->currency); |
|
686 | - print '</td></tr>'; |
|
685 | + print price($object->amount,0,$langs,0,0,-1,$conf->currency); |
|
686 | + print '</td></tr>'; |
|
687 | 687 | |
688 | - print '<tr><td>'.$langs->trans("PublicDonation").'</td><td colspan="2">'; |
|
689 | - print yn($object->public); |
|
690 | - print '</td></tr>'; |
|
688 | + print '<tr><td>'.$langs->trans("PublicDonation").'</td><td colspan="2">'; |
|
689 | + print yn($object->public); |
|
690 | + print '</td></tr>'; |
|
691 | 691 | |
692 | - print '<tr><td>'.$langs->trans("Company").'</td><td colspan="2">'.$object->societe.'</td></tr>'; |
|
693 | - print '<tr><td>'.$langs->trans("Lastname").'</td><td colspan="2">'.$object->lastname.'</td></tr>'; |
|
694 | - print '<tr><td>'.$langs->trans("Firstname").'</td><td colspan="2">'.$object->firstname.'</td></tr>'; |
|
692 | + print '<tr><td>'.$langs->trans("Company").'</td><td colspan="2">'.$object->societe.'</td></tr>'; |
|
693 | + print '<tr><td>'.$langs->trans("Lastname").'</td><td colspan="2">'.$object->lastname.'</td></tr>'; |
|
694 | + print '<tr><td>'.$langs->trans("Firstname").'</td><td colspan="2">'.$object->firstname.'</td></tr>'; |
|
695 | 695 | |
696 | - // Payment mode |
|
697 | - print "<tr><td>".$langs->trans("PaymentMode")."</td><td>"; |
|
698 | - $form->form_modes_reglement(null, $object->modepaymentid,'none'); |
|
699 | - print "</td></tr>\n"; |
|
696 | + // Payment mode |
|
697 | + print "<tr><td>".$langs->trans("PaymentMode")."</td><td>"; |
|
698 | + $form->form_modes_reglement(null, $object->modepaymentid,'none'); |
|
699 | + print "</td></tr>\n"; |
|
700 | 700 | |
701 | - // Other attributes |
|
702 | - $cols = 2; |
|
703 | - include DOL_DOCUMENT_ROOT . '/core/tpl/extrafields_view.tpl.php'; |
|
701 | + // Other attributes |
|
702 | + $cols = 2; |
|
703 | + include DOL_DOCUMENT_ROOT . '/core/tpl/extrafields_view.tpl.php'; |
|
704 | 704 | |
705 | - print '</table>'; |
|
705 | + print '</table>'; |
|
706 | 706 | |
707 | - print '</div>'; |
|
708 | - print '<div class="fichehalfright">'; |
|
709 | - print '<div class="ficheaddleft">'; |
|
707 | + print '</div>'; |
|
708 | + print '<div class="fichehalfright">'; |
|
709 | + print '<div class="ficheaddleft">'; |
|
710 | 710 | |
711 | - /* |
|
711 | + /* |
|
712 | 712 | * Payments |
713 | 713 | */ |
714 | - $sql = "SELECT p.rowid, p.num_payment, p.datep as dp, p.amount,"; |
|
715 | - $sql.= "c.code as type_code,c.libelle as paiement_type"; |
|
716 | - $sql.= " FROM ".MAIN_DB_PREFIX."payment_donation as p"; |
|
717 | - $sql.= ", ".MAIN_DB_PREFIX."c_paiement as c "; |
|
718 | - $sql.= ", ".MAIN_DB_PREFIX."don as d"; |
|
719 | - $sql.= " WHERE d.rowid = '".$id."'"; |
|
720 | - $sql.= " AND p.fk_donation = d.rowid"; |
|
721 | - $sql.= " AND d.entity IN (".getEntity('donation').")"; |
|
722 | - $sql.= " AND p.fk_typepayment = c.id"; |
|
723 | - $sql.= " ORDER BY dp"; |
|
724 | - |
|
725 | - //print $sql; |
|
726 | - $resql = $db->query($sql); |
|
727 | - if ($resql) |
|
728 | - { |
|
729 | - $num = $db->num_rows($resql); |
|
730 | - $i = 0; $total = 0; |
|
731 | - print '<table class="noborder" width="100%">'; |
|
732 | - print '<tr class="liste_titre">'; |
|
733 | - print '<td>'.$langs->trans("RefPayment").'</td>'; |
|
734 | - print '<td>'.$langs->trans("Date").'</td>'; |
|
735 | - print '<td>'.$langs->trans("Type").'</td>'; |
|
736 | - print '<td align="right">'.$langs->trans("Amount").'</td>'; |
|
737 | - print '</tr>'; |
|
738 | - |
|
739 | - while ($i < $num) |
|
740 | - { |
|
741 | - $objp = $db->fetch_object($resql); |
|
742 | - |
|
743 | - print '<tr class="oddeven"><td>'; |
|
714 | + $sql = "SELECT p.rowid, p.num_payment, p.datep as dp, p.amount,"; |
|
715 | + $sql.= "c.code as type_code,c.libelle as paiement_type"; |
|
716 | + $sql.= " FROM ".MAIN_DB_PREFIX."payment_donation as p"; |
|
717 | + $sql.= ", ".MAIN_DB_PREFIX."c_paiement as c "; |
|
718 | + $sql.= ", ".MAIN_DB_PREFIX."don as d"; |
|
719 | + $sql.= " WHERE d.rowid = '".$id."'"; |
|
720 | + $sql.= " AND p.fk_donation = d.rowid"; |
|
721 | + $sql.= " AND d.entity IN (".getEntity('donation').")"; |
|
722 | + $sql.= " AND p.fk_typepayment = c.id"; |
|
723 | + $sql.= " ORDER BY dp"; |
|
724 | + |
|
725 | + //print $sql; |
|
726 | + $resql = $db->query($sql); |
|
727 | + if ($resql) |
|
728 | + { |
|
729 | + $num = $db->num_rows($resql); |
|
730 | + $i = 0; $total = 0; |
|
731 | + print '<table class="noborder" width="100%">'; |
|
732 | + print '<tr class="liste_titre">'; |
|
733 | + print '<td>'.$langs->trans("RefPayment").'</td>'; |
|
734 | + print '<td>'.$langs->trans("Date").'</td>'; |
|
735 | + print '<td>'.$langs->trans("Type").'</td>'; |
|
736 | + print '<td align="right">'.$langs->trans("Amount").'</td>'; |
|
737 | + print '</tr>'; |
|
738 | + |
|
739 | + while ($i < $num) |
|
740 | + { |
|
741 | + $objp = $db->fetch_object($resql); |
|
742 | + |
|
743 | + print '<tr class="oddeven"><td>'; |
|
744 | 744 | print '<a href="' . BASE_URI . '?controller=don/payment&method=card&id=' . $objp->rowid . '">' . img_object($langs->trans("Payment"), "payment") . ' ' . $objp->rowid . '</a></td>'; |
745 | - print '<td>'.dol_print_date($db->jdate($objp->dp),'day')."</td>\n"; |
|
746 | - $labeltype=$langs->trans("PaymentType".$objp->type_code)!=("PaymentType".$objp->type_code)?$langs->trans("PaymentType".$objp->type_code):$objp->paiement_type; |
|
745 | + print '<td>'.dol_print_date($db->jdate($objp->dp),'day')."</td>\n"; |
|
746 | + $labeltype=$langs->trans("PaymentType".$objp->type_code)!=("PaymentType".$objp->type_code)?$langs->trans("PaymentType".$objp->type_code):$objp->paiement_type; |
|
747 | 747 | print "<td>".$labeltype.' '.$objp->num_payment."</td>\n"; |
748 | - print '<td align="right">'.price($objp->amount)."</td>\n"; |
|
749 | - print "</tr>"; |
|
750 | - $totalpaid += $objp->amount; |
|
751 | - $i++; |
|
752 | - } |
|
753 | - |
|
754 | - if ($object->paid == 0) |
|
755 | - { |
|
756 | - print "<tr><td colspan=\"3\" align=\"right\">".$langs->trans("AlreadyPaid")." :</td><td align=\"right\">".price($totalpaid)."</td></tr>\n"; |
|
757 | - print "<tr><td colspan=\"3\" align=\"right\">".$langs->trans("AmountExpected")." :</td><td align=\"right\">".price($object->amount)."</td></tr>\n"; |
|
758 | - |
|
759 | - $remaintopay = $object->amount - $totalpaid; |
|
760 | - |
|
761 | - print "<tr><td colspan=\"3\" align=\"right\">".$langs->trans("RemainderToPay")." :</td>"; |
|
762 | - print '<td align="right"'.($resteapayeraffiche?' class="amountremaintopay"':'').'><b>'.price($remaintopay)."</b></td></tr>\n"; |
|
763 | - } |
|
764 | - print "</table>"; |
|
765 | - $db->free($resql); |
|
766 | - } |
|
767 | - else |
|
768 | - { |
|
769 | - dol_print_error($db); |
|
770 | - } |
|
748 | + print '<td align="right">'.price($objp->amount)."</td>\n"; |
|
749 | + print "</tr>"; |
|
750 | + $totalpaid += $objp->amount; |
|
751 | + $i++; |
|
752 | + } |
|
753 | + |
|
754 | + if ($object->paid == 0) |
|
755 | + { |
|
756 | + print "<tr><td colspan=\"3\" align=\"right\">".$langs->trans("AlreadyPaid")." :</td><td align=\"right\">".price($totalpaid)."</td></tr>\n"; |
|
757 | + print "<tr><td colspan=\"3\" align=\"right\">".$langs->trans("AmountExpected")." :</td><td align=\"right\">".price($object->amount)."</td></tr>\n"; |
|
758 | + |
|
759 | + $remaintopay = $object->amount - $totalpaid; |
|
760 | + |
|
761 | + print "<tr><td colspan=\"3\" align=\"right\">".$langs->trans("RemainderToPay")." :</td>"; |
|
762 | + print '<td align="right"'.($resteapayeraffiche?' class="amountremaintopay"':'').'><b>'.price($remaintopay)."</b></td></tr>\n"; |
|
763 | + } |
|
764 | + print "</table>"; |
|
765 | + $db->free($resql); |
|
766 | + } |
|
767 | + else |
|
768 | + { |
|
769 | + dol_print_error($db); |
|
770 | + } |
|
771 | 771 | |
772 | - print '</div>'; |
|
773 | - print '</div>'; |
|
774 | - print '</div>'; |
|
772 | + print '</div>'; |
|
773 | + print '</div>'; |
|
774 | + print '</div>'; |
|
775 | 775 | |
776 | - print '<div class="clearboth"></div>'; |
|
776 | + print '<div class="clearboth"></div>'; |
|
777 | 777 | |
778 | 778 | dol_fiche_end(); |
779 | 779 | |
780 | - $remaintopay = $object->amount - $totalpaid; |
|
780 | + $remaintopay = $object->amount - $totalpaid; |
|
781 | 781 | |
782 | - // Actions buttons |
|
782 | + // Actions buttons |
|
783 | 783 | |
784 | - print '<div class="tabsAction">'; |
|
784 | + print '<div class="tabsAction">'; |
|
785 | 785 | |
786 | 786 | print '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER["PHP_SELF"] . '&action=edit&rowid=' . $object->id . '">' . $langs->trans('Modify') . '</a></div>'; |
787 | 787 | |
788 | - if ($object->statut == 0) |
|
789 | - { |
|
788 | + if ($object->statut == 0) |
|
789 | + { |
|
790 | 790 | print '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER["PHP_SELF"] . '&rowid=' . $object->id . '&action=valid_promesse">' . $langs->trans("ValidPromess") . '</a></div>'; |
791 | - } |
|
791 | + } |
|
792 | 792 | |
793 | 793 | if (($object->statut == 0 || $object->statut == 1) && $totalpaid == 0 && $object->paid == 0) |
794 | 794 | { |
795 | 795 | print '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER["PHP_SELF"] . '&rowid=' . $object->id . '&action=set_cancel">' . $langs->trans("ClassifyCanceled") . "</a></div>"; |
796 | 796 | } |
797 | 797 | |
798 | - // Create payment |
|
799 | - if ($object->statut == 1 && $object->paid == 0 && $user->rights->don->creer) |
|
800 | - { |
|
801 | - if ($remaintopay == 0) |
|
802 | - { |
|
803 | - print '<div class="inline-block divButAction"><span class="butActionRefused classfortooltip" title="' . $langs->trans("DisabledBecauseRemainderToPayIsZero") . '">' . $langs->trans('DoPayment') . '</span></div>'; |
|
804 | - } |
|
805 | - else |
|
806 | - { |
|
798 | + // Create payment |
|
799 | + if ($object->statut == 1 && $object->paid == 0 && $user->rights->don->creer) |
|
800 | + { |
|
801 | + if ($remaintopay == 0) |
|
802 | + { |
|
803 | + print '<div class="inline-block divButAction"><span class="butActionRefused classfortooltip" title="' . $langs->trans("DisabledBecauseRemainderToPayIsZero") . '">' . $langs->trans('DoPayment') . '</span></div>'; |
|
804 | + } |
|
805 | + else |
|
806 | + { |
|
807 | 807 | print '<div class="inline-block divButAction"><a class="butAction" href="' . BASE_URI . '?controller=don/payment&method=payment&rowid=' . $object->id . '&action=create">' . $langs->trans('DoPayment') . '</a></div>'; |
808 | - } |
|
809 | - } |
|
808 | + } |
|
809 | + } |
|
810 | 810 | |
811 | - // Classify 'paid' |
|
812 | - if ($object->statut == 1 && round($remaintopay) == 0 && $object->paid == 0 && $user->rights->don->creer) |
|
813 | - { |
|
814 | - print '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER["PHP_SELF"] . '?rowid='.$object->id.'&action=set_paid">'.$langs->trans("ClassifyPaid")."</a></div>"; |
|
815 | - } |
|
811 | + // Classify 'paid' |
|
812 | + if ($object->statut == 1 && round($remaintopay) == 0 && $object->paid == 0 && $user->rights->don->creer) |
|
813 | + { |
|
814 | + print '<div class="inline-block divButAction"><a class="butAction" href="' . $_SERVER["PHP_SELF"] . '?rowid='.$object->id.'&action=set_paid">'.$langs->trans("ClassifyPaid")."</a></div>"; |
|
815 | + } |
|
816 | 816 | |
817 | - // Delete |
|
818 | - if ($user->rights->don->supprimer) |
|
819 | - { |
|
820 | - if ($object->statut == -1 || $object->statut == 0) |
|
821 | - { |
|
817 | + // Delete |
|
818 | + if ($user->rights->don->supprimer) |
|
819 | + { |
|
820 | + if ($object->statut == -1 || $object->statut == 0) |
|
821 | + { |
|
822 | 822 | // TODO: Original href="card.php?rowid='.$object->id.'&action=delete" |
823 | 823 | print '<div class="inline-block divButAction"><a class="butActionDelete" href="?controller=don&method=card&rowid=' . $object->id . '&action=delete">' . $langs->trans("Delete") . "</a></div>"; |
824 | - } |
|
825 | - else |
|
826 | - { |
|
827 | - print '<div class="inline-block divButAction"><a class="butActionRefused classfortooltip" href="#">'.$langs->trans("Delete")."</a></div>"; |
|
828 | - } |
|
829 | - } |
|
830 | - else |
|
831 | - { |
|
832 | - print '<div class="inline-block divButAction"><a class="butActionRefused classfortooltip" href="#">'.$langs->trans("Delete")."</a></div>"; |
|
833 | - } |
|
824 | + } |
|
825 | + else |
|
826 | + { |
|
827 | + print '<div class="inline-block divButAction"><a class="butActionRefused classfortooltip" href="#">'.$langs->trans("Delete")."</a></div>"; |
|
828 | + } |
|
829 | + } |
|
830 | + else |
|
831 | + { |
|
832 | + print '<div class="inline-block divButAction"><a class="butActionRefused classfortooltip" href="#">'.$langs->trans("Delete")."</a></div>"; |
|
833 | + } |
|
834 | 834 | |
835 | - print "</div>"; |
|
835 | + print "</div>"; |
|
836 | 836 | |
837 | 837 | |
838 | 838 | print '<div class="fichecenter"><div class="fichehalfleft">'; |
839 | 839 | |
840 | - /* |
|
840 | + /* |
|
841 | 841 | * Documents generes |
842 | 842 | */ |
843 | - $filename = dol_sanitizeFileName($object->id); |
|
844 | - $filedir = $conf->don->dir_output . "/" . dol_sanitizeFileName($object->id); |
|
843 | + $filename = dol_sanitizeFileName($object->id); |
|
844 | + $filedir = $conf->don->dir_output . "/" . dol_sanitizeFileName($object->id); |
|
845 | 845 | $urlsource = $_SERVER['PHP_SELF'] . '&rowid=' . $object->id; |
846 | - $genallowed = (($object->paid == 0 || $user->admin) && $user->rights->don->lire); |
|
847 | - $delallowed = $user->rights->don->creer; |
|
846 | + $genallowed = (($object->paid == 0 || $user->admin) && $user->rights->don->lire); |
|
847 | + $delallowed = $user->rights->don->creer; |
|
848 | 848 | |
849 | - print $formfile->showdocuments('donation',$filename,$filedir,$urlsource,$genallowed,$delallowed,$object->modelpdf); |
|
849 | + print $formfile->showdocuments('donation',$filename,$filedir,$urlsource,$genallowed,$delallowed,$object->modelpdf); |
|
850 | 850 | |
851 | - // Show links to link elements |
|
852 | - $linktoelem = $form->showLinkToObjectBlock($object, null, array('don')); |
|
853 | - $somethingshown = $form->showLinkedObjectBlock($object, $linktoelem); |
|
851 | + // Show links to link elements |
|
852 | + $linktoelem = $form->showLinkToObjectBlock($object, null, array('don')); |
|
853 | + $somethingshown = $form->showLinkedObjectBlock($object, $linktoelem); |
|
854 | 854 | |
855 | - // Show online payment link |
|
856 | - $useonlinepayment = (! empty($conf->paypal->enabled) || ! empty($conf->stripe->enabled) || ! empty($conf->paybox->enabled)); |
|
855 | + // Show online payment link |
|
856 | + $useonlinepayment = (! empty($conf->paypal->enabled) || ! empty($conf->stripe->enabled) || ! empty($conf->paybox->enabled)); |
|
857 | 857 | |
858 | - if ($useonlinepayment) //$object->statut != Facture::STATUS_DRAFT && |
|
859 | - { |
|
860 | - print '<br><!-- Link to pay -->'."\n"; |
|
861 | - require_once DOL_DOCUMENT_ROOT.'/core/lib/payments.lib.php'; |
|
862 | - print showOnlinePaymentUrl('donation', $object->ref).'<br>'; |
|
863 | - } |
|
858 | + if ($useonlinepayment) //$object->statut != Facture::STATUS_DRAFT && |
|
859 | + { |
|
860 | + print '<br><!-- Link to pay -->'."\n"; |
|
861 | + require_once DOL_DOCUMENT_ROOT.'/core/lib/payments.lib.php'; |
|
862 | + print showOnlinePaymentUrl('donation', $object->ref).'<br>'; |
|
863 | + } |
|
864 | 864 | |
865 | - print '</div><div class="fichehalfright"><div class="ficheaddleft">'; |
|
865 | + print '</div><div class="fichehalfright"><div class="ficheaddleft">'; |
|
866 | 866 | |
867 | - print '</div></div></div>'; |
|
867 | + print '</div></div></div>'; |
|
868 | 868 | } |
869 | 869 | |
870 | 870 | llxFooter(); |
@@ -74,7 +74,9 @@ discard block |
||
74 | 74 | */ |
75 | 75 | |
76 | 76 | $reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some |
77 | -if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); |
|
77 | +if ($reshook < 0) { |
|
78 | + setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); |
|
79 | +} |
|
78 | 80 | |
79 | 81 | if ($action == 'update') |
80 | 82 | { |
@@ -122,7 +124,9 @@ discard block |
||
122 | 124 | |
123 | 125 | // Fill array 'array_options' with data from add form |
124 | 126 | $ret = $extrafields->setOptionalsFromPost($extralabels,$object); |
125 | - if ($ret < 0) $error++; |
|
127 | + if ($ret < 0) { |
|
128 | + $error++; |
|
129 | + } |
|
126 | 130 | |
127 | 131 | if ($object->update($user) > 0) |
128 | 132 | { |
@@ -176,15 +180,16 @@ discard block |
||
176 | 180 | |
177 | 181 | // Fill array 'array_options' with data from add form |
178 | 182 | $ret = $extrafields->setOptionalsFromPost($extralabels,$object); |
179 | - if ($ret < 0) $error++; |
|
183 | + if ($ret < 0) { |
|
184 | + $error++; |
|
185 | + } |
|
180 | 186 | |
181 | 187 | $res = $object->create($user); |
182 | 188 | if ($res > 0) |
183 | 189 | { |
184 | 190 | header("Location: " . $_SERVER['PHP_SELF'] . '&id=' . $res); |
185 | 191 | exit; |
186 | - } |
|
187 | - else |
|
192 | + } else |
|
188 | 193 | { |
189 | 194 | setEventMessages($object->error, $object->errors, 'errors'); |
190 | 195 | } |
@@ -198,8 +203,7 @@ discard block |
||
198 | 203 | { |
199 | 204 | header("Location: index.php"); |
200 | 205 | exit; |
201 | - } |
|
202 | - else |
|
206 | + } else |
|
203 | 207 | { |
204 | 208 | dol_syslog($object->error,LOG_DEBUG); |
205 | 209 | setEventMessages($object->error, $object->errors, 'errors'); |
@@ -214,8 +218,7 @@ discard block |
||
214 | 218 | |
215 | 219 | header("Location: " . $_SERVER['PHP_SELF'] . "&id=" . $id); |
216 | 220 | exit; |
217 | - } |
|
218 | - else { |
|
221 | + } else { |
|
219 | 222 | setEventMessages($object->error, $object->errors, 'errors'); |
220 | 223 | } |
221 | 224 | } |
@@ -226,8 +229,7 @@ discard block |
||
226 | 229 | { |
227 | 230 | header("Location: " . $_SERVER['PHP_SELF'] . "&id=" . $id); |
228 | 231 | exit; |
229 | - } |
|
230 | - else { |
|
232 | + } else { |
|
231 | 233 | setEventMessages($object->error, $object->errors, 'errors'); |
232 | 234 | } |
233 | 235 | } |
@@ -238,12 +240,10 @@ discard block |
||
238 | 240 | { |
239 | 241 | header("Location: " . $_SERVER['PHP_SELF'] . "&id=" . $id); |
240 | 242 | exit; |
241 | - } |
|
242 | - else { |
|
243 | + } else { |
|
243 | 244 | setEventMessages($object->error, $object->errors, 'errors'); |
244 | 245 | } |
245 | -} |
|
246 | -else if ($action == 'classin' && $user->rights->don->creer) |
|
246 | +} else if ($action == 'classin' && $user->rights->don->creer) |
|
247 | 247 | { |
248 | 248 | $object->fetch($id); |
249 | 249 | $object->setProject($projectid); |
@@ -351,13 +351,14 @@ discard block |
||
351 | 351 | print price($outstandingBills, '', $langs, 0, 0, -1, $conf->currency); |
352 | 352 | if ($soc->outstanding_limit != '') |
353 | 353 | { |
354 | - if ($outstandingBills > $soc->outstanding_limit) print img_warning($langs->trans("OutstandingBillReached")); |
|
354 | + if ($outstandingBills > $soc->outstanding_limit) { |
|
355 | + print img_warning($langs->trans("OutstandingBillReached")); |
|
356 | + } |
|
355 | 357 | print ' / ' . price($soc->outstanding_limit, '', $langs, 0, 0, -1, $conf->currency); |
356 | 358 | } |
357 | 359 | print ')'; |
358 | 360 | print '</td>'; |
359 | - } |
|
360 | - else |
|
361 | + } else |
|
361 | 362 | { |
362 | 363 | print '<td colspan="2">'; |
363 | 364 | print $form->select_company($soc->id, 'socid', '(s.client = 1 OR s.client = 3) AND status=1', 'SelectThirdParty', 0, 0, null, 0, 'minwidth300'); |
@@ -413,7 +414,9 @@ discard block |
||
413 | 414 | // Country |
414 | 415 | print '<tr><td><label for="selectcountry_id">'.$langs->trans('Country').'</label></td><td class="maxwidthonsmartphone">'; |
415 | 416 | print $form->select_country(GETPOST('country_id')!=''?GETPOST('country_id'):$object->country_id); |
416 | - if ($user->admin) print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"),1); |
|
417 | + if ($user->admin) { |
|
418 | + print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"),1); |
|
419 | + } |
|
417 | 420 | print '</td></tr>'; |
418 | 421 | |
419 | 422 | print "<tr>".'<td>'.$langs->trans("EMail").'</td><td><input type="text" name="email" value="'.dol_escape_htmltag(GETPOST("email")).'" class="maxwidth200"></td></tr>'; |
@@ -522,8 +525,7 @@ discard block |
||
522 | 525 | if ($object->statut == 0) |
523 | 526 | { |
524 | 527 | print "<tr>".'<td class="fieldrequired">'.$langs->trans("Amount").'</td><td><input type="text" name="amount" size="10" value="'.dol_escape_htmltag($object->amount).'"> '.$langs->trans("Currency".$conf->currency).'</td></tr>'; |
525 | - } |
|
526 | - else |
|
528 | + } else |
|
527 | 529 | { |
528 | 530 | print '<tr><td>'.$langs->trans("Amount").'</td><td>'; |
529 | 531 | print price($object->amount,0,$langs,0,0,-1,$conf->currency); |
@@ -552,15 +554,20 @@ discard block |
||
552 | 554 | // Country |
553 | 555 | print '<tr><td class="titlefieldcreate">'.$langs->trans('Country').'</td><td>'; |
554 | 556 | print $form->select_country((!empty($object->country_id)?$object->country_id:$mysoc->country_code),'country_id'); |
555 | - if ($user->admin) print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"),1); |
|
557 | + if ($user->admin) { |
|
558 | + print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"),1); |
|
559 | + } |
|
556 | 560 | print '</td></tr>'; |
557 | 561 | |
558 | 562 | print "<tr>".'<td>'.$langs->trans("EMail").'</td><td><input type="text" name="email" class="maxwidth200" value="'.dol_escape_htmltag($object->email).'"></td></tr>'; |
559 | 563 | |
560 | 564 | // Payment mode |
561 | 565 | print "<tr><td>".$langs->trans("PaymentMode")."</td><td>\n"; |
562 | - if ($object->modepaymentid) $selected = $object->modepaymentid; |
|
563 | - else $selected = ''; |
|
566 | + if ($object->modepaymentid) { |
|
567 | + $selected = $object->modepaymentid; |
|
568 | + } else { |
|
569 | + $selected = ''; |
|
570 | + } |
|
564 | 571 | $form->select_types_paiements($selected, 'modepayment', 'CRDT', 0, 1); |
565 | 572 | print "</td></tr>\n"; |
566 | 573 | |
@@ -640,8 +647,9 @@ discard block |
||
640 | 647 | $morehtmlref.=$langs->trans('Project') . ' '; |
641 | 648 | if ($user->rights->don->creer) |
642 | 649 | { |
643 | - if ($action != 'classify') |
|
644 | - $morehtmlref.='<a href="' . $_SERVER['PHP_SELF'] . '?action=classify&id=' . $object->id . '">' . img_edit($langs->transnoentitiesnoconv('SetProject')) . '</a> : '; |
|
650 | + if ($action != 'classify') { |
|
651 | + $morehtmlref.='<a href="' . $_SERVER['PHP_SELF'] . '?action=classify&id=' . $object->id . '">' . img_edit($langs->transnoentitiesnoconv('SetProject')) . '</a> : '; |
|
652 | + } |
|
645 | 653 | if ($action == 'classify') { |
646 | 654 | $morehtmlref .= '<form method="post" action="' . $_SERVER['PHP_SELF'] . '&id=' . $object->id . '">'; |
647 | 655 | $morehtmlref.='<input type="hidden" name="action" value="classin">'; |
@@ -763,8 +771,7 @@ discard block |
||
763 | 771 | } |
764 | 772 | print "</table>"; |
765 | 773 | $db->free($resql); |
766 | - } |
|
767 | - else |
|
774 | + } else |
|
768 | 775 | { |
769 | 776 | dol_print_error($db); |
770 | 777 | } |
@@ -801,8 +808,7 @@ discard block |
||
801 | 808 | if ($remaintopay == 0) |
802 | 809 | { |
803 | 810 | print '<div class="inline-block divButAction"><span class="butActionRefused classfortooltip" title="' . $langs->trans("DisabledBecauseRemainderToPayIsZero") . '">' . $langs->trans('DoPayment') . '</span></div>'; |
804 | - } |
|
805 | - else |
|
811 | + } else |
|
806 | 812 | { |
807 | 813 | print '<div class="inline-block divButAction"><a class="butAction" href="' . BASE_URI . '?controller=don/payment&method=payment&rowid=' . $object->id . '&action=create">' . $langs->trans('DoPayment') . '</a></div>'; |
808 | 814 | } |
@@ -821,13 +827,11 @@ discard block |
||
821 | 827 | { |
822 | 828 | // TODO: Original href="card.php?rowid='.$object->id.'&action=delete" |
823 | 829 | print '<div class="inline-block divButAction"><a class="butActionDelete" href="?controller=don&method=card&rowid=' . $object->id . '&action=delete">' . $langs->trans("Delete") . "</a></div>"; |
824 | - } |
|
825 | - else |
|
830 | + } else |
|
826 | 831 | { |
827 | 832 | print '<div class="inline-block divButAction"><a class="butActionRefused classfortooltip" href="#">'.$langs->trans("Delete")."</a></div>"; |
828 | 833 | } |
829 | - } |
|
830 | - else |
|
834 | + } else |
|
831 | 835 | { |
832 | 836 | print '<div class="inline-block divButAction"><a class="butActionRefused classfortooltip" href="#">'.$langs->trans("Delete")."</a></div>"; |
833 | 837 | } |
@@ -855,9 +859,11 @@ discard block |
||
855 | 859 | // Show online payment link |
856 | 860 | $useonlinepayment = (! empty($conf->paypal->enabled) || ! empty($conf->stripe->enabled) || ! empty($conf->paybox->enabled)); |
857 | 861 | |
858 | - if ($useonlinepayment) //$object->statut != Facture::STATUS_DRAFT && |
|
862 | + if ($useonlinepayment) { |
|
863 | + //$object->statut != Facture::STATUS_DRAFT && |
|
859 | 864 | { |
860 | 865 | print '<br><!-- Link to pay -->'."\n"; |
866 | + } |
|
861 | 867 | require_once DOL_DOCUMENT_ROOT.'/core/lib/payments.lib.php'; |
862 | 868 | print showOnlinePaymentUrl('donation', $object->ref).'<br>'; |
863 | 869 | } |
@@ -116,26 +116,47 @@ discard block |
||
116 | 116 | } |
117 | 117 | |
118 | 118 | // Clean parameters |
119 | - if (isset($this->fk_donation)) $this->fk_donation = trim($this->fk_donation); |
|
120 | - if (isset($this->amount)) $this->amount = trim($this->amount); |
|
121 | - if (isset($this->fk_typepayment)) $this->fk_typepayment = trim($this->fk_typepayment); |
|
122 | - if (isset($this->num_payment)) $this->num_payment = trim($this->num_payment); |
|
123 | - if (isset($this->note)) $this->note = trim($this->note); |
|
124 | - if (isset($this->fk_bank)) $this->fk_bank = trim($this->fk_bank); |
|
125 | - if (isset($this->fk_user_creat)) $this->fk_user_creat = trim($this->fk_user_creat); |
|
126 | - if (isset($this->fk_user_modif)) $this->fk_user_modif = trim($this->fk_user_modif); |
|
119 | + if (isset($this->fk_donation)) { |
|
120 | + $this->fk_donation = trim($this->fk_donation); |
|
121 | + } |
|
122 | + if (isset($this->amount)) { |
|
123 | + $this->amount = trim($this->amount); |
|
124 | + } |
|
125 | + if (isset($this->fk_typepayment)) { |
|
126 | + $this->fk_typepayment = trim($this->fk_typepayment); |
|
127 | + } |
|
128 | + if (isset($this->num_payment)) { |
|
129 | + $this->num_payment = trim($this->num_payment); |
|
130 | + } |
|
131 | + if (isset($this->note)) { |
|
132 | + $this->note = trim($this->note); |
|
133 | + } |
|
134 | + if (isset($this->fk_bank)) { |
|
135 | + $this->fk_bank = trim($this->fk_bank); |
|
136 | + } |
|
137 | + if (isset($this->fk_user_creat)) { |
|
138 | + $this->fk_user_creat = trim($this->fk_user_creat); |
|
139 | + } |
|
140 | + if (isset($this->fk_user_modif)) { |
|
141 | + $this->fk_user_modif = trim($this->fk_user_modif); |
|
142 | + } |
|
127 | 143 | |
128 | 144 | $totalamount = 0; |
129 | - foreach ($this->amounts as $key => $value) // How payment is dispatch |
|
145 | + foreach ($this->amounts as $key => $value) { |
|
146 | + // How payment is dispatch |
|
130 | 147 | { |
131 | 148 | $newvalue = price2num($value, 'MT'); |
149 | + } |
|
132 | 150 | $this->amounts[$key] = $newvalue; |
133 | 151 | $totalamount += $newvalue; |
134 | 152 | } |
135 | 153 | $totalamount = price2num($totalamount); |
136 | 154 | |
137 | 155 | // Check parameters |
138 | - if ($totalamount == 0) return -1; // On accepte les montants negatifs pour les rejets de prelevement mais pas null |
|
156 | + if ($totalamount == 0) { |
|
157 | + return -1; |
|
158 | + } |
|
159 | + // On accepte les montants negatifs pour les rejets de prelevement mais pas null |
|
139 | 160 | |
140 | 161 | |
141 | 162 | $this->db->begin(); |
@@ -260,14 +281,30 @@ discard block |
||
260 | 281 | |
261 | 282 | // Clean parameters |
262 | 283 | |
263 | - if (isset($this->fk_donation)) $this->fk_donation = trim($this->fk_donation); |
|
264 | - if (isset($this->amount)) $this->amount = trim($this->amount); |
|
265 | - if (isset($this->fk_typepayment)) $this->fk_typepayment = trim($this->fk_typepayment); |
|
266 | - if (isset($this->num_payment)) $this->num_payment = trim($this->num_payment); |
|
267 | - if (isset($this->note)) $this->note = trim($this->note); |
|
268 | - if (isset($this->fk_bank)) $this->fk_bank = trim($this->fk_bank); |
|
269 | - if (isset($this->fk_user_creat)) $this->fk_user_creat = trim($this->fk_user_creat); |
|
270 | - if (isset($this->fk_user_modif)) $this->fk_user_modif = trim($this->fk_user_modif); |
|
284 | + if (isset($this->fk_donation)) { |
|
285 | + $this->fk_donation = trim($this->fk_donation); |
|
286 | + } |
|
287 | + if (isset($this->amount)) { |
|
288 | + $this->amount = trim($this->amount); |
|
289 | + } |
|
290 | + if (isset($this->fk_typepayment)) { |
|
291 | + $this->fk_typepayment = trim($this->fk_typepayment); |
|
292 | + } |
|
293 | + if (isset($this->num_payment)) { |
|
294 | + $this->num_payment = trim($this->num_payment); |
|
295 | + } |
|
296 | + if (isset($this->note)) { |
|
297 | + $this->note = trim($this->note); |
|
298 | + } |
|
299 | + if (isset($this->fk_bank)) { |
|
300 | + $this->fk_bank = trim($this->fk_bank); |
|
301 | + } |
|
302 | + if (isset($this->fk_user_creat)) { |
|
303 | + $this->fk_user_creat = trim($this->fk_user_creat); |
|
304 | + } |
|
305 | + if (isset($this->fk_user_modif)) { |
|
306 | + $this->fk_user_modif = trim($this->fk_user_modif); |
|
307 | + } |
|
271 | 308 | |
272 | 309 | // Check parameters |
273 | 310 | // Put here code to add control on parameters values |
@@ -522,7 +559,9 @@ discard block |
||
522 | 559 | $acc->fetch($accountid); |
523 | 560 | |
524 | 561 | $total = $this->total; |
525 | - if ($mode == 'payment_donation') $amount = $total; |
|
562 | + if ($mode == 'payment_donation') { |
|
563 | + $amount = $total; |
|
564 | + } |
|
526 | 565 | |
527 | 566 | // Insert payment into llx_bank |
528 | 567 | $bank_line_id = $acc->addline( |
@@ -548,7 +587,9 @@ discard block |
||
548 | 587 | |
549 | 588 | // Add link 'payment', 'payment_supplier', 'payment_donation' in bank_url between payment and bank transaction |
550 | 589 | $url = ''; |
551 | - if ($mode == 'payment_donation') $url = DOL_URL_ROOT . '/don/payment/card.php?rowid='; |
|
590 | + if ($mode == 'payment_donation') { |
|
591 | + $url = DOL_URL_ROOT . '/don/payment/card.php?rowid='; |
|
592 | + } |
|
552 | 593 | if ($url) { |
553 | 594 | $result = $acc->add_url_line($bank_line_id, $this->id, $url, '(paiement)', $mode); |
554 | 595 | if ($result <= 0) { |
@@ -606,16 +647,24 @@ discard block |
||
606 | 647 | |
607 | 648 | $result = ''; |
608 | 649 | |
609 | - if (empty($this->ref)) $this->ref = $this->lib; |
|
650 | + if (empty($this->ref)) { |
|
651 | + $this->ref = $this->lib; |
|
652 | + } |
|
610 | 653 | $label = $langs->trans("ShowPayment") . ': ' . $this->ref; |
611 | 654 | |
612 | 655 | if (!empty($this->id)) { |
613 | 656 | $link = '<a href="' . DOL_URL_ROOT . '/don/payment/card.php?id=' . $this->id . '" title="' . dol_escape_htmltag($label, 1) . '" class="classfortooltip">'; |
614 | 657 | $linkend = '</a>'; |
615 | 658 | |
616 | - if ($withpicto) $result .= ($link . img_object($label, 'payment', 'class="classfortooltip"') . $linkend . ' '); |
|
617 | - if ($withpicto && $withpicto != 2) $result .= ' '; |
|
618 | - if ($withpicto != 2) $result .= $link . ($maxlen ? dol_trunc($this->ref, $maxlen) : $this->ref) . $linkend; |
|
659 | + if ($withpicto) { |
|
660 | + $result .= ($link . img_object($label, 'payment', 'class="classfortooltip"') . $linkend . ' '); |
|
661 | + } |
|
662 | + if ($withpicto && $withpicto != 2) { |
|
663 | + $result .= ' '; |
|
664 | + } |
|
665 | + if ($withpicto != 2) { |
|
666 | + $result .= $link . ($maxlen ? dol_trunc($this->ref, $maxlen) : $this->ref) . $linkend; |
|
667 | + } |
|
619 | 668 | } |
620 | 669 | |
621 | 670 | return $result; |
@@ -63,8 +63,8 @@ discard block |
||
63 | 63 | |
64 | 64 | if ($action == 'classin' && $user->rights->don->creer) |
65 | 65 | { |
66 | - $object->fetch($id); |
|
67 | - $object->setProject($projectid); |
|
66 | + $object->fetch($id); |
|
67 | + $object->setProject($projectid); |
|
68 | 68 | } |
69 | 69 | |
70 | 70 | /* |
@@ -80,59 +80,59 @@ discard block |
||
80 | 80 | |
81 | 81 | if ($id > 0 || ! empty($ref)) |
82 | 82 | { |
83 | - $object = new Don($db); |
|
84 | - $object->fetch($id,$ref); |
|
83 | + $object = new Don($db); |
|
84 | + $object->fetch($id,$ref); |
|
85 | 85 | |
86 | - $head = donation_prepare_head($object); |
|
86 | + $head = donation_prepare_head($object); |
|
87 | 87 | |
88 | - dol_fiche_head($head, 'note', $langs->trans("Donation"), -1, 'generic'); |
|
88 | + dol_fiche_head($head, 'note', $langs->trans("Donation"), -1, 'generic'); |
|
89 | 89 | |
90 | 90 | // $linkback = '<a href="'.DOL_URL_ROOT.'/don/list.php'.(! empty($socid)?'?socid='.$socid:'').'">'.$langs->trans("BackToList").'</a>'; |
91 | 91 | $linkback = '<a href="' . BASE_URI . '?controller=don&method=list' . (!empty($socid) ? '&socid=' . $socid : '') . '">' . $langs->trans("BackToList") . '</a>'; |
92 | 92 | |
93 | - $morehtmlref='<div class="refidno">'; |
|
94 | - // Project |
|
95 | - if (! empty($conf->projet->enabled)) |
|
96 | - { |
|
97 | - $langs->load("projects"); |
|
98 | - $morehtmlref.=$langs->trans('Project') . ' '; |
|
99 | - if ($user->rights->don->creer) |
|
100 | - { |
|
101 | - if ($action != 'classify') |
|
102 | - // $morehtmlref.='<a href="' . $_SERVER['PHP_SELF'] . '?action=classify&id=' . $object->id . '">' . img_edit($langs->transnoentitiesnoconv('SetProject')) . '</a> : '; |
|
103 | - if ($action == 'classify') { |
|
93 | + $morehtmlref='<div class="refidno">'; |
|
94 | + // Project |
|
95 | + if (! empty($conf->projet->enabled)) |
|
96 | + { |
|
97 | + $langs->load("projects"); |
|
98 | + $morehtmlref.=$langs->trans('Project') . ' '; |
|
99 | + if ($user->rights->don->creer) |
|
100 | + { |
|
101 | + if ($action != 'classify') |
|
102 | + // $morehtmlref.='<a href="' . $_SERVER['PHP_SELF'] . '?action=classify&id=' . $object->id . '">' . img_edit($langs->transnoentitiesnoconv('SetProject')) . '</a> : '; |
|
103 | + if ($action == 'classify') { |
|
104 | 104 | $morehtmlref .= '<form method="post" action="' . $_SERVER['PHP_SELF'] . '&id=' . $object->id . '">'; |
105 | - $morehtmlref.='<input type="hidden" name="action" value="classin">'; |
|
106 | - $morehtmlref.='<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">'; |
|
107 | - $morehtmlref.=$formproject->select_projects($object->socid, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1); |
|
108 | - $morehtmlref.='<input type="submit" class="button valignmiddle" value="'.$langs->trans("Modify").'">'; |
|
109 | - $morehtmlref.='</form>'; |
|
110 | - } else { |
|
105 | + $morehtmlref.='<input type="hidden" name="action" value="classin">'; |
|
106 | + $morehtmlref.='<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">'; |
|
107 | + $morehtmlref.=$formproject->select_projects($object->socid, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1); |
|
108 | + $morehtmlref.='<input type="submit" class="button valignmiddle" value="'.$langs->trans("Modify").'">'; |
|
109 | + $morehtmlref.='</form>'; |
|
110 | + } else { |
|
111 | 111 | $morehtmlref .= $form->form_project($_SERVER['PHP_SELF'] . '&id=' . $object->id, $object->socid, $object->fk_project, 'none', 0, 0, 0, 1); |
112 | - } |
|
113 | - } else { |
|
114 | - if (! empty($object->fk_project)) { |
|
115 | - $proj = new Project($db); |
|
116 | - $proj->fetch($object->fk_project); |
|
112 | + } |
|
113 | + } else { |
|
114 | + if (! empty($object->fk_project)) { |
|
115 | + $proj = new Project($db); |
|
116 | + $proj->fetch($object->fk_project); |
|
117 | 117 | $morehtmlref .= '<a href="' . BASE_URI . '?controller=projet&method=card&id=' . $object->fk_project . '" title="' . $langs->trans('ShowProject') . '">'; |
118 | - $morehtmlref.=$proj->ref; |
|
119 | - $morehtmlref.='</a>'; |
|
120 | - } else { |
|
121 | - $morehtmlref.=''; |
|
122 | - } |
|
123 | - } |
|
124 | - } |
|
125 | - $morehtmlref.='</div>'; |
|
118 | + $morehtmlref.=$proj->ref; |
|
119 | + $morehtmlref.='</a>'; |
|
120 | + } else { |
|
121 | + $morehtmlref.=''; |
|
122 | + } |
|
123 | + } |
|
124 | + } |
|
125 | + $morehtmlref.='</div>'; |
|
126 | 126 | |
127 | - dol_banner_tab($object, 'rowid', $linkback, 1, 'rowid', 'ref', $morehtmlref); |
|
127 | + dol_banner_tab($object, 'rowid', $linkback, 1, 'rowid', 'ref', $morehtmlref); |
|
128 | 128 | |
129 | - print '<div class="fichecenter">'; |
|
130 | - print '<div class="underbanner clearboth"></div>'; |
|
129 | + print '<div class="fichecenter">'; |
|
130 | + print '<div class="underbanner clearboth"></div>'; |
|
131 | 131 | |
132 | - $cssclass="titlefield"; |
|
133 | - include DOL_DOCUMENT_ROOT.'/core/tpl/notes.tpl.php'; |
|
132 | + $cssclass="titlefield"; |
|
133 | + include DOL_DOCUMENT_ROOT.'/core/tpl/notes.tpl.php'; |
|
134 | 134 | |
135 | - dol_fiche_end(); |
|
135 | + dol_fiche_end(); |
|
136 | 136 | } |
137 | 137 | |
138 | 138 | llxFooter(); |
@@ -47,7 +47,9 @@ discard block |
||
47 | 47 | |
48 | 48 | // Security check |
49 | 49 | $socid=0; |
50 | -if ($user->societe_id) $socid=$user->societe_id; |
|
50 | +if ($user->societe_id) { |
|
51 | + $socid=$user->societe_id; |
|
52 | +} |
|
51 | 53 | $result=restrictedArea($user,'don',$id,''); |
52 | 54 | |
53 | 55 | $object = new Don($db); |
@@ -98,10 +100,11 @@ discard block |
||
98 | 100 | $morehtmlref.=$langs->trans('Project') . ' '; |
99 | 101 | if ($user->rights->don->creer) |
100 | 102 | { |
101 | - if ($action != 'classify') |
|
102 | - // $morehtmlref.='<a href="' . $_SERVER['PHP_SELF'] . '?action=classify&id=' . $object->id . '">' . img_edit($langs->transnoentitiesnoconv('SetProject')) . '</a> : '; |
|
103 | + if ($action != 'classify') { |
|
104 | + // $morehtmlref.='<a href="' . $_SERVER['PHP_SELF'] . '?action=classify&id=' . $object->id . '">' . img_edit($langs->transnoentitiesnoconv('SetProject')) . '</a> : '; |
|
103 | 105 | if ($action == 'classify') { |
104 | 106 | $morehtmlref .= '<form method="post" action="' . $_SERVER['PHP_SELF'] . '&id=' . $object->id . '">'; |
107 | + } |
|
105 | 108 | $morehtmlref.='<input type="hidden" name="action" value="classin">'; |
106 | 109 | $morehtmlref.='<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">'; |
107 | 110 | $morehtmlref.=$formproject->select_projects($object->socid, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1); |
@@ -40,7 +40,9 @@ discard block |
||
40 | 40 | $projectid = (GETPOST('projectid') ? GETPOST('projectid', 'int') : 0); |
41 | 41 | |
42 | 42 | // Security check |
43 | -if ($user->societe_id) $socid = $user->societe_id; |
|
43 | +if ($user->societe_id) { |
|
44 | + $socid = $user->societe_id; |
|
45 | +} |
|
44 | 46 | $result = restrictedArea($user, 'don', $id, ''); |
45 | 47 | |
46 | 48 | $object = new Don($db); |
@@ -79,10 +81,11 @@ discard block |
||
79 | 81 | $langs->load("projects"); |
80 | 82 | $morehtmlref .= $langs->trans('Project') . ' '; |
81 | 83 | if ($user->rights->don->creer) { |
82 | - if ($action != 'classify') |
|
83 | - // $morehtmlref.='<a href="' . $_SERVER['PHP_SELF'] . '?action=classify&id=' . $object->id . '">' . img_edit($langs->transnoentitiesnoconv('SetProject')) . '</a> : '; |
|
84 | + if ($action != 'classify') { |
|
85 | + // $morehtmlref.='<a href="' . $_SERVER['PHP_SELF'] . '?action=classify&id=' . $object->id . '">' . img_edit($langs->transnoentitiesnoconv('SetProject')) . '</a> : '; |
|
84 | 86 | if ($action == 'classify') { |
85 | 87 | $morehtmlref .= '<form method="post" action="' . $_SERVER['PHP_SELF'] . '&id=' . $object->id . '">'; |
88 | + } |
|
86 | 89 | $morehtmlref .= '<input type="hidden" name="action" value="classin">'; |
87 | 90 | $morehtmlref .= '<input type="hidden" name="token" value="' . $_SESSION['newtoken'] . '">'; |
88 | 91 | $morehtmlref .= $formproject->select_projects($object->socid, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1); |