From 62cf3cdab4cd1c926a9e243024eadbdc5144fe6c Mon Sep 17 00:00:00 2001 From: Quatadah Nasdami Date: Wed, 13 Jul 2022 16:43:24 +0200 Subject: [PATCH 01/34] initializing public interface for user to book --- htdocs/public/bookcal/booking.php | 602 ++++++++++++++++++++++++++++++ htdocs/public/bookcal/index.php | 26 ++ 2 files changed, 628 insertions(+) create mode 100644 htdocs/public/bookcal/booking.php create mode 100644 htdocs/public/bookcal/index.php diff --git a/htdocs/public/bookcal/booking.php b/htdocs/public/bookcal/booking.php new file mode 100644 index 00000000000..3020799c91e --- /dev/null +++ b/htdocs/public/bookcal/booking.php @@ -0,0 +1,602 @@ + + * Copyright (C) 2001-2002 Jean-Louis Bergamo + * Copyright (C) 2006-2013 Laurent Destailleur + * Copyright (C) 2012 Regis Houssin + * Copyright (C) 2012 J. Fernando Lagrange + * Copyright (C) 2018-2019 Frédéric France + * Copyright (C) 2018 Alexandre Spangaro + * Copyright (C) 2021 Waël Almoman + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +/** + * \file htdocs/public/partnership/new.php + * \ingroup member + * \brief Example of form to add a new member + */ + +use Stripe\Event; + +if (!defined('NOLOGIN')) { + define("NOLOGIN", 1); // This means this output page does not require to be logged. +} +if (!defined('NOCSRFCHECK')) { + define("NOCSRFCHECK", 1); // We accept to go on this page from external web site. +} +if (!defined('NOIPCHECK')) { + define('NOIPCHECK', '1'); // Do not check IP defined into conf $dolibarr_main_restrict_ip +} +if (!defined('NOBROWSERNOTIF')) { + define('NOBROWSERNOTIF', '1'); +} +if (!defined('NOIPCHECK')) { + define('NOIPCHECK', '1'); // Do not check IP defined into conf $dolibarr_main_restrict_ip +} + +// For MultiCompany module. +// Do not use GETPOST here, function is not defined and define must be done before including main.inc.php +// TODO This should be useless. Because entity must be retrieve from object ref and not from url. +$entity = (!empty($_GET['entity']) ? (int) $_GET['entity'] : (!empty($_POST['entity']) ? (int) $_POST['entity'] : 1)); +if (is_numeric($entity)) { + define("DOLENTITY", $entity); +} + +require '../../main.inc.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/partnership/class/partnership.class.php'; +require_once DOL_DOCUMENT_ROOT.'/partnership/class/partnership_type.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php'; + +// Init vars +$errmsg = ''; +$num = 0; +$error = 0; +$backtopage = GETPOST('backtopage', 'alpha'); +$action = GETPOST('action', 'aZ09'); + +// Load translation files +$langs->loadLangs(array("main", "members", "companies", "install", "other")); + + +// Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context +$hookmanager->initHooks(array('publicnewpartnershipcard', 'globalcard')); + +$extrafields = new ExtraFields($db); + +$object = new Partnership($db); + +$user->loadDefaultValues(); + + +/** + * Show header for new partnership + * + * @param string $title Title + * @param string $head Head array + * @param int $disablejs More content into html header + * @param int $disablehead More content into html header + * @param array $arrayofjs Array of complementary js files + * @param array $arrayofcss Array of complementary css files + * @return void + */ +function llxHeaderVierge($title, $head = "", $disablejs = 0, $disablehead = 0, $arrayofjs = '', $arrayofcss = '') +{ + global $user, $conf, $langs, $mysoc; + + top_htmlhead($head, $title, $disablejs, $disablehead, $arrayofjs, $arrayofcss); // Show html headers + + print ''; + + // Define urllogo + $urllogo = DOL_URL_ROOT.'/theme/common/login_logo.png'; + + if (!empty($mysoc->logo_small) && is_readable($conf->mycompany->dir_output.'/logos/thumbs/'.$mysoc->logo_small)) { + $urllogo = DOL_URL_ROOT.'/viewimage.php?cache=1&modulepart=mycompany&file='.urlencode('logos/thumbs/'.$mysoc->logo_small); + } elseif (!empty($mysoc->logo) && is_readable($conf->mycompany->dir_output.'/logos/'.$mysoc->logo)) { + $urllogo = DOL_URL_ROOT.'/viewimage.php?cache=1&modulepart=mycompany&file='.urlencode('logos/'.$mysoc->logo); + } elseif (is_readable(DOL_DOCUMENT_ROOT.'/theme/dolibarr_logo.svg')) { + $urllogo = DOL_URL_ROOT.'/theme/dolibarr_logo.svg'; + } + + print '
'; + + // Output html code for logo + if ($urllogo) { + print '
'; + print '
'; + print ''; + print '
'; + if (empty($conf->global->MAIN_HIDE_POWERED_BY)) { + print ''; + } + print '
'; + } + + if (!empty($conf->global->PARTNERSHIP_IMAGE_PUBLIC_REGISTRATION)) { + print '
'; + print ''; + print '
'; + } + + print '
'; + + print '
'; +} + +/** + * Show footer for new member + * + * @return void + */ +function llxFooterVierge() +{ + print '
'; + + printCommonFooter('public'); + + print "\n"; + print "\n"; +} + + + +/* + * Actions + */ +$parameters = array(); +// Note that $action and $object may have been modified by some hooks +$reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); +if ($reshook < 0) { + setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); +} + +// Action called when page is submitted +if (empty($reshook) && $action == 'add') { + $error = 0; + $urlback = ''; + + $db->begin(); + + /*if (GETPOST('typeid') <= 0) { + $error++; + $errmsg .= $langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Type"))."
\n"; + }*/ + if (!GETPOST('lastname')) { + $error++; + $errmsg .= $langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Lastname"))."
\n"; + } + if (!GETPOST('firstname')) { + $error++; + $errmsg .= $langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Firstname"))."
\n"; + } + if (empty(GETPOST('email'))) { + $error++; + $errmsg .= $langs->trans('ErrorFieldRequired', $langs->transnoentitiesnoconv('Email'))."
\n"; + } elseif (GETPOST("email") && !isValidEmail(GETPOST("email"))) { + $langs->load('errors'); + $error++; + $errmsg .= $langs->trans("ErrorBadEMail", GETPOST("email"))."
\n"; + } + + $public = GETPOSTISSET('public') ? 1 : 0; + + if (!$error) { + //$partnership = new Partnership($db); + $event = new Event($db); + + + // We try to find the thirdparty or the member + if (getDolGlobalString('PARTNERSHIP_IS_MANAGED_FOR', 'thirdparty') == 'thirdparty') { + $partnership->fk_member = 0; + } elseif (getDolGlobalString('PARTNERSHIP_IS_MANAGED_FOR', 'thirdparty') == 'member') { + $partnership->fk_soc = 0; + } + + $partnership->statut = -1; + $partnership->firstname = GETPOST('firstname'); + $partnership->lastname = GETPOST('lastname'); + $partnership->address = GETPOST('address'); + $partnership->zip = GETPOST('zipcode'); + $partnership->town = GETPOST('town'); + $partnership->email = GETPOST('email'); + $partnership->country_id = GETPOST('country_id', 'int'); + $partnership->state_id = GETPOST('state_id', 'int'); + //$partnership->typeid = $conf->global->PARTNERSHIP_NEWFORM_FORCETYPE ? $conf->global->PARTNERSHIP_NEWFORM_FORCETYPE : GETPOST('typeid', 'int'); + $partnership->note_private = GETPOST('note_private'); + + // Fill array 'array_options' with data from add form + $extrafields->fetch_name_optionals_label($partnership->table_element); + $ret = $extrafields->setOptionalsFromPost(null, $partnership); + if ($ret < 0) { + $error++; + } + + $result = $partnership->create($user); + if ($result > 0) { + require_once DOL_DOCUMENT_ROOT.'/core/class/CMailFile.class.php'; + $object = $partnership; + + /* + $partnershipt = new PartnershipType($db); + $partnershipt->fetch($object->typeid); + + if ($object->email) { + $subject = ''; + $msg = ''; + + // Send subscription email + include_once DOL_DOCUMENT_ROOT.'/core/class/html.formmail.class.php'; + $formmail = new FormMail($db); + // Set output language + $outputlangs = new Translate('', $conf); + $outputlangs->setDefaultLang(empty($object->thirdparty->default_lang) ? $mysoc->default_lang : $object->thirdparty->default_lang); + // Load traductions files required by page + $outputlangs->loadLangs(array("main", "members")); + // Get email content from template + $arraydefaultmessage = null; + $labeltouse = $conf->global->PARTNERSHIP_EMAIL_TEMPLATE_AUTOREGISTER; + + if (!empty($labeltouse)) { + $arraydefaultmessage = $formmail->getEMailTemplate($db, 'member', $user, $outputlangs, 0, 1, $labeltouse); + } + + if (!empty($labeltouse) && is_object($arraydefaultmessage) && $arraydefaultmessage->id > 0) { + $subject = $arraydefaultmessage->topic; + $msg = $arraydefaultmessage->content; + } + + $substitutionarray = getCommonSubstitutionArray($outputlangs, 0, null, $object); + complete_substitutions_array($substitutionarray, $outputlangs, $object); + $subjecttosend = make_substitutions($subject, $substitutionarray, $outputlangs); + $texttosend = make_substitutions(dol_concatdesc($msg, $partnershipt->getMailOnValid()), $substitutionarray, $outputlangs); + + if ($subjecttosend && $texttosend) { + $moreinheader = 'X-Dolibarr-Info: send_an_email by public/members/new.php'."\r\n"; + + $result = $object->send_an_email($texttosend, $subjecttosend, array(), array(), array(), "", "", 0, -1, '', $moreinheader); + } + } + */ + + // Send email to the foundation to say a new member subscribed with autosubscribe form + if (getDolGlobalString('MAIN_INFO_SOCIETE_MAIL') && !empty($conf->global->PARTNERSHIP_AUTOREGISTER_NOTIF_MAIL_SUBJECT) && + !empty($conf->global->PARTNERSHIP_AUTOREGISTER_NOTIF_MAIL)) { + // Define link to login card + $appli = constant('DOL_APPLICATION_TITLE'); + if (!empty($conf->global->MAIN_APPLICATION_TITLE)) { + $appli = $conf->global->MAIN_APPLICATION_TITLE; + if (preg_match('/\d\.\d/', $appli)) { + if (!preg_match('/'.preg_quote(DOL_VERSION).'/', $appli)) { + $appli .= " (".DOL_VERSION.")"; // If new title contains a version that is different than core + } + } else { + $appli .= " ".DOL_VERSION; + } + } else { + $appli .= " ".DOL_VERSION; + } + + $to = $partnership->makeSubstitution(getDolGlobalString('MAIN_INFO_SOCIETE_MAIL')); + $from = getDolGlobalString('PARTNERSHIP_MAIL_FROM'); + $mailfile = new CMailFile( + '['.$appli.'] '.getDolGlobalString('PARTNERSHIP_AUTOREGISTER_NOTIF_MAIL_SUBJECT', 'Partnership request'), + $to, + $from, + $partnership->makeSubstitution(getDolGlobalString('PARTNERSHIP_AUTOREGISTER_NOTIF_MAIL')), + array(), + array(), + array(), + "", + "", + 0, + -1 + ); + + if (!$mailfile->sendfile()) { + dol_syslog($langs->trans("ErrorFailedToSendMail", $from, $to), LOG_ERR); + } + } + + if (!empty($backtopage)) { + $urlback = $backtopage; + } elseif (!empty($conf->global->PARTNERSHIP_URL_REDIRECT_SUBSCRIPTION)) { + $urlback = $conf->global->PARTNERSHIP_URL_REDIRECT_SUBSCRIPTION; + // TODO Make replacement of __AMOUNT__, etc... + } else { + $urlback = $_SERVER["PHP_SELF"]."?action=added&token=".newToken(); + } + + if (!empty($conf->global->PARTNERSHIP_NEWFORM_PAYONLINE) && $conf->global->PARTNERSHIP_NEWFORM_PAYONLINE != '-1') { + if ($conf->global->PARTNERSHIP_NEWFORM_PAYONLINE == 'all') { + $urlback = DOL_MAIN_URL_ROOT.'/public/payment/newpayment.php?from=partnershipnewform&source=membersubscription&ref='.urlencode($partnership->ref); + if (price2num(GETPOST('amount', 'alpha'))) { + $urlback .= '&amount='.price2num(GETPOST('amount', 'alpha')); + } + if (GETPOST('email')) { + $urlback .= '&email='.urlencode(GETPOST('email')); + } + if (!empty($conf->global->PAYMENT_SECURITY_TOKEN)) { + if (!empty($conf->global->PAYMENT_SECURITY_TOKEN_UNIQUE)) { + $urlback .= '&securekey='.urlencode(dol_hash($conf->global->PAYMENT_SECURITY_TOKEN.'membersubscription'.$partnership->ref, 2)); + } else { + $urlback .= '&securekey='.urlencode($conf->global->PAYMENT_SECURITY_TOKEN); + } + } + } elseif ($conf->global->PARTNERSHIP_NEWFORM_PAYONLINE == 'paybox') { + $urlback = DOL_MAIN_URL_ROOT.'/public/paybox/newpayment.php?from=partnershipnewform&source=membersubscription&ref='.urlencode($partnership->ref); + if (price2num(GETPOST('amount', 'alpha'))) { + $urlback .= '&amount='.price2num(GETPOST('amount', 'alpha')); + } + if (GETPOST('email')) { + $urlback .= '&email='.urlencode(GETPOST('email')); + } + if (!empty($conf->global->PAYMENT_SECURITY_TOKEN)) { + if (!empty($conf->global->PAYMENT_SECURITY_TOKEN_UNIQUE)) { + $urlback .= '&securekey='.urlencode(dol_hash($conf->global->PAYMENT_SECURITY_TOKEN.'membersubscription'.$partnership->ref, 2)); + } else { + $urlback .= '&securekey='.urlencode($conf->global->PAYMENT_SECURITY_TOKEN); + } + } + } elseif ($conf->global->PARTNERSHIP_NEWFORM_PAYONLINE == 'paypal') { + $urlback = DOL_MAIN_URL_ROOT.'/public/paypal/newpayment.php?from=partnershipnewform&source=membersubscription&ref='.urlencode($partnership->ref); + if (price2num(GETPOST('amount', 'alpha'))) { + $urlback .= '&amount='.price2num(GETPOST('amount', 'alpha')); + } + if (GETPOST('email')) { + $urlback .= '&email='.urlencode(GETPOST('email')); + } + if (!empty($conf->global->PAYMENT_SECURITY_TOKEN)) { + if (!empty($conf->global->PAYMENT_SECURITY_TOKEN_UNIQUE)) { + $urlback .= '&securekey='.urlencode(dol_hash($conf->global->PAYMENT_SECURITY_TOKEN.'membersubscription'.$partnership->ref, 2)); + } else { + $urlback .= '&securekey='.urlencode($conf->global->PAYMENT_SECURITY_TOKEN); + } + } + } elseif ($conf->global->PARTNERSHIP_NEWFORM_PAYONLINE == 'stripe') { + $urlback = DOL_MAIN_URL_ROOT.'/public/stripe/newpayment.php?from=partnershipnewform&source=membersubscription&ref='.$partnership->ref; + if (price2num(GETPOST('amount', 'alpha'))) { + $urlback .= '&amount='.price2num(GETPOST('amount', 'alpha')); + } + if (GETPOST('email')) { + $urlback .= '&email='.urlencode(GETPOST('email')); + } + if (!empty($conf->global->PAYMENT_SECURITY_TOKEN)) { + if (!empty($conf->global->PAYMENT_SECURITY_TOKEN_UNIQUE)) { + $urlback .= '&securekey='.urlencode(dol_hash($conf->global->PAYMENT_SECURITY_TOKEN.'membersubscription'.$partnership->ref, 2)); + } else { + $urlback .= '&securekey='.urlencode($conf->global->PAYMENT_SECURITY_TOKEN); + } + } + } else { + dol_print_error('', "Autosubscribe form is setup to ask an online payment for a not managed online payment"); + exit; + } + } + + if (!empty($entity)) { + $urlback .= '&entity='.$entity; + } + dol_syslog("partnership ".$partnership->ref." was created, we redirect to ".$urlback); + } else { + $error++; + $errmsg .= join('
', $partnership->errors); + } + } + + if (!$error) { + $db->commit(); + + Header("Location: ".$urlback); + exit; + } else { + $db->rollback(); + } +} + +// Action called after a submitted was send and member created successfully +// If PARTNERSHIP_URL_REDIRECT_SUBSCRIPTION is set to url we never go here because a redirect was done to this url. +// backtopage parameter with an url was set on member submit page, we never go here because a redirect was done to this url. +if (empty($reshook) && $action == 'added') { + llxHeaderVierge($langs->trans("NewPartnershipForm")); + + // Si on a pas ete redirige + print '

