2006-05-05 14:59:48 +00:00
< ? php
/* Copyright ( C ) 2003 - 2005 Rodolphe Quiedeville < rodolphe @ quiedeville . org >
2011-04-17 07:15:17 +00:00
* Copyright ( C ) 2004 - 2011 Laurent Destailleur < eldy @ users . sourceforge . net >
2006-05-05 14:59:48 +00:00
* Copyright ( C ) 2004 Sebastien Di Cintio < sdicintio @ ressource - toi . org >
* Copyright ( C ) 2004 Benoit Mortier < benoit . mortier @ opensides . be >
* Copyright ( C ) 2004 Eric Seigne < eric . seigne @ ryxeo . com >
2018-10-27 12:43:12 +00:00
* Copyright ( C ) 2005 - 2014 Regis Houssin < regis . houssin @ inodbox . com >
2013-08-14 10:48:00 +00:00
* Copyright ( C ) 2011 - 2013 Juanjo Menent < jmenent @ 2 byte . es >
2018-05-03 19:27:52 +00:00
* Copyright ( C ) 2011 - 2018 Philippe Grand < philippe . grand @ atoo - net . com >
* Copyright ( C ) 2015 Claudio Aschieri < c . aschieri @ 19. coop >
2025-02-08 00:49:29 +00:00
* Copyright ( C ) 2024 - 2025 MDW < mdeweerd @ users . noreply . github . com >
2026-06-25 17:01:16 +00:00
* Copyright ( C ) 2024 - 2026 Frédéric France < frederic . france @ free . fr >
2011-08-31 18:47:29 +00:00
*
2006-05-05 14:59:48 +00:00
* This program is free software ; you can redistribute it and / or modify
* it under the terms of the GNU General Public License as published by
2013-01-16 14:36:08 +00:00
* the Free Software Foundation ; either version 3 of the License , or
2006-05-05 14:59:48 +00:00
* ( at your option ) any later version .
*
* This program is distributed in the hope that it will be useful ,
* but WITHOUT ANY WARRANTY ; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
* GNU General Public License for more details .
*
* You should have received a copy of the GNU General Public License
2019-09-23 19:55:30 +00:00
* along with this program . If not , see < https :// www . gnu . org / licenses />.
2006-05-05 14:59:48 +00:00
*/
/**
2020-10-06 10:05:24 +00:00
* \file htdocs / admin / delivery . php
* \ingroup delivery
* \brief age to setup extra fields of delivery
2010-02-24 23:29:46 +00:00
*/
2012-08-22 21:24:21 +00:00
require '../main.inc.php' ;
2012-08-22 21:11:24 +00:00
require_once DOL_DOCUMENT_ROOT . '/core/lib/admin.lib.php' ;
2017-05-29 13:25:37 +00:00
require_once DOL_DOCUMENT_ROOT . '/core/lib/pdf.lib.php' ;
2015-12-16 15:18:29 +00:00
require_once DOL_DOCUMENT_ROOT . '/core/lib/expedition.lib.php' ;
2020-10-05 11:59:06 +00:00
require_once DOL_DOCUMENT_ROOT . '/delivery/class/delivery.class.php' ;
2006-05-05 14:59:48 +00:00
2024-11-04 22:53:20 +00:00
/**
* @ var Conf $conf
* @ var DoliDB $db
* @ var HookManager $hookmanager
* @ var Societe $mysoc
* @ var Translate $langs
* @ var User $user
*/
2018-05-26 16:41:16 +00:00
// Load translation files required by the page
2025-09-11 11:31:34 +00:00
$langs -> loadLangs ( array ( " admin " , " sendings " , " other " ));
2006-05-05 14:59:48 +00:00
2021-02-26 21:04:03 +00:00
if ( ! $user -> admin ) {
accessforbidden ();
}
2006-05-05 14:59:48 +00:00
2019-01-27 10:55:16 +00:00
$action = GETPOST ( 'action' , 'alpha' );
$value = GETPOST ( 'value' , 'alpha' );
2022-01-26 12:49:46 +00:00
$modulepart = GETPOST ( 'modulepart' , 'aZ09' ); // Used by actions_setmoduleoptions.inc.php
2019-01-27 10:55:16 +00:00
$label = GETPOST ( 'label' , 'alpha' );
$scandir = GETPOST ( 'scan_dir' , 'alpha' );
2019-11-14 11:09:15 +00:00
$type = 'delivery' ;
2006-05-05 14:59:48 +00:00
2017-06-01 10:11:45 +00:00
2006-05-05 14:59:48 +00:00
/*
* Actions
*/
2024-11-10 10:16:23 +00:00
$error = 0 ;
2009-01-31 15:23:05 +00:00
2017-06-01 10:11:45 +00:00
include DOL_DOCUMENT_ROOT . '/core/actions_setmoduleoptions.inc.php' ;
2022-09-21 12:38:14 +00:00
2025-12-15 12:14:04 +00:00
// Shipment note. We force MAIN_SUBMODULE_EXPEDITION to on because this var is still used. TODO We should remove it, only MAIN_SUBMODULE_DELIVERY must be used.
2024-03-12 10:46:12 +00:00
if ( isModEnabled ( 'shipping' ) && ! getDolGlobalString ( 'MAIN_SUBMODULE_EXPEDITION' )) {
2022-09-21 12:38:14 +00:00
// This option should always be set to on when module is on.
dolibarr_set_const ( $db , " MAIN_SUBMODULE_EXPEDITION " , " 1 " , 'chaine' , 0 , '' , $conf -> entity );
}
// Delivery note
if ( $action == 'activate_delivery' ) {
dolibarr_set_const ( $db , " MAIN_SUBMODULE_EXPEDITION " , " 1 " , 'chaine' , 0 , '' , $conf -> entity ); // We must also enable this
dolibarr_set_const ( $db , " MAIN_SUBMODULE_DELIVERY " , " 1 " , 'chaine' , 0 , '' , $conf -> entity );
header ( " Location: delivery.php " );
exit ;
} elseif ( $action == 'disable_delivery' ) {
dolibarr_del_const ( $db , " MAIN_SUBMODULE_DELIVERY " , $conf -> entity );
header ( " Location: delivery.php " );
exit ;
}
2021-02-26 21:04:03 +00:00
if ( $action == 'updateMask' ) {
2023-01-04 14:10:09 +00:00
$maskconstdelivery = GETPOST ( 'maskconstdelivery' , 'aZ09' );
2020-10-28 16:49:52 +00:00
$maskdelivery = GETPOST ( 'maskdelivery' , 'alpha' );
2024-09-18 01:27:25 +00:00
$res = 0 ;
2023-01-04 14:10:09 +00:00
if ( $maskconstdelivery && preg_match ( '/_MASK$/' , $maskconstdelivery )) {
2021-02-26 21:04:03 +00:00
$res = dolibarr_set_const ( $db , $maskconstdelivery , $maskdelivery , 'chaine' , 0 , '' , $conf -> entity );
}
2011-08-31 18:47:29 +00:00
2021-02-26 21:04:03 +00:00
if ( ! ( $res > 0 )) {
$error ++ ;
}
2011-08-31 14:28:42 +00:00
2021-02-26 21:04:03 +00:00
if ( ! $error ) {
2020-10-28 16:49:52 +00:00
setEventMessages ( $langs -> trans ( " SetupSaved " ), null , 'mesgs' );
} else {
setEventMessages ( $langs -> trans ( " Error " ), null , 'errors' );
}
2008-03-05 23:01:32 +00:00
}
2021-02-26 21:04:03 +00:00
if ( $action == 'set_DELIVERY_FREE_TEXT' ) {
2020-10-28 16:49:52 +00:00
$free = GETPOST ( 'DELIVERY_FREE_TEXT' , 'restricthtml' ); // No alpha here, we want exact string
$res = dolibarr_set_const ( $db , " DELIVERY_FREE_TEXT " , $free , 'chaine' , 0 , '' , $conf -> entity );
2019-07-18 16:19:51 +00:00
2021-02-26 21:04:03 +00:00
if ( ! ( $res > 0 )) {
$error ++ ;
}
2019-07-18 16:19:51 +00:00
2021-02-26 21:04:03 +00:00
if ( ! $error ) {
2020-10-28 16:49:52 +00:00
setEventMessages ( $langs -> trans ( " SetupSaved " ), null , 'mesgs' );
} else {
setEventMessages ( $langs -> trans ( " Error " ), null , 'errors' );
}
2019-07-18 16:19:51 +00:00
}
2021-02-26 21:04:03 +00:00
if ( $action == 'specimen' ) {
2020-10-28 16:49:52 +00:00
$modele = GETPOST ( 'module' , 'alpha' );
$sending = new Delivery ( $db );
$sending -> initAsSpecimen ();
// Search template files
2023-12-04 10:41:14 +00:00
$file = '' ;
$classname = '' ;
2020-10-28 16:49:52 +00:00
$dirmodels = array_merge ( array ( '/' ), ( array ) $conf -> modules_parts [ 'models' ]);
2021-02-26 21:04:03 +00:00
foreach ( $dirmodels as $reldir ) {
2020-10-28 16:49:52 +00:00
$file = dol_buildpath ( $reldir . " core/modules/delivery/doc/pdf_ " . $modele . " .modules.php " , 0 );
2021-02-26 21:04:03 +00:00
if ( file_exists ( $file )) {
2020-10-28 16:49:52 +00:00
$classname = " pdf_ " . $modele ;
break ;
}
}
2024-03-12 15:15:33 +00:00
if ( $classname !== '' ) {
2020-10-28 16:49:52 +00:00
require_once $file ;
$module = new $classname ( $db );
2024-03-24 20:35:55 +00:00
'@phan-var-force ModelePDFDeliveryOrder $module' ;
2020-10-28 16:49:52 +00:00
2021-02-26 21:04:03 +00:00
if ( $module -> write_file ( $sending , $langs ) > 0 ) {
2020-10-28 16:49:52 +00:00
header ( " Location: " . DOL_URL_ROOT . " /document.php?modulepart=delivery&file=SPECIMEN.pdf " );
return ;
} else {
setEventMessages ( $module -> error , $module -> errors , 'errors' );
dol_syslog ( $module -> error , LOG_ERR );
}
} else {
2015-10-28 18:28:18 +00:00
setEventMessages ( $langs -> trans ( " ErrorModuleNotFound " ), null , 'errors' );
2020-10-28 16:49:52 +00:00
dol_syslog ( $langs -> trans ( " ErrorModuleNotFound " ), LOG_ERR );
}
2007-10-21 23:56:56 +00:00
}
2006-05-05 14:59:48 +00:00
2021-02-26 21:04:03 +00:00
if ( $action == 'set' ) {
2020-10-28 16:49:52 +00:00
$ret = addDocumentModel ( $value , $type , $label , $scandir );
2006-05-05 14:59:48 +00:00
}
2021-02-26 21:04:03 +00:00
if ( $action == 'del' ) {
2020-10-28 16:49:52 +00:00
$ret = delDocumentModel ( $value , $type );
2021-02-26 21:04:03 +00:00
if ( $ret > 0 ) {
2023-05-05 10:43:09 +00:00
if ( getDolGlobalString ( 'DELIVERY_ADDON_PDF' ) == $value ) {
2021-02-26 21:04:03 +00:00
dolibarr_del_const ( $db , 'DELIVERY_ADDON_PDF' , $conf -> entity );
}
2020-10-28 16:49:52 +00:00
}
2006-05-05 14:59:48 +00:00
}
2021-02-26 21:04:03 +00:00
if ( $action == 'setdoc' ) {
if ( dolibarr_set_const ( $db , " DELIVERY_ADDON_PDF " , $value , 'chaine' , 0 , '' , $conf -> entity )) {
2020-10-28 16:49:52 +00:00
// La constante qui a ete lue en avant du nouveau set
// on passe donc par une variable pour avoir un affichage coherent
$conf -> global -> DELIVERY_ADDON_PDF = $value ;
}
// On active le modele
$ret = delDocumentModel ( $value , $type );
2021-02-26 21:04:03 +00:00
if ( $ret > 0 ) {
2020-10-28 16:49:52 +00:00
$ret = addDocumentModel ( $value , $type , $label , $scandir );
}
2008-09-02 10:33:12 +00:00
}
2021-02-26 21:04:03 +00:00
if ( $action == 'setmod' ) {
2024-01-11 08:59:52 +00:00
// TODO Verify if the chosen numbering module can be activated
// by calling method canBeActivated
2006-05-05 14:59:48 +00:00
2020-10-28 16:49:52 +00:00
dolibarr_set_const ( $db , " DELIVERY_ADDON_NUMBER " , $value , 'chaine' , 0 , '' , $conf -> entity );
2006-05-05 14:59:48 +00:00
}
2022-09-21 12:38:14 +00:00
2006-05-05 14:59:48 +00:00
/*
2008-10-25 11:16:02 +00:00
* View
2006-05-05 14:59:48 +00:00
*/
2008-10-25 11:16:02 +00:00
2019-11-14 11:09:15 +00:00
$dirmodels = array_merge ( array ( '/' ), ( array ) $conf -> modules_parts [ 'models' ]);
2006-05-05 14:59:48 +00:00
2024-06-08 12:53:14 +00:00
llxHeader ( '' , '' , '' , '' , 0 , 0 , '' , '' , '' , 'mod-admin page-delivery' );
2006-05-05 14:59:48 +00:00
2019-11-14 11:09:15 +00:00
$form = new Form ( $db );
2012-04-21 16:31:20 +00:00
2025-10-17 00:31:07 +00:00
$linkback = '<a href="' . dolBuildUrl ( DOL_URL_ROOT . '/admin/modules.php' , [ 'restore_lastsearch_values' => 1 ]) . '">' . img_picto ( $langs -> trans ( " BackToModuleList " ), 'back' , 'class="pictofixedwidth"' ) . '<span class="hideonsmartphone">' . $langs -> trans ( " BackToModuleList " ) . '</span></a>' ;
2025-08-09 18:44:30 +00:00
2019-01-27 10:55:16 +00:00
print load_fiche_titre ( $langs -> trans ( " SendingsSetup " ), $linkback , 'title_setup' );
2008-01-26 15:10:18 +00:00
print '<br>' ;
2015-12-16 15:18:29 +00:00
$head = expedition_admin_prepare_head ();
2008-01-26 15:10:18 +00:00
2020-10-22 20:50:03 +00:00
print dol_get_fiche_head ( $head , 'receivings' , $langs -> trans ( " Receivings " ), - 1 , 'shipment' );
2006-05-05 14:59:48 +00:00
2022-09-21 12:38:14 +00:00
print '<br>' ;
print '<div class="inline-block valignmiddle">' . $langs -> trans ( " DeliveriesOrderAbility " ) . '</div>' ;
2023-10-24 15:00:13 +00:00
if ( ! getDolGlobalString ( 'MAIN_SUBMODULE_DELIVERY' )) {
2022-09-21 12:38:14 +00:00
print ' <a class="inline-block valignmiddle" href="' . $_SERVER [ " PHP_SELF " ] . '?action=activate_delivery&token=' . newToken () . '">' . img_picto ( $langs -> trans ( " Disabled " ), 'switch_off' ) . '</a>' ;
} else {
print ' <a class="inline-block valignmiddle" href="' . $_SERVER [ " PHP_SELF " ] . '?action=disable_delivery&token=' . newToken () . '">' . img_picto ( $langs -> trans ( " Enabled " ), 'switch_on' ) . '</a>' ;
}
2013-09-25 17:07:25 +00:00
2024-11-05 18:18:06 +00:00
print '<br><br><span class="opacitymedium">' . info_admin ( $langs -> trans ( " NoNeedForDeliveryReceipts " ), 0 , 1 ) . '</span>' ;
print '<br><br>' ;
2022-09-21 12:38:14 +00:00
print '<br>' ;
2006-05-05 14:59:48 +00:00
2023-10-24 15:00:13 +00:00
if ( getDolGlobalString ( 'MAIN_SUBMODULE_DELIVERY' )) {
2022-09-21 12:38:14 +00:00
// Delivery numbering model
2006-05-05 14:59:48 +00:00
2022-09-21 12:38:14 +00:00
print load_fiche_titre ( $langs -> trans ( " DeliveryOrderNumberingModules " ), '' , '' );
2013-02-21 22:40:25 +00:00
2022-09-21 12:38:14 +00:00
print '<table class="noborder centpercent">' ;
print '<tr class="liste_titre">' ;
print '<td width="100">' . $langs -> trans ( " Name " ) . '</td>' ;
print '<td>' . $langs -> trans ( " Description " ) . '</td>' ;
print '<td class="nowrap">' . $langs -> trans ( " Example " ) . '</td>' ;
print '<td align="center" width="60">' . $langs -> trans ( " Status " ) . '</td>' ;
print '<td align="center" width="16">' . $langs -> trans ( " ShortInfo " ) . '</td>' ;
print '</tr>' . " \n " ;
2013-02-21 22:40:25 +00:00
2022-09-21 12:38:14 +00:00
clearstatcache ();
2013-09-25 17:07:25 +00:00
2022-09-21 12:38:14 +00:00
foreach ( $dirmodels as $reldir ) {
$dir = dol_buildpath ( $reldir . " core/modules/delivery/ " );
2013-09-25 17:07:25 +00:00
2022-09-21 12:38:14 +00:00
if ( is_dir ( $dir )) {
$handle = opendir ( $dir );
if ( is_resource ( $handle )) {
while (( $file = readdir ( $handle )) !== false ) {
if ( preg_match ( '/^mod_delivery_([a-z0-9_]*)\.php$/' , $file )) {
$file = substr ( $file , 0 , dol_strlen ( $file ) - 4 );
2020-10-28 16:49:52 +00:00
2022-09-21 12:38:14 +00:00
require_once $dir . $file . '.php' ;
2023-12-04 10:41:14 +00:00
$module = new $file ();
2022-09-21 12:38:14 +00:00
2024-08-17 17:32:52 +00:00
'@phan-var-force ModeleNumRefDeliveryOrder $module' ;
2022-09-21 12:38:14 +00:00
if ( $module -> isEnabled ()) {
// Show modules according to features level
2023-11-27 11:24:18 +00:00
if ( $module -> version == 'development' && getDolGlobalInt ( 'MAIN_FEATURES_LEVEL' ) < 2 ) {
2022-09-21 12:38:14 +00:00
continue ;
}
2023-11-27 11:24:18 +00:00
if ( $module -> version == 'experimental' && getDolGlobalInt ( 'MAIN_FEATURES_LEVEL' ) < 1 ) {
2022-09-21 12:38:14 +00:00
continue ;
}
print '<tr class="oddeven"><td>' . $module -> name . " </td><td> \n " ;
2023-08-09 16:00:31 +00:00
print $module -> info ( $langs );
2022-09-21 12:38:14 +00:00
print '</td>' ;
// Show example of numbering module
print '<td class="nowrap">' ;
$tmp = $module -> getExample ();
if ( preg_match ( '/^Error/' , $tmp )) {
$langs -> load ( " errors " );
print '<div class="error">' . $langs -> trans ( $tmp ) . '</div>' ;
} elseif ( $tmp == 'NotConfigured' ) {
print '<span class="opacitymedium">' . $langs -> trans ( $tmp ) . '</span>' ;
2020-10-28 16:49:52 +00:00
} else {
2022-09-21 12:38:14 +00:00
print $tmp ;
}
print '</td>' . " \n " ;
print '<td class="center">' ;
2025-08-06 17:25:15 +00:00
if ( getDolGlobalString ( 'DELIVERY_ADDON_NUMBER' ) == " $file " ) {
2022-09-21 12:38:14 +00:00
print img_picto ( $langs -> trans ( " Activated " ), 'switch_on' );
} else {
print '<a class="reposition" href="' . $_SERVER [ " PHP_SELF " ] . '?action=setmod&token=' . newToken () . '&value=' . urlencode ( $file ) . '" alt="' . $langs -> trans ( " Default " ) . '">' . img_picto ( $langs -> trans ( " Disabled " ), 'switch_off' ) . '</a>' ;
}
print '</td>' ;
$delivery = new Delivery ( $db );
$delivery -> initAsSpecimen ();
// Info
$htmltooltip = '' ;
$htmltooltip .= '' . $langs -> trans ( " Version " ) . ': <b>' . $module -> getVersion () . '</b><br>' ;
$nextval = $module -> getNextValue ( $mysoc , $delivery );
if ( " $nextval " != $langs -> trans ( " NotAvailable " )) { // Keep " on nextval
$htmltooltip .= '' . $langs -> trans ( " NextValue " ) . ': ' ;
if ( $nextval ) {
if ( preg_match ( '/^Error/' , $nextval ) || $nextval == 'NotConfigured' ) {
$nextval = $langs -> trans ( $nextval );
}
$htmltooltip .= $nextval . '<br>' ;
} else {
$htmltooltip .= $langs -> trans ( $module -> error ) . '<br>' ;
}
2020-10-28 16:49:52 +00:00
}
2022-09-21 12:38:14 +00:00
print '<td class="center">' ;
2025-02-08 00:49:29 +00:00
print $form -> textwithpicto ( '' , $htmltooltip , 1 , 'info' );
2022-09-21 12:38:14 +00:00
print '</td>' ;
2020-10-28 16:49:52 +00:00
2022-09-21 12:38:14 +00:00
print '</tr>' ;
}
2020-10-28 16:49:52 +00:00
}
}
2022-09-21 12:38:14 +00:00
closedir ( $handle );
2020-10-28 16:49:52 +00:00
}
}
}
2011-04-17 07:15:17 +00:00
2022-09-21 12:38:14 +00:00
print '</table>' ;
2006-05-05 14:59:48 +00:00
2022-09-21 12:38:14 +00:00
/*
* Documents Models for delivery
*/
print '<br>' ;
print load_fiche_titre ( $langs -> trans ( " DeliveryOrderModel " ), '' , '' );
// Defini tableau def de modele
$type = " delivery " ;
$def = array ();
$sql = " SELECT nom " ;
$sql .= " FROM " . MAIN_DB_PREFIX . " document_model " ;
$sql .= " WHERE type = ' " . $db -> escape ( $type ) . " ' " ;
2025-10-02 08:56:12 +00:00
$sql .= " AND entity = " . (( int ) $conf -> entity );
2022-09-21 12:38:14 +00:00
$resql = $db -> query ( $sql );
if ( $resql ) {
$i = 0 ;
$num_rows = $db -> num_rows ( $resql );
while ( $i < $num_rows ) {
$array = $db -> fetch_array ( $resql );
2024-04-27 20:01:34 +00:00
if ( is_array ( $array )) {
array_push ( $def , $array [ 0 ]);
}
2022-09-21 12:38:14 +00:00
$i ++ ;
}
} else {
dol_print_error ( $db );
2006-05-05 14:59:48 +00:00
}
2022-09-21 12:38:14 +00:00
print '<table class="noborder centpercent">' ;
print '<tr class="liste_titre">' ;
print '<td width="140">' . $langs -> trans ( " Name " ) . '</td>' ;
print '<td>' . $langs -> trans ( " Description " ) . '</td>' ;
print '<td align="center" width="60">' . $langs -> trans ( " Status " ) . '</td>' ;
print '<td align="center" width="60">' . $langs -> trans ( " Default " ) . '</td>' ;
print '<td align="center" width="32">' . $langs -> trans ( " ShortInfo " ) . '</td>' ;
print '<td align="center" width="32">' . $langs -> trans ( " Preview " ) . '</td>' ;
print " </tr> \n " ;
2014-09-25 10:44:57 +00:00
2022-09-21 12:38:14 +00:00
clearstatcache ();
2020-10-28 16:49:52 +00:00
2022-09-21 12:38:14 +00:00
foreach ( $dirmodels as $reldir ) {
$dir = dol_buildpath ( $reldir . " core/modules/delivery/doc/ " );
2020-10-28 16:49:52 +00:00
2022-09-21 12:38:14 +00:00
if ( is_dir ( $dir )) {
$handle = opendir ( $dir );
if ( is_resource ( $handle )) {
2024-03-09 01:43:57 +00:00
$filelist = array ();
2022-09-21 12:38:14 +00:00
while (( $file = readdir ( $handle )) !== false ) {
$filelist [] = $file ;
}
closedir ( $handle );
arsort ( $filelist );
2020-10-28 16:49:52 +00:00
2022-09-21 12:38:14 +00:00
foreach ( $filelist as $file ) {
if ( preg_match ( '/\.modules\.php$/i' , $file ) && preg_match ( '/^(pdf_|doc_)/' , $file )) {
if ( file_exists ( $dir . '/' . $file )) {
$name = substr ( $file , 4 , dol_strlen ( $file ) - 16 );
$classname = substr ( $file , 0 , dol_strlen ( $file ) - 12 );
2020-10-28 16:49:52 +00:00
2022-09-21 12:38:14 +00:00
require_once $dir . '/' . $file ;
$module = new $classname ( $db );
2020-10-28 16:49:52 +00:00
2024-08-17 17:32:52 +00:00
'@phan-var-force ModelePDFDeliveryOrder $module' ;
2022-09-21 12:38:14 +00:00
$modulequalified = 1 ;
2023-11-27 11:24:18 +00:00
if ( $module -> version == 'development' && getDolGlobalInt ( 'MAIN_FEATURES_LEVEL' ) < 2 ) {
2022-09-21 12:38:14 +00:00
$modulequalified = 0 ;
}
2023-11-27 11:24:18 +00:00
if ( $module -> version == 'experimental' && getDolGlobalInt ( 'MAIN_FEATURES_LEVEL' ) < 1 ) {
2022-09-21 12:38:14 +00:00
$modulequalified = 0 ;
2020-10-28 16:49:52 +00:00
}
2022-09-21 12:38:14 +00:00
if ( $modulequalified ) {
print '<tr class="oddeven"><td width="100">' ;
2023-12-04 10:41:14 +00:00
print ( empty ( $module -> name ) ? $name : $module -> name );
2022-09-21 12:38:14 +00:00
print " </td><td> \n " ;
if ( method_exists ( $module , 'info' )) {
2024-08-17 17:32:52 +00:00
print $module -> info ( $langs ); // @phan-suppress-current-line PhanUndeclaredMethod
2022-09-21 12:38:14 +00:00
} else {
print $module -> description ;
}
print '</td>' ;
// Active
if ( in_array ( $name , $def )) {
print " <td align= \" center \" > \n " ;
print '<a href="' . $_SERVER [ " PHP_SELF " ] . '?action=del&token=' . newToken () . '&value=' . urlencode ( $name ) . '&scan_dir=' . urlencode ( $module -> scandir ) . '&label=' . urlencode ( $module -> name ) . '">' ;
print img_picto ( $langs -> trans ( " Enabled " ), 'switch_on' );
print '</a>' ;
print " </td> " ;
} else {
print " <td align= \" center \" > \n " ;
print '<a href="' . $_SERVER [ " PHP_SELF " ] . '?action=set&token=' . newToken () . '&value=' . urlencode ( $name ) . '&scan_dir=' . urlencode ( $module -> scandir ) . '&label=' . urlencode ( $module -> name ) . '">' . img_picto ( $langs -> trans ( " Disabled " ), 'switch_off' ) . '</a>' ;
print " </td> " ;
}
2020-10-28 16:49:52 +00:00
2022-09-21 12:38:14 +00:00
// Default
print " <td align= \" center \" > " ;
2023-05-05 10:43:09 +00:00
if ( getDolGlobalString ( 'DELIVERY_ADDON_PDF' ) == " $name " ) {
2022-09-21 12:38:14 +00:00
print img_picto ( $langs -> trans ( " Default " ), 'on' );
} else {
print '<a href="' . $_SERVER [ " PHP_SELF " ] . '?action=setdoc&token=' . newToken () . '&value=' . urlencode ( $name ) . '&scan_dir=' . urlencode ( $module -> scandir ) . '&label=' . urlencode ( $module -> name ) . '" alt="' . $langs -> trans ( " Default " ) . '">' . img_picto ( $langs -> trans ( " Disabled " ), 'off' ) . '</a>' ;
}
print '</td>' ;
// Info
$htmltooltip = '' . $langs -> trans ( " Type " ) . ': ' . ( $module -> type ? $module -> type : $langs -> trans ( " Unknown " ));
$htmltooltip .= '<br>' . $langs -> trans ( " Width " ) . '/' . $langs -> trans ( " Height " ) . ': ' . $module -> page_largeur . '/' . $module -> page_hauteur ;
$htmltooltip .= '<br><br><u>' . $langs -> trans ( " FeaturesSupported " ) . '</u>:' ;
$htmltooltip .= '<br>' . $langs -> trans ( " Logo " ) . ': ' . yn ( $module -> option_logo , 1 , 1 );
print '<td class="center">' ;
2025-02-08 00:49:29 +00:00
print $form -> textwithpicto ( '' , $htmltooltip , 1 , 'info' );
2022-09-21 12:38:14 +00:00
print '</td>' ;
// Preview
print '<td class="center">' ;
if ( $module -> type == 'pdf' ) {
2026-06-25 17:01:16 +00:00
print '<a href="' . dolBuildUrl ( $_SERVER [ " PHP_SELF " ], [ 'action' => 'specimen' , 'module' => $name ], true ) . '">' . img_object ( $langs -> trans ( " Preview " ), 'pdf' ) . '</a>' ;
2022-09-21 12:38:14 +00:00
} else {
2025-01-08 16:45:28 +00:00
print img_object ( $langs -> transnoentitiesnoconv ( " PreviewNotAvailable " ), 'generic' );
2022-09-21 12:38:14 +00:00
}
print '</td>' ;
2020-10-28 16:49:52 +00:00
2022-09-21 12:38:14 +00:00
print '</tr>' ;
}
2020-10-28 16:49:52 +00:00
}
}
}
}
}
}
2011-04-17 07:15:17 +00:00
2022-09-21 12:38:14 +00:00
print '</table>' ;
// Other Options
print " <br> " ;
print load_fiche_titre ( $langs -> trans ( " OtherOptions " ), '' , '' );
print '<form action="' . $_SERVER [ " PHP_SELF " ] . '" method="post">' ;
print '<input type="hidden" name="token" value="' . newToken () . '">' ;
print '<input type="hidden" name="action" value="set_DELIVERY_FREE_TEXT">' ;
print '<table class="noborder centpercent">' ;
print '<tr class="liste_titre">' ;
print '<td>' . $langs -> trans ( " Parameter " ) . '</td>' ;
2025-01-24 12:12:48 +00:00
print '<td align="center" width="60"></td>' ;
2022-09-21 12:38:14 +00:00
print '<td width="80"> </td>' ;
print " </tr> \n " ;
$substitutionarray = pdf_getSubstitutionArray ( $langs , null , null , 2 );
$substitutionarray [ '__(AnyTranslationKey)__' ] = $langs -> trans ( " Translation " );
$htmltext = '<i>' . $langs -> trans ( " AvailableVariables " ) . ':<br>' ;
foreach ( $substitutionarray as $key => $val ) {
$htmltext .= $key . '<br>' ;
}
$htmltext .= '</i>' ;
2008-09-02 10:33:12 +00:00
2022-09-21 12:38:14 +00:00
print '<tr class="oddeven"><td colspan="2">' ;
print $form -> textwithpicto ( $langs -> trans ( " FreeLegalTextOnDeliveryReceipts " ), $langs -> trans ( " AddCRIfTooLong " ) . '<br><br>' . $htmltext , 1 , 'help' , '' , 0 , 2 , 'freetexttooltip' ) . '<br>' ;
$variablename = 'DELIVERY_FREE_TEXT' ;
2023-10-24 15:00:13 +00:00
if ( ! getDolGlobalString ( 'PDF_ALLOW_HTML_FOR_FREE_TEXT' )) {
2022-09-21 12:38:14 +00:00
print '<textarea name="' . $variablename . '" class="flat" cols="120">' . getDolGlobalString ( $variablename ) . '</textarea>' ;
} else {
include_once DOL_DOCUMENT_ROOT . '/core/class/doleditor.class.php' ;
$doleditor = new DolEditor ( $variablename , getDolGlobalString ( $variablename ), '' , 80 , 'dolibarr_notes' );
print $doleditor -> Create ();
}
print '</td><td class="right">' ;
print " </td></tr> \n " ;
print '</table>' ;
print '<div class="center">' ;
print '<input type="submit" class="button button-edit" value="' . $langs -> trans ( " Modify " ) . '">' ;
print '</div>' ;
print '</form>' ;
}
2006-05-05 14:59:48 +00:00
2018-07-28 16:03:14 +00:00
// End of page
2015-12-07 10:03:27 +00:00
llxFooter ();
2006-05-05 14:59:48 +00:00
$db -> close ();