'; + print '
'; + print $langs->trans("NewPartnershipbyWeb"); + print '
'; + + llxFooterVierge(); + + exit; +} + + + +/* + * View + */ + +$form = new Form($db); +$formcompany = new FormCompany($db); + +$extrafields->fetch_name_optionals_label($partnership->table_element); // fetch optionals attributes and labels + + +llxHeaderVierge($langs->trans("NewPartnershipRequest")); + + +print load_fiche_titre($langs->trans("NewPartnershipRequest"), '', '', 0, 0, 'center'); + + +print '
'; +print '
'; + +print '
'; +if (!empty($conf->global->PARTNERSHIP_NEWFORM_TEXT)) { + print $langs->trans($conf->global->PARTNERSHIP_NEWFORM_TEXT)."
\n"; +} else { + print $langs->trans("NewPartnershipRequestDesc", $conf->global->MAIN_INFO_SOCIETE_MAIL)."
\n"; +} +print '
'; + +dol_htmloutput_errors($errmsg); + +// Print form +print '
'."\n"; +print ''; +print ''; +print ''; + +print '
'; + +print '
'.$langs->trans("FieldsWithAreMandatory", '*').'
'; +//print $langs->trans("FieldsWithIsForPublic",'**').'
'; + +print dol_get_fiche_head(''); + +print ''; + + +print ''."\n"; + +// Type +/* +if (empty($conf->global->PARTNERSHIP_NEWFORM_FORCETYPE)) { + $listoftype = $partnershipt->liste_array(); + $tmp = array_keys($listoftype); + $defaulttype = ''; + $isempty = 1; + if (count($listoftype) == 1) { + $defaulttype = $tmp[0]; + $isempty = 0; + } + print ''."\n"; +} else { + $partnershipt->fetch($conf->global->PARTNERSHIP_NEWFORM_FORCETYPE); + print ''; +} +*/ + +$partnershiptype = new PartnershipType($db); +$listofpartnershipobj = $partnershiptype->fetchAll('', '', 1000); +$listofpartnership = array(); +foreach ($listofpartnershipobj as $partnershipobj) { + $listofpartnership[$partnershipobj->id] = $partnershipobj->label; +} + +if (empty($conf->global->PARTNERSHIP_NEWFORM_FORCETYPE)) { + print ''."\n"; +} else { + print $listofpartnership[$conf->global->PARTNERSHIP_NEWFORM_FORCETYPE]; + print ''; +} + +// Company +print ''."\n"; +// Lastname +print ''."\n"; +// Firstname +print ''."\n"; +// EMail +print ''."\n"; +// Address +print ''."\n"; +// Zip / Town +print ''; +// Country +print ''; +// State +if (empty($conf->global->SOCIETE_DISABLE_STATE)) { + print ''; +} +// Logo +//print ''."\n"; +// Other attributes +$tpl_context = 'public'; // define template context to public +include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_add.tpl.php'; +// Comments +print ''; +print ''; +print ''; +print ''."\n"; + +print "
'.$langs->trans("Type").' *'; + print $form->selectarray("typeid", $partnershipt->liste_array(1), GETPOST('typeid') ? GETPOST('typeid') : $defaulttype, $isempty); + print '
'.$langs->trans('PartnershipType').' *'."\n"; + print $form->selectarray("partnershiptype", $listofpartnership, GETPOSTISSET('partnershiptype') ? GETPOST('partnershiptype', 'int') : 'ifone', 1); + print '
'.$langs->trans("Company").' *'; +print img_picto('', 'company', 'class="pictofixedwidth"'); +print '
'.$langs->trans("Lastname").' *
'.$langs->trans("Firstname").' *
'.$langs->trans("Email").' *'; +//print img_picto('', 'email', 'class="pictofixedwidth"'); +print '
'.$langs->trans("Address").''."\n"; +print '
'.$langs->trans('Zip').' / '.$langs->trans('Town').''; +print $formcompany->select_ziptown(GETPOST('zipcode'), 'zipcode', array('town', 'selectcountry_id', 'state_id'), 6, 1); +print ' / '; +print $formcompany->select_ziptown(GETPOST('town'), 'town', array('zipcode', 'selectcountry_id', 'state_id'), 0, 1); +print '
'.$langs->trans('Country').''; +print img_picto('', 'country', 'class="pictofixedwidth"'); +$country_id = GETPOST('country_id', 'int'); +if (!$country_id && !empty($conf->global->PARTNERSHIP_NEWFORM_FORCECOUNTRYCODE)) { + $country_id = getCountry($conf->global->PARTNERSHIP_NEWFORM_FORCECOUNTRYCODE, 2, $db, $langs); +} +if (!$country_id && !empty($conf->geoipmaxmind->enabled)) { + $country_code = dol_user_country(); + //print $country_code; + if ($country_code) { + $new_country_id = getCountry($country_code, 3, $db, $langs); + //print 'xxx'.$country_code.' - '.$new_country_id; + if ($new_country_id) { + $country_id = $new_country_id; + } + } +} +$country_code = getCountry($country_id, 2, $db, $langs); +print $form->select_country($country_id, 'country_id'); +print '
'.$langs->trans('State').''; + if ($country_code) { + print $formcompany->select_state(GETPOST("state_id"), $country_code); + } + print '
'.$langs->trans("URLPhoto").'
'.$langs->trans("Comments").'
\n"; + +print dol_get_fiche_end(); + +// Save +print '
'; +print ''; +if (!empty($backtopage)) { + print '     '; +} +print '
'; + + +print "
\n"; +print "
"; +print '
'; + + +llxFooterVierge(); + +$db->close(); diff --git a/htdocs/public/bookcal/index.php b/htdocs/public/bookcal/index.php new file mode 100644 index 00000000000..4071c62de1f --- /dev/null +++ b/htdocs/public/bookcal/index.php @@ -0,0 +1,26 @@ + + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +/** + * \file htdocs/public/members/index.php + * \ingroup core + * \brief A redirect page to an error + */ + +require '../../master.inc.php'; + +header("Location: ".DOL_URL_ROOT.'/public/error-404.php'); From a8e6725bca50d1869d2f9f52fb908141626d2e08 Mon Sep 17 00:00:00 2001 From: Quatadah Nasdami Date: Thu, 21 Jul 2022 14:21:22 +0200 Subject: [PATCH 02/34] bookcal loading ... --- htdocs/public/bookcal/booking.php | 847 ++++++++++++++++++------------ 1 file changed, 516 insertions(+), 331 deletions(-) diff --git a/htdocs/public/bookcal/booking.php b/htdocs/public/bookcal/booking.php index 3020799c91e..0d39ebb13ed 100644 --- a/htdocs/public/bookcal/booking.php +++ b/htdocs/public/bookcal/booking.php @@ -60,6 +60,22 @@ require_once DOL_DOCUMENT_ROOT.'/partnership/class/partnership.class.php'; require_once DOL_DOCUMENT_ROOT.'/partnership/class/partnership_type.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/agenda.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php'; +require_once DOL_DOCUMENT_ROOT.'/user/class/user.class.php'; +require_once DOL_DOCUMENT_ROOT.'/comm/action/class/cactioncomm.class.php'; +require_once DOL_DOCUMENT_ROOT.'/comm/action/class/actioncomm.class.php'; +require_once DOL_DOCUMENT_ROOT.'/comm/action/class/actioncommreminder.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/html.formactions.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/html.form.class.php'; +require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; +require_once DOL_DOCUMENT_ROOT.'/projet/class/task.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; +require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; // Init vars $errmsg = ''; @@ -75,9 +91,15 @@ $langs->loadLangs(array("main", "members", "companies", "install", "other")); // Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context $hookmanager->initHooks(array('publicnewpartnershipcard', 'globalcard')); + +$object = new ActionComm($db); +$cactioncomm = new CActionComm($db); +$contact = new Contact($db); +$formfile = new FormFile($db); +$formactions = new FormActions($db); $extrafields = new ExtraFields($db); -$object = new Partnership($db); + $user->loadDefaultValues(); @@ -153,7 +175,6 @@ function llxFooterVierge() } - /* * Actions */ @@ -196,27 +217,27 @@ if (empty($reshook) && $action == 'add') { if (!$error) { //$partnership = new Partnership($db); - $event = new Event($db); + $events = new Events($db); // We try to find the thirdparty or the member if (getDolGlobalString('PARTNERSHIP_IS_MANAGED_FOR', 'thirdparty') == 'thirdparty') { - $partnership->fk_member = 0; + $event->fk_member = 0; } elseif (getDolGlobalString('PARTNERSHIP_IS_MANAGED_FOR', 'thirdparty') == 'member') { - $partnership->fk_soc = 0; + $event->fk_soc = 0; } - $partnership->statut = -1; - $partnership->firstname = GETPOST('firstname'); - $partnership->lastname = GETPOST('lastname'); - $partnership->address = GETPOST('address'); - $partnership->zip = GETPOST('zipcode'); - $partnership->town = GETPOST('town'); - $partnership->email = GETPOST('email'); - $partnership->country_id = GETPOST('country_id', 'int'); - $partnership->state_id = GETPOST('state_id', 'int'); + $events->statut = -1; + $events->firstname = GETPOST('firstname'); + $events->lastname = GETPOST('lastname'); + $events->address = GETPOST('address'); + $events->zip = GETPOST('zipcode'); + $events->town = GETPOST('town'); + $events->email = GETPOST('email'); + $events->country_id = GETPOST('country_id', 'int'); + $events->state_id = GETPOST('state_id', 'int'); //$partnership->typeid = $conf->global->PARTNERSHIP_NEWFORM_FORCETYPE ? $conf->global->PARTNERSHIP_NEWFORM_FORCETYPE : GETPOST('typeid', 'int'); - $partnership->note_private = GETPOST('note_private'); + $event->note_private = GETPOST('note_private'); // Fill array 'array_options' with data from add form $extrafields->fetch_name_optionals_label($partnership->table_element); @@ -225,186 +246,23 @@ if (empty($reshook) && $action == 'add') { $error++; } - $result = $partnership->create($user); - if ($result > 0) { - require_once DOL_DOCUMENT_ROOT.'/core/class/CMailFile.class.php'; - $object = $partnership; - - /* - $partnershipt = new PartnershipType($db); - $partnershipt->fetch($object->typeid); - - if ($object->email) { - $subject = ''; - $msg = ''; - - // Send subscription email - include_once DOL_DOCUMENT_ROOT.'/core/class/html.formmail.class.php'; - $formmail = new FormMail($db); - // Set output language - $outputlangs = new Translate('', $conf); - $outputlangs->setDefaultLang(empty($object->thirdparty->default_lang) ? $mysoc->default_lang : $object->thirdparty->default_lang); - // Load traductions files required by page - $outputlangs->loadLangs(array("main", "members")); - // Get email content from template - $arraydefaultmessage = null; - $labeltouse = $conf->global->PARTNERSHIP_EMAIL_TEMPLATE_AUTOREGISTER; - - if (!empty($labeltouse)) { - $arraydefaultmessage = $formmail->getEMailTemplate($db, 'member', $user, $outputlangs, 0, 1, $labeltouse); - } - - if (!empty($labeltouse) && is_object($arraydefaultmessage) && $arraydefaultmessage->id > 0) { - $subject = $arraydefaultmessage->topic; - $msg = $arraydefaultmessage->content; - } - - $substitutionarray = getCommonSubstitutionArray($outputlangs, 0, null, $object); - complete_substitutions_array($substitutionarray, $outputlangs, $object); - $subjecttosend = make_substitutions($subject, $substitutionarray, $outputlangs); - $texttosend = make_substitutions(dol_concatdesc($msg, $partnershipt->getMailOnValid()), $substitutionarray, $outputlangs); - - if ($subjecttosend && $texttosend) { - $moreinheader = 'X-Dolibarr-Info: send_an_email by public/members/new.php'."\r\n"; - - $result = $object->send_an_email($texttosend, $subjecttosend, array(), array(), array(), "", "", 0, -1, '', $moreinheader); - } - } - */ - - // Send email to the foundation to say a new member subscribed with autosubscribe form - if (getDolGlobalString('MAIN_INFO_SOCIETE_MAIL') && !empty($conf->global->PARTNERSHIP_AUTOREGISTER_NOTIF_MAIL_SUBJECT) && - !empty($conf->global->PARTNERSHIP_AUTOREGISTER_NOTIF_MAIL)) { - // Define link to login card - $appli = constant('DOL_APPLICATION_TITLE'); - if (!empty($conf->global->MAIN_APPLICATION_TITLE)) { - $appli = $conf->global->MAIN_APPLICATION_TITLE; - if (preg_match('/\d\.\d/', $appli)) { - if (!preg_match('/'.preg_quote(DOL_VERSION).'/', $appli)) { - $appli .= " (".DOL_VERSION.")"; // If new title contains a version that is different than core - } - } else { - $appli .= " ".DOL_VERSION; - } - } else { - $appli .= " ".DOL_VERSION; - } - - $to = $partnership->makeSubstitution(getDolGlobalString('MAIN_INFO_SOCIETE_MAIL')); - $from = getDolGlobalString('PARTNERSHIP_MAIL_FROM'); - $mailfile = new CMailFile( - '['.$appli.'] '.getDolGlobalString('PARTNERSHIP_AUTOREGISTER_NOTIF_MAIL_SUBJECT', 'Partnership request'), - $to, - $from, - $partnership->makeSubstitution(getDolGlobalString('PARTNERSHIP_AUTOREGISTER_NOTIF_MAIL')), - array(), - array(), - array(), - "", - "", - 0, - -1 - ); - - if (!$mailfile->sendfile()) { - dol_syslog($langs->trans("ErrorFailedToSendMail", $from, $to), LOG_ERR); - } - } - - if (!empty($backtopage)) { - $urlback = $backtopage; - } elseif (!empty($conf->global->PARTNERSHIP_URL_REDIRECT_SUBSCRIPTION)) { - $urlback = $conf->global->PARTNERSHIP_URL_REDIRECT_SUBSCRIPTION; - // TODO Make replacement of __AMOUNT__, etc... + if (!$error) { + $result = $event->create($user); + if ($result > 0) { + $db->commit(); + $urlback = DOL_URL_ROOT.'/public/partnership/new.php?action=confirm&id='.$event->id; + header('Location: '.$urlback); + exit; } else { - $urlback = $_SERVER["PHP_SELF"]."?action=added&token=".newToken(); + $db->rollback(); + $errmsg = $event->error; + $error++; } - - if (!empty($conf->global->PARTNERSHIP_NEWFORM_PAYONLINE) && $conf->global->PARTNERSHIP_NEWFORM_PAYONLINE != '-1') { - if ($conf->global->PARTNERSHIP_NEWFORM_PAYONLINE == 'all') { - $urlback = DOL_MAIN_URL_ROOT.'/public/payment/newpayment.php?from=partnershipnewform&source=membersubscription&ref='.urlencode($partnership->ref); - if (price2num(GETPOST('amount', 'alpha'))) { - $urlback .= '&amount='.price2num(GETPOST('amount', 'alpha')); - } - if (GETPOST('email')) { - $urlback .= '&email='.urlencode(GETPOST('email')); - } - if (!empty($conf->global->PAYMENT_SECURITY_TOKEN)) { - if (!empty($conf->global->PAYMENT_SECURITY_TOKEN_UNIQUE)) { - $urlback .= '&securekey='.urlencode(dol_hash($conf->global->PAYMENT_SECURITY_TOKEN.'membersubscription'.$partnership->ref, 2)); - } else { - $urlback .= '&securekey='.urlencode($conf->global->PAYMENT_SECURITY_TOKEN); - } - } - } elseif ($conf->global->PARTNERSHIP_NEWFORM_PAYONLINE == 'paybox') { - $urlback = DOL_MAIN_URL_ROOT.'/public/paybox/newpayment.php?from=partnershipnewform&source=membersubscription&ref='.urlencode($partnership->ref); - if (price2num(GETPOST('amount', 'alpha'))) { - $urlback .= '&amount='.price2num(GETPOST('amount', 'alpha')); - } - if (GETPOST('email')) { - $urlback .= '&email='.urlencode(GETPOST('email')); - } - if (!empty($conf->global->PAYMENT_SECURITY_TOKEN)) { - if (!empty($conf->global->PAYMENT_SECURITY_TOKEN_UNIQUE)) { - $urlback .= '&securekey='.urlencode(dol_hash($conf->global->PAYMENT_SECURITY_TOKEN.'membersubscription'.$partnership->ref, 2)); - } else { - $urlback .= '&securekey='.urlencode($conf->global->PAYMENT_SECURITY_TOKEN); - } - } - } elseif ($conf->global->PARTNERSHIP_NEWFORM_PAYONLINE == 'paypal') { - $urlback = DOL_MAIN_URL_ROOT.'/public/paypal/newpayment.php?from=partnershipnewform&source=membersubscription&ref='.urlencode($partnership->ref); - if (price2num(GETPOST('amount', 'alpha'))) { - $urlback .= '&amount='.price2num(GETPOST('amount', 'alpha')); - } - if (GETPOST('email')) { - $urlback .= '&email='.urlencode(GETPOST('email')); - } - if (!empty($conf->global->PAYMENT_SECURITY_TOKEN)) { - if (!empty($conf->global->PAYMENT_SECURITY_TOKEN_UNIQUE)) { - $urlback .= '&securekey='.urlencode(dol_hash($conf->global->PAYMENT_SECURITY_TOKEN.'membersubscription'.$partnership->ref, 2)); - } else { - $urlback .= '&securekey='.urlencode($conf->global->PAYMENT_SECURITY_TOKEN); - } - } - } elseif ($conf->global->PARTNERSHIP_NEWFORM_PAYONLINE == 'stripe') { - $urlback = DOL_MAIN_URL_ROOT.'/public/stripe/newpayment.php?from=partnershipnewform&source=membersubscription&ref='.$partnership->ref; - if (price2num(GETPOST('amount', 'alpha'))) { - $urlback .= '&amount='.price2num(GETPOST('amount', 'alpha')); - } - if (GETPOST('email')) { - $urlback .= '&email='.urlencode(GETPOST('email')); - } - if (!empty($conf->global->PAYMENT_SECURITY_TOKEN)) { - if (!empty($conf->global->PAYMENT_SECURITY_TOKEN_UNIQUE)) { - $urlback .= '&securekey='.urlencode(dol_hash($conf->global->PAYMENT_SECURITY_TOKEN.'membersubscription'.$partnership->ref, 2)); - } else { - $urlback .= '&securekey='.urlencode($conf->global->PAYMENT_SECURITY_TOKEN); - } - } - } else { - dol_print_error('', "Autosubscribe form is setup to ask an online payment for a not managed online payment"); - exit; - } - } - - if (!empty($entity)) { - $urlback .= '&entity='.$entity; - } - dol_syslog("partnership ".$partnership->ref." was created, we redirect to ".$urlback); } else { $error++; - $errmsg .= join('
', $partnership->errors); + $errmsg .= join('
', $event->errors); } } - - if (!$error) { - $db->commit(); - - Header("Location: ".$urlback); - exit; - } else { - $db->rollback(); - } } // Action called after a submitted was send and member created successfully @@ -436,165 +294,492 @@ $formcompany = new FormCompany($db); $extrafields->fetch_name_optionals_label($partnership->table_element); // fetch optionals attributes and labels -llxHeaderVierge($langs->trans("NewPartnershipRequest")); +llxHeaderVierge($langs->trans("NewBookingRequest")); -print load_fiche_titre($langs->trans("NewPartnershipRequest"), '', '', 0, 0, 'center'); +print load_fiche_titre($langs->trans("NewBookingRequest"), '', '', 0, 0, 'center'); -print '
'; -print '
'; -print '
'; -if (!empty($conf->global->PARTNERSHIP_NEWFORM_TEXT)) { - print $langs->trans($conf->global->PARTNERSHIP_NEWFORM_TEXT)."
\n"; -} else { - print $langs->trans("NewPartnershipRequestDesc", $conf->global->MAIN_INFO_SOCIETE_MAIL)."
\n"; -} -print '
'; +// View -dol_htmloutput_errors($errmsg); +// Add new Events form +$contact = new Contact($db); -// Print form -print '
'."\n"; -print ''; -print ''; -print ''; - -print '
'; - -print '
'.$langs->trans("FieldsWithAreMandatory", '*').'
'; -//print $langs->trans("FieldsWithIsForPublic",'**').'
'; - -print dol_get_fiche_head(''); - -print ''; - - -print ''."\n"; - -// Type -/* -if (empty($conf->global->PARTNERSHIP_NEWFORM_FORCETYPE)) { - $listoftype = $partnershipt->liste_array(); - $tmp = array_keys($listoftype); - $defaulttype = ''; - $isempty = 1; - if (count($listoftype) == 1) { - $defaulttype = $tmp[0]; - $isempty = 0; - } - print ''."\n"; -} else { - $partnershipt->fetch($conf->global->PARTNERSHIP_NEWFORM_FORCETYPE); - print ''; -} -*/ - -$partnershiptype = new PartnershipType($db); -$listofpartnershipobj = $partnershiptype->fetchAll('', '', 1000); -$listofpartnership = array(); -foreach ($listofpartnershipobj as $partnershipobj) { - $listofpartnership[$partnershipobj->id] = $partnershipobj->label; -} - -if (empty($conf->global->PARTNERSHIP_NEWFORM_FORCETYPE)) { - print ''."\n"; -} else { - print $listofpartnership[$conf->global->PARTNERSHIP_NEWFORM_FORCETYPE]; - print ''; -} - -// Company -print ''."\n"; -// Lastname -print ''."\n"; -// Firstname -print ''."\n"; -// EMail -print ''."\n"; -// Address -print ''."\n"; -// Zip / Town -print ''; -// Country -print ''; -// State -if (empty($conf->global->SOCIETE_DISABLE_STATE)) { - print 'global->AGENDA_USE_EVENT_TYPE) ? ' class="fieldrequired titlefieldcreate"' : '').'>'.$langs->trans("Label").''; -print dol_get_fiche_end(); + // Full day + print ''; } -print ''; + + print ''; + + $datep = ($datep ? $datep : (is_null($object->datep) ? '' : $object->datep)); +if (GETPOST('datep', 'int', 1)) { + $datep = dol_stringtotime(GETPOST('datep', 'int', 1), 'tzuser'); +} + $datef = ($datef ? $datef : $object->datef); +if (GETPOST('datef', 'int', 1)) { + $datef = dol_stringtotime(GETPOST('datef', 'int', 1), 'tzuser'); +} +if (empty($datef) && !empty($datep)) { + if (GETPOST("actioncode", 'aZ09') == 'AC_RDV' || empty($conf->global->AGENDA_USE_EVENT_TYPE_DEFAULT)) { + $datef = dol_time_plus_duree($datep, (empty($conf->global->AGENDA_AUTOSET_END_DATE_WITH_DELTA_HOURS) ? 1 : $conf->global->AGENDA_AUTOSET_END_DATE_WITH_DELTA_HOURS), 'h'); + } +} + + // Date start + print ''; + + print ''; + + // Assigned to + print ''; + + // Done by +if (!empty($conf->global->AGENDA_ENABLE_DONEBY)) { + print ''; +} + + // Location +if (empty($conf->global->AGENDA_DISABLE_LOCATION)) { + print ''; +} + + // Status + print ''; + print ''; + +if (!empty($conf->categorie->enabled)) { + // Categories + print '"; +} + + print '
'.$langs->trans("Type").' *'; - print $form->selectarray("typeid", $partnershipt->liste_array(1), GETPOST('typeid') ? GETPOST('typeid') : $defaulttype, $isempty); - print '
'.$langs->trans('PartnershipType').' *'."\n"; - print $form->selectarray("partnershiptype", $listofpartnership, GETPOSTISSET('partnershiptype') ? GETPOST('partnershiptype', 'int') : 'ifone', 1); - print '
'.$langs->trans("Company").' *'; -print img_picto('', 'company', 'class="pictofixedwidth"'); -print '
'.$langs->trans("Lastname").' *
'.$langs->trans("Firstname").' *
'.$langs->trans("Email").' *'; -//print img_picto('', 'email', 'class="pictofixedwidth"'); -print '
'.$langs->trans("Address").''."\n"; -print '
'.$langs->trans('Zip').' / '.$langs->trans('Town').''; -print $formcompany->select_ziptown(GETPOST('zipcode'), 'zipcode', array('town', 'selectcountry_id', 'state_id'), 6, 1); -print ' / '; -print $formcompany->select_ziptown(GETPOST('town'), 'town', array('zipcode', 'selectcountry_id', 'state_id'), 0, 1); -print '
'.$langs->trans('Country').''; -print img_picto('', 'country', 'class="pictofixedwidth"'); -$country_id = GETPOST('country_id', 'int'); -if (!$country_id && !empty($conf->global->PARTNERSHIP_NEWFORM_FORCECOUNTRYCODE)) { - $country_id = getCountry($conf->global->PARTNERSHIP_NEWFORM_FORCECOUNTRYCODE, 2, $db, $langs); -} -if (!$country_id && !empty($conf->geoipmaxmind->enabled)) { - $country_code = dol_user_country(); - //print $country_code; - if ($country_code) { - $new_country_id = getCountry($country_code, 3, $db, $langs); - //print 'xxx'.$country_code.' - '.$new_country_id; - if ($new_country_id) { - $country_id = $new_country_id; - } + $socpeopleassigned = GETPOST("socpeopleassigned", 'array'); +if (!empty($socpeopleassigned[0])) { + $result = $contact->fetch($socpeopleassigned[0]); + if ($result < 0) { + dol_print_error($db, $contact->error); } } -$country_code = getCountry($country_id, 2, $db, $langs); -print $form->select_country($country_id, 'country_id'); -print '
'.$langs->trans('State').''; - if ($country_code) { - print $formcompany->select_state(GETPOST("state_id"), $country_code); - } + + dol_set_focus("#label"); + +if (!empty($conf->use_javascript_ajax)) { + print "\n".''."\n"; +} + print ''; + print ''; + print ''; + print ''; + print ''; +if ($backtopage) { + print ''; +} +if (empty($conf->global->AGENDA_USE_EVENT_TYPE)) { + print ''; +} + +if (GETPOST("actioncode", 'aZ09') == 'AC_RDV') { + print load_fiche_titre($langs->trans("AddActionRendezVous"), '', 'title_agenda'); +} else { + print load_fiche_titre($langs->trans("AddAnAction"), '', 'title_agenda'); +} + + print dol_get_fiche_head(); + + print ''; + + // Type of event +if (!empty($conf->global->AGENDA_USE_EVENT_TYPE)) { + print ''; } -// Logo -//print ''."\n"; -// Other attributes -$tpl_context = 'public'; // define template context to public -include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_add.tpl.php'; -// Comments -print ''; -print ''; -print ''; -print ''."\n"; -print "
'.$langs->trans("Type").''; + $default = (empty($conf->global->AGENDA_USE_EVENT_TYPE_DEFAULT) ? 'AC_RDV' : $conf->global->AGENDA_USE_EVENT_TYPE_DEFAULT); + print img_picto($langs->trans("ActionType"), 'square', 'class="fawidth30 inline-block" style="color: #ddd;"'); + print $formactions->select_type_actions(GETPOSTISSET("actioncode") ? GETPOST("actioncode", 'aZ09') : ($object->type_code ? $object->type_code : $default), "actioncode", "systemauto", 0, -1, 0, 1); // TODO Replace 0 with -2 in onlyautoornot print '
'.$langs->trans("URLPhoto").'
'.$langs->trans("Comments").'
\n"; + // Title + print '
'.$langs->trans("Date").''; -// Save -print '
'; -print ''; -if (!empty($backtopage)) { - print '     '; + // Recurring event + $userepeatevent = ($conf->global->MAIN_FEATURES_LEVEL == 2 ? 1 : 0); +if ($userepeatevent) { + // Repeat + //print '
'; + print '        
'; + print img_picto($langs->trans("Recurrence"), 'recurring', 'class="paddingright2"'); + print ''; + $selectedrecurrulefreq = 'no'; + $selectedrecurrulebymonthday = ''; + $selectedrecurrulebyday = ''; + if ($object->recurrule && preg_match('/FREQ=([A-Z]+)/i', $object->recurrule, $reg)) { + $selectedrecurrulefreq = $reg[1]; + } + if ($object->recurrule && preg_match('/FREQ=MONTHLY.*BYMONTHDAY=(\d+)/i', $object->recurrule, $reg)) { + $selectedrecurrulebymonthday = $reg[1]; + } + if ($object->recurrule && preg_match('/FREQ=WEEKLY.*BYDAY(\d+)/i', $object->recurrule, $reg)) { + $selectedrecurrulebyday = $reg[1]; + } + print $form->selectarray('recurrulefreq', $arrayrecurrulefreq, $selectedrecurrulefreq, 0, 0, 0, '', 0, 0, 0, '', 'marginrightonly'); + // If recurrulefreq is MONTHLY + print ''; + // If recurrulefreq is WEEKLY + print ''; + print ''; + print '
'; + //print '
'; + /* + print ''.$langs->trans("DateActionStart").''; + print ' - '; + print ''.$langs->trans("DateActionEnd").''; + */ + print ''; +if (GETPOST("afaire") == 1) { + print $form->selectDate($datep, 'ap', 1, 1, 0, "action", 1, 2, 0, 'fulldaystart', '', '', '', 1, '', '', 'tzuserrel'); // Empty value not allowed for start date and hours if "todo" +} else { + print $form->selectDate($datep, 'ap', 1, 1, 1, "action", 1, 2, 0, 'fulldaystart', '', '', '', 1, '', '', 'tzuserrel'); +} + print '     -     '; +if (GETPOST("afaire") == 1) { + print $form->selectDate($datef, 'p2', 1, 1, 1, "action", 1, 0, 0, 'fulldayend', '', '', '', 1, '', '', 'tzuserrel'); +} else { + print $form->selectDate($datef, 'p2', 1, 1, 1, "action", 1, 0, 0, 'fulldayend', '', '', '', 1, '', '', 'tzuserrel'); +} + print '
 
'.$langs->trans("ActionAffectedTo").''; + $listofuserid = array(); + $listofcontactid = array(); + $listofotherid = array(); + +if (empty($donotclearsession)) { + $assignedtouser = GETPOST("assignedtouser") ?GETPOST("assignedtouser") : (!empty($object->userownerid) && $object->userownerid > 0 ? $object->userownerid : $user->id); + if ($assignedtouser) { + $listofuserid[$assignedtouser] = array('id'=>$assignedtouser, 'mandatory'=>0, 'transparency'=>$object->transparency); // Owner first + } + //$listofuserid[$user->id] = array('id'=>$user->id, 'mandatory'=>0, 'transparency'=>(GETPOSTISSET('transparency') ? GETPOST('transparency', 'alpha') : 1)); // 1 by default at first init + $listofuserid[$assignedtouser]['transparency'] = (GETPOSTISSET('transparency') ? GETPOST('transparency', 'alpha') : 1); // 1 by default at first init + $_SESSION['assignedtouser'] = json_encode($listofuserid); +} else { + if (!empty($_SESSION['assignedtouser'])) { + $listofuserid = json_decode($_SESSION['assignedtouser'], true); + } + $firstelem = reset($listofuserid); + if (isset($listofuserid[$firstelem['id']])) { + $listofuserid[$firstelem['id']]['transparency'] = (GETPOSTISSET('transparency') ? GETPOST('transparency', 'alpha') : 0); // 0 by default when refreshing + } +} + print '
'; + print $form->select_dolusers_forevent(($action == 'create' ? 'add' : 'update'), 'assignedtouser', 1, '', 0, '', '', 0, 0, 0, 'AND u.statut != 0', 1, $listofuserid, $listofcontactid, $listofotherid); + print '
'; + print '
'.$langs->trans("ActionDoneBy").''; + print $form->select_dolusers(GETPOSTISSET("doneby") ? GETPOST("doneby", 'int') : (!empty($object->userdoneid) && $percent == 100 ? $object->userdoneid : 0), 'doneby', 1); + print '
'.$langs->trans("Location").'
'.$langs->trans("Status").' / '.$langs->trans("Percentage").''; + $percent = $complete !=='' ? $complete : -1; +if (GETPOSTISSET('status')) { + $percent = GETPOST('status'); +} elseif (GETPOSTISSET('percentage')) { + $percent = GETPOST('percentage', 'int'); +} else { + if ($complete == '0' || GETPOST("afaire") == 1) { + $percent = '0'; + } elseif ($complete == 100 || GETPOST("afaire") == 2) { + $percent = 100; + } +} + $formactions->form_select_status_action('formaction', $percent, 1, 'complete', 0, 0, 'maxwidth200'); + print '
'.$langs->trans("Categories").''; + $cate_arbo = $form->select_all_categories(Categorie::TYPE_ACTIONCOMM, '', 'parent', 64, 0, 1); + print img_picto('', 'category').$form->multiselectarray('categories', $cate_arbo, GETPOST('categories', 'array'), '', 0, 'minwidth300 quatrevingtpercent widthcentpercentminusx', 0, 0); + print "
'; -print "
\n"; -print "
"; -print '
'; + print '


'; + + + print ''; + +if (!empty($conf->societe->enabled)) { + // Related company + print ''; + + // Related contact + print ''; +} + + // Project +if (!empty($conf->project->enabled)) { + $langs->load("projects"); + + $projectid = GETPOST('projectid', 'int'); + + print ''; + + print ''; +} + + // Object linked +if (!empty($origin) && !empty($originid)) { + include_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; + + $hasPermissionOnLinkedObject = 0; + if ($user->hasRight($origin, 'read')) { + $hasPermissionOnLinkedObject = 1; + } + //var_dump('origin='.$origin.' originid='.$originid.' hasPermissionOnLinkedObject='.$hasPermissionOnLinkedObject); + + if (! in_array($origin, array('societe', 'project', 'task', 'user'))) { + // We do not use link for object that already contains a hard coded field to make links with agenda events + print ''; + print ''; + } +} + + $reg = array(); +if (GETPOST("datep") && preg_match('/^([0-9][0-9][0-9][0-9])([0-9][0-9])([0-9][0-9])$/', GETPOST("datep"), $reg)) { + $object->datep = dol_mktime(0, 0, 0, $reg[2], $reg[3], $reg[1]); +} + + // Priority +if (!empty($conf->global->AGENDA_SUPPORT_PRIORITY_IN_EVENTS)) { + print ''; +} + + // Description + print ''; + + // Other attributes + $parameters = array(); + $reshook = $hookmanager->executeHooks('formObjectOptions', $parameters, $object, $action); // Note that $action and $object may have been modified by hook + print $hookmanager->resPrint; +if (empty($reshook)) { + print $object->showOptionals($extrafields, 'create', $parameters); +} + + print '
'.$langs->trans("ActionOnCompany").''; + if (GETPOST('socid', 'int') > 0) { + $societe = new Societe($db); + $societe->fetch(GETPOST('socid', 'int')); + print $societe->getNomUrl(1); + print ''; + } else { + $events = array(); + $events[] = array('method' => 'getContacts', 'url' => dol_buildpath('/core/ajax/contacts.php?showempty=1', 1), 'htmlname' => 'contactid', 'params' => array('add-customer-contact' => 'disabled')); + //For external user force the company to user company + if (!empty($user->socid)) { + print img_picto('', 'company', 'class="paddingrightonly"').$form->select_company($user->socid, 'socid', '', 1, 1, 0, $events, 0, 'minwidth300'); + } else { + print img_picto('', 'company', 'class="paddingrightonly"').$form->select_company('', 'socid', '', 'SelectThirdParty', 1, 0, $events, 0, 'minwidth300'); + } + } + print '
'.$langs->trans("ActionOnContact").''; + $preselectedids = GETPOST('socpeopleassigned', 'array'); + if (GETPOST('contactid', 'int')) { + $preselectedids[GETPOST('contactid', 'int')] = GETPOST('contactid', 'int'); + } + if ($origin=='contact') $preselectedids[GETPOST('originid', 'int')] = GETPOST('originid', 'int'); + print img_picto('', 'contact', 'class="paddingrightonly"'); + print $form->selectcontacts(GETPOST('socid', 'int'), $preselectedids, 'socpeopleassigned[]', 1, '', '', 0, 'minwidth300 quatrevingtpercent', false, 0, array(), false, 'multiple', 'contactid'); + print '
'.$langs->trans("Project").''; + print img_picto('', 'project', 'class="pictofixedwidth"'); + print $formproject->select_projects(($object->socid > 0 ? $object->socid : -1), $projectid, 'projectid', 0, 0, 1, 1, 0, 0, 0, '', 1, 0, 'maxwidth500 widthcentpercentminusxx'); + + print ' '; + print ''; + $urloption = '?action=create&donotclearsession=1'; + $url = dol_buildpath('comm/action/card.php', 2).$urloption; + + // update task list + print "\n".''."\n"; + + print '
'.$langs->trans("Task").''; + print img_picto('', 'projecttask', 'class="paddingrightonly"'); + $projectsListId = false; + if (!empty($projectid)) { + $projectsListId = $projectid; + } + + $tid = GETPOSTISSET("projecttaskid") ? GETPOST("projecttaskid", 'int') : (GETPOSTISSET("taskid") ? GETPOST("taskid", 'int') : ''); + + $formproject->selectTasks((!empty($societe->id) ? $societe->id : -1), $tid, 'taskid', 24, 0, '1', 1, 0, 0, 'maxwidth500', $projectsListId); + print '
'.$langs->trans("LinkedObject").''; + if ($hasPermissionOnLinkedObject) { + print dolGetElementUrl($originid, $origin, 1); + print ''; + print ''; + print ''; + print ''; + } else { + print ''; + } + print '
'.$langs->trans("Priority").''; + print ''; + print '
'.$langs->trans("Description").''; + require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; + $doleditor = new DolEditor('note', (GETPOSTISSET('note') ? GETPOST('note', 'restricthtml') : $object->note_private), '', 120, 'dolibarr_notes', 'In', true, true, $conf->fckeditor->enabled, ROWS_4, '90%'); + $doleditor->Create(); + print '
'; + + +if (getDolGlobalString('AGENDA_REMINDER_EMAIL') || getDolGlobalString('AGENDA_REMINDER_BROWSER')) { + //checkbox create reminder + print '
'; + print '
'; + print '

'; + + print ''; + + print "\n".''."\n"; +} + + print dol_get_fiche_end(); + + print $form->buttonsSaveCancel("Add"); + + print ""; llxFooterVierge(); From 1f864f5dd4782f9e5dee744a4886f24ad89ae414 Mon Sep 17 00:00:00 2001 From: Quatadah Nasdami Date: Thu, 18 Aug 2022 08:38:54 +0200 Subject: [PATCH 03/34] template 01 corrected and re-exported --- .../websites/website_template-style01.jpg | Bin 0 -> 20970 bytes .../websites/website_template-style01.zip | Bin 0 -> 12929 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 htdocs/install/doctemplates/websites/website_template-style01.jpg create mode 100644 htdocs/install/doctemplates/websites/website_template-style01.zip diff --git a/htdocs/install/doctemplates/websites/website_template-style01.jpg b/htdocs/install/doctemplates/websites/website_template-style01.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5464bf5dd5d84809f8a943fa1f528290e1297537 GIT binary patch literal 20970 zcmeFZ1#o0bvKZQ895M5VS!&UUVZ=OQW@ct)W@e@lGcz+YGiyc+BkzW@FF z?eB1eU8kcfsWPi7@|;symE9jJA3Fdf2@!D-00;;G0P_0+e7pk)1#PTs?Ts89j0}nN z-H6O>jZEn5jST)Ieyjrm0pR~uAbuApC`c$MSQuz%7+6GDxZf8d1_Bbo?+*qV7AguV z78(g278V`}6)_Pp6_Az|$jikmCuarnKdRuP4}c5}Y6$TK41^c}iVOmV4DvAm!2dl0 zP*AWx2J`m<1q}fS1`Y!X^05Yh{u`rM_wUUAW({Kl#I(pYV#BL2{|{snTAEq}!^Q_| zZBRUoQvE*wZtTAQD%PO-iQZ^urleHI!q14(+vJD6i91%?;?IAS1T#B6Z)=AvOZ>6( z!o&RmIJQVg09(Csxr?=$>sC;W19p-hgFgaMbRb2`a!y3m|FJayayDf2nAaZbDrLOD zcf~_ZrsR0Y2I}_v>p#i;U-W<189-cxGVVXc(ggrexE-FG*CfJ1{<*7|e4b;{->P}s z%69-Djz5}X?3VUVgq5oPSq^0MREXr8ccpd)C;%ksjyGLsouW320qcpNa27i8pQY(E z8;`eHt}RO=T>%Kkh2Nw_-A!`G-qq^58r6kfeon25k_ke9KMp|r_IULuHnsm2$3yOPH7 ze{q^V7)t%e!5|Em@ao$(F-U#Kpg-xGf5YfV)L)UfFDS2;QQDeXa2?`m^kG#$FrnO> zimk!DXv+a8d1H%eE4j%vy#Vt^%n!@A+$1 zFkBq{xwwQKYwfOnX{&HHjKz9x<2*EHADEDw$F_Etqvt(f(6cSiribhr(ZxM7bC3`4JJ0(-p{lX~Iv_a(N zAa*%r|7(!Hflnm`fqzuP4~22Z|T|KVbY{(tp$!ytjw+OLjp1Av2JMQKB@+Su&b#tkh(?FK{ILjnQM!jXb@Xr>f zc3DTg4w!68ga7oZ_>=#is>mfPs#um<{1g+4Gk*kVeYJbN;`hAY8@v+6I|_qEe&CdVjJ0F7p3pjrb*_q@5p1Mp^&wR*v_6 z?A`V3Rp*_%X($l=NrejP^4iG4Iz99t@X;w*$MZ5jFLJxz`;*IbxIDccRE0CgQ?+iB zong>vR?Ua?Hy+4n^rq{i602&z;1q~euLy71!kVV(l z$(fjhk?9M&fFmX||5r9S`P>>(K}9>?KjS(O6u<}ISt2G{XC0KPSj(hLkD7cERL#wM zB>=0MV4d9_ZP0a#MU9S4tT@U;UW|!{N9`?$j;<1L858<|ra5m}@$9@_~4 z^YU{uhMTAHqE)n?-y=YUs){{P2SyI!DH`L6E3AK!61WzGixYcbQ&SK9z?Nzpn!1xv z59R3#bvZqmcUY_G89x}(i}xdL`SmV&K4w3?Av56h9Afn3>?N4maJ#i_{Tieq^8zp&PSfZ5g+mw~lN^;nD~# zYd3NYkk%kjq((k|k6Ey?8&tBa{Jf|tNyIOW7M!zu)1;wt09VB;%sYp*UovV~cgN~d zWL#!ZdKp!LAC~oo8~)5|)q9uM|mc!DC!p1!iWddUnPc?#>y`vD4K) z+2?indd`DjQm*M2YgKGRC6Dzb1Oo0}VW*z)>@FZ!^8>)30Y;z|$MMG8rsF(1b;1)q zdjT2VK$nJsSu=~w@OaorcXh3nNZIkEYC5V5Y()70sC#z1;7&EDpts_-_;;ve+PhfA-_VN90S2tm67*1Eqdvjs}7n_?*ync50-(6Jo@VpD)!RTt{2MIb-J|00X2&>%9w65OQ!dHU`w*6D?~q&wlL z;(Rphg>$l-4-vaK4_^iYI}E$R(u<$d+S|1eLG12}eCYsvvrZd~IRs3h?A#hoM-jCb^(Iw0sQJv8=`jJk_nk(zvJ+b?pj+ml3I( znnmX+D=C?=zduFekqZrWv1@l{)txyin}lE6C)%;Qf4lWU$)U4x9~&1f3jwHe2|E

By7XsB!O#Bi^UI-t&$S8{7`?MY(j*kjg# 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 literal 0 HcmV?d00001 diff --git a/htdocs/install/doctemplates/websites/website_template-style01.zip b/htdocs/install/doctemplates/websites/website_template-style01.zip new file mode 100644 index 0000000000000000000000000000000000000000..52a4501cb7aef1048b70a0f95a29cdb8380a89c8 GIT binary patch literal 12929 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%0A3ygS=#5r^(@g*?uq57s5zX%ze>v%Xl*}B-G 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 JeiZ})`hSTB(vScE literal 0 HcmV?d00001 From 864367de16b923e4ffeeba55c074db3ba8014b9d Mon Sep 17 00:00:00 2001 From: Quatadah Nasdami Date: Thu, 18 Aug 2022 08:41:53 +0200 Subject: [PATCH 04/34] removing useless push --- htdocs/public/bookcal/index.php | 26 -------------------------- 1 file changed, 26 deletions(-) delete mode 100644 htdocs/public/bookcal/index.php diff --git a/htdocs/public/bookcal/index.php b/htdocs/public/bookcal/index.php deleted file mode 100644 index 4071c62de1f..00000000000 --- a/htdocs/public/bookcal/index.php +++ /dev/null @@ -1,26 +0,0 @@ - - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -/** - * \file htdocs/public/members/index.php - * \ingroup core - * \brief A redirect page to an error - */ - -require '../../master.inc.php'; - -header("Location: ".DOL_URL_ROOT.'/public/error-404.php'); From 2b4278ded2e0f01c15ac98495203198eac7dbac5 Mon Sep 17 00:00:00 2001 From: Quatadah Nasdami Date: Thu, 18 Aug 2022 08:42:47 +0200 Subject: [PATCH 05/34] moving useless files --- htdocs/public/bookcal/booking.php | 787 ------------------------------ 1 file changed, 787 deletions(-) delete mode 100644 htdocs/public/bookcal/booking.php diff --git a/htdocs/public/bookcal/booking.php b/htdocs/public/bookcal/booking.php deleted file mode 100644 index 0d39ebb13ed..00000000000 --- a/htdocs/public/bookcal/booking.php +++ /dev/null @@ -1,787 +0,0 @@ - - * Copyright (C) 2001-2002 Jean-Louis Bergamo - * Copyright (C) 2006-2013 Laurent Destailleur - * Copyright (C) 2012 Regis Houssin - * Copyright (C) 2012 J. Fernando Lagrange - * Copyright (C) 2018-2019 Frédéric France - * Copyright (C) 2018 Alexandre Spangaro - * Copyright (C) 2021 Waël Almoman - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -/** - * \file htdocs/public/partnership/new.php - * \ingroup member - * \brief Example of form to add a new member - */ - -use Stripe\Event; - -if (!defined('NOLOGIN')) { - define("NOLOGIN", 1); // This means this output page does not require to be logged. -} -if (!defined('NOCSRFCHECK')) { - define("NOCSRFCHECK", 1); // We accept to go on this page from external web site. -} -if (!defined('NOIPCHECK')) { - define('NOIPCHECK', '1'); // Do not check IP defined into conf $dolibarr_main_restrict_ip -} -if (!defined('NOBROWSERNOTIF')) { - define('NOBROWSERNOTIF', '1'); -} -if (!defined('NOIPCHECK')) { - define('NOIPCHECK', '1'); // Do not check IP defined into conf $dolibarr_main_restrict_ip -} - -// For MultiCompany module. -// Do not use GETPOST here, function is not defined and define must be done before including main.inc.php -// TODO This should be useless. Because entity must be retrieve from object ref and not from url. -$entity = (!empty($_GET['entity']) ? (int) $_GET['entity'] : (!empty($_POST['entity']) ? (int) $_POST['entity'] : 1)); -if (is_numeric($entity)) { - define("DOLENTITY", $entity); -} - -require '../../main.inc.php'; -require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; -require_once DOL_DOCUMENT_ROOT.'/partnership/class/partnership.class.php'; -require_once DOL_DOCUMENT_ROOT.'/partnership/class/partnership_type.class.php'; -require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; -require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php'; -require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; -require_once DOL_DOCUMENT_ROOT.'/core/lib/agenda.lib.php'; -require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; -require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php'; -require_once DOL_DOCUMENT_ROOT.'/user/class/user.class.php'; -require_once DOL_DOCUMENT_ROOT.'/comm/action/class/cactioncomm.class.php'; -require_once DOL_DOCUMENT_ROOT.'/comm/action/class/actioncomm.class.php'; -require_once DOL_DOCUMENT_ROOT.'/comm/action/class/actioncommreminder.class.php'; -require_once DOL_DOCUMENT_ROOT.'/core/class/html.formactions.class.php'; -require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'; -require_once DOL_DOCUMENT_ROOT.'/core/class/html.form.class.php'; -require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; -require_once DOL_DOCUMENT_ROOT.'/projet/class/task.class.php'; -require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php'; -require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; -require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; - -// Init vars -$errmsg = ''; -$num = 0; -$error = 0; -$backtopage = GETPOST('backtopage', 'alpha'); -$action = GETPOST('action', 'aZ09'); - -// Load translation files -$langs->loadLangs(array("main", "members", "companies", "install", "other")); - - -// Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context -$hookmanager->initHooks(array('publicnewpartnershipcard', 'globalcard')); - - -$object = new ActionComm($db); -$cactioncomm = new CActionComm($db); -$contact = new Contact($db); -$formfile = new FormFile($db); -$formactions = new FormActions($db); -$extrafields = new ExtraFields($db); - - - -$user->loadDefaultValues(); - - -/** - * Show header for new partnership - * - * @param string $title Title - * @param string $head Head array - * @param int $disablejs More content into html header - * @param int $disablehead More content into html header - * @param array $arrayofjs Array of complementary js files - * @param array $arrayofcss Array of complementary css files - * @return void - */ -function llxHeaderVierge($title, $head = "", $disablejs = 0, $disablehead = 0, $arrayofjs = '', $arrayofcss = '') -{ - global $user, $conf, $langs, $mysoc; - - top_htmlhead($head, $title, $disablejs, $disablehead, $arrayofjs, $arrayofcss); // Show html headers - - print ''; - - // Define urllogo - $urllogo = DOL_URL_ROOT.'/theme/common/login_logo.png'; - - if (!empty($mysoc->logo_small) && is_readable($conf->mycompany->dir_output.'/logos/thumbs/'.$mysoc->logo_small)) { - $urllogo = DOL_URL_ROOT.'/viewimage.php?cache=1&modulepart=mycompany&file='.urlencode('logos/thumbs/'.$mysoc->logo_small); - } elseif (!empty($mysoc->logo) && is_readable($conf->mycompany->dir_output.'/logos/'.$mysoc->logo)) { - $urllogo = DOL_URL_ROOT.'/viewimage.php?cache=1&modulepart=mycompany&file='.urlencode('logos/'.$mysoc->logo); - } elseif (is_readable(DOL_DOCUMENT_ROOT.'/theme/dolibarr_logo.svg')) { - $urllogo = DOL_URL_ROOT.'/theme/dolibarr_logo.svg'; - } - - print '

'; - - // Output html code for logo - if ($urllogo) { - print '
'; - print '
'; - print ''; - print '
'; - if (empty($conf->global->MAIN_HIDE_POWERED_BY)) { - print ''; - } - print '
'; - } - - if (!empty($conf->global->PARTNERSHIP_IMAGE_PUBLIC_REGISTRATION)) { - print '
'; - print ''; - print '
'; - } - - print '
'; - - print '
'; -} - -/** - * Show footer for new member - * - * @return void - */ -function llxFooterVierge() -{ - print '
'; - - printCommonFooter('public'); - - print "\n"; - print "\n"; -} - - -/* - * Actions - */ -$parameters = array(); -// Note that $action and $object may have been modified by some hooks -$reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); -if ($reshook < 0) { - setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); -} - -// Action called when page is submitted -if (empty($reshook) && $action == 'add') { - $error = 0; - $urlback = ''; - - $db->begin(); - - /*if (GETPOST('typeid') <= 0) { - $error++; - $errmsg .= $langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Type"))."
\n"; - }*/ - if (!GETPOST('lastname')) { - $error++; - $errmsg .= $langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Lastname"))."
\n"; - } - if (!GETPOST('firstname')) { - $error++; - $errmsg .= $langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Firstname"))."
\n"; - } - if (empty(GETPOST('email'))) { - $error++; - $errmsg .= $langs->trans('ErrorFieldRequired', $langs->transnoentitiesnoconv('Email'))."
\n"; - } elseif (GETPOST("email") && !isValidEmail(GETPOST("email"))) { - $langs->load('errors'); - $error++; - $errmsg .= $langs->trans("ErrorBadEMail", GETPOST("email"))."
\n"; - } - - $public = GETPOSTISSET('public') ? 1 : 0; - - if (!$error) { - //$partnership = new Partnership($db); - $events = new Events($db); - - - // We try to find the thirdparty or the member - if (getDolGlobalString('PARTNERSHIP_IS_MANAGED_FOR', 'thirdparty') == 'thirdparty') { - $event->fk_member = 0; - } elseif (getDolGlobalString('PARTNERSHIP_IS_MANAGED_FOR', 'thirdparty') == 'member') { - $event->fk_soc = 0; - } - - $events->statut = -1; - $events->firstname = GETPOST('firstname'); - $events->lastname = GETPOST('lastname'); - $events->address = GETPOST('address'); - $events->zip = GETPOST('zipcode'); - $events->town = GETPOST('town'); - $events->email = GETPOST('email'); - $events->country_id = GETPOST('country_id', 'int'); - $events->state_id = GETPOST('state_id', 'int'); - //$partnership->typeid = $conf->global->PARTNERSHIP_NEWFORM_FORCETYPE ? $conf->global->PARTNERSHIP_NEWFORM_FORCETYPE : GETPOST('typeid', 'int'); - $event->note_private = GETPOST('note_private'); - - // Fill array 'array_options' with data from add form - $extrafields->fetch_name_optionals_label($partnership->table_element); - $ret = $extrafields->setOptionalsFromPost(null, $partnership); - if ($ret < 0) { - $error++; - } - - if (!$error) { - $result = $event->create($user); - if ($result > 0) { - $db->commit(); - $urlback = DOL_URL_ROOT.'/public/partnership/new.php?action=confirm&id='.$event->id; - header('Location: '.$urlback); - exit; - } else { - $db->rollback(); - $errmsg = $event->error; - $error++; - } - } else { - $error++; - $errmsg .= join('
', $event->errors); - } - } -} - -// Action called after a submitted was send and member created successfully -// If PARTNERSHIP_URL_REDIRECT_SUBSCRIPTION is set to url we never go here because a redirect was done to this url. -// backtopage parameter with an url was set on member submit page, we never go here because a redirect was done to this url. -if (empty($reshook) && $action == 'added') { - llxHeaderVierge($langs->trans("NewPartnershipForm")); - - // Si on a pas ete redirige - print '

'; - print '
'; - print $langs->trans("NewPartnershipbyWeb"); - print '
'; - - llxFooterVierge(); - - exit; -} - - - -/* - * View - */ - -$form = new Form($db); -$formcompany = new FormCompany($db); - -$extrafields->fetch_name_optionals_label($partnership->table_element); // fetch optionals attributes and labels - - -llxHeaderVierge($langs->trans("NewBookingRequest")); - - -print load_fiche_titre($langs->trans("NewBookingRequest"), '', '', 0, 0, 'center'); - - - -// View - -// Add new Events form -$contact = new Contact($db); - - $socpeopleassigned = GETPOST("socpeopleassigned", 'array'); -if (!empty($socpeopleassigned[0])) { - $result = $contact->fetch($socpeopleassigned[0]); - if ($result < 0) { - dol_print_error($db, $contact->error); - } -} - - dol_set_focus("#label"); - -if (!empty($conf->use_javascript_ajax)) { - print "\n".''."\n"; -} - print '
'; - print ''; - print ''; - print ''; - print ''; -if ($backtopage) { - print ''; -} -if (empty($conf->global->AGENDA_USE_EVENT_TYPE)) { - print ''; -} - -if (GETPOST("actioncode", 'aZ09') == 'AC_RDV') { - print load_fiche_titre($langs->trans("AddActionRendezVous"), '', 'title_agenda'); -} else { - print load_fiche_titre($langs->trans("AddAnAction"), '', 'title_agenda'); -} - - print dol_get_fiche_head(); - - print ''; - - // Type of event -if (!empty($conf->global->AGENDA_USE_EVENT_TYPE)) { - print ''; -} - - // Title - print 'global->AGENDA_USE_EVENT_TYPE) ? ' class="fieldrequired titlefieldcreate"' : '').'>'.$langs->trans("Label").''; - - // Full day - print ''; -} - - print ''; - - $datep = ($datep ? $datep : (is_null($object->datep) ? '' : $object->datep)); -if (GETPOST('datep', 'int', 1)) { - $datep = dol_stringtotime(GETPOST('datep', 'int', 1), 'tzuser'); -} - $datef = ($datef ? $datef : $object->datef); -if (GETPOST('datef', 'int', 1)) { - $datef = dol_stringtotime(GETPOST('datef', 'int', 1), 'tzuser'); -} -if (empty($datef) && !empty($datep)) { - if (GETPOST("actioncode", 'aZ09') == 'AC_RDV' || empty($conf->global->AGENDA_USE_EVENT_TYPE_DEFAULT)) { - $datef = dol_time_plus_duree($datep, (empty($conf->global->AGENDA_AUTOSET_END_DATE_WITH_DELTA_HOURS) ? 1 : $conf->global->AGENDA_AUTOSET_END_DATE_WITH_DELTA_HOURS), 'h'); - } -} - - // Date start - print ''; - - print ''; - - // Assigned to - print ''; - - // Done by -if (!empty($conf->global->AGENDA_ENABLE_DONEBY)) { - print ''; -} - - // Location -if (empty($conf->global->AGENDA_DISABLE_LOCATION)) { - print ''; -} - - // Status - print ''; - print ''; - -if (!empty($conf->categorie->enabled)) { - // Categories - print '"; -} - - print '
'.$langs->trans("Type").''; - $default = (empty($conf->global->AGENDA_USE_EVENT_TYPE_DEFAULT) ? 'AC_RDV' : $conf->global->AGENDA_USE_EVENT_TYPE_DEFAULT); - print img_picto($langs->trans("ActionType"), 'square', 'class="fawidth30 inline-block" style="color: #ddd;"'); - print $formactions->select_type_actions(GETPOSTISSET("actioncode") ? GETPOST("actioncode", 'aZ09') : ($object->type_code ? $object->type_code : $default), "actioncode", "systemauto", 0, -1, 0, 1); // TODO Replace 0 with -2 in onlyautoornot - print '
'.$langs->trans("Date").''; - - // Recurring event - $userepeatevent = ($conf->global->MAIN_FEATURES_LEVEL == 2 ? 1 : 0); -if ($userepeatevent) { - // Repeat - //print '
'; - print '        
'; - print img_picto($langs->trans("Recurrence"), 'recurring', 'class="paddingright2"'); - print ''; - $selectedrecurrulefreq = 'no'; - $selectedrecurrulebymonthday = ''; - $selectedrecurrulebyday = ''; - if ($object->recurrule && preg_match('/FREQ=([A-Z]+)/i', $object->recurrule, $reg)) { - $selectedrecurrulefreq = $reg[1]; - } - if ($object->recurrule && preg_match('/FREQ=MONTHLY.*BYMONTHDAY=(\d+)/i', $object->recurrule, $reg)) { - $selectedrecurrulebymonthday = $reg[1]; - } - if ($object->recurrule && preg_match('/FREQ=WEEKLY.*BYDAY(\d+)/i', $object->recurrule, $reg)) { - $selectedrecurrulebyday = $reg[1]; - } - print $form->selectarray('recurrulefreq', $arrayrecurrulefreq, $selectedrecurrulefreq, 0, 0, 0, '', 0, 0, 0, '', 'marginrightonly'); - // If recurrulefreq is MONTHLY - print ''; - // If recurrulefreq is WEEKLY - print ''; - print ''; - print '
'; - //print '
'; - /* - print ''.$langs->trans("DateActionStart").''; - print ' - '; - print ''.$langs->trans("DateActionEnd").''; - */ - print ''; -if (GETPOST("afaire") == 1) { - print $form->selectDate($datep, 'ap', 1, 1, 0, "action", 1, 2, 0, 'fulldaystart', '', '', '', 1, '', '', 'tzuserrel'); // Empty value not allowed for start date and hours if "todo" -} else { - print $form->selectDate($datep, 'ap', 1, 1, 1, "action", 1, 2, 0, 'fulldaystart', '', '', '', 1, '', '', 'tzuserrel'); -} - print '     -     '; -if (GETPOST("afaire") == 1) { - print $form->selectDate($datef, 'p2', 1, 1, 1, "action", 1, 0, 0, 'fulldayend', '', '', '', 1, '', '', 'tzuserrel'); -} else { - print $form->selectDate($datef, 'p2', 1, 1, 1, "action", 1, 0, 0, 'fulldayend', '', '', '', 1, '', '', 'tzuserrel'); -} - print '
 
'.$langs->trans("ActionAffectedTo").''; - $listofuserid = array(); - $listofcontactid = array(); - $listofotherid = array(); - -if (empty($donotclearsession)) { - $assignedtouser = GETPOST("assignedtouser") ?GETPOST("assignedtouser") : (!empty($object->userownerid) && $object->userownerid > 0 ? $object->userownerid : $user->id); - if ($assignedtouser) { - $listofuserid[$assignedtouser] = array('id'=>$assignedtouser, 'mandatory'=>0, 'transparency'=>$object->transparency); // Owner first - } - //$listofuserid[$user->id] = array('id'=>$user->id, 'mandatory'=>0, 'transparency'=>(GETPOSTISSET('transparency') ? GETPOST('transparency', 'alpha') : 1)); // 1 by default at first init - $listofuserid[$assignedtouser]['transparency'] = (GETPOSTISSET('transparency') ? GETPOST('transparency', 'alpha') : 1); // 1 by default at first init - $_SESSION['assignedtouser'] = json_encode($listofuserid); -} else { - if (!empty($_SESSION['assignedtouser'])) { - $listofuserid = json_decode($_SESSION['assignedtouser'], true); - } - $firstelem = reset($listofuserid); - if (isset($listofuserid[$firstelem['id']])) { - $listofuserid[$firstelem['id']]['transparency'] = (GETPOSTISSET('transparency') ? GETPOST('transparency', 'alpha') : 0); // 0 by default when refreshing - } -} - print '
'; - print $form->select_dolusers_forevent(($action == 'create' ? 'add' : 'update'), 'assignedtouser', 1, '', 0, '', '', 0, 0, 0, 'AND u.statut != 0', 1, $listofuserid, $listofcontactid, $listofotherid); - print '
'; - print '
'.$langs->trans("ActionDoneBy").''; - print $form->select_dolusers(GETPOSTISSET("doneby") ? GETPOST("doneby", 'int') : (!empty($object->userdoneid) && $percent == 100 ? $object->userdoneid : 0), 'doneby', 1); - print '
'.$langs->trans("Location").'
'.$langs->trans("Status").' / '.$langs->trans("Percentage").''; - $percent = $complete !=='' ? $complete : -1; -if (GETPOSTISSET('status')) { - $percent = GETPOST('status'); -} elseif (GETPOSTISSET('percentage')) { - $percent = GETPOST('percentage', 'int'); -} else { - if ($complete == '0' || GETPOST("afaire") == 1) { - $percent = '0'; - } elseif ($complete == 100 || GETPOST("afaire") == 2) { - $percent = 100; - } -} - $formactions->form_select_status_action('formaction', $percent, 1, 'complete', 0, 0, 'maxwidth200'); - print '
'.$langs->trans("Categories").''; - $cate_arbo = $form->select_all_categories(Categorie::TYPE_ACTIONCOMM, '', 'parent', 64, 0, 1); - print img_picto('', 'category').$form->multiselectarray('categories', $cate_arbo, GETPOST('categories', 'array'), '', 0, 'minwidth300 quatrevingtpercent widthcentpercentminusx', 0, 0); - print "
'; - - - print '


'; - - - print ''; - -if (!empty($conf->societe->enabled)) { - // Related company - print ''; - - // Related contact - print ''; -} - - // Project -if (!empty($conf->project->enabled)) { - $langs->load("projects"); - - $projectid = GETPOST('projectid', 'int'); - - print ''; - - print ''; -} - - // Object linked -if (!empty($origin) && !empty($originid)) { - include_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; - - $hasPermissionOnLinkedObject = 0; - if ($user->hasRight($origin, 'read')) { - $hasPermissionOnLinkedObject = 1; - } - //var_dump('origin='.$origin.' originid='.$originid.' hasPermissionOnLinkedObject='.$hasPermissionOnLinkedObject); - - if (! in_array($origin, array('societe', 'project', 'task', 'user'))) { - // We do not use link for object that already contains a hard coded field to make links with agenda events - print ''; - print ''; - } -} - - $reg = array(); -if (GETPOST("datep") && preg_match('/^([0-9][0-9][0-9][0-9])([0-9][0-9])([0-9][0-9])$/', GETPOST("datep"), $reg)) { - $object->datep = dol_mktime(0, 0, 0, $reg[2], $reg[3], $reg[1]); -} - - // Priority -if (!empty($conf->global->AGENDA_SUPPORT_PRIORITY_IN_EVENTS)) { - print ''; -} - - // Description - print ''; - - // Other attributes - $parameters = array(); - $reshook = $hookmanager->executeHooks('formObjectOptions', $parameters, $object, $action); // Note that $action and $object may have been modified by hook - print $hookmanager->resPrint; -if (empty($reshook)) { - print $object->showOptionals($extrafields, 'create', $parameters); -} - - print '
'.$langs->trans("ActionOnCompany").''; - if (GETPOST('socid', 'int') > 0) { - $societe = new Societe($db); - $societe->fetch(GETPOST('socid', 'int')); - print $societe->getNomUrl(1); - print ''; - } else { - $events = array(); - $events[] = array('method' => 'getContacts', 'url' => dol_buildpath('/core/ajax/contacts.php?showempty=1', 1), 'htmlname' => 'contactid', 'params' => array('add-customer-contact' => 'disabled')); - //For external user force the company to user company - if (!empty($user->socid)) { - print img_picto('', 'company', 'class="paddingrightonly"').$form->select_company($user->socid, 'socid', '', 1, 1, 0, $events, 0, 'minwidth300'); - } else { - print img_picto('', 'company', 'class="paddingrightonly"').$form->select_company('', 'socid', '', 'SelectThirdParty', 1, 0, $events, 0, 'minwidth300'); - } - } - print '
'.$langs->trans("ActionOnContact").''; - $preselectedids = GETPOST('socpeopleassigned', 'array'); - if (GETPOST('contactid', 'int')) { - $preselectedids[GETPOST('contactid', 'int')] = GETPOST('contactid', 'int'); - } - if ($origin=='contact') $preselectedids[GETPOST('originid', 'int')] = GETPOST('originid', 'int'); - print img_picto('', 'contact', 'class="paddingrightonly"'); - print $form->selectcontacts(GETPOST('socid', 'int'), $preselectedids, 'socpeopleassigned[]', 1, '', '', 0, 'minwidth300 quatrevingtpercent', false, 0, array(), false, 'multiple', 'contactid'); - print '
'.$langs->trans("Project").''; - print img_picto('', 'project', 'class="pictofixedwidth"'); - print $formproject->select_projects(($object->socid > 0 ? $object->socid : -1), $projectid, 'projectid', 0, 0, 1, 1, 0, 0, 0, '', 1, 0, 'maxwidth500 widthcentpercentminusxx'); - - print ' '; - print ''; - $urloption = '?action=create&donotclearsession=1'; - $url = dol_buildpath('comm/action/card.php', 2).$urloption; - - // update task list - print "\n".''."\n"; - - print '
'.$langs->trans("Task").''; - print img_picto('', 'projecttask', 'class="paddingrightonly"'); - $projectsListId = false; - if (!empty($projectid)) { - $projectsListId = $projectid; - } - - $tid = GETPOSTISSET("projecttaskid") ? GETPOST("projecttaskid", 'int') : (GETPOSTISSET("taskid") ? GETPOST("taskid", 'int') : ''); - - $formproject->selectTasks((!empty($societe->id) ? $societe->id : -1), $tid, 'taskid', 24, 0, '1', 1, 0, 0, 'maxwidth500', $projectsListId); - print '
'.$langs->trans("LinkedObject").''; - if ($hasPermissionOnLinkedObject) { - print dolGetElementUrl($originid, $origin, 1); - print ''; - print ''; - print ''; - print ''; - } else { - print ''; - } - print '
'.$langs->trans("Priority").''; - print ''; - print '
'.$langs->trans("Description").''; - require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; - $doleditor = new DolEditor('note', (GETPOSTISSET('note') ? GETPOST('note', 'restricthtml') : $object->note_private), '', 120, 'dolibarr_notes', 'In', true, true, $conf->fckeditor->enabled, ROWS_4, '90%'); - $doleditor->Create(); - print '
'; - - -if (getDolGlobalString('AGENDA_REMINDER_EMAIL') || getDolGlobalString('AGENDA_REMINDER_BROWSER')) { - //checkbox create reminder - print '
'; - print '
'; - print '

'; - - print ''; - - print "\n".''."\n"; -} - - print dol_get_fiche_end(); - - print $form->buttonsSaveCancel("Add"); - - print "
"; - - -llxFooterVierge(); - -$db->close(); From 8da9d58b9f630aed68be98e771209bb2dc6db4e5 Mon Sep 17 00:00:00 2001 From: Quatadah Nasdami Date: Mon, 22 Aug 2022 15:48:12 +0200 Subject: [PATCH 06/34] sending mail is now managed in template 01 --- .../websites/website_template-style01.zip | Bin 12929 -> 13388 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/htdocs/install/doctemplates/websites/website_template-style01.zip b/htdocs/install/doctemplates/websites/website_template-style01.zip index 52a4501cb7aef1048b70a0f95a29cdb8380a89c8..7bca0dd1e21ef3ae5e6a4a6c0ba02f2808c961e9 100644 GIT binary patch delta 7077 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 delta 6758 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 From 06ee265dc9d4ad9fc9a96ab7ee8d2a660c87a061 Mon Sep 17 00:00:00 2001 From: Quatadah Nasdami Date: Mon, 26 Sep 2022 14:50:25 +0200 Subject: [PATCH 07/34] template01 navbar fixed and css fixed --- .../websites/website_template-style01.zip | Bin 13388 -> 43714 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/htdocs/install/doctemplates/websites/website_template-style01.zip b/htdocs/install/doctemplates/websites/website_template-style01.zip index 7bca0dd1e21ef3ae5e6a4a6c0ba02f2808c961e9..190beb449ed6d45f6ac2d708b2a83686de09d6a0 100644 GIT binary patch delta 37678 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 delta 6951 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 From a048fa4b6dd85ea0315d9deef784a3257587634a Mon Sep 17 00:00:00 2001 From: Quatadah Nasdami Date: Thu, 29 Sep 2022 12:13:48 +0200 Subject: [PATCH 08/34] template01 css corrected --- .../websites/website_template-style01.zip | Bin 13388 -> 43714 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/htdocs/install/doctemplates/websites/website_template-style01.zip b/htdocs/install/doctemplates/websites/website_template-style01.zip index 7bca0dd1e21ef3ae5e6a4a6c0ba02f2808c961e9..190beb449ed6d45f6ac2d708b2a83686de09d6a0 100644 GIT binary patch delta 37678 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 delta 6951 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 From 946c79ced021fc7937551e4caec0d99f96a3be37 Mon Sep 17 00:00:00 2001 From: lvessiller Date: Tue, 4 Oct 2022 17:43:24 +0200 Subject: [PATCH 09/34] NEW set thirdparty type with company modify trigger --- htdocs/societe/class/societe.class.php | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/htdocs/societe/class/societe.class.php b/htdocs/societe/class/societe.class.php index 586f955c1e0..c01f83401cf 100644 --- a/htdocs/societe/class/societe.class.php +++ b/htdocs/societe/class/societe.class.php @@ -4932,15 +4932,16 @@ class Societe extends CommonObject */ public function setThirdpartyType($typent_id) { + global $user; + + dol_syslog(__METHOD__, LOG_DEBUG); + if ($this->id) { - $sql = "UPDATE ".MAIN_DB_PREFIX."societe"; - $sql .= " SET fk_typent = ".($typent_id > 0 ? $typent_id : "null"); - $sql .= " WHERE rowid = ".((int) $this->id); - dol_syslog(get_class($this).'::setThirdpartyType', LOG_DEBUG); - $resql = $this->db->query($sql); - if ($resql) { + $result = $this->setValueFrom('fk_typent', $typent_id, '', null, '', '', $user, 'COMPANY_MODIFY'); + + if ($result > 0) { $this->typent_id = $typent_id; - $this->typent_code = dol_getIdFromCode($this->db, $this->$typent_id, 'c_typent', 'id', 'code'); + $this->typent_code = dol_getIdFromCode($this->db, $this->typent_id, 'c_typent', 'id', 'code'); return 1; } else { return -1; From 9422a4bd1d3b7bc3a7e5b6ff2e4469721ec77ae1 Mon Sep 17 00:00:00 2001 From: lvessiller Date: Wed, 5 Oct 2022 09:32:37 +0200 Subject: [PATCH 10/34] FIX uses object fetch method in setValueFrom if method exists --- htdocs/core/class/commonobject.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/core/class/commonobject.class.php b/htdocs/core/class/commonobject.class.php index 7f30878d566..dcec2480137 100644 --- a/htdocs/core/class/commonobject.class.php +++ b/htdocs/core/class/commonobject.class.php @@ -2072,7 +2072,7 @@ abstract class CommonObject if ($resql) { if ($trigkey) { // call trigger with updated object values - if (empty($this->fields) && method_exists($this, 'fetch')) { + if (method_exists($this, 'fetch')) { $result = $this->fetch($id); } else { $result = $this->fetchCommon($id); From 6abb7c0472397f190dd495ae0eaf3c510aa4add7 Mon Sep 17 00:00:00 2001 From: Julien Nicolas Date: Wed, 5 Oct 2022 09:36:48 +0200 Subject: [PATCH 11/34] Bugfix class Expedition not found --- .../modules/project/doc/doc_generic_project_odt.modules.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/htdocs/core/modules/project/doc/doc_generic_project_odt.modules.php b/htdocs/core/modules/project/doc/doc_generic_project_odt.modules.php index 0bfdbb0988d..6f4d97c9ce4 100644 --- a/htdocs/core/modules/project/doc/doc_generic_project_odt.modules.php +++ b/htdocs/core/modules/project/doc/doc_generic_project_odt.modules.php @@ -67,7 +67,9 @@ if (isModEnabled('deplacement')) { if (isModEnabled('agenda')) { require_once DOL_DOCUMENT_ROOT.'/comm/action/class/actioncomm.class.php'; } - +if (!empty($conf->expedition->enabled)) { + require_once DOL_DOCUMENT_ROOT.'/expedition/class/expedition.class.php'; +} /** * Class to build documents using ODF templates generator From 61c0df76914177e238289435c7199322656c0b10 Mon Sep 17 00:00:00 2001 From: Julien Nicolas Date: Wed, 5 Oct 2022 09:40:37 +0200 Subject: [PATCH 12/34] Update doc_generic_project_odt.modules.php --- .../modules/project/doc/doc_generic_project_odt.modules.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/core/modules/project/doc/doc_generic_project_odt.modules.php b/htdocs/core/modules/project/doc/doc_generic_project_odt.modules.php index 6f4d97c9ce4..ee4e17ae19e 100644 --- a/htdocs/core/modules/project/doc/doc_generic_project_odt.modules.php +++ b/htdocs/core/modules/project/doc/doc_generic_project_odt.modules.php @@ -67,7 +67,7 @@ if (isModEnabled('deplacement')) { if (isModEnabled('agenda')) { require_once DOL_DOCUMENT_ROOT.'/comm/action/class/actioncomm.class.php'; } -if (!empty($conf->expedition->enabled)) { +if (isModEnabled('expedition')) { require_once DOL_DOCUMENT_ROOT.'/expedition/class/expedition.class.php'; } From da1259c2cefa154fc7cb6920151fda653e041a39 Mon Sep 17 00:00:00 2001 From: lvessiller Date: Wed, 5 Oct 2022 15:07:42 +0200 Subject: [PATCH 13/34] NEW date delivery planned on orders linked to product --- htdocs/product/stats/commande.php | 9 +++++++++ htdocs/product/stats/commande_fournisseur.php | 9 +++++++++ 2 files changed, 18 insertions(+) diff --git a/htdocs/product/stats/commande.php b/htdocs/product/stats/commande.php index f856b8a310f..ed5216f85d1 100644 --- a/htdocs/product/stats/commande.php +++ b/htdocs/product/stats/commande.php @@ -140,6 +140,7 @@ if ($id > 0 || !empty($ref)) { $sql = "SELECT DISTINCT s.nom as name, s.rowid as socid, s.code_client, c.rowid, d.total_ht as total_ht, c.ref,"; $sql .= " c.ref_client,"; $sql .= " c.date_commande, c.fk_statut as statut, c.facture, c.rowid as commandeid, d.rowid, d.qty"; + $sql .= ", c.date_livraison"; if (empty($user->rights->societe->client->voir) && !$socid) { $sql .= ", sc.fk_soc, sc.fk_user "; } @@ -184,6 +185,7 @@ if ($id > 0 || !empty($ref)) { if ($result) { $num = $db->num_rows($result); + $option = ''; if ($limit > 0 && $limit != $conf->liste_limit) { $option .= '&limit='.urlencode($limit); } @@ -232,6 +234,7 @@ if ($id > 0 || !empty($ref)) { print_liste_field_titre("Company", $_SERVER["PHP_SELF"], "s.nom", "", $option, '', $sortfield, $sortorder); print_liste_field_titre("CustomerCode", $_SERVER["PHP_SELF"], "s.code_client", "", $option, '', $sortfield, $sortorder); print_liste_field_titre("OrderDate", $_SERVER["PHP_SELF"], "c.date_commande", "", $option, 'align="center"', $sortfield, $sortorder); + print_liste_field_titre('DateDeliveryPlanned', $_SERVER['PHP_SELF'], 'c.date_livraison', '', $option, 'align="center"', $sortfield, $sortorder); print_liste_field_titre("Qty", $_SERVER["PHP_SELF"], "d.qty", "", $option, 'align="center"', $sortfield, $sortorder); print_liste_field_titre("AmountHT", $_SERVER["PHP_SELF"], "c.total_ht", "", $option, 'align="right"', $sortfield, $sortorder); print_liste_field_titre("Status", $_SERVER["PHP_SELF"], "c.fk_statut", "", $option, 'align="right"', $sortfield, $sortorder); @@ -257,6 +260,10 @@ if ($id > 0 || !empty($ref)) { print "".$objp->code_client."\n"; print ''; print dol_print_date($db->jdate($objp->date_commande), 'dayhour').""; + // delivery planned date + print ''; + print dol_print_date($db->jdate($objp->date_livraison), 'dayhour'); + print ''; print ''.$objp->qty."\n"; print ''.price($objp->total_ht)."\n"; print ''.$orderstatic->LibStatut($objp->statut, $objp->facture, 5).''; @@ -271,6 +278,8 @@ if ($id > 0 || !empty($ref)) { print ''.$langs->trans("Totalforthispage").''; } print ''; + // delivery planned date + print ''; print ''.$total_qty.''; print ''.price($total_ht).''; print ''; diff --git a/htdocs/product/stats/commande_fournisseur.php b/htdocs/product/stats/commande_fournisseur.php index 8a4957d574d..f3353fa3d5d 100644 --- a/htdocs/product/stats/commande_fournisseur.php +++ b/htdocs/product/stats/commande_fournisseur.php @@ -140,6 +140,7 @@ if ($id > 0 || !empty($ref)) { $sql = "SELECT DISTINCT s.nom as name, s.rowid as socid, s.code_client,"; $sql .= " c.rowid, d.total_ht as total_ht, c.ref,"; $sql .= " c.date_commande, c.fk_statut as statut, c.rowid as commandeid, d.rowid, d.qty"; + $sql .= ", c.date_livraison"; if (empty($user->rights->societe->client->voir) && !$socid) { $sql .= ", sc.fk_soc, sc.fk_user "; } @@ -184,6 +185,7 @@ if ($id > 0 || !empty($ref)) { if ($result) { $num = $db->num_rows($result); + $option = ''; if ($limit > 0 && $limit != $conf->liste_limit) { $option .= '&limit='.urlencode($limit); } @@ -232,6 +234,7 @@ if ($id > 0 || !empty($ref)) { print_liste_field_titre("Company", $_SERVER["PHP_SELF"], "s.nom", "", $option, '', $sortfield, $sortorder); print_liste_field_titre("SupplierCode", $_SERVER["PHP_SELF"], "s.code_client", "", $option, '', $sortfield, $sortorder); print_liste_field_titre("OrderDate", $_SERVER["PHP_SELF"], "c.date_commande", "", $option, 'align="center"', $sortfield, $sortorder); + print_liste_field_titre('DateDeliveryPlanned', $_SERVER['PHP_SELF'], 'c.date_livraison', '', $option, 'align="center"', $sortfield, $sortorder); print_liste_field_titre("Qty", $_SERVER["PHP_SELF"], "d.qty", "", $option, 'align="center"', $sortfield, $sortorder); print_liste_field_titre("AmountHT", $_SERVER["PHP_SELF"], "c.total_ht", "", $option, 'align="right"', $sortfield, $sortorder); print_liste_field_titre("Status", $_SERVER["PHP_SELF"], "c.fk_statut", "", $option, 'align="right"', $sortfield, $sortorder); @@ -257,6 +260,10 @@ if ($id > 0 || !empty($ref)) { print "".$objp->code_client."\n"; print ''; print dol_print_date($db->jdate($objp->date_commande), 'dayhour').""; + // delivery planned date + print ''; + print dol_print_date($db->jdate($objp->date_livraison), 'dayhour'); + print ''; print ''.$objp->qty."\n"; print ''.price($objp->total_ht)."\n"; print ''.$supplierorderstatic->getLibStatut(4).''; @@ -271,6 +278,8 @@ if ($id > 0 || !empty($ref)) { print ''.$langs->trans("Totalforthispage").''; } print ''; + // delivery planned date + print ''; print ''.$total_qty.''; print ''.price($total_ht).''; print ''; From b5f98c529bab65c90e38873835709691926e3815 Mon Sep 17 00:00:00 2001 From: lvessiller Date: Wed, 5 Oct 2022 16:14:45 +0200 Subject: [PATCH 14/34] NEW date delivery planned on orders linked to company --- htdocs/societe/consumption.php | 30 ++++++++++++++++++++---------- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/htdocs/societe/consumption.php b/htdocs/societe/consumption.php index 83961ac74cf..0ddbe7f2ad5 100644 --- a/htdocs/societe/consumption.php +++ b/htdocs/societe/consumption.php @@ -274,8 +274,9 @@ if ($type_element == 'propal') { } if ($type_element == 'order') { require_once DOL_DOCUMENT_ROOT.'/commande/class/commande.class.php'; + $langs->load('sendings'); // delivery planned date $documentstatic = new Commande($db); - $sql_select = 'SELECT c.rowid as doc_id, c.ref as doc_number, \'1\' as doc_type, c.date_commande as dateprint, c.fk_statut as status, NULL as paid, '; + $sql_select = 'SELECT c.rowid as doc_id, c.ref as doc_number, \'1\' as doc_type, c.date_commande as dateprint, c.fk_statut as status, NULL as paid, c.date_livraison as delivery_planned_date,'; $tables_from = MAIN_DB_PREFIX."commande as c,".MAIN_DB_PREFIX."commandedet as d"; $where = " WHERE c.fk_soc = s.rowid AND s.rowid = ".((int) $socid); $where .= " AND d.fk_commande = c.rowid"; @@ -310,8 +311,9 @@ if ($type_element == 'supplier_proposal') { } if ($type_element == 'supplier_order') { // Supplier : Show products from orders. require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.commande.class.php'; + $langs->load('sendings'); // delivery planned date $documentstatic = new CommandeFournisseur($db); - $sql_select = 'SELECT c.rowid as doc_id, c.ref as doc_number, \'1\' as doc_type, c.date_valid as dateprint, c.fk_statut as status, NULL as paid, '; + $sql_select = 'SELECT c.rowid as doc_id, c.ref as doc_number, \'1\' as doc_type, c.date_valid as dateprint, c.fk_statut as status, NULL as paid, c.date_livraison as delivery_planned_date, '; $tables_from = MAIN_DB_PREFIX."commande_fournisseur as c,".MAIN_DB_PREFIX."commande_fournisseurdet as d"; $where = " WHERE c.fk_soc = s.rowid AND s.rowid = ".((int) $socid); $where .= " AND d.fk_commande = c.rowid"; @@ -396,14 +398,6 @@ if (empty($elementTypeArray) && !$object->client && !$object->fournisseur) { $typeElementString = $form->selectarray("type_element", $elementTypeArray, GETPOST('type_element'), $showempty, 0, 0, '', 0, 0, $disabled, '', 'maxwidth150onsmartphone'); $button = ''; -$param = ''; -$param .= "&sref=".urlencode($sref); -$param .= "&month=".urlencode($month); -$param .= "&year=".urlencode($year); -$param .= "&sprod_fulldescr=".urlencode($sprod_fulldescr); -$param .= "&socid=".urlencode($socid); -$param .= "&type_element=".urlencode($type_element); - $total_qty = 0; if ($sql_select) { @@ -451,6 +445,10 @@ if ($sql_select) { print $formother->select_month($month ? $month : -1, 'month', 1, 0, 'valignmiddle'); print $formother->selectyear($year ? $year : -1, 'year', 1, 20, 1, 0, 0, '', 'valignmiddle maxwidth75imp marginleftonly'); print ''; + // delivery planned date + if ($type_element == 'order' || $type_element == 'supplier_order') { + print ''; + } print ''; print ''; print ''; @@ -470,6 +468,10 @@ if ($sql_select) { print ''; print_liste_field_titre('Ref', $_SERVER['PHP_SELF'], 'doc_number', '', $param, '', $sortfield, $sortorder, 'left '); print_liste_field_titre('Date', $_SERVER['PHP_SELF'], 'dateprint', '', $param, '', $sortfield, $sortorder, 'center '); + // delivery planned date + if ($type_element == 'order' || $type_element == 'supplier_order') { + print_liste_field_titre('DateDeliveryPlanned', $_SERVER['PHP_SELF'], 'delivery_planned_date', '', $param, '', $sortfield, $sortorder, 'center '); + } print_liste_field_titre('Status', $_SERVER['PHP_SELF'], 'fk_statut', '', $param, '', $sortfield, $sortorder, 'center '); print_liste_field_titre('Product', $_SERVER['PHP_SELF'], '', '', $param, '', $sortfield, $sortorder, 'left '); print_liste_field_titre('Quantity', $_SERVER['PHP_SELF'], 'prod_qty', '', $param, '', $sortfield, $sortorder, 'right '); @@ -499,6 +501,10 @@ if ($sql_select) { print $documentstatic->getNomUrl(1); print ''; print ''.dol_print_date($db->jdate($objp->dateprint), 'day').''; + // delivery planned date + if ($type_element == 'order' || $type_element == 'supplier_order') { + print ''.dol_print_date($db->jdate($objp->delivery_planned_date), 'day').''; + } // Status print ''; @@ -679,6 +685,10 @@ if ($sql_select) { print ''; print ''.$langs->trans('Total').''; print ''; + // delivery planned date + if ($type_element == 'order' || $type_element == 'supplier_order') { + print ''; + } print ''.$total_qty.''; print ''.price($total_ht).''; print ''.price(price2num($total_ht / (empty($total_qty) ? 1 : $total_qty), 'MU')).''; From 15eaea6aea3f204a710d46e7c5d09d6d26c24def Mon Sep 17 00:00:00 2001 From: Philippe GRAND Date: Thu, 6 Oct 2022 09:43:00 +0200 Subject: [PATCH 15/34] update code towards php8 compliance --- htdocs/core/actions_massactions.inc.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/core/actions_massactions.inc.php b/htdocs/core/actions_massactions.inc.php index 4bb070e2ac0..de586e80e9f 100644 --- a/htdocs/core/actions_massactions.inc.php +++ b/htdocs/core/actions_massactions.inc.php @@ -841,7 +841,7 @@ if (!$error && $massaction == "builddoc" && $permissiontoread && !GETPOST('butto } $pdf->SetFont(pdf_getPDFFont($outputlangs)); - if (!empty($conf->global->MAIN_DISABLE_PDF_COMPRESSION)) { + if (getDolGlobalString('MAIN_DISABLE_PDF_COMPRESSION')) { $pdf->SetCompression(false); } From d9b8cccabd8502a4dad85854f3aa51cd5834ff84 Mon Sep 17 00:00:00 2001 From: Philippe GRAND Date: Thu, 6 Oct 2022 09:45:56 +0200 Subject: [PATCH 16/34] update code towards php8 compliance --- htdocs/core/lib/invoice2.lib.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/core/lib/invoice2.lib.php b/htdocs/core/lib/invoice2.lib.php index 64365f32547..da01d93fc62 100644 --- a/htdocs/core/lib/invoice2.lib.php +++ b/htdocs/core/lib/invoice2.lib.php @@ -239,7 +239,7 @@ function rebuild_merge_pdf($db, $langs, $conf, $diroutputpdf, $newlangid, $filte } $pdf->SetFont(pdf_getPDFFont($langs)); - if ($conf->global->MAIN_DISABLE_PDF_COMPRESSION) { + if (getDolGlobalString('MAIN_DISABLE_PDF_COMPRESSION')) { $pdf->SetCompression(false); } //$pdf->SetCompression(false); From babb114dc056faba70a9d0c2ea7f8a5d3f681743 Mon Sep 17 00:00:00 2001 From: thibdrev Date: Thu, 6 Oct 2022 09:55:03 +0200 Subject: [PATCH 17/34] Update card.php --- htdocs/societe/card.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/societe/card.php b/htdocs/societe/card.php index 3e757fd82f3..aea4bb916a5 100644 --- a/htdocs/societe/card.php +++ b/htdocs/societe/card.php @@ -2935,7 +2935,7 @@ if (is_object($objcanvas) && $objcanvas->displayCanvasExists($action)) { print ''.$langs->trans('VATIntra').''; if ($object->tva_intra) { $s = ''; - $s .= dol_print_profids($object->tva_intra, 'VATIntra', $object->country_code, 1); + $s .= dol_print_profids($object->tva_intra, 'VAT', $object->country_code, 1); $s .= ''; if (empty($conf->global->MAIN_DISABLEVATCHECK) && isInEEC($object)) { From 2f98dae0e29a02477ce3d5448574685b6eefe13d Mon Sep 17 00:00:00 2001 From: Philippe GRAND Date: Thu, 6 Oct 2022 10:00:29 +0200 Subject: [PATCH 18/34] update code towards php8 compliance --- .../asset/doc/pdf_standard_asset.modules.php | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/htdocs/core/modules/asset/doc/pdf_standard_asset.modules.php b/htdocs/core/modules/asset/doc/pdf_standard_asset.modules.php index 1612dba75a7..3853b7ae6e2 100644 --- a/htdocs/core/modules/asset/doc/pdf_standard_asset.modules.php +++ b/htdocs/core/modules/asset/doc/pdf_standard_asset.modules.php @@ -383,10 +383,10 @@ class pdf_standard_asset extends ModelePDFAsset $pdf->SetTextColor(0, 0, 0); $tab_top = 90 + $top_shift; - $tab_top_newpage = (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD) ? 42 + $top_shift : 10); + $tab_top_newpage = (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD') ? 42 + $top_shift : 10); $tab_height = 130 - $top_shift; $tab_height_newpage = 150; - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $tab_height_newpage -= $top_shift; } @@ -430,7 +430,7 @@ class pdf_standard_asset extends ModelePDFAsset if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } // $this->_pagefoot($pdf,$object,$outputlangs,1); @@ -488,7 +488,7 @@ class pdf_standard_asset extends ModelePDFAsset if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } $height_note = $posyafter - $tab_top_newpage; @@ -510,7 +510,7 @@ class pdf_standard_asset extends ModelePDFAsset if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } @@ -748,7 +748,7 @@ class pdf_standard_asset extends ModelePDFAsset $pagenb++; $pdf->setPage($pagenb); $pdf->setPageOrientation('', 1, 0); // The only function to edit the bottom margin of current page to set it. - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } } @@ -766,7 +766,7 @@ class pdf_standard_asset extends ModelePDFAsset $pdf->useTemplate($tplidx); } $pagenb++; - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } } From 2e8ec591c346443a260665349ba57ef4c57659d2 Mon Sep 17 00:00:00 2001 From: Philippe GRAND Date: Thu, 6 Oct 2022 10:01:22 +0200 Subject: [PATCH 19/34] update code towards php8 compliance --- htdocs/core/modules/commande/doc/pdf_einstein.modules.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/htdocs/core/modules/commande/doc/pdf_einstein.modules.php b/htdocs/core/modules/commande/doc/pdf_einstein.modules.php index 94181df3731..50071b029e0 100644 --- a/htdocs/core/modules/commande/doc/pdf_einstein.modules.php +++ b/htdocs/core/modules/commande/doc/pdf_einstein.modules.php @@ -359,7 +359,7 @@ class pdf_einstein extends ModelePDFCommandes $tab_top = 90 + $top_shift; - $tab_top_newpage = (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD) ? 42 + $top_shift : 10); + $tab_top_newpage = (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD') ? 42 + $top_shift : 10); // Incoterm $height_incoterms = 0; @@ -456,7 +456,7 @@ class pdf_einstein extends ModelePDFCommandes if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } $pdf->setPage($pageposafter + 1); @@ -608,7 +608,7 @@ class pdf_einstein extends ModelePDFCommandes $pagenb++; $pdf->setPage($pagenb); $pdf->setPageOrientation('', 1, 0); // The only function to edit the bottom margin of current page to set it. - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } if (!empty($tplidx)) { @@ -628,7 +628,7 @@ class pdf_einstein extends ModelePDFCommandes $pdf->useTemplate($tplidx); } $pagenb++; - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } } From 73e58bb5baf718173ef0c0392a06adb96dcf6be7 Mon Sep 17 00:00:00 2001 From: Philippe GRAND Date: Thu, 6 Oct 2022 10:01:57 +0200 Subject: [PATCH 20/34] update code towards php8 compliance --- .../commande/doc/pdf_eratosthene.modules.php | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/htdocs/core/modules/commande/doc/pdf_eratosthene.modules.php b/htdocs/core/modules/commande/doc/pdf_eratosthene.modules.php index dd689ef3b69..1397d46eac9 100644 --- a/htdocs/core/modules/commande/doc/pdf_eratosthene.modules.php +++ b/htdocs/core/modules/commande/doc/pdf_eratosthene.modules.php @@ -392,7 +392,7 @@ class pdf_eratosthene extends ModelePDFCommandes $tab_top = 90 + $top_shift; - $tab_top_newpage = (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD) ? 42 + $top_shift : 10); + $tab_top_newpage = (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD') ? 42 + $top_shift : 10); $tab_height = $this->page_hauteur - $tab_top - $heightforfooter - $heightforfreetext; @@ -466,7 +466,7 @@ class pdf_eratosthene extends ModelePDFCommandes if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } // $this->_pagefoot($pdf,$object,$outputlangs,1); @@ -524,7 +524,7 @@ class pdf_eratosthene extends ModelePDFCommandes if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } $height_note = $posyafter - $tab_top_newpage; @@ -546,7 +546,7 @@ class pdf_eratosthene extends ModelePDFCommandes if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } @@ -642,7 +642,7 @@ class pdf_eratosthene extends ModelePDFCommandes if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - //if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) $this->_pagehead($pdf, $object, 0, $outputlangs); + //if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) $this->_pagehead($pdf, $object, 0, $outputlangs); $pdf->setPage($pageposafter + 1); } } else { @@ -832,7 +832,7 @@ class pdf_eratosthene extends ModelePDFCommandes $pagenb++; $pdf->setPage($pagenb); $pdf->setPageOrientation('', 1, 0); // The only function to edit the bottom margin of current page to set it. - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } if (!empty($tplidx)) { @@ -852,7 +852,7 @@ class pdf_eratosthene extends ModelePDFCommandes $pdf->useTemplate($tplidx); } $pagenb++; - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } } From cf46e8f97fcd5ff69ccdd61aac01e69a6d5f84c2 Mon Sep 17 00:00:00 2001 From: Philippe GRAND Date: Thu, 6 Oct 2022 10:02:40 +0200 Subject: [PATCH 21/34] update code towards php8 compliance --- .../core/modules/contract/doc/pdf_strato.modules.php | 4 ++-- htdocs/core/modules/delivery/doc/pdf_storm.modules.php | 10 +++++----- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/htdocs/core/modules/contract/doc/pdf_strato.modules.php b/htdocs/core/modules/contract/doc/pdf_strato.modules.php index 3c1c70f1604..bc938accc92 100644 --- a/htdocs/core/modules/contract/doc/pdf_strato.modules.php +++ b/htdocs/core/modules/contract/doc/pdf_strato.modules.php @@ -274,7 +274,7 @@ class pdf_strato extends ModelePDFContract $pdf->SetTextColor(0, 0, 0); $tab_top = 90; - $tab_top_newpage = (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD) ? 42 : 10); + $tab_top_newpage = (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD') ? 42 : 10); // Display notes if (!empty($object->note_public)) { @@ -390,7 +390,7 @@ class pdf_strato extends ModelePDFContract if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } $pdf->setPage($pageposafter + 1); diff --git a/htdocs/core/modules/delivery/doc/pdf_storm.modules.php b/htdocs/core/modules/delivery/doc/pdf_storm.modules.php index 1d5a3831622..735b247f73a 100644 --- a/htdocs/core/modules/delivery/doc/pdf_storm.modules.php +++ b/htdocs/core/modules/delivery/doc/pdf_storm.modules.php @@ -343,7 +343,7 @@ class pdf_storm extends ModelePDFDeliveryOrder $pdf->SetTextColor(0, 0, 0); $tab_top = 90; - $tab_top_newpage = (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD) ? 42 : 10); + $tab_top_newpage = (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD') ? 42 : 10); $tab_height = $this->page_hauteur - $tab_top - $heightforfooter - $heightforfreetext; @@ -445,7 +445,7 @@ class pdf_storm extends ModelePDFDeliveryOrder if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - //if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) $this->_pagehead($pdf, $object, 0, $outputlangs); + //if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) $this->_pagehead($pdf, $object, 0, $outputlangs); $pdf->setPage($pageposbefore + 1); $curY = $tab_top_newpage; @@ -485,7 +485,7 @@ class pdf_storm extends ModelePDFDeliveryOrder if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } $pdf->setPage($pageposafter + 1); @@ -571,7 +571,7 @@ class pdf_storm extends ModelePDFDeliveryOrder $pagenb++; $pdf->setPage($pagenb); $pdf->setPageOrientation('', 1, 0); // The only function to edit the bottom margin of current page to set it. - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } if (!empty($tplidx)) { @@ -591,7 +591,7 @@ class pdf_storm extends ModelePDFDeliveryOrder $pdf->useTemplate($tplidx); } $pagenb++; - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } } From b03b5b9b2641faf9c586a904cf9cad3b2c453e60 Mon Sep 17 00:00:00 2001 From: Philippe GRAND Date: Thu, 6 Oct 2022 10:03:10 +0200 Subject: [PATCH 22/34] update code towards php8 compliance --- htdocs/core/modules/delivery/doc/pdf_typhon.modules.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/htdocs/core/modules/delivery/doc/pdf_typhon.modules.php b/htdocs/core/modules/delivery/doc/pdf_typhon.modules.php index a0401925840..5936f874a1b 100644 --- a/htdocs/core/modules/delivery/doc/pdf_typhon.modules.php +++ b/htdocs/core/modules/delivery/doc/pdf_typhon.modules.php @@ -322,7 +322,7 @@ class pdf_typhon extends ModelePDFDeliveryOrder $pdf->SetTextColor(0, 0, 0); $tab_top = 90; - $tab_top_newpage = (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD) ? 42 : 10); + $tab_top_newpage = (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD') ? 42 : 10); $tab_height = $this->page_hauteur - $tab_top - $heightforfooter - $heightforfreetext; @@ -401,7 +401,7 @@ class pdf_typhon extends ModelePDFDeliveryOrder if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } $pdf->setPage($pageposafter + 1); @@ -495,7 +495,7 @@ class pdf_typhon extends ModelePDFDeliveryOrder $pagenb++; $pdf->setPage($pagenb); $pdf->setPageOrientation('', 1, 0); // The only function to edit the bottom margin of current page to set it. - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } if (!empty($tplidx)) { @@ -515,7 +515,7 @@ class pdf_typhon extends ModelePDFDeliveryOrder $pdf->useTemplate($tplidx); } $pagenb++; - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } } From 7d0650cb0bd7f590ab4dc7f7f153bc0ee2865c0c Mon Sep 17 00:00:00 2001 From: Philippe GRAND Date: Thu, 6 Oct 2022 10:03:43 +0200 Subject: [PATCH 23/34] update code towards php8 compliance --- .../expedition/doc/pdf_espadon.modules.php | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/htdocs/core/modules/expedition/doc/pdf_espadon.modules.php b/htdocs/core/modules/expedition/doc/pdf_espadon.modules.php index d4d1653db3d..67de0bd12ac 100644 --- a/htdocs/core/modules/expedition/doc/pdf_espadon.modules.php +++ b/htdocs/core/modules/expedition/doc/pdf_espadon.modules.php @@ -330,7 +330,7 @@ class pdf_espadon extends ModelePdfExpedition $pdf->SetTextColor(0, 0, 0); $tab_top = 90; - $tab_top_newpage = (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD) ? 42 + $top_shift: 10); + $tab_top_newpage = (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD') ? 42 + $top_shift: 10); $tab_height = $this->page_hauteur - $tab_top - $heightforfooter - $heightforfreetext; @@ -428,7 +428,7 @@ class pdf_espadon extends ModelePdfExpedition $pdf->AddPage(); $pagenb++; if (!empty($tplidx)) $pdf->useTemplate($tplidx); - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) $this->_pagehead($pdf, $object, 0, $outputlangs); + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) $this->_pagehead($pdf, $object, 0, $outputlangs); // $this->_pagefoot($pdf,$object,$outputlangs,1); $pdf->setTopMargin($tab_top_newpage); // The only function to edit the bottom margin of current page to set it. @@ -482,7 +482,7 @@ class pdf_espadon extends ModelePdfExpedition // apply note frame to last page $pdf->setPage($pageposafternote); if (!empty($tplidx)) $pdf->useTemplate($tplidx); - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) $this->_pagehead($pdf, $object, 0, $outputlangs); + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) $this->_pagehead($pdf, $object, 0, $outputlangs); $height_note = $posyafter - $tab_top_newpage; $pdf->Rect($this->marge_gauche, $tab_top_newpage - 1, $tab_width, $height_note + 1); } else // No pagebreak @@ -500,7 +500,7 @@ class pdf_espadon extends ModelePdfExpedition $pageposafternote++; $pdf->setPage($pageposafternote); if (!empty($tplidx)) $pdf->useTemplate($tplidx); - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) $this->_pagehead($pdf, $object, 0, $outputlangs); + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) $this->_pagehead($pdf, $object, 0, $outputlangs); $posyafter = $tab_top_newpage; } @@ -554,7 +554,7 @@ class pdf_espadon extends ModelePdfExpedition if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - //if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) $this->_pagehead($pdf, $object, 0, $outputlangs); + //if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) $this->_pagehead($pdf, $object, 0, $outputlangs); $pdf->setPage($pageposbefore + 1); $curY = $tab_top_newpage; @@ -596,7 +596,7 @@ class pdf_espadon extends ModelePdfExpedition if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - //if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) $this->_pagehead($pdf, $object, 0, $outputlangs); + //if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) $this->_pagehead($pdf, $object, 0, $outputlangs); $pdf->setPage($pageposafter + 1); } } else { @@ -705,7 +705,7 @@ class pdf_espadon extends ModelePdfExpedition $pagenb++; $pdf->setPage($pagenb); $pdf->setPageOrientation('', 1, 0); // The only function to edit the bottom margin of current page to set it. - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } if (!empty($tplidx)) { @@ -725,7 +725,7 @@ class pdf_espadon extends ModelePdfExpedition $pdf->useTemplate($tplidx); } $pagenb++; - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } } From 63d1e23dcfa2dcba4d3adf5784ec850c329cebc2 Mon Sep 17 00:00:00 2001 From: Philippe GRAND Date: Thu, 6 Oct 2022 10:04:33 +0200 Subject: [PATCH 24/34] update code towards php8 compliance --- .../core/modules/expedition/doc/pdf_merou.modules.php | 2 +- .../core/modules/expedition/doc/pdf_rouget.modules.php | 10 +++++----- .../modules/expensereport/doc/pdf_standard.modules.php | 10 +++++----- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/htdocs/core/modules/expedition/doc/pdf_merou.modules.php b/htdocs/core/modules/expedition/doc/pdf_merou.modules.php index c9e32b0de6a..e847dc26fec 100644 --- a/htdocs/core/modules/expedition/doc/pdf_merou.modules.php +++ b/htdocs/core/modules/expedition/doc/pdf_merou.modules.php @@ -281,7 +281,7 @@ class pdf_merou extends ModelePdfExpedition $pdf->SetTextColor(0, 0, 0); $tab_top = 52; - $tab_top_newpage = (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD) ? 42 : 10); + $tab_top_newpage = (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD') ? 42 : 10); $tab_height = $this->page_hauteur - $tab_top - $heightforfooter - $heightforfreetext; diff --git a/htdocs/core/modules/expedition/doc/pdf_rouget.modules.php b/htdocs/core/modules/expedition/doc/pdf_rouget.modules.php index 2d3d408c236..983380b277d 100644 --- a/htdocs/core/modules/expedition/doc/pdf_rouget.modules.php +++ b/htdocs/core/modules/expedition/doc/pdf_rouget.modules.php @@ -355,7 +355,7 @@ class pdf_rouget extends ModelePdfExpedition $pdf->SetTextColor(0, 0, 0); $tab_top = 90; - $tab_top_newpage = (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD) ? 42 : 10); + $tab_top_newpage = (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD') ? 42 : 10); $tab_height = $this->page_hauteur - $tab_top - $heightforfooter - $heightforfreetext; @@ -465,7 +465,7 @@ class pdf_rouget extends ModelePdfExpedition if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } $pdf->setPage($pageposbefore + 1); @@ -510,7 +510,7 @@ class pdf_rouget extends ModelePdfExpedition if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } $pdf->setPage($pageposafter + 1); @@ -611,7 +611,7 @@ class pdf_rouget extends ModelePdfExpedition $pagenb++; $pdf->setPage($pagenb); $pdf->setPageOrientation('', 1, 0); // The only function to edit the bottom margin of current page to set it. - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } if (!empty($tplidx)) { @@ -631,7 +631,7 @@ class pdf_rouget extends ModelePdfExpedition $pdf->useTemplate($tplidx); } $pagenb++; - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } } diff --git a/htdocs/core/modules/expensereport/doc/pdf_standard.modules.php b/htdocs/core/modules/expensereport/doc/pdf_standard.modules.php index dd606553d72..f365173ddbe 100644 --- a/htdocs/core/modules/expensereport/doc/pdf_standard.modules.php +++ b/htdocs/core/modules/expensereport/doc/pdf_standard.modules.php @@ -286,7 +286,7 @@ class pdf_standard extends ModeleExpenseReport $pdf->SetTextColor(0, 0, 0); $tab_top = 95; - $tab_top_newpage = (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD) ? 65 : 10); + $tab_top_newpage = (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD') ? 65 : 10); $tab_height = $this->page_hauteur - $tab_top - $heightforfooter - $heightforfreetext; @@ -361,7 +361,7 @@ class pdf_standard extends ModeleExpenseReport if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } $pdf->setPage($pageposafter + 1); @@ -390,7 +390,7 @@ class pdf_standard extends ModeleExpenseReport if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } $pdf->setPage($pageposafter + 1); @@ -447,7 +447,7 @@ class pdf_standard extends ModeleExpenseReport $pagenb++; $pdf->setPage($pagenb); $pdf->setPageOrientation('', 1, 0); // The only function to edit the bottom margin of current page to set it. - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } if (!empty($tplidx)) { @@ -467,7 +467,7 @@ class pdf_standard extends ModeleExpenseReport $pdf->useTemplate($tplidx); } $pagenb++; - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } } From 7f3207e594561000a7dfc1af1a0e07a78a90f804 Mon Sep 17 00:00:00 2001 From: Philippe GRAND Date: Thu, 6 Oct 2022 10:05:27 +0200 Subject: [PATCH 25/34] update code towards php8 compliance --- .../modules/facture/doc/pdf_crabe.modules.php | 14 +++++++------- .../modules/facture/doc/pdf_sponge.modules.php | 16 ++++++++-------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/htdocs/core/modules/facture/doc/pdf_crabe.modules.php b/htdocs/core/modules/facture/doc/pdf_crabe.modules.php index 15f7467582f..4ce7b3b3aa5 100644 --- a/htdocs/core/modules/facture/doc/pdf_crabe.modules.php +++ b/htdocs/core/modules/facture/doc/pdf_crabe.modules.php @@ -448,7 +448,7 @@ class pdf_crabe extends ModelePDFFactures // $tab_top is y where we must continue content (90 = 42 + 48: 42 is height of logo and ref, 48 is address blocks) $tab_top = 90 + $top_shift; // top_shift is an addition for linked objects or addons (0 in most cases) - $tab_top_newpage = (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD) ? 42 + $top_shift : 10); + $tab_top_newpage = (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD') ? 42 + $top_shift : 10); // You can add more thing under header here, if you increase $extra_under_address_shift too. $extra_under_address_shift = 0; @@ -578,7 +578,7 @@ class pdf_crabe extends ModelePDFFactures if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } $pdf->setPage($pageposbefore + 1); @@ -621,7 +621,7 @@ class pdf_crabe extends ModelePDFFactures if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } $pdf->setPage($pageposafter + 1); @@ -797,7 +797,7 @@ class pdf_crabe extends ModelePDFFactures $pagenb++; $pdf->setPage($pagenb); $pdf->setPageOrientation('', 1, 0); // The only function to edit the bottom margin of current page to set it. - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } if (!empty($tplidx)) { @@ -817,7 +817,7 @@ class pdf_crabe extends ModelePDFFactures $pdf->useTemplate($tplidx); } $pagenb++; - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } } @@ -942,7 +942,7 @@ class pdf_crabe extends ModelePDFFactures if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } $pdf->setPage($current_page); @@ -1004,7 +1004,7 @@ class pdf_crabe extends ModelePDFFactures if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } $pdf->setPage($current_page); diff --git a/htdocs/core/modules/facture/doc/pdf_sponge.modules.php b/htdocs/core/modules/facture/doc/pdf_sponge.modules.php index 4af221dbaa0..f0e85dc1709 100644 --- a/htdocs/core/modules/facture/doc/pdf_sponge.modules.php +++ b/htdocs/core/modules/facture/doc/pdf_sponge.modules.php @@ -457,7 +457,7 @@ class pdf_sponge extends ModelePDFFactures // $this->tab_top is y where we must continue content (90 = 42 + 48: 42 is height of logo and ref, 48 is address blocks) $this->tab_top = 90 + $top_shift; // top_shift is an addition for linked objects or addons (0 in most cases) - $this->tab_top_newpage = (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD) ? 42 + $top_shift : 10); + $this->tab_top_newpage = (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD') ? 42 + $top_shift : 10); // You can add more thing under header here, if you increase $extra_under_address_shift too. $extra_under_address_shift = 0; @@ -575,7 +575,7 @@ class pdf_sponge extends ModelePDFFactures if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs, $outputlangsbis); } // $this->_pagefoot($pdf,$object,$outputlangs,1); @@ -633,7 +633,7 @@ class pdf_sponge extends ModelePDFFactures if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs, $outputlangsbis); } $height_note = $posyafter - $this->tab_top_newpage; @@ -655,7 +655,7 @@ class pdf_sponge extends ModelePDFFactures if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs, $outputlangsbis); } @@ -957,7 +957,7 @@ class pdf_sponge extends ModelePDFFactures $pagenb++; $pdf->setPage($pagenb); $pdf->setPageOrientation('', 1, 0); // The only function to edit the bottom margin of current page to set it. - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs, $outputlangsbis); } if (!empty($tplidx)) { @@ -978,7 +978,7 @@ class pdf_sponge extends ModelePDFFactures $pdf->useTemplate($tplidx); } $pagenb++; - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs, $outputlangsbis); } } @@ -1472,7 +1472,7 @@ class pdf_sponge extends ModelePDFFactures if ($posy > $this->page_hauteur - 4 - $this->heightforfooter) { $this->_pagefoot($pdf, $object, $outputlangs, 1); $pdf->addPage(); - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs, $outputlangsbis); $pdf->setY($this->tab_top_newpage); } else { @@ -1539,7 +1539,7 @@ class pdf_sponge extends ModelePDFFactures if ($posy > $this->page_hauteur - 4 - $this->heightforfooter) { $pdf->addPage(); - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs, $outputlangsbis); $pdf->setY($this->tab_top_newpage); } else { From 4993068af992277bc91e05e3a7f10019519f0083 Mon Sep 17 00:00:00 2001 From: Philippe GRAND Date: Thu, 6 Oct 2022 10:06:18 +0200 Subject: [PATCH 26/34] update code towards php8 compliance --- htdocs/core/modules/fichinter/doc/pdf_soleil.modules.php | 8 ++++---- htdocs/core/modules/movement/doc/pdf_standard.modules.php | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/htdocs/core/modules/fichinter/doc/pdf_soleil.modules.php b/htdocs/core/modules/fichinter/doc/pdf_soleil.modules.php index 67763ddbc7e..7616fba5c6b 100644 --- a/htdocs/core/modules/fichinter/doc/pdf_soleil.modules.php +++ b/htdocs/core/modules/fichinter/doc/pdf_soleil.modules.php @@ -275,7 +275,7 @@ class pdf_soleil extends ModelePDFFicheinter $pdf->SetTextColor(0, 0, 0); $tab_top = 90; - $tab_top_newpage = (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD) ? 42 : 10); + $tab_top_newpage = (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD') ? 42 : 10); $tab_height = $this->page_hauteur - $tab_top - $heightforfooter - $heightforfreetext; @@ -378,7 +378,7 @@ class pdf_soleil extends ModelePDFFicheinter if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } $pdf->setPage($pageposafter + 1); @@ -415,7 +415,7 @@ class pdf_soleil extends ModelePDFFicheinter $pagenb++; $pdf->setPage($pagenb); $pdf->setPageOrientation('', 1, 0); // The only function to edit the bottom margin of current page to set it. - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } if (!empty($tplidx)) { @@ -435,7 +435,7 @@ class pdf_soleil extends ModelePDFFicheinter $pdf->useTemplate($tplidx); } $pagenb++; - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } } diff --git a/htdocs/core/modules/movement/doc/pdf_standard.modules.php b/htdocs/core/modules/movement/doc/pdf_standard.modules.php index 8c628eba6e3..064bdfbf3b7 100644 --- a/htdocs/core/modules/movement/doc/pdf_standard.modules.php +++ b/htdocs/core/modules/movement/doc/pdf_standard.modules.php @@ -466,7 +466,7 @@ class pdf_standard extends ModelePDFMovement $pdf->SetTextColor(0, 0, 0); $tab_top = 42; - $tab_top_newpage = (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD) ? 42 : 10); + $tab_top_newpage = (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD') ? 42 : 10); $tab_height = $this->page_hauteur - $tab_top - $heightforfooter - $heightforfreetext; @@ -537,7 +537,7 @@ class pdf_standard extends ModelePDFMovement if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } $pdf->setPage($pageposafter + 1); @@ -672,7 +672,7 @@ class pdf_standard extends ModelePDFMovement $pagenb++; $pdf->setPage($pagenb); $pdf->setPageOrientation('', 1, 0); // The only function to edit the bottom margin of current page to set it. - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } if (!empty($tplidx)) { @@ -692,7 +692,7 @@ class pdf_standard extends ModelePDFMovement $pdf->useTemplate($tplidx); } $pagenb++; - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } } From daad0854a4322df8e324ab4a67a3c0c0bac17a75 Mon Sep 17 00:00:00 2001 From: Philippe GRAND Date: Thu, 6 Oct 2022 10:07:04 +0200 Subject: [PATCH 27/34] update code towards php8 compliance --- htdocs/core/modules/mrp/doc/pdf_vinci.modules.php | 14 +++++++------- .../modules/product/doc/pdf_standard.modules.php | 8 ++++---- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/htdocs/core/modules/mrp/doc/pdf_vinci.modules.php b/htdocs/core/modules/mrp/doc/pdf_vinci.modules.php index 212397b4a3c..c5dc9dd8b19 100644 --- a/htdocs/core/modules/mrp/doc/pdf_vinci.modules.php +++ b/htdocs/core/modules/mrp/doc/pdf_vinci.modules.php @@ -306,7 +306,7 @@ class pdf_vinci extends ModelePDFMo $pdf->SetTextColor(0, 0, 0); $tab_top = 90 + $top_shift; - $tab_top_newpage = (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD) ? 42 + $top_shift : 10); + $tab_top_newpage = (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD') ? 42 + $top_shift : 10); $tab_height = $this->page_hauteur - $tab_top - $heightforfooter - $heightforfreetext; @@ -350,7 +350,7 @@ class pdf_vinci extends ModelePDFMo if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } // $this->_pagefoot($pdf,$object,$outputlangs,1); @@ -408,7 +408,7 @@ class pdf_vinci extends ModelePDFMo if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } $height_note = $posyafter - $tab_top_newpage; @@ -430,7 +430,7 @@ class pdf_vinci extends ModelePDFMo if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } @@ -486,7 +486,7 @@ class pdf_vinci extends ModelePDFMo if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } $pdf->setPage($pageposbefore + 1); @@ -532,7 +532,7 @@ class pdf_vinci extends ModelePDFMo if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - //if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) $this->_pagehead($pdf, $object, 0, $outputlangs); + //if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) $this->_pagehead($pdf, $object, 0, $outputlangs); $pdf->setPage($pageposafter + 1); } else { // We found a page break @@ -584,7 +584,7 @@ class pdf_vinci extends ModelePDFMo if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - //if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) $this->_pagehead($pdf, $object, 0, $outputlangs); + //if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) $this->_pagehead($pdf, $object, 0, $outputlangs); $pdf->setPage($pageposafter + 1); } else { // We found a page break diff --git a/htdocs/core/modules/product/doc/pdf_standard.modules.php b/htdocs/core/modules/product/doc/pdf_standard.modules.php index f7847543701..89df34f8f73 100644 --- a/htdocs/core/modules/product/doc/pdf_standard.modules.php +++ b/htdocs/core/modules/product/doc/pdf_standard.modules.php @@ -233,7 +233,7 @@ class pdf_standard extends ModelePDFProduct $tab_top = 42; - $tab_top_newpage = (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD) ? 42 : 10); + $tab_top_newpage = (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD') ? 42 : 10); $tab_height = $this->page_hauteur - $tab_top - $heightforfooter - $heightforfreetext; @@ -352,7 +352,7 @@ class pdf_standard extends ModelePDFProduct { $pdf->AddPage('','',true); if (!empty($tplidx)) $pdf->useTemplate($tplidx); - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) $this->_pagehead($pdf, $object, 0, $outputlangs); + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) $this->_pagehead($pdf, $object, 0, $outputlangs); $pdf->setPage($pageposafter+1); } } @@ -484,7 +484,7 @@ class pdf_standard extends ModelePDFProduct $pagenb++; $pdf->setPage($pagenb); $pdf->setPageOrientation('', 1, 0); // The only function to edit the bottom margin of current page to set it. - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) $this->_pagehead($pdf, $object, 0, $outputlangs); + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) $this->_pagehead($pdf, $object, 0, $outputlangs); } if (isset($object->lines[$i+1]->pagebreak) && $object->lines[$i+1]->pagebreak) { @@ -501,7 +501,7 @@ class pdf_standard extends ModelePDFProduct $pdf->AddPage(); if (!empty($tplidx)) $pdf->useTemplate($tplidx); $pagenb++; - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) $this->_pagehead($pdf, $object, 0, $outputlangs); + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) $this->_pagehead($pdf, $object, 0, $outputlangs); } } From 34ea21f68eb426a155f95f02ecb9a2b1c8c83746 Mon Sep 17 00:00:00 2001 From: Philippe GRAND Date: Thu, 6 Oct 2022 10:07:39 +0200 Subject: [PATCH 28/34] update code towards php8 compliance --- .../core/modules/project/doc/pdf_baleine.modules.php | 10 +++++----- htdocs/core/modules/project/doc/pdf_beluga.modules.php | 8 ++++---- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/htdocs/core/modules/project/doc/pdf_baleine.modules.php b/htdocs/core/modules/project/doc/pdf_baleine.modules.php index d8f36fe222e..b5c3c6d215b 100644 --- a/htdocs/core/modules/project/doc/pdf_baleine.modules.php +++ b/htdocs/core/modules/project/doc/pdf_baleine.modules.php @@ -284,7 +284,7 @@ class pdf_baleine extends ModelePDFProjects $pdf->SetTextColor(0, 0, 0); $tab_top = 50; - $tab_top_newpage = (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD) ? 42 : 10); + $tab_top_newpage = (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD') ? 42 : 10); $tab_height = $this->page_hauteur - $tab_top - $heightforfooter - $heightforfreetext; @@ -360,7 +360,7 @@ class pdf_baleine extends ModelePDFProjects if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } $pdf->setPage($pageposafter + 1); @@ -385,7 +385,7 @@ class pdf_baleine extends ModelePDFProjects if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } $pdf->setPage($pageposafter + 1); @@ -467,7 +467,7 @@ class pdf_baleine extends ModelePDFProjects $pagenb++; $pdf->setPage($pagenb); $pdf->setPageOrientation('', 1, 0); // The only function to edit the bottom margin of current page to set it. - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } if (!empty($tplidx)) { @@ -487,7 +487,7 @@ class pdf_baleine extends ModelePDFProjects $pdf->useTemplate($tplidx); } $pagenb++; - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } } diff --git a/htdocs/core/modules/project/doc/pdf_beluga.modules.php b/htdocs/core/modules/project/doc/pdf_beluga.modules.php index ed9cad4b73c..c60f2c4bb66 100644 --- a/htdocs/core/modules/project/doc/pdf_beluga.modules.php +++ b/htdocs/core/modules/project/doc/pdf_beluga.modules.php @@ -333,7 +333,7 @@ class pdf_beluga extends ModelePDFProjects $pdf->SetTextColor(0, 0, 0); $tab_top = 50; - $tab_top_newpage = (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD) ? 42 : 10); + $tab_top_newpage = (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD') ? 42 : 10); $tab_height = $this->page_hauteur - $tab_top - $heightforfooter - $heightforfreetext; @@ -587,7 +587,7 @@ class pdf_beluga extends ModelePDFProjects if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } $pdf->setPage($pageposafter + 1); @@ -612,7 +612,7 @@ class pdf_beluga extends ModelePDFProjects if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } $pdf->setPage($pageposafter + 1); @@ -740,7 +740,7 @@ class pdf_beluga extends ModelePDFProjects $pagenb++; $pdf->setPage($pagenb); $pdf->setPageOrientation($this->orientation, 1, 0); // The only function to edit the bottom margin of current page to set it. - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } if (!empty($tplidx)) { From 4a969cf726fa0fe15297cebe1f3b819ce271fe49 Mon Sep 17 00:00:00 2001 From: Philippe GRAND Date: Thu, 6 Oct 2022 10:08:33 +0200 Subject: [PATCH 29/34] update code towards php8 compliance --- .../core/modules/project/doc/pdf_timespent.modules.php | 10 +++++----- htdocs/core/modules/propale/doc/pdf_azur.modules.php | 10 +++++----- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/htdocs/core/modules/project/doc/pdf_timespent.modules.php b/htdocs/core/modules/project/doc/pdf_timespent.modules.php index aa05616ecfd..7af10dd170d 100644 --- a/htdocs/core/modules/project/doc/pdf_timespent.modules.php +++ b/htdocs/core/modules/project/doc/pdf_timespent.modules.php @@ -284,7 +284,7 @@ class pdf_timespent extends ModelePDFProjects $pdf->SetTextColor(0, 0, 0); $tab_top = 50; - $tab_top_newpage = (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD) ? 42 : 10); + $tab_top_newpage = (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD') ? 42 : 10); $tab_height = $this->page_hauteur - $tab_top - $heightforfooter - $heightforfreetext; @@ -364,7 +364,7 @@ class pdf_timespent extends ModelePDFProjects if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } $pdf->setPage($pageposafter + 1); @@ -389,7 +389,7 @@ class pdf_timespent extends ModelePDFProjects if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } $pdf->setPage($pageposafter + 1); @@ -470,7 +470,7 @@ class pdf_timespent extends ModelePDFProjects $pagenb++; $pdf->setPage($pagenb); $pdf->setPageOrientation('', 1, 0); // The only function to edit the bottom margin of current page to set it. - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } if (!empty($tplidx)) { @@ -490,7 +490,7 @@ class pdf_timespent extends ModelePDFProjects $pdf->useTemplate($tplidx); } $pagenb++; - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } } diff --git a/htdocs/core/modules/propale/doc/pdf_azur.modules.php b/htdocs/core/modules/propale/doc/pdf_azur.modules.php index dc9faef0c77..3113468bf2e 100644 --- a/htdocs/core/modules/propale/doc/pdf_azur.modules.php +++ b/htdocs/core/modules/propale/doc/pdf_azur.modules.php @@ -419,7 +419,7 @@ class pdf_azur extends ModelePDFPropales $tab_top = 90 + $top_shift; - $tab_top_newpage = (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD) ? 42 + $top_shift : 10); + $tab_top_newpage = (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD') ? 42 + $top_shift : 10); // Incoterm $height_incoterms = 0; @@ -522,7 +522,7 @@ class pdf_azur extends ModelePDFPropales if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } $pdf->setPage($pageposbefore + 1); @@ -566,7 +566,7 @@ class pdf_azur extends ModelePDFPropales if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } $pdf->setPage($pageposafter + 1); @@ -723,7 +723,7 @@ class pdf_azur extends ModelePDFPropales $pagenb++; $pdf->setPage($pagenb); $pdf->setPageOrientation('', 1, 0); // The only function to edit the bottom margin of current page to set it. - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } if (!empty($tplidx)) { @@ -743,7 +743,7 @@ class pdf_azur extends ModelePDFPropales $pdf->useTemplate($tplidx); } $pagenb++; - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } } From 118e4aed3a6bd07dc46e2f4c796322e467551cc3 Mon Sep 17 00:00:00 2001 From: Philippe GRAND Date: Thu, 6 Oct 2022 10:09:19 +0200 Subject: [PATCH 30/34] update code towards php8 compliance --- htdocs/core/modules/propale/doc/pdf_cyan.modules.php | 12 ++++++------ .../modules/reception/doc/pdf_squille.modules.php | 6 +++--- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/htdocs/core/modules/propale/doc/pdf_cyan.modules.php b/htdocs/core/modules/propale/doc/pdf_cyan.modules.php index cf214f25fbc..8698f370d31 100644 --- a/htdocs/core/modules/propale/doc/pdf_cyan.modules.php +++ b/htdocs/core/modules/propale/doc/pdf_cyan.modules.php @@ -394,7 +394,7 @@ class pdf_cyan extends ModelePDFPropales $tab_top = 90 + $top_shift; - $tab_top_newpage = (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD) ? 42 + $top_shift : 10); + $tab_top_newpage = (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD') ? 42 + $top_shift : 10); // Incoterm @@ -481,7 +481,7 @@ class pdf_cyan extends ModelePDFPropales if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } // $this->_pagefoot($pdf,$object,$outputlangs,1); @@ -539,7 +539,7 @@ class pdf_cyan extends ModelePDFPropales if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } $height_note = $posyafter - $tab_top_newpage; @@ -561,7 +561,7 @@ class pdf_cyan extends ModelePDFPropales if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } @@ -847,7 +847,7 @@ class pdf_cyan extends ModelePDFPropales $pagenb++; $pdf->setPage($pagenb); $pdf->setPageOrientation('', 1, 0); // The only function to edit the bottom margin of current page to set it. - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } if (!empty($tplidx)) { @@ -868,7 +868,7 @@ class pdf_cyan extends ModelePDFPropales $pdf->useTemplate($tplidx); } $pagenb++; - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } } diff --git a/htdocs/core/modules/reception/doc/pdf_squille.modules.php b/htdocs/core/modules/reception/doc/pdf_squille.modules.php index 02995a65595..6e970f198be 100644 --- a/htdocs/core/modules/reception/doc/pdf_squille.modules.php +++ b/htdocs/core/modules/reception/doc/pdf_squille.modules.php @@ -269,7 +269,7 @@ class pdf_squille extends ModelePdfReception $pdf->SetTextColor(0, 0, 0); $tab_top = 90; - $tab_top_newpage = (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD) ? 42 : 10); + $tab_top_newpage = (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD') ? 42 : 10); $tab_height = $this->page_hauteur - $tab_top - $heightforfooter - $heightforfreetext; @@ -381,7 +381,7 @@ class pdf_squille extends ModelePdfReception if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } $pdf->setPage($pageposbefore + 1); @@ -439,7 +439,7 @@ class pdf_squille extends ModelePdfReception if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } $pdf->setPage($pageposafter + 1); From 3eb2df0647a07058e31fa75921d17138cfda71ca Mon Sep 17 00:00:00 2001 From: Philippe GRAND Date: Thu, 6 Oct 2022 10:09:56 +0200 Subject: [PATCH 31/34] update code towards php8 compliance --- .../modules/stock/doc/pdf_standard.modules.php | 8 ++++---- .../doc/pdf_eagle_proforma.modules.php | 14 +++++++------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/htdocs/core/modules/stock/doc/pdf_standard.modules.php b/htdocs/core/modules/stock/doc/pdf_standard.modules.php index e0740e337c9..ed1877ec8f7 100644 --- a/htdocs/core/modules/stock/doc/pdf_standard.modules.php +++ b/htdocs/core/modules/stock/doc/pdf_standard.modules.php @@ -270,7 +270,7 @@ class pdf_standard extends ModelePDFStock $pdf->SetTextColor(0, 0, 0); $tab_top = 65 + $top_shift; - $tab_top_newpage = (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD) ? 42 + $top_shift : 10); + $tab_top_newpage = (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD') ? 42 + $top_shift : 10); $tab_height = $this->page_hauteur - $tab_top - $heightforfooter - $heightforfreetext; @@ -353,7 +353,7 @@ class pdf_standard extends ModelePDFStock if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } $pdf->setPage($pageposafter + 1); @@ -457,7 +457,7 @@ class pdf_standard extends ModelePDFStock $pagenb++; $pdf->setPage($pagenb); $pdf->setPageOrientation('', 1, 0); // The only function to edit the bottom margin of current page to set it. - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } if (!empty($tplidx)) { @@ -477,7 +477,7 @@ class pdf_standard extends ModelePDFStock $pdf->useTemplate($tplidx); } $pagenb++; - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } } diff --git a/htdocs/core/modules/stocktransfer/doc/pdf_eagle_proforma.modules.php b/htdocs/core/modules/stocktransfer/doc/pdf_eagle_proforma.modules.php index b32ad2f7d32..925813a1036 100644 --- a/htdocs/core/modules/stocktransfer/doc/pdf_eagle_proforma.modules.php +++ b/htdocs/core/modules/stocktransfer/doc/pdf_eagle_proforma.modules.php @@ -352,7 +352,7 @@ class pdf_eagle_proforma extends ModelePDFCommandes $tab_top = 90 + $top_shift; - $tab_top_newpage = (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD) ? 42 + $top_shift : 10); + $tab_top_newpage = (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD') ? 42 + $top_shift : 10); // Incoterm if ($conf->incoterm->enabled) { @@ -419,7 +419,7 @@ class pdf_eagle_proforma extends ModelePDFCommandes $pdf->AddPage(); $pagenb++; if (!empty($tplidx)) $pdf->useTemplate($tplidx); - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) $this->_pagehead($pdf, $object, 0, $outputlangs); + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) $this->_pagehead($pdf, $object, 0, $outputlangs); // $this->_pagefoot($pdf,$object,$outputlangs,1); $pdf->setTopMargin($tab_top_newpage); // The only function to edit the bottom margin of current page to set it. @@ -473,7 +473,7 @@ class pdf_eagle_proforma extends ModelePDFCommandes // apply note frame to last page $pdf->setPage($pageposafternote); if (!empty($tplidx)) $pdf->useTemplate($tplidx); - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) $this->_pagehead($pdf, $object, 0, $outputlangs); + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) $this->_pagehead($pdf, $object, 0, $outputlangs); $height_note = $posyafter - $tab_top_newpage; $pdf->Rect($this->marge_gauche, $tab_top_newpage - 1, $tab_width, $height_note + 1); } else // No pagebreak @@ -491,7 +491,7 @@ class pdf_eagle_proforma extends ModelePDFCommandes $pageposafternote++; $pdf->setPage($pageposafternote); if (!empty($tplidx)) $pdf->useTemplate($tplidx); - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) $this->_pagehead($pdf, $object, 0, $outputlangs); + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) $this->_pagehead($pdf, $object, 0, $outputlangs); $posyafter = $tab_top_newpage; } @@ -582,7 +582,7 @@ class pdf_eagle_proforma extends ModelePDFCommandes if ($i == ($nblines - 1)) { // No more lines, and no space left to show total, so we create a new page $pdf->AddPage('', '', true); if (!empty($tplidx)) $pdf->useTemplate($tplidx); - //if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) $this->_pagehead($pdf, $object, 0, $outputlangs); + //if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) $this->_pagehead($pdf, $object, 0, $outputlangs); $pdf->setPage($pageposafter + 1); } } else { @@ -740,7 +740,7 @@ class pdf_eagle_proforma extends ModelePDFCommandes $pagenb++; $pdf->setPage($pagenb); $pdf->setPageOrientation('', 1, 0); // The only function to edit the bottom margin of current page to set it. - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) $this->_pagehead($pdf, $object, 0, $outputlangs); + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) $this->_pagehead($pdf, $object, 0, $outputlangs); } if (isset($object->lines[$i + 1]->pagebreak) && $object->lines[$i + 1]->pagebreak) { if ($pagenb == $pageposafter) { @@ -753,7 +753,7 @@ class pdf_eagle_proforma extends ModelePDFCommandes $pdf->AddPage(); if (!empty($tplidx)) $pdf->useTemplate($tplidx); $pagenb++; - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) $this->_pagehead($pdf, $object, 0, $outputlangs); + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) $this->_pagehead($pdf, $object, 0, $outputlangs); } } From 256914d0c5ce7436bff6452dc14476269953b75b Mon Sep 17 00:00:00 2001 From: Philippe GRAND Date: Thu, 6 Oct 2022 10:10:38 +0200 Subject: [PATCH 32/34] update code towards php8 compliance --- .../modules/stocktransfer/doc/pdf_eagle.modules.php | 10 +++++----- .../supplier_invoice/doc/pdf_canelle.modules.php | 8 ++++---- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/htdocs/core/modules/stocktransfer/doc/pdf_eagle.modules.php b/htdocs/core/modules/stocktransfer/doc/pdf_eagle.modules.php index 6d2503154f2..593966f4f80 100644 --- a/htdocs/core/modules/stocktransfer/doc/pdf_eagle.modules.php +++ b/htdocs/core/modules/stocktransfer/doc/pdf_eagle.modules.php @@ -335,7 +335,7 @@ class pdf_eagle extends ModelePdfStockTransfer $pdf->SetTextColor(0, 0, 0); $tab_top = 90; - $tab_top_newpage = (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD) ? 42 : 10); + $tab_top_newpage = (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD') ? 42 : 10); $tab_height = 130; $tab_height_newpage = 150; @@ -440,7 +440,7 @@ class pdf_eagle extends ModelePdfStockTransfer if (isset($imglinesize['width']) && isset($imglinesize['height']) && ($curY + $imglinesize['height']) > ($this->page_hauteur - ($heightforfooter + $heightforfreetext + $heightforinfotot))) { // If photo too high, we moved completely on new page $pdf->AddPage('', '', true); if (!empty($tplidx)) $pdf->useTemplate($tplidx); - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) $this->_pagehead($pdf, $object, 0, $outputlangs); + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) $this->_pagehead($pdf, $object, 0, $outputlangs); $pdf->setPage($pageposbefore + 1); $curY = $tab_top_newpage; @@ -496,7 +496,7 @@ class pdf_eagle extends ModelePdfStockTransfer if ($i == ($nblines - 1)) { // No more lines, and no space left to show total, so we create a new page $pdf->AddPage('', '', true); if (!empty($tplidx)) $pdf->useTemplate($tplidx); - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) $this->_pagehead($pdf, $object, 0, $outputlangs); + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) $this->_pagehead($pdf, $object, 0, $outputlangs); $pdf->setPage($pageposafter + 1); } } else { @@ -612,7 +612,7 @@ class pdf_eagle extends ModelePdfStockTransfer $pagenb++; $pdf->setPage($pagenb); $pdf->setPageOrientation('', 1, 0); // The only function to edit the bottom margin of current page to set it. - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) $this->_pagehead($pdf, $object, 0, $outputlangs); + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) $this->_pagehead($pdf, $object, 0, $outputlangs); } if (isset($object->lines[$i + 1]->pagebreak) && $object->lines[$i + 1]->pagebreak) { if ($pagenb == 1) { @@ -625,7 +625,7 @@ class pdf_eagle extends ModelePdfStockTransfer $pdf->AddPage(); if (!empty($tplidx)) $pdf->useTemplate($tplidx); $pagenb++; - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) $this->_pagehead($pdf, $object, 0, $outputlangs); + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) $this->_pagehead($pdf, $object, 0, $outputlangs); } } diff --git a/htdocs/core/modules/supplier_invoice/doc/pdf_canelle.modules.php b/htdocs/core/modules/supplier_invoice/doc/pdf_canelle.modules.php index ce12a2e6d3a..29231e62966 100644 --- a/htdocs/core/modules/supplier_invoice/doc/pdf_canelle.modules.php +++ b/htdocs/core/modules/supplier_invoice/doc/pdf_canelle.modules.php @@ -342,7 +342,7 @@ class pdf_canelle extends ModelePDFSuppliersInvoices $pdf->SetTextColor(0, 0, 0); $tab_top = 90 + $top_shift; - $tab_top_newpage = (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD) ? 42 + $top_shift : 10); + $tab_top_newpage = (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD') ? 42 + $top_shift : 10); // Incoterm if (isModEnabled('incoterm')) { @@ -428,7 +428,7 @@ class pdf_canelle extends ModelePDFSuppliersInvoices if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } $pdf->setPage($pageposafter + 1); @@ -559,7 +559,7 @@ class pdf_canelle extends ModelePDFSuppliersInvoices $pagenb++; $pdf->setPage($pagenb); $pdf->setPageOrientation('', 1, 0); // The only function to edit the bottom margin of current page to set it. - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } } @@ -576,7 +576,7 @@ class pdf_canelle extends ModelePDFSuppliersInvoices $pdf->useTemplate($tplidx); } $pagenb++; - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } } From 46e62687241b0ef2aff7bb8f44f63fa48e9037cf Mon Sep 17 00:00:00 2001 From: Philippe GRAND Date: Thu, 6 Oct 2022 10:11:12 +0200 Subject: [PATCH 33/34] update code towards php8 compliance --- .../supplier_order/doc/pdf_cornas.modules.php | 14 +++++++------- .../supplier_order/doc/pdf_muscadet.modules.php | 10 +++++----- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/htdocs/core/modules/supplier_order/doc/pdf_cornas.modules.php b/htdocs/core/modules/supplier_order/doc/pdf_cornas.modules.php index 00618a3de73..78ea731bb42 100644 --- a/htdocs/core/modules/supplier_order/doc/pdf_cornas.modules.php +++ b/htdocs/core/modules/supplier_order/doc/pdf_cornas.modules.php @@ -361,7 +361,7 @@ class pdf_cornas extends ModelePDFSuppliersOrders $pdf->SetTextColor(0, 0, 0); $tab_top = 90 + $top_shift; - $tab_top_newpage = (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD) ? 42 + $top_shift : 10); + $tab_top_newpage = (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD') ? 42 + $top_shift : 10); $tab_height = $this->page_hauteur - $tab_top - $heightforfooter - $heightforfreetext; @@ -423,7 +423,7 @@ class pdf_cornas extends ModelePDFSuppliersOrders if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } // $this->_pagefoot($pdf,$object,$outputlangs,1); @@ -481,7 +481,7 @@ class pdf_cornas extends ModelePDFSuppliersOrders if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } $height_note = $posyafter - $tab_top_newpage; @@ -503,7 +503,7 @@ class pdf_cornas extends ModelePDFSuppliersOrders if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } @@ -592,7 +592,7 @@ class pdf_cornas extends ModelePDFSuppliersOrders if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - //if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) $this->_pagehead($pdf, $object, 0, $outputlangs); + //if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) $this->_pagehead($pdf, $object, 0, $outputlangs); $pdf->setPage($pageposafter + 1); } } else { @@ -774,7 +774,7 @@ class pdf_cornas extends ModelePDFSuppliersOrders $pagenb++; $pdf->setPage($pagenb); $pdf->setPageOrientation('', 1, 0); // The only function to edit the bottom margin of current page to set it. - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } if (!empty($tplidx)) { @@ -794,7 +794,7 @@ class pdf_cornas extends ModelePDFSuppliersOrders $pdf->useTemplate($tplidx); } $pagenb++; - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } } diff --git a/htdocs/core/modules/supplier_order/doc/pdf_muscadet.modules.php b/htdocs/core/modules/supplier_order/doc/pdf_muscadet.modules.php index acea937ee08..32295bdd562 100644 --- a/htdocs/core/modules/supplier_order/doc/pdf_muscadet.modules.php +++ b/htdocs/core/modules/supplier_order/doc/pdf_muscadet.modules.php @@ -385,7 +385,7 @@ class pdf_muscadet extends ModelePDFSuppliersOrders $pdf->SetTextColor(0, 0, 0); $tab_top = 90 + $top_shift; - $tab_top_newpage = (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD) ? 42 + $top_shift : 10); + $tab_top_newpage = (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD') ? 42 + $top_shift : 10); // Incoterm if (isModEnabled('incoterm')) { @@ -452,7 +452,7 @@ class pdf_muscadet extends ModelePDFSuppliersOrders if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } $pdf->setPage($pageposbefore + 1); @@ -499,7 +499,7 @@ class pdf_muscadet extends ModelePDFSuppliersOrders if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } $pdf->setPage($pageposafter + 1); @@ -656,7 +656,7 @@ class pdf_muscadet extends ModelePDFSuppliersOrders $pagenb++; $pdf->setPage($pagenb); $pdf->setPageOrientation('', 1, 0); // The only function to edit the bottom margin of current page to set it. - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } if (!empty($tplidx)) { @@ -676,7 +676,7 @@ class pdf_muscadet extends ModelePDFSuppliersOrders $pdf->useTemplate($tplidx); } $pagenb++; - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } } From a68e3676efe9e01249d78c2db0008b50dc10484d Mon Sep 17 00:00:00 2001 From: Philippe GRAND Date: Thu, 6 Oct 2022 10:12:17 +0200 Subject: [PATCH 34/34] update code towards php8 compliance --- .../supplier_payment/doc/pdf_standard.modules.php | 8 ++++---- .../supplier_proposal/doc/pdf_aurore.modules.php | 10 +++++----- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/htdocs/core/modules/supplier_payment/doc/pdf_standard.modules.php b/htdocs/core/modules/supplier_payment/doc/pdf_standard.modules.php index ea8153e4d2a..74f90f1d68e 100644 --- a/htdocs/core/modules/supplier_payment/doc/pdf_standard.modules.php +++ b/htdocs/core/modules/supplier_payment/doc/pdf_standard.modules.php @@ -291,7 +291,7 @@ class pdf_standard extends ModelePDFSuppliersPayments $pdf->SetTextColor(0, 0, 0); $tab_top = 90; - $tab_top_newpage = (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD) ? 42 : 10); + $tab_top_newpage = (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD') ? 42 : 10); $tab_height = $this->page_hauteur - $tab_top - $heightforfooter - $heightforfreetext; @@ -336,7 +336,7 @@ class pdf_standard extends ModelePDFSuppliersPayments if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } $pdf->setPage($pageposafter + 1); @@ -417,7 +417,7 @@ class pdf_standard extends ModelePDFSuppliersPayments $pagenb++; $pdf->setPage($pagenb); $pdf->setPageOrientation('', 1, 0); // The only function to edit the bottom margin of current page to set it. - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } if (!empty($tplidx)) { @@ -437,7 +437,7 @@ class pdf_standard extends ModelePDFSuppliersPayments $pdf->useTemplate($tplidx); } $pagenb++; - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } } diff --git a/htdocs/core/modules/supplier_proposal/doc/pdf_aurore.modules.php b/htdocs/core/modules/supplier_proposal/doc/pdf_aurore.modules.php index 4b9a9bb538c..53ff4a1797d 100644 --- a/htdocs/core/modules/supplier_proposal/doc/pdf_aurore.modules.php +++ b/htdocs/core/modules/supplier_proposal/doc/pdf_aurore.modules.php @@ -371,7 +371,7 @@ class pdf_aurore extends ModelePDFSupplierProposal $pdf->SetTextColor(0, 0, 0); $tab_top = 90 + $top_shift; - $tab_top_newpage = (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD) ? 42 + $top_shift : 10); + $tab_top_newpage = (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD') ? 42 + $top_shift : 10); // Affiche notes $notetoshow = empty($object->note_public) ? '' : $object->note_public; @@ -436,7 +436,7 @@ class pdf_aurore extends ModelePDFSupplierProposal if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } $pdf->setPage($pageposbefore + 1); @@ -486,7 +486,7 @@ class pdf_aurore extends ModelePDFSupplierProposal if (!empty($tplidx)) { $pdf->useTemplate($tplidx); } - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } $pdf->setPage($pageposafter + 1); @@ -633,7 +633,7 @@ class pdf_aurore extends ModelePDFSupplierProposal $pagenb++; $pdf->setPage($pagenb); $pdf->setPageOrientation('', 1, 0); // The only function to edit the bottom margin of current page to set it. - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } if (!empty($tplidx)) { @@ -653,7 +653,7 @@ class pdf_aurore extends ModelePDFSupplierProposal $pdf->useTemplate($tplidx); } $pagenb++; - if (empty($conf->global->MAIN_PDF_DONOTREPEAT_HEAD)) { + if (!getDolGlobalInt('MAIN_PDF_DONOTREPEAT_HEAD')) { $this->_pagehead($pdf, $object, 0, $outputlangs); } }