From ad485b55b6015b4502bf25277fd7a385bf4c7f39 Mon Sep 17 00:00:00 2001 From: Alexandre SPANGARO Date: Sun, 10 Mar 2019 20:01:39 +0100 Subject: [PATCH 001/365] NEW: Add category to bank transaction in various payment --- .../bank/class/paymentvarious.class.php | 5 +- htdocs/compta/bank/various_payment/card.php | 89 ++++++++++++------- 2 files changed, 59 insertions(+), 35 deletions(-) diff --git a/htdocs/compta/bank/class/paymentvarious.class.php b/htdocs/compta/bank/class/paymentvarious.class.php index 5a7ac205fe5..fad76c45d1b 100644 --- a/htdocs/compta/bank/class/paymentvarious.class.php +++ b/htdocs/compta/bank/class/paymentvarious.class.php @@ -63,6 +63,7 @@ class PaymentVarious extends CommonObject public $amount; public $type_payment; public $num_payment; + public $category_transaction; /** * @var string various payments label @@ -414,13 +415,13 @@ class PaymentVarious extends CommonObject $sign=1; if ($this->sens == '0') $sign=-1; - $bank_line_id = $acc->addline( + $bank_line_id = $acc->addline( $this->datep, $this->type_payment, $this->label, $sign * abs($this->amount), $this->num_payment, - '', + ($category_transaction > 0 ? $category_transaction : 0), $user ); diff --git a/htdocs/compta/bank/various_payment/card.php b/htdocs/compta/bank/various_payment/card.php index a1c1d8ae349..176fea7e8db 100644 --- a/htdocs/compta/bank/various_payment/card.php +++ b/htdocs/compta/bank/various_payment/card.php @@ -45,14 +45,15 @@ $action = GETPOST('action', 'alpha'); $cancel = GETPOST('cancel', 'aZ09'); $backtopage = GETPOST('backtopage', 'alpha'); -$accountid=GETPOST("accountid") > 0 ? GETPOST("accountid", "int") : 0; -$label=GETPOST("label", "alpha"); -$sens=GETPOST("sens", "int"); -$amount=GETPOST("amount", "alpha"); -$paymenttype=GETPOST("paymenttype", "int"); -$accountancy_code=GETPOST("accountancy_code", "alpha"); -$subledger_account=GETPOST("subledger_account", "alpha"); -$projectid = (GETPOST('projectid', 'int') ? GETPOST('projectid', 'int') : GETPOST('fk_project', 'int')); +$accountid = GETPOST("accountid") > 0 ? GETPOST("accountid", "int") : 0; +$label = GETPOST("label", "alpha"); +$sens = GETPOST("sens", "int"); +$amount = GETPOST("amount", "alpha"); +$paymenttype = GETPOST("paymenttype", "int"); +$accountancy_code = GETPOST("accountancy_code", "alpha"); +$subledger_account = GETPOST("subledger_account", "alpha"); +$projectid = (GETPOST('projectid', 'int') ? GETPOST('projectid', 'int') : GETPOST('fk_project', 'int')); +$cat1 = GETPOST("cat1", 'alpha'); // Security check $socid = GETPOST("socid", "int"); @@ -64,8 +65,6 @@ $object = new PaymentVarious($db); // Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context $hookmanager->initHooks(array('variouscard','globalcard')); - - /** * Actions */ @@ -113,6 +112,7 @@ if (empty($reshook)) $object->type_payment=GETPOST("paymenttype", 'int') > 0 ? GETPOST("paymenttype", "int") : 0; $object->num_payment=GETPOST("num_payment", 'alpha'); $object->fk_user_author=$user->id; + $object->category_transaction=GETPOST("cat1", 'alpha'); $object->accountancy_code=GETPOST("accountancy_code") > 0 ? GETPOST("accountancy_code", "alpha") : ""; $object->subledger_account=GETPOST("subledger_account") > 0 ? GETPOST("subledger_account", "alpha") : ""; @@ -240,6 +240,16 @@ if ($id) } } +$options = array(); + +// Load bank groups +require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/bankcateg.class.php'; +$bankcateg = new BankCateg($db); + +foreach ($bankcateg->fetchAll() as $bankcategory) { + $options[$bankcategory->id] = $bankcategory->label; +} + /* ************************************************************************** */ /* */ /* Create mode */ @@ -259,7 +269,7 @@ if ($action == 'create') print ''; // Date payment - print ''; @@ -314,17 +324,50 @@ if ($action == 'create') print ''."\n"; } + // Category + if (is_array($options) && count($options)) + { + print ''; + } + + // Project + if (! empty($conf->projet->enabled)) + { + $formproject=new FormProjets($db); + + // Associated project + $langs->load("projects"); + + 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; + + print ''; + print '
'; + print '
'; print $form->editfieldkey('DatePayment', 'datep', '', $object, 0, 'string', '', 1).''; print $form->selectDate((empty($datep)?-1:$datep), "datep", '', '', '', 'add', 1, 1); print '
'.$langs->trans("Rubrique").''; + print Form::selectarray('cat1', $options, GETPOST('cat1'), 1); + print '
'.$langs->trans("Project").''; + + $numproject=$formproject->select_projects(-1, $projectid, 'fk_project', 0, 0, 1, 1); + + print '
'; + print '
'; + + print ''; // Accountancy account if (! empty($conf->accounting->enabled)) { - print ''; + print ''; print ''; } else // For external software { - print ''; + print ''; print ''; } @@ -351,26 +394,6 @@ if ($action == 'create') print ''; } - // Project - if (! empty($conf->projet->enabled)) - { - $formproject=new FormProjets($db); - - // Associated project - $langs->load("projects"); - - 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; - print '
'.$langs->trans("AccountAccounting").'
'.$langs->trans("AccountAccounting").''; print $formaccounting->select_account($accountancy_code, 'accountancy_code', 1, null, 1, 1, ''); print '
'.$langs->trans("AccountAccounting").'
'.$langs->trans("AccountAccounting").''; print '
'.$langs->trans("Project").''; - - $numproject=$formproject->select_projects(-1, $projectid, 'fk_project', 0, 0, 1, 1); - - print '
'; dol_fiche_end(); From d4e2fab9834ab10bcd9be6b90f8b4c4aba8d74df Mon Sep 17 00:00:00 2001 From: Alexandre SPANGARO Date: Mon, 13 May 2019 22:25:15 +0200 Subject: [PATCH 002/365] Replace term "Advanced accountancy" by Accountancy (Double entries) --- htdocs/accountancy/admin/account.php | 2 +- htdocs/accountancy/admin/accountmodel.php | 2 +- htdocs/accountancy/admin/card.php | 2 +- htdocs/accountancy/admin/categories.php | 2 +- htdocs/accountancy/admin/closure.php | 2 +- htdocs/accountancy/admin/defaultaccounts.php | 2 +- htdocs/accountancy/admin/export.php | 2 +- htdocs/accountancy/admin/fiscalyear.php | 2 +- htdocs/accountancy/admin/fiscalyear_card.php | 2 +- htdocs/accountancy/admin/fiscalyear_info.php | 2 +- htdocs/accountancy/admin/index.php | 2 +- htdocs/accountancy/admin/journals_list.php | 2 +- htdocs/accountancy/admin/productaccount.php | 2 +- htdocs/accountancy/bookkeeping/balance.php | 2 +- htdocs/accountancy/bookkeeping/balancebymonth.php | 2 +- htdocs/accountancy/bookkeeping/card.php | 2 +- htdocs/accountancy/bookkeeping/list.php | 7 +++++-- htdocs/accountancy/bookkeeping/listbyaccount.php | 2 +- .../bookkeeping/thirdparty_lettering_supplier.php | 2 +- htdocs/accountancy/class/accountancycategory.class.php | 2 +- htdocs/accountancy/class/accountancyexport.class.php | 2 +- htdocs/accountancy/class/accountancysystem.class.php | 2 +- htdocs/accountancy/class/accountingaccount.class.php | 2 +- htdocs/accountancy/class/accountingjournal.class.php | 2 +- htdocs/accountancy/class/bookkeeping.class.php | 2 +- htdocs/accountancy/class/lettering.class.php | 2 +- htdocs/accountancy/customer/card.php | 2 +- htdocs/accountancy/customer/index.php | 2 +- htdocs/accountancy/customer/lines.php | 2 +- htdocs/accountancy/customer/list.php | 2 +- htdocs/accountancy/expensereport/card.php | 2 +- htdocs/accountancy/expensereport/index.php | 2 +- htdocs/accountancy/expensereport/lines.php | 2 +- htdocs/accountancy/expensereport/list.php | 2 +- htdocs/accountancy/index.php | 2 +- htdocs/accountancy/journal/bankjournal.php | 2 +- htdocs/accountancy/journal/expensereportsjournal.php | 2 +- htdocs/accountancy/journal/purchasesjournal.php | 2 +- htdocs/accountancy/journal/sellsjournal.php | 2 +- htdocs/accountancy/supplier/card.php | 2 +- htdocs/accountancy/supplier/index.php | 2 +- htdocs/accountancy/supplier/lines.php | 2 +- htdocs/accountancy/supplier/list.php | 2 +- 43 files changed, 47 insertions(+), 44 deletions(-) diff --git a/htdocs/accountancy/admin/account.php b/htdocs/accountancy/admin/account.php index 9d4f4b68370..1a42b927506 100644 --- a/htdocs/accountancy/admin/account.php +++ b/htdocs/accountancy/admin/account.php @@ -19,7 +19,7 @@ /** * \file htdocs/accountancy/admin/account.php - * \ingroup Advanced accountancy + * \ingroup Accountancy (Double entries) * \brief List accounting account */ diff --git a/htdocs/accountancy/admin/accountmodel.php b/htdocs/accountancy/admin/accountmodel.php index 6404b6119e7..f44ff0071d2 100644 --- a/htdocs/accountancy/admin/accountmodel.php +++ b/htdocs/accountancy/admin/accountmodel.php @@ -28,7 +28,7 @@ /** * \file htdocs/accountancy/admin/accountmodel.php - * \ingroup Advanced accountancy + * \ingroup Accountancy (Double entries) * \brief Page to administer model of chart of accounts */ diff --git a/htdocs/accountancy/admin/card.php b/htdocs/accountancy/admin/card.php index 6d43f01b03f..a6c3969e64a 100644 --- a/htdocs/accountancy/admin/card.php +++ b/htdocs/accountancy/admin/card.php @@ -19,7 +19,7 @@ /** * \file htdocs/accountancy/admin/card.php - * \ingroup Advanced accountancy + * \ingroup Accountancy (Double entries) * \brief Card of accounting account */ diff --git a/htdocs/accountancy/admin/categories.php b/htdocs/accountancy/admin/categories.php index faba7fb1c62..17fa65d4f5e 100644 --- a/htdocs/accountancy/admin/categories.php +++ b/htdocs/accountancy/admin/categories.php @@ -18,7 +18,7 @@ /** * \file htdocs/accountancy/admin/categories.php - * \ingroup Advanced accountancy + * \ingroup Accountancy (Double entries) * \brief Page to assign mass categories to accounts */ diff --git a/htdocs/accountancy/admin/closure.php b/htdocs/accountancy/admin/closure.php index ff559332316..a638d598ac9 100644 --- a/htdocs/accountancy/admin/closure.php +++ b/htdocs/accountancy/admin/closure.php @@ -18,7 +18,7 @@ /** * \file htdocs/accountancy/admin/closure.php - * \ingroup Advanced accountancy + * \ingroup Accountancy (Double entries) * \brief Setup page to configure accounting expert module */ require '../../main.inc.php'; diff --git a/htdocs/accountancy/admin/defaultaccounts.php b/htdocs/accountancy/admin/defaultaccounts.php index 4ea9ff9139a..cba9ac92f3b 100644 --- a/htdocs/accountancy/admin/defaultaccounts.php +++ b/htdocs/accountancy/admin/defaultaccounts.php @@ -24,7 +24,7 @@ /** * \file htdocs/accountancy/admin/defaultaccounts.php - * \ingroup Advanced accountancy + * \ingroup Accountancy (Double entries) * \brief Setup page to configure accounting expert module */ require '../../main.inc.php'; diff --git a/htdocs/accountancy/admin/export.php b/htdocs/accountancy/admin/export.php index 15e455cf84c..74090e54120 100644 --- a/htdocs/accountancy/admin/export.php +++ b/htdocs/accountancy/admin/export.php @@ -23,7 +23,7 @@ /** * \file htdocs/accountancy/admin/export.php - * \ingroup Advanced accountancy + * \ingroup Accountancy (Double entries) * \brief Setup page to configure accounting expert module */ require '../../main.inc.php'; diff --git a/htdocs/accountancy/admin/fiscalyear.php b/htdocs/accountancy/admin/fiscalyear.php index df2dec9d3b1..47211087956 100644 --- a/htdocs/accountancy/admin/fiscalyear.php +++ b/htdocs/accountancy/admin/fiscalyear.php @@ -17,7 +17,7 @@ /** * \file htdocs/accountancy/admin/fiscalyear.php - * \ingroup Advanced accountancy + * \ingroup Accountancy (Double entries) * \brief Setup page to configure fiscal year */ diff --git a/htdocs/accountancy/admin/fiscalyear_card.php b/htdocs/accountancy/admin/fiscalyear_card.php index 4063e28f369..5dc6010d465 100644 --- a/htdocs/accountancy/admin/fiscalyear_card.php +++ b/htdocs/accountancy/admin/fiscalyear_card.php @@ -18,7 +18,7 @@ /** * \file htdocs/accountancy/admin/fiscalyear_card.php - * \ingroup Advanced accountancy + * \ingroup Accountancy (Double entries) * \brief Page to show a fiscal year */ diff --git a/htdocs/accountancy/admin/fiscalyear_info.php b/htdocs/accountancy/admin/fiscalyear_info.php index 86b01fa7397..dfec49949a3 100644 --- a/htdocs/accountancy/admin/fiscalyear_info.php +++ b/htdocs/accountancy/admin/fiscalyear_info.php @@ -17,7 +17,7 @@ /** * \file htdocs/accountancy/admin/fiscalyear_info.php - * \ingroup Advanced accountancy + * \ingroup Accountancy (Double entries) * \brief Page to show info of a fiscal year */ diff --git a/htdocs/accountancy/admin/index.php b/htdocs/accountancy/admin/index.php index 965b63ba9b9..fefa081848e 100644 --- a/htdocs/accountancy/admin/index.php +++ b/htdocs/accountancy/admin/index.php @@ -24,7 +24,7 @@ /** * \file htdocs/accountancy/admin/index.php - * \ingroup Advanced accountancy + * \ingroup Accountancy (Double entries) * \brief Setup page to configure accounting expert module */ diff --git a/htdocs/accountancy/admin/journals_list.php b/htdocs/accountancy/admin/journals_list.php index c48e1a5989d..cac81bfbcae 100644 --- a/htdocs/accountancy/admin/journals_list.php +++ b/htdocs/accountancy/admin/journals_list.php @@ -18,7 +18,7 @@ /** * \file htdocs/accountancy/admin/journals_list.php - * \ingroup Advanced accountancy + * \ingroup Accountancy (Double entries) * \brief Setup page to configure journals */ diff --git a/htdocs/accountancy/admin/productaccount.php b/htdocs/accountancy/admin/productaccount.php index 80c2ed052c0..4d5561e3aca 100644 --- a/htdocs/accountancy/admin/productaccount.php +++ b/htdocs/accountancy/admin/productaccount.php @@ -21,7 +21,7 @@ /** * \file htdocs/accountancy/admin/productaccount.php - * \ingroup Advanced accountancy + * \ingroup Accountancy (Double entries) * \brief To define accounting account on product / service */ require '../../main.inc.php'; diff --git a/htdocs/accountancy/bookkeeping/balance.php b/htdocs/accountancy/bookkeeping/balance.php index 6d2c7644d85..44a12b76f36 100644 --- a/htdocs/accountancy/bookkeeping/balance.php +++ b/htdocs/accountancy/bookkeeping/balance.php @@ -21,7 +21,7 @@ /** * \file htdocs/accountancy/bookkeeping/balance.php - * \ingroup Advanced accountancy + * \ingroup Accountancy (Double entries) * \brief Balance of book keeping */ diff --git a/htdocs/accountancy/bookkeeping/balancebymonth.php b/htdocs/accountancy/bookkeeping/balancebymonth.php index edf7383b595..b9568228a36 100644 --- a/htdocs/accountancy/bookkeeping/balancebymonth.php +++ b/htdocs/accountancy/bookkeeping/balancebymonth.php @@ -21,7 +21,7 @@ /** * \file htdocs/accountancy/bookkeeping/balancebymonth.php - * \ingroup Advanced accountancy + * \ingroup Accountancy (Double entries) * \brief Balance by month */ require '../../main.inc.php'; diff --git a/htdocs/accountancy/bookkeeping/card.php b/htdocs/accountancy/bookkeeping/card.php index 8974b65a68f..24a0e9605a4 100644 --- a/htdocs/accountancy/bookkeeping/card.php +++ b/htdocs/accountancy/bookkeeping/card.php @@ -21,7 +21,7 @@ /** * \file htdocs/accountancy/bookkeeping/card.php - * \ingroup Advanced accountancy + * \ingroup Accountancy (Double entries) * \brief Page to show book-entry */ diff --git a/htdocs/accountancy/bookkeeping/list.php b/htdocs/accountancy/bookkeeping/list.php index 207ea3464d8..7df29416878 100644 --- a/htdocs/accountancy/bookkeeping/list.php +++ b/htdocs/accountancy/bookkeeping/list.php @@ -1,7 +1,7 @@ * Copyright (C) 2013-2016 Florian Henry - * Copyright (C) 2013-2018 Alexandre Spangaro + * Copyright (C) 2013-2019 Alexandre Spangaro * Copyright (C) 2016-2017 Laurent Destailleur * Copyright (C) 2018 Frédéric France * @@ -21,7 +21,7 @@ /** * \file htdocs/accountancy/bookkeeping/list.php - * \ingroup Advanced accountancy + * \ingroup Accountancy (Double entries) * \brief List operation of book keeping */ require '../../main.inc.php'; @@ -47,6 +47,9 @@ $search_date_creation_start = dol_mktime(0, 0, 0, GETPOST('date_creation_startmo $search_date_creation_end = dol_mktime(0, 0, 0, GETPOST('date_creation_endmonth', 'int'), GETPOST('date_creation_endday', 'int'), GETPOST('date_creation_endyear', 'int')); $search_date_modification_start = dol_mktime(0, 0, 0, GETPOST('date_modification_startmonth', 'int'), GETPOST('date_modification_startday', 'int'), GETPOST('date_modification_startyear', 'int')); $search_date_modification_end = dol_mktime(0, 0, 0, GETPOST('date_modification_endmonth', 'int'), GETPOST('date_modification_endday', 'int'), GETPOST('date_modification_endyear', 'int')); +$search_date_export_start = dol_mktime(0, 0, 0, GETPOST('date_export_startmonth', 'int'), GETPOST('date_export_startday', 'int'), GETPOST('date_export_startyear', 'int')); +$search_date_export_end = dol_mktime(0, 0, 0, GETPOST('date_export_endmonth', 'int'), GETPOST('date_export_endday', 'int'), GETPOST('date_export_endyear', 'int')); + //var_dump($search_date_start);exit; if (GETPOST("button_delmvt_x") || GETPOST("button_delmvt.x") || GETPOST("button_delmvt")) { $action = 'delbookkeepingyear'; diff --git a/htdocs/accountancy/bookkeeping/listbyaccount.php b/htdocs/accountancy/bookkeeping/listbyaccount.php index 38dc49c5bf6..7b57f443ef9 100644 --- a/htdocs/accountancy/bookkeeping/listbyaccount.php +++ b/htdocs/accountancy/bookkeeping/listbyaccount.php @@ -21,7 +21,7 @@ /** * \file htdocs/accountancy/bookkeeping/listbyaccount.php - * \ingroup Advanced accountancy + * \ingroup Accountancy (Double entries) * \brief List operation of book keeping ordered by account number */ diff --git a/htdocs/accountancy/bookkeeping/thirdparty_lettering_supplier.php b/htdocs/accountancy/bookkeeping/thirdparty_lettering_supplier.php index 50b80c72338..87bd79bb64d 100644 --- a/htdocs/accountancy/bookkeeping/thirdparty_lettering_supplier.php +++ b/htdocs/accountancy/bookkeeping/thirdparty_lettering_supplier.php @@ -22,7 +22,7 @@ /** * \file htdocs/accountancy/bookkeeping/thirdparty_lettrage_supplier.php - * \ingroup Advanced accountancy + * \ingroup Accountancy (Double entries) * \brief Tab to setup lettering */ require '../../main.inc.php'; diff --git a/htdocs/accountancy/class/accountancycategory.class.php b/htdocs/accountancy/class/accountancycategory.class.php index 523fba7acda..f11ff3957f7 100644 --- a/htdocs/accountancy/class/accountancycategory.class.php +++ b/htdocs/accountancy/class/accountancycategory.class.php @@ -19,7 +19,7 @@ /** * \file htdocs/accountancy/class/accountancycategory.class.php - * \ingroup Advanced accountancy + * \ingroup Accountancy (Double entries) * \brief File of class to manage categories of an accounting category_type */ diff --git a/htdocs/accountancy/class/accountancyexport.class.php b/htdocs/accountancy/class/accountancyexport.class.php index 344a45f19fc..5da52e05784 100644 --- a/htdocs/accountancy/class/accountancyexport.class.php +++ b/htdocs/accountancy/class/accountancyexport.class.php @@ -27,7 +27,7 @@ /** * \file htdocs/accountancy/class/accountancyexport.class.php - * \ingroup Advanced accountancy + * \ingroup Accountancy (Double entries) * \brief Class accountancy export */ diff --git a/htdocs/accountancy/class/accountancysystem.class.php b/htdocs/accountancy/class/accountancysystem.class.php index c8a855c0d8a..102ee4cce61 100644 --- a/htdocs/accountancy/class/accountancysystem.class.php +++ b/htdocs/accountancy/class/accountancysystem.class.php @@ -19,7 +19,7 @@ /** * \file htdocs/accountancy/class/accountancysystem.class.php - * \ingroup Advanced accountancy + * \ingroup Accountancy (Double entries) * \brief File of class to manage accountancy systems */ diff --git a/htdocs/accountancy/class/accountingaccount.class.php b/htdocs/accountancy/class/accountingaccount.class.php index 33f8990bc8d..dc5d8eab77d 100644 --- a/htdocs/accountancy/class/accountingaccount.class.php +++ b/htdocs/accountancy/class/accountingaccount.class.php @@ -22,7 +22,7 @@ /** * \file htdocs/accountancy/class/accountingaccount.class.php - * \ingroup Advanced accountancy + * \ingroup Accountancy (Double entries) * \brief File of class to manage accounting accounts */ diff --git a/htdocs/accountancy/class/accountingjournal.class.php b/htdocs/accountancy/class/accountingjournal.class.php index eb99badd5f3..e8caaab8a89 100644 --- a/htdocs/accountancy/class/accountingjournal.class.php +++ b/htdocs/accountancy/class/accountingjournal.class.php @@ -17,7 +17,7 @@ /** * \file htdocs/accountancy/class/accountingjournal.class.php - * \ingroup Advanced accountancy + * \ingroup Accountancy (Double entries) * \brief File of class to manage accounting journals */ diff --git a/htdocs/accountancy/class/bookkeeping.class.php b/htdocs/accountancy/class/bookkeeping.class.php index 3c985d325bc..c1df8b1045c 100644 --- a/htdocs/accountancy/class/bookkeeping.class.php +++ b/htdocs/accountancy/class/bookkeeping.class.php @@ -20,7 +20,7 @@ /** * \file htdocs/accountancy/class/bookkeeping.class.php - * \ingroup Advanced accountancy + * \ingroup Accountancy (Double entries) * \brief File of class to manage Ledger (General Ledger and Subledger) */ diff --git a/htdocs/accountancy/class/lettering.class.php b/htdocs/accountancy/class/lettering.class.php index 555e1a244a6..a0c977a8d5a 100644 --- a/htdocs/accountancy/class/lettering.class.php +++ b/htdocs/accountancy/class/lettering.class.php @@ -20,7 +20,7 @@ /** * \file htdocs/accountancy/class/lettering.class.php - * \ingroup Advanced accountancy + * \ingroup Accountancy (Double entries) * \brief File of class for lettering */ diff --git a/htdocs/accountancy/customer/card.php b/htdocs/accountancy/customer/card.php index 5c1dfc5ccbb..eb66b235d0b 100644 --- a/htdocs/accountancy/customer/card.php +++ b/htdocs/accountancy/customer/card.php @@ -19,7 +19,7 @@ /** * \file htdocs/accountancy/customer/card.php - * \ingroup Advanced accountancy + * \ingroup Accountancy (Double entries) * \brief Card customer ventilation */ require '../../main.inc.php'; diff --git a/htdocs/accountancy/customer/index.php b/htdocs/accountancy/customer/index.php index aa8161b9c52..1086800e355 100644 --- a/htdocs/accountancy/customer/index.php +++ b/htdocs/accountancy/customer/index.php @@ -22,7 +22,7 @@ /** * \file htdocs/accountancy/customer/index.php - * \ingroup Advanced accountancy + * \ingroup Accountancy (Double entries) * \brief Home customer journalization page */ diff --git a/htdocs/accountancy/customer/lines.php b/htdocs/accountancy/customer/lines.php index f7a53c9e210..2801e234486 100644 --- a/htdocs/accountancy/customer/lines.php +++ b/htdocs/accountancy/customer/lines.php @@ -21,7 +21,7 @@ /** * \file htdocs/accountancy/customer/lines.php - * \ingroup Advanced accountancy + * \ingroup Accountancy (Double entries) * \brief Page of detail of the lines of ventilation of invoices customers */ require '../../main.inc.php'; diff --git a/htdocs/accountancy/customer/list.php b/htdocs/accountancy/customer/list.php index 4b3906d60da..90bb9574961 100644 --- a/htdocs/accountancy/customer/list.php +++ b/htdocs/accountancy/customer/list.php @@ -22,7 +22,7 @@ /** * \file htdocs/accountancy/customer/list.php - * \ingroup Advanced accountancy + * \ingroup Accountancy (Double entries) * \brief Ventilation page from customers invoices */ require '../../main.inc.php'; diff --git a/htdocs/accountancy/expensereport/card.php b/htdocs/accountancy/expensereport/card.php index eb620d7bf14..1052a1d485d 100644 --- a/htdocs/accountancy/expensereport/card.php +++ b/htdocs/accountancy/expensereport/card.php @@ -23,7 +23,7 @@ */ /** * \file htdocs/accountancy/supplier/card.php - * \ingroup Advanced accountancy + * \ingroup Accountancy (Double entries) * \brief Card expense report ventilation */ require '../../main.inc.php'; diff --git a/htdocs/accountancy/expensereport/index.php b/htdocs/accountancy/expensereport/index.php index e350a3011a0..f5e71082bfa 100644 --- a/htdocs/accountancy/expensereport/index.php +++ b/htdocs/accountancy/expensereport/index.php @@ -20,7 +20,7 @@ /** * \file htdocs/accountancy/expensereport/index.php - * \ingroup Advanced accountancy + * \ingroup Accountancy (Double entries) * \brief Home expense report ventilation */ diff --git a/htdocs/accountancy/expensereport/lines.php b/htdocs/accountancy/expensereport/lines.php index 3a322c07ef3..30734bb803b 100644 --- a/htdocs/accountancy/expensereport/lines.php +++ b/htdocs/accountancy/expensereport/lines.php @@ -21,7 +21,7 @@ /** * \file htdocs/accountancy/expensereport/lines.php - * \ingroup Advanced accountancy + * \ingroup Accountancy (Double entries) * \brief Page of detail of the lines of ventilation of expense reports */ require '../../main.inc.php'; diff --git a/htdocs/accountancy/expensereport/list.php b/htdocs/accountancy/expensereport/list.php index 4f037f3c72b..ffb9297626b 100644 --- a/htdocs/accountancy/expensereport/list.php +++ b/htdocs/accountancy/expensereport/list.php @@ -22,7 +22,7 @@ /** * \file htdocs/accountancy/expensereport/list.php - * \ingroup Advanced accountancy + * \ingroup Accountancy (Double entries) * \brief Ventilation page from expense reports */ require '../../main.inc.php'; diff --git a/htdocs/accountancy/index.php b/htdocs/accountancy/index.php index b34efe5ea04..922f1285b3c 100644 --- a/htdocs/accountancy/index.php +++ b/htdocs/accountancy/index.php @@ -18,7 +18,7 @@ /** * \file htdocs/accountancy/index.php - * \ingroup Advanced accountancy + * \ingroup Accountancy (Double entries) * \brief Home accounting module */ diff --git a/htdocs/accountancy/journal/bankjournal.php b/htdocs/accountancy/journal/bankjournal.php index 275af10701d..49e76c51dde 100644 --- a/htdocs/accountancy/journal/bankjournal.php +++ b/htdocs/accountancy/journal/bankjournal.php @@ -27,7 +27,7 @@ /** * \file htdocs/accountancy/journal/bankjournal.php - * \ingroup Advanced accountancy + * \ingroup Accountancy (Double entries) * \brief Page with bank journal */ require '../../main.inc.php'; diff --git a/htdocs/accountancy/journal/expensereportsjournal.php b/htdocs/accountancy/journal/expensereportsjournal.php index 30ed5a07207..fcb0ac8713f 100644 --- a/htdocs/accountancy/journal/expensereportsjournal.php +++ b/htdocs/accountancy/journal/expensereportsjournal.php @@ -25,7 +25,7 @@ /** * \file htdocs/accountancy/journal/expensereportsjournal.php - * \ingroup Advanced accountancy + * \ingroup Accountancy (Double entries) * \brief Page with expense reports journal */ require '../../main.inc.php'; diff --git a/htdocs/accountancy/journal/purchasesjournal.php b/htdocs/accountancy/journal/purchasesjournal.php index 6bbc4ad9c62..f23bc48c134 100644 --- a/htdocs/accountancy/journal/purchasesjournal.php +++ b/htdocs/accountancy/journal/purchasesjournal.php @@ -25,7 +25,7 @@ /** * \file htdocs/accountancy/journal/purchasesjournal.php - * \ingroup Advanced accountancy + * \ingroup Accountancy (Double entries) * \brief Page with purchases journal */ require '../../main.inc.php'; diff --git a/htdocs/accountancy/journal/sellsjournal.php b/htdocs/accountancy/journal/sellsjournal.php index 25c53863162..ac36238af6e 100644 --- a/htdocs/accountancy/journal/sellsjournal.php +++ b/htdocs/accountancy/journal/sellsjournal.php @@ -26,7 +26,7 @@ /** * \file htdocs/accountancy/journal/sellsjournal.php - * \ingroup Advanced accountancy + * \ingroup Accountancy (Double entries) * \brief Page with sells journal */ diff --git a/htdocs/accountancy/supplier/card.php b/htdocs/accountancy/supplier/card.php index 10e52d6c029..97f7d618ce8 100644 --- a/htdocs/accountancy/supplier/card.php +++ b/htdocs/accountancy/supplier/card.php @@ -23,7 +23,7 @@ */ /** * \file htdocs/accountancy/supplier/card.php - * \ingroup Advanced accountancy + * \ingroup Accountancy (Double entries) * \brief Card supplier ventilation */ require '../../main.inc.php'; diff --git a/htdocs/accountancy/supplier/index.php b/htdocs/accountancy/supplier/index.php index ab85507a7b4..95bcc15b9fd 100644 --- a/htdocs/accountancy/supplier/index.php +++ b/htdocs/accountancy/supplier/index.php @@ -20,7 +20,7 @@ /** * \file htdocs/accountancy/supplier/index.php - * \ingroup Advanced accountancy + * \ingroup Accountancy (Double entries) * \brief Home supplier journalization page */ diff --git a/htdocs/accountancy/supplier/lines.php b/htdocs/accountancy/supplier/lines.php index 4af51060b4b..7752d8355f0 100644 --- a/htdocs/accountancy/supplier/lines.php +++ b/htdocs/accountancy/supplier/lines.php @@ -21,7 +21,7 @@ /** * \file htdocs/accountancy/supplier/lines.php - * \ingroup Advanced accountancy + * \ingroup Accountancy (Double entries) * \brief Page of detail of the lines of ventilation of invoices suppliers */ require '../../main.inc.php'; diff --git a/htdocs/accountancy/supplier/list.php b/htdocs/accountancy/supplier/list.php index 27cccdb7eb2..c6480c6d6eb 100644 --- a/htdocs/accountancy/supplier/list.php +++ b/htdocs/accountancy/supplier/list.php @@ -22,7 +22,7 @@ /** * \file htdocs/accountancy/supplier/list.php - * \ingroup Advanced accountancy + * \ingroup Accountancy (Double entries) * \brief Ventilation page from suppliers invoices */ require '../../main.inc.php'; From 7c9ccee64d21634b3a364cdb2bc0d5ec780f0c8c Mon Sep 17 00:00:00 2001 From: Alexandre SPANGARO Date: Tue, 14 May 2019 05:45:36 +0200 Subject: [PATCH 003/365] NEW Accountancy - Differentiated export --- htdocs/accountancy/bookkeeping/list.php | 66 +++++++++++++++++-- .../accountancy/class/bookkeeping.class.php | 23 ++++--- .../install/mysql/migration/9.0.0-10.0.0.sql | 2 + .../tables/llx_accounting_bookkeeping.sql | 5 +- htdocs/langs/en_US/main.lang | 1 + 5 files changed, 80 insertions(+), 17 deletions(-) diff --git a/htdocs/accountancy/bookkeeping/list.php b/htdocs/accountancy/bookkeeping/list.php index 7df29416878..ac9811c687c 100644 --- a/htdocs/accountancy/bookkeeping/list.php +++ b/htdocs/accountancy/bookkeeping/list.php @@ -146,6 +146,7 @@ $arrayfields=array( 't.code_journal'=>array('label'=>$langs->trans("Codejournal"), 'checked'=>1), 't.date_creation'=>array('label'=>$langs->trans("DateCreation"), 'checked'=>0), 't.tms'=>array('label'=>$langs->trans("DateModification"), 'checked'=>0), + 't.date_export'=>array('label'=>$langs->trans("DateExport"), 'checked'=>0), ); if (empty($conf->global->ACCOUNTING_ENABLE_LETTERING)) unset($arrayfields['t.lettering_code']); @@ -181,6 +182,8 @@ if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x' $search_date_creation_end = ''; $search_date_modification_start = ''; $search_date_modification_end = ''; + $search_date_export_start = ''; + $search_date_export_end = ''; $search_debit = ''; $search_credit = ''; $search_lettering_code = ''; @@ -272,6 +275,16 @@ if (! empty($search_date_modification_end)) { $tmp=dol_getdate($search_date_modification_end); $param .= '&date_modification_endmonth=' . $tmp['mon'] . '&date_modification_endday=' . $tmp['mday'] . '&date_modification_endyear=' . $tmp['year']; } +if (! empty($search_date_export_start)) { + $filter['t.date_export>='] = $search_date_export_start; + $tmp=dol_getdate($search_date_export_start); + $param .= '&date_export_startmonth=' . $tmp['mon'] . '&date_export_startday=' . $tmp['mday'] . '&date_export_startyear=' . $tmp['year']; +} +if (! empty($search_date_export_end)) { + $filter['t.date_export<='] = $search_date_export_end; + $tmp=dol_getdate($search_date_export_end); + $param .= '&date_export_endmonth=' . $tmp['mon'] . '&date_export_endday=' . $tmp['mday'] . '&date_export_endyear=' . $tmp['year']; +} if (! empty($search_debit)) { $filter['t.debit'] = $search_debit; $param .= '&search_debit=' . urlencode($search_debit); @@ -351,8 +364,9 @@ if ($action == 'delmouvconfirm') { // Export into a file with format defined into setup (FEC, CSV, ...) if ($action == 'export_file') { + $reexportMovements = GETPOST('already_exported')=='on'?1:0; - $result = $object->fetchAll($sortorder, $sortfield, 0, 0, $filter); + $result = $object->fetchAll($sortorder, $sortfield, 0, 0, $filter, 'AND', $reexportMovements); if ($result < 0) { @@ -363,6 +377,22 @@ if ($action == 'export_file') { $accountancyexport = new AccountancyExport($db); $accountancyexport->export($object->lines); + // TODO Move in class bookKeeping + // Specify as export : update field date_export + foreach ( $object->lines as $movement ) { + $now = dol_now(); + $sql = " UPDATE " . MAIN_DB_PREFIX . "accounting_bookkeeping"; + $sql .= " SET date_export = '" . $db->idate($now) . "'"; + $sql .= " WHERE rowid = " . $movement->id; + + dol_syslog("/accountancy/bookeeping/list.php Function export_file Specify movements as exported sql=" . $sql, LOG_DEBUG); + if ($db->query($sql)) { + $db->commit(); + } else { + $db->rollback(); + } + } + if (!empty($accountancyexport->errors)) { setEventMessages('', $accountancyexport->errors, 'errors'); @@ -446,10 +476,10 @@ print ''; print ''; $listofformat=AccountancyExport::getType(); -$button = ''; +$button = ' ' . $langs->trans("IncludeDocsAlreadyExported"); +$button .= 'global->ACCOUNTING_EXPORT_MODELCSV].')'.'" name="button_export_file" href="'.$_SERVER["PHP_SELF"].'?action=export_file'.($param?'&'.$param:'').'">'; if (count($filter)) $button.= $langs->trans("ExportFilteredList"); else $button.= $langs->trans("ExportList"); -//$button.=' ('.$listofformat[$conf->global->ACCOUNTING_EXPORT_MODELCSV].')'; $button.= ''; @@ -600,6 +630,20 @@ if (! empty($arrayfields['t.tms']['checked'])) print ''; print ''; } +// Date export +if (! empty($arrayfields['t.date_export']['checked'])) +{ + print ''; + print '
'; + print $langs->trans('From') . ' '; + print $form->selectDate($search_date_export_start, 'date_export_start', 0, 0, 1); + print '
'; + print '
'; + print $langs->trans('to') . ' '; + print $form->selectDate($search_date_export_end, 'date_export_end', 0, 0, 1); + print '
'; + print ''; +} // Action column print ''; $searchpicto=$form->showFilterButtons(); @@ -620,6 +664,7 @@ if (! empty($arrayfields['t.lettering_code']['checked'])) print_liste_field_tit if (! empty($arrayfields['t.code_journal']['checked'])) print_liste_field_titre($arrayfields['t.code_journal']['label'], $_SERVER['PHP_SELF'], "t.code_journal", "", $param, '', $sortfield, $sortorder, 'center '); if (! empty($arrayfields['t.date_creation']['checked'])) print_liste_field_titre($arrayfields['t.date_creation']['label'], $_SERVER['PHP_SELF'], "t.date_creation", "", $param, '', $sortfield, $sortorder, 'center '); if (! empty($arrayfields['t.tms']['checked'])) print_liste_field_titre($arrayfields['t.tms']['label'], $_SERVER['PHP_SELF'], "t.tms", "", $param, '', $sortfield, $sortorder, 'center '); +if (! empty($arrayfields['t.date_export']['checked'])) print_liste_field_titre($arrayfields['t.date_export']['label'], $_SERVER['PHP_SELF'], "t.date_export", "", $param, '', $sortfield, $sortorder, 'center '); print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', '', $sortfield, $sortorder, 'center maxwidthsearch '); print "\n"; @@ -732,11 +777,20 @@ if ($num > 0) if (! $i) $totalarray['nbfield']++; } + // Exported operation date + if (! empty($arrayfields['t.date_export']['checked'])) + { + print '' . dol_print_date($line->date_export, 'dayhour') . ''; + if (! $i) $totalarray['nbfield']++; + } + // Action column print ''; - print '' . img_edit() . ' '; - print '' . img_delete() . ''; - print ''; + if(empty($line->date_export)) { + print '' . img_edit() . ' '; + print '' . img_delete() . ''; + } + print ''; if (! $i) $totalarray['nbfield']++; print "\n"; diff --git a/htdocs/accountancy/class/bookkeeping.class.php b/htdocs/accountancy/class/bookkeeping.class.php index c1df8b1045c..872bd56ca0f 100644 --- a/htdocs/accountancy/class/bookkeeping.class.php +++ b/htdocs/accountancy/class/bookkeeping.class.php @@ -866,15 +866,16 @@ class BookKeeping extends CommonObject /** * Load object in memory from the database * - * @param string $sortorder Sort Order - * @param string $sortfield Sort field - * @param int $limit Offset limit - * @param int $offset Offset limit - * @param array $filter Filter array - * @param string $filtermode Filter mode (AND or OR) - * @return int <0 if KO, >0 if OK + * @param string $sortorder Sort Order + * @param string $sortfield Sort field + * @param int $limit Offset limit + * @param int $offset Offset limit + * @param array $filter Filter array + * @param string $filtermode Filter mode (AND or OR) + * @param int $showAlreadyExportMovements Show movements when field 'date_export' is not empty (0:No / 1:Yes (Default)) + * @return int <0 if KO, >0 if OK */ - public function fetchAll($sortorder = '', $sortfield = '', $limit = 0, $offset = 0, array $filter = array(), $filtermode = 'AND') + public function fetchAll($sortorder = '', $sortfield = '', $limit = 0, $offset = 0, array $filter = array(), $filtermode = 'AND', $showAlreadyExportMovements = 1) { global $conf; @@ -904,7 +905,8 @@ class BookKeeping extends CommonObject $sql .= " t.journal_label,"; $sql .= " t.piece_num,"; $sql .= " t.date_creation,"; - $sql .= " t.tms as date_modification"; + $sql .= " t.tms as date_modification,"; + $sql .= " t.date_export"; $sql .= ' FROM ' . MAIN_DB_PREFIX . $this->table_element . ' as t'; // Manage filter $sqlwhere = array (); @@ -924,6 +926,8 @@ class BookKeeping extends CommonObject $sqlwhere[] = $key . '\'' . $this->db->idate($value) . '\''; } elseif ($key == 't.tms>=' || $key == 't.tms<=') { $sqlwhere[] = $key . '\'' . $this->db->idate($value) . '\''; + } elseif ($key == 't.date_export>=' || $key == 't.date_export<=') { + $sqlwhere[] = $key . '\'' . $this->db->idate($value) . '\''; } elseif ($key == 't.credit' || $key == 't.debit') { $sqlwhere[] = natural_search($key, $value, 1, 1); } else { @@ -978,6 +982,7 @@ class BookKeeping extends CommonObject $line->piece_num = $obj->piece_num; $line->date_creation = $this->db->jdate($obj->date_creation); $line->date_modification = $this->db->jdate($obj->date_modification); + $line->date_export = $this->db->jdate($obj->date_export); $this->lines[] = $line; diff --git a/htdocs/install/mysql/migration/9.0.0-10.0.0.sql b/htdocs/install/mysql/migration/9.0.0-10.0.0.sql index b53d0603be6..ef8a8c7b750 100644 --- a/htdocs/install/mysql/migration/9.0.0-10.0.0.sql +++ b/htdocs/install/mysql/migration/9.0.0-10.0.0.sql @@ -366,4 +366,6 @@ ALTER TABLE llx_reception_extrafields ADD INDEX idx_reception_extrafields (fk_ob ALTER TABLE llx_commande_fournisseur_dispatch ADD COLUMN fk_projet integer DEFAULT NULL; ALTER TABLE llx_commande_fournisseur_dispatch ADD COLUMN fk_reception integer DEFAULT NULL; +ALTER TABLE llx_accounting_bookkeeping ADD COLUMN date_export datetime DEFAULT NULL after date_validated; + \ No newline at end of file diff --git a/htdocs/install/mysql/tables/llx_accounting_bookkeeping.sql b/htdocs/install/mysql/tables/llx_accounting_bookkeeping.sql index af693c273a4..4a8f3ac7587 100644 --- a/htdocs/install/mysql/tables/llx_accounting_bookkeeping.sql +++ b/htdocs/install/mysql/tables/llx_accounting_bookkeeping.sql @@ -1,6 +1,6 @@ -- ============================================================================ -- Copyright (C) 2013-2014 Olivier Geffroy --- Copyright (C) 2013-2017 Alexandre Spangaro +-- Copyright (C) 2013-2019 Alexandre Spangaro -- -- 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 @@ -51,6 +51,7 @@ CREATE TABLE llx_accounting_bookkeeping piece_num integer NOT NULL, -- FEC:EcritureNum | accounting source document validated tinyint DEFAULT 0 NOT NULL, -- | 0 line not validated / 1 line validated (No deleting / No modification) date_validated datetime, -- FEC:ValidDate - import_key varchar(14), + date_export datetime DEFAULT NULL, -- + import_key varchar(14), -- extraparams varchar(255) -- for other parameters with json format ) ENGINE=innodb; diff --git a/htdocs/langs/en_US/main.lang b/htdocs/langs/en_US/main.lang index f91cbd8f1eb..be4d25cfef5 100644 --- a/htdocs/langs/en_US/main.lang +++ b/htdocs/langs/en_US/main.lang @@ -842,6 +842,7 @@ Exports=Exports ExportFilteredList=Export filtered list ExportList=Export list ExportOptions=Export Options +IncludeDocsAlreadyExported=Include docs already exported Miscellaneous=Miscellaneous Calendar=Calendar GroupBy=Group by... From 4311a1ece8ae08226ae6d2bab94a3b2b0fede48f Mon Sep 17 00:00:00 2001 From: florian HENRY Date: Sun, 19 May 2019 01:58:20 +0200 Subject: [PATCH 004/365] fix: #11187 --- htdocs/projet/class/project.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/projet/class/project.class.php b/htdocs/projet/class/project.class.php index e63cbe80fee..9caa873f170 100644 --- a/htdocs/projet/class/project.class.php +++ b/htdocs/projet/class/project.class.php @@ -537,7 +537,7 @@ class Project extends CommonObject } elseif ($type == 'project_task') { - $sql = "SELECT DISTINCT pt.rowid FROM " . MAIN_DB_PREFIX . "projet_task as pt, " . MAIN_DB_PREFIX . "projet_task_time as ptt WHERE pt.rowid = ptt.fk_task AND pt.fk_projet IN (". $ids .")"; + $sql = "SELECT DISTINCT pt.rowid FROM " . MAIN_DB_PREFIX . "projet_task as pt WHERE pt.fk_projet IN (". $ids .")"; } elseif ($type == 'project_task_time') // Case we want to duplicate line foreach user { From e4d87ab2e7c1bdb09f9d7a302f621547ae37dd8f Mon Sep 17 00:00:00 2001 From: florian HENRY Date: Sun, 19 May 2019 02:05:13 +0200 Subject: [PATCH 005/365] fix: #11189 --- htdocs/core/class/extrafields.class.php | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/htdocs/core/class/extrafields.class.php b/htdocs/core/class/extrafields.class.php index f8ae333935e..b3c257bfaaa 100644 --- a/htdocs/core/class/extrafields.class.php +++ b/htdocs/core/class/extrafields.class.php @@ -1194,13 +1194,14 @@ class ExtraFields if ($value == $obj->rowid) { - foreach ($fields_label as $field_toshow) - { - $translabel=$langs->trans($obj->$field_toshow); - if ($translabel!=$obj->$field_toshow) { - $labeltoshow=dol_trunc($translabel,18).' '; - }else { - $labeltoshow=dol_trunc($obj->$field_toshow,18).' '; + if (! $notrans) { + foreach ($fields_label as $field_toshow) { + $translabel = $langs->trans($obj->$field_toshow); + if ($translabel != $obj->$field_toshow) { + $labeltoshow = dol_trunc($translabel, 18) . ' '; + } else { + $labeltoshow = dol_trunc($obj->$field_toshow, 18) . ' '; + } } } $out.=''; From 19085ed200d89ee974d18afae0e1ce4d07d37fc5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= Date: Sun, 19 May 2019 09:08:59 +0200 Subject: [PATCH 006/365] dol_print_object_info return void --- htdocs/bom/bom_agenda.php | 21 ++++----------------- 1 file changed, 4 insertions(+), 17 deletions(-) diff --git a/htdocs/bom/bom_agenda.php b/htdocs/bom/bom_agenda.php index a1db711dd3e..a4bf134e3ce 100644 --- a/htdocs/bom/bom_agenda.php +++ b/htdocs/bom/bom_agenda.php @@ -23,25 +23,12 @@ */ // Load Dolibarr environment -$res=0; -// Try main.inc.php into web root known defined into CONTEXT_DOCUMENT_ROOT (not always defined) -if (! $res && ! empty($_SERVER["CONTEXT_DOCUMENT_ROOT"])) $res=@include $_SERVER["CONTEXT_DOCUMENT_ROOT"]."/main.inc.php"; -// Try main.inc.php into web root detected using web root calculated from SCRIPT_FILENAME -$tmp=empty($_SERVER['SCRIPT_FILENAME'])?'':$_SERVER['SCRIPT_FILENAME'];$tmp2=realpath(__FILE__); $i=strlen($tmp)-1; $j=strlen($tmp2)-1; -while($i > 0 && $j > 0 && isset($tmp[$i]) && isset($tmp2[$j]) && $tmp[$i]==$tmp2[$j]) { $i--; $j--; } -if (! $res && $i > 0 && file_exists(substr($tmp, 0, ($i+1))."/main.inc.php")) $res=@include substr($tmp, 0, ($i+1))."/main.inc.php"; -if (! $res && $i > 0 && file_exists(dirname(substr($tmp, 0, ($i+1)))."/main.inc.php")) $res=@include dirname(substr($tmp, 0, ($i+1)))."/main.inc.php"; -// Try main.inc.php using relative path -if (! $res && file_exists("../main.inc.php")) $res=@include "../main.inc.php"; -if (! $res && file_exists("../../main.inc.php")) $res=@include "../../main.inc.php"; -if (! $res && file_exists("../../../main.inc.php")) $res=@include "../../../main.inc.php"; -if (! $res) die("Include of main fails"); - +require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; -dol_include_once('/bom/class/bom.class.php'); -dol_include_once('/bom/lib/bom.lib.php'); +require_once DOL_DOCUMENT_ROOT.'/bom/class/bom.class.php'; +require_once DOL_DOCUMENT_ROOT.'/bom/lib/bom.lib.php'; // Load translation files required by the page @@ -196,7 +183,7 @@ if ($object->id > 0) print '
'; $object->info($object->id); - print dol_print_object_info($object, 1); + dol_print_object_info($object, 1); print ''; From 06421c200dbba9e4d79bb2c91f889734bd9c6b90 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= Date: Sun, 19 May 2019 09:13:46 +0200 Subject: [PATCH 007/365] Update agenda.php --- htdocs/adherents/agenda.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/adherents/agenda.php b/htdocs/adherents/agenda.php index 5b2c3e912dd..105251ec114 100644 --- a/htdocs/adherents/agenda.php +++ b/htdocs/adherents/agenda.php @@ -137,7 +137,7 @@ if ($object->id > 0) print '
'; $object->info($id); - print dol_print_object_info($object, 1); + dol_print_object_info($object, 1); print ''; From 7d66cc1ab1bd0a4905515d36edfec5b4126e119c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= Date: Sun, 19 May 2019 09:14:29 +0200 Subject: [PATCH 008/365] Update agenda.php --- htdocs/societe/agenda.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/societe/agenda.php b/htdocs/societe/agenda.php index 2bf407ec88d..a9283f6e236 100644 --- a/htdocs/societe/agenda.php +++ b/htdocs/societe/agenda.php @@ -127,7 +127,7 @@ if ($socid > 0) print '
'; $object->info($socid); - print dol_print_object_info($object, 1); + dol_print_object_info($object, 1); print ''; From c8027ccf1a2aac850dfa62064e36d0c633dc7799 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= Date: Sun, 19 May 2019 09:15:10 +0200 Subject: [PATCH 009/365] Update agenda.php --- htdocs/contact/agenda.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/contact/agenda.php b/htdocs/contact/agenda.php index 6e093a934dd..2b135c3cc37 100644 --- a/htdocs/contact/agenda.php +++ b/htdocs/contact/agenda.php @@ -227,7 +227,7 @@ else print '
'; $object->info($id); - print dol_print_object_info($object, 1); + dol_print_object_info($object, 1); print ''; From 53a09a0dd46f06b77357bb3174ec701956e53090 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= Date: Sun, 19 May 2019 09:15:51 +0200 Subject: [PATCH 010/365] Update agenda.php --- htdocs/product/agenda.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/product/agenda.php b/htdocs/product/agenda.php index 28b3c06ffa1..2ec5345009e 100644 --- a/htdocs/product/agenda.php +++ b/htdocs/product/agenda.php @@ -141,7 +141,7 @@ if ($id > 0 || $ref) print '
'; $object->info($object->id); - print dol_print_object_info($object, 1); + dol_print_object_info($object, 1); print ''; From ff37fddcf16a14407403d3364b6b2a3a16377e62 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= Date: Sun, 19 May 2019 09:16:45 +0200 Subject: [PATCH 011/365] Update myobject_agenda.php --- htdocs/modulebuilder/template/myobject_agenda.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/modulebuilder/template/myobject_agenda.php b/htdocs/modulebuilder/template/myobject_agenda.php index 924db3b8632..b536b264952 100644 --- a/htdocs/modulebuilder/template/myobject_agenda.php +++ b/htdocs/modulebuilder/template/myobject_agenda.php @@ -196,7 +196,7 @@ if ($object->id > 0) print '
'; $object->info($object->id); - print dol_print_object_info($object, 1); + dol_print_object_info($object, 1); print ''; From 7b317c4cbfc8c0ce38b2fec02fc6bcffbc6cf189 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= Date: Sun, 19 May 2019 09:28:34 +0200 Subject: [PATCH 012/365] printObjectLines return void --- htdocs/modulebuilder/template/myobject_card.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/htdocs/modulebuilder/template/myobject_card.php b/htdocs/modulebuilder/template/myobject_card.php index e5223c86608..ed6a421ac86 100644 --- a/htdocs/modulebuilder/template/myobject_card.php +++ b/htdocs/modulebuilder/template/myobject_card.php @@ -389,7 +389,8 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea if (! empty($object->lines)) { - $ret = $object->printObjectLines($action, $mysoc, $soc, $lineid, 1); + // printObjectLines return void + $object->printObjectLines($action, $mysoc, $soc, $lineid, 1); } // Form to add new line From a09584ae4ba93a995db3780870cf83b071d47f58 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= Date: Sun, 19 May 2019 09:46:47 +0200 Subject: [PATCH 013/365] The method _load_ldap_dn() cannot be called... The method _load_ldap_dn() cannot be called from this context as it is declared private in class AdherentType. --- htdocs/adherents/class/adherent_type.class.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/adherents/class/adherent_type.class.php b/htdocs/adherents/class/adherent_type.class.php index c310bb18627..d51bbfef28a 100644 --- a/htdocs/adherents/class/adherent_type.class.php +++ b/htdocs/adherents/class/adherent_type.class.php @@ -462,7 +462,7 @@ class AdherentType extends CommonObject return ''; } - // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps /** * Retourne chaine DN complete dans l'annuaire LDAP pour l'objet * @@ -472,7 +472,7 @@ class AdherentType extends CommonObject * 2=Return key only (uid=qqq) * @return string DN */ - private function _load_ldap_dn($info, $mode = 0) + public function _load_ldap_dn($info, $mode = 0) { // phpcs:enable global $conf; From 5a05cc184beacdcfba01480b433613b99e5f33d9 Mon Sep 17 00:00:00 2001 From: Alexandre SPANGARO Date: Sun, 19 May 2019 10:48:43 +0200 Subject: [PATCH 014/365] Fix Accountancy Export OpenConcerto --- htdocs/accountancy/class/accountancyexport.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/accountancy/class/accountancyexport.class.php b/htdocs/accountancy/class/accountancyexport.class.php index b9339a8150b..8ca2de4a132 100644 --- a/htdocs/accountancy/class/accountancyexport.class.php +++ b/htdocs/accountancy/class/accountancyexport.class.php @@ -616,7 +616,7 @@ class AccountancyExport $date = dol_print_date($line->doc_date, '%d/%m/%Y'); print $date . $separator; - print $line->code_journal; + print $line->code_journal . $separator; if (empty($line->subledger_account)) { print length_accountg($line->numero_compte) . $separator; } else { From a368a6a43ed8b59570289ac855976f5012783e65 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= Date: Sun, 19 May 2019 09:51:54 +0200 Subject: [PATCH 015/365] Update adherent_type.class.php --- htdocs/adherents/class/adherent_type.class.php | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/htdocs/adherents/class/adherent_type.class.php b/htdocs/adherents/class/adherent_type.class.php index d51bbfef28a..5e7847efa82 100644 --- a/htdocs/adherents/class/adherent_type.class.php +++ b/htdocs/adherents/class/adherent_type.class.php @@ -65,7 +65,7 @@ class AdherentType extends CommonObject * @var string Adherent type label */ public $label; - + /** * @var string Adherent type nature */ @@ -410,7 +410,7 @@ class AdherentType extends CommonObject return -1; } } - + /** * Return translated label by the nature of a adherent (physical or moral) * @@ -422,7 +422,7 @@ class AdherentType extends CommonObject global $langs; if ($morphy == 'phy') { return $langs->trans("Physical"); } elseif ($morphy == 'mor') { return $langs->trans("Moral"); } - else return $langs->trans("Physical & Morale"); + else return $langs->trans("Physical & Morale"); //return $morphy; } @@ -462,7 +462,8 @@ class AdherentType extends CommonObject return ''; } - // phpcs:disable PEAR.NamingConventions.ValidFunctionName.NotCamelCaps + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore /** * Retourne chaine DN complete dans l'annuaire LDAP pour l'objet * @@ -485,12 +486,13 @@ class AdherentType extends CommonObject // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.PublicUnderscore /** * Initialize the info array (array of LDAP values) that will be used to call LDAP functions * * @return array Tableau info des attributs */ - private function _load_ldap_info() + public function _load_ldap_info() { // phpcs:enable global $conf,$langs; From 6780befb2df939c48f8378fd6b8200f807ee0a12 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sun, 19 May 2019 21:59:03 +0200 Subject: [PATCH 016/365] Fix css --- htdocs/theme/eldy/global.inc.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/htdocs/theme/eldy/global.inc.php b/htdocs/theme/eldy/global.inc.php index efd47a94631..f66a037d43a 100644 --- a/htdocs/theme/eldy/global.inc.php +++ b/htdocs/theme/eldy/global.inc.php @@ -1124,6 +1124,9 @@ div.fichetwothirdright { browser->layout != 'phone') { print "width: 50%;\n"; } ?> browser->layout == 'phone') { print "padding-bottom: 6px\n"; } ?> } +div.fichetwothirdright div.ficheaddleft { + padding-left: 20px; +} div.fichehalfleft { browser->layout != 'phone') { print "float: ".$left.";\n"; } ?> browser->layout != 'phone') { print "width: calc(50% - 10px);\n"; } ?> From 5def839813af872aa7fff871cf945174fe59540a Mon Sep 17 00:00:00 2001 From: ATM-Nicolas Date: Mon, 20 May 2019 11:56:26 +0200 Subject: [PATCH 017/365] FIX : Padding on create project icon --- htdocs/comm/propal/card.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/comm/propal/card.php b/htdocs/comm/propal/card.php index 4950efb19ab..c8cba5c3dda 100644 --- a/htdocs/comm/propal/card.php +++ b/htdocs/comm/propal/card.php @@ -1679,7 +1679,7 @@ if ($action == 'create') print ''; print '' . $langs->trans("Project") . ''; $numprojet = $formproject->select_projects(($soc->id > 0 ? $soc->id : -1), $projectid, 'projectid', 0, 0, 1, 1); - print '   id).'">' . $langs->trans("AddProject") . ''; + print '   id).'">' . $langs->trans("AddProject") . ''; print ''; print ''; } From 3c1b860da475bf3311bae1e81bd515026b80631f Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 20 May 2019 12:16:39 +0200 Subject: [PATCH 018/365] Fix css --- htdocs/bom/bom_card.php | 4 ++-- htdocs/bom/bom_document.php | 6 +++--- htdocs/core/menus/standard/eldy.lib.php | 4 ++-- htdocs/core/tpl/commonfields_view.tpl.php | 2 +- htdocs/core/tpl/resource_add.tpl.php | 2 +- htdocs/core/tpl/resource_view.tpl.php | 2 +- htdocs/modulebuilder/template/myobject_card.php | 2 +- htdocs/modulebuilder/template/myobject_document.php | 4 ++-- htdocs/theme/eldy/global.inc.php | 2 +- htdocs/theme/eldy/style.css.php | 2 +- htdocs/theme/eldy/theme_vars.inc.php | 4 ++-- 11 files changed, 17 insertions(+), 17 deletions(-) diff --git a/htdocs/bom/bom_card.php b/htdocs/bom/bom_card.php index de6189c946a..fddba91eeeb 100644 --- a/htdocs/bom/bom_card.php +++ b/htdocs/bom/bom_card.php @@ -307,7 +307,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea print '
'; print '
'; print '
'; - print ''."\n"; + print '
'."\n"; // Common attributes $keyforbreak='description'; @@ -391,7 +391,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea if (empty($reshook)) { // Send - print '' . $langs->trans('SendMail') . ''."\n"; + //print '' . $langs->trans('SendMail') . ''."\n"; // Modify if ($user->rights->bom->write) diff --git a/htdocs/bom/bom_document.php b/htdocs/bom/bom_document.php index 1738efc605c..012094fbb05 100644 --- a/htdocs/bom/bom_document.php +++ b/htdocs/bom/bom_document.php @@ -68,8 +68,8 @@ $extralabels = $extrafields->fetch_name_optionals_label('bom'); // Load object include DOL_DOCUMENT_ROOT.'/core/actions_fetchobject.inc.php'; // Must be include, not include_once // Must be include, not include_once. Include fetch and fetch_thirdparty but not fetch_optionals -//if ($id > 0 || ! empty($ref)) $upload_dir = $conf->sellyoursaas->multidir_output[$object->entity] . "/bom/" . dol_sanitizeFileName($object->id); -if ($id > 0 || ! empty($ref)) $upload_dir = $conf->sellyoursaas->multidir_output[$object->entity] . "/bom/" . dol_sanitizeFileName($object->ref); +//if ($id > 0 || ! empty($ref)) $upload_dir = $conf->bom->multidir_output[$object->entity?$object->entity:1] . "/bom/" . dol_sanitizeFileName($object->id); +if ($id > 0 || ! empty($ref)) $upload_dir = $conf->bom->multidir_output[$object->entity?$object->entity:1] . "/bom/" . dol_sanitizeFileName($object->ref); /* @@ -117,7 +117,7 @@ if ($object->id) print '
'; print '
'; - print '
'; + print '
'; // Number of files print ''; diff --git a/htdocs/core/menus/standard/eldy.lib.php b/htdocs/core/menus/standard/eldy.lib.php index fc639802e7f..3710cc2cf91 100644 --- a/htdocs/core/menus/standard/eldy.lib.php +++ b/htdocs/core/menus/standard/eldy.lib.php @@ -540,10 +540,10 @@ function print_text_menu_entry($text, $showmode, $url, $id, $idsel, $classname, global $langs; if ($showmode == 1) { - print ''; + print ''; print '
'; print '
'; - print ''; + print ''; print ''; print $text; print ''; diff --git a/htdocs/core/tpl/commonfields_view.tpl.php b/htdocs/core/tpl/commonfields_view.tpl.php index 7c30aa0ce86..f6d59435e74 100644 --- a/htdocs/core/tpl/commonfields_view.tpl.php +++ b/htdocs/core/tpl/commonfields_view.tpl.php @@ -71,7 +71,7 @@ print ''; print '
'; print '
'; -print '
'.$langs->trans("NbOfAttachedFiles").''.count($filearray).'
'; +print '
'; $alreadyoutput = 1; foreach($object->fields as $key => $val) diff --git a/htdocs/core/tpl/resource_add.tpl.php b/htdocs/core/tpl/resource_add.tpl.php index 34246bcf0b6..4e5967b30b4 100644 --- a/htdocs/core/tpl/resource_add.tpl.php +++ b/htdocs/core/tpl/resource_add.tpl.php @@ -14,7 +14,7 @@ require_once DOL_DOCUMENT_ROOT.'/resource/class/html.formresource.class.php'; $form = new Form($db); $formresources = new FormResource($db); -$out = '
'; +$out = '
'; $out .= '
'; $out .= ''; diff --git a/htdocs/core/tpl/resource_view.tpl.php b/htdocs/core/tpl/resource_view.tpl.php index 76a565cf7d6..d2e0441b60b 100644 --- a/htdocs/core/tpl/resource_view.tpl.php +++ b/htdocs/core/tpl/resource_view.tpl.php @@ -13,7 +13,7 @@ $form= new Form($db); print '
'; -print ''; +print ''; print '
'; print '
'.$langs->trans('Resource').'
'; diff --git a/htdocs/modulebuilder/template/myobject_card.php b/htdocs/modulebuilder/template/myobject_card.php index e5223c86608..02b7aa42315 100644 --- a/htdocs/modulebuilder/template/myobject_card.php +++ b/htdocs/modulebuilder/template/myobject_card.php @@ -223,7 +223,7 @@ if (($id || $ref) && $action == 'edit') dol_fiche_head(); - print '
'."\n"; + print '
'."\n"; // Common attributes include DOL_DOCUMENT_ROOT . '/core/tpl/commonfields_edit.tpl.php'; diff --git a/htdocs/modulebuilder/template/myobject_document.php b/htdocs/modulebuilder/template/myobject_document.php index d9542daf64f..55fcdc6f9eb 100644 --- a/htdocs/modulebuilder/template/myobject_document.php +++ b/htdocs/modulebuilder/template/myobject_document.php @@ -81,8 +81,8 @@ $extralabels = $extrafields->fetch_name_optionals_label('myobject'); // Load object include DOL_DOCUMENT_ROOT.'/core/actions_fetchobject.inc.php'; // Must be include, not include_once // Must be include, not include_once. Include fetch and fetch_thirdparty but not fetch_optionals -//if ($id > 0 || ! empty($ref)) $upload_dir = $conf->sellyoursaas->multidir_output[$object->entity] . "/myobject/" . dol_sanitizeFileName($object->id); -if ($id > 0 || ! empty($ref)) $upload_dir = $conf->sellyoursaas->multidir_output[$object->entity] . "/myobject/" . dol_sanitizeFileName($object->ref); +//if ($id > 0 || ! empty($ref)) $upload_dir = $conf->mymodule->multidir_output[$object->entity?$object->entity:1] . "/myobject/" . dol_sanitizeFileName($object->id); +if ($id > 0 || ! empty($ref)) $upload_dir = $conf->mymodule->multidir_output[$object->entity?$object->entity:1] . "/myobject/" . dol_sanitizeFileName($object->ref); /* diff --git a/htdocs/theme/eldy/global.inc.php b/htdocs/theme/eldy/global.inc.php index f66a037d43a..691daebf894 100644 --- a/htdocs/theme/eldy/global.inc.php +++ b/htdocs/theme/eldy/global.inc.php @@ -2555,7 +2555,7 @@ table.liste th, table.noborder th, table.noborder tr.liste_titre td, table.nobor } table.liste td, table.noborder td, div.noborder form div, table.tableforservicepart1 td, table.tableforservicepart2 td { padding: 7px 8px 7px 8px; /* t r b l */ - line-height: 1.2em; + line-height: 22px; height: 22px; } div.liste_titre_bydiv .divsearchfield { diff --git a/htdocs/theme/eldy/style.css.php b/htdocs/theme/eldy/style.css.php index 70479584c5a..dfb180f0dad 100644 --- a/htdocs/theme/eldy/style.css.php +++ b/htdocs/theme/eldy/style.css.php @@ -13,7 +13,7 @@ * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FI8TNESS FOR A PARTICULAR PURPOSE. See the + * 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 diff --git a/htdocs/theme/eldy/theme_vars.inc.php b/htdocs/theme/eldy/theme_vars.inc.php index 6437fa2de72..f02c25113ef 100644 --- a/htdocs/theme/eldy/theme_vars.inc.php +++ b/htdocs/theme/eldy/theme_vars.inc.php @@ -51,10 +51,10 @@ $colorbacklinepairhover='230,237,244'; // line hover $colorbacklinepairchecked='230,237,244'; // line checked $colorbacklinebreak='223,218,220'; // line break $colorbackbody='255,255,255'; -$colortexttitlenotab='100,60,20'; +$colortexttitlenotab='110,80,20'; $colortexttitle='0,0,0'; $colortext='0,0,0'; -$colortextlink='8, 85, 134'; +$colortextlink='10, 10, 100'; $fontsize='0.86em'; $fontsizesmaller='0.75em'; $topMenuFontSize='1.2em'; From 827a2e18095bc76a1b3f631fd973799b48e42122 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 20 May 2019 12:47:02 +0200 Subject: [PATCH 019/365] Fix test if qualified for stock change at wrong place --- htdocs/compta/facture/card.php | 213 ++++++++++++++++++--------------- 1 file changed, 117 insertions(+), 96 deletions(-) diff --git a/htdocs/compta/facture/card.php b/htdocs/compta/facture/card.php index 85b4e3bb728..69f647e0757 100644 --- a/htdocs/compta/facture/card.php +++ b/htdocs/compta/facture/card.php @@ -518,20 +518,23 @@ if (empty($reshook)) } } - $qualified_for_stock_change = 0; - if (empty($conf->global->STOCK_SUPPORTS_SERVICES)) { - $qualified_for_stock_change = $object->hasProductsOrServices(2); - } else { - $qualified_for_stock_change = $object->hasProductsOrServices(1); - } - // Check for warehouse - if ($object->type != Facture::TYPE_DEPOSIT && ! empty($conf->global->STOCK_CALCULATE_ON_BILL) && $qualified_for_stock_change) + if ($object->type != Facture::TYPE_DEPOSIT && ! empty($conf->global->STOCK_CALCULATE_ON_BILL)) { - if (! $idwarehouse || $idwarehouse == - 1) { - $error++; - setEventMessages($langs->trans('ErrorFieldRequired', $langs->transnoentitiesnoconv("Warehouse")), null, 'errors'); - $action = ''; + $qualified_for_stock_change = 0; + if (empty($conf->global->STOCK_SUPPORTS_SERVICES)) { + $qualified_for_stock_change = $object->hasProductsOrServices(2); + } else { + $qualified_for_stock_change = $object->hasProductsOrServices(1); + } + + if ($qualified_for_stock_change) + { + if (! $idwarehouse || $idwarehouse == - 1) { + $error++; + setEventMessages($langs->trans('ErrorFieldRequired', $langs->transnoentitiesnoconv("Warehouse")), null, 'errors'); + $action = ''; + } } } @@ -575,20 +578,23 @@ if (empty($reshook)) $object->fetch($id); $object->fetch_thirdparty(); - $qualified_for_stock_change = 0; - if (empty($conf->global->STOCK_SUPPORTS_SERVICES)) { - $qualified_for_stock_change = $object->hasProductsOrServices(2); - } else { - $qualified_for_stock_change = $object->hasProductsOrServices(1); - } - // Check parameters - if ($object->type != Facture::TYPE_DEPOSIT && ! empty($conf->global->STOCK_CALCULATE_ON_BILL) && $qualified_for_stock_change) + if ($object->type != Facture::TYPE_DEPOSIT && ! empty($conf->global->STOCK_CALCULATE_ON_BILL)) { - if (! $idwarehouse || $idwarehouse == - 1) { - $error++; - setEventMessages($langs->trans('ErrorFieldRequired', $langs->transnoentitiesnoconv("Warehouse")), null, 'errors'); - $action = ''; + $qualified_for_stock_change = 0; + if (empty($conf->global->STOCK_SUPPORTS_SERVICES)) { + $qualified_for_stock_change = $object->hasProductsOrServices(2); + } else { + $qualified_for_stock_change = $object->hasProductsOrServices(1); + } + + if ($qualified_for_stock_change)) + { + if (! $idwarehouse || $idwarehouse == - 1) { + $error++; + setEventMessages($langs->trans('ErrorFieldRequired', $langs->transnoentitiesnoconv("Warehouse")), null, 'errors'); + $action = ''; + } } } @@ -3426,28 +3432,35 @@ elseif ($id > 0 || ! empty($ref)) $text = $langs->trans('ConfirmDeleteBill', $object->ref); $formquestion = array(); - $qualified_for_stock_change = 0; - if (empty($conf->global->STOCK_SUPPORTS_SERVICES)) { - $qualified_for_stock_change = $object->hasProductsOrServices(2); - } else { - $qualified_for_stock_change = $object->hasProductsOrServices(1); - } - - if ($object->type != Facture::TYPE_DEPOSIT && ! empty($conf->global->STOCK_CALCULATE_ON_BILL) && $qualified_for_stock_change && $object->statut >= 1) + if ($object->type != Facture::TYPE_DEPOSIT && ! empty($conf->global->STOCK_CALCULATE_ON_BILL) && $object->statut >= 1) { - $langs->load("stocks"); - require_once DOL_DOCUMENT_ROOT . '/product/class/html.formproduct.class.php'; - $formproduct = new FormProduct($db); - $label = $object->type == Facture::TYPE_CREDIT_NOTE ? $langs->trans("SelectWarehouseForStockDecrease") : $langs->trans("SelectWarehouseForStockIncrease"); - $forcecombo=0; - if ($conf->browser->name == 'ie') $forcecombo = 1; // There is a bug in IE10 that make combo inside popup crazy - $formquestion = array( - // 'text' => $langs->trans("ConfirmClone"), - // array('type' => 'checkbox', 'name' => 'clone_content', 'label' => $langs->trans("CloneMainAttributes"), 'value' => 1), - // array('type' => 'checkbox', 'name' => 'update_prices', 'label' => $langs->trans("PuttingPricesUpToDate"), 'value' => 1), - array('type' => 'other','name' => 'idwarehouse','label' => $label,'value' => $formproduct->selectWarehouses(GETPOST('idwarehouse')?GETPOST('idwarehouse'):'ifone', 'idwarehouse', '', 1, 0, 0, $langs->trans("NoStockAction"), 0, $forcecombo)) - ); - $formconfirm = $form->formconfirm($_SERVER['PHP_SELF'] . '?facid=' . $object->id, $langs->trans('DeleteBill'), $text, 'confirm_delete', $formquestion, "yes", 1); + $qualified_for_stock_change = 0; + if (empty($conf->global->STOCK_SUPPORTS_SERVICES)) { + $qualified_for_stock_change = $object->hasProductsOrServices(2); + } else { + $qualified_for_stock_change = $object->hasProductsOrServices(1); + } + + if ($qualified_for_stock_change) + { + $langs->load("stocks"); + require_once DOL_DOCUMENT_ROOT . '/product/class/html.formproduct.class.php'; + $formproduct = new FormProduct($db); + $label = $object->type == Facture::TYPE_CREDIT_NOTE ? $langs->trans("SelectWarehouseForStockDecrease") : $langs->trans("SelectWarehouseForStockIncrease"); + $forcecombo=0; + if ($conf->browser->name == 'ie') $forcecombo = 1; // There is a bug in IE10 that make combo inside popup crazy + $formquestion = array( + // 'text' => $langs->trans("ConfirmClone"), + // array('type' => 'checkbox', 'name' => 'clone_content', 'label' => $langs->trans("CloneMainAttributes"), 'value' => 1), + // array('type' => 'checkbox', 'name' => 'update_prices', 'label' => $langs->trans("PuttingPricesUpToDate"), 'value' => 1), + array('type' => 'other','name' => 'idwarehouse','label' => $label,'value' => $formproduct->selectWarehouses(GETPOST('idwarehouse')?GETPOST('idwarehouse'):'ifone', 'idwarehouse', '', 1, 0, 0, $langs->trans("NoStockAction"), 0, $forcecombo)) + ); + $formconfirm = $form->formconfirm($_SERVER['PHP_SELF'] . '?facid=' . $object->id, $langs->trans('DeleteBill'), $text, 'confirm_delete', $formquestion, "yes", 1); + } + else + { + $formconfirm = $form->formconfirm($_SERVER['PHP_SELF'] . '?facid=' . $object->id, $langs->trans('DeleteBill'), $text, 'confirm_delete', '', 'no', 1); + } } else { $formconfirm = $form->formconfirm($_SERVER['PHP_SELF'] . '?facid=' . $object->id, $langs->trans('DeleteBill'), $text, 'confirm_delete', '', 'no', 1); } @@ -3496,35 +3509,38 @@ elseif ($id > 0 || ! empty($ref)) } $formquestion = array(); - $qualified_for_stock_change = 0; - if (empty($conf->global->STOCK_SUPPORTS_SERVICES)) { - $qualified_for_stock_change = $object->hasProductsOrServices(2); - } else { - $qualified_for_stock_change = $object->hasProductsOrServices(1); - } - - if ($object->type != Facture::TYPE_DEPOSIT && ! empty($conf->global->STOCK_CALCULATE_ON_BILL) && $qualified_for_stock_change) + if ($object->type != Facture::TYPE_DEPOSIT && ! empty($conf->global->STOCK_CALCULATE_ON_BILL)) { - $langs->load("stocks"); - require_once DOL_DOCUMENT_ROOT . '/product/class/html.formproduct.class.php'; - require_once DOL_DOCUMENT_ROOT . '/product/stock/class/entrepot.class.php'; - $formproduct = new FormProduct($db); - $warehouse = new Entrepot($db); - $warehouse_array = $warehouse->list_array(); - if (count($warehouse_array) == 1) { - $label = $object->type == Facture::TYPE_CREDIT_NOTE ? $langs->trans("WarehouseForStockIncrease", current($warehouse_array)) : $langs->trans("WarehouseForStockDecrease", current($warehouse_array)); - $value = ''; + $qualified_for_stock_change = 0; + if (empty($conf->global->STOCK_SUPPORTS_SERVICES)) { + $qualified_for_stock_change = $object->hasProductsOrServices(2); } else { - $label = $object->type == Facture::TYPE_CREDIT_NOTE ? $langs->trans("SelectWarehouseForStockIncrease") : $langs->trans("SelectWarehouseForStockDecrease"); - $value = $formproduct->selectWarehouses(GETPOST('idwarehouse')?GETPOST('idwarehouse'):'ifone', 'idwarehouse', '', 1); + $qualified_for_stock_change = $object->hasProductsOrServices(1); + } + + if ($qualified_for_stock_change) + { + $langs->load("stocks"); + require_once DOL_DOCUMENT_ROOT . '/product/class/html.formproduct.class.php'; + require_once DOL_DOCUMENT_ROOT . '/product/stock/class/entrepot.class.php'; + $formproduct = new FormProduct($db); + $warehouse = new Entrepot($db); + $warehouse_array = $warehouse->list_array(); + if (count($warehouse_array) == 1) { + $label = $object->type == Facture::TYPE_CREDIT_NOTE ? $langs->trans("WarehouseForStockIncrease", current($warehouse_array)) : $langs->trans("WarehouseForStockDecrease", current($warehouse_array)); + $value = ''; + } else { + $label = $object->type == Facture::TYPE_CREDIT_NOTE ? $langs->trans("SelectWarehouseForStockIncrease") : $langs->trans("SelectWarehouseForStockDecrease"); + $value = $formproduct->selectWarehouses(GETPOST('idwarehouse')?GETPOST('idwarehouse'):'ifone', 'idwarehouse', '', 1); + } + $formquestion = array( + // 'text' => $langs->trans("ConfirmClone"), + // array('type' => 'checkbox', 'name' => 'clone_content', 'label' => $langs->trans("CloneMainAttributes"), 'value' => + // 1), + // array('type' => 'checkbox', 'name' => 'update_prices', 'label' => $langs->trans("PuttingPricesUpToDate"), 'value' + // => 1), + array('type' => 'other','name' => 'idwarehouse','label' => $label,'value' => $value)); } - $formquestion = array( - // 'text' => $langs->trans("ConfirmClone"), - // array('type' => 'checkbox', 'name' => 'clone_content', 'label' => $langs->trans("CloneMainAttributes"), 'value' => - // 1), - // array('type' => 'checkbox', 'name' => 'update_prices', 'label' => $langs->trans("PuttingPricesUpToDate"), 'value' - // => 1), - array('type' => 'other','name' => 'idwarehouse','label' => $label,'value' => $value)); } if ($object->type != Facture::TYPE_CREDIT_NOTE && $object->total_ttc < 0) // Can happen only if $conf->global->FACTURE_ENABLE_NEGATIVE is on { @@ -3538,33 +3554,38 @@ elseif ($id > 0 || ! empty($ref)) $text = $langs->trans('ConfirmUnvalidateBill', $object->ref); $formquestion = array(); - $qualified_for_stock_change = 0; - if (empty($conf->global->STOCK_SUPPORTS_SERVICES)) { - $qualified_for_stock_change = $object->hasProductsOrServices(2); - } else { - $qualified_for_stock_change = $object->hasProductsOrServices(1); - } - if ($object->type != Facture::TYPE_DEPOSIT && ! empty($conf->global->STOCK_CALCULATE_ON_BILL) && $qualified_for_stock_change) { - $langs->load("stocks"); - require_once DOL_DOCUMENT_ROOT . '/product/class/html.formproduct.class.php'; - require_once DOL_DOCUMENT_ROOT . '/product/stock/class/entrepot.class.php'; - $formproduct = new FormProduct($db); - $warehouse = new Entrepot($db); - $warehouse_array = $warehouse->list_array(); - if (count($warehouse_array) == 1) { - $label = $object->type == Facture::TYPE_CREDIT_NOTE ? $langs->trans("WarehouseForStockDecrease", current($warehouse_array)) : $langs->trans("WarehouseForStockIncrease", current($warehouse_array)); - $value = ''; + if ($object->type != Facture::TYPE_DEPOSIT && ! empty($conf->global->STOCK_CALCULATE_ON_BILL)) + { + $qualified_for_stock_change = 0; + if (empty($conf->global->STOCK_SUPPORTS_SERVICES)) { + $qualified_for_stock_change = $object->hasProductsOrServices(2); } else { - $label = $object->type == Facture::TYPE_CREDIT_NOTE ? $langs->trans("SelectWarehouseForStockDecrease") : $langs->trans("SelectWarehouseForStockIncrease"); - $value = $formproduct->selectWarehouses(GETPOST('idwarehouse')?GETPOST('idwarehouse'):'ifone', 'idwarehouse', '', 1); + $qualified_for_stock_change = $object->hasProductsOrServices(1); + } + + if ($qualified_for_stock_change) + { + $langs->load("stocks"); + require_once DOL_DOCUMENT_ROOT . '/product/class/html.formproduct.class.php'; + require_once DOL_DOCUMENT_ROOT . '/product/stock/class/entrepot.class.php'; + $formproduct = new FormProduct($db); + $warehouse = new Entrepot($db); + $warehouse_array = $warehouse->list_array(); + if (count($warehouse_array) == 1) { + $label = $object->type == Facture::TYPE_CREDIT_NOTE ? $langs->trans("WarehouseForStockDecrease", current($warehouse_array)) : $langs->trans("WarehouseForStockIncrease", current($warehouse_array)); + $value = ''; + } else { + $label = $object->type == Facture::TYPE_CREDIT_NOTE ? $langs->trans("SelectWarehouseForStockDecrease") : $langs->trans("SelectWarehouseForStockIncrease"); + $value = $formproduct->selectWarehouses(GETPOST('idwarehouse')?GETPOST('idwarehouse'):'ifone', 'idwarehouse', '', 1); + } + $formquestion = array( + // 'text' => $langs->trans("ConfirmClone"), + // array('type' => 'checkbox', 'name' => 'clone_content', 'label' => $langs->trans("CloneMainAttributes"), 'value' => + // 1), + // array('type' => 'checkbox', 'name' => 'update_prices', 'label' => $langs->trans("PuttingPricesUpToDate"), 'value' + // => 1), + array('type' => 'other','name' => 'idwarehouse','label' => $label,'value' => $value)); } - $formquestion = array( - // 'text' => $langs->trans("ConfirmClone"), - // array('type' => 'checkbox', 'name' => 'clone_content', 'label' => $langs->trans("CloneMainAttributes"), 'value' => - // 1), - // array('type' => 'checkbox', 'name' => 'update_prices', 'label' => $langs->trans("PuttingPricesUpToDate"), 'value' - // => 1), - array('type' => 'other','name' => 'idwarehouse','label' => $label,'value' => $value)); } $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"] . '?facid=' . $object->id, $langs->trans('UnvalidateBill'), $text, 'confirm_modif', $formquestion, "yes", 1); From 91dd8a71d3d07922008ffc4a4e49fef803828ac7 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 20 May 2019 12:50:00 +0200 Subject: [PATCH 020/365] Fix syntax error --- htdocs/compta/facture/card.php | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/htdocs/compta/facture/card.php b/htdocs/compta/facture/card.php index 69f647e0757..329ecbbedcc 100644 --- a/htdocs/compta/facture/card.php +++ b/htdocs/compta/facture/card.php @@ -527,7 +527,7 @@ if (empty($reshook)) } else { $qualified_for_stock_change = $object->hasProductsOrServices(1); } - + if ($qualified_for_stock_change) { if (! $idwarehouse || $idwarehouse == - 1) { @@ -587,8 +587,8 @@ if (empty($reshook)) } else { $qualified_for_stock_change = $object->hasProductsOrServices(1); } - - if ($qualified_for_stock_change)) + + if ($qualified_for_stock_change) { if (! $idwarehouse || $idwarehouse == - 1) { $error++; @@ -3440,7 +3440,7 @@ elseif ($id > 0 || ! empty($ref)) } else { $qualified_for_stock_change = $object->hasProductsOrServices(1); } - + if ($qualified_for_stock_change) { $langs->load("stocks"); @@ -3517,7 +3517,7 @@ elseif ($id > 0 || ! empty($ref)) } else { $qualified_for_stock_change = $object->hasProductsOrServices(1); } - + if ($qualified_for_stock_change) { $langs->load("stocks"); @@ -3562,7 +3562,7 @@ elseif ($id > 0 || ! empty($ref)) } else { $qualified_for_stock_change = $object->hasProductsOrServices(1); } - + if ($qualified_for_stock_change) { $langs->load("stocks"); From 83c369cc0f1f9b0fe50dfdea91e8e719df7d04d4 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 20 May 2019 13:02:33 +0200 Subject: [PATCH 021/365] Add $array_to_check for property in invoice instead of thirdparty --- htdocs/compta/facture/card.php | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/htdocs/compta/facture/card.php b/htdocs/compta/facture/card.php index 329ecbbedcc..6cef63af90a 100644 --- a/htdocs/compta/facture/card.php +++ b/htdocs/compta/facture/card.php @@ -477,7 +477,7 @@ if (empty($reshook)) // Check parameters - // Check for mandatory fields defined into setup + // Check for mandatory fields in thirdparty (defined into setup) $array_to_check=array('IDPROF1','IDPROF2','IDPROF3','IDPROF4','IDPROF5','IDPROF6','EMAIL'); foreach($array_to_check as $key) { @@ -518,6 +518,23 @@ if (empty($reshook)) } } + // Check for mandatory fields in invoice + $array_to_check=array('REF_CUSTOMER'=>'RefCustomer'); + foreach($array_to_check as $key => $val) + { + $keymin=strtolower($key); + $vallabel=$object->$keymin; + + // Check for mandatory + $keymandatory ='INVOICE_'.$key.'_MANDATORY_FOR_VALIDATION'; + if (! $vallabel && ! empty($conf->global->$keymandatory)) + { + $langs->load("errors"); + $error++; + setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv($val)), null, 'errors'); + } + } + // Check for warehouse if ($object->type != Facture::TYPE_DEPOSIT && ! empty($conf->global->STOCK_CALCULATE_ON_BILL)) { From c3732f2b7a06ffd3aae656633355f8d0c9b0a593 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 20 May 2019 14:41:47 +0200 Subject: [PATCH 022/365] Fix edition of margins in recurring invoices --- htdocs/compta/facture/card.php | 6 +- .../facture/class/facture-rec.class.php | 47 ++-- htdocs/compta/facture/fiche-rec.php | 254 +++++++++--------- htdocs/core/class/commonobject.class.php | 2 +- htdocs/core/tpl/objectline_create.tpl.php | 4 +- htdocs/core/tpl/objectline_edit.tpl.php | 9 +- htdocs/core/tpl/objectline_view.tpl.php | 106 ++++---- 7 files changed, 224 insertions(+), 204 deletions(-) diff --git a/htdocs/compta/facture/card.php b/htdocs/compta/facture/card.php index 6cef63af90a..894e14eefa7 100644 --- a/htdocs/compta/facture/card.php +++ b/htdocs/compta/facture/card.php @@ -1943,7 +1943,7 @@ if (empty($reshook)) if ($result > 0) { - // Define output language + // Define output language and generate document if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) { $outputlangs = $langs; @@ -2055,7 +2055,7 @@ if (empty($reshook)) $line->fetch(GETPOST('lineid')); $percent = $line->get_prev_progress($object->id); - if($object->type == Facture::TYPE_CREDIT_NOTE && $object->situation_cycle_ref>0) + if ($object->type == Facture::TYPE_CREDIT_NOTE && $object->situation_cycle_ref>0) { // in case of situation credit note if(GETPOST('progress') >= 0 ) @@ -2147,7 +2147,7 @@ if (empty($reshook)) } } -$result = $object->updateline(GETPOST('lineid'), $description, $pu_ht, $qty, GETPOST('remise_percent'), + $result = $object->updateline(GETPOST('lineid'), $description, $pu_ht, $qty, GETPOST('remise_percent'), $date_start, $date_end, $vat_rate, $localtax1_rate, $localtax2_rate, 'HT', $info_bits, $type, GETPOST('fk_parent_line'), 0, $fournprice, $buyingprice, $label, $special_code, $array_options, GETPOST('progress'), $_POST['units'], $pu_ht_devise); diff --git a/htdocs/compta/facture/class/facture-rec.class.php b/htdocs/compta/facture/class/facture-rec.class.php index 89f324d2450..c1cc9df9e5c 100644 --- a/htdocs/compta/facture/class/facture-rec.class.php +++ b/htdocs/compta/facture/class/facture-rec.class.php @@ -527,7 +527,7 @@ class FactureRec extends CommonInvoice $sql = 'SELECT l.rowid, l.fk_product, l.product_type, l.label as custom_label, l.description, l.product_type, l.price, l.qty, l.vat_src_code, l.tva_tx, '; $sql.= ' l.localtax1_tx, l.localtax2_tx, l.localtax1_type, l.localtax2_type, l.remise, l.remise_percent, l.subprice,'; - $sql.= ' l.info_bits, l.date_start_fill, l.date_end_fill, l.total_ht, l.total_tva, l.total_ttc,'; + $sql.= ' l.info_bits, l.date_start_fill, l.date_end_fill, l.total_ht, l.total_tva, l.total_ttc, l.fk_product_fournisseur_price as fk_fournprice, l.buy_price_ht as pa_ht,'; //$sql.= ' l.situation_percent, l.fk_prev_id,'; //$sql.= ' l.localtax1_tx, l.localtax2_tx, l.localtax1_type, l.localtax2_type, l.remise_percent, l.fk_remise_except, l.subprice,'; $sql.= ' l.rang, l.special_code,'; @@ -583,6 +583,11 @@ class FactureRec extends CommonInvoice $line->total_tva = $objp->total_tva; $line->total_ttc = $objp->total_ttc; $line->code_ventilation = $objp->fk_code_ventilation; + $line->fk_fournprice = $objp->fk_fournprice; + $marginInfos = getMarginInfos($objp->subprice, $objp->remise_percent, $objp->tva_tx, $objp->localtax1_tx, $objp->localtax2_tx, $line->fk_fournprice, $objp->pa_ht); + $line->pa_ht = $marginInfos[0]; + $line->marge_tx = $marginInfos[1]; + $line->marque_tx = $marginInfos[2]; $line->rang = $objp->rang; $line->special_code = $objp->special_code; $line->fk_unit = $objp->fk_unit; @@ -695,15 +700,17 @@ class FactureRec extends CommonInvoice * @param double $pu_ht_devise Unit price in currency * @param int $date_start_fill 1=Flag to fill start date when generating invoice * @param int $date_end_fill 1=Flag to fill end date when generating invoice + * @param int $fk_fournprice Supplier price id (to calculate margin) or '' + * @param int $pa_ht Buying price of line (to calculate margin) or '' * @return int <0 if KO, Id of line if OK */ - public function addline($desc, $pu_ht, $qty, $txtva, $txlocaltax1 = 0, $txlocaltax2 = 0, $fk_product = 0, $remise_percent = 0, $price_base_type = 'HT', $info_bits = 0, $fk_remise_except = '', $pu_ttc = 0, $type = 0, $rang = -1, $special_code = 0, $label = '', $fk_unit = null, $pu_ht_devise = 0, $date_start_fill = 0, $date_end_fill = 0) + public function addline($desc, $pu_ht, $qty, $txtva, $txlocaltax1 = 0, $txlocaltax2 = 0, $fk_product = 0, $remise_percent = 0, $price_base_type = 'HT', $info_bits = 0, $fk_remise_except = '', $pu_ttc = 0, $type = 0, $rang = -1, $special_code = 0, $label = '', $fk_unit = null, $pu_ht_devise = 0, $date_start_fill = 0, $date_end_fill = 0, $fk_fournprice = null, $pa_ht = 0) { global $mysoc; $facid=$this->id; - dol_syslog(get_class($this)."::addline facid=$facid,desc=$desc,pu_ht=$pu_ht,qty=$qty,txtva=$txtva,txlocaltax1=$txlocaltax1,txlocaltax2=$txlocaltax2,fk_product=$fk_product,remise_percent=$remise_percent,info_bits=$info_bits,fk_remise_except=$fk_remise_except,price_base_type=$price_base_type,pu_ttc=$pu_ttc,type=$type,fk_unit=$fk_unit,pu_ht_devise=$pu_ht_devise,date_start_fill=$date_start_fill,date_end_fill=$date_end_fill", LOG_DEBUG); + dol_syslog(get_class($this)."::addline facid=$facid,desc=$desc,pu_ht=$pu_ht,qty=$qty,txtva=$txtva,txlocaltax1=$txlocaltax1,txlocaltax2=$txlocaltax2,fk_product=$fk_product,remise_percent=$remise_percent,info_bits=$info_bits,fk_remise_except=$fk_remise_except,price_base_type=$price_base_type,pu_ttc=$pu_ttc,type=$type,fk_unit=$fk_unit,pu_ht_devise=$pu_ht_devise,date_start_fill=$date_start_fill,date_end_fill=$date_end_fill,pa_ht=$pa_ht", LOG_DEBUG); include_once DOL_DOCUMENT_ROOT.'/core/lib/price.lib.php'; // Check parameters @@ -795,6 +802,8 @@ class FactureRec extends CommonInvoice $sql.= ", total_ttc"; $sql.= ", date_start_fill"; $sql.= ", date_end_fill"; + $sql.= ", fk_product_fournisseur_price"; + $sql.= ", buy_price_ht"; $sql.= ", info_bits"; $sql.= ", rang"; $sql.= ", special_code"; @@ -824,6 +833,8 @@ class FactureRec extends CommonInvoice $sql.= ", ".price2num($total_ttc); $sql.= ", ".(int) $date_start_fill; $sql.= ", ".(int) $date_end_fill; + $sql.= ", ".($fk_fournprice > 0 ? $fk_fournprice : 'null'); + $sql.= ", ".($pa_ht ? price2num($pa_ht) : 0); $sql.= ", ".$info_bits; $sql.= ", ".$rang; $sql.= ", ".$special_code; @@ -877,9 +888,11 @@ class FactureRec extends CommonInvoice * @param int $notrigger disable line update trigger * @param int $date_start_fill 1=Flag to fill start date when generating invoice * @param int $date_end_fill 1=Flag to fill end date when generating invoice + * @param int $fk_fournprice Id of origin supplier price + * @param int $pa_ht Price (without tax) of product when it was bought * @return int <0 if KO, Id of line if OK */ - public function updateline($rowid, $desc, $pu_ht, $qty, $txtva, $txlocaltax1 = 0, $txlocaltax2 = 0, $fk_product = 0, $remise_percent = 0, $price_base_type = 'HT', $info_bits = 0, $fk_remise_except = '', $pu_ttc = 0, $type = 0, $rang = -1, $special_code = 0, $label = '', $fk_unit = null, $pu_ht_devise = 0, $notrigger = 0, $date_start_fill = 0, $date_end_fill = 0) + public function updateline($rowid, $desc, $pu_ht, $qty, $txtva, $txlocaltax1 = 0, $txlocaltax2 = 0, $fk_product = 0, $remise_percent = 0, $price_base_type = 'HT', $info_bits = 0, $fk_remise_except = '', $pu_ttc = 0, $type = 0, $rang = -1, $special_code = 0, $label = '', $fk_unit = null, $pu_ht_devise = 0, $notrigger = 0, $date_start_fill = 0, $date_end_fill = 0, $fk_fournprice = null, $pa_ht = 0) { global $mysoc; @@ -894,16 +907,6 @@ class FactureRec extends CommonInvoice // Check parameters if ($type < 0) return -1; - $localtaxes_type=getLocalTaxesFromRate($txtva, 0, $this->thirdparty, $mysoc); - - // Clean vat code - $vat_src_code=''; - if (preg_match('/\((.*)\)/', $txtva, $reg)) - { - $vat_src_code = $reg[1]; - $txtva = preg_replace('/\s*\(.*\)/', '', $txtva); // Remove code into vatrate. - } - if ($this->brouillon) { // Clean parameters @@ -932,10 +935,20 @@ class FactureRec extends CommonInvoice $pu=$pu_ttc; } - // Calcul du total TTC et de la TVA pour la ligne a partir de - // qty, pu, remise_percent et txtva + // Calculate total with, without tax and tax from qty, pu, remise_percent and txtva // TRES IMPORTANT: C'est au moment de l'insertion ligne qu'on doit stocker // la part ht, tva et ttc, et ce au niveau de la ligne qui a son propre taux tva. + + $localtaxes_type=getLocalTaxesFromRate($txtva, 0, $this->thirdparty, $mysoc); + + // Clean vat code + $vat_src_code=''; + if (preg_match('/\((.*)\)/', $txtva, $reg)) + { + $vat_src_code = $reg[1]; + $txtva = preg_replace('/\s*\(.*\)/', '', $txtva); // Remove code into vatrate. + } + $tabprice=calcul_price_total($qty, $pu, $remise_percent, $txtva, $txlocaltax1, $txlocaltax2, 0, $price_base_type, $info_bits, $type, $mysoc, $localtaxes_type, 100, $this->multicurrency_tx, $pu_ht_devise); $total_ht = $tabprice[0]; @@ -984,6 +997,8 @@ class FactureRec extends CommonInvoice $sql.= ", total_ttc='".price2num($total_ttc)."'"; $sql.= ", date_start_fill=".((int) $date_start_fill); $sql.= ", date_end_fill=".((int) $date_end_fill); + $sql.= ", fk_product_fournisseur_price=".($fk_fournprice > 0 ? $fk_fournprice : 'null'); + $sql.= ", buy_price_ht=".($pa_ht ? price2num($pa_ht) : 0); $sql.= ", info_bits=".$info_bits; $sql.= ", rang=".$rang; $sql.= ", special_code=".$special_code; diff --git a/htdocs/compta/facture/fiche-rec.php b/htdocs/compta/facture/fiche-rec.php index fa8af87ac29..e490fa57520 100644 --- a/htdocs/compta/facture/fiche-rec.php +++ b/htdocs/compta/facture/fiche-rec.php @@ -100,6 +100,20 @@ $permissionnote = $user->rights->facture->creer; // Used by the include of actio $permissiondellink=$user->rights->facture->creer; // Used by the include of actions_dellink.inc.php $permissiontoedit = $user->rights->facture->creer; // Used by the include of actions_lineupdonw.inc.php +$usercanread = $user->rights->facture->lire; +$usercancreate = $user->rights->facture->creer; +$usercanissuepayment = $user->rights->facture->paiement; +$usercandelete = $user->rights->facture->supprimer; +$usercanvalidate = ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && $usercancreate) || (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->facture->invoice_advance->validate))); +$usercansend = (empty($conf->global->MAIN_USE_ADVANCED_PERMS) || $user->rights->facture->invoice_advance->send); +$usercanreopen = (empty($conf->global->MAIN_USE_ADVANCED_PERMS) || $user->rights->facture->invoice_advance->reopen); +$usercanunvalidate = ((empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($usercancreate)) || (! empty($conf->global->MAIN_USE_ADVANCED_PERMS) && ! empty($user->rights->facture->invoice_advance->unvalidate))); + +$usercanproductignorepricemin = ((!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && empty($user->rights->produit->ignore_price_min_advance)) || empty($conf->global->MAIN_USE_ADVANCED_PERMS)); +$usercancreatemargin = $user->rights->margins->creer; +$usercanreadallmargin = $user->rights->margins->liretous; +$usercancreatewithdrarequest = $user->rights->prelevement->bons->creer; + $now = dol_now(); @@ -435,10 +449,12 @@ if (empty($reshook)) $predef=''; $product_desc=(GETPOST('dp_desc')?GETPOST('dp_desc'):''); $price_ht = GETPOST('price_ht'); - if (GETPOST('prod_entry_mode') == 'free') + $price_ht_devise = GETPOST('multicurrency_price_ht'); + $prod_entry_mode = GETPOST('prod_entry_mode', 'alpha'); + if ($prod_entry_mode == 'free') { $idprod=0; - $tva_tx = (GETPOST('tva_tx') ? GETPOST('tva_tx') : 0); + $tva_tx = (GETPOST('tva_tx', 'alpha') ? GETPOST('tva_tx', 'alpha') : 0); } else { @@ -466,11 +482,11 @@ if (empty($reshook)) setEventMessages($langs->trans('ErrorBothFieldCantBeNegative', $langs->transnoentitiesnoconv('UnitPriceHT'), $langs->transnoentitiesnoconv('Qty')), null, 'errors'); $error ++; } - if (GETPOST('prod_entry_mode') == 'free' && empty($idprod) && GETPOST('type') < 0) { + if ($prod_entry_mode == 'free' && empty($idprod) && GETPOST('type') < 0) { setEventMessages($langs->trans('ErrorFieldRequired', $langs->transnoentitiesnoconv('Type')), null, 'errors'); $error ++; } - if (GETPOST('prod_entry_mode') == 'free' && empty($idprod) && (! ($price_ht >= 0) || $price_ht == '')) // Unit price can be 0 but not '' + if ($prod_entry_mode == 'free' && empty($idprod) && (! ($price_ht >= 0) || $price_ht == '')) // Unit price can be 0 but not '' { setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("UnitPriceHT")), null, 'errors'); $error ++; @@ -479,7 +495,7 @@ if (empty($reshook)) setEventMessages($langs->trans('ErrorFieldRequired', $langs->transnoentitiesnoconv('Qty')), null, 'errors'); $error ++; } - if (GETPOST('prod_entry_mode') == 'free' && empty($idprod) && empty($product_desc)) { + if ($prod_entry_mode == 'free' && empty($idprod) && empty($product_desc)) { setEventMessages($langs->trans('ErrorFieldRequired', $langs->transnoentitiesnoconv('Description')), null, 'errors'); $error ++; } @@ -491,128 +507,97 @@ if (empty($reshook)) if (! $error && ($qty >= 0) && (! empty($product_desc) || ! empty($idprod))) { - $ret = $object->fetch($id); - if ($ret < 0) { - dol_print_error($db, $object->error); - exit(); - } - $ret = $object->fetch_thirdparty(); - - // Clean parameters - $date_start = dol_mktime(GETPOST('date_start' . $predef . 'hour'), GETPOST('date_start' . $predef . 'min'), GETPOST('date_start' . $predef . 'sec'), GETPOST('date_start' . $predef . 'month'), GETPOST('date_start' . $predef . 'day'), GETPOST('date_start' . $predef . 'year')); - $date_end = dol_mktime(GETPOST('date_end' . $predef . 'hour'), GETPOST('date_end' . $predef . 'min'), GETPOST('date_end' . $predef . 'sec'), GETPOST('date_end' . $predef . 'month'), GETPOST('date_end' . $predef . 'day'), GETPOST('date_end' . $predef . 'year')); - $price_base_type = (GETPOST('price_base_type', 'alpha') ? GETPOST('price_base_type', 'alpha') : 'HT'); - - // Define special_code for special lines - $special_code = 0; - // if (empty($_POST['qty'])) $special_code=3; // Options should not exists on invoices - - // Ecrase $pu par celui du produit - // Ecrase $desc par celui du produit - // Ecrase $tva_tx par celui du produit - // Ecrase $base_price_type par celui du produit - // Replaces $fk_unit with the product's - if (! empty($idprod)) - { - $prod = new Product($db); - $prod->fetch($idprod); - - $label = ((GETPOST('product_label') && GETPOST('product_label') != $prod->label) ? GETPOST('product_label') : ''); - - // Update if prices fields are defined - $tva_tx = get_default_tva($mysoc, $object->thirdparty, $prod->id); - $tva_npr = get_default_npr($mysoc, $object->thirdparty, $prod->id); - if (empty($tva_tx)) $tva_npr=0; - - $pu_ht = $prod->price; - $pu_ttc = $prod->price_ttc; - $price_min = $prod->price_min; - $price_base_type = $prod->price_base_type; - - // We define price for product - if (! empty($conf->global->PRODUIT_MULTIPRICES) && ! empty($object->thirdparty->price_level)) - { - $pu_ht = $prod->multiprices[$object->thirdparty->price_level]; - $pu_ttc = $prod->multiprices_ttc[$object->thirdparty->price_level]; - $price_min = $prod->multiprices_min[$object->thirdparty->price_level]; - $price_base_type = $prod->multiprices_base_type[$object->thirdparty->price_level]; - if (! empty($conf->global->PRODUIT_MULTIPRICES_USE_VAT_PER_LEVEL)) // using this option is a bug. kept for backward compatibility - { - if (isset($prod->multiprices_tva_tx[$object->thirdparty->price_level])) $tva_tx=$prod->multiprices_tva_tx[$object->thirdparty->price_level]; - if (isset($prod->multiprices_recuperableonly[$object->thirdparty->price_level])) $tva_npr=$prod->multiprices_recuperableonly[$object->thirdparty->price_level]; - if (empty($tva_tx)) $tva_npr=0; - } + $ret = $object->fetch($id); + if ($ret < 0) { + dol_print_error($db, $object->error); + exit(); } - elseif (! empty($conf->global->PRODUIT_CUSTOMER_PRICES)) + $ret = $object->fetch_thirdparty(); + + // Clean parameters + $date_start = dol_mktime(GETPOST('date_start' . $predef . 'hour'), GETPOST('date_start' . $predef . 'min'), GETPOST('date_start' . $predef . 'sec'), GETPOST('date_start' . $predef . 'month'), GETPOST('date_start' . $predef . 'day'), GETPOST('date_start' . $predef . 'year')); + $date_end = dol_mktime(GETPOST('date_end' . $predef . 'hour'), GETPOST('date_end' . $predef . 'min'), GETPOST('date_end' . $predef . 'sec'), GETPOST('date_end' . $predef . 'month'), GETPOST('date_end' . $predef . 'day'), GETPOST('date_end' . $predef . 'year')); + $price_base_type = (GETPOST('price_base_type', 'alpha') ? GETPOST('price_base_type', 'alpha') : 'HT'); + + // Define special_code for special lines + $special_code = 0; + // if (empty($_POST['qty'])) $special_code=3; // Options should not exists on invoices + + // Ecrase $pu par celui du produit + // Ecrase $desc par celui du produit + // Ecrase $tva_tx par celui du produit + // Ecrase $base_price_type par celui du produit + // Replaces $fk_unit with the product's + if (! empty($idprod)) { - include_once DOL_DOCUMENT_ROOT . '/product/class/productcustomerprice.class.php'; + $prod = new Product($db); + $prod->fetch($idprod); - $prodcustprice = new Productcustomerprice($db); + $label = ((GETPOST('product_label') && GETPOST('product_label') != $prod->label) ? GETPOST('product_label') : ''); - $filter = array('t.fk_product' => $prod->id,'t.fk_soc' => $object->thirdparty->id); + // Update if prices fields are defined + $tva_tx = get_default_tva($mysoc, $object->thirdparty, $prod->id); + $tva_npr = get_default_npr($mysoc, $object->thirdparty, $prod->id); + if (empty($tva_tx)) $tva_npr=0; - $result = $prodcustprice->fetch_all('', '', 0, 0, $filter); - if ($result) + // Search the correct price into loaded array product_price_by_qty using id of array retrieved into POST['pqp']. + $pqp = (GETPOST('pbq', 'int') ? GETPOST('pbq', 'int') : 0); + + $datapriceofproduct = $prod->getSellPrice($mysoc, $object->thirdparty, $pqp); + + $pu_ht = $datapriceofproduct['pu_ht']; + $pu_ttc = $datapriceofproduct['pu_ttc']; + $price_min = $datapriceofproduct['price_min']; + $price_base_type = $datapriceofproduct['price_base_type']; + $tva_tx = $datapriceofproduct['tva_tx']; + $tva_npr = $datapriceofproduct['tva_npr']; + + $tmpvat = price2num(preg_replace('/\s*\(.*\)/', '', $tva_tx)); + $tmpprodvat = price2num(preg_replace('/\s*\(.*\)/', '', $prod->tva_tx)); + + // if price ht was forced (ie: from gui when calculated by margin rate and cost price). TODO Why this ? + if (! empty($price_ht)) { - if (count($prodcustprice->lines) > 0) + $pu_ht = price2num($price_ht, 'MU'); + $pu_ttc = price2num($pu_ht * (1 + ($tmpvat / 100)), 'MU'); + } + // On reevalue prix selon taux tva car taux tva transaction peut etre different + // de ceux du produit par defaut (par exemple si pays different entre vendeur et acheteur). + elseif ($tmpvat != $tmpprodvat) + { + if ($price_base_type != 'HT') { - $pu_ht = price($prodcustprice->lines[0]->price); - $pu_ttc = price($prodcustprice->lines[0]->price_ttc); - $price_base_type = $prodcustprice->lines[0]->price_base_type; - $tva_tx = $prodcustprice->lines[0]->tva_tx; - if ($prodcustprice->lines[0]->default_vat_code && ! preg_match('/\(.*\)/', $tva_tx)) $tva_tx.= ' ('.$prodcustprice->lines[0]->default_vat_code.')'; - $tva_npr = $prodcustprice->lines[0]->recuperableonly; - if (empty($tva_tx)) $tva_npr=0; + $pu_ht = price2num($pu_ttc / (1 + ($tmpvat / 100)), 'MU'); + } + else + { + $pu_ttc = price2num($pu_ht * (1 + ($tmpvat / 100)), 'MU'); } } - } - $tmpvat = price2num(preg_replace('/\s*\(.*\)/', '', $tva_tx)); - $tmpprodvat = price2num(preg_replace('/\s*\(.*\)/', '', $prod->tva_tx)); + $desc = ''; - // if price ht was forced (ie: from gui when calculated by margin rate and cost price). TODO Why this ? - if (! empty($price_ht)) - { - $pu_ht = price2num($price_ht, 'MU'); - $pu_ttc = price2num($pu_ht * (1 + ($tmpvat / 100)), 'MU'); - } - // On reevalue prix selon taux tva car taux tva transaction peut etre different - // de ceux du produit par defaut (par exemple si pays different entre vendeur et acheteur). - elseif ($tmpvat != $tmpprodvat) - { - if ($price_base_type != 'HT') + // Define output language + if (! empty($conf->global->MAIN_MULTILANGS) && ! empty($conf->global->PRODUIT_TEXTS_IN_THIRDPARTY_LANGUAGE)) { - $pu_ht = price2num($pu_ttc / (1 + ($tmpvat / 100)), 'MU'); + $outputlangs = $langs; + $newlang = ''; + if (empty($newlang) && GETPOST('lang_id', 'aZ09')) + $newlang = GETPOST('lang_id', 'aZ09'); + if (empty($newlang)) + $newlang = $object->thirdparty->default_lang; + if (! empty($newlang)) + { + $outputlangs = new Translate("", $conf); + $outputlangs->setDefaultLang($newlang); + } + + $desc = (! empty($prod->multilangs [$outputlangs->defaultlang] ["description"])) ? $prod->multilangs [$outputlangs->defaultlang] ["description"] : $prod->description; } else { - $pu_ttc = price2num($pu_ht * (1 + ($tmpvat / 100)), 'MU'); + $desc = $prod->description; } - } - - $desc = ''; - - // Define output language - if (! empty($conf->global->MAIN_MULTILANGS) && ! empty($conf->global->PRODUIT_TEXTS_IN_THIRDPARTY_LANGUAGE)) - { - $outputlangs = $langs; - $newlang = ''; - if (empty($newlang) && GETPOST('lang_id', 'aZ09')) - $newlang = GETPOST('lang_id', 'aZ09'); - if (empty($newlang)) - $newlang = $object->thirdparty->default_lang; - if (! empty($newlang)) - { - $outputlangs = new Translate("", $conf); - $outputlangs->setDefaultLang($newlang); - } - - $desc = (! empty($prod->multilangs [$outputlangs->defaultlang] ["description"])) ? $prod->multilangs [$outputlangs->defaultlang] ["description"] : $prod->description; - } - else - { - $desc = $prod->description; - } $desc = dol_concatdesc($desc, $product_desc); @@ -620,12 +605,33 @@ if (empty($reshook)) if (empty($conf->global->MAIN_PRODUCT_DISABLE_CUSTOMCOUNTRYCODE) && (! empty($prod->customcode) || ! empty($prod->country_code))) { $tmptxt = '('; - if (! empty($prod->customcode)) - $tmptxt .= $langs->transnoentitiesnoconv("CustomCode") . ': ' . $prod->customcode; - if (! empty($prod->customcode) && ! empty($prod->country_code)) - $tmptxt .= ' - '; - if (! empty($prod->country_code)) - $tmptxt .= $langs->transnoentitiesnoconv("CountryOrigin") . ': ' . getCountry($prod->country_code, 0, $db, $langs, 0); + // Define output language + if (! empty($conf->global->MAIN_MULTILANGS) && ! empty($conf->global->PRODUIT_TEXTS_IN_THIRDPARTY_LANGUAGE)) { + $outputlangs = $langs; + $newlang = ''; + if (empty($newlang) && GETPOST('lang_id', 'alpha')) + $newlang = GETPOST('lang_id', 'alpha'); + if (empty($newlang)) + $newlang = $object->thirdparty->default_lang; + if (! empty($newlang)) { + $outputlangs = new Translate("", $conf); + $outputlangs->setDefaultLang($newlang); + $outputlangs->load('products'); + } + if (! empty($prod->customcode)) + $tmptxt .= $outputlangs->transnoentitiesnoconv("CustomCode") . ': ' . $prod->customcode; + if (! empty($prod->customcode) && ! empty($prod->country_code)) + $tmptxt .= ' - '; + if (! empty($prod->country_code)) + $tmptxt .= $outputlangs->transnoentitiesnoconv("CountryOrigin") . ': ' . getCountry($prod->country_code, 0, $db, $outputlangs, 0); + } else { + if (! empty($prod->customcode)) + $tmptxt .= $langs->transnoentitiesnoconv("CustomCode") . ': ' . $prod->customcode; + if (! empty($prod->customcode) && ! empty($prod->country_code)) + $tmptxt .= ' - '; + if (! empty($prod->country_code)) + $tmptxt .= $langs->transnoentitiesnoconv("CountryOrigin") . ': ' . getCountry($prod->country_code, 0, $db, $langs, 0); + } $tmptxt .= ')'; $desc = dol_concatdesc($desc, $tmptxt); } @@ -661,18 +667,18 @@ if (empty($reshook)) if ($tva_npr) $info_bits |= 0x01; - if (((!empty($conf->global->MAIN_USE_ADVANCED_PERMS) && empty($user->rights->produit->ignore_price_min_advance)) || empty($conf->global->MAIN_USE_ADVANCED_PERMS) )&& (! empty($price_min) && (price2num($pu_ht) * (1 - price2num($remise_percent) / 100) < price2num($price_min)))) - { + if ($usercanproductignorepricemin && (! empty($price_min) && (price2num($pu_ht) * (1 - price2num($remise_percent) / 100) < price2num($price_min)))) { $mesg = $langs->trans("CantBeLessThanMinPrice", price(price2num($price_min, 'MU'), 0, $langs, 0, 0, - 1, $conf->currency)); setEventMessages($mesg, null, 'errors'); } else { // Insert line - $result = $object->addline($desc, $pu_ht, $qty, $tva_tx, $localtax1_tx, $localtax2_tx, $idprod, $remise_percent, $price_base_type, $info_bits, '', $pu_ttc, $type, - 1, $special_code, $label, $fk_unit, 0, $date_start_fill, $date_end_fill); + $result = $object->addline($desc, $pu_ht, $qty, $tva_tx, $localtax1_tx, $localtax2_tx, $idprod, $remise_percent, $price_base_type, $info_bits, '', $pu_ttc, $type, - 1, $special_code, $label, $fk_unit, 0, $date_start_fill, $date_end_fill, $fournprice, $buyingprice); if ($result > 0) { + // Define output language and generate document /*if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) { // Define output language @@ -741,7 +747,7 @@ if (empty($reshook)) } } - elseif ($action == 'updateline' && $user->rights->facture->creer && ! GETPOST('cancel', 'alpha')) + elseif ($action == 'updateline' && $usercancreate && ! GETPOST('cancel', 'alpha')) { if (! $object->fetch($id) > 0) dol_print_error($db); $object->fetch_thirdparty(); @@ -855,7 +861,7 @@ if (empty($reshook)) // Update line if (! $error) { -$result = $object->updateline( + $result = $object->updateline( GETPOST('lineid'), $description, $pu_ht, @@ -877,7 +883,9 @@ $result = $object->updateline( $pu_ht_devise, 0, $date_start_fill, - $date_end_fill + $date_end_fill, + $fournprice, + $buyingprice ); if ($result >= 0) diff --git a/htdocs/core/class/commonobject.class.php b/htdocs/core/class/commonobject.class.php index a32c55a13e8..ab29a100894 100644 --- a/htdocs/core/class/commonobject.class.php +++ b/htdocs/core/class/commonobject.class.php @@ -3913,7 +3913,7 @@ abstract class CommonObject // Define usemargins $usemargins=0; - if (! empty($conf->margin->enabled) && ! empty($this->element) && in_array($this->element, array('facture','propal','commande'))) $usemargins=1; + if (! empty($conf->margin->enabled) && ! empty($this->element) && in_array($this->element, array('facture','facturerec','propal','commande'))) $usemargins=1; $num = count($this->lines); diff --git a/htdocs/core/tpl/objectline_create.tpl.php b/htdocs/core/tpl/objectline_create.tpl.php index 4a4febe65d3..bf46ecb9890 100644 --- a/htdocs/core/tpl/objectline_create.tpl.php +++ b/htdocs/core/tpl/objectline_create.tpl.php @@ -40,7 +40,7 @@ if (empty($object) || ! is_object($object)) { $usemargins=0; -if (! empty($conf->margin->enabled) && ! empty($object->element) && in_array($object->element, array('facture','propal','commande'))) +if (! empty($conf->margin->enabled) && ! empty($object->element) && in_array($object->element, array('facture','facturerec','propal','commande'))) { $usemargins=1; } @@ -55,7 +55,7 @@ if (empty($senderissupplier)) $senderissupplier=0; if (empty($inputalsopricewithtax)) $inputalsopricewithtax=0; -// Define colspan for button Add +// Define colspan for the button 'Add' $colspan = 3; // Columns: total ht + col edit + col delete if (!empty($conf->multicurrency->enabled) && $this->multicurrency_code != $conf->currency) $colspan++;//Add column for Total (currency) if required if (in_array($object->element, array('propal','commande','order','facture','facturerec','invoice','supplier_proposal','order_supplier','invoice_supplier'))) $colspan++; // With this, there is a column move button diff --git a/htdocs/core/tpl/objectline_edit.tpl.php b/htdocs/core/tpl/objectline_edit.tpl.php index f4e5634fbc9..ddb737bbdd6 100644 --- a/htdocs/core/tpl/objectline_edit.tpl.php +++ b/htdocs/core/tpl/objectline_edit.tpl.php @@ -40,7 +40,7 @@ if (empty($object) || ! is_object($object)) $usemargins=0; -if (! empty($conf->margin->enabled) && ! empty($object->element) && in_array($object->element, array('facture','propal','commande'))) $usemargins=1; +if (! empty($conf->margin->enabled) && ! empty($object->element) && in_array($object->element, array('facture','facturerec','propal','commande'))) $usemargins=1; global $forceall, $senderissupplier, $inputalsopricewithtax; if (empty($dateSelector)) $dateSelector=0; @@ -49,11 +49,10 @@ if (empty($senderissupplier)) $senderissupplier=0; if (empty($inputalsopricewithtax)) $inputalsopricewithtax=0; -// Define colspan for button Add +// Define colspan for the button 'Add' $colspan = 3; // Col total ht + col edit + col delete if (! empty($inputalsopricewithtax)) $colspan++; // We add 1 if col total ttc -if (in_array($object->element, array('propal','supplier_proposal','facture','invoice','commande','order','order_supplier','invoice_supplier'))) $colspan++; // With this, there is a column move button -if (empty($user->rights->margins->creer)) $colspan++; +if (in_array($object->element, array('propal','supplier_proposal','facture','facturerec','invoice','commande','order','order_supplier','invoice_supplier'))) $colspan++; // With this, there is a column move button if (!empty($conf->multicurrency->enabled) && $this->multicurrency_code != $conf->currency) $colspan+=2; ?> @@ -252,7 +251,7 @@ $coldisplay=0; } ?> - + - - global->DISPLAY_MARGIN_RATES) && $user->rights->margins->liretous) { ?> - - global->DISPLAY_MARK_RATES) && $user->rights->margins->liretous) {?> - - + if (!empty($user->rights->margins->creer)) { ?> + + + global->DISPLAY_MARGIN_RATES) && $user->rights->margins->liretous) { ?> + + global->DISPLAY_MARK_RATES) && $user->rights->margins->liretous) {?> + + special_code == 3) { ?> @@ -300,51 +298,51 @@ $domData .= ' data-product_type="'.$line->product_type.'"'; statut == 0 && ($object_rights->creer) && $action != 'selectlines' ) { ?> - + + + - - + if ($num > 1 && $conf->browser->layout != 'phone' && ($this->situation_counter == 1 || !$this->situation_cycle_ref) && empty($disablemove)) { ?> + + + + 1 && $conf->browser->layout != 'phone' && ($this->situation_counter == 1 || !$this->situation_cycle_ref) && empty($disablemove)) { ?> - - - - - - - + + - - + + if($action == 'selectlines'){ ?> + From ec922d3d1714c710d1e6a5e390ddb11868002152 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 20 May 2019 14:54:09 +0200 Subject: [PATCH 023/365] Add CONTRACT_HIDE_PLANNED_DATE_ON_PDF and CONTRACT_HIDE_REAL_DATE_ON_PDF --- .../modules/contract/doc/pdf_strato.modules.php | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/htdocs/core/modules/contract/doc/pdf_strato.modules.php b/htdocs/core/modules/contract/doc/pdf_strato.modules.php index 03dae9cbe5e..97fedf45808 100644 --- a/htdocs/core/modules/contract/doc/pdf_strato.modules.php +++ b/htdocs/core/modules/contract/doc/pdf_strato.modules.php @@ -353,11 +353,17 @@ class pdf_strato extends ModelePDFContract $desc=dol_htmlentitiesbr($objectligne->desc, 1); // Desc (not empty for free lines) $txt=''; $txt.=$outputlangs->transnoentities("Quantity").' : '.$objectligne->qty.' - '.$outputlangs->transnoentities("UnitPrice").' : '.price($objectligne->subprice).''; // Desc (not empty for free lines) - $txt.='
'; - $txt.=$outputlangs->transnoentities("DateStartPlannedShort")." : ".$datei." - ".$outputlangs->transnoentities("DateEndPlanned")." : ".$datee.''; - $txt.='
'; - $txt.=$outputlangs->transnoentities("DateStartRealShort")." : ".$daters.''; - if ($objectligne->date_cloture) $txt.=" - ".$outputlangs->transnoentities("DateEndRealShort")." : ''".$datere.''; + if (empty($conf->global->CONTRACT_HIDE_PLANNED_DATE_ON_PDF)) + { + $txt.='
'; + $txt.=$outputlangs->transnoentities("DateStartPlannedShort")." : ".$datei." - ".$outputlangs->transnoentities("DateEndPlanned")." : ".$datee.''; + } + if (empty($conf->global->CONTRACT_HIDE_REAL_DATE_ON_PDF)) + { + $txt.='
'; + $txt.=$outputlangs->transnoentities("DateStartRealShort")." : ".$daters.''; + if ($objectligne->date_cloture) $txt.=" - ".$outputlangs->transnoentities("DateEndRealShort")." : ''".$datere.''; + } $pdf->startTransaction(); $pdf->writeHTMLCell(0, 0, $curX, $curY, dol_concatdesc($txtpredefinedservice, dol_concatdesc($txt, $desc)), 0, 1, 0); From 321544b3fae3aa9bff703cb761166c5c39238682 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 20 May 2019 15:25:39 +0200 Subject: [PATCH 024/365] Fix phpcs --- htdocs/compta/facture/fiche-rec.php | 401 ++++++++++++++++++---------- 1 file changed, 264 insertions(+), 137 deletions(-) diff --git a/htdocs/compta/facture/fiche-rec.php b/htdocs/compta/facture/fiche-rec.php index e490fa57520..867b4e8df30 100644 --- a/htdocs/compta/facture/fiche-rec.php +++ b/htdocs/compta/facture/fiche-rec.php @@ -281,6 +281,141 @@ if (empty($reshook)) // Set mode elseif ($action == 'setmode' && $user->rights->facture->creer) { + // Add custom code and origin country into description + if (empty($conf->global->MAIN_PRODUCT_DISABLE_CUSTOMCOUNTRYCODE) && (! empty($prod->customcode) || ! empty($prod->country_code))) + { + $tmptxt = '('; + // Define output language + if (! empty($conf->global->MAIN_MULTILANGS) && ! empty($conf->global->PRODUIT_TEXTS_IN_THIRDPARTY_LANGUAGE)) { + $outputlangs = $langs; + $newlang = ''; + if (empty($newlang) && GETPOST('lang_id', 'alpha')) $newlang = GETPOST('lang_id', 'alpha'); + if (empty($newlang)) $newlang = $object->thirdparty->default_lang; + if (! empty($newlang)) { + $outputlangs = new Translate("", $conf); + $outputlangs->setDefaultLang($newlang); + $outputlangs->load('products'); + } + if (! empty($prod->customcode)) $tmptxt .= $outputlangs->transnoentitiesnoconv("CustomCode") . ': ' . $prod->customcode; + if (! empty($prod->customcode) && ! empty($prod->country_code)) $tmptxt .= ' - '; + if (! empty($prod->country_code)) $tmptxt .= $outputlangs->transnoentitiesnoconv("CountryOrigin") . ': ' . getCountry($prod->country_code, 0, $db, $outputlangs, 0); + } else { + if (! empty($prod->customcode)) $tmptxt .= $langs->transnoentitiesnoconv("CustomCode") . ': ' . $prod->customcode; + if (! empty($prod->customcode) && ! empty($prod->country_code)) $tmptxt .= ' - '; + if (! empty($prod->country_code)) $tmptxt .= $langs->transnoentitiesnoconv("CountryOrigin") . ': ' . getCountry($prod->country_code, 0, $db, $langs, 0); + } + $tmptxt .= ')'; + $desc = dol_concatdesc($desc, $tmptxt); + } + + $type = $prod->type; + $fk_unit = $prod->fk_unit; + } + else + { + $pu_ht = price2num($price_ht, 'MU'); + $pu_ttc = price2num(GETPOST('price_ttc'), 'MU'); + $tva_npr = (preg_match('/\*/', $tva_tx) ? 1 : 0); + $tva_tx = str_replace('*', '', $tva_tx); + if (empty($tva_tx)) $tva_npr=0; + $label = (GETPOST('product_label') ? GETPOST('product_label') : ''); + $desc = $product_desc; + $type = GETPOST('type'); + $fk_unit= GETPOST('units', 'alpha'); + } + + $date_start_fill = GETPOST('date_start_fill', 'int'); + $date_end_fill = GETPOST('date_end_fill', 'int'); + + // Margin + $fournprice = price2num(GETPOST('fournprice' . $predef) ? GETPOST('fournprice' . $predef) : ''); + $buyingprice = price2num(GETPOST('buying_price' . $predef) != '' ? GETPOST('buying_price' . $predef) : ''); // If buying_price is '0', we must keep this value + + // Local Taxes + $localtax1_tx = get_localtax($tva_tx, 1, $object->thirdparty, $mysoc, $tva_npr); + $localtax2_tx = get_localtax($tva_tx, 2, $object->thirdparty, $mysoc, $tva_npr); + + $info_bits = 0; + if ($tva_npr) + $info_bits |= 0x01; + + if ($usercanproductignorepricemin && (! empty($price_min) && (price2num($pu_ht) * (1 - price2num($remise_percent) / 100) < price2num($price_min)))) { + $mesg = $langs->trans("CantBeLessThanMinPrice", price(price2num($price_min, 'MU'), 0, $langs, 0, 0, - 1, $conf->currency)); + setEventMessages($mesg, null, 'errors'); + } + else + { + // Insert line + $result = $object->addline($desc, $pu_ht, $qty, $tva_tx, $localtax1_tx, $localtax2_tx, $idprod, $remise_percent, $price_base_type, $info_bits, '', $pu_ttc, $type, - 1, $special_code, $label, $fk_unit, 0, $date_start_fill, $date_end_fill, $fournprice, $buyingprice); + + if ($result > 0) + { + // Define output language and generate document + /*if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) + { + // Define output language + $outputlangs = $langs; + $newlang = ''; + if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id','aZ09')) $newlang = GETPOST('lang_id','aZ09'); + if ($conf->global->MAIN_MULTILANGS && empty($newlang)) $newlang = $object->thirdparty->default_lang; + if (! empty($newlang)) { + $outputlangs = new Translate("", $conf); + $outputlangs->setDefaultLang($newlang); + } + $model=$object->modelpdf; + $ret = $object->fetch($id); // Reload to get new records + + $result = $object->generateDocument($model, $outputlangs, $hidedetails, $hidedesc, $hideref); + if ($result < 0) setEventMessages($object->error, $object->errors, 'errors'); + }*/ + $object->fetch($object->id); // Reload lines + + unset($_POST['prod_entry_mode']); + + unset($_POST['qty']); + unset($_POST['type']); + unset($_POST['remise_percent']); + unset($_POST['price_ht']); + unset($_POST['multicurrency_price_ht']); + unset($_POST['price_ttc']); + unset($_POST['tva_tx']); + unset($_POST['product_ref']); + unset($_POST['product_label']); + unset($_POST['product_desc']); + unset($_POST['fournprice']); + unset($_POST['buying_price']); + unset($_POST['np_marginRate']); + unset($_POST['np_markRate']); + unset($_POST['dp_desc']); + unset($_POST['idprod']); + unset($_POST['units']); + + unset($_POST['date_starthour']); + unset($_POST['date_startmin']); + unset($_POST['date_startsec']); + unset($_POST['date_startday']); + unset($_POST['date_startmonth']); + unset($_POST['date_startyear']); + unset($_POST['date_endhour']); + unset($_POST['date_endmin']); + unset($_POST['date_endsec']); + unset($_POST['date_endday']); + unset($_POST['date_endmonth']); + unset($_POST['date_endyear']); + + unset($_POST['date_start_fill']); + unset($_POST['date_end_fill']); + + unset($_POST['situations']); + unset($_POST['progress']); + } + else + { + setEventMessages($object->error, $object->errors, 'errors'); + } + + $action = ''; + } $result=$object->setPaymentMethods(GETPOST('mode_reglement_id', 'int')); } // Set project @@ -599,151 +734,143 @@ if (empty($reshook)) $desc = $prod->description; } - $desc = dol_concatdesc($desc, $product_desc); + $desc = dol_concatdesc($desc, $product_desc); - // Add custom code and origin country into description - if (empty($conf->global->MAIN_PRODUCT_DISABLE_CUSTOMCOUNTRYCODE) && (! empty($prod->customcode) || ! empty($prod->country_code))) - { - $tmptxt = '('; - // Define output language - if (! empty($conf->global->MAIN_MULTILANGS) && ! empty($conf->global->PRODUIT_TEXTS_IN_THIRDPARTY_LANGUAGE)) { - $outputlangs = $langs; - $newlang = ''; - if (empty($newlang) && GETPOST('lang_id', 'alpha')) - $newlang = GETPOST('lang_id', 'alpha'); - if (empty($newlang)) - $newlang = $object->thirdparty->default_lang; - if (! empty($newlang)) { - $outputlangs = new Translate("", $conf); - $outputlangs->setDefaultLang($newlang); - $outputlangs->load('products'); - } - if (! empty($prod->customcode)) - $tmptxt .= $outputlangs->transnoentitiesnoconv("CustomCode") . ': ' . $prod->customcode; - if (! empty($prod->customcode) && ! empty($prod->country_code)) - $tmptxt .= ' - '; - if (! empty($prod->country_code)) - $tmptxt .= $outputlangs->transnoentitiesnoconv("CountryOrigin") . ': ' . getCountry($prod->country_code, 0, $db, $outputlangs, 0); - } else { - if (! empty($prod->customcode)) - $tmptxt .= $langs->transnoentitiesnoconv("CustomCode") . ': ' . $prod->customcode; - if (! empty($prod->customcode) && ! empty($prod->country_code)) - $tmptxt .= ' - '; - if (! empty($prod->country_code)) - $tmptxt .= $langs->transnoentitiesnoconv("CountryOrigin") . ': ' . getCountry($prod->country_code, 0, $db, $langs, 0); + // Add custom code and origin country into description + if (empty($conf->global->MAIN_PRODUCT_DISABLE_CUSTOMCOUNTRYCODE) && (! empty($prod->customcode) || ! empty($prod->country_code))) + { + $tmptxt = '('; + // Define output language + if (! empty($conf->global->MAIN_MULTILANGS) && ! empty($conf->global->PRODUIT_TEXTS_IN_THIRDPARTY_LANGUAGE)) { + $outputlangs = $langs; + $newlang = ''; + if (empty($newlang) && GETPOST('lang_id', 'alpha')) $newlang = GETPOST('lang_id', 'alpha'); + if (empty($newlang)) $newlang = $object->thirdparty->default_lang; + if (! empty($newlang)) { + $outputlangs = new Translate("", $conf); + $outputlangs->setDefaultLang($newlang); + $outputlangs->load('products'); + } + if (! empty($prod->customcode)) $tmptxt .= $outputlangs->transnoentitiesnoconv("CustomCode") . ': ' . $prod->customcode; + if (! empty($prod->customcode) && ! empty($prod->country_code)) $tmptxt .= ' - '; + if (! empty($prod->country_code)) $tmptxt .= $outputlangs->transnoentitiesnoconv("CountryOrigin") . ': ' . getCountry($prod->country_code, 0, $db, $outputlangs, 0); + } else { + if (! empty($prod->customcode)) $tmptxt .= $langs->transnoentitiesnoconv("CustomCode") . ': ' . $prod->customcode; + if (! empty($prod->customcode) && ! empty($prod->country_code)) $tmptxt .= ' - '; + if (! empty($prod->country_code)) $tmptxt .= $langs->transnoentitiesnoconv("CountryOrigin") . ': ' . getCountry($prod->country_code, 0, $db, $langs, 0); + } + $tmptxt .= ')'; + $desc = dol_concatdesc($desc, $tmptxt); } - $tmptxt .= ')'; - $desc = dol_concatdesc($desc, $tmptxt); - } - $type = $prod->type; - $fk_unit = $prod->fk_unit; - } - else - { - $pu_ht = price2num($price_ht, 'MU'); - $pu_ttc = price2num(GETPOST('price_ttc'), 'MU'); - $tva_npr = (preg_match('/\*/', $tva_tx) ? 1 : 0); - $tva_tx = str_replace('*', '', $tva_tx); - if (empty($tva_tx)) $tva_npr=0; - $label = (GETPOST('product_label') ? GETPOST('product_label') : ''); - $desc = $product_desc; - $type = GETPOST('type'); - $fk_unit= GETPOST('units', 'alpha'); - } - - $date_start_fill = GETPOST('date_start_fill', 'int'); - $date_end_fill = GETPOST('date_end_fill', 'int'); - - // Margin - $fournprice = price2num(GETPOST('fournprice' . $predef) ? GETPOST('fournprice' . $predef) : ''); - $buyingprice = price2num(GETPOST('buying_price' . $predef) != '' ? GETPOST('buying_price' . $predef) : ''); // If buying_price is '0', we must keep this value - - // Local Taxes - $localtax1_tx = get_localtax($tva_tx, 1, $object->thirdparty, $mysoc, $tva_npr); - $localtax2_tx = get_localtax($tva_tx, 2, $object->thirdparty, $mysoc, $tva_npr); - - $info_bits = 0; - if ($tva_npr) - $info_bits |= 0x01; - - if ($usercanproductignorepricemin && (! empty($price_min) && (price2num($pu_ht) * (1 - price2num($remise_percent) / 100) < price2num($price_min)))) { - $mesg = $langs->trans("CantBeLessThanMinPrice", price(price2num($price_min, 'MU'), 0, $langs, 0, 0, - 1, $conf->currency)); - setEventMessages($mesg, null, 'errors'); - } - else - { - // Insert line - $result = $object->addline($desc, $pu_ht, $qty, $tva_tx, $localtax1_tx, $localtax2_tx, $idprod, $remise_percent, $price_base_type, $info_bits, '', $pu_ttc, $type, - 1, $special_code, $label, $fk_unit, 0, $date_start_fill, $date_end_fill, $fournprice, $buyingprice); - - if ($result > 0) - { - // Define output language and generate document - /*if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) - { - // Define output language - $outputlangs = $langs; - $newlang = ''; - if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id','aZ09')) $newlang = GETPOST('lang_id','aZ09'); - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) $newlang = $object->thirdparty->default_lang; - if (! empty($newlang)) { - $outputlangs = new Translate("", $conf); - $outputlangs->setDefaultLang($newlang); - } - $model=$object->modelpdf; - $ret = $object->fetch($id); // Reload to get new records - - $result = $object->generateDocument($model, $outputlangs, $hidedetails, $hidedesc, $hideref); - if ($result < 0) setEventMessages($object->error, $object->errors, 'errors'); - }*/ - $object->fetch($object->id); // Reload lines - - unset($_POST['prod_entry_mode']); - - unset($_POST['qty']); - unset($_POST['type']); - unset($_POST['remise_percent']); - unset($_POST['price_ht']); - unset($_POST['multicurrency_price_ht']); - unset($_POST['price_ttc']); - unset($_POST['tva_tx']); - unset($_POST['product_ref']); - unset($_POST['product_label']); - unset($_POST['product_desc']); - unset($_POST['fournprice']); - unset($_POST['buying_price']); - unset($_POST['np_marginRate']); - unset($_POST['np_markRate']); - unset($_POST['dp_desc']); - unset($_POST['idprod']); - unset($_POST['units']); - - unset($_POST['date_starthour']); - unset($_POST['date_startmin']); - unset($_POST['date_startsec']); - unset($_POST['date_startday']); - unset($_POST['date_startmonth']); - unset($_POST['date_startyear']); - unset($_POST['date_endhour']); - unset($_POST['date_endmin']); - unset($_POST['date_endsec']); - unset($_POST['date_endday']); - unset($_POST['date_endmonth']); - unset($_POST['date_endyear']); - - unset($_POST['date_start_fill']); - unset($_POST['date_end_fill']); - - unset($_POST['situations']); - unset($_POST['progress']); + $type = $prod->type; + $fk_unit = $prod->fk_unit; } else { - setEventMessages($object->error, $object->errors, 'errors'); + $pu_ht = price2num($price_ht, 'MU'); + $pu_ttc = price2num(GETPOST('price_ttc'), 'MU'); + $tva_npr = (preg_match('/\*/', $tva_tx) ? 1 : 0); + $tva_tx = str_replace('*', '', $tva_tx); + if (empty($tva_tx)) $tva_npr=0; + $label = (GETPOST('product_label') ? GETPOST('product_label') : ''); + $desc = $product_desc; + $type = GETPOST('type'); + $fk_unit= GETPOST('units', 'alpha'); } - $action = ''; - } + $date_start_fill = GETPOST('date_start_fill', 'int'); + $date_end_fill = GETPOST('date_end_fill', 'int'); + + // Margin + $fournprice = price2num(GETPOST('fournprice' . $predef) ? GETPOST('fournprice' . $predef) : ''); + $buyingprice = price2num(GETPOST('buying_price' . $predef) != '' ? GETPOST('buying_price' . $predef) : ''); // If buying_price is '0', we must keep this value + + // Local Taxes + $localtax1_tx = get_localtax($tva_tx, 1, $object->thirdparty, $mysoc, $tva_npr); + $localtax2_tx = get_localtax($tva_tx, 2, $object->thirdparty, $mysoc, $tva_npr); + + $info_bits = 0; + if ($tva_npr) + $info_bits |= 0x01; + + if ($usercanproductignorepricemin && (! empty($price_min) && (price2num($pu_ht) * (1 - price2num($remise_percent) / 100) < price2num($price_min)))) { + $mesg = $langs->trans("CantBeLessThanMinPrice", price(price2num($price_min, 'MU'), 0, $langs, 0, 0, - 1, $conf->currency)); + setEventMessages($mesg, null, 'errors'); + } + else + { + // Insert line + $result = $object->addline($desc, $pu_ht, $qty, $tva_tx, $localtax1_tx, $localtax2_tx, $idprod, $remise_percent, $price_base_type, $info_bits, '', $pu_ttc, $type, - 1, $special_code, $label, $fk_unit, 0, $date_start_fill, $date_end_fill, $fournprice, $buyingprice); + + if ($result > 0) + { + // Define output language and generate document + /*if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) + { + // Define output language + $outputlangs = $langs; + $newlang = ''; + if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id','aZ09')) $newlang = GETPOST('lang_id','aZ09'); + if ($conf->global->MAIN_MULTILANGS && empty($newlang)) $newlang = $object->thirdparty->default_lang; + if (! empty($newlang)) { + $outputlangs = new Translate("", $conf); + $outputlangs->setDefaultLang($newlang); + } + $model=$object->modelpdf; + $ret = $object->fetch($id); // Reload to get new records + + $result = $object->generateDocument($model, $outputlangs, $hidedetails, $hidedesc, $hideref); + if ($result < 0) setEventMessages($object->error, $object->errors, 'errors'); + }*/ + $object->fetch($object->id); // Reload lines + + unset($_POST['prod_entry_mode']); + + unset($_POST['qty']); + unset($_POST['type']); + unset($_POST['remise_percent']); + unset($_POST['price_ht']); + unset($_POST['multicurrency_price_ht']); + unset($_POST['price_ttc']); + unset($_POST['tva_tx']); + unset($_POST['product_ref']); + unset($_POST['product_label']); + unset($_POST['product_desc']); + unset($_POST['fournprice']); + unset($_POST['buying_price']); + unset($_POST['np_marginRate']); + unset($_POST['np_markRate']); + unset($_POST['dp_desc']); + unset($_POST['idprod']); + unset($_POST['units']); + + unset($_POST['date_starthour']); + unset($_POST['date_startmin']); + unset($_POST['date_startsec']); + unset($_POST['date_startday']); + unset($_POST['date_startmonth']); + unset($_POST['date_startyear']); + unset($_POST['date_endhour']); + unset($_POST['date_endmin']); + unset($_POST['date_endsec']); + unset($_POST['date_endday']); + unset($_POST['date_endmonth']); + unset($_POST['date_endyear']); + + unset($_POST['date_start_fill']); + unset($_POST['date_end_fill']); + + unset($_POST['situations']); + unset($_POST['progress']); + } + else + { + setEventMessages($object->error, $object->errors, 'errors'); + } + + $action = ''; + } } } From 2a2fcf6784843606297ab573cc86edf3425ed158 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 20 May 2019 15:38:33 +0200 Subject: [PATCH 025/365] FIX only profid1 to 4 were editable for pdf option to show. Not 5 and 6. --- htdocs/admin/pdf.php | 180 ++++++++++--------------------------------- 1 file changed, 40 insertions(+), 140 deletions(-) diff --git a/htdocs/admin/pdf.php b/htdocs/admin/pdf.php index 37c836043a0..70fa3dc38b7 100644 --- a/htdocs/admin/pdf.php +++ b/htdocs/admin/pdf.php @@ -61,6 +61,8 @@ if ($action == 'update') dolibarr_set_const($db, "MAIN_PROFID2_IN_ADDRESS", $_POST["MAIN_PROFID2_IN_ADDRESS"],'chaine',0,'', $conf->entity); dolibarr_set_const($db, "MAIN_PROFID3_IN_ADDRESS", $_POST["MAIN_PROFID3_IN_ADDRESS"],'chaine',0,'', $conf->entity); dolibarr_set_const($db, "MAIN_PROFID4_IN_ADDRESS", $_POST["MAIN_PROFID4_IN_ADDRESS"],'chaine',0,'', $conf->entity); + dolibarr_set_const($db, "MAIN_PROFID5_IN_ADDRESS", $_POST["MAIN_PROFID5_IN_ADDRESS"],'chaine',0,'', $conf->entity); + dolibarr_set_const($db, "MAIN_PROFID6_IN_ADDRESS", $_POST["MAIN_PROFID6_IN_ADDRESS"],'chaine',0,'', $conf->entity); dolibarr_set_const($db, "MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT", $_POST["MAIN_GENERATE_DOCUMENTS_WITHOUT_VAT"],'chaine',0,'', $conf->entity); dolibarr_set_const($db, "MAIN_TVAINTRA_NOT_IN_ADDRESS", $_POST["MAIN_TVAINTRA_NOT_IN_ADDRESS"],'chaine',0,'', $conf->entity); @@ -177,76 +179,25 @@ if ($action == 'edit') // Edit print $form->selectyesno('MAIN_TVAINTRA_NOT_IN_ADDRESS',(! empty($conf->global->MAIN_TVAINTRA_NOT_IN_ADDRESS))?$conf->global->MAIN_TVAINTRA_NOT_IN_ADDRESS:0,1); print ''; - // Show prof id 1 in address into pdf - - if (! $noCountryCode) + // Show prof id in address into pdf + for($i=1; $i<=6; $i++) { - $pid1=$langs->transcountry("ProfId1",$mysoc->country_code); - if ($pid1 == '-') $pid1=false; - } - else - { - $pid1 = img_warning().' '.$langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("CompanyCountry")).''; - } - if ($pid1) - { - print '
'; - } - - // Show prof id 2 in address into pdf - - if (! $noCountryCode) - { - $pid2=$langs->transcountry("ProfId2",$mysoc->country_code); - if ($pid2 == '-') $pid2=false; - } - else - { - $pid2 = img_warning().' '.$langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("CompanyCountry")).''; - } - if ($pid2) - { - print ''; - } - - // Show prof id 3 in address into pdf - - if (! $noCountryCode) - { - $pid3=$langs->transcountry("ProfId3",$mysoc->country_code); - if ($pid3 == '-') $pid3=false; - } - else - { - $pid3 = img_warning().' '.$langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("CompanyCountry")).''; - } - if ($pid3) - { - print ''; - } - - // Show prof id 4 in address into pdf - - if (! $noCountryCode) - { - $pid4=$langs->transcountry("ProfId4",$mysoc->country_code); - if ($pid4 == '-') $pid4=false; - } - else - { - $pid4 = img_warning().' '.$langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("CompanyCountry")).''; - } - if ($pid4) - { - print ''; + if (! $noCountryCode) + { + $pid=$langs->transcountry("ProfId".$i, $mysoc->country_code); + if ($pid == '-') $pid=false; + } + else + { + $pid = img_warning().' '.$langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("CompanyCountry")).''; + } + if ($pid) + { + print ''; + } } print '
">
"> diff --git a/htdocs/core/tpl/objectline_view.tpl.php b/htdocs/core/tpl/objectline_view.tpl.php index 09bedf2ec53..53c55a8163b 100644 --- a/htdocs/core/tpl/objectline_view.tpl.php +++ b/htdocs/core/tpl/objectline_view.tpl.php @@ -48,7 +48,7 @@ if (empty($object) || ! is_object($object)) global $forceall, $senderissupplier, $inputalsopricewithtax, $outputalsopricetotalwithtax; $usemargins=0; -if (! empty($conf->margin->enabled) && ! empty($object->element) && in_array($object->element, array('facture','propal','commande'))) $usemargins=1; +if (! empty($conf->margin->enabled) && ! empty($object->element) && in_array($object->element, array('facture','facturerec','propal','commande'))) $usemargins=1; if (empty($dateSelector)) $dateSelector=0; if (empty($forceall)) $forceall=0; @@ -253,19 +253,17 @@ $domData .= ' data-product_type="'.$line->product_type.'"'; if ($usemargins && ! empty($conf->margin->enabled) && empty($user->societe_id)) { - ?> - - rights->margins->creer)) { ?> -
pa_ht); ?>pa_ht == 0)?'n/a':price($line->marge_tx, null, null, null, null, $rounding).'%'); ?>marque_tx, null, null, null, null, $rounding).'%'; ?>pa_ht); ?>pa_ht == 0)?'n/a':price($line->marge_tx, null, null, null, null, $rounding).'%'); ?>marque_tx, null, null, null, null, $rounding).'%'; ?>trans('Option'); ?> - info_bits & 2) == 2 || ! empty($disableedit)) { ?> - - id.'#line_'.$line->id; ?>"> - - - - + info_bits & 2) == 2 || ! empty($disableedit)) { ?> + + id.'#line_'.$line->id; ?>"> + + + + + fk_prev_id == null ) && empty($disableremove)) { //La suppression n'est autorisée que si il n'y a pas de ligne dans une précédente situation + print 'id . '">'; + print img_delete(); + print ''; + } + ?> + fk_prev_id == null ) && empty($disableremove)) { //La suppression n'est autorisée que si il n'y a pas de ligne dans une précédente situation - print 'id . '">'; - print img_delete(); - print ''; - } - ?> - + 0) { ?> + id; ?>"> + + + + + id; ?>"> + + + + browser->layout != 'phone' && empty($disablemove)) ?' class="linecolmove tdlineupdown center"':' class="linecolmove center"'); ?>> - 0) { ?> - id; ?>"> - - - - - id; ?>"> - - - - browser->layout != 'phone' && empty($disablemove)) ?' class="linecolmove tdlineupdown center"':' class="linecolmove center"'); ?>>
'.$langs->trans("ShowProfIdInAddress").' - '.$pid1.''; - print $form->selectyesno('MAIN_PROFID1_IN_ADDRESS',isset($conf->global->MAIN_PROFID1_IN_ADDRESS)?$conf->global->MAIN_PROFID1_IN_ADDRESS:0,1,$noCountryCode); - print '
'.$langs->trans("ShowProfIdInAddress").' - '.$pid2.''; - print $form->selectyesno('MAIN_PROFID2_IN_ADDRESS',isset($conf->global->MAIN_PROFID2_IN_ADDRESS)?$conf->global->MAIN_PROFID2_IN_ADDRESS:0,1,$noCountryCode); - print '
'.$langs->trans("ShowProfIdInAddress").' - '.$pid3.''; - print $form->selectyesno('MAIN_PROFID3_IN_ADDRESS',isset($conf->global->MAIN_PROFID3_IN_ADDRESS)?$conf->global->MAIN_PROFID3_IN_ADDRESS:0,1,$noCountryCode); - print '
'.$langs->trans("ShowProfIdInAddress").' - '.$pid4.''; - print $form->selectyesno('MAIN_PROFID4_IN_ADDRESS',isset($conf->global->MAIN_PROFID4_IN_ADDRESS)?$conf->global->MAIN_PROFID4_IN_ADDRESS:0,1,$noCountryCode); - print '
'.$langs->trans("ShowProfIdInAddress").' - '.$pid.''; + $keyforconstant = 'MAIN_PROFID'.$i.'_IN_ADDRESS'; + print $form->selectyesno($keyforconstant, isset($conf->global->$keyforconstant)?$conf->global->$keyforconstant:0, 1, $noCountryCode); + print '
'; @@ -419,77 +370,26 @@ else // Show print yn($conf->global->MAIN_TVAINTRA_NOT_IN_ADDRESS,1); print ''; - // Show prof id 1 in address into pdf - - if (! $noCountryCode) - { - $pid1=$langs->transcountry("ProfId1",$mysoc->country_code); - if ($pid1 == '-') $pid1=false; - } - else - { - $pid1 = img_warning().' '.$langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("CompanyCountry")).''; - } - if ($pid1) - { - print ''.$langs->trans("ShowProfIdInAddress").' - '.$pid1.''; - print yn($conf->global->MAIN_PROFID1_IN_ADDRESS,1); - print ''; - } - - // Show prof id 2 in address into pdf - - if (! $noCountryCode) - { - $pid2=$langs->transcountry("ProfId2",$mysoc->country_code); - if ($pid2 == '-') $pid2=false; - } - else - { - $pid2 = img_warning().' '.$langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("CompanyCountry")).''; - } - if ($pid2) - { - print ''.$langs->trans("ShowProfIdInAddress").' - '.$pid2.''; - print yn($conf->global->MAIN_PROFID2_IN_ADDRESS,1); - print ''; - } - - // Show prof id 3 in address into pdf - - if (! $noCountryCode) - { - $pid3=$langs->transcountry("ProfId3",$mysoc->country_code); - if ($pid3 == '-') $pid3=false; - } - else - { - $pid3 = img_warning().' '.$langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("CompanyCountry")).''; - } - if ($pid3) - { - print ''.$langs->trans("ShowProfIdInAddress").' - '.$pid3.''; - print yn($conf->global->MAIN_PROFID3_IN_ADDRESS,1); - print ''; - } - - // Show prof id 4 in address into pdf - - if (! $noCountryCode) - { - $pid4=$langs->transcountry("ProfId4",$mysoc->country_code); - if ($pid4 == '-') $pid4=false; - } - else - { - $pid4 = img_warning().' '.$langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("CompanyCountry")).''; - } - if ($pid4) - { - print ''.$langs->trans("ShowProfIdInAddress").' - '.$pid4.''; - print yn($conf->global->MAIN_PROFID4_IN_ADDRESS,1); - print ''; - } + // Show prof id in address into pdf + for ($i=1; $i<=6; $i++) + { + if (! $noCountryCode) + { + $pid=$langs->transcountry("ProfId".$i, $mysoc->country_code); + if ($pid == '-') $pid=false; + } + else + { + $pid = img_warning().' '.$langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("CompanyCountry")).''; + } + if ($pid) + { + print ''.$langs->trans("ShowProfIdInAddress").' - '.$pid.''; + $keyforconstant = 'MAIN_PROFID'.$i.'_IN_ADDRESS'; + print yn($conf->global->$keyforconstant, 1); + print ''; + } + } print ''."\n"; print '
'; From 6365c7cd00b0a0c05d5fbc7685228395ba2a504a Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 21 May 2019 12:17:07 +0200 Subject: [PATCH 026/365] Bad cut and paste --- htdocs/compta/facture/fiche-rec.php | 135 ---------------------------- 1 file changed, 135 deletions(-) diff --git a/htdocs/compta/facture/fiche-rec.php b/htdocs/compta/facture/fiche-rec.php index 867b4e8df30..5eedb9b5740 100644 --- a/htdocs/compta/facture/fiche-rec.php +++ b/htdocs/compta/facture/fiche-rec.php @@ -281,141 +281,6 @@ if (empty($reshook)) // Set mode elseif ($action == 'setmode' && $user->rights->facture->creer) { - // Add custom code and origin country into description - if (empty($conf->global->MAIN_PRODUCT_DISABLE_CUSTOMCOUNTRYCODE) && (! empty($prod->customcode) || ! empty($prod->country_code))) - { - $tmptxt = '('; - // Define output language - if (! empty($conf->global->MAIN_MULTILANGS) && ! empty($conf->global->PRODUIT_TEXTS_IN_THIRDPARTY_LANGUAGE)) { - $outputlangs = $langs; - $newlang = ''; - if (empty($newlang) && GETPOST('lang_id', 'alpha')) $newlang = GETPOST('lang_id', 'alpha'); - if (empty($newlang)) $newlang = $object->thirdparty->default_lang; - if (! empty($newlang)) { - $outputlangs = new Translate("", $conf); - $outputlangs->setDefaultLang($newlang); - $outputlangs->load('products'); - } - if (! empty($prod->customcode)) $tmptxt .= $outputlangs->transnoentitiesnoconv("CustomCode") . ': ' . $prod->customcode; - if (! empty($prod->customcode) && ! empty($prod->country_code)) $tmptxt .= ' - '; - if (! empty($prod->country_code)) $tmptxt .= $outputlangs->transnoentitiesnoconv("CountryOrigin") . ': ' . getCountry($prod->country_code, 0, $db, $outputlangs, 0); - } else { - if (! empty($prod->customcode)) $tmptxt .= $langs->transnoentitiesnoconv("CustomCode") . ': ' . $prod->customcode; - if (! empty($prod->customcode) && ! empty($prod->country_code)) $tmptxt .= ' - '; - if (! empty($prod->country_code)) $tmptxt .= $langs->transnoentitiesnoconv("CountryOrigin") . ': ' . getCountry($prod->country_code, 0, $db, $langs, 0); - } - $tmptxt .= ')'; - $desc = dol_concatdesc($desc, $tmptxt); - } - - $type = $prod->type; - $fk_unit = $prod->fk_unit; - } - else - { - $pu_ht = price2num($price_ht, 'MU'); - $pu_ttc = price2num(GETPOST('price_ttc'), 'MU'); - $tva_npr = (preg_match('/\*/', $tva_tx) ? 1 : 0); - $tva_tx = str_replace('*', '', $tva_tx); - if (empty($tva_tx)) $tva_npr=0; - $label = (GETPOST('product_label') ? GETPOST('product_label') : ''); - $desc = $product_desc; - $type = GETPOST('type'); - $fk_unit= GETPOST('units', 'alpha'); - } - - $date_start_fill = GETPOST('date_start_fill', 'int'); - $date_end_fill = GETPOST('date_end_fill', 'int'); - - // Margin - $fournprice = price2num(GETPOST('fournprice' . $predef) ? GETPOST('fournprice' . $predef) : ''); - $buyingprice = price2num(GETPOST('buying_price' . $predef) != '' ? GETPOST('buying_price' . $predef) : ''); // If buying_price is '0', we must keep this value - - // Local Taxes - $localtax1_tx = get_localtax($tva_tx, 1, $object->thirdparty, $mysoc, $tva_npr); - $localtax2_tx = get_localtax($tva_tx, 2, $object->thirdparty, $mysoc, $tva_npr); - - $info_bits = 0; - if ($tva_npr) - $info_bits |= 0x01; - - if ($usercanproductignorepricemin && (! empty($price_min) && (price2num($pu_ht) * (1 - price2num($remise_percent) / 100) < price2num($price_min)))) { - $mesg = $langs->trans("CantBeLessThanMinPrice", price(price2num($price_min, 'MU'), 0, $langs, 0, 0, - 1, $conf->currency)); - setEventMessages($mesg, null, 'errors'); - } - else - { - // Insert line - $result = $object->addline($desc, $pu_ht, $qty, $tva_tx, $localtax1_tx, $localtax2_tx, $idprod, $remise_percent, $price_base_type, $info_bits, '', $pu_ttc, $type, - 1, $special_code, $label, $fk_unit, 0, $date_start_fill, $date_end_fill, $fournprice, $buyingprice); - - if ($result > 0) - { - // Define output language and generate document - /*if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) - { - // Define output language - $outputlangs = $langs; - $newlang = ''; - if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id','aZ09')) $newlang = GETPOST('lang_id','aZ09'); - if ($conf->global->MAIN_MULTILANGS && empty($newlang)) $newlang = $object->thirdparty->default_lang; - if (! empty($newlang)) { - $outputlangs = new Translate("", $conf); - $outputlangs->setDefaultLang($newlang); - } - $model=$object->modelpdf; - $ret = $object->fetch($id); // Reload to get new records - - $result = $object->generateDocument($model, $outputlangs, $hidedetails, $hidedesc, $hideref); - if ($result < 0) setEventMessages($object->error, $object->errors, 'errors'); - }*/ - $object->fetch($object->id); // Reload lines - - unset($_POST['prod_entry_mode']); - - unset($_POST['qty']); - unset($_POST['type']); - unset($_POST['remise_percent']); - unset($_POST['price_ht']); - unset($_POST['multicurrency_price_ht']); - unset($_POST['price_ttc']); - unset($_POST['tva_tx']); - unset($_POST['product_ref']); - unset($_POST['product_label']); - unset($_POST['product_desc']); - unset($_POST['fournprice']); - unset($_POST['buying_price']); - unset($_POST['np_marginRate']); - unset($_POST['np_markRate']); - unset($_POST['dp_desc']); - unset($_POST['idprod']); - unset($_POST['units']); - - unset($_POST['date_starthour']); - unset($_POST['date_startmin']); - unset($_POST['date_startsec']); - unset($_POST['date_startday']); - unset($_POST['date_startmonth']); - unset($_POST['date_startyear']); - unset($_POST['date_endhour']); - unset($_POST['date_endmin']); - unset($_POST['date_endsec']); - unset($_POST['date_endday']); - unset($_POST['date_endmonth']); - unset($_POST['date_endyear']); - - unset($_POST['date_start_fill']); - unset($_POST['date_end_fill']); - - unset($_POST['situations']); - unset($_POST['progress']); - } - else - { - setEventMessages($object->error, $object->errors, 'errors'); - } - - $action = ''; - } $result=$object->setPaymentMethods(GETPOST('mode_reglement_id', 'int')); } // Set project From 54441a1abda3ef245ec5ea202e81cb251c81033c Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 21 May 2019 12:36:18 +0200 Subject: [PATCH 027/365] Fix css --- htdocs/main.inc.php | 6 +++--- htdocs/theme/eldy/dropdown.inc.php | 6 +++--- htdocs/theme/md/dropdown.inc.php | 18 ++++++++++++++++++ htdocs/theme/md/style.css.php | 6 ++++-- 4 files changed, 28 insertions(+), 8 deletions(-) create mode 100644 htdocs/theme/md/dropdown.inc.php diff --git a/htdocs/main.inc.php b/htdocs/main.inc.php index b0036b01ed4..a7d0669db22 100644 --- a/htdocs/main.inc.php +++ b/htdocs/main.inc.php @@ -1811,11 +1811,11 @@ function top_menu_user(User $user, Translate $langs) $btnUser = ' '),o.append(v)),0===f.length&&(f=e('
'),o.append(f)),v.length&&(v[0].style.opacity=p>0?p:0),f.length&&(f[0].style.opacity=-p>0?-p:0)}}y.browser.ie&&(y.wrapper[0].style.perspectiveOrigin=t+"px 50%")},setTransition:function(e){y.slides.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e)}}},y.lazy={initialImageLoaded:!1,loadImageInSlide:function(a,t){if(void 0!==a&&(void 0===t&&(t=!0),0!==y.slides.length)){var s=y.slides.eq(a),r=s.find("."+y.params.lazyLoadingClass+":not(."+y.params.lazyStatusLoadedClass+"):not(."+y.params.lazyStatusLoadingClass+")");!s.hasClass(y.params.lazyLoadingClass)||s.hasClass(y.params.lazyStatusLoadedClass)||s.hasClass(y.params.lazyStatusLoadingClass)||(r=r.add(s[0])),0!==r.length&&r.each(function(){var a=e(this);a.addClass(y.params.lazyStatusLoadingClass);var r=a.attr("data-background"),i=a.attr("data-src"),n=a.attr("data-srcset"),o=a.attr("data-sizes");y.loadImage(a[0],i||r,n,o,!1,function(){if(void 0!==y&&null!==y&&y){if(r?(a.css("background-image",'url("'+r+'")'),a.removeAttr("data-background")):(n&&(a.attr("srcset",n),a.removeAttr("data-srcset")),o&&(a.attr("sizes",o),a.removeAttr("data-sizes")),i&&(a.attr("src",i),a.removeAttr("data-src"))),a.addClass(y.params.lazyStatusLoadedClass).removeClass(y.params.lazyStatusLoadingClass),s.find("."+y.params.lazyPreloaderClass+", ."+y.params.preloaderClass).remove(),y.params.loop&&t){var e=s.attr("data-swiper-slide-index");if(s.hasClass(y.params.slideDuplicateClass)){var l=y.wrapper.children('[data-swiper-slide-index="'+e+'"]:not(.'+y.params.slideDuplicateClass+")");y.lazy.loadImageInSlide(l.index(),!1)}else{var p=y.wrapper.children("."+y.params.slideDuplicateClass+'[data-swiper-slide-index="'+e+'"]');y.lazy.loadImageInSlide(p.index(),!1)}}y.emit("onLazyImageReady",y,s[0],a[0])}}),y.emit("onLazyImageLoad",y,s[0],a[0])})}},load:function(){var a,t=y.params.slidesPerView;if("auto"===t&&(t=0),y.lazy.initialImageLoaded||(y.lazy.initialImageLoaded=!0),y.params.watchSlidesVisibility)y.wrapper.children("."+y.params.slideVisibleClass).each(function(){y.lazy.loadImageInSlide(e(this).index())});else if(t>1)for(a=y.activeIndex;a1||y.params.lazyLoadingInPrevNextAmount&&y.params.lazyLoadingInPrevNextAmount>1){var s=y.params.lazyLoadingInPrevNextAmount,r=t,i=Math.min(y.activeIndex+r+Math.max(s,r),y.slides.length),n=Math.max(y.activeIndex-Math.max(r,s),0);for(a=y.activeIndex+t;a0&&y.lazy.loadImageInSlide(o.index());var l=y.wrapper.children("."+y.params.slidePrevClass);l.length>0&&y.lazy.loadImageInSlide(l.index())}},onTransitionStart:function(){y.params.lazyLoading&&(y.params.lazyLoadingOnTransitionStart||!y.params.lazyLoadingOnTransitionStart&&!y.lazy.initialImageLoaded)&&y.lazy.load()},onTransitionEnd:function(){y.params.lazyLoading&&!y.params.lazyLoadingOnTransitionStart&&y.lazy.load()}},y.scrollbar={isTouched:!1,setDragPosition:function(e){var a=y.scrollbar,t=(y.isHorizontal()?"touchstart"===e.type||"touchmove"===e.type?e.targetTouches[0].pageX:e.pageX||e.clientX:"touchstart"===e.type||"touchmove"===e.type?e.targetTouches[0].pageY:e.pageY||e.clientY)-a.track.offset()[y.isHorizontal()?"left":"top"]-a.dragSize/2,s=-y.minTranslate()*a.moveDivider,r=-y.maxTranslate()*a.moveDivider;tr&&(t=r),t=-t/a.moveDivider,y.updateProgress(t),y.setWrapperTranslate(t,!0)},dragStart:function(e){var a=y.scrollbar;a.isTouched=!0,e.preventDefault(),e.stopPropagation(),a.setDragPosition(e),clearTimeout(a.dragTimeout),a.track.transition(0),y.params.scrollbarHide&&a.track.css("opacity",1),y.wrapper.transition(100),a.drag.transition(100),y.emit("onScrollbarDragStart",y)},dragMove:function(e){var a=y.scrollbar;a.isTouched&&(e.preventDefault?e.preventDefault():e.returnValue=!1,a.setDragPosition(e),y.wrapper.transition(0),a.track.transition(0),a.drag.transition(0),y.emit("onScrollbarDragMove",y))},dragEnd:function(e){var a=y.scrollbar;a.isTouched&&(a.isTouched=!1,y.params.scrollbarHide&&(clearTimeout(a.dragTimeout),a.dragTimeout=setTimeout(function(){a.track.css("opacity",0),a.track.transition(400)},1e3)),y.emit("onScrollbarDragEnd",y),y.params.scrollbarSnapOnRelease&&y.slideReset())},draggableEvents:!1!==y.params.simulateTouch||y.support.touch?y.touchEvents:y.touchEventsDesktop,enableDraggable:function(){var a=y.scrollbar,t=y.support.touch?a.track:document;e(a.track).on(a.draggableEvents.start,a.dragStart),e(t).on(a.draggableEvents.move,a.dragMove),e(t).on(a.draggableEvents.end,a.dragEnd)},disableDraggable:function(){var a=y.scrollbar,t=y.support.touch?a.track:document;e(a.track).off(a.draggableEvents.start,a.dragStart),e(t).off(a.draggableEvents.move,a.dragMove),e(t).off(a.draggableEvents.end,a.dragEnd)},set:function(){if(y.params.scrollbar){var a=y.scrollbar;a.track=e(y.params.scrollbar),y.params.uniqueNavElements&&"string"==typeof y.params.scrollbar&&a.track.length>1&&1===y.container.find(y.params.scrollbar).length&&(a.track=y.container.find(y.params.scrollbar)),a.drag=a.track.find(".swiper-scrollbar-drag"),0===a.drag.length&&(a.drag=e('
'),a.track.append(a.drag)),a.drag[0].style.width="",a.drag[0].style.height="",a.trackSize=y.isHorizontal()?a.track[0].offsetWidth:a.track[0].offsetHeight,a.divider=y.size/y.virtualSize,a.moveDivider=a.divider*(a.trackSize/y.size),a.dragSize=a.trackSize*a.divider,y.isHorizontal()?a.drag[0].style.width=a.dragSize+"px":a.drag[0].style.height=a.dragSize+"px",a.divider>=1?a.track[0].style.display="none":a.track[0].style.display="",y.params.scrollbarHide&&(a.track[0].style.opacity=0)}},setTranslate:function(){if(y.params.scrollbar){var e,a=y.scrollbar,t=(y.translate,a.dragSize);e=(a.trackSize-a.dragSize)*y.progress,y.rtl&&y.isHorizontal()?(e=-e,e>0?(t=a.dragSize-e,e=0):-e+a.dragSize>a.trackSize&&(t=a.trackSize+e)):e<0?(t=a.dragSize+e,e=0):e+a.dragSize>a.trackSize&&(t=a.trackSize-e),y.isHorizontal()?(y.support.transforms3d?a.drag.transform("translate3d("+e+"px, 0, 0)"):a.drag.transform("translateX("+e+"px)"),a.drag[0].style.width=t+"px"):(y.support.transforms3d?a.drag.transform("translate3d(0px, "+e+"px, 0)"):a.drag.transform("translateY("+e+"px)"),a.drag[0].style.height=t+"px"),y.params.scrollbarHide&&(clearTimeout(a.timeout),a.track[0].style.opacity=1,a.timeout=setTimeout(function(){a.track[0].style.opacity=0,a.track.transition(400)},1e3))}},setTransition:function(e){y.params.scrollbar&&y.scrollbar.drag.transition(e)}},y.controller={LinearSpline:function(e,a){var t=function(){var e,a,t;return function(s,r){for(a=-1,e=s.length;e-a>1;)s[t=e+a>>1]<=r?a=t:e=t;return e}}();this.x=e,this.y=a,this.lastIndex=e.length-1;var s,r;this.x.length,this.interpolate=function(e){return e?(r=t(this.x,e),s=r-1,(e-this.x[s])*(this.y[r]-this.y[s])/(this.x[r]-this.x[s])+this.y[s]):0}},getInterpolateFunction:function(e){y.controller.spline||(y.controller.spline=y.params.loop?new y.controller.LinearSpline(y.slidesGrid,e.slidesGrid):new y.controller.LinearSpline(y.snapGrid,e.snapGrid))},setTranslate:function(e,t){function s(a){e=a.rtl&&"horizontal"===a.params.direction?-y.translate:y.translate,"slide"===y.params.controlBy&&(y.controller.getInterpolateFunction(a),i=-y.controller.spline.interpolate(-e)),i&&"container"!==y.params.controlBy||(r=(a.maxTranslate()-a.minTranslate())/(y.maxTranslate()-y.minTranslate()),i=(e-y.minTranslate())*r+a.minTranslate()),y.params.controlInverse&&(i=a.maxTranslate()-i),a.updateProgress(i),a.setWrapperTranslate(i,!1,y),a.updateActiveIndex()}var r,i,n=y.params.control;if(Array.isArray(n))for(var o=0;o-1?"DOMMouseScroll":function(){var e="onwheel"in document;if(!e){var a=document.createElement("div");a.setAttribute("onwheel","return;"),e="function"==typeof a.onwheel}return!e&&document.implementation&&document.implementation.hasFeature&&!0!==document.implementation.hasFeature("","")&&(e=document.implementation.hasFeature("Events.wheel","3.0")),e}()?"wheel":"mousewheel"),y.disableMousewheelControl=function(){if(!y.mousewheel.event)return!1;var a=y.container;return"container"!==y.params.mousewheelEventsTarged&&(a=e(y.params.mousewheelEventsTarged)),a.off(y.mousewheel.event,d),y.params.mousewheelControl=!1,!0},y.enableMousewheelControl=function(){if(!y.mousewheel.event)return!1;var a=y.container;return"container"!==y.params.mousewheelEventsTarged&&(a=e(y.params.mousewheelEventsTarged)),a.on(y.mousewheel.event,d),y.params.mousewheelControl=!0,!0},y.parallax={setTranslate:function(){y.container.children("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]").each(function(){m(this,y.progress)}),y.slides.each(function(){var a=e(this);a.find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]").each(function(){m(this,Math.min(Math.max(a[0].progress,-1),1))})})},setTransition:function(a){void 0===a&&(a=y.params.speed),y.container.find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]").each(function(){var t=e(this),s=parseInt(t.attr("data-swiper-parallax-duration"),10)||a;0===a&&(s=0),t.transition(s)})}},y.zoom={scale:1,currentScale:1,isScaling:!1,gesture:{slide:void 0,slideWidth:void 0,slideHeight:void 0,image:void 0,imageWrap:void 0,zoomMax:y.params.zoomMax},image:{isTouched:void 0,isMoved:void 0,currentX:void 0,currentY:void 0,minX:void 0,minY:void 0,maxX:void 0,maxY:void 0,width:void 0,height:void 0,startX:void 0,startY:void 0,touchesStart:{},touchesCurrent:{}},velocity:{x:void 0,y:void 0,prevPositionX:void 0,prevPositionY:void 0,prevTime:void 0},getDistanceBetweenTouches:function(e){if(e.targetTouches.length<2)return 1;var a=e.targetTouches[0].pageX,t=e.targetTouches[0].pageY,s=e.targetTouches[1].pageX,r=e.targetTouches[1].pageY;return Math.sqrt(Math.pow(s-a,2)+Math.pow(r-t,2))},onGestureStart:function(a){var t=y.zoom;if(!y.support.gestures){if("touchstart"!==a.type||"touchstart"===a.type&&a.targetTouches.length<2)return;t.gesture.scaleStart=t.getDistanceBetweenTouches(a)}t.gesture.slide&&t.gesture.slide.length||(t.gesture.slide=e(this),0===t.gesture.slide.length&&(t.gesture.slide=y.slides.eq(y.activeIndex)),t.gesture.image=t.gesture.slide.find("img, svg, canvas"),t.gesture.imageWrap=t.gesture.image.parent("."+y.params.zoomContainerClass),t.gesture.zoomMax=t.gesture.imageWrap.attr("data-swiper-zoom")||y.params.zoomMax,0!==t.gesture.imageWrap.length)?(t.gesture.image.transition(0),t.isScaling=!0):t.gesture.image=void 0},onGestureChange:function(e){var a=y.zoom;if(!y.support.gestures){if("touchmove"!==e.type||"touchmove"===e.type&&e.targetTouches.length<2)return;a.gesture.scaleMove=a.getDistanceBetweenTouches(e)}a.gesture.image&&0!==a.gesture.image.length&&(y.support.gestures?a.scale=e.scale*a.currentScale:a.scale=a.gesture.scaleMove/a.gesture.scaleStart*a.currentScale,a.scale>a.gesture.zoomMax&&(a.scale=a.gesture.zoomMax-1+Math.pow(a.scale-a.gesture.zoomMax+1,.5)),a.scalea.image.touchesStart.x)return void(a.image.isTouched=!1);if(!y.isHorizontal()&&Math.floor(a.image.minY)===Math.floor(a.image.startY)&&a.image.touchesCurrent.ya.image.touchesStart.y)return void(a.image.isTouched=!1)}e.preventDefault(),e.stopPropagation(),a.image.isMoved=!0,a.image.currentX=a.image.touchesCurrent.x-a.image.touchesStart.x+a.image.startX,a.image.currentY=a.image.touchesCurrent.y-a.image.touchesStart.y+a.image.startY,a.image.currentXa.image.maxX&&(a.image.currentX=a.image.maxX-1+Math.pow(a.image.currentX-a.image.maxX+1,.8)),a.image.currentYa.image.maxY&&(a.image.currentY=a.image.maxY-1+Math.pow(a.image.currentY-a.image.maxY+1,.8)),a.velocity.prevPositionX||(a.velocity.prevPositionX=a.image.touchesCurrent.x),a.velocity.prevPositionY||(a.velocity.prevPositionY=a.image.touchesCurrent.y),a.velocity.prevTime||(a.velocity.prevTime=Date.now()),a.velocity.x=(a.image.touchesCurrent.x-a.velocity.prevPositionX)/(Date.now()-a.velocity.prevTime)/2,a.velocity.y=(a.image.touchesCurrent.y-a.velocity.prevPositionY)/(Date.now()-a.velocity.prevTime)/2,Math.abs(a.image.touchesCurrent.x-a.velocity.prevPositionX)<2&&(a.velocity.x=0),Math.abs(a.image.touchesCurrent.y-a.velocity.prevPositionY)<2&&(a.velocity.y=0),a.velocity.prevPositionX=a.image.touchesCurrent.x,a.velocity.prevPositionY=a.image.touchesCurrent.y,a.velocity.prevTime=Date.now(),a.gesture.imageWrap.transform("translate3d("+a.image.currentX+"px, "+a.image.currentY+"px,0)")}}},onTouchEnd:function(e,a){var t=e.zoom;if(t.gesture.image&&0!==t.gesture.image.length){if(!t.image.isTouched||!t.image.isMoved)return t.image.isTouched=!1,void(t.image.isMoved=!1);t.image.isTouched=!1,t.image.isMoved=!1;var s=300,r=300,i=t.velocity.x*s,n=t.image.currentX+i,o=t.velocity.y*r,l=t.image.currentY+o;0!==t.velocity.x&&(s=Math.abs((n-t.image.currentX)/t.velocity.x)),0!==t.velocity.y&&(r=Math.abs((l-t.image.currentY)/t.velocity.y));var p=Math.max(s,r);t.image.currentX=n,t.image.currentY=l;var d=t.image.width*t.scale,m=t.image.height*t.scale;t.image.minX=Math.min(t.gesture.slideWidth/2-d/2,0),t.image.maxX=-t.image.minX,t.image.minY=Math.min(t.gesture.slideHeight/2-m/2,0),t.image.maxY=-t.image.minY,t.image.currentX=Math.max(Math.min(t.image.currentX,t.image.maxX),t.image.minX),t.image.currentY=Math.max(Math.min(t.image.currentY,t.image.maxY),t.image.minY),t.gesture.imageWrap.transition(p).transform("translate3d("+t.image.currentX+"px, "+t.image.currentY+"px,0)")}},onTransitionEnd:function(e){var a=e.zoom;a.gesture.slide&&e.previousIndex!==e.activeIndex&&(a.gesture.image.transform("translate3d(0,0,0) scale(1)"),a.gesture.imageWrap.transform("translate3d(0,0,0)"),a.gesture.slide=a.gesture.image=a.gesture.imageWrap=void 0,a.scale=a.currentScale=1)},toggleZoom:function(a,t){var s=a.zoom;if(s.gesture.slide||(s.gesture.slide=a.clickedSlide?e(a.clickedSlide):a.slides.eq(a.activeIndex),s.gesture.image=s.gesture.slide.find("img, svg, canvas"),s.gesture.imageWrap=s.gesture.image.parent("."+a.params.zoomContainerClass)),s.gesture.image&&0!==s.gesture.image.length){var r,i,n,o,l,p,d,m,u,c,g,h,v,f,w,x,y,T;void 0===s.image.touchesStart.x&&t?(r="touchend"===t.type?t.changedTouches[0].pageX:t.pageX,i="touchend"===t.type?t.changedTouches[0].pageY:t.pageY):(r=s.image.touchesStart.x,i=s.image.touchesStart.y),s.scale&&1!==s.scale?(s.scale=s.currentScale=1,s.gesture.imageWrap.transition(300).transform("translate3d(0,0,0)"),s.gesture.image.transition(300).transform("translate3d(0,0,0) scale(1)"),s.gesture.slide=void 0):(s.scale=s.currentScale=s.gesture.imageWrap.attr("data-swiper-zoom")||a.params.zoomMax,t?(y=s.gesture.slide[0].offsetWidth,T=s.gesture.slide[0].offsetHeight,n=s.gesture.slide.offset().left,o=s.gesture.slide.offset().top,l=n+y/2-r,p=o+T/2-i,u=s.gesture.image[0].offsetWidth,c=s.gesture.image[0].offsetHeight,g=u*s.scale,h=c*s.scale,v=Math.min(y/2-g/2,0),f=Math.min(T/2-h/2,0),w=-v,x=-f,d=l*s.scale,m=p*s.scale,dw&&(d=w),mx&&(m=x)):(d=0,m=0),s.gesture.imageWrap.transition(300).transform("translate3d("+d+"px, "+m+"px,0)"),s.gesture.image.transition(300).transform("translate3d(0,0,0) scale("+s.scale+")"))}},attachEvents:function(a){var t=a?"off":"on";if(y.params.zoom){var s=(y.slides,!("touchstart"!==y.touchEvents.start||!y.support.passiveListener||!y.params.passiveListeners)&&{passive:!0,capture:!1});y.support.gestures?(y.slides[t]("gesturestart",y.zoom.onGestureStart,s),y.slides[t]("gesturechange",y.zoom.onGestureChange,s),y.slides[t]("gestureend",y.zoom.onGestureEnd,s)):"touchstart"===y.touchEvents.start&&(y.slides[t](y.touchEvents.start,y.zoom.onGestureStart,s),y.slides[t](y.touchEvents.move,y.zoom.onGestureChange,s),y.slides[t](y.touchEvents.end,y.zoom.onGestureEnd,s)),y[t]("touchStart",y.zoom.onTouchStart),y.slides.each(function(a,s){e(s).find("."+y.params.zoomContainerClass).length>0&&e(s)[t](y.touchEvents.move,y.zoom.onTouchMove)}),y[t]("touchEnd",y.zoom.onTouchEnd),y[t]("transitionEnd",y.zoom.onTransitionEnd),y.params.zoomToggle&&y.on("doubleTap",y.zoom.toggleZoom)}},init:function(){y.zoom.attachEvents()},destroy:function(){y.zoom.attachEvents(!0)}},y._plugins=[];for(var Y in y.plugins){var A=y.plugins[Y](y,y.params[Y]);A&&y._plugins.push(A)}return y.callPlugins=function(e){for(var a=0;a'),notify:function(e){var a=y.a11y.liveRegion;0!==a.length&&(a.html(""),a.html(e))},init:function(){y.params.nextButton&&y.nextButton&&y.nextButton.length>0&&(y.a11y.makeFocusable(y.nextButton),y.a11y.addRole(y.nextButton,"button"),y.a11y.addLabel(y.nextButton,y.params.nextSlideMessage)),y.params.prevButton&&y.prevButton&&y.prevButton.length>0&&(y.a11y.makeFocusable(y.prevButton),y.a11y.addRole(y.prevButton,"button"),y.a11y.addLabel(y.prevButton,y.params.prevSlideMessage)),e(y.container).append(y.a11y.liveRegion)},initPagination:function(){y.params.pagination&&y.params.paginationClickable&&y.bullets&&y.bullets.length&&y.bullets.each(function(){var a=e(this);y.a11y.makeFocusable(a),y.a11y.addRole(a,"button"),y.a11y.addLabel(a,y.params.paginationBulletMessage.replace(/{{index}}/,a.index()+1))})},destroy:function(){y.a11y.liveRegion&&y.a11y.liveRegion.length>0&&y.a11y.liveRegion.remove()}},y.init=function(){y.params.loop&&y.createLoop(),y.updateContainerSize(),y.updateSlidesSize(),y.updatePagination(),y.params.scrollbar&&y.scrollbar&&(y.scrollbar.set(),y.params.scrollbarDraggable&&y.scrollbar.enableDraggable()),"slide"!==y.params.effect&&y.effects[y.params.effect]&&(y.params.loop||y.updateProgress(),y.effects[y.params.effect].setTranslate()),y.params.loop?y.slideTo(y.params.initialSlide+y.loopedSlides,0,y.params.runCallbacksOnInit):(y.slideTo(y.params.initialSlide,0,y.params.runCallbacksOnInit),0===y.params.initialSlide&&(y.parallax&&y.params.parallax&&y.parallax.setTranslate(),y.lazy&&y.params.lazyLoading&&(y.lazy.load(),y.lazy.initialImageLoaded=!0))),y.attachEvents(),y.params.observer&&y.support.observer&&y.initObservers(),y.params.preloadImages&&!y.params.lazyLoading&&y.preloadImages(),y.params.zoom&&y.zoom&&y.zoom.init(),y.params.autoplay&&y.startAutoplay(),y.params.keyboardControl&&y.enableKeyboardControl&&y.enableKeyboardControl(),y.params.mousewheelControl&&y.enableMousewheelControl&&y.enableMousewheelControl(),y.params.hashnavReplaceState&&(y.params.replaceState=y.params.hashnavReplaceState),y.params.history&&y.history&&y.history.init(),y.params.hashnav&&y.hashnav&&y.hashnav.init(),y.params.a11y&&y.a11y&&y.a11y.init(),y.emit("onInit",y)},y.cleanupStyles=function(){y.container.removeClass(y.classNames.join(" ")).removeAttr("style"),y.wrapper.removeAttr("style"),y.slides&&y.slides.length&&y.slides.removeClass([y.params.slideVisibleClass,y.params.slideActiveClass,y.params.slideNextClass,y.params.slidePrevClass].join(" ")).removeAttr("style").removeAttr("data-swiper-column").removeAttr("data-swiper-row"),y.paginationContainer&&y.paginationContainer.length&&y.paginationContainer.removeClass(y.params.paginationHiddenClass),y.bullets&&y.bullets.length&&y.bullets.removeClass(y.params.bulletActiveClass),y.params.prevButton&&e(y.params.prevButton).removeClass(y.params.buttonDisabledClass),y.params.nextButton&&e(y.params.nextButton).removeClass(y.params.buttonDisabledClass),y.params.scrollbar&&y.scrollbar&&(y.scrollbar.track&&y.scrollbar.track.length&&y.scrollbar.track.removeAttr("style"),y.scrollbar.drag&&y.scrollbar.drag.length&&y.scrollbar.drag.removeAttr("style"))},y.destroy=function(e,a){y.detachEvents(),y.stopAutoplay(),y.params.scrollbar&&y.scrollbar&&y.params.scrollbarDraggable&&y.scrollbar.disableDraggable(),y.params.loop&&y.destroyLoop(),a&&y.cleanupStyles(),y.disconnectObservers(),y.params.zoom&&y.zoom&&y.zoom.destroy(),y.params.keyboardControl&&y.disableKeyboardControl&&y.disableKeyboardControl(),y.params.mousewheelControl&&y.disableMousewheelControl&&y.disableMousewheelControl(),y.params.a11y&&y.a11y&&y.a11y.destroy(),y.params.history&&!y.params.replaceState&&window.removeEventListener("popstate",y.history.setHistoryPopState),y.params.hashnav&&y.hashnav&&y.hashnav.destroy(),y.emit("onDestroy"),!1!==e&&(y=null)},y.init(),y}};a.prototype={isSafari:function(){var e=window.navigator.userAgent.toLowerCase();return e.indexOf("safari")>=0&&e.indexOf("chrome")<0&&e.indexOf("android")<0}(),isUiWebView:/(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent),isArray:function(e){return"[object Array]"===Object.prototype.toString.apply(e)},browser:{ie:window.navigator.pointerEnabled||window.navigator.msPointerEnabled,ieTouch:window.navigator.msPointerEnabled&&window.navigator.msMaxTouchPoints>1||window.navigator.pointerEnabled&&window.navigator.maxTouchPoints>1,lteIE9:function(){var e=document.createElement("div");return e.innerHTML="\x3c!--[if lte IE 9]>0?e?this[0].offsetWidth+parseFloat(this.css("margin-right"))+parseFloat(this.css("margin-left")):this[0].offsetWidth:null})),window.Swiper=a}(),"undefined"!=typeof module?module.exports=window.Swiper:"function"==typeof define&&define.amd&&define([],function(){"use strict";return window.Swiper}); - - -/** - * @module WOW - * @author Matthieu Aussaguel - * @license MIT - * @version 1.1.3 - */ -(function(){var a,b,c,d,e,f=function(a,b){return function(){return a.apply(b,arguments)}},g=[].indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(b in this&&this[b]===a)return b;return-1};b=function(){function a(){}return a.prototype.extend=function(a,b){var c,d;for(c in b)d=b[c],null==a[c]&&(a[c]=d);return a},a.prototype.isMobile=function(a){return/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(a)},a.prototype.createEvent=function(a,b,c,d){var e;return null==b&&(b=!1),null==c&&(c=!1),null==d&&(d=null),null!=document.createEvent?(e=document.createEvent("CustomEvent"),e.initCustomEvent(a,b,c,d)):null!=document.createEventObject?(e=document.createEventObject(),e.eventType=a):e.eventName=a,e},a.prototype.emitEvent=function(a,b){return null!=a.dispatchEvent?a.dispatchEvent(b):b in(null!=a)?a[b]():"on"+b in(null!=a)?a["on"+b]():void 0},a.prototype.addEvent=function(a,b,c){return null!=a.addEventListener?a.addEventListener(b,c,!1):null!=a.attachEvent?a.attachEvent("on"+b,c):a[b]=c},a.prototype.removeEvent=function(a,b,c){return null!=a.removeEventListener?a.removeEventListener(b,c,!1):null!=a.detachEvent?a.detachEvent("on"+b,c):delete a[b]},a.prototype.innerHeight=function(){return"innerHeight"in window?window.innerHeight:document.documentElement.clientHeight},a}(),c=this.WeakMap||this.MozWeakMap||(c=function(){function a(){this.keys=[],this.values=[]}return a.prototype.get=function(a){var b,c,d,e,f;for(f=this.keys,b=d=0,e=f.length;e>d;b=++d)if(c=f[b],c===a)return this.values[b]},a.prototype.set=function(a,b){var c,d,e,f,g;for(g=this.keys,c=e=0,f=g.length;f>e;c=++e)if(d=g[c],d===a)return void(this.values[c]=b);return this.keys.push(a),this.values.push(b)},a}()),a=this.MutationObserver||this.WebkitMutationObserver||this.MozMutationObserver||(a=function(){function a(){"undefined"!=typeof console&&null!==console&&console.warn("MutationObserver is not supported by your browser."),"undefined"!=typeof console&&null!==console&&console.warn("WOW.js cannot detect dom mutations, please call .sync() after loading new content.")}return a.notSupported=!0,a.prototype.observe=function(){},a}()),d=this.getComputedStyle||function(a,b){return this.getPropertyValue=function(b){var c;return"float"===b&&(b="styleFloat"),e.test(b)&&b.replace(e,function(a,b){return b.toUpperCase()}),(null!=(c=a.currentStyle)?c[b]:void 0)||null},this},e=/(\-([a-z]){1})/g,this.WOW=function(){function e(a){null==a&&(a={}),this.scrollCallback=f(this.scrollCallback,this),this.scrollHandler=f(this.scrollHandler,this),this.resetAnimation=f(this.resetAnimation,this),this.start=f(this.start,this),this.scrolled=!0,this.config=this.util().extend(a,this.defaults),null!=a.scrollContainer&&(this.config.scrollContainer=document.querySelector(a.scrollContainer)),this.animationNameCache=new c,this.wowEvent=this.util().createEvent(this.config.boxClass)}return e.prototype.defaults={boxClass:"wow",animateClass:"animated",offset:0,mobile:!0,live:!0,callback:null,scrollContainer:null},e.prototype.init=function(){var a;return this.element=window.document.documentElement,"interactive"===(a=document.readyState)||"complete"===a?this.start():this.util().addEvent(document,"DOMContentLoaded",this.start),this.finished=[]},e.prototype.start=function(){var b,c,d,e;if(this.stopped=!1,this.boxes=function(){var a,c,d,e;for(d=this.element.querySelectorAll("."+this.config.boxClass),e=[],a=0,c=d.length;c>a;a++)b=d[a],e.push(b);return e}.call(this),this.all=function(){var a,c,d,e;for(d=this.boxes,e=[],a=0,c=d.length;c>a;a++)b=d[a],e.push(b);return e}.call(this),this.boxes.length)if(this.disabled())this.resetStyle();else for(e=this.boxes,c=0,d=e.length;d>c;c++)b=e[c],this.applyStyle(b,!0);return this.disabled()||(this.util().addEvent(this.config.scrollContainer||window,"scroll",this.scrollHandler),this.util().addEvent(window,"resize",this.scrollHandler),this.interval=setInterval(this.scrollCallback,50)),this.config.live?new a(function(a){return function(b){var c,d,e,f,g;for(g=[],c=0,d=b.length;d>c;c++)f=b[c],g.push(function(){var a,b,c,d;for(c=f.addedNodes||[],d=[],a=0,b=c.length;b>a;a++)e=c[a],d.push(this.doSync(e));return d}.call(a));return g}}(this)).observe(document.body,{childList:!0,subtree:!0}):void 0},e.prototype.stop=function(){return this.stopped=!0,this.util().removeEvent(this.config.scrollContainer||window,"scroll",this.scrollHandler),this.util().removeEvent(window,"resize",this.scrollHandler),null!=this.interval?clearInterval(this.interval):void 0},e.prototype.sync=function(b){return a.notSupported?this.doSync(this.element):void 0},e.prototype.doSync=function(a){var b,c,d,e,f;if(null==a&&(a=this.element),1===a.nodeType){for(a=a.parentNode||a,e=a.querySelectorAll("."+this.config.boxClass),f=[],c=0,d=e.length;d>c;c++)b=e[c],g.call(this.all,b)<0?(this.boxes.push(b),this.all.push(b),this.stopped||this.disabled()?this.resetStyle():this.applyStyle(b,!0),f.push(this.scrolled=!0)):f.push(void 0);return f}},e.prototype.show=function(a){return this.applyStyle(a),a.className=a.className+" "+this.config.animateClass,null!=this.config.callback&&this.config.callback(a),this.util().emitEvent(a,this.wowEvent),this.util().addEvent(a,"animationend",this.resetAnimation),this.util().addEvent(a,"oanimationend",this.resetAnimation),this.util().addEvent(a,"webkitAnimationEnd",this.resetAnimation),this.util().addEvent(a,"MSAnimationEnd",this.resetAnimation),a},e.prototype.applyStyle=function(a,b){var c,d,e;return d=a.getAttribute("data-wow-duration"),c=a.getAttribute("data-wow-delay"),e=a.getAttribute("data-wow-iteration"),this.animate(function(f){return function(){return f.customStyle(a,b,d,c,e)}}(this))},e.prototype.animate=function(){return"requestAnimationFrame"in window?function(a){return window.requestAnimationFrame(a)}:function(a){return a()}}(),e.prototype.resetStyle=function(){var a,b,c,d,e;for(d=this.boxes,e=[],b=0,c=d.length;c>b;b++)a=d[b],e.push(a.style.visibility="visible");return e},e.prototype.resetAnimation=function(a){var b;return a.type.toLowerCase().indexOf("animationend")>=0?(b=a.target||a.srcElement,b.className=b.className.replace(this.config.animateClass,"").trim()):void 0},e.prototype.customStyle=function(a,b,c,d,e){return b&&this.cacheAnimationName(a),a.style.visibility=b?"hidden":"visible",c&&this.vendorSet(a.style,{animationDuration:c}),d&&this.vendorSet(a.style,{animationDelay:d}),e&&this.vendorSet(a.style,{animationIterationCount:e}),this.vendorSet(a.style,{animationName:b?"none":this.cachedAnimationName(a)}),a},e.prototype.vendors=["moz","webkit"],e.prototype.vendorSet=function(a,b){var c,d,e,f;d=[];for(c in b)e=b[c],a[""+c]=e,d.push(function(){var b,d,g,h;for(g=this.vendors,h=[],b=0,d=g.length;d>b;b++)f=g[b],h.push(a[""+f+c.charAt(0).toUpperCase()+c.substr(1)]=e);return h}.call(this));return d},e.prototype.vendorCSS=function(a,b){var c,e,f,g,h,i;for(h=d(a),g=h.getPropertyCSSValue(b),f=this.vendors,c=0,e=f.length;e>c;c++)i=f[c],g=g||h.getPropertyCSSValue("-"+i+"-"+b);return g},e.prototype.animationName=function(a){var b;try{b=this.vendorCSS(a,"animation-name").cssText}catch(c){b=d(a).getPropertyValue("animation-name")}return"none"===b?"":b},e.prototype.cacheAnimationName=function(a){return this.animationNameCache.set(a,this.animationName(a))},e.prototype.cachedAnimationName=function(a){return this.animationNameCache.get(a)},e.prototype.scrollHandler=function(){return this.scrolled=!0},e.prototype.scrollCallback=function(){var a;return!this.scrolled||(this.scrolled=!1,this.boxes=function(){var b,c,d,e;for(d=this.boxes,e=[],b=0,c=d.length;c>b;b++)a=d[b],a&&(this.isVisible(a)?this.show(a):e.push(a));return e}.call(this),this.boxes.length||this.config.live)?void 0:this.stop()},e.prototype.offsetTop=function(a){for(var b;void 0===a.offsetTop;)a=a.parentNode;for(b=a.offsetTop;a=a.offsetParent;)b+=a.offsetTop;return b},e.prototype.isVisible=function(a){var b,c,d,e,f;return c=a.getAttribute("data-wow-offset")||this.config.offset,f=this.config.scrollContainer&&this.config.scrollContainer.scrollTop||window.pageYOffset,e=f+Math.min(this.element.clientHeight,this.util().innerHeight())-c,d=this.offsetTop(a),b=d+a.clientHeight,e>=d&&b>=f},e.prototype.util=function(){return null!=this._util?this._util:this._util=new b},e.prototype.disabled=function(){return!this.config.mobile&&this.util().isMobile(navigator.userAgent)},e}()}).call(this); - - -/** - * @module Owl carousel - * @version 2.2.1 - * @author Bartosz Wojciechowski - * @license MIT - */ -!function(a,b,c,d){function e(b,c){this.settings=null,this.options=a.extend({},e.Defaults,c),this.$element=a(b),this._handlers={},this._plugins={},this._supress={},this._current=null,this._speed=null,this._coordinates=[],this._breakpoint=null,this._width=null,this._items=[],this._clones=[],this._mergers=[],this._widths=[],this._invalidated={},this._pipe=[],this._drag={time:null,target:null,pointer:null,stage:{start:null,current:null},direction:null},this._states={current:{},tags:{initializing:["busy"],animating:["busy"],dragging:["interacting"]}},a.each(["onResize","onThrottledResize"],a.proxy(function(b,c){this._handlers[c]=a.proxy(this[c],this)},this)),a.each(e.Plugins,a.proxy(function(a,b){this._plugins[a.charAt(0).toLowerCase()+a.slice(1)]=new b(this)},this)),a.each(e.Workers,a.proxy(function(b,c){this._pipe.push({filter:c.filter,run:a.proxy(c.run,this)})},this)),this.setup(),this.initialize()}e.Defaults={items:3,loop:!1,center:!1,rewind:!1,mouseDrag:!0,touchDrag:!0,pullDrag:!0,freeDrag:!1,margin:0,stagePadding:0,merge:!1,mergeFit:!0,autoWidth:!1,startPosition:0,rtl:!1,smartSpeed:250,fluidSpeed:!1,dragEndSpeed:!1,responsive:{},responsiveRefreshRate:200,responsiveBaseElement:b,fallbackEasing:"swing",info:!1,nestedItemSelector:!1,itemElement:"div",stageElement:"div",refreshClass:"owl-refresh",loadedClass:"owl-loaded",loadingClass:"owl-loading",rtlClass:"owl-rtl",responsiveClass:"owl-responsive",dragClass:"owl-drag",itemClass:"owl-item",stageClass:"owl-stage",stageOuterClass:"owl-stage-outer",grabClass:"owl-grab"},e.Width={Default:"default",Inner:"inner",Outer:"outer"},e.Type={Event:"event",State:"state"},e.Plugins={},e.Workers=[{filter:["width","settings"],run:function(){this._width=this.$element.width()}},{filter:["width","items","settings"],run:function(a){a.current=this._items&&this._items[this.relative(this._current)]}},{filter:["items","settings"],run:function(){this.$stage.children(".cloned").remove()}},{filter:["width","items","settings"],run:function(a){var b=this.settings.margin||"",c=!this.settings.autoWidth,d=this.settings.rtl,e={width:"auto","margin-left":d?b:"","margin-right":d?"":b};!c&&this.$stage.children().css(e),a.css=e}},{filter:["width","items","settings"],run:function(a){var b=(this.width()/this.settings.items).toFixed(3)-this.settings.margin,c=null,d=this._items.length,e=!this.settings.autoWidth,f=[];for(a.items={merge:!1,width:b};d--;)c=this._mergers[d],c=this.settings.mergeFit&&Math.min(c,this.settings.items)||c,a.items.merge=c>1||a.items.merge,f[d]=e?b*c:this._items[d].width();this._widths=f}},{filter:["items","settings"],run:function(){var b=[],c=this._items,d=this.settings,e=Math.max(2*d.items,4),f=2*Math.ceil(c.length/2),g=d.loop&&c.length?d.rewind?e:Math.max(e,f):0,h="",i="";for(g/=2;g--;)b.push(this.normalize(b.length/2,!0)),h+=c[b[b.length-1]][0].outerHTML,b.push(this.normalize(c.length-1-(b.length-1)/2,!0)),i=c[b[b.length-1]][0].outerHTML+i;this._clones=b,a(h).addClass("cloned").appendTo(this.$stage),a(i).addClass("cloned").prependTo(this.$stage)}},{filter:["width","items","settings"],run:function(){for(var a=this.settings.rtl?1:-1,b=this._clones.length+this._items.length,c=-1,d=0,e=0,f=[];++c",h)||this.op(b,"<",g)&&this.op(b,">",h))&&i.push(c);this.$stage.children(".active").removeClass("active"),this.$stage.children(":eq("+i.join("), :eq(")+")").addClass("active"),this.settings.center&&(this.$stage.children(".center").removeClass("center"),this.$stage.children().eq(this.current()).addClass("center"))}}],e.prototype.initialize=function(){if(this.enter("initializing"),this.trigger("initialize"),this.$element.toggleClass(this.settings.rtlClass,this.settings.rtl),this.settings.autoWidth&&!this.is("pre-loading")){var b,c,e;b=this.$element.find("img"),c=this.settings.nestedItemSelector?"."+this.settings.nestedItemSelector:d,e=this.$element.children(c).width(),b.length&&e<=0&&this.preloadAutoWidthImages(b)}this.$element.addClass(this.options.loadingClass),this.$stage=a("<"+this.settings.stageElement+' class="'+this.settings.stageClass+'"/>').wrap('
-
'),this.$element.append(this.$stage.parent()),this.replace(this.$element.children().not(this.$stage.parent())),this.$element.is(":visible")?this.refresh():this.invalidate("width"),this.$element.removeClass(this.options.loadingClass).addClass(this.options.loadedClass),this.registerEventHandlers(),this.leave("initializing"),this.trigger("initialized")},e.prototype.setup=function(){var b=this.viewport(),c=this.options.responsive,d=-1,e=null;c?(a.each(c,function(a){a<=b&&a>d&&(d=Number(a))}),e=a.extend({},this.options,c[d]),"function"==typeof e.stagePadding&&(e.stagePadding=e.stagePadding()),delete e.responsive,e.responsiveClass&&this.$element.attr("class",this.$element.attr("class").replace(new RegExp("("+this.options.responsiveClass+"-)\\S+\\s","g"),"$1"+d))):e=a.extend({},this.options),this.trigger("change",{property:{name:"settings",value:e}}),this._breakpoint=d,this.settings=e,this.invalidate("settings"),this.trigger("changed",{property:{name:"settings",value:this.settings}})},e.prototype.optionsLogic=function(){this.settings.autoWidth&&(this.settings.stagePadding=!1,this.settings.merge=!1)},e.prototype.prepare=function(b){var c=this.trigger("prepare",{content:b});return c.data||(c.data=a("<"+this.settings.itemElement+"/>").addClass(this.options.itemClass).append(b)),this.trigger("prepared",{content:c.data}),c.data},e.prototype.update=function(){for(var b=0,c=this._pipe.length,d=a.proxy(function(a){return this[a]},this._invalidated),e={};b0)&&this._pipe[b].run(e),b++;this._invalidated={},!this.is("valid")&&this.enter("valid")},e.prototype.width=function(a){switch(a=a||e.Width.Default){case e.Width.Inner:case e.Width.Outer:return this._width;default:return this._width-2*this.settings.stagePadding+this.settings.margin}},e.prototype.refresh=function(){this.enter("refreshing"),this.trigger("refresh"),this.setup(),this.optionsLogic(),this.$element.addClass(this.options.refreshClass),this.update(),this.$element.removeClass(this.options.refreshClass),this.leave("refreshing"),this.trigger("refreshed")},e.prototype.onThrottledResize=function(){b.clearTimeout(this.resizeTimer),this.resizeTimer=b.setTimeout(this._handlers.onResize,this.settings.responsiveRefreshRate)},e.prototype.onResize=function(){return!!this._items.length&&(this._width!==this.$element.width()&&(!!this.$element.is(":visible")&&(this.enter("resizing"),this.trigger("resize").isDefaultPrevented()?(this.leave("resizing"),!1):(this.invalidate("width"),this.refresh(),this.leave("resizing"),void this.trigger("resized")))))},e.prototype.registerEventHandlers=function(){a.support.transition&&this.$stage.on(a.support.transition.end+".owl.core",a.proxy(this.onTransitionEnd,this)),this.settings.responsive!==!1&&this.on(b,"resize",this._handlers.onThrottledResize),this.settings.mouseDrag&&(this.$element.addClass(this.options.dragClass),this.$stage.on("mousedown.owl.core",a.proxy(this.onDragStart,this)),this.$stage.on("dragstart.owl.core selectstart.owl.core",function(){return!1})),this.settings.touchDrag&&(this.$stage.on("touchstart.owl.core",a.proxy(this.onDragStart,this)),this.$stage.on("touchcancel.owl.core",a.proxy(this.onDragEnd,this)))},e.prototype.onDragStart=function(b){var d=null;3!==b.which&&(a.support.transform?(d=this.$stage.css("transform").replace(/.*\(|\)| /g,"").split(","),d={x:d[16===d.length?12:4],y:d[16===d.length?13:5]}):(d=this.$stage.position(),d={x:this.settings.rtl?d.left+this.$stage.width()-this.width()+this.settings.margin:d.left,y:d.top}),this.is("animating")&&(a.support.transform?this.animate(d.x):this.$stage.stop(),this.invalidate("position")),this.$element.toggleClass(this.options.grabClass,"mousedown"===b.type),this.speed(0),this._drag.time=(new Date).getTime(),this._drag.target=a(b.target),this._drag.stage.start=d,this._drag.stage.current=d,this._drag.pointer=this.pointer(b),a(c).on("mouseup.owl.core touchend.owl.core",a.proxy(this.onDragEnd,this)),a(c).one("mousemove.owl.core touchmove.owl.core",a.proxy(function(b){var d=this.difference(this._drag.pointer,this.pointer(b));a(c).on("mousemove.owl.core touchmove.owl.core",a.proxy(this.onDragMove,this)),Math.abs(d.x)0^this.settings.rtl?"left":"right";a(c).off(".owl.core"),this.$element.removeClass(this.options.grabClass),(0!==d.x&&this.is("dragging")||!this.is("valid"))&&(this.speed(this.settings.dragEndSpeed||this.settings.smartSpeed),this.current(this.closest(e.x,0!==d.x?f:this._drag.direction)),this.invalidate("position"),this.update(),this._drag.direction=f,(Math.abs(d.x)>3||(new Date).getTime()-this._drag.time>300)&&this._drag.target.one("click.owl.core",function(){return!1})),this.is("dragging")&&(this.leave("dragging"),this.trigger("dragged"))},e.prototype.closest=function(b,c){var d=-1,e=30,f=this.width(),g=this.coordinates();return this.settings.freeDrag||a.each(g,a.proxy(function(a,h){return"left"===c&&b>h-e&&bh-f-e&&b",g[a+1]||h-f)&&(d="left"===c?a+1:a),d===-1},this)),this.settings.loop||(this.op(b,">",g[this.minimum()])?d=b=this.minimum():this.op(b,"<",g[this.maximum()])&&(d=b=this.maximum())),d},e.prototype.animate=function(b){var c=this.speed()>0;this.is("animating")&&this.onTransitionEnd(),c&&(this.enter("animating"),this.trigger("translate")),a.support.transform3d&&a.support.transition?this.$stage.css({transform:"translate3d("+b+"px,0px,0px)",transition:this.speed()/1e3+"s"}):c?this.$stage.animate({left:b+"px"},this.speed(),this.settings.fallbackEasing,a.proxy(this.onTransitionEnd,this)):this.$stage.css({left:b+"px"})},e.prototype.is=function(a){return this._states.current[a]&&this._states.current[a]>0},e.prototype.current=function(a){if(a===d)return this._current;if(0===this._items.length)return d;if(a=this.normalize(a),this._current!==a){var b=this.trigger("change",{property:{name:"position",value:a}});b.data!==d&&(a=this.normalize(b.data)),this._current=a,this.invalidate("position"),this.trigger("changed",{property:{name:"position",value:this._current}})}return this._current},e.prototype.invalidate=function(b){return"string"===a.type(b)&&(this._invalidated[b]=!0,this.is("valid")&&this.leave("valid")),a.map(this._invalidated,function(a,b){return b})},e.prototype.reset=function(a){a=this.normalize(a),a!==d&&(this._speed=0,this._current=a,this.suppress(["translate","translated"]),this.animate(this.coordinates(a)),this.release(["translate","translated"]))},e.prototype.normalize=function(a,b){var c=this._items.length,e=b?0:this._clones.length;return!this.isNumeric(a)||c<1?a=d:(a<0||a>=c+e)&&(a=((a-e/2)%c+c)%c+e/2),a},e.prototype.relative=function(a){return a-=this._clones.length/2,this.normalize(a,!0)},e.prototype.maximum=function(a){var b,c,d,e=this.settings,f=this._coordinates.length;if(e.loop)f=this._clones.length/2+this._items.length-1;else if(e.autoWidth||e.merge){for(b=this._items.length,c=this._items[--b].width(),d=this.$element.width();b--&&(c+=this._items[b].width()+this.settings.margin,!(c>d)););f=b+1}else f=e.center?this._items.length-1:this._items.length-e.items;return a&&(f-=this._clones.length/2),Math.max(f,0)},e.prototype.minimum=function(a){return a?0:this._clones.length/2},e.prototype.items=function(a){return a===d?this._items.slice():(a=this.normalize(a,!0),this._items[a])},e.prototype.mergers=function(a){return a===d?this._mergers.slice():(a=this.normalize(a,!0),this._mergers[a])},e.prototype.clones=function(b){var c=this._clones.length/2,e=c+this._items.length,f=function(a){return a%2===0?e+a/2:c-(a+1)/2};return b===d?a.map(this._clones,function(a,b){return f(b)}):a.map(this._clones,function(a,c){return a===b?f(c):null})},e.prototype.speed=function(a){return a!==d&&(this._speed=a),this._speed},e.prototype.coordinates=function(b){var c,e=1,f=b-1;return b===d?a.map(this._coordinates,a.proxy(function(a,b){return this.coordinates(b)},this)):(this.settings.center?(this.settings.rtl&&(e=-1,f=b+1),c=this._coordinates[b],c+=(this.width()-c+(this._coordinates[f]||0))/2*e):c=this._coordinates[f]||0,c=Math.ceil(c))},e.prototype.duration=function(a,b,c){return 0===c?0:Math.min(Math.max(Math.abs(b-a),1),6)*Math.abs(c||this.settings.smartSpeed)},e.prototype.to=function(a,b){var c=this.current(),d=null,e=a-this.relative(c),f=(e>0)-(e<0),g=this._items.length,h=this.minimum(),i=this.maximum();this.settings.loop?(!this.settings.rewind&&Math.abs(e)>g/2&&(e+=f*-1*g),a=c+e,d=((a-h)%g+g)%g+h,d!==a&&d-e<=i&&d-e>0&&(c=d-e,a=d,this.reset(c))):this.settings.rewind?(i+=1,a=(a%i+i)%i):a=Math.max(h,Math.min(i,a)),this.speed(this.duration(c,a,b)),this.current(a),this.$element.is(":visible")&&this.update()},e.prototype.next=function(a){a=a||!1,this.to(this.relative(this.current())+1,a)},e.prototype.prev=function(a){a=a||!1,this.to(this.relative(this.current())-1,a)},e.prototype.onTransitionEnd=function(a){if(a!==d&&(a.stopPropagation(),(a.target||a.srcElement||a.originalTarget)!==this.$stage.get(0)))return!1;this.leave("animating"),this.trigger("translated")},e.prototype.viewport=function(){var d;return this.options.responsiveBaseElement!==b?d=a(this.options.responsiveBaseElement).width():b.innerWidth?d=b.innerWidth:c.documentElement&&c.documentElement.clientWidth?d=c.documentElement.clientWidth:console.warn("Can not detect viewport width."),d},e.prototype.replace=function(b){this.$stage.empty(),this._items=[],b&&(b=b instanceof jQuery?b:a(b)),this.settings.nestedItemSelector&&(b=b.find("."+this.settings.nestedItemSelector)),b.filter(function(){return 1===this.nodeType}).each(a.proxy(function(a,b){b=this.prepare(b),this.$stage.append(b),this._items.push(b),this._mergers.push(1*b.find("[data-merge]").addBack("[data-merge]").attr("data-merge")||1)},this)),this.reset(this.isNumeric(this.settings.startPosition)?this.settings.startPosition:0),this.invalidate("items")},e.prototype.add=function(b,c){var e=this.relative(this._current);c=c===d?this._items.length:this.normalize(c,!0),b=b instanceof jQuery?b:a(b),this.trigger("add",{content:b,position:c}),b=this.prepare(b),0===this._items.length||c===this._items.length?(0===this._items.length&&this.$stage.append(b),0!==this._items.length&&this._items[c-1].after(b),this._items.push(b),this._mergers.push(1*b.find("[data-merge]").addBack("[data-merge]").attr("data-merge")||1)):(this._items[c].before(b),this._items.splice(c,0,b),this._mergers.splice(c,0,1*b.find("[data-merge]").addBack("[data-merge]").attr("data-merge")||1)),this._items[e]&&this.reset(this._items[e].index()),this.invalidate("items"),this.trigger("added",{content:b,position:c})},e.prototype.remove=function(a){a=this.normalize(a,!0),a!==d&&(this.trigger("remove",{content:this._items[a],position:a}),this._items[a].remove(),this._items.splice(a,1),this._mergers.splice(a,1),this.invalidate("items"),this.trigger("removed",{content:null,position:a}))},e.prototype.preloadAutoWidthImages=function(b){b.each(a.proxy(function(b,c){this.enter("pre-loading"),c=a(c),a(new Image).one("load",a.proxy(function(a){c.attr("src",a.target.src),c.css("opacity",1),this.leave("pre-loading"),!this.is("pre-loading")&&!this.is("initializing")&&this.refresh()},this)).attr("src",c.attr("src")||c.attr("data-src")||c.attr("data-src-retina"))},this))},e.prototype.destroy=function(){this.$element.off(".owl.core"),this.$stage.off(".owl.core"),a(c).off(".owl.core"),this.settings.responsive!==!1&&(b.clearTimeout(this.resizeTimer),this.off(b,"resize",this._handlers.onThrottledResize));for(var d in this._plugins)this._plugins[d].destroy();this.$stage.children(".cloned").remove(),this.$stage.unwrap(),this.$stage.children().contents().unwrap(),this.$stage.children().unwrap(),this.$element.removeClass(this.options.refreshClass).removeClass(this.options.loadingClass).removeClass(this.options.loadedClass).removeClass(this.options.rtlClass).removeClass(this.options.dragClass).removeClass(this.options.grabClass).attr("class",this.$element.attr("class").replace(new RegExp(this.options.responsiveClass+"-\\S+\\s","g"),"")).removeData("owl.carousel")},e.prototype.op=function(a,b,c){var d=this.settings.rtl;switch(b){case"<":return d?a>c:a":return d?ac;case">=":return d?a<=c:a>=c;case"<=":return d?a>=c:a<=c}},e.prototype.on=function(a,b,c,d){a.addEventListener?a.addEventListener(b,c,d):a.attachEvent&&a.attachEvent("on"+b,c)},e.prototype.off=function(a,b,c,d){a.removeEventListener?a.removeEventListener(b,c,d):a.detachEvent&&a.detachEvent("on"+b,c)},e.prototype.trigger=function(b,c,d,f,g){var h={item:{count:this._items.length,index:this.current()}},i=a.camelCase(a.grep(["on",b,d],function(a){return a}).join("-").toLowerCase()),j=a.Event([b,"owl",d||"carousel"].join(".").toLowerCase(),a.extend({relatedTarget:this},h,c));return this._supress[b]||(a.each(this._plugins,function(a,b){b.onTrigger&&b.onTrigger(j)}),this.register({type:e.Type.Event,name:b}),this.$element.trigger(j),this.settings&&"function"==typeof this.settings[i]&&this.settings[i].call(this,j)),j},e.prototype.enter=function(b){a.each([b].concat(this._states.tags[b]||[]),a.proxy(function(a,b){this._states.current[b]===d&&(this._states.current[b]=0),this._states.current[b]++},this))},e.prototype.leave=function(b){a.each([b].concat(this._states.tags[b]||[]),a.proxy(function(a,b){this._states.current[b]--},this))},e.prototype.register=function(b){if(b.type===e.Type.Event){if(a.event.special[b.name]||(a.event.special[b.name]={}),!a.event.special[b.name].owl){var c=a.event.special[b.name]._default;a.event.special[b.name]._default=function(a){return!c||!c.apply||a.namespace&&a.namespace.indexOf("owl")!==-1?a.namespace&&a.namespace.indexOf("owl")>-1:c.apply(this,arguments)},a.event.special[b.name].owl=!0}}else b.type===e.Type.State&&(this._states.tags[b.name]?this._states.tags[b.name]=this._states.tags[b.name].concat(b.tags):this._states.tags[b.name]=b.tags,this._states.tags[b.name]=a.grep(this._states.tags[b.name],a.proxy(function(c,d){return a.inArray(c,this._states.tags[b.name])===d},this)))},e.prototype.suppress=function(b){a.each(b,a.proxy(function(a,b){this._supress[b]=!0},this))},e.prototype.release=function(b){a.each(b,a.proxy(function(a,b){delete this._supress[b]},this))},e.prototype.pointer=function(a){var c={x:null,y:null};return a=a.originalEvent||a||b.event,a=a.touches&&a.touches.length?a.touches[0]:a.changedTouches&&a.changedTouches.length?a.changedTouches[0]:a,a.pageX?(c.x=a.pageX,c.y=a.pageY):(c.x=a.clientX,c.y=a.clientY),c},e.prototype.isNumeric=function(a){return!isNaN(parseFloat(a))},e.prototype.difference=function(a,b){return{x:a.x-b.x,y:a.y-b.y}},a.fn.owlCarousel=function(b){var c=Array.prototype.slice.call(arguments,1);return this.each(function(){var d=a(this),f=d.data("owl.carousel");f||(f=new e(this,"object"==typeof b&&b),d.data("owl.carousel",f),a.each(["next","prev","to","destroy","refresh","replace","add","remove"],function(b,c){f.register({type:e.Type.Event,name:c}),f.$element.on(c+".owl.carousel.core",a.proxy(function(a){a.namespace&&a.relatedTarget!==this&&(this.suppress([c]),f[c].apply(this,[].slice.call(arguments,1)),this.release([c]))},f))})),"string"==typeof b&&"_"!==b.charAt(0)&&f[b].apply(f,c)})},a.fn.owlCarousel.Constructor=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var e=function(b){this._core=b,this._interval=null,this._visible=null,this._handlers={"initialized.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.autoRefresh&&this.watch()},this)},this._core.options=a.extend({},e.Defaults,this._core.options),this._core.$element.on(this._handlers)};e.Defaults={autoRefresh:!0,autoRefreshInterval:500},e.prototype.watch=function(){this._interval||(this._visible=this._core.$element.is(":visible"),this._interval=b.setInterval(a.proxy(this.refresh,this),this._core.settings.autoRefreshInterval))},e.prototype.refresh=function(){this._core.$element.is(":visible")!==this._visible&&(this._visible=!this._visible,this._core.$element.toggleClass("owl-hidden",!this._visible),this._visible&&this._core.invalidate("width")&&this._core.refresh())},e.prototype.destroy=function(){var a,c;b.clearInterval(this._interval);for(a in this._handlers)this._core.$element.off(a,this._handlers[a]);for(c in Object.getOwnPropertyNames(this))"function"!=typeof this[c]&&(this[c]=null)},a.fn.owlCarousel.Constructor.Plugins.AutoRefresh=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var e=function(b){this._core=b,this._loaded=[],this._handlers={"initialized.owl.carousel change.owl.carousel resized.owl.carousel":a.proxy(function(b){if(b.namespace&&this._core.settings&&this._core.settings.lazyLoad&&(b.property&&"position"==b.property.name||"initialized"==b.type))for(var c=this._core.settings,e=c.center&&Math.ceil(c.items/2)||c.items,f=c.center&&e*-1||0,g=(b.property&&b.property.value!==d?b.property.value:this._core.current())+f,h=this._core.clones().length,i=a.proxy(function(a,b){this.load(b)},this);f++-1||(e.each(a.proxy(function(c,d){var e,f=a(d),g=b.devicePixelRatio>1&&f.attr("data-src-retina")||f.attr("data-src");this._core.trigger("load",{element:f,url:g},"lazy"),f.is("img")?f.one("load.owl.lazy",a.proxy(function(){f.css("opacity",1),this._core.trigger("loaded",{element:f,url:g},"lazy")},this)).attr("src",g):(e=new Image,e.onload=a.proxy(function(){f.css({"background-image":'url("'+g+'")',opacity:"1"}),this._core.trigger("loaded",{element:f,url:g},"lazy")},this),e.src=g)},this)),this._loaded.push(d.get(0)))},e.prototype.destroy=function(){var a,b;for(a in this.handlers)this._core.$element.off(a,this.handlers[a]);for(b in Object.getOwnPropertyNames(this))"function"!=typeof this[b]&&(this[b]=null)},a.fn.owlCarousel.Constructor.Plugins.Lazy=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var e=function(b){this._core=b,this._handlers={"initialized.owl.carousel refreshed.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.autoHeight&&this.update()},this),"changed.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.autoHeight&&"position"==a.property.name&&this.update()},this),"loaded.owl.lazy":a.proxy(function(a){a.namespace&&this._core.settings.autoHeight&&a.element.closest("."+this._core.settings.itemClass).index()===this._core.current()&&this.update()},this)},this._core.options=a.extend({},e.Defaults,this._core.options),this._core.$element.on(this._handlers)};e.Defaults={autoHeight:!1,autoHeightClass:"owl-height"},e.prototype.update=function(){var b=this._core._current,c=b+this._core.settings.items,d=this._core.$stage.children().toArray().slice(b,c),e=[],f=0;a.each(d,function(b,c){e.push(a(c).height())}),f=Math.max.apply(null,e),this._core.$stage.parent().height(f).addClass(this._core.settings.autoHeightClass)},e.prototype.destroy=function(){var a,b;for(a in this._handlers)this._core.$element.off(a,this._handlers[a]);for(b in Object.getOwnPropertyNames(this))"function"!=typeof this[b]&&(this[b]=null)},a.fn.owlCarousel.Constructor.Plugins.AutoHeight=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var e=function(b){this._core=b,this._videos={},this._playing=null,this._handlers={"initialized.owl.carousel":a.proxy(function(a){a.namespace&&this._core.register({type:"state",name:"playing",tags:["interacting"]})},this),"resize.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.video&&this.isInFullScreen()&&a.preventDefault()},this),"refreshed.owl.carousel":a.proxy(function(a){a.namespace&&this._core.is("resizing")&&this._core.$stage.find(".cloned .owl-video-frame").remove()},this),"changed.owl.carousel":a.proxy(function(a){a.namespace&&"position"===a.property.name&&this._playing&&this.stop()},this),"prepared.owl.carousel":a.proxy(function(b){if(b.namespace){var c=a(b.content).find(".owl-video");c.length&&(c.css("display","none"),this.fetch(c,a(b.content)))}},this)},this._core.options=a.extend({},e.Defaults,this._core.options),this._core.$element.on(this._handlers),this._core.$element.on("click.owl.video",".owl-video-play-icon",a.proxy(function(a){this.play(a)},this))};e.Defaults={video:!1,videoHeight:!1,videoWidth:!1},e.prototype.fetch=function(a,b){var c=function(){return a.attr("data-vimeo-id")?"vimeo":a.attr("data-vzaar-id")?"vzaar":"youtube"}(),d=a.attr("data-vimeo-id")||a.attr("data-youtube-id")||a.attr("data-vzaar-id"),e=a.attr("data-width")||this._core.settings.videoWidth,f=a.attr("data-height")||this._core.settings.videoHeight,g=a.attr("href");if(!g)throw new Error("Missing video URL.");if(d=g.match(/(http:|https:|)\/\/(player.|www.|app.)?(vimeo\.com|youtu(be\.com|\.be|be\.googleapis\.com)|vzaar\.com)\/(video\/|videos\/|embed\/|channels\/.+\/|groups\/.+\/|watch\?v=|v\/)?([A-Za-z0-9._%-]*)(\&\S+)?/),d[3].indexOf("youtu")>-1)c="youtube";else if(d[3].indexOf("vimeo")>-1)c="vimeo";else{if(!(d[3].indexOf("vzaar")>-1))throw new Error("Video URL not supported.");c="vzaar"}d=d[6],this._videos[g]={type:c,id:d,width:e,height:f},b.attr("data-video",g),this.thumbnail(a,this._videos[g])},e.prototype.thumbnail=function(b,c){var d,e,f,g=c.width&&c.height?'style="width:'+c.width+"px;height:"+c.height+'px;"':"",h=b.find("img"),i="src",j="",k=this._core.settings,l=function(a){e='
',d=k.lazyLoad?'
':'
',b.after(d),b.after(e)};if(b.wrap('
"),this._core.settings.lazyLoad&&(i="data-src",j="owl-lazy"),h.length)return l(h.attr(i)),h.remove(),!1;"youtube"===c.type?(f="//img.youtube.com/vi/"+c.id+"/hqdefault.jpg",l(f)):"vimeo"===c.type?a.ajax({type:"GET",url:"//vimeo.com/api/v2/video/"+c.id+".json",jsonp:"callback",dataType:"jsonp",success:function(a){f=a[0].thumbnail_large,l(f)}}):"vzaar"===c.type&&a.ajax({type:"GET",url:"//vzaar.com/api/videos/"+c.id+".json",jsonp:"callback",dataType:"jsonp",success:function(a){f=a.framegrab_url,l(f)}})},e.prototype.stop=function(){this._core.trigger("stop",null,"video"),this._playing.find(".owl-video-frame").remove(),this._playing.removeClass("owl-video-playing"),this._playing=null,this._core.leave("playing"),this._core.trigger("stopped",null,"video")},e.prototype.play=function(b){var c,d=a(b.target),e=d.closest("."+this._core.settings.itemClass),f=this._videos[e.attr("data-video")],g=f.width||"100%",h=f.height||this._core.$stage.height();this._playing||(this._core.enter("playing"),this._core.trigger("play",null,"video"),e=this._core.items(this._core.relative(e.index())),this._core.reset(e.index()),"youtube"===f.type?c='':"vimeo"===f.type?c='':"vzaar"===f.type&&(c=''),a('
'+c+"
").insertAfter(e.find(".owl-video")),this._playing=e.addClass("owl-video-playing"))},e.prototype.isInFullScreen=function(){var b=c.fullscreenElement||c.mozFullScreenElement||c.webkitFullscreenElement;return b&&a(b).parent().hasClass("owl-video-frame")},e.prototype.destroy=function(){var a,b;this._core.$element.off("click.owl.video");for(a in this._handlers)this._core.$element.off(a,this._handlers[a]);for(b in Object.getOwnPropertyNames(this))"function"!=typeof this[b]&&(this[b]=null)},a.fn.owlCarousel.Constructor.Plugins.Video=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var e=function(b){this.core=b,this.core.options=a.extend({},e.Defaults,this.core.options),this.swapping=!0,this.previous=d,this.next=d,this.handlers={"change.owl.carousel":a.proxy(function(a){a.namespace&&"position"==a.property.name&&(this.previous=this.core.current(),this.next=a.property.value)},this),"drag.owl.carousel dragged.owl.carousel translated.owl.carousel":a.proxy(function(a){a.namespace&&(this.swapping="translated"==a.type)},this),"translate.owl.carousel":a.proxy(function(a){a.namespace&&this.swapping&&(this.core.options.animateOut||this.core.options.animateIn)&&this.swap()},this)},this.core.$element.on(this.handlers)};e.Defaults={animateOut:!1,animateIn:!1},e.prototype.swap=function(){if(1===this.core.settings.items&&a.support.animation&&a.support.transition){this.core.speed(0);var b,c=a.proxy(this.clear,this),d=this.core.$stage.children().eq(this.previous),e=this.core.$stage.children().eq(this.next),f=this.core.settings.animateIn,g=this.core.settings.animateOut;this.core.current()!==this.previous&&(g&&(b=this.core.coordinates(this.previous)-this.core.coordinates(this.next),d.one(a.support.animation.end,c).css({left:b+"px"}).addClass("animated owl-animated-out").addClass(g)),f&&e.one(a.support.animation.end,c).addClass("animated owl-animated-in").addClass(f))}},e.prototype.clear=function(b){a(b.target).css({left:""}).removeClass("animated owl-animated-out owl-animated-in").removeClass(this.core.settings.animateIn).removeClass(this.core.settings.animateOut),this.core.onTransitionEnd()},e.prototype.destroy=function(){var a,b;for(a in this.handlers)this.core.$element.off(a,this.handlers[a]);for(b in Object.getOwnPropertyNames(this))"function"!=typeof this[b]&&(this[b]=null)}, - a.fn.owlCarousel.Constructor.Plugins.Animate=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var e=function(b){this._core=b,this._timeout=null,this._paused=!1,this._handlers={"changed.owl.carousel":a.proxy(function(a){a.namespace&&"settings"===a.property.name?this._core.settings.autoplay?this.play():this.stop():a.namespace&&"position"===a.property.name&&this._core.settings.autoplay&&this._setAutoPlayInterval()},this),"initialized.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.autoplay&&this.play()},this),"play.owl.autoplay":a.proxy(function(a,b,c){a.namespace&&this.play(b,c)},this),"stop.owl.autoplay":a.proxy(function(a){a.namespace&&this.stop()},this),"mouseover.owl.autoplay":a.proxy(function(){this._core.settings.autoplayHoverPause&&this._core.is("rotating")&&this.pause()},this),"mouseleave.owl.autoplay":a.proxy(function(){this._core.settings.autoplayHoverPause&&this._core.is("rotating")&&this.play()},this),"touchstart.owl.core":a.proxy(function(){this._core.settings.autoplayHoverPause&&this._core.is("rotating")&&this.pause()},this),"touchend.owl.core":a.proxy(function(){this._core.settings.autoplayHoverPause&&this.play()},this)},this._core.$element.on(this._handlers),this._core.options=a.extend({},e.Defaults,this._core.options)};e.Defaults={autoplay:!1,autoplayTimeout:5e3,autoplayHoverPause:!1,autoplaySpeed:!1},e.prototype.play=function(a,b){this._paused=!1,this._core.is("rotating")||(this._core.enter("rotating"),this._setAutoPlayInterval())},e.prototype._getNextTimeout=function(d,e){return this._timeout&&b.clearTimeout(this._timeout),b.setTimeout(a.proxy(function(){this._paused||this._core.is("busy")||this._core.is("interacting")||c.hidden||this._core.next(e||this._core.settings.autoplaySpeed)},this),d||this._core.settings.autoplayTimeout)},e.prototype._setAutoPlayInterval=function(){this._timeout=this._getNextTimeout()},e.prototype.stop=function(){this._core.is("rotating")&&(b.clearTimeout(this._timeout),this._core.leave("rotating"))},e.prototype.pause=function(){this._core.is("rotating")&&(this._paused=!0)},e.prototype.destroy=function(){var a,b;this.stop();for(a in this._handlers)this._core.$element.off(a,this._handlers[a]);for(b in Object.getOwnPropertyNames(this))"function"!=typeof this[b]&&(this[b]=null)},a.fn.owlCarousel.Constructor.Plugins.autoplay=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){"use strict";var e=function(b){this._core=b,this._initialized=!1,this._pages=[],this._controls={},this._templates=[],this.$element=this._core.$element,this._overrides={next:this._core.next,prev:this._core.prev,to:this._core.to},this._handlers={"prepared.owl.carousel":a.proxy(function(b){b.namespace&&this._core.settings.dotsData&&this._templates.push('
'+a(b.content).find("[data-dot]").addBack("[data-dot]").attr("data-dot")+"
")},this),"added.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.dotsData&&this._templates.splice(a.position,0,this._templates.pop())},this),"remove.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.dotsData&&this._templates.splice(a.position,1)},this),"changed.owl.carousel":a.proxy(function(a){a.namespace&&"position"==a.property.name&&this.draw()},this),"initialized.owl.carousel":a.proxy(function(a){a.namespace&&!this._initialized&&(this._core.trigger("initialize",null,"navigation"),this.initialize(),this.update(),this.draw(),this._initialized=!0,this._core.trigger("initialized",null,"navigation"))},this),"refreshed.owl.carousel":a.proxy(function(a){a.namespace&&this._initialized&&(this._core.trigger("refresh",null,"navigation"),this.update(),this.draw(),this._core.trigger("refreshed",null,"navigation"))},this)},this._core.options=a.extend({},e.Defaults,this._core.options),this.$element.on(this._handlers)};e.Defaults={nav:!1,navText:["prev","next"],navSpeed:!1,navElement:"div",navContainer:!1,navContainerClass:"owl-nav",navClass:["owl-prev","owl-next"],slideBy:1,dotClass:"owl-dot",dotsClass:"owl-dots",dots:!0,dotsEach:!1,dotsData:!1,dotsSpeed:!1,dotsContainer:!1},e.prototype.initialize=function(){var b,c=this._core.settings;this._controls.$relative=(c.navContainer?a(c.navContainer):a("
").addClass(c.navContainerClass).appendTo(this.$element)).addClass("disabled"),this._controls.$previous=a("<"+c.navElement+">").addClass(c.navClass[0]).html(c.navText[0]).prependTo(this._controls.$relative).on("click",a.proxy(function(a){this.prev(c.navSpeed)},this)),this._controls.$next=a("<"+c.navElement+">").addClass(c.navClass[1]).html(c.navText[1]).appendTo(this._controls.$relative).on("click",a.proxy(function(a){this.next(c.navSpeed)},this)),c.dotsData||(this._templates=[a("
").addClass(c.dotClass).append(a("")).prop("outerHTML")]),this._controls.$absolute=(c.dotsContainer?a(c.dotsContainer):a("
").addClass(c.dotsClass).appendTo(this.$element)).addClass("disabled"),this._controls.$absolute.on("click","div",a.proxy(function(b){var d=a(b.target).parent().is(this._controls.$absolute)?a(b.target).index():a(b.target).parent().index();b.preventDefault(),this.to(d,c.dotsSpeed)},this));for(b in this._overrides)this._core[b]=a.proxy(this[b],this)},e.prototype.destroy=function(){var a,b,c,d;for(a in this._handlers)this.$element.off(a,this._handlers[a]);for(b in this._controls)this._controls[b].remove();for(d in this.overides)this._core[d]=this._overrides[d];for(c in Object.getOwnPropertyNames(this))"function"!=typeof this[c]&&(this[c]=null)},e.prototype.update=function(){var a,b,c,d=this._core.clones().length/2,e=d+this._core.items().length,f=this._core.maximum(!0),g=this._core.settings,h=g.center||g.autoWidth||g.dotsData?1:g.dotsEach||g.items;if("page"!==g.slideBy&&(g.slideBy=Math.min(g.slideBy,g.items)),g.dots||"page"==g.slideBy)for(this._pages=[],a=d,b=0,c=0;a=h||0===b){if(this._pages.push({start:Math.min(f,a-d),end:a-d+h-1}),Math.min(f,a-d)===f)break;b=0,++c}b+=this._core.mergers(this._core.relative(a))}},e.prototype.draw=function(){var b,c=this._core.settings,d=this._core.items().length<=c.items,e=this._core.relative(this._core.current()),f=c.loop||c.rewind;this._controls.$relative.toggleClass("disabled",!c.nav||d),c.nav&&(this._controls.$previous.toggleClass("disabled",!f&&e<=this._core.minimum(!0)),this._controls.$next.toggleClass("disabled",!f&&e>=this._core.maximum(!0))),this._controls.$absolute.toggleClass("disabled",!c.dots||d),c.dots&&(b=this._pages.length-this._controls.$absolute.children().length,c.dotsData&&0!==b?this._controls.$absolute.html(this._templates.join("")):b>0?this._controls.$absolute.append(new Array(b+1).join(this._templates[0])):b<0&&this._controls.$absolute.children().slice(b).remove(),this._controls.$absolute.find(".active").removeClass("active"),this._controls.$absolute.children().eq(a.inArray(this.current(),this._pages)).addClass("active"))},e.prototype.onTrigger=function(b){var c=this._core.settings;b.page={index:a.inArray(this.current(),this._pages),count:this._pages.length,size:c&&(c.center||c.autoWidth||c.dotsData?1:c.dotsEach||c.items)}},e.prototype.current=function(){var b=this._core.relative(this._core.current());return a.grep(this._pages,a.proxy(function(a,c){return a.start<=b&&a.end>=b},this)).pop()},e.prototype.getPosition=function(b){var c,d,e=this._core.settings;return"page"==e.slideBy?(c=a.inArray(this.current(),this._pages),d=this._pages.length,b?++c:--c,c=this._pages[(c%d+d)%d].start):(c=this._core.relative(this._core.current()),d=this._core.items().length,b?c+=e.slideBy:c-=e.slideBy),c},e.prototype.next=function(b){a.proxy(this._overrides.to,this._core)(this.getPosition(!0),b)},e.prototype.prev=function(b){a.proxy(this._overrides.to,this._core)(this.getPosition(!1),b)},e.prototype.to=function(b,c,d){var e;!d&&this._pages.length?(e=this._pages.length,a.proxy(this._overrides.to,this._core)(this._pages[(b%e+e)%e].start,c)):a.proxy(this._overrides.to,this._core)(b,c)},a.fn.owlCarousel.Constructor.Plugins.Navigation=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){"use strict";var e=function(c){this._core=c,this._hashes={},this.$element=this._core.$element,this._handlers={"initialized.owl.carousel":a.proxy(function(c){c.namespace&&"URLHash"===this._core.settings.startPosition&&a(b).trigger("hashchange.owl.navigation")},this),"prepared.owl.carousel":a.proxy(function(b){if(b.namespace){var c=a(b.content).find("[data-hash]").addBack("[data-hash]").attr("data-hash");if(!c)return;this._hashes[c]=b.content}},this),"changed.owl.carousel":a.proxy(function(c){if(c.namespace&&"position"===c.property.name){var d=this._core.items(this._core.relative(this._core.current())),e=a.map(this._hashes,function(a,b){return a===d?b:null}).join();if(!e||b.location.hash.slice(1)===e)return;b.location.hash=e}},this)},this._core.options=a.extend({},e.Defaults,this._core.options),this.$element.on(this._handlers),a(b).on("hashchange.owl.navigation",a.proxy(function(a){var c=b.location.hash.substring(1),e=this._core.$stage.children(),f=this._hashes[c]&&e.index(this._hashes[c]);f!==d&&f!==this._core.current()&&this._core.to(this._core.relative(f),!1,!0)},this))};e.Defaults={URLhashListener:!1},e.prototype.destroy=function(){var c,d;a(b).off("hashchange.owl.navigation");for(c in this._handlers)this._core.$element.off(c,this._handlers[c]);for(d in Object.getOwnPropertyNames(this))"function"!=typeof this[d]&&(this[d]=null)},a.fn.owlCarousel.Constructor.Plugins.Hash=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){function e(b,c){var e=!1,f=b.charAt(0).toUpperCase()+b.slice(1);return a.each((b+" "+h.join(f+" ")+f).split(" "),function(a,b){if(g[b]!==d)return e=!c||b,!1}),e}function f(a){return e(a,!0)}var g=a("").get(0).style,h="Webkit Moz O ms".split(" "),i={transition:{end:{WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd",transition:"transitionend"}},animation:{end:{WebkitAnimation:"webkitAnimationEnd",MozAnimation:"animationend",OAnimation:"oAnimationEnd",animation:"animationend"}}},j={csstransforms:function(){return!!e("transform")},csstransforms3d:function(){return!!e("perspective")},csstransitions:function(){return!!e("transition")},cssanimations:function(){return!!e("animation")}};j.csstransitions()&&(a.support.transition=new String(f("transition")),a.support.transition.end=i.transition.end[a.support.transition]),j.cssanimations()&&(a.support.animation=new String(f("animation")),a.support.animation.end=i.animation.end[a.support.animation]),j.csstransforms()&&(a.support.transform=new String(f("transform")),a.support.transform3d=j.csstransforms3d())}(window.Zepto||window.jQuery,window,document); - - -/** - * @module RD Navbar - * @author Evgeniy Gusarov - * @see https://ua.linkedin.com/pub/evgeniy-gusarov/8a/a40/54a - * @version 2.2.5 - */ -/** - * @module RD Navbar - * @author Evgeniy Gusarov - * @version 2.2.5 - */ -(function() { - var isTouch; - - isTouch = "ontouchstart" in window; - - (function($, document, window) { - - /** - * Creates a RDNavbar. - * @class RDNavbar. - * @public - * @param {HTMLElement} element - The element to create the RDNavbar for. - * @param {Object} [options] - The options - */ - var RDNavbar; - RDNavbar = (function() { - - /** - * Default options for RDNavbar. - * @protected - */ - RDNavbar.prototype.Defaults = { - layout: 'rd-navbar-static', - deviceLayout: 'rd-navbar-fixed', - focusOnHover: true, - focusOnHoverTimeout: 800, - linkedElements: ["html"], - domAppend: true, - stickUp: true, - stickUpClone: true, - stickUpOffset: '100%', - anchorNav: true, - anchorNavSpeed: 400, - anchorNavOffset: 0, - anchorNavEasing: 'swing', - autoHeight: true, - responsive: { - 0: { - layout: "rd-navbar-fixed", - deviceLayout: "rd-navbar-fixed", - focusOnHover: false, - stickUp: false - }, - 992: { - layout: "rd-navbar-static", - deviceLayout: "rd-navbar-static", - focusOnHover: true, - stickUp: true - } - }, - callbacks: { - onToggleSwitch: false, - onToggleClose: false, - onDomAppend: false, - onDropdownOver: false, - onDropdownOut: false, - onDropdownToggle: false, - onDropdownClose: false, - onStuck: false, - onUnstuck: false, - onAnchorChange: false - } - }; - - function RDNavbar(element, options) { - - /** - * Current options set - * @public - */ - this.options = $.extend(true, {}, this.Defaults, options); - - /** - * Plugin element - * @public - */ - this.$element = $(element); - - /** - * Plugin element clone - * @public - */ - this.$clone = null; - - /** - * Additional references - * @public - */ - this.$win = $(window); - this.$doc = $(document); - this.currentLayout = this.options.layout; - this.loaded = false; - this.focusOnHover = this.options.focusOnHover; - this.focusTimer = false; - this.cloneTimer = false; - this.isStuck = false; - this.initialize(); - } - - - /** - * Initializes the RDNavbar. - * @protected - */ - - RDNavbar.prototype.initialize = function() { - var ctx; - ctx = this; - ctx.$element.addClass("rd-navbar").addClass(ctx.options.layout); - if (isTouch) { - ctx.$element.addClass("rd-navbar--is-touch"); - } - if (ctx.options.domAppend) { - ctx.createNav(ctx); - } - if (ctx.options.stickUpClone) { - ctx.createClone(ctx); - } - ctx.$element.addClass('rd-navbar-original'); - ctx.addAdditionalClassToToggles('.rd-navbar-original', 'toggle-original', 'toggle-original-elements'); - ctx.applyHandlers(ctx); - ctx.offset = ctx.$element.offset().top; - ctx.height = ctx.$element.outerHeight(); - ctx.loaded = true; - return ctx; - }; - - - /** - * Changes {ctx.$element} layout basing on screen resolution - * @protected - */ - - RDNavbar.prototype.resize = function(ctx, e) { - var targetElement, targetLayout; - targetLayout = isTouch ? ctx.getOption('deviceLayout') : ctx.getOption('layout'); - targetElement = ctx.$element.add(ctx.$clone); - if (targetLayout !== ctx.currentLayout || !ctx.loaded) { - ctx.switchClass(targetElement, ctx.currentLayout, targetLayout); - if (ctx.options.linkedElements != null) { - $.grep(ctx.options.linkedElements, function(link, index) { - return ctx.switchClass(link, ctx.currentLayout + '-linked', targetLayout + '-linked'); - }); - } - ctx.currentLayout = targetLayout; - } - ctx.focusOnHover = ctx.getOption('focusOnHover'); - return ctx; - }; - - - /** - * Toggles bar stickup on scroll - * @protected - */ - - RDNavbar.prototype.stickUp = function(ctx, e) { - var scrollTop, stickUp, stickUpOffset, targetElement, threshold; - stickUp = ctx.getOption("stickUp"); - if ($('html').hasClass('ios') || ctx.$element.hasClass('rd-navbar-fixed')) { - stickUp = false; - } - scrollTop = ctx.$doc.scrollTop(); - targetElement = ctx.$clone != null ? ctx.$clone : ctx.$element; - stickUpOffset = ctx.getOption('stickUpOffset'); - threshold = (typeof stickUpOffset === 'string' ? (stickUpOffset.indexOf('%') > 0 ? parseFloat(stickUpOffset) * ctx.height / 100 : parseFloat(stickUpOffset)) : stickUpOffset); - if (stickUp) { - if ((scrollTop >= threshold && !ctx.isStuck) || (scrollTop < threshold && ctx.isStuck)) { - ctx.$element.add(ctx.$clone).find('[data-rd-navbar-toggle]').each(function() { - $.proxy(ctx.closeToggle, this)(ctx, false); - }).end().find('.rd-navbar-submenu').removeClass('opened').removeClass('focus'); - if (scrollTop >= threshold && !ctx.isStuck && !ctx.$element.hasClass('rd-navbar-fixed')) { - if (ctx.options.callbacks.onStuck) { - ctx.options.callbacks.onStuck.call(ctx); - } - - - setTimeout(function(){ - if (e.type === 'resize') { - ctx.switchClass(targetElement, '', 'rd-navbar--is-stuck'); - } else { - targetElement.addClass('rd-navbar--is-stuck'); - } - ctx.isStuck = true; - }, navigator.platform.match(/(Mac)/i) ? 10 : 0); - - } else { - if (e.type === 'resize') { - ctx.switchClass(targetElement, 'rd-navbar--is-stuck', ''); - } else { - targetElement.removeClass('rd-navbar--is-stuck').one('transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd', $.proxy(ctx.resizeWrap, ctx, e)); - } - ctx.isStuck = false; - if (ctx.options.callbacks.onUnstuck) { - ctx.options.callbacks.onUnstuck.call(ctx); - } - } - } - } else { - ctx.$element.find('.rd-navbar-submenu').removeClass('opened').removeClass('focus'); - if (ctx.isStuck) { - ctx.switchClass(targetElement, 'rd-navbar--is-stuck', ''); - ctx.isStuck = false; - ctx.resizeWrap(e); - } - } - return ctx; - }; - - - /** - * Resizes an external wrap of navbar - * @protected - */ - - RDNavbar.prototype.resizeWrap = function(e) { - var $wrap, ctx; - ctx = this; - if ((ctx.$clone == null) && !ctx.isStuck) { - $wrap = ctx.$element.parent(); - if (!ctx.getOption('autoHeight')) { - $wrap.css('height', 'auto'); - return; - } - ctx.height = ctx.$element.outerHeight(); - if (e.type === 'resize') { - $wrap.addClass('rd-navbar--no-transition').css('height', ctx.height); - $wrap[0].offsetHeight; - return $wrap.removeClass('rd-navbar--no-transition'); - } else { - return $wrap.css('height', ctx.height); - } - } - }; - - - /** - * Creates additional DOM for navigation functionality - * @protected - */ - - RDNavbar.prototype.createNav = function(ctx) { - ctx.$element.find('.rd-navbar-dropdown, .rd-navbar-megamenu').each(function() { - var $this, rect; - $this = $(this); - rect = this.getBoundingClientRect(); - if ($this.hasClass('rd-navbar-megamenu')) { - return $this.parent().addClass('rd-navbar--has-megamenu'); - } else { - return $this.parent().addClass('rd-navbar--has-dropdown'); - } - }).parents("li").addClass("rd-navbar-submenu"); - $('').insertAfter('.rd-navbar-nav li.rd-navbar-submenu > a'); - if (ctx.options.callbacks.onDomAppend) { - ctx.options.callbacks.onDomAppend.call(this); - } - return ctx; - }; - - - /** - * Creates navbar clone to stick up - * @protected - */ - - RDNavbar.prototype.createClone = function(ctx) { - ctx.$clone = ctx.$element.clone().insertAfter(ctx.$element).addClass('rd-navbar--is-clone'); - ctx.addAdditionalClassToToggles('.rd-navbar--is-clone', 'toggle-cloned', 'toggle-cloned-elements'); - return ctx; - }; - - - /** - * Closes all toggles on outside click of each item - * @protected - */ - - RDNavbar.prototype.closeToggle = function(ctx, e) { - var $items, $target, additionalToggleElClass, additionalToogleClass, collapse, linkedElements, needClose; - $target = $(e.target); - collapse = false; - linkedElements = this.getAttribute('data-rd-navbar-toggle'); - if (ctx.options.stickUpClone && ctx.isStuck) { - additionalToogleClass = '.toggle-cloned'; - additionalToggleElClass = '.toggle-cloned-elements'; - needClose = !$target.hasClass('toggle-cloned'); - } else { - additionalToogleClass = '.toggle-original'; - additionalToggleElClass = '.toggle-original-elements'; - needClose = !$target.hasClass('toggle-original'); - } - if (e.target !== this && !$target.parents(additionalToogleClass + '[data-rd-navbar-toggle]').length && !$target.parents(additionalToggleElClass).length && linkedElements && needClose) { - $items = $(this).parents('body').find(linkedElements).add($(this).parents('.rd-navbar')[0]); - $items.each(function() { - if (!collapse) { - return collapse = (e.target === this || $.contains(this, e.target)) === true; - } - }); - if (!collapse) { - $items.add(this).removeClass('active'); - if (ctx.options.callbacks.onToggleClose) { - ctx.options.callbacks.onToggleClose.call(this, ctx); - } - } - } - return this; - }; - - - /** - * Switches toggle - * @protected - */ - - RDNavbar.prototype.switchToggle = function(ctx, e) { - var additionalToggleElClass, linkedElements, navbarClass; - e.preventDefault(); - if ($(this).hasClass('toggle-cloned')) { - navbarClass = '.rd-navbar--is-clone'; - additionalToggleElClass = '.toggle-cloned-elements'; - } else { - navbarClass = '.rd-navbar-original'; - additionalToggleElClass = '.toggle-original-elements'; - } - if (linkedElements = this.getAttribute('data-rd-navbar-toggle')) { - $(navbarClass + ' [data-rd-navbar-toggle]').not(this).each(function() { - var deactivateElements; - if (deactivateElements = this.getAttribute('data-rd-navbar-toggle')) { - return $(this).parents('body').find(navbarClass + ' ' + deactivateElements + additionalToggleElClass).add(this).add($.inArray('.rd-navbar', deactivateElements.split(/\s*,\s*/i)) > -1 ? $(this).parents('body')[0] : false).removeClass('active'); - } - }); - $(this).parents('body').find(navbarClass + ' ' + linkedElements + additionalToggleElClass).add(this).add($.inArray('.rd-navbar', linkedElements.split(/\s*,\s*/i)) > -1 ? $(this).parents('.rd-navbar')[0] : false).toggleClass('active'); - } - if (ctx.options.callbacks.onToggleSwitch) { - ctx.options.callbacks.onToggleSwitch.call(this, ctx); - } - return this; - }; - - - /** - * Triggers submenu popup to be shown on mouseover - * @protected - */ - - RDNavbar.prototype.dropdownOver = function(ctx, timer) { - var $this; - if (ctx.focusOnHover) { - $this = $(this); - clearTimeout(timer); - if (ctx.options.callbacks.onDropdownOver) { - if (!ctx.options.callbacks.onDropdownOver.call(this, ctx)){ - return this; - } - } - - $this.addClass('focus').siblings().removeClass('opened').each(ctx.dropdownUnfocus); - } - return this; - }; - - - /** - * Triggers submenu popup to be shown on mouseover - * @protected - */ - - RDNavbar.prototype.dropdownTouch = function(ctx, timer) { - var $this, hasFocus; - $this = $(this); - clearTimeout(timer); - if (ctx.focusOnHover) { - hasFocus = false; - if ($this.hasClass('focus')) { - hasFocus = true; - } - if (!hasFocus) { - $this.addClass('focus').siblings().removeClass('opened').each(ctx.dropdownUnfocus); - return false; - } - if (ctx.options.callbacks.onDropdownOver) { - ctx.options.callbacks.onDropdownOver.call(this, ctx); - } - } - return this; - }; - - - /** - * Triggers submenu popop to be hidden on mouseout - * @protected - */ - - RDNavbar.prototype.dropdownOut = function(ctx, timer) { - var $this; - if (ctx.focusOnHover) { - $this = $(this); - $this.one('mouseenter.navbar', function() { - return clearTimeout(timer); - }); - - if (ctx.options.callbacks.onDropdownOut) { - ctx.options.callbacks.onDropdownOut.call(this, ctx); - } - clearTimeout(timer); - - timer = setTimeout($.proxy(ctx.dropdownUnfocus, this, ctx), ctx.options.focusOnHoverTimeout); - } - return this; - }; - - - /** - * Removes a focus from submenu - * @protected - */ - - RDNavbar.prototype.dropdownUnfocus = function(ctx) { - var $this; - $this = $(this); - $this.find('li.focus').add(this).removeClass('focus'); - return this; - }; - - - /** - * Closes submenu - * @protected - */ - - RDNavbar.prototype.dropdownClose = function(ctx, e) { - var $this; - if (e.target !== this && !$(e.target).parents('.rd-navbar-submenu').length) { - $this = $(this); - $this.find('li.focus').add(this).removeClass('focus').removeClass('opened'); - if (ctx.options.callbacks.onDropdownClose) { - ctx.options.callbacks.onDropdownClose.call(this, ctx); - } - } - return this; - }; - - - /** - * Toggles submenu popup to be shown on trigger click - * @protected - */ - - RDNavbar.prototype.dropdownToggle = function(ctx) { - $(this).toggleClass('opened').siblings().removeClass('opened'); - if (ctx.options.callbacks.onDropdownToggle) { - ctx.options.callbacks.onDropdownToggle.call(this, ctx); - } - return this; - }; - - - /** - * Scrolls the page to triggered anchor - * @protected - */ - - RDNavbar.prototype.goToAnchor = function(ctx, e) { - var $anchor, hash; - hash = this.hash; - $anchor = $(hash); - - if (!ctx.getOption('anchorNav')){ - return false; - } - - if ($anchor.length) { - e.preventDefault(); - $('html, body').stop().animate({ - 'scrollTop': $anchor.offset().top + ctx.getOption('anchorNavOffset') + 1 - }, ctx.getOption('anchorNavSpeed'), ctx.getOption('anchorNavEasing'), function() { - return ctx.changeAnchor(hash); - }); - } - return this; - }; - - - /** - * Highlight an active anchor - * @protected - */ - - RDNavbar.prototype.activateAnchor = function(e) { - var $anchor, $item, $link, ctx, docHeight, hash, i, link, links, navOffset, scrollTop, winHeight; - ctx = this; - scrollTop = ctx.$doc.scrollTop(); - winHeight = ctx.$win.height(); - docHeight = ctx.$doc.height(); - navOffset = ctx.getOption('anchorNavOffset'); - - if (!ctx.options.anchorNav){ - return false; - } - - if (scrollTop + winHeight > docHeight - 50) { - $anchor = $('[data-type="anchor"]').last(); - if ($anchor.length) { - if ($anchor.offset().top >= scrollTop) { - hash = '#' + $anchor.attr("id"); - $item = $('.rd-navbar-nav a[href^="' + hash + '"]').parent(); - if (!$item.hasClass('active')) { - $item.addClass('active').siblings().removeClass('active'); - if (ctx.options.callbacks.onAnchorChange) { - ctx.options.callbacks.onAnchorChange.call($anchor[0], ctx); - } - } - } - } - return $anchor; - } else { - links = $('.rd-navbar-nav a[href^="#"]').get(); - for (i in links) { - link = links[i]; - $link = $(link); - hash = $link.attr('href'); - // @CHANGE LDR - if (hash != '#') $anchor = $(hash); - else $anchor = ''; - //$anchor = $(hash); - if ($anchor.length) { - if ($anchor.offset().top + navOffset <= scrollTop && $anchor.offset().top + $anchor.outerHeight() > scrollTop) { - $link.parent().addClass('active').siblings().removeClass('active'); - if (ctx.options.callbacks.onAnchorChange) { - ctx.options.callbacks.onAnchorChange.call($anchor[0], ctx); - } - } - } - } - } - return null; - }; - - - /** - * Returns current anchor - * @protected - */ - - RDNavbar.prototype.getAnchor = function() { - if (history) { - if (history.state) { - return history.state.id; - } - } - return null; - }; - - - /** - * Changes current page anchor - * @protected - */ - - RDNavbar.prototype.changeAnchor = function(hash) { - if (history) { - if (history.state) { - if (history.state.id !== hash) { - history.replaceState({ - 'anchorId': hash - }, null, hash); - } else { - history.pushState({ - 'anchorId': hash - }, null, hash); - } - } else { - history.pushState({ - 'anchorId': hash - }, null, hash); - } - } - return this; - }; - - - /** - * Applies all JS event handlers - * @protected - */ - - RDNavbar.prototype.applyHandlers = function(ctx) { - if (ctx.options.responsive != null) { - ctx.$win.on('resize.navbar', $.proxy(ctx.resize, ctx.$win[0], ctx)).on('resize.navbar', $.proxy(ctx.resizeWrap, ctx)).on('resize.navbar', $.proxy(ctx.stickUp, (ctx.$clone != null ? ctx.$clone : ctx.$element), ctx)).on('orientationchange.navbar', $.proxy(ctx.resize, ctx.$win[0], ctx)).trigger('resize.navbar'); - } - ctx.$doc.on('scroll.navbar', $.proxy(ctx.stickUp, (ctx.$clone != null ? ctx.$clone : ctx.$element), ctx)).on('scroll.navbar', $.proxy(ctx.activateAnchor, ctx)); - ctx.$element.add(ctx.$clone).find('[data-rd-navbar-toggle]').each(function() { - var $this; - $this = $(this); - $this.on('click', $.proxy(ctx.switchToggle, this, ctx)); - return $this.parents('body').on('click', $.proxy(ctx.closeToggle, this, ctx)); - }); - ctx.$element.add(ctx.$clone).find('.rd-navbar-submenu').each(function() { - var $this, timer; - $this = $(this); - timer = $this.parents(".rd-navbar--is-clone").length ? ctx.cloneTimer : ctx.focusTimer; - $this.on('mouseleave.navbar', $.proxy(ctx.dropdownOut, this, ctx, timer)); - $this.find('> a').on('mouseenter.navbar', $.proxy(ctx.dropdownOver, this, ctx, timer)); - $this.find('> a').on('touchstart.navbar', $.proxy(ctx.dropdownTouch, this, ctx, timer)); - $this.find('> .rd-navbar-submenu-toggle').on('click', $.proxy(ctx.dropdownToggle, this, ctx)); - return $this.parents('body').on('click', $.proxy(ctx.dropdownClose, this, ctx)); - }); - ctx.$element.add(ctx.$clone).find('.rd-navbar-nav a[href^="#"]').each(function() { - return $(this).on('click', $.proxy(ctx.goToAnchor, this, ctx)); - }); - - ctx.$element.find('.rd-navbar-dropdown, .rd-navbar-megamenu').each(function() { - var $this, rect; - $this = $(this); - rect = this.getBoundingClientRect(); - if ((rect.left + $this.outerWidth()) >= window.innerWidth - 10) { - this.className += ' rd-navbar-open-left'; - } else if ((rect.left - $this.outerWidth()) <= 10) { - this.className += ' rd-navbar-open-right'; - } - }); - - return ctx; - }; - - - /** - * Switches classes of elements without transition - * @protected - */ - - RDNavbar.prototype.switchClass = function(element, before, after) { - var obj; - obj = element instanceof jQuery ? element : $(element); - obj.addClass('rd-navbar--no-transition').removeClass(before).addClass(after); - obj[0].offsetHeight; - return obj.removeClass('rd-navbar--no-transition'); - }; - - - /** - * Gets specific option of plugin - * @protected - */ - - RDNavbar.prototype.getOption = function(key) { - var point, targetPoint; - for (point in this.options.responsive) { - if (point <= window.innerWidth) { - targetPoint = point; - } - } - if ((this.options.responsive != null) && (this.options.responsive[targetPoint][key] != null)) { - return this.options.responsive[targetPoint][key]; - } else { - return this.options[key]; - } - }; - - - /** - * Add additional class to navbar toggles to identify it when navbar is cloned - * @protected - */ - - RDNavbar.prototype.addAdditionalClassToToggles = function(navbarClass, toggleAdditionalClass, toggleElAdditionalClass) { - return $(navbarClass).find('[data-rd-navbar-toggle]').each(function() { - var toggleElement; - $(this).addClass(toggleAdditionalClass); - toggleElement = this.getAttribute('data-rd-navbar-toggle'); - return $(this).parents('body').find(navbarClass).find(toggleElement).addClass(toggleElAdditionalClass); - }); - }; - - return RDNavbar; - - })(); - - /** - * The jQuery Plugin for the RD Navbar - * @public - */ - $.fn.extend({ - RDNavbar: function(options) { - var $this; - $this = $(this); - if (!$this.data('RDNavbar')) { - return $this.data('RDNavbar', new RDNavbar(this, options)); - } - } - - /** - * RD Navbar window export - * @public - */ - }); - return window.RDNavbar = RDNavbar; - })(window.jQuery, document, window); - - - /** - * The Plugin AMD export - * @public - */ - - if (typeof module !== "undefined" && module !== null) { - module.exports = window.RDNavbar; - } else if (typeof define === 'function' && define.amd) { - define(["jquery"], function() { - 'use strict'; - return window.RDNavbar; - }); - } - -}).call(this); - - -/** - * @module Device.js - * @see https://github.com/matthewhudson/device.js - * @license MIT - */ -(function(){var n,e,o,t,i,r,d,a,c,l;e=window.device,n={},window.device=n,t=window.document.documentElement,l=window.navigator.userAgent.toLowerCase(),n.ios=function(){return n.iphone()||n.ipod()||n.ipad()},n.iphone=function(){return!n.windows()&&i("iphone")},n.ipod=function(){return i("ipod")},n.ipad=function(){return i("ipad")},n.android=function(){return!n.windows()&&i("android")},n.androidPhone=function(){return n.android()&&i("mobile")},n.androidTablet=function(){return n.android()&&!i("mobile")},n.blackberry=function(){return i("blackberry")||i("bb10")||i("rim")},n.blackberryPhone=function(){return n.blackberry()&&!i("tablet")},n.blackberryTablet=function(){return n.blackberry()&&i("tablet")},n.windows=function(){return i("windows")},n.windowsPhone=function(){return n.windows()&&i("phone")},n.windowsTablet=function(){return n.windows()&&i("touch")&&!n.windowsPhone()},n.fxos=function(){return(i("(mobile;")||i("(tablet;"))&&i("; rv:")},n.fxosPhone=function(){return n.fxos()&&i("mobile")},n.fxosTablet=function(){return n.fxos()&&i("tablet")},n.meego=function(){return i("meego")},n.cordova=function(){return window.cordova&&"file:"===location.protocol},n.nodeWebkit=function(){return"object"==typeof window.process},n.mobile=function(){return n.androidPhone()||n.iphone()||n.ipod()||n.windowsPhone()||n.blackberryPhone()||n.fxosPhone()||n.meego()},n.tablet=function(){return n.ipad()||n.androidTablet()||n.blackberryTablet()||n.windowsTablet()||n.fxosTablet()},n.desktop=function(){return!n.tablet()&&!n.mobile()},n.television=function(){var n,e=["googletv","viera","smarttv","internet.tv","netcast","nettv","appletv","boxee","kylo","roku","dlnadoc","roku","pov_tv","hbbtv","ce-html"];for(n=0;n1},n.landscape=function(){return window.innerHeight/window.innerWidth<1},n.noConflict=function(){return window.device=e,this},i=function(n){return-1!==l.indexOf(n)},d=function(n){var e;return e=new RegExp(n,"i"),t.className.match(e)},o=function(n){var e=null;d(n)||(e=t.className.replace(/^\s+|\s+$/g,""),t.className=e+" "+n)},c=function(n){d(n)&&(t.className=t.className.replace(" "+n,""))},n.ios()?n.ipad()?o("ios ipad tablet"):n.iphone()?o("ios iphone mobile"):n.ipod()&&o("ios ipod mobile"):n.android()?o(n.androidTablet()?"android tablet":"android mobile"):n.blackberry()?o(n.blackberryTablet()?"blackberry tablet":"blackberry mobile"):n.windows()?o(n.windowsTablet()?"windows tablet":n.windowsPhone()?"windows mobile":"desktop"):n.fxos()?o(n.fxosTablet()?"fxos tablet":"fxos mobile"):n.meego()?o("meego mobile"):n.nodeWebkit()?o("node-webkit"):n.television()?o("television"):n.desktop()&&o("desktop"),n.cordova()&&o("cordova"),r=function(){n.landscape()?(c("portrait"),o("landscape")):(c("landscape"),o("portrait"))},a=Object.prototype.hasOwnProperty.call(window,"onorientationchange")?"orientationchange":"resize",window.addEventListener?window.addEventListener(a,r,!1):window.attachEvent?window.attachEvent(a,r):window[a]=r,r(),"function"==typeof define&&"object"==typeof define.amd&&define.amd?define(function(){return n}):"undefined"!=typeof module&&module.exports?module.exports=n:window.device=n}).call(this); - - -/** - * @module UIToTop - * @author Matt Varone - * @see http://www.mattvarone.com/web-design/uitotop-jquery-plugin/ - * @license MIT - */ -!function(o){o.fn.UItoTop=function(n){var e={text:"",min:500,scrollSpeed:800,containerID:"ui-to-top",containerClass:"ui-to-top fa fa-angle-up",easingType:"easeIn"},t=o.extend(e,n),i="#"+t.containerID;o("body").append(''+t.text+""),o(i).click(function(){return o("html, body").stop().animate({scrollTop:0},t.scrollSpeed,t.easingType),!1}),o(window).scroll(function(){var n=o(window).scrollTop();"undefined"==typeof document.body.style.maxHeight&&o(i).css({position:"absolute",top:o(window).scrollTop()+o(window).height()-50}),n>t.min?o(i).stop(!0,!0).addClass("active"):o(i).removeClass("active")})}}(jQuery); - - -/** - * @module Abstract base class for collection plugins v1.0.1. - * @author Keith Wood - * @see http://keith-wood.name/countdown.html - * @license MIT - */ -(function(){var j=false;window.JQClass=function(){};JQClass.classes={};JQClass.extend=function extender(f){var g=this.prototype;j=true;var h=new this();j=false;for(var i in f){h[i]=typeof f[i]=='function'&&typeof g[i]=='function'?(function(d,e){return function(){var b=this._super;this._super=function(a){return g[d].apply(this,a||[])};var c=e.apply(this,arguments);this._super=b;return c}})(i,f[i]):f[i]}function JQClass(){if(!j&&this._init){this._init.apply(this,arguments)}}JQClass.prototype=h;JQClass.prototype.constructor=JQClass;JQClass.extend=extender;return JQClass}})();(function($){JQClass.classes.JQPlugin=JQClass.extend({name:'plugin',defaultOptions:{},regionalOptions:{},_getters:[],_getMarker:function(){return'is-'+this.name},_init:function(){$.extend(this.defaultOptions,(this.regionalOptions&&this.regionalOptions[''])||{});var c=camelCase(this.name);$[c]=this;$.fn[c]=function(a){var b=Array.prototype.slice.call(arguments,1);if($[c]._isNotChained(a,b)){return $[c][a].apply($[c],[this[0]].concat(b))}return this.each(function(){if(typeof a==='string'){if(a[0]==='_'||!$[c][a]){throw'Unknown method: '+a;}$[c][a].apply($[c],[this].concat(b))}else{$[c]._attach(this,a)}})}},setDefaults:function(a){$.extend(this.defaultOptions,a||{})},_isNotChained:function(a,b){if(a==='option'&&(b.length===0||(b.length===1&&typeof b[0]==='string'))){return true}return $.inArray(a,this._getters)>-1},_attach:function(a,b){a=$(a);if(a.hasClass(this._getMarker())){return}a.addClass(this._getMarker());b=$.extend({},this.defaultOptions,this._getMetadata(a),b||{});var c=$.extend({name:this.name,elem:a,options:b},this._instSettings(a,b));a.data(this.name,c);this._postAttach(a,c);this.option(a,b)},_instSettings:function(a,b){return{}},_postAttach:function(a,b){},_getMetadata:function(d){try{var f=d.data(this.name.toLowerCase())||'';f=f.replace(/'/g,'"');f=f.replace(/([a-zA-Z0-9]+):/g,function(a,b,i){var c=f.substring(0,i).match(/"/g);return(!c||c.length%2===0?'"'+b+'":':b+':')});f=$.parseJSON('{'+f+'}');for(var g in f){var h=f[g];if(typeof h==='string'&&h.match(/^new Date\((.*)\)$/)){f[g]=eval(h)}}return f}catch(e){return{}}},_getInst:function(a){return $(a).data(this.name)||{}},option:function(a,b,c){a=$(a);var d=a.data(this.name);if(!b||(typeof b==='string'&&c==null)){var e=(d||{}).options;return(e&&b?e[b]:e)}if(!a.hasClass(this._getMarker())){return}var e=b||{};if(typeof b==='string'){e={};e[b]=c}this._optionsChanged(a,d,e);$.extend(d.options,e)},_optionsChanged:function(a,b,c){},destroy:function(a){a=$(a);if(!a.hasClass(this._getMarker())){return}this._preDestroy(a,this._getInst(a));a.removeData(this.name).removeClass(this._getMarker())},_preDestroy:function(a,b){}});function camelCase(c){return c.replace(/-([a-z])/g,function(a,b){return b.toUpperCase()})}$.JQPlugin={createPlugin:function(a,b){if(typeof a==='object'){b=a;a='JQPlugin'}a=camelCase(a);var c=camelCase(b.name);JQClass.classes[c]=JQClass.classes[a].extend(b);new JQClass.classes[c]()}}})(jQuery); - - -/** - * @module Moment JS - * @authors Tim Wood, Iskren Chernev, Moment.js contributors - * @see https://ua.linkedin.com/in/rafael-shayvolodyan-3a297b96 - * @version 2.12.0 - * @license MIT - */ -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t.moment=e()}(this,function(){"use strict";function t(){return Xn.apply(null,arguments)}function e(t){Xn=t}function n(t){return t instanceof Array||"[object Array]"===Object.prototype.toString.call(t)}function i(t){return t instanceof Date||"[object Date]"===Object.prototype.toString.call(t)}function s(t,e){var n,i=[];for(n=0;n0)for(n in Kn)i=Kn[n],s=e[i],c(s)||(t[i]=s);return t}function m(e){f(this,e),this._d=new Date(null!=e._d?e._d.getTime():NaN),ti===!1&&(ti=!0,t.updateOffset(this),ti=!1)}function _(t){return t instanceof m||null!=t&&null!=t._isAMomentObject}function y(t){return 0>t?Math.ceil(t):Math.floor(t)}function g(t){var e=+t,n=0;return 0!==e&&isFinite(e)&&(n=y(e)),n}function p(t,e,n){var i,s=Math.min(t.length,e.length),r=Math.abs(t.length-e.length),a=0;for(i=0;s>i;i++)(n&&t[i]!==e[i]||!n&&g(t[i])!==g(e[i]))&&a++;return a+r}function v(e){t.suppressDeprecationWarnings===!1&&"undefined"!=typeof console&&console.warn&&console.warn("Deprecation warning: "+e)}function D(t,e){var n=!0;return a(function(){return n&&(v(t+"\nArguments: "+Array.prototype.slice.call(arguments).join(", ")+"\n"+(new Error).stack),n=!1),e.apply(this,arguments)},e)}function M(t,e){ei[t]||(v(e),ei[t]=!0)}function S(t){return t instanceof Function||"[object Function]"===Object.prototype.toString.call(t)}function Y(t){return"[object Object]"===Object.prototype.toString.call(t)}function w(t){var e,n;for(n in t)e=t[n],S(e)?this[n]=e:this["_"+n]=e;this._config=t,this._ordinalParseLenient=new RegExp(this._ordinalParse.source+"|"+/\d{1,2}/.source)}function k(t,e){var n,i=a({},t);for(n in e)r(e,n)&&(Y(t[n])&&Y(e[n])?(i[n]={},a(i[n],t[n]),a(i[n],e[n])):null!=e[n]?i[n]=e[n]:delete i[n]);return i}function T(t){null!=t&&this.set(t)}function b(t){return t?t.toLowerCase().replace("_","-"):t}function O(t){for(var e,n,i,s,r=0;r0;){if(i=W(s.slice(0,e).join("-")))return i;if(n&&n.length>=e&&p(s,n,!0)>=e-1)break;e--}r++}return null}function W(t){var e=null;if(!ii[t]&&"undefined"!=typeof module&&module&&module.exports)try{e=ni._abbr,require("./locale/"+t),x(e)}catch(n){}return ii[t]}function x(t,e){var n;return t&&(n=c(e)?P(t):U(t,e),n&&(ni=n)),ni._abbr}function U(t,e){return null!==e?(e.abbr=t,null!=ii[t]?(M("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale"),e=k(ii[t]._config,e)):null!=e.parentLocale&&(null!=ii[e.parentLocale]?e=k(ii[e.parentLocale]._config,e):M("parentLocaleUndefined","specified parentLocale is not defined yet")),ii[t]=new T(e),x(t),ii[t]):(delete ii[t],null)}function G(t,e){if(null!=e){var n;null!=ii[t]&&(e=k(ii[t]._config,e)),n=new T(e),n.parentLocale=ii[t],ii[t]=n,x(t)}else null!=ii[t]&&(null!=ii[t].parentLocale?ii[t]=ii[t].parentLocale:null!=ii[t]&&delete ii[t]);return ii[t]}function P(t){var e;if(t&&t._locale&&t._locale._abbr&&(t=t._locale._abbr),!t)return ni;if(!n(t)){if(e=W(t))return e;t=[t]}return O(t)}function C(){return Object.keys(ii)}function F(t,e){var n=t.toLowerCase();si[n]=si[n+"s"]=si[e]=t}function H(t){return"string"==typeof t?si[t]||si[t.toLowerCase()]:void 0}function L(t){var e,n,i={};for(n in t)r(t,n)&&(e=H(n),e&&(i[e]=t[n]));return i}function V(e,n){return function(i){return null!=i?(I(this,e,i),t.updateOffset(this,n),this):N(this,e)}}function N(t,e){return t.isValid()?t._d["get"+(t._isUTC?"UTC":"")+e]():NaN}function I(t,e,n){t.isValid()&&t._d["set"+(t._isUTC?"UTC":"")+e](n)}function A(t,e){var n;if("object"==typeof t)for(n in t)this.set(n,t[n]);else if(t=H(t),S(this[t]))return this[t](e);return this}function R(t,e,n){var i=""+Math.abs(t),s=e-i.length,r=t>=0;return(r?n?"+":"":"-")+Math.pow(10,Math.max(0,s)).toString().substr(1)+i}function E(t,e,n,i){var s=i;"string"==typeof i&&(s=function(){return this[i]()}),t&&(ui[t]=s),e&&(ui[e[0]]=function(){return R(s.apply(this,arguments),e[1],e[2])}),n&&(ui[n]=function(){return this.localeData().ordinal(s.apply(this,arguments),t)})}function j(t){return t.match(/\[[\s\S]/)?t.replace(/^\[|\]$/g,""):t.replace(/\\/g,"")}function z(t){var e,n,i=t.match(ri);for(e=0,n=i.length;n>e;e++)ui[i[e]]?i[e]=ui[i[e]]:i[e]=j(i[e]);return function(s){var r="";for(e=0;n>e;e++)r+=i[e]instanceof Function?i[e].call(s,t):i[e];return r}}function Z(t,e){return t.isValid()?(e=$(e,t.localeData()),oi[e]=oi[e]||z(e),oi[e](t)):t.localeData().invalidDate()}function $(t,e){function n(t){return e.longDateFormat(t)||t}var i=5;for(ai.lastIndex=0;i>=0&&ai.test(t);)t=t.replace(ai,n),ai.lastIndex=0,i-=1;return t}function q(t,e,n){Ti[t]=S(e)?e:function(t,i){return t&&n?n:e}}function J(t,e){return r(Ti,t)?Ti[t](e._strict,e._locale):new RegExp(B(t))}function B(t){return Q(t.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(t,e,n,i,s){return e||n||i||s}))}function Q(t){return t.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function X(t,e){var n,i=e;for("string"==typeof t&&(t=[t]),"number"==typeof e&&(i=function(t,n){n[e]=g(t)}),n=0;ni;i++){if(s=o([2e3,i]),n&&!this._longMonthsParse[i]&&(this._longMonthsParse[i]=new RegExp("^"+this.months(s,"").replace(".","")+"$","i"),this._shortMonthsParse[i]=new RegExp("^"+this.monthsShort(s,"").replace(".","")+"$","i")),n||this._monthsParse[i]||(r="^"+this.months(s,"")+"|^"+this.monthsShort(s,""),this._monthsParse[i]=new RegExp(r.replace(".",""),"i")),n&&"MMMM"===e&&this._longMonthsParse[i].test(t))return i;if(n&&"MMM"===e&&this._shortMonthsParse[i].test(t))return i;if(!n&&this._monthsParse[i].test(t))return i}}function rt(t,e){var n;if(!t.isValid())return t;if("string"==typeof e)if(/^\d+$/.test(e))e=g(e);else if(e=t.localeData().monthsParse(e),"number"!=typeof e)return t;return n=Math.min(t.date(),et(t.year(),e)),t._d["set"+(t._isUTC?"UTC":"")+"Month"](e,n),t}function at(e){return null!=e?(rt(this,e),t.updateOffset(this,!0),this):N(this,"Month")}function ot(){return et(this.year(),this.month())}function ut(t){return this._monthsParseExact?(r(this,"_monthsRegex")||lt.call(this),t?this._monthsShortStrictRegex:this._monthsShortRegex):this._monthsShortStrictRegex&&t?this._monthsShortStrictRegex:this._monthsShortRegex}function dt(t){return this._monthsParseExact?(r(this,"_monthsRegex")||lt.call(this),t?this._monthsStrictRegex:this._monthsRegex):this._monthsStrictRegex&&t?this._monthsStrictRegex:this._monthsRegex}function lt(){function t(t,e){return e.length-t.length}var e,n,i=[],s=[],r=[];for(e=0;12>e;e++)n=o([2e3,e]),i.push(this.monthsShort(n,"")),s.push(this.months(n,"")),r.push(this.months(n,"")),r.push(this.monthsShort(n,""));for(i.sort(t),s.sort(t),r.sort(t),e=0;12>e;e++)i[e]=Q(i[e]),s[e]=Q(s[e]),r[e]=Q(r[e]);this._monthsRegex=new RegExp("^("+r.join("|")+")","i"),this._monthsShortRegex=this._monthsRegex,this._monthsStrictRegex=new RegExp("^("+s.join("|")+")$","i"),this._monthsShortStrictRegex=new RegExp("^("+i.join("|")+")$","i")}function ht(t){var e,n=t._a;return n&&-2===d(t).overflow&&(e=n[Wi]<0||n[Wi]>11?Wi:n[xi]<1||n[xi]>et(n[Oi],n[Wi])?xi:n[Ui]<0||n[Ui]>24||24===n[Ui]&&(0!==n[Gi]||0!==n[Pi]||0!==n[Ci])?Ui:n[Gi]<0||n[Gi]>59?Gi:n[Pi]<0||n[Pi]>59?Pi:n[Ci]<0||n[Ci]>999?Ci:-1,d(t)._overflowDayOfYear&&(Oi>e||e>xi)&&(e=xi),d(t)._overflowWeeks&&-1===e&&(e=Fi),d(t)._overflowWeekday&&-1===e&&(e=Hi),d(t).overflow=e),t}function ct(t){var e,n,i,s,r,a,o=t._i,u=Ri.exec(o)||Ei.exec(o);if(u){for(d(t).iso=!0,e=0,n=zi.length;n>e;e++)if(zi[e][1].exec(u[1])){s=zi[e][0],i=zi[e][2]!==!1;break}if(null==s)return void(t._isValid=!1);if(u[3]){for(e=0,n=Zi.length;n>e;e++)if(Zi[e][1].exec(u[3])){r=(u[2]||" ")+Zi[e][0];break}if(null==r)return void(t._isValid=!1)}if(!i&&null!=r)return void(t._isValid=!1);if(u[4]){if(!ji.exec(u[4]))return void(t._isValid=!1);a="Z"}t._f=s+(r||"")+(a||""),bt(t)}else t._isValid=!1}function ft(e){var n=$i.exec(e._i);return null!==n?void(e._d=new Date(+n[1])):(ct(e),void(e._isValid===!1&&(delete e._isValid,t.createFromInputFallback(e))))}function mt(t,e,n,i,s,r,a){var o=new Date(t,e,n,i,s,r,a);return 100>t&&t>=0&&isFinite(o.getFullYear())&&o.setFullYear(t),o}function _t(t){var e=new Date(Date.UTC.apply(null,arguments));return 100>t&&t>=0&&isFinite(e.getUTCFullYear())&&e.setUTCFullYear(t),e}function yt(t){return gt(t)?366:365}function gt(t){return t%4===0&&t%100!==0||t%400===0}function pt(){return gt(this.year())}function vt(t,e,n){var i=7+e-n,s=(7+_t(t,0,i).getUTCDay()-e)%7;return-s+i-1}function Dt(t,e,n,i,s){var r,a,o=(7+n-i)%7,u=vt(t,i,s),d=1+7*(e-1)+o+u;return 0>=d?(r=t-1,a=yt(r)+d):d>yt(t)?(r=t+1,a=d-yt(t)):(r=t,a=d),{year:r,dayOfYear:a}}function Mt(t,e,n){var i,s,r=vt(t.year(),e,n),a=Math.floor((t.dayOfYear()-r-1)/7)+1;return 1>a?(s=t.year()-1,i=a+St(s,e,n)):a>St(t.year(),e,n)?(i=a-St(t.year(),e,n),s=t.year()+1):(s=t.year(),i=a),{week:i,year:s}}function St(t,e,n){var i=vt(t,e,n),s=vt(t+1,e,n);return(yt(t)-i+s)/7}function Yt(t,e,n){return null!=t?t:null!=e?e:n}function wt(e){var n=new Date(t.now());return e._useUTC?[n.getUTCFullYear(),n.getUTCMonth(),n.getUTCDate()]:[n.getFullYear(),n.getMonth(),n.getDate()]}function kt(t){var e,n,i,s,r=[];if(!t._d){for(i=wt(t),t._w&&null==t._a[xi]&&null==t._a[Wi]&&Tt(t),t._dayOfYear&&(s=Yt(t._a[Oi],i[Oi]),t._dayOfYear>yt(s)&&(d(t)._overflowDayOfYear=!0),n=_t(s,0,t._dayOfYear),t._a[Wi]=n.getUTCMonth(),t._a[xi]=n.getUTCDate()),e=0;3>e&&null==t._a[e];++e)t._a[e]=r[e]=i[e];for(;7>e;e++)t._a[e]=r[e]=null==t._a[e]?2===e?1:0:t._a[e];24===t._a[Ui]&&0===t._a[Gi]&&0===t._a[Pi]&&0===t._a[Ci]&&(t._nextDay=!0,t._a[Ui]=0),t._d=(t._useUTC?_t:mt).apply(null,r),null!=t._tzm&&t._d.setUTCMinutes(t._d.getUTCMinutes()-t._tzm),t._nextDay&&(t._a[Ui]=24)}}function Tt(t){var e,n,i,s,r,a,o,u;e=t._w,null!=e.GG||null!=e.W||null!=e.E?(r=1,a=4,n=Yt(e.GG,t._a[Oi],Mt(Ft(),1,4).year),i=Yt(e.W,1),s=Yt(e.E,1),(1>s||s>7)&&(u=!0)):(r=t._locale._week.dow,a=t._locale._week.doy,n=Yt(e.gg,t._a[Oi],Mt(Ft(),r,a).year),i=Yt(e.w,1),null!=e.d?(s=e.d,(0>s||s>6)&&(u=!0)):null!=e.e?(s=e.e+r,(e.e<0||e.e>6)&&(u=!0)):s=r),1>i||i>St(n,r,a)?d(t)._overflowWeeks=!0:null!=u?d(t)._overflowWeekday=!0:(o=Dt(n,i,s,r,a),t._a[Oi]=o.year,t._dayOfYear=o.dayOfYear)}function bt(e){if(e._f===t.ISO_8601)return void ct(e);e._a=[],d(e).empty=!0;var n,i,s,r,a,o=""+e._i,u=o.length,l=0;for(s=$(e._f,e._locale).match(ri)||[],n=0;n0&&d(e).unusedInput.push(a),o=o.slice(o.indexOf(i)+i.length),l+=i.length),ui[r]?(i?d(e).empty=!1:d(e).unusedTokens.push(r),tt(r,i,e)):e._strict&&!i&&d(e).unusedTokens.push(r);d(e).charsLeftOver=u-l,o.length>0&&d(e).unusedInput.push(o),d(e).bigHour===!0&&e._a[Ui]<=12&&e._a[Ui]>0&&(d(e).bigHour=void 0),e._a[Ui]=Ot(e._locale,e._a[Ui],e._meridiem),kt(e),ht(e)}function Ot(t,e,n){var i;return null==n?e:null!=t.meridiemHour?t.meridiemHour(e,n):null!=t.isPM?(i=t.isPM(n),i&&12>e&&(e+=12),i||12!==e||(e=0),e):e}function Wt(t){var e,n,i,s,r;if(0===t._f.length)return d(t).invalidFormat=!0,void(t._d=new Date(NaN));for(s=0;sr)&&(i=r,n=e));a(t,n||e)}function xt(t){if(!t._d){var e=L(t._i);t._a=s([e.year,e.month,e.day||e.date,e.hour,e.minute,e.second,e.millisecond],function(t){return t&&parseInt(t,10)}),kt(t)}}function Ut(t){var e=new m(ht(Gt(t)));return e._nextDay&&(e.add(1,"d"),e._nextDay=void 0),e}function Gt(t){var e=t._i,s=t._f;return t._locale=t._locale||P(t._l),null===e||void 0===s&&""===e?h({nullInput:!0}):("string"==typeof e&&(t._i=e=t._locale.preparse(e)),_(e)?new m(ht(e)):(n(s)?Wt(t):s?bt(t):i(e)?t._d=e:Pt(t),l(t)||(t._d=null),t))}function Pt(e){var r=e._i;void 0===r?e._d=new Date(t.now()):i(r)?e._d=new Date(+r):"string"==typeof r?ft(e):n(r)?(e._a=s(r.slice(0),function(t){return parseInt(t,10)}),kt(e)):"object"==typeof r?xt(e):"number"==typeof r?e._d=new Date(r):t.createFromInputFallback(e)}function Ct(t,e,n,i,s){var r={};return"boolean"==typeof n&&(i=n,n=void 0),r._isAMomentObject=!0,r._useUTC=r._isUTC=s,r._l=n,r._i=t,r._f=e,r._strict=i,Ut(r)}function Ft(t,e,n,i){return Ct(t,e,n,i,!1)}function Ht(t,e){var i,s;if(1===e.length&&n(e[0])&&(e=e[0]),!e.length)return Ft();for(i=e[0],s=1;st&&(t=-t,n="-"),n+R(~~(t/60),2)+e+R(~~t%60,2)})}function Rt(t,e){var n=(e||"").match(t)||[],i=n[n.length-1]||[],s=(i+"").match(Xi)||["-",0,0],r=+(60*s[1])+g(s[2]);return"+"===s[0]?r:-r}function Et(e,n){var s,r;return n._isUTC?(s=n.clone(),r=(_(e)||i(e)?+e:+Ft(e))-+s,s._d.setTime(+s._d+r),t.updateOffset(s,!1),s):Ft(e).local()}function jt(t){return 15*-Math.round(t._d.getTimezoneOffset()/15)}function zt(e,n){var i,s=this._offset||0;return this.isValid()?null!=e?("string"==typeof e?e=Rt(Yi,e):Math.abs(e)<16&&(e=60*e),!this._isUTC&&n&&(i=jt(this)),this._offset=e,this._isUTC=!0,null!=i&&this.add(i,"m"),s!==e&&(!n||this._changeInProgress?ue(this,ne(e-s,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,t.updateOffset(this,!0),this._changeInProgress=null)),this):this._isUTC?s:jt(this):null!=e?this:NaN}function Zt(t,e){return null!=t?("string"!=typeof t&&(t=-t),this.utcOffset(t,e),this):-this.utcOffset()}function $t(t){return this.utcOffset(0,t)}function qt(t){return this._isUTC&&(this.utcOffset(0,t),this._isUTC=!1,t&&this.subtract(jt(this),"m")),this}function Jt(){return this._tzm?this.utcOffset(this._tzm):"string"==typeof this._i&&this.utcOffset(Rt(Si,this._i)),this}function Bt(t){return this.isValid()?(t=t?Ft(t).utcOffset():0,(this.utcOffset()-t)%60===0):!1}function Qt(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function Xt(){if(!c(this._isDSTShifted))return this._isDSTShifted;var t={};if(f(t,this),t=Gt(t),t._a){var e=t._isUTC?o(t._a):Ft(t._a);this._isDSTShifted=this.isValid()&&p(t._a,e.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted}function Kt(){return this.isValid()?!this._isUTC:!1}function te(){return this.isValid()?this._isUTC:!1}function ee(){return this.isValid()?this._isUTC&&0===this._offset:!1}function ne(t,e){var n,i,s,a=t,o=null;return It(t)?a={ms:t._milliseconds,d:t._days,M:t._months}:"number"==typeof t?(a={},e?a[e]=t:a.milliseconds=t):(o=Ki.exec(t))?(n="-"===o[1]?-1:1,a={y:0,d:g(o[xi])*n,h:g(o[Ui])*n,m:g(o[Gi])*n,s:g(o[Pi])*n,ms:g(o[Ci])*n}):(o=ts.exec(t))?(n="-"===o[1]?-1:1,a={y:ie(o[2],n),M:ie(o[3],n),w:ie(o[4],n),d:ie(o[5],n),h:ie(o[6],n),m:ie(o[7],n),s:ie(o[8],n)}):null==a?a={}:"object"==typeof a&&("from"in a||"to"in a)&&(s=re(Ft(a.from),Ft(a.to)),a={},a.ms=s.milliseconds,a.M=s.months),i=new Nt(a),It(t)&&r(t,"_locale")&&(i._locale=t._locale),i}function ie(t,e){var n=t&&parseFloat(t.replace(",","."));return(isNaN(n)?0:n)*e}function se(t,e){var n={milliseconds:0,months:0};return n.months=e.month()-t.month()+12*(e.year()-t.year()),t.clone().add(n.months,"M").isAfter(e)&&--n.months,n.milliseconds=+e-+t.clone().add(n.months,"M"),n}function re(t,e){var n;return t.isValid()&&e.isValid()?(e=Et(e,t),t.isBefore(e)?n=se(t,e):(n=se(e,t),n.milliseconds=-n.milliseconds,n.months=-n.months),n):{milliseconds:0,months:0}}function ae(t){return 0>t?-1*Math.round(-1*t):Math.round(t)}function oe(t,e){return function(n,i){var s,r;return null===i||isNaN(+i)||(M(e,"moment()."+e+"(period, number) is deprecated. Please use moment()."+e+"(number, period)."),r=n,n=i,i=r),n="string"==typeof n?+n:n,s=ne(n,i),ue(this,s,t),this}}function ue(e,n,i,s){var r=n._milliseconds,a=ae(n._days),o=ae(n._months);e.isValid()&&(s=null==s?!0:s,r&&e._d.setTime(+e._d+r*i),a&&I(e,"Date",N(e,"Date")+a*i),o&&rt(e,N(e,"Month")+o*i),s&&t.updateOffset(e,a||o))}function de(t,e){var n=t||Ft(),i=Et(n,this).startOf("day"),s=this.diff(i,"days",!0),r=-6>s?"sameElse":-1>s?"lastWeek":0>s?"lastDay":1>s?"sameDay":2>s?"nextDay":7>s?"nextWeek":"sameElse",a=e&&(S(e[r])?e[r]():e[r]);return this.format(a||this.localeData().calendar(r,this,Ft(n)))}function le(){return new m(this)}function he(t,e){var n=_(t)?t:Ft(t);return this.isValid()&&n.isValid()?(e=H(c(e)?"millisecond":e),"millisecond"===e?+this>+n:+n<+this.clone().startOf(e)):!1}function ce(t,e){var n=_(t)?t:Ft(t);return this.isValid()&&n.isValid()?(e=H(c(e)?"millisecond":e),"millisecond"===e?+n>+this:+this.clone().endOf(e)<+n):!1}function fe(t,e,n){return this.isAfter(t,n)&&this.isBefore(e,n)}function me(t,e){var n,i=_(t)?t:Ft(t);return this.isValid()&&i.isValid()?(e=H(e||"millisecond"),"millisecond"===e?+this===+i:(n=+i,+this.clone().startOf(e)<=n&&n<=+this.clone().endOf(e))):!1}function _e(t,e){return this.isSame(t,e)||this.isAfter(t,e)}function ye(t,e){return this.isSame(t,e)||this.isBefore(t,e)}function ge(t,e,n){var i,s,r,a;return this.isValid()?(i=Et(t,this),i.isValid()?(s=6e4*(i.utcOffset()-this.utcOffset()),e=H(e),"year"===e||"month"===e||"quarter"===e?(a=pe(this,i),"quarter"===e?a/=3:"year"===e&&(a/=12)):(r=this-i,a="second"===e?r/1e3:"minute"===e?r/6e4:"hour"===e?r/36e5:"day"===e?(r-s)/864e5:"week"===e?(r-s)/6048e5:r),n?a:y(a)):NaN):NaN}function pe(t,e){var n,i,s=12*(e.year()-t.year())+(e.month()-t.month()),r=t.clone().add(s,"months");return 0>e-r?(n=t.clone().add(s-1,"months"),i=(e-r)/(r-n)):(n=t.clone().add(s+1,"months"),i=(e-r)/(n-r)),-(s+i)}function ve(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")}function De(){var t=this.clone().utc();return 0r&&(e=r),Ze.call(this,t,e,n,i,s))}function Ze(t,e,n,i,s){var r=Dt(t,e,n,i,s),a=_t(r.year,0,r.dayOfYear);return this.year(a.getUTCFullYear()),this.month(a.getUTCMonth()),this.date(a.getUTCDate()),this}function $e(t){return null==t?Math.ceil((this.month()+1)/3):this.month(3*(t-1)+this.month()%3)}function qe(t){return Mt(t,this._week.dow,this._week.doy).week}function Je(){return this._week.dow}function Be(){return this._week.doy}function Qe(t){var e=this.localeData().week(this);return null==t?e:this.add(7*(t-e),"d")}function Xe(t){var e=Mt(this,1,4).week;return null==t?e:this.add(7*(t-e),"d")}function Ke(t,e){return"string"!=typeof t?t:isNaN(t)?(t=e.weekdaysParse(t),"number"==typeof t?t:null):parseInt(t,10)}function tn(t,e){return n(this._weekdays)?this._weekdays[t.day()]:this._weekdays[this._weekdays.isFormat.test(e)?"format":"standalone"][t.day()]}function en(t){return this._weekdaysShort[t.day()]}function nn(t){return this._weekdaysMin[t.day()]}function sn(t,e,n){var i,s,r;for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),i=0;7>i;i++){if(s=Ft([2e3,1]).day(i),n&&!this._fullWeekdaysParse[i]&&(this._fullWeekdaysParse[i]=new RegExp("^"+this.weekdays(s,"").replace(".",".?")+"$","i"),this._shortWeekdaysParse[i]=new RegExp("^"+this.weekdaysShort(s,"").replace(".",".?")+"$","i"),this._minWeekdaysParse[i]=new RegExp("^"+this.weekdaysMin(s,"").replace(".",".?")+"$","i")),this._weekdaysParse[i]||(r="^"+this.weekdays(s,"")+"|^"+this.weekdaysShort(s,"")+"|^"+this.weekdaysMin(s,""),this._weekdaysParse[i]=new RegExp(r.replace(".",""),"i")),n&&"dddd"===e&&this._fullWeekdaysParse[i].test(t))return i;if(n&&"ddd"===e&&this._shortWeekdaysParse[i].test(t))return i;if(n&&"dd"===e&&this._minWeekdaysParse[i].test(t))return i;if(!n&&this._weekdaysParse[i].test(t))return i}}function rn(t){if(!this.isValid())return null!=t?this:NaN;var e=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=t?(t=Ke(t,this.localeData()),this.add(t-e,"d")):e}function an(t){if(!this.isValid())return null!=t?this:NaN;var e=(this.day()+7-this.localeData()._week.dow)%7;return null==t?e:this.add(t-e,"d")}function on(t){return this.isValid()?null==t?this.day()||7:this.day(this.day()%7?t:t-7):null!=t?this:NaN}function un(t){var e=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==t?e:this.add(t-e,"d")}function dn(){return this.hours()%12||12}function ln(t,e){E(t,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),e)})}function hn(t,e){return e._meridiemParse}function cn(t){return"p"===(t+"").toLowerCase().charAt(0)}function fn(t,e,n){return t>11?n?"pm":"PM":n?"am":"AM"}function mn(t,e){e[Ci]=g(1e3*("0."+t))}function _n(){return this._isUTC?"UTC":""}function yn(){return this._isUTC?"Coordinated Universal Time":""}function gn(t){return Ft(1e3*t)}function pn(){return Ft.apply(null,arguments).parseZone()}function vn(t,e,n){var i=this._calendar[t];return S(i)?i.call(e,n):i}function Dn(t){var e=this._longDateFormat[t],n=this._longDateFormat[t.toUpperCase()];return e||!n?e:(this._longDateFormat[t]=n.replace(/MMMM|MM|DD|dddd/g,function(t){return t.slice(1)}),this._longDateFormat[t])}function Mn(){return this._invalidDate}function Sn(t){return this._ordinal.replace("%d",t)}function Yn(t){return t}function wn(t,e,n,i){var s=this._relativeTime[n];return S(s)?s(t,e,n,i):s.replace(/%d/i,t)}function kn(t,e){var n=this._relativeTime[t>0?"future":"past"];return S(n)?n(e):n.replace(/%s/i,e)}function Tn(t,e,n,i){var s=P(),r=o().set(i,e);return s[n](r,t)}function bn(t,e,n,i,s){if("number"==typeof t&&(e=t,t=void 0),t=t||"",null!=e)return Tn(t,e,n,s);var r,a=[];for(r=0;i>r;r++)a[r]=Tn(t,r,n,s);return a}function On(t,e){return bn(t,e,"months",12,"month")}function Wn(t,e){return bn(t,e,"monthsShort",12,"month")}function xn(t,e){return bn(t,e,"weekdays",7,"day")}function Un(t,e){return bn(t,e,"weekdaysShort",7,"day")}function Gn(t,e){return bn(t,e,"weekdaysMin",7,"day")}function Pn(){var t=this._data;return this._milliseconds=ws(this._milliseconds),this._days=ws(this._days),this._months=ws(this._months),t.milliseconds=ws(t.milliseconds),t.seconds=ws(t.seconds),t.minutes=ws(t.minutes),t.hours=ws(t.hours),t.months=ws(t.months),t.years=ws(t.years),this}function Cn(t,e,n,i){var s=ne(e,n);return t._milliseconds+=i*s._milliseconds,t._days+=i*s._days,t._months+=i*s._months,t._bubble()}function Fn(t,e){return Cn(this,t,e,1)}function Hn(t,e){return Cn(this,t,e,-1)}function Ln(t){return 0>t?Math.floor(t):Math.ceil(t)}function Vn(){var t,e,n,i,s,r=this._milliseconds,a=this._days,o=this._months,u=this._data;return r>=0&&a>=0&&o>=0||0>=r&&0>=a&&0>=o||(r+=864e5*Ln(In(o)+a),a=0,o=0),u.milliseconds=r%1e3,t=y(r/1e3),u.seconds=t%60,e=y(t/60),u.minutes=e%60,n=y(e/60),u.hours=n%24,a+=y(n/24),s=y(Nn(a)),o+=s,a-=Ln(In(s)),i=y(o/12),o%=12,u.days=a,u.months=o,u.years=i,this}function Nn(t){return 4800*t/146097}function In(t){return 146097*t/4800}function An(t){var e,n,i=this._milliseconds;if(t=H(t),"month"===t||"year"===t)return e=this._days+i/864e5,n=this._months+Nn(e),"month"===t?n:n/12;switch(e=this._days+Math.round(In(this._months)),t){case"week":return e/7+i/6048e5;case"day":return e+i/864e5;case"hour":return 24*e+i/36e5;case"minute":return 1440*e+i/6e4;case"second":return 86400*e+i/1e3;case"millisecond":return Math.floor(864e5*e)+i;default:throw new Error("Unknown unit "+t)}}function Rn(){return this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*g(this._months/12)}function En(t){return function(){return this.as(t)}}function jn(t){return t=H(t),this[t+"s"]()}function zn(t){return function(){return this._data[t]}}function Zn(){return y(this.days()/7)}function $n(t,e,n,i,s){return s.relativeTime(e||1,!!n,t,i)}function qn(t,e,n){var i=ne(t).abs(),s=Is(i.as("s")),r=Is(i.as("m")),a=Is(i.as("h")),o=Is(i.as("d")),u=Is(i.as("M")),d=Is(i.as("y")),l=s=r&&["m"]||r=a&&["h"]||a=o&&["d"]||o=u&&["M"]||u=d&&["y"]||["yy",d];return l[2]=e,l[3]=+t>0,l[4]=n,$n.apply(null,l)}function Jn(t,e){return void 0===As[t]?!1:void 0===e?As[t]:(As[t]=e,!0)}function Bn(t){var e=this.localeData(),n=qn(this,!t,e);return t&&(n=e.pastFuture(+this,n)),e.postformat(n)}function Qn(){var t,e,n,i=Rs(this._milliseconds)/1e3,s=Rs(this._days),r=Rs(this._months);t=y(i/60),e=y(t/60),i%=60,t%=60,n=y(r/12),r%=12;var a=n,o=r,u=s,d=e,l=t,h=i,c=this.asSeconds();return c?(0>c?"-":"")+"P"+(a?a+"Y":"")+(o?o+"M":"")+(u?u+"D":"")+(d||l||h?"T":"")+(d?d+"H":"")+(l?l+"M":"")+(h?h+"S":""):"P0D"}var Xn,Kn=t.momentProperties=[],ti=!1,ei={};t.suppressDeprecationWarnings=!1;var ni,ii={},si={},ri=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,ai=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,oi={},ui={},di=/\d/,li=/\d\d/,hi=/\d{3}/,ci=/\d{4}/,fi=/[+-]?\d{6}/,mi=/\d\d?/,_i=/\d\d\d\d?/,yi=/\d\d\d\d\d\d?/,gi=/\d{1,3}/,pi=/\d{1,4}/,vi=/[+-]?\d{1,6}/,Di=/\d+/,Mi=/[+-]?\d+/,Si=/Z|[+-]\d\d:?\d\d/gi,Yi=/Z|[+-]\d\d(?::?\d\d)?/gi,wi=/[+-]?\d+(\.\d{1,3})?/,ki=/[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i,Ti={},bi={},Oi=0,Wi=1,xi=2,Ui=3,Gi=4,Pi=5,Ci=6,Fi=7,Hi=8;E("M",["MM",2],"Mo",function(){return this.month()+1}),E("MMM",0,0,function(t){return this.localeData().monthsShort(this,t)}),E("MMMM",0,0,function(t){return this.localeData().months(this,t)}),F("month","M"),q("M",mi),q("MM",mi,li),q("MMM",function(t,e){return e.monthsShortRegex(t)}),q("MMMM",function(t,e){return e.monthsRegex(t)}),X(["M","MM"],function(t,e){e[Wi]=g(t)-1}),X(["MMM","MMMM"],function(t,e,n,i){var s=n._locale.monthsParse(t,i,n._strict);null!=s?e[Wi]=s:d(n).invalidMonth=t});var Li=/D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?/,Vi="January_February_March_April_May_June_July_August_September_October_November_December".split("_"),Ni="Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),Ii=ki,Ai=ki,Ri=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?/,Ei=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?/,ji=/Z|[+-]\d\d(?::?\d\d)?/,zi=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/]],Zi=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],$i=/^\/?Date\((\-?\d+)/i;t.createFromInputFallback=D("moment construction falls back to js Date. This is discouraged and will be removed in upcoming major release. Please refer to https://github.com/moment/moment/issues/1407 for more info.",function(t){t._d=new Date(t._i+(t._useUTC?" UTC":""))}),E("Y",0,0,function(){var t=this.year();return 9999>=t?""+t:"+"+t}),E(0,["YY",2],0,function(){return this.year()%100}),E(0,["YYYY",4],0,"year"),E(0,["YYYYY",5],0,"year"),E(0,["YYYYYY",6,!0],0,"year"),F("year","y"),q("Y",Mi),q("YY",mi,li),q("YYYY",pi,ci),q("YYYYY",vi,fi),q("YYYYYY",vi,fi),X(["YYYYY","YYYYYY"],Oi),X("YYYY",function(e,n){n[Oi]=2===e.length?t.parseTwoDigitYear(e):g(e);}),X("YY",function(e,n){n[Oi]=t.parseTwoDigitYear(e)}),X("Y",function(t,e){e[Oi]=parseInt(t,10)}),t.parseTwoDigitYear=function(t){return g(t)+(g(t)>68?1900:2e3)};var qi=V("FullYear",!1);t.ISO_8601=function(){};var Ji=D("moment().min is deprecated, use moment.max instead. https://github.com/moment/moment/issues/1548",function(){var t=Ft.apply(null,arguments);return this.isValid()&&t.isValid()?this>t?this:t:h()}),Bi=D("moment().max is deprecated, use moment.min instead. https://github.com/moment/moment/issues/1548",function(){var t=Ft.apply(null,arguments);return this.isValid()&&t.isValid()?t>this?this:t:h()}),Qi=function(){return Date.now?Date.now():+new Date};At("Z",":"),At("ZZ",""),q("Z",Yi),q("ZZ",Yi),X(["Z","ZZ"],function(t,e,n){n._useUTC=!0,n._tzm=Rt(Yi,t)});var Xi=/([\+\-]|\d\d)/gi;t.updateOffset=function(){};var Ki=/^(\-)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)\.?(\d{3})?\d*)?$/,ts=/^(-)?P(?:([0-9,.]*)Y)?(?:([0-9,.]*)M)?(?:([0-9,.]*)W)?(?:([0-9,.]*)D)?(?:T(?:([0-9,.]*)H)?(?:([0-9,.]*)M)?(?:([0-9,.]*)S)?)?$/;ne.fn=Nt.prototype;var es=oe(1,"add"),ns=oe(-1,"subtract");t.defaultFormat="YYYY-MM-DDTHH:mm:ssZ";var is=D("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(t){return void 0===t?this.localeData():this.locale(t)});E(0,["gg",2],0,function(){return this.weekYear()%100}),E(0,["GG",2],0,function(){return this.isoWeekYear()%100}),Ie("gggg","weekYear"),Ie("ggggg","weekYear"),Ie("GGGG","isoWeekYear"),Ie("GGGGG","isoWeekYear"),F("weekYear","gg"),F("isoWeekYear","GG"),q("G",Mi),q("g",Mi),q("GG",mi,li),q("gg",mi,li),q("GGGG",pi,ci),q("gggg",pi,ci),q("GGGGG",vi,fi),q("ggggg",vi,fi),K(["gggg","ggggg","GGGG","GGGGG"],function(t,e,n,i){e[i.substr(0,2)]=g(t)}),K(["gg","GG"],function(e,n,i,s){n[s]=t.parseTwoDigitYear(e)}),E("Q",0,"Qo","quarter"),F("quarter","Q"),q("Q",di),X("Q",function(t,e){e[Wi]=3*(g(t)-1)}),E("w",["ww",2],"wo","week"),E("W",["WW",2],"Wo","isoWeek"),F("week","w"),F("isoWeek","W"),q("w",mi),q("ww",mi,li),q("W",mi),q("WW",mi,li),K(["w","ww","W","WW"],function(t,e,n,i){e[i.substr(0,1)]=g(t)});var ss={dow:0,doy:6};E("D",["DD",2],"Do","date"),F("date","D"),q("D",mi),q("DD",mi,li),q("Do",function(t,e){return t?e._ordinalParse:e._ordinalParseLenient}),X(["D","DD"],xi),X("Do",function(t,e){e[xi]=g(t.match(mi)[0],10)});var rs=V("Date",!0);E("d",0,"do","day"),E("dd",0,0,function(t){return this.localeData().weekdaysMin(this,t)}),E("ddd",0,0,function(t){return this.localeData().weekdaysShort(this,t)}),E("dddd",0,0,function(t){return this.localeData().weekdays(this,t)}),E("e",0,0,"weekday"),E("E",0,0,"isoWeekday"),F("day","d"),F("weekday","e"),F("isoWeekday","E"),q("d",mi),q("e",mi),q("E",mi),q("dd",ki),q("ddd",ki),q("dddd",ki),K(["dd","ddd","dddd"],function(t,e,n,i){var s=n._locale.weekdaysParse(t,i,n._strict);null!=s?e.d=s:d(n).invalidWeekday=t}),K(["d","e","E"],function(t,e,n,i){e[i]=g(t)});var as="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),os="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),us="Su_Mo_Tu_We_Th_Fr_Sa".split("_");E("DDD",["DDDD",3],"DDDo","dayOfYear"),F("dayOfYear","DDD"),q("DDD",gi),q("DDDD",hi),X(["DDD","DDDD"],function(t,e,n){n._dayOfYear=g(t)}),E("H",["HH",2],0,"hour"),E("h",["hh",2],0,dn),E("hmm",0,0,function(){return""+dn.apply(this)+R(this.minutes(),2)}),E("hmmss",0,0,function(){return""+dn.apply(this)+R(this.minutes(),2)+R(this.seconds(),2)}),E("Hmm",0,0,function(){return""+this.hours()+R(this.minutes(),2)}),E("Hmmss",0,0,function(){return""+this.hours()+R(this.minutes(),2)+R(this.seconds(),2)}),ln("a",!0),ln("A",!1),F("hour","h"),q("a",hn),q("A",hn),q("H",mi),q("h",mi),q("HH",mi,li),q("hh",mi,li),q("hmm",_i),q("hmmss",yi),q("Hmm",_i),q("Hmmss",yi),X(["H","HH"],Ui),X(["a","A"],function(t,e,n){n._isPm=n._locale.isPM(t),n._meridiem=t}),X(["h","hh"],function(t,e,n){e[Ui]=g(t),d(n).bigHour=!0}),X("hmm",function(t,e,n){var i=t.length-2;e[Ui]=g(t.substr(0,i)),e[Gi]=g(t.substr(i)),d(n).bigHour=!0}),X("hmmss",function(t,e,n){var i=t.length-4,s=t.length-2;e[Ui]=g(t.substr(0,i)),e[Gi]=g(t.substr(i,2)),e[Pi]=g(t.substr(s)),d(n).bigHour=!0}),X("Hmm",function(t,e,n){var i=t.length-2;e[Ui]=g(t.substr(0,i)),e[Gi]=g(t.substr(i))}),X("Hmmss",function(t,e,n){var i=t.length-4,s=t.length-2;e[Ui]=g(t.substr(0,i)),e[Gi]=g(t.substr(i,2)),e[Pi]=g(t.substr(s))});var ds=/[ap]\.?m?\.?/i,ls=V("Hours",!0);E("m",["mm",2],0,"minute"),F("minute","m"),q("m",mi),q("mm",mi,li),X(["m","mm"],Gi);var hs=V("Minutes",!1);E("s",["ss",2],0,"second"),F("second","s"),q("s",mi),q("ss",mi,li),X(["s","ss"],Pi);var cs=V("Seconds",!1);E("S",0,0,function(){return~~(this.millisecond()/100)}),E(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),E(0,["SSS",3],0,"millisecond"),E(0,["SSSS",4],0,function(){return 10*this.millisecond()}),E(0,["SSSSS",5],0,function(){return 100*this.millisecond()}),E(0,["SSSSSS",6],0,function(){return 1e3*this.millisecond()}),E(0,["SSSSSSS",7],0,function(){return 1e4*this.millisecond()}),E(0,["SSSSSSSS",8],0,function(){return 1e5*this.millisecond()}),E(0,["SSSSSSSSS",9],0,function(){return 1e6*this.millisecond()}),F("millisecond","ms"),q("S",gi,di),q("SS",gi,li),q("SSS",gi,hi);var fs;for(fs="SSSS";fs.length<=9;fs+="S")q(fs,Di);for(fs="S";fs.length<=9;fs+="S")X(fs,mn);var ms=V("Milliseconds",!1);E("z",0,0,"zoneAbbr"),E("zz",0,0,"zoneName");var _s=m.prototype;_s.add=es,_s.calendar=de,_s.clone=le,_s.diff=ge,_s.endOf=We,_s.format=Me,_s.from=Se,_s.fromNow=Ye,_s.to=we,_s.toNow=ke,_s.get=A,_s.invalidAt=Ve,_s.isAfter=he,_s.isBefore=ce,_s.isBetween=fe,_s.isSame=me,_s.isSameOrAfter=_e,_s.isSameOrBefore=ye,_s.isValid=He,_s.lang=is,_s.locale=Te,_s.localeData=be,_s.max=Bi,_s.min=Ji,_s.parsingFlags=Le,_s.set=A,_s.startOf=Oe,_s.subtract=ns,_s.toArray=Pe,_s.toObject=Ce,_s.toDate=Ge,_s.toISOString=De,_s.toJSON=Fe,_s.toString=ve,_s.unix=Ue,_s.valueOf=xe,_s.creationData=Ne,_s.year=qi,_s.isLeapYear=pt,_s.weekYear=Ae,_s.isoWeekYear=Re,_s.quarter=_s.quarters=$e,_s.month=at,_s.daysInMonth=ot,_s.week=_s.weeks=Qe,_s.isoWeek=_s.isoWeeks=Xe,_s.weeksInYear=je,_s.isoWeeksInYear=Ee,_s.date=rs,_s.day=_s.days=rn,_s.weekday=an,_s.isoWeekday=on,_s.dayOfYear=un,_s.hour=_s.hours=ls,_s.minute=_s.minutes=hs,_s.second=_s.seconds=cs,_s.millisecond=_s.milliseconds=ms,_s.utcOffset=zt,_s.utc=$t,_s.local=qt,_s.parseZone=Jt,_s.hasAlignedHourOffset=Bt,_s.isDST=Qt,_s.isDSTShifted=Xt,_s.isLocal=Kt,_s.isUtcOffset=te,_s.isUtc=ee,_s.isUTC=ee,_s.zoneAbbr=_n,_s.zoneName=yn,_s.dates=D("dates accessor is deprecated. Use date instead.",rs),_s.months=D("months accessor is deprecated. Use month instead",at),_s.years=D("years accessor is deprecated. Use year instead",qi),_s.zone=D("moment().zone is deprecated, use moment().utcOffset instead. https://github.com/moment/moment/issues/1779",Zt);var ys=_s,gs={sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},ps={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},vs="Invalid date",Ds="%d",Ms=/\d{1,2}/,Ss={future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},Ys=T.prototype;Ys._calendar=gs,Ys.calendar=vn,Ys._longDateFormat=ps,Ys.longDateFormat=Dn,Ys._invalidDate=vs,Ys.invalidDate=Mn,Ys._ordinal=Ds,Ys.ordinal=Sn,Ys._ordinalParse=Ms,Ys.preparse=Yn,Ys.postformat=Yn,Ys._relativeTime=Ss,Ys.relativeTime=wn,Ys.pastFuture=kn,Ys.set=w,Ys.months=nt,Ys._months=Vi,Ys.monthsShort=it,Ys._monthsShort=Ni,Ys.monthsParse=st,Ys._monthsRegex=Ai,Ys.monthsRegex=dt,Ys._monthsShortRegex=Ii,Ys.monthsShortRegex=ut,Ys.week=qe,Ys._week=ss,Ys.firstDayOfYear=Be,Ys.firstDayOfWeek=Je,Ys.weekdays=tn,Ys._weekdays=as,Ys.weekdaysMin=nn,Ys._weekdaysMin=us,Ys.weekdaysShort=en,Ys._weekdaysShort=os,Ys.weekdaysParse=sn,Ys.isPM=cn,Ys._meridiemParse=ds,Ys.meridiem=fn,x("en",{ordinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(t){var e=t%10,n=1===g(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th";return t+n}}),t.lang=D("moment.lang is deprecated. Use moment.locale instead.",x),t.langData=D("moment.langData is deprecated. Use moment.localeData instead.",P);var ws=Math.abs,ks=En("ms"),Ts=En("s"),bs=En("m"),Os=En("h"),Ws=En("d"),xs=En("w"),Us=En("M"),Gs=En("y"),Ps=zn("milliseconds"),Cs=zn("seconds"),Fs=zn("minutes"),Hs=zn("hours"),Ls=zn("days"),Vs=zn("months"),Ns=zn("years"),Is=Math.round,As={s:45,m:45,h:22,d:26,M:11},Rs=Math.abs,Es=Nt.prototype;Es.abs=Pn,Es.add=Fn,Es.subtract=Hn,Es.as=An,Es.asMilliseconds=ks,Es.asSeconds=Ts,Es.asMinutes=bs,Es.asHours=Os,Es.asDays=Ws,Es.asWeeks=xs,Es.asMonths=Us,Es.asYears=Gs,Es.valueOf=Rn,Es._bubble=Vn,Es.get=jn,Es.milliseconds=Ps,Es.seconds=Cs,Es.minutes=Fs,Es.hours=Hs,Es.days=Ls,Es.weeks=Zn,Es.months=Vs,Es.years=Ns,Es.humanize=Bn,Es.toISOString=Qn,Es.toString=Qn,Es.toJSON=Qn,Es.locale=Te,Es.localeData=be,Es.toIsoString=D("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",Qn),Es.lang=is,E("X",0,0,"unix"),E("x",0,0,"valueOf"),q("x",Mi),q("X",wi),X("X",function(t,e,n){n._d=new Date(1e3*parseFloat(t,10))}),X("x",function(t,e,n){n._d=new Date(g(t))}),t.version="2.12.0",e(Ft),t.fn=ys,t.min=Lt,t.max=Vt,t.now=Qi,t.utc=o,t.unix=gn,t.months=On,t.isDate=i,t.locale=x,t.invalid=h,t.duration=ne,t.isMoment=_,t.weekdays=xn,t.parseZone=pn,t.localeData=P,t.isDuration=It,t.monthsShort=Wn,t.weekdaysMin=Gn,t.defineLocale=U,t.updateLocale=G,t.locales=C,t.weekdaysShort=Un,t.normalizeUnits=H,t.relativeTimeThreshold=Jn,t.prototype=ys;var js=t;return js}); - - -/** - * @module Slick - * @author Ken Wheeler - * @see http://kenwheeler.github.io/slick - * @version 1.6.0 - */ -!function(a){"use strict";"function"==typeof define&&define.amd?define(["jquery"],a):"undefined"!=typeof exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){"use strict";var b=window.Slick||{};b=function(){function c(c,d){var f,e=this;e.defaults={accessibility:!0,adaptiveHeight:!1,appendArrows:a(c),appendDots:a(c),arrows:!0,asNavFor:null,prevArrow:'',nextArrow:'',autoplay:!1,autoplaySpeed:3e3,centerMode:!1,centerPadding:"50px",cssEase:"ease",customPaging:function(b,c){return a(' -
- -
-
-
- - - - -
-
-
-
-
-

successful cases

- -
-
-
-
-
- - - -
-
-

Latest News

-
- fetchAll($website->id, 'DESC', 'date_creation', $MAXNEWS, 0, array('type_container'=>'blogpost', 'lang'=>'en_US')); - foreach($arrayofblogs as $blog) - { - $fuser->fetch($blog->fk_user_creat); - ?> - - - -
-
-
- - - - - - - - - - - - - - diff --git a/htdocs/install/doctemplates/websites/template/page125.tpl.php b/htdocs/install/doctemplates/websites/template/page125.tpl.php deleted file mode 100644 index dd472fedebc..00000000000 --- a/htdocs/install/doctemplates/websites/template/page125.tpl.php +++ /dev/null @@ -1,97 +0,0 @@ - - - -Privacy Policies - - - - - - - - - - - - -/ims', '', file_get_contents(DOL_DATA_ROOT."/website/".$websitekey."/htmlheader.html")); ?> - - - - - -
- - - - - -
-
-
-
-
-
-
-
-
Privacy Policy -
-
-
-
-
-
-
-
- -


- -
-
-

Information collected and used


-

* Your customer information (email, phone, business name, first and last name of contact, address, postal code, country and VAT number) are stored when you become a customer. This information allows us to bill you. -

* If you paid using our online service, we also store the last 4 digits of your card. The full details of your credit card is stored by our payment provider Stripe (the world leader in online payment).

-

* You have the option to request the deletion of your data and the above information at any time (except data required y fiscal tracking rules, like your invoices).

-

* The Privacy Policies and GDPR referral contact for our services is: global->MAIN_INFO_GDPR; ?>

-


-

Data Storage and Backups


-

* The storage of collected data (see 'Information collected and used') is done in a database.

-

* We made one backup every week. Only 4 weeks are kept.

-


-

Subcontractor


-

* Our services relies on the following subcontractors and service:
-** The host of computer servers, which is ABC company. These servers are hosted in US. No customer information is communicated to this subcontractor who only provides the hardware and network layer, the installation and operation being carried out by us directly.
-** The online payment service Stripe, which is used, to ensure regular payment of subscription or your invoices paid online.

-


-

Software Protection


-

* Our services runs on Linux Ubuntu systems and software. They benefit from regular security updates when the operating system editor (Ubuntu Canonical) publishes them.

-

* Our services are accessible in HTTPS (HTTP encrypted) only, encrypted with SHA256 certificates.

-

* Our technical platform are protected by various solutions.

-


-

Data theft


-

* In case of suspicion of a theft of the data we have collected (see first point 'Information collected and used'), customers will be informed by email, at email corresponding to their customer account

-

 

-
-
- - - - - -
- - - - - - - - diff --git a/htdocs/install/doctemplates/websites/template/page126.tpl.php b/htdocs/install/doctemplates/websites/template/page126.tpl.php deleted file mode 100644 index fa34ef6f856..00000000000 --- a/htdocs/install/doctemplates/websites/template/page126.tpl.php +++ /dev/null @@ -1,35 +0,0 @@ - - - -test - - - - - - - - - - - - -/ims', '', file_get_contents(DOL_DATA_ROOT."/website/".$websitekey."/htmlheader.html")); ?> - - - - - -defaultlang); ?> -defaultlang); ?> - - - diff --git a/htdocs/install/doctemplates/websites/template/page136.tpl.php b/htdocs/install/doctemplates/websites/template/page136.tpl.php deleted file mode 100644 index e32aa297ffc..00000000000 --- a/htdocs/install/doctemplates/websites/template/page136.tpl.php +++ /dev/null @@ -1,82 +0,0 @@ - - - -Contact - - - - - - - - - - - - -/ims', '', file_get_contents(DOL_DATA_ROOT."/website/".$websitekey."/htmlheader.html")); ?> - - - - - -
- - - -
-
-
-
-
-
-
-
-
Contact -
-
-
-
-
-
-
-
- - -
-
-

Contact us:



- email ?>
- getFullAddress() ?>
-
-
- - - -
-
- -
- -


- - - -
- - - - - - - - - diff --git a/htdocs/install/doctemplates/websites/template/page147.tpl.php b/htdocs/install/doctemplates/websites/template/page147.tpl.php deleted file mode 100644 index 6781f8ed79b..00000000000 --- a/htdocs/install/doctemplates/websites/template/page147.tpl.php +++ /dev/null @@ -1,128 +0,0 @@ - - - -Header and Top Menu - - - - - - - - - - - - -/ims', '', file_get_contents(DOL_DATA_ROOT."/website/".$websitekey."/htmlheader.html")); ?> - - - - - - - - - - -
-
-
- - -
-
-
- - - - diff --git a/htdocs/install/doctemplates/websites/template/page148.tpl.php b/htdocs/install/doctemplates/websites/template/page148.tpl.php deleted file mode 100644 index 1f80ccc6238..00000000000 --- a/htdocs/install/doctemplates/websites/template/page148.tpl.php +++ /dev/null @@ -1,120 +0,0 @@ - - - -Footer - - - - - - - - - - - - -/ims', '', file_get_contents(DOL_DATA_ROOT."/website/".$websitekey."/htmlheader.html")); ?> - - - - - - -
- - - -
- - - - diff --git a/htdocs/install/doctemplates/websites/template/page149.tpl.php b/htdocs/install/doctemplates/websites/template/page149.tpl.php deleted file mode 100644 index 12e18dbaf87..00000000000 --- a/htdocs/install/doctemplates/websites/template/page149.tpl.php +++ /dev/null @@ -1,88 +0,0 @@ - - - -FAQ - - - - - - - - - - - -/ims', '', file_get_contents(DOL_DATA_ROOT."/website/".$websitekey."/htmlheader.html")); ?> - - - - - -
- - - -
-
-
-
-
-
-
-
-
FAQs -
-
-
-
-
-
-
-
- - -
-
-


Frequently Asked Questions

-
-
-
-

How can I contact you ?


-You can contact us by using this page. -
-
-
-

What is your privacy policy ?


-You may find information about our privacy policy on this page. - - -



- -
-
- - -

- - - -
- - - - - - - - - - diff --git a/htdocs/install/doctemplates/websites/template/page150.tpl.php b/htdocs/install/doctemplates/websites/template/page150.tpl.php deleted file mode 100644 index 1732ff82327..00000000000 --- a/htdocs/install/doctemplates/websites/template/page150.tpl.php +++ /dev/null @@ -1,75 +0,0 @@ - - - -Our new web site has been launched - - - - - - - - - - - - -/ims', '', file_get_contents(DOL_DATA_ROOT."/website/".$websitekey."/htmlheader.html")); ?> - - - - - - - -
-
-
-
-
-
-
-
-
title; ?> -
-
-
-
-
-
-
-
- -
-





- - - Our new website, based on Dolibarr CMS, has been launched.
- Now it is modern and directly integrated with the internal management tools of the company. Many new online services will be available for our customers... - - - -





-
- - - - - - - - - - - - - - diff --git a/htdocs/install/doctemplates/websites/template/page151.tpl.php b/htdocs/install/doctemplates/websites/template/page151.tpl.php deleted file mode 100644 index 7fcbcdf023d..00000000000 --- a/htdocs/install/doctemplates/websites/template/page151.tpl.php +++ /dev/null @@ -1,99 +0,0 @@ - - - -Blog - - - - - - - - - - - - -/ims', '', file_get_contents(DOL_DATA_ROOT."/website/".$websitekey."/htmlheader.html")); ?> - - - - - -
- - - -
-
-
-
-
-
-
-
-
The latest news... -
-
-
-
-
-
-
-
- - -
-

- - load("main"); - $websitepage = new WebsitePage($db); - $fuser = new User($db); - $arrayofblogs = $websitepage->fetchAll($website->id, 'DESC', 'date_creation', 5, 0, array('type_container'=>'blogpost')); - foreach($arrayofblogs as $blog) - { - print ''; - } - ?> -
-
- -

- - - -
- - - - - - - - - diff --git a/htdocs/install/doctemplates/websites/template/page152.tpl.php b/htdocs/install/doctemplates/websites/template/page152.tpl.php deleted file mode 100644 index c0c9934a5c2..00000000000 --- a/htdocs/install/doctemplates/websites/template/page152.tpl.php +++ /dev/null @@ -1,80 +0,0 @@ - - - -Our company is now on Dolibarr ERP CRM - - - - - - - - - - - - -/ims', '', file_get_contents(DOL_DATA_ROOT."/website/".$websitekey."/htmlheader.html")); ?> - - - - - - - -
-
-
-
-
-
-
-
-
title; ?> -
-
-
-
-
-
-
-
- -
-


- Like several thousands of companies, our company (name ?>) has moved all its information system to Dolibarr ERP CRM. More than 20 applications have been replaced by only one, easier to use and fully integrated. - This is an important step in improving all of our services. - -


- -
- -

-
Screenshot of our new Open Source solution
-
- - - -





-
- - - - - - - - - - - - - diff --git a/htdocs/install/doctemplates/websites/template/page191.tpl.php b/htdocs/install/doctemplates/websites/template/page191.tpl.php deleted file mode 100644 index a4a28a3f1e3..00000000000 --- a/htdocs/install/doctemplates/websites/template/page191.tpl.php +++ /dev/null @@ -1,112 +0,0 @@ - - - -Our team - - - - - - - - - - - -/ims', '', file_get_contents(DOL_DATA_ROOT."/website/".$websitekey."/htmlheader.html")); ?> - - - - - -
- - - -
-
-
-
-
-
-
-
-
Our team -
-
-
-
-
-
-
-
- - -
-

-

The crew...




- query($sql); - if (! $resql) dol_print_error($db); - while ($obj = $db->fetch_object($resql)) - { - $arrayofusers[]=$obj->rowid; - } - - print '
'; - foreach($arrayofusers as $id) - { - $fuser->fetch($id); - - print '
'; - print '
'; - print '
'; - if ($fuser->photo) print Form::showphoto('userphoto', $fuser, 100, 0, 0, 'photowithmargin', '', 0); - //print ''; - else print ''; - print '
'; - print '
'; - print '
'.$fuser->firstname.'
'; - print '
    '; - //print '
  • September 24, 2018
  • '; - if ($fuser->job) print '
  • '.$fuser->job.'
  • '; - else print '
  • '; - print '
'; - print '
'; - print '
'; - print '
'; - } - print '
'; - - ?> -
-
- -

- - - -
- - - - - - - - - diff --git a/htdocs/install/doctemplates/websites/template/page192.tpl.php b/htdocs/install/doctemplates/websites/template/page192.tpl.php deleted file mode 100644 index 53317300621..00000000000 --- a/htdocs/install/doctemplates/websites/template/page192.tpl.php +++ /dev/null @@ -1,81 +0,0 @@ - - - -Careers - - - - - - - - - - - -/ims', '', file_get_contents(DOL_DATA_ROOT."/website/".$websitekey."/htmlheader.html")); ?> - - - - - -
- - - -
-
-
-
-
-
-
-
-
Job opportunities -
-
-
-
-
-
-
-
- - -
-
-
-
-
-There is no job opportunities for the moment...
-
-
-
-
-
-
- - -

- - - -
- - - - - - - - - - diff --git a/htdocs/install/doctemplates/websites/template/page193.tpl.php b/htdocs/install/doctemplates/websites/template/page193.tpl.php deleted file mode 100644 index 74347b800bc..00000000000 --- a/htdocs/install/doctemplates/websites/template/page193.tpl.php +++ /dev/null @@ -1,107 +0,0 @@ - - - -Partners - - - - - - - - - - - -/ims', '', file_get_contents(DOL_DATA_ROOT."/website/".$websitekey."/htmlheader.html")); ?> - - - - - -
- - - -
-
-
-
-
-
-
-
-
Partners -
-
-
-
-
-
-
-
- - -
-
-

Our partners...

-
-
-
-
-
- -
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
-
-
-
-
- - -

- - - -
- - - - - - - - - - diff --git a/htdocs/install/doctemplates/websites/template/page194.tpl.php b/htdocs/install/doctemplates/websites/template/page194.tpl.php deleted file mode 100644 index 5d56a7f8f2e..00000000000 --- a/htdocs/install/doctemplates/websites/template/page194.tpl.php +++ /dev/null @@ -1,183 +0,0 @@ - - - -Pricing - - - - - - - - - - - -/ims', '', file_get_contents(DOL_DATA_ROOT."/website/".$websitekey."/htmlheader.html")); ?> - - - - - -
- - - -
-
-
-
-
-
-
-
-
Our plans -
-
-
-
-
-
-
-
- - - - - -
-
- -
-
- - - -

- - - -
- - - - - - - - - diff --git a/htdocs/install/doctemplates/websites/template/page238.tpl.php b/htdocs/install/doctemplates/websites/template/page238.tpl.php deleted file mode 100644 index 7be1ec9a8a0..00000000000 --- a/htdocs/install/doctemplates/websites/template/page238.tpl.php +++ /dev/null @@ -1,77 +0,0 @@ - - - -Clients Testimonials - - - - - - - - - - - - -/ims', '', file_get_contents(DOL_DATA_ROOT."/website/".$websitekey."/htmlheader.html")); ?> - - - - - -
- - - -
-
-
-
-
-
-
-
-
Testimonials -
-
-
-
-
-
-
-
- - -
-

-

What they say about us

-



- Send us your testimonial (by email to email; ?>) -



-

-
- -

- - - -
- - - - - - - - - - diff --git a/htdocs/install/doctemplates/websites/template/page239.tpl.php b/htdocs/install/doctemplates/websites/template/page239.tpl.php deleted file mode 100644 index 418b792e03f..00000000000 --- a/htdocs/install/doctemplates/websites/template/page239.tpl.php +++ /dev/null @@ -1,81 +0,0 @@ - - - -Product P - - - - - - - - - - - -/ims', '', file_get_contents(DOL_DATA_ROOT."/website/".$websitekey."/htmlheader.html")); ?> - - - - - -
- - - -
-
-
-
-
-
-
-
-
Product P -
-
-
-
-
-
-
-
- - -
-
-
-
-
-This is a description page of our product P...
-
-
-
-
-
-
- - -

- - - -
- - - - - - - - - - diff --git a/htdocs/install/doctemplates/websites/template/page240.tpl.php b/htdocs/install/doctemplates/websites/template/page240.tpl.php deleted file mode 100644 index ece2d0d4c91..00000000000 --- a/htdocs/install/doctemplates/websites/template/page240.tpl.php +++ /dev/null @@ -1,81 +0,0 @@ - - - -Service S - - - - - - - - - - - -/ims', '', file_get_contents(DOL_DATA_ROOT."/website/".$websitekey."/htmlheader.html")); ?> - - - - - -
- - - -
-
-
-
-
-
-
-
-
Service S -
-
-
-
-
-
-
-
- - -
-
-
-
-
-This is a description page of our service S...
-
-
-
-
-
-
- - -

- - - -
- - - - - - - - - - diff --git a/htdocs/install/doctemplates/websites/template/page243.tpl.php b/htdocs/install/doctemplates/websites/template/page243.tpl.php deleted file mode 100644 index a9abdf276ba..00000000000 --- a/htdocs/install/doctemplates/websites/template/page243.tpl.php +++ /dev/null @@ -1,81 +0,0 @@ - - - -Carrière - - - - - - - - - - - -/ims', '', file_get_contents(DOL_DATA_ROOT."/website/".$websitekey."/htmlheader.html")); ?> - - - - - -
- - - -
-
-
-
-
-
-
-
-
Offres d'emploi -
-
-
-
-
-
-
-
- - -
-
-
-
-
-Nous n'avons pas d'offres d'emploi ouvertes en ce moment...
-
-
-
-
-
-
- - -

- - - -
- - - - - - - - - - diff --git a/htdocs/install/doctemplates/websites/template/page244.tpl.php b/htdocs/install/doctemplates/websites/template/page244.tpl.php deleted file mode 100644 index 0fbcf5e0823..00000000000 --- a/htdocs/install/doctemplates/websites/template/page244.tpl.php +++ /dev/null @@ -1,70 +0,0 @@ - - - -search - - - - - - - - - - - - -/ims', '', file_get_contents(DOL_DATA_ROOT."/website/".$websitekey."/htmlheader.html")); ?> - - - - - -
- - - -
-
-
-
-
-
-
-
-
Search -
-
-
-
-
-
-
-
- -


- -
- Search is not yet available... -





-
- - - -
- - - - - - - - diff --git a/htdocs/install/doctemplates/websites/template/partners.php b/htdocs/install/doctemplates/websites/template/partners.php deleted file mode 100644 index 59dc87944fe..00000000000 --- a/htdocs/install/doctemplates/websites/template/partners.php +++ /dev/null @@ -1,5 +0,0 @@ -ref.'/page193.tpl.php'; -?> diff --git a/htdocs/install/doctemplates/websites/template/pricing.php b/htdocs/install/doctemplates/websites/template/pricing.php deleted file mode 100644 index beac94b27c8..00000000000 --- a/htdocs/install/doctemplates/websites/template/pricing.php +++ /dev/null @@ -1,5 +0,0 @@ -ref.'/page194.tpl.php'; -?> diff --git a/htdocs/install/doctemplates/websites/template/privacy-policies.php b/htdocs/install/doctemplates/websites/template/privacy-policies.php deleted file mode 100644 index 867c6d0e96e..00000000000 --- a/htdocs/install/doctemplates/websites/template/privacy-policies.php +++ /dev/null @@ -1,5 +0,0 @@ -ref.'/page125.tpl.php'; -?> diff --git a/htdocs/install/doctemplates/websites/template/product-p.php b/htdocs/install/doctemplates/websites/template/product-p.php deleted file mode 100644 index be8afb6d50d..00000000000 --- a/htdocs/install/doctemplates/websites/template/product-p.php +++ /dev/null @@ -1,5 +0,0 @@ -ref.'/page239.tpl.php'; -?> diff --git a/htdocs/install/doctemplates/websites/template/robots.txt b/htdocs/install/doctemplates/websites/template/robots.txt deleted file mode 100644 index f1d58142a79..00000000000 --- a/htdocs/install/doctemplates/websites/template/robots.txt +++ /dev/null @@ -1,4 +0,0 @@ -# Robot file. Generated with Dolibarr -User-agent: * -Allow: /public/ -Disallow: /administrator/ \ No newline at end of file diff --git a/htdocs/install/doctemplates/websites/template/search.php b/htdocs/install/doctemplates/websites/template/search.php deleted file mode 100644 index 6f74a5c4c56..00000000000 --- a/htdocs/install/doctemplates/websites/template/search.php +++ /dev/null @@ -1,5 +0,0 @@ -ref.'/page244.tpl.php'; -?> diff --git a/htdocs/install/doctemplates/websites/template/service-s.php b/htdocs/install/doctemplates/websites/template/service-s.php deleted file mode 100644 index 64219bb6d34..00000000000 --- a/htdocs/install/doctemplates/websites/template/service-s.php +++ /dev/null @@ -1,5 +0,0 @@ -ref.'/page240.tpl.php'; -?> diff --git a/htdocs/install/doctemplates/websites/template/styles.css.php b/htdocs/install/doctemplates/websites/template/styles.css.php deleted file mode 100644 index 74959f7a1ee..00000000000 --- a/htdocs/install/doctemplates/websites/template/styles.css.php +++ /dev/null @@ -1,20910 +0,0 @@ - -/* CSS content (all pages) */ -body.bodywebsite { margin: 0; font-family: 'Open Sans', sans-serif; } -.bodywebsite h1 { margin-top: 0; margin-bottom: 0; padding: 10px;} -.bodywebsite a:focus, -.bodywebsite button:focus { - outline: none !important; -} -.bodywebsite button::-moz-focus-inner { - border: 0; -} -.bodywebsite :focus { - outline: none; -} -.bodywebsite input, -.bodywebsite select, -.bodywebsite textarea { - outline: 0; -} -.bodywebsite p { - margin: 0; -} -.bodywebsite q { - font-size: 18px; - color: #fff; -} -.bodywebsite dl { - margin-bottom: 0; -} -.bodywebsite dt { - font-weight: 400; -} -html .bodywebsite p a:hover { - text-decoration: none; -} -.bodywebsite form { - margin-bottom: 0; -} -.bodywebsite .text-left { - text-align: left; -} -.bodywebsite .text-center { - text-align: center; -} -.bodywebsite .text-right { - text-align: right; -} -.bodywebsite .page .text-middle { - vertical-align: middle; -} -.bodywebsite .page { - overflow: hidden; -} -.bodywebsite .page-head { - position: relative; - z-index: 90; - /* must be lower than 100 */ - background-color: #fff; -} -.bodywebsite .page-content { - position: relative; - z-index: 1; -} -.bodywebsite .page-foot { - background-color: #000; -} -.bodywebsite input, -.bodywebsite button, -.bodywebsite select, -.bodywebsite textarea { - font-family: inherit; - font-size: inherit; - line-height: inherit; -} -.bodywebsite a { - display: inline-block; - text-decoration: none; - transition: 0.33s all ease-out; -} -.bodywebsite a, -.bodywebsite a:active, -.bodywebsite a:focus { - color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; -} -.bodywebsite h3 a, -.bodywebsite h3 a:active -{ - font-weight: normal !important; -} -.bodywebsite a:hover, -.bodywebsite a:focus { - color: maincolorbis) ? '#6ca' : '#'.$website->maincolorbis; ?>; - text-decoration: none; -} -.bodywebsite a:focus { - outline: 0; -} -.bodywebsite a[href*='callto'], -.bodywebsite a[href*='mailto'] { - white-space: nowrap; -} -.bodywebsite img { - vertical-align: middle; - max-width: 100%; -} -.bodywebsite .img-responsive { - max-width: 100%; - height: auto; -} -.bodywebsite .img-circle { - border-radius: 50%; -} -.bodywebsite hr { - margin-top: 0; - margin-bottom: 0; - border: 0; - border-top: 1px solid #2a2b2b; -} -.bodywebsite .margin-lr-30 { - margin-left: 30px !important; - margin-right: 30px !important; -} -.bodywebsite .unit-left, -.bodywebsite .unit-body { - white-space: nowrap; - display: inline-block; - vertical-align: middle; -} -.bodywebsite .unit-left { - padding-right: 10px; -} -.bodywebsite [role="button"] { - cursor: pointer; -} -.bodywebsite #sectionnews .nohover { - color: #000; -} -.bodywebsite .blog-box { - box-shadow: -1px -1px 12px 5px rgba(85, 85, 85, 0.1) !important; -} -.bodywebsite .blog-box:hover { - box-shadow: -1px -1px 12px 5px rgba(65, 65, 65, 0.3) !important; -} -.bodywebsite .margin-top-5 { - margin-top: 5px !important; -} -.bodywebsite .margin-top-10 { - margin-top: 10px !important; -} -.bodywebsite .rights { - display: inline-block; - margin: 0; - line-height: 1.5; - letter-spacing: .025em; - vertical-align: baseline; -} -.bodywebsite .rights * { - display: inline; - margin-right: .25em; -} -.bodywebsite .page-foot-default .rights { - color: #fff; - font-weight: 300; -} -.bodywebsite .page-foot .brand + * { - margin-top: 22px; -} -.bodywebsite .page-foot * + .link-block { - margin-top: 15px; -} -.bodywebsite .page-foot .footer-title + * { - margin-top: 30px; -} -.bodywebsite .page-foot .contact-info * + .unit { - margin-top: 15px; -} -.bodywebsite .privacy-link { - margin-top: 30px; -} -.bodywebsite .one-page-section * + .group-xl { - margin-top: 40px; -} -@media (min-width: 768px) { - .bodywebsite .one-page-section * + .group-xl { - margin-top: 60px; - } -} -@media (min-width: 1200px) { - .bodywebsite .one-page-section * + .group-xl { - margin-top: 100px; - } -} -.bodywebsite h1, -.bodywebsite h2, -.bodywebsite h3, -.bodywebsite h4, -.bodywebsite h5, -.bodywebsite h6, -.bodywebsite .h1, -.bodywebsite .h2, -.bodywebsite .h3, -.bodywebsite .h4, -.bodywebsite .h5, -.bodywebsite .h6 { - margin-top: 0; - margin-bottom: 0; - font-family: "Roboto", Helvetica, Arial, sans-serif; - font-weight: 700; - color: #000; -} -.bodywebsite h1 > span, -.bodywebsite h2 > span, -.bodywebsite h3 > span, -.bodywebsite h4 > span, -.bodywebsite h5 > span, -.bodywebsite h6 > span, -.bodywebsite .h1 > span, -.bodywebsite .h2 > span, -.bodywebsite .h3 > span, -.bodywebsite .h4 > span, -.bodywebsite .h5 > span, -.bodywebsite .h6 > span { - display: inline-block; - font-size: inherit; -} -.bodywebsite h1 a, -.bodywebsite h2 a, -.bodywebsite h3 a, -.bodywebsite h4 a, -.bodywebsite h5 a, -.bodywebsite h6 a, -.bodywebsite .h1 a, -.bodywebsite .h2 a, -.bodywebsite .h3 a, -.bodywebsite .h4 a, -.bodywebsite .h5 a, -.bodywebsite .h6 a { - display: inline; - font: inherit; - letter-spacing: inherit; - transition: .33s all ease; -} -.bodywebsite h1 a:hover, -.bodywebsite h2 a:hover, -.bodywebsite h3 a:hover, -.bodywebsite h4 a:hover, -.bodywebsite h5 a:hover, -.bodywebsite h6 a:hover, -.bodywebsite .h1 a:hover, -.bodywebsite .h2 a:hover, -.bodywebsite .h3 a:hover, -.bodywebsite .h4 a:hover, -.bodywebsite .h5 a:hover, -.bodywebsite .h6 a:hover { - color: maincolorbis) ? '#6ca' : '#'.$website->maincolorbis; ?>; -} -.bodywebsite h1, -.bodywebsite .h1 { - font-size: 18px; - line-height: 1.35; - text-transform: uppercase; -} -@media (min-width: 1200px) { - .bodywebsite h1, - .bodywebsite .h1 { - line-height: 1.2; - font-size: 33px; - } -} -.bodywebsite h1.small, -.bodywebsite .h1.small { - font-size: 40px; -} -@media (min-width: 768px) { - .bodywebsite h1.small, - .bodywebsite .h1.small { - font-size: 40px; - } -} -@media (min-width: 992px) { - .bodywebsite h1.small, - .bodywebsite .h1.small { - font-size: 60px; - } -} -@media (min-width: 1200px) { - .bodywebsite h1.small, - .bodywebsite .h1.small { - font-size: 72px; - line-height: 1.2; - } -} -.bodywebsite h2, -.bodywebsite .h2 { - font-weight: 500; - font-size: 15px; - line-height: 1.2; -} -@media (min-width: 576px) { - .bodywebsite h2, - .bodywebsite .h2 { - line-height: 1.33333; - font-size: 18px; - } -} -.bodywebsite .text-big-18 { - font-size: 18px; -} -.bodywebsite .text-big-19 { - font-size: 19px; -} -.bodywebsite .text-small { - font-size: 12px; -} -.bodywebsite .text-small-16 { - font-size: 16px; -} -.bodywebsite small, -.bodywebsite .small { - font-size: 12px; - line-height: 18px; -} -.bodywebsite code { - padding: 5px 7px; - font-size: 75%; - color: #fe4a21; - background-color: #f9f9f9; - border-radius: 2px; -} -.bodywebsite em { - font-family: Helvetica, Arial, sans-serif; - font-size: inherit; - font-style: italic; - font-weight: 700; - line-height: inherit; - color: #767877; -} -.bodywebsite address { - margin-top: 0; - margin-bottom: 0; -} -.bodywebsite .context-dark, -.bodywebsite .bg-black, -.bodywebsite .bg-gray-darker, -.bodywebsite .bg-gray-dark, -.bodywebsite .bg-mine-shaft, -.bodywebsite .bg-cod-gray, -.bodywebsite .bg-accent, -.bodywebsite .bg-cello { - color: rgba(255, 255, 255, 0.5); -} -.bodywebsite .context-dark a, -.bodywebsite .bg-black a, -.bodywebsite .bg-gray-darker a, -.bodywebsite .bg-gray-dark a, -.bodywebsite .bg-mine-shaft a, -.bodywebsite .bg-cod-gray a, -.bodywebsite .bg-accent a, -.bodywebsite .bg-cello a, -.bodywebsite .context-dark a:active, -.bodywebsite .bg-black a:active, -.bodywebsite .bg-gray-darker a:active, -.bodywebsite .bg-gray-dark a:active, -.bodywebsite .bg-mine-shaft a:active, -.bodywebsite .bg-cod-gray a:active, -.bodywebsite .bg-accent a:active, -.bodywebsite .bg-cello a:active, -.bodywebsite .context-dark a:focus, -.bodywebsite .bg-black a:focus, -.bodywebsite .bg-gray-darker a:focus, -.bodywebsite .bg-gray-dark a:focus, -.bodywebsite .bg-mine-shaft a:focus, -.bodywebsite .bg-cod-gray a:focus, -.bodywebsite .bg-accent a:focus, -.bodywebsite .bg-cello a:focus { - color: #fff; -} -.bodywebsite .context-dark a:hover, -.bodywebsite .bg-black a:hover, -.bodywebsite .bg-gray-darker a:hover, -.bodywebsite .bg-gray-dark a:hover, -.bodywebsite .bg-mine-shaft a:hover, -.bodywebsite .bg-cod-gray a:hover, -.bodywebsite .bg-accent a:hover, -.bodywebsite .bg-cello a:hover { - color: maincolorbis) ? '#6ca' : '#'.$website->maincolorbis; ?>; -} -.bodywebsite .context-dark .big, -.bodywebsite .bg-black .big, -.bodywebsite .bg-gray-darker .big, -.bodywebsite .bg-gray-dark .big, -.bodywebsite .bg-mine-shaft .big, -.bodywebsite .bg-cod-gray .big, -.bodywebsite .bg-accent .big, -.bodywebsite .bg-cello .big, -.bodywebsite .context-dark .text-bigger, -.bodywebsite .bg-black .text-bigger, -.bodywebsite .bg-gray-darker .text-bigger, -.bodywebsite .bg-gray-dark .text-bigger, -.bodywebsite .bg-mine-shaft .text-bigger, -.bodywebsite .bg-cod-gray .text-bigger, -.bodywebsite .bg-accent .text-bigger, -.bodywebsite .bg-cello .text-bigger, -.bodywebsite .context-dark .text-extra-large-bordered, -.bodywebsite .bg-black .text-extra-large-bordered, -.bodywebsite .bg-gray-darker .text-extra-large-bordered, -.bodywebsite .bg-gray-dark .text-extra-large-bordered, -.bodywebsite .bg-mine-shaft .text-extra-large-bordered, -.bodywebsite .bg-cod-gray .text-extra-large-bordered, -.bodywebsite .bg-accent .text-extra-large-bordered, -.bodywebsite .bg-cello .text-extra-large-bordered { - color: #fff; -} -.bodywebsite .context-dark .countdown-wrap span, -.bodywebsite .bg-black .countdown-wrap span, -.bodywebsite .bg-gray-darker .countdown-wrap span, -.bodywebsite .bg-gray-dark .countdown-wrap span, -.bodywebsite .bg-mine-shaft .countdown-wrap span, -.bodywebsite .bg-cod-gray .countdown-wrap span, -.bodywebsite .bg-accent .countdown-wrap span, -.bodywebsite .bg-cello .countdown-wrap span, -.bodywebsite .context-dark .countdown-wrap div > h2, -.bodywebsite .bg-black .countdown-wrap div > h2, -.bodywebsite .bg-gray-darker .countdown-wrap div > h2, -.bodywebsite .bg-gray-dark .countdown-wrap div > h2, -.bodywebsite .bg-mine-shaft .countdown-wrap div > h2, -.bodywebsite .bg-cod-gray .countdown-wrap div > h2, -.bodywebsite .bg-accent .countdown-wrap div > h2, -.bodywebsite .bg-cello .countdown-wrap div > h2 { - color: #fff; -} -.bodywebsite .bg-black { - background: #000; - fill: #000; -} -.bodywebsite .bg-gray-darker { - background: #00030a; - fill: #00030a; -} -.bodywebsite .bg-gray-darker .countdown-wrap div > h2 { - color: rgba(255, 255, 255, 0.2); -} -.bodywebsite .bg-gray-dark { - background: #2a2b2b; - fill: #2a2b2b; -} -.bodywebsite .bg-mine-shaft { - background: #333; - fill: #333; -} -.bodywebsite .bg-cod-gray { - background: #111; - fill: #111; -} -.bodywebsite .bg-gray { - background: #9f9f9f; - fill: #9f9f9f; -} -.bodywebsite .bg-accent { - background: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; - fill: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; -} -.bodywebsite .bg-accent.bg-default-outline-btn .btn-white-outline:hover { - background: #3a3c3e; - border-color: #3a3c3e; -} -.bodywebsite .bg-porcelain { - background: #e5e7e9; - fill: #e5e7e9; -} -.bodywebsite .bg-gray-light { - background: #dedede; - fill: #dedede; -} -.bodywebsite .bg-gray-lighter { - background: #f9f9f9; - fill: #f9f9f9; -} -.bodywebsite .bg-whisper { - background: #f6f7fa; - fill: #f6f7fa; -} -.bodywebsite .bg-whisper-lighten { - background: #f2f3f8; - fill: #f2f3f8; -} -.bodywebsite .bg-athens-gray { - background: #F8F9FB; - fill: #F8F9FB; -} -.bodywebsite .bg-iron { - background: #dcdde0; - fill: #dcdde0; -} -.bodywebsite .bg-cello { - background: #1e3953; - fill: #1e3953; -} -.bodywebsite .bg-cloud-burst { - background: #1e354a; - fill: #1e354a; -} -.bodywebsite .bg-abbey { - background: #464a4d; - fill: #464a4d; -} -.bodywebsite .bg-abbey-04 { - background: rgba(70, 74, 77, 0.4); - fill: rgba(70, 74, 77, 0.4); -} -.bodywebsite .bg-athens-lighten { - background: #f2f3f7; - fill: #f2f3f7; -} -.bodywebsite .bg-cape-cod { - background: #444; - fill: #3a3c3e; -} -.bodywebsite #sectionfirstclass .bg-cape-cod { - background: #fff; - fill: #3a3c3e; -} -.bodywebsite .bg-athens-gray { - background: #F8F9FB; - fill: #F8F9FB; -} -.bodywebsite .page .bg-default-02 { - background: rgba(255, 255, 255, 0.2); - fill: rgba(255, 255, 255, 0.2); -} -.bodywebsite .page .bg-cloud-burst a.text-bismark:hover, -.bodywebsite .page .bg-cloud-burst a.text-bismark:focus { - color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; -} -.bodywebsite .bg-overlay-lighten-inverse-md { - background: rgba(255, 255, 255, 0.5); -} -@media (min-width: 992px) { - .bodywebsite .bg-overlay-lighten-inverse-md { - background: transparent; - } -} -.bodywebsite .bg-image { - -webkit-background-size: cover; - background-size: cover; - background-position: center top; - background-repeat: no-repeat; -} -.bodywebsite .bg-image-centered { - -webkit-background-size: auto; - background-size: auto; -} -.bodywebsite .bg-fixed { - background-attachment: fixed; - -webkit-background-size: cover; - background-size: cover; -} -.bodywebsite .bg-image-1 { - -webkit-background-size: auto 100%; - background-size: auto 100%; -} -@media (max-width: 767px) { - .bodywebsite .bg-image-1 { - background-image: none !important; - } -} -.bodywebsite .page .text-primary { - color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?> !important; -} -.bodywebsite .page a.text-primary:focus, -.bodywebsite .page a.text-primary:hover { - color: maincolorbis) ? '#6ca' : '#'.$website->maincolorbis; ?> !important; -} -.bodywebsite .page .text-secondary { - color: #00030a !important; -} -.bodywebsite .page a.text-secondary:focus, -.bodywebsite .page a.text-secondary:hover { - color: black !important; -} -.bodywebsite .page .text-red-orange { - color: #ff4b22 !important; -} -.bodywebsite .page a.text-red-orange:focus, -.bodywebsite .page a.text-red-orange:hover { - color: #ee2c00 !important; -} -.bodywebsite .page .text-black { - color: #000 !important; -} -.bodywebsite .page a.text-black:focus, -.bodywebsite .page a.text-black:hover { - color: black !important; -} -.bodywebsite .page .text-silver { - color: #cdcdcd !important; -} -.bodywebsite .page a.text-silver:focus, -.bodywebsite .page a.text-silver:hover { - color: #b4b4b4 !important; -} -.bodywebsite .page .text-dark { - color: #2a2b2b !important; -} -.bodywebsite .page a.text-dark:focus, -.bodywebsite .page a.text-dark:hover { - color: #111111 !important; -} -.bodywebsite .page .text-gray { - color: #9f9f9f !important; -} -.bodywebsite .page a.text-gray:focus, -.bodywebsite .page a.text-gray:hover { - color: #868686 !important; -} -.bodywebsite .page .text-gray-light { - color: #dedede !important; -} -.bodywebsite .page a.text-gray-light:focus, -.bodywebsite .page a.text-gray-light:hover { - color: #c5c5c5 !important; -} -.bodywebsite .page .text-white { - color: #fff !important; - text-shadow: 1px 1px 8px #222; -} -.bodywebsite .page a.text-white:focus, -.bodywebsite .page a.text-white:hover { - color: #e6e6e6 !important; -} -.bodywebsite .page .text-white-05 { - color: rgba(255, 255, 255, 0.5) !important; -} -.bodywebsite .page a.text-white-05:focus, -.bodywebsite .page a.text-white-05:hover { - color: rgba(230, 230, 230, 0.5) !important; -} -.bodywebsite .page .text-white-03 { - color: rgba(255, 255, 255, 0.3) !important; -} -.bodywebsite .page a.text-white-03:focus, -.bodywebsite .page a.text-white-03:hover { - color: rgba(230, 230, 230, 0.3) !important; -} -.bodywebsite .page .text-white-08 { - color: rgba(255, 255, 255, 0.8) !important; -} -.bodywebsite .page a.text-white-08:focus, -.bodywebsite .page a.text-white-08:hover { - color: rgba(230, 230, 230, 0.8) !important; -} -.bodywebsite .page .text-tundora { - color: #414141 !important; -} -.bodywebsite .page a.text-tundora:focus, -.bodywebsite .page a.text-tundora:hover { - color: #282828 !important; -} -.bodywebsite .page .text-black-05 { - color: rgba(0, 0, 0, 0.5) !important; -} -.bodywebsite .page a.text-black-05:focus, -.bodywebsite .page a.text-black-05:hover { - color: rgba(0, 0, 0, 0.5) !important; -} -.bodywebsite .page .text-bismark { - color: #496a8a !important; -} -.bodywebsite .page a.text-bismark:focus, -.bodywebsite .page a.text-bismark:hover { - color: #375069 !important; -} -.bodywebsite .page .text-black-08 { - color: rgba(0, 0, 0, 0.8) !important; -} -.bodywebsite .page a.text-black-08:focus, -.bodywebsite .page a.text-black-08:hover { - color: rgba(0, 0, 0, 0.8) !important; -} -.bodywebsite .page .text-gray-darker { - color: #00030a !important; -} -.bodywebsite .page a.text-gray-darker:focus, -.bodywebsite .page a.text-gray-darker:hover { - color: black !important; -} -.bodywebsite .page .text-abbey { - color: #464a4d !important; -} -.bodywebsite .page a.text-abbey:focus, -.bodywebsite .page a.text-abbey:hover { - color: #2e3032 !important; -} -.bodywebsite .page .text-rolling-stone { - color: #74787C !important; -} -.bodywebsite .page a.text-rolling-stone:focus, -.bodywebsite .page a.text-rolling-stone:hover { - color: #5b5f62 !important; -} -.bodywebsite .page .text-fuel-yellow { - color: #F0B922 !important; -} -.bodywebsite .page a.text-fuel-yellow:focus, -.bodywebsite .page a.text-fuel-yellow:hover { - color: #d19d0e !important; -} -.bodywebsite .hidden { - display: none; -} -.bodywebsite .text-italic { - font-style: italic; -} -.bodywebsite .text-normal { - font-style: normal; -} -.bodywebsite .text-none { - text-transform: none; -} -.bodywebsite .text-underline { - text-decoration: underline; -} -.bodywebsite .text-strike { - text-decoration: line-through; -} -.bodywebsite .text-thin { - font-weight: 100; -} -.bodywebsite .text-light { - font-weight: 300; -} -.bodywebsite .text-regular { - font-weight: 400; -} -.bodywebsite .text-medium { - font-weight: 500; -} -.bodywebsite .text-sbold { - font-weight: 600; -} -.bodywebsite .text-bold, -.bodywebsite strong { - font-weight: 700; -} -.bodywebsite .text-ubold { - font-weight: 900; -} -.bodywebsite .text-spacing-0 { - letter-spacing: 0; -} -.bodywebsite .text-spacing-40 { - letter-spacing: 0.04em; -} -.bodywebsite .text-spacing-inverse-20 { - letter-spacing: -0.02em; -} -.bodywebsite .text-spacing-120 { - letter-spacing: 0.12em; -} -.bodywebsite .btn { - max-width: 100%; - font-family: "Roboto", Helvetica, Arial, sans-serif; - font-size: 14px; - font-weight: 700; - border-radius: 0; - border: 2px solid; - text-transform: uppercase; - transition: 0.3s ease-out; - padding: 11px 15px; -} -@media (min-width: 992px) { - .bodywebsite .btn { - padding: 12px 35px; - } -} -.bodywebsite .btn:focus, -.bodywebsite .btn:active, -.bodywebsite .btn:active:focus { - outline: none; -} -.bodywebsite .btn:active, -.bodywebsite .btn.active { - box-shadow: none; -} -.bodywebsite .btn-smaller { - padding: 8px 25px; -} -.bodywebsite .btn-small { - padding-left: 20px; - padding-right: 20px; -} -@media (min-width: 768px) { - .bodywebsite .btn { - min-width: 190px; - } -} -html .bodywebsite .btn-default, -html .bodywebsite .btn-default:active, -html .bodywebsite .btn-default.active, -html .bodywebsite .btn-default:active:focus, -html .bodywebsite .btn-default.active:focus, -html .bodywebsite .btn-default:focus:active, -html .bodywebsite .btn-default:focus { - color: #fff; - background-color: #464a4d; - border-color: #464a4d; -} -.bodywebsite .open > html .btn-default.dropdown-toggle, -html .bodywebsite .btn-default:hover { - color: #fff; - background-color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; - border-color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; -} -html .bodywebsite .btn-default.disabled, -html .bodywebsite .btn-default[disabled], -.bodywebsite fieldset[disabled] html .btn-default { - pointer-events: none; - opacity: .5; -} -html .bodywebsite .btn-default .badge { - color: #464a4d; - background-color: #fff; -} -html .bodywebsite .btn-primary, -html .bodywebsite .btn-primary:active, -html .bodywebsite .btn-primary.active, -html .bodywebsite .btn-primary:active:focus, -html .bodywebsite .btn-primary.active:focus, -html .bodywebsite .btn-primary:focus:active, -html .bodywebsite .btn-primary:focus { - color: #fff; - background-color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; - border-color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; - /* border: 0; */ -} -.bodywebsite .open > html .btn-primary.dropdown-toggle { - color: #fff; - background-color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; - border-color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; - /* border: none; */ -} -html .bodywebsite .btn-primary:hover { - color: #fff; - box-shadow: 1px 1px 8px #aaa; -} -html .bodywebsite .btn-primary.disabled, -html .bodywebsite .btn-primary[disabled], -.bodywebsite fieldset[disabled] html .btn-primary { - pointer-events: none; - opacity: .5; -} -html .bodywebsite .btn-primary .badge { - color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; - background-color: #fff; -} -html .bodywebsite .btn-primary-contrast, -html .bodywebsite .btn-primary-contrast:active, -html .bodywebsite .btn-primary-contrast.active, -html .bodywebsite .btn-primary-contrast:active:focus, -html .bodywebsite .btn-primary-contrast.active:focus, -html .bodywebsite .btn-primary-contrast:focus:active, -html .bodywebsite .btn-primary-contrast:focus { - color: #fff; - background-color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; - border-color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; -} -.bodywebsite .open > html .btn-primary-contrast.dropdown-toggle, -html .bodywebsite .btn-primary-contrast:hover { - color: #fff; - background-color: #42b294; - border-color: #42b294; -} -html .bodywebsite .btn-primary-contrast.disabled, -html .bodywebsite .btn-primary-contrast[disabled], -.bodywebsite fieldset[disabled] html .btn-primary-contrast { - pointer-events: none; - opacity: .5; -} -html .bodywebsite .btn-primary-contrast .badge { - color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; - background-color: #fff; -} -html .bodywebsite .btn-primary-outline, -html .bodywebsite .btn-primary-outline:active, -html .bodywebsite .btn-primary-outline.active, -html .bodywebsite .btn-primary-outline:active:focus, -html .bodywebsite .btn-primary-outline.active:focus, -html .bodywebsite .btn-primary-outline:focus:active, -html .bodywebsite .btn-primary-outline:focus { - color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; - background-color: transparent; - border-color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; -} -.bodywebsite .open > html .btn-primary-outline.dropdown-toggle, -html .bodywebsite .btn-primary-outline:hover { - color: #fff; - background-color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; - border-color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; -} -html .bodywebsite .btn-primary-outline.disabled, -html .bodywebsite .btn-primary-outline[disabled], -.bodywebsite fieldset[disabled] html .btn-primary-outline { - pointer-events: none; - opacity: .5; -} -html .bodywebsite .btn-primary-outline .badge { - color: transparent; - background-color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; -} -html .bodywebsite .btn-cello-outline, -html .bodywebsite .btn-cello-outline:active, -html .bodywebsite .btn-cello-outline.active, -html .bodywebsite .btn-cello-outline:active:focus, -html .bodywebsite .btn-cello-outline.active:focus, -html .bodywebsite .btn-cello-outline:focus:active, -html .bodywebsite .btn-cello-outline:focus { - color: #1e3953; - background-color: transparent; - border-color: #1e3953; -} -.bodywebsite .open > html .btn-cello-outline.dropdown-toggle, -html .bodywebsite .btn-cello-outline:hover { - color: #fff; - background-color: #1e3953; - border-color: #1e3953; -} -html .bodywebsite .btn-cello-outline.disabled, -html .bodywebsite .btn-cello-outline[disabled], -.bodywebsite fieldset[disabled] html .btn-cello-outline { - pointer-events: none; - opacity: .5; -} -html .bodywebsite .btn-cello-outline .badge { - color: transparent; - background-color: #1e3953; -} -html .bodywebsite .btn-white-outline, -html .bodywebsite .btn-white-outline:active, -html .bodywebsite .btn-white-outline.active, -html .bodywebsite .btn-white-outline:active:focus, -html .bodywebsite .btn-white-outline.active:focus, -html .bodywebsite .btn-white-outline:focus:active, -html .bodywebsite .btn-white-outline:focus { - color: #fff; - background-color: transparent; - border-color: #fff; -} -.bodywebsite .open > html .btn-white-outline.dropdown-toggle, -html .bodywebsite .btn-white-outline:hover { - color: #fff; - background-color: maincolorbis) ? '#6ca' : '#'.$website->maincolorbis; ?>; - border-color: maincolorbis) ? '#6ca' : '#'.$website->maincolorbis; ?>; -} -html .bodywebsite .btn-white-outline.disabled, -html .bodywebsite .btn-white-outline[disabled], -.bodywebsite fieldset[disabled] html .btn-white-outline { - pointer-events: none; - opacity: .5; -} -html .bodywebsite .btn-white-outline .badge { - color: transparent; - background-color: #fff; -} -html .bodywebsite .btn-white-outline-variant-1, -html .bodywebsite .btn-white-outline-variant-1:active, -html .bodywebsite .btn-white-outline-variant-1.active, -html .bodywebsite .btn-white-outline-variant-1:active:focus, -html .bodywebsite .btn-white-outline-variant-1.active:focus, -html .bodywebsite .btn-white-outline-variant-1:focus:active, -html .bodywebsite .btn-white-outline-variant-1:focus { - color: #fff; - background-color: transparent; - border-color: #fff; -} -.bodywebsite .open > html .btn-white-outline-variant-1.dropdown-toggle, -html .bodywebsite .btn-white-outline-variant-1:hover { - color: #fff; - background-color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; - border-color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; -} -html .bodywebsite .btn-white-outline-variant-1.disabled, -html .bodywebsite .btn-white-outline-variant-1[disabled], -.bodywebsite fieldset[disabled] html .btn-white-outline-variant-1 { - pointer-events: none; - opacity: .5; -} -html .bodywebsite .btn-white-outline-variant-1 .badge { - color: transparent; - background-color: #fff; -} -html .bodywebsite .btn-silver-outline, -html .bodywebsite .btn-silver-outline:active, -html .bodywebsite .btn-silver-outline.active, -html .bodywebsite .btn-silver-outline:active:focus, -html .bodywebsite .btn-silver-outline.active:focus, -html .bodywebsite .btn-silver-outline:focus:active, -html .bodywebsite .btn-silver-outline:focus { - color: #000; - background-color: transparent; - border-color: #cdcdcd; -} -.bodywebsite .open > html .btn-silver-outline.dropdown-toggle, -html .bodywebsite .btn-silver-outline:hover { - color: #fff; - background-color: #cdcdcd; - border-color: #cdcdcd; -} -html .bodywebsite .btn-silver-outline.disabled, -html .bodywebsite .btn-silver-outline[disabled], -.bodywebsite fieldset[disabled] html .btn-silver-outline { - pointer-events: none; - opacity: .5; -} -html .bodywebsite .btn-silver-outline .badge { - color: transparent; - background-color: #000; -} -html .bodywebsite .btn-black-outline, -html .bodywebsite .btn-black-outline:active, -html .bodywebsite .btn-black-outline.active, -html .bodywebsite .btn-black-outline:active:focus, -html .bodywebsite .btn-black-outline.active:focus, -html .bodywebsite .btn-black-outline:focus:active, -html .bodywebsite .btn-black-outline:focus { - color: #000; - background-color: transparent; - border-color: #000; -} -.bodywebsite .open > html .btn-black-outline.dropdown-toggle, -html .bodywebsite .btn-black-outline:hover { - color: #fff; - background-color: #000; - border-color: #000; -} -html .bodywebsite .btn-black-outline.disabled, -html .bodywebsite .btn-black-outline[disabled], -.bodywebsite fieldset[disabled] html .btn-black-outline { - pointer-events: none; - opacity: .5; -} -html .bodywebsite .btn-black-outline .badge { - color: transparent; - background-color: #000; -} -html .bodywebsite .btn-cello, -html .bodywebsite .btn-cello:active, -html .bodywebsite .btn-cello.active, -html .bodywebsite .btn-cello:active:focus, -html .bodywebsite .btn-cello.active:focus, -html .bodywebsite .btn-cello:focus:active, -html .bodywebsite .btn-cello:focus { - color: #fff; - background-color: #1e3953; - border-color: #1e3953; -} -.bodywebsite .open > html .btn-cello.dropdown-toggle, -html .bodywebsite .btn-cello:hover { - color: #fff; - background-color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; - border-color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; -} -html .bodywebsite .btn-cello.disabled, -html .bodywebsite .btn-cello[disabled], -.bodywebsite fieldset[disabled] html .btn-cello { - pointer-events: none; - opacity: .5; -} -html .bodywebsite .btn-cello .badge { - color: #1e3953; - background-color: #fff; -} -.bodywebsite .btn-xs { - padding: 12px 25px; - font-size: 11px; - line-height: 1.71429; - border-radius: 0; -} -@media (min-width: 768px) { - .bodywebsite .btn-xs { - min-width: 165px; - } -} -.bodywebsite .btn-sm { - padding: 10px 20px; - font-size: 13px; - line-height: 1.71429; - border-radius: 0; -} -@media (min-width: 768px) { - .bodywebsite .btn-sm { - min-width: 170px; - } -} -.bodywebsite .btn-lg { - padding: 14px 30px; - font-size: 14px; - line-height: 1.71429; - border-radius: 0; -} -@media (min-width: 768px) { - .bodywebsite .btn-lg { - min-width: 270px; - padding: 18px 40px; - } -} -@media (min-width: 992px) { - .bodywebsite .btn-lg-bigger { - padding-top: 28px; - padding-bottom: 28px; - } -} -.bodywebsite .btn-xl { - padding: 20px 35px; - font-size: 15px; - line-height: 1.71429; - border-radius: 0; -} -@media (min-width: 768px) { - .bodywebsite .btn-xl { - padding: 21px 50px; - } -} -@media (min-width: 992px) { - .bodywebsite .btn-xl { - min-width: 270px; - } -} -.bodywebsite .btn-min-width-0 { - min-width: 0; -} -.bodywebsite .btn-block { - min-width: 30px; - max-width: 100%; -} -.bodywebsite .btn-rect { - border-radius: 0; -} -.bodywebsite .btn-round { - border-radius: 12px; -} -.bodywebsite .btn-circle { - border-radius: 35px; -} -.bodywebsite .btn-round-bottom { - border-radius: 0 0 5px 5px; -} -.bodywebsite .btn-shadow { - box-shadow: -3px 3px 3px 0 rgba(0, 0, 0, 0.14); -} -.bodywebsite .btn.btn-icon { - display: -webkit-inline-box; - display: -webkit-inline-flex; - display: -ms-inline-flexbox; - display: inline-flex; - -webkit-flex-direction: row; - -ms-flex-direction: row; - flex-direction: row; - -webkit-flex-wrap: nowrap; - -ms-flex-wrap: nowrap; - flex-wrap: nowrap; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; - -webkit-justify-content: center; - -ms-flex-pack: center; - justify-content: center; - vertical-align: middle; -} -.bodywebsite .btn.btn-icon .icon { - position: relative; - top: 1px; - display: inline-block; - width: auto; - height: auto; - line-height: 0; - vertical-align: middle; - transition: 0s; -} -.bodywebsite .btn.btn-icon-left .icon { - margin-right: 10px; -} -.bodywebsite .btn.btn-icon-right { - -webkit-flex-direction: row-reverse; - -ms-flex-direction: row-reverse; - flex-direction: row-reverse; -} -.bodywebsite .btn.btn-icon-right .icon { - margin-left: 10px; -} -.bodywebsite .btn-icon-only { - background: none; - border: none; - display: inline-block; - padding: 0; - outline: none; - outline-offset: 0; - cursor: pointer; - -webkit-appearance: none; - font-size: 0; - line-height: 0; - transition: .33s all ease; -} -.bodywebsite .btn-icon-only::-moz-focus-inner { - border: none; - padding: 0; -} -.bodywebsite .btn-icon-only.btn-icon-only-primary, -.bodywebsite .btn-icon-only.btn-icon-only-primary:active, -.bodywebsite .btn-icon-only.btn-icon-only-primary:focus { - color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; -} -.bodywebsite .btn-icon-only.btn-icon-only-primary:hover { - color: #000; -} -.bodywebsite .btn-icon-only { - padding: 9px 18px; -} -.bodywebsite .btn-icon-single { - display: inline-block; - padding: 0; - min-width: 0; -} -.bodywebsite .btn-icon-default { - color: #000; -} -.bodywebsite .btn-icon-default:hover { - color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; -} -.bodywebsite .btn-cello-outline.btn-icon .icon { - color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; - transition: .33s all ease; -} -.bodywebsite .btn-cello-outline.btn-icon:hover.btn-icon .icon { - color: #fff; -} -.bodywebsite .button-block * + .btn { - margin-top: 0; -} -.bodywebsite .icon { - display: inline-block; - text-align: center; -} -.bodywebsite .icon:before { - display: inline-block; - font-weight: 400; - font-style: normal; - speak: none; - text-transform: none; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} -.bodywebsite [class*='icon-circle'] { - border-radius: 50%; - overflow: hidden; -} -.bodywebsite [class*='icon-round'] { - border-radius: 4px; - overflow: hidden; -} -.bodywebsite .page .icon-default { - color: #9f9f9f; -} -.bodywebsite .page .icon-black { - color: #000; -} -.bodywebsite .page .icon-primary { - color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; -} -.bodywebsite .page .icon-gunsmoke { - color: #767877; -} -.bodywebsite .page .icon-tundora { - color: #414141; -} -.bodywebsite .page .icon-gray-dark-filled { - color: #fff; - background: #2a2b2b; -} -.bodywebsite .page .icon-san-juan-filled { - color: #fff; - background: #2e5275; -} -.bodywebsite .page .icon-silver-chalice-filled { - color: #fff; - background: #ababab; -} -.bodywebsite .page .icon-abbey-filled { - color: #fff; - background: #464a4d; -} -.bodywebsite .page .icon-white { - color: #fff; -} -.bodywebsite .page a.icon-default, -.bodywebsite .page a.icon-default:active, -.bodywebsite .page a.icon-default:focus { - color: #9f9f9f; -} -.bodywebsite .page a.icon-default:hover { - color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; -} -.bodywebsite .page a.icon-primary, -.bodywebsite .page a.icon-primary:active, -.bodywebsite .page a.icon-primary:focus { - color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; -} -.bodywebsite .page a.icon-primary:hover { - color: #fff; -} -.bodywebsite .page a.icon-abbey-filled:hover { - color: #fff; - background: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; -} -.bodywebsite .page a.icon-tundora-inverse, -.bodywebsite .page a.icon-tundora-inverse:active, -.bodywebsite .page a.icon-tundora-inverse:focus { - color: #414141; -} -.bodywebsite .page a.icon-tundora-inverse:hover { - color: #fff; -} -.bodywebsite .page a.icon-gray-dark-filled, -.bodywebsite .page a.icon-gray-dark-filled:active, -.bodywebsite .page a.icon-gray-dark-filled:focus { - color: #fff; - background: #2a2b2b; -} -.bodywebsite .page a.icon-gray-dark-filled:hover { - color: #fff; - background: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; -} -.bodywebsite .page a.icon-silver-chalice-filled, -.bodywebsite .page a.icon-silver-chalice-filled:active, -.bodywebsite .page a.icon-silver-chalice-filled:focus { - color: #fff; - background: #ababab; -} -.bodywebsite .page a.icon-silver-chalice-filled:hover { - color: #fff; - background: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; -} -.bodywebsite .page a.icon-san-juan-filled, -.bodywebsite .page a.icon-san-juan-filled:active, -.bodywebsite .page a.icon-san-juan-filled:focus { - color: #fff; - background: #2e5275; -} -.bodywebsite .page a.icon-san-juan-filled:hover { - color: #fff; - background: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; -} -.bodywebsite .page .icon-xxs { - width: 18px; - height: 18px; - font-size: 18px; - line-height: 18px; -} -.bodywebsite .page .icon-xxs-small { - width: 16px; - height: 16px; - font-size: 16px; - line-height: 16px; -} -.bodywebsite .page .icon-xxs-smaller { - width: 14px; - height: 14px; - font-size: 14px; - line-height: 14px; -} -.bodywebsite .page .icon-xxs-smallest { - width: 12px; - height: 12px; - font-size: 12px; - line-height: 12px; -} -.bodywebsite .page .icon-xs { - width: 22px; - height: 22px; - font-size: 22px; - line-height: 22px; -} -.bodywebsite .page .icon-xs-smaller { - width: 20px; - height: 20px; - font-size: 20px; - line-height: 20px; -} -.bodywebsite .page .icon-sm { - width: 24px; - height: 24px; - font-size: 24px; - line-height: 24px; -} -.bodywebsite .page .icon-sm-custom { - width: 24px; - height: 24px; - font-size: 24px; - line-height: 24px; -} -@media (min-width: 992px) { - .bodywebsite .page .icon-sm-custom { - width: 30px; - height: 30px; - font-size: 30px; - line-height: 30px; - } -} -.bodywebsite .page .icon-md { - width: 36px; - height: 36px; - font-size: 36px; - line-height: 36px; -} -.bodywebsite .page .icon-md-custom { - width: 26px; - height: 26px; - font-size: 26px; - line-height: 26px; -} -@media (min-width: 992px) { - .bodywebsite .page .icon-md-custom { - width: 36px; - height: 36px; - font-size: 36px; - line-height: 36px; - } -} -.bodywebsite .page .icon-md-smaller { - width: 30px; - height: 30px; - font-size: 30px; - line-height: 30px; -} -.bodywebsite .page .icon-lg { - width: 45px; - height: 45px; - font-size: 45px; - line-height: 45px; -} -.bodywebsite .page .icon-lg-variant-1 { - width: 42px; - height: 42px; - font-size: 42px; - line-height: 42px; -} -.bodywebsite .page .icon-lg-variant-2 { - width: 44px; - height: 44px; - font-size: 44px; - line-height: 44px; -} -.bodywebsite .page .icon-lg-bigger { - width: 50px; - height: 50px; - font-size: 50px; - line-height: 50px; -} -.bodywebsite .page .icon-xl { - width: 60px; - height: 60px; - font-size: 60px; - line-height: 60px; -} -.bodywebsite .page [class*='icon-round'].icon-xxs-smallest, -.bodywebsite .page [class*='icon-circle'].icon-xxs-smallest { - width: 26px; - height: 26px; - line-height: 26px; -} -.bodywebsite .icon-shift-1 { - position: relative; - top: 2px; -} -.bodywebsite .icon-shift-2 { - position: relative; - top: 2px; -} -@media (min-width: 992px) { - .bodywebsite .icon-shift-2 { - top: 4px; - } -} -.bodywebsite .icon-1:before, -.bodywebsite .icon-2:before, -.bodywebsite .icon-4:before, -.bodywebsite .icon-5:before, -.bodywebsite .icon-6:before, -.bodywebsite .icon-3:before { - content: ''; - display: inline-block; - width: 40px; - height: 40px; -} -.bodywebsite .thumbnail { - position: relative; - z-index: 1; - width: 100%; - max-height: 100%; - overflow: hidden; - padding: 0; - margin: 0; - border: none; - border-radius: 0; - background-color: transparent; -} -.bodywebsite .thumbnail .caption { - padding: 0; -} -.bodywebsite .thumbnail { - box-shadow: none; -} -.bodywebsite .thumbnail-variant-1 { - background-color: transparent; - text-align: center; -} -.bodywebsite .thumbnail-variant-1 .thumbnail-image { - position: relative; - display: inline-block; - overflow: hidden; - pointer-events: none; -} -.bodywebsite .thumbnail-variant-1 .thumbnail-image, -.bodywebsite .thumbnail-variant-1 .thumbnail-image > img { - border-radius: 600px; -} -.bodywebsite .thumbnail-variant-1 .thumbnail-image > img { - width: auto; - pointer-events: auto; -} -.bodywebsite .thumbnail-variant-1 .thumbnail-image-inner { - position: absolute; - top: 0; - right: 1px; - bottom: 0; - left: 1px; - z-index: 2; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-flex-direction: row; - -ms-flex-direction: row; - flex-direction: row; - -webkit-flex-wrap: nowrap; - -ms-flex-wrap: nowrap; - flex-wrap: nowrap; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; - -webkit-justify-content: center; - -ms-flex-pack: center; - justify-content: center; - padding: 20px 5px 5px; - background: rgba(0, 0, 0, 0.4); - border-radius: 600px; -} -.bodywebsite .thumbnail-variant-1 .thumbnail-image-inner * { - pointer-events: auto; -} -.bodywebsite .thumbnail-variant-1 .thumbnail-image-inner > * + * { - margin-top: 0; - margin-left: 20px; -} -.bodywebsite .thumbnail-variant-1 .header { - line-height: 1.2; -} -.bodywebsite .thumbnail-variant-1 * + p { - margin-top: 0; -} -.bodywebsite .thumbnail-variant-1 * + .thumbnail-caption { - margin-top: 18px; -} -@media (min-width: 992px) { - .bodywebsite .desktop .thumbnail-variant-1 .thumbnail-image-inner { - opacity: 0; - visibility: hidden; - transform: rotate3d(0, 1, 0, 60deg); - transition: .55s all ease; - background: rgba(0, 0, 0, 0.6); - } - .bodywebsite .desktop .thumbnail-variant-1 .thumbnail-image:hover .thumbnail-image-inner { - opacity: 1; - visibility: visible; - transform: rotate3d(0, 1, 0, 0deg); - } -} -@media (min-width: 1200px) { - .bodywebsite .thumbnail-variant-1 * + .thumbnail-caption { - margin-top: 30px; - } -} -.bodywebsite .thumbnail-variant-2 { - min-height: 300px; - padding: 30px 0 0; - overflow: visible; - text-align: center; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-flex-direction: column; - -ms-flex-direction: column; - flex-direction: column; - -webkit-flex-wrap: nowrap; - -ms-flex-wrap: nowrap; - flex-wrap: nowrap; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; - -webkit-justify-content: flex-end; - -ms-flex-pack: end; - justify-content: flex-end; -} -.bodywebsite .thumbnail-variant-2-wrap { - padding-bottom: 25px; -} -.bodywebsite .thumbnail-variant-2 .thumbnail-image { - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - height: 100%; - width: 100%; - overflow: hidden; -} -.bodywebsite .thumbnail-variant-2 .thumbnail-image > img { - position: absolute; - top: 20%; - left: 50%; - transform: translate(-50%, -20%); - width: auto; - min-width: 101%; - max-width: none; - height: auto; - min-height: 100%; - max-height: none; -} -.bodywebsite .thumbnail-variant-2:before { - content: ''; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: 1; - background: rgba(0, 0, 0, 0.5); -} -.bodywebsite .thumbnail-variant-2 .thumbnail-inner { - position: relative; - z-index: 2; - padding: 30px 10px; -} -.bodywebsite .thumbnail-variant-2 .thumbnail-caption { - position: relative; - z-index: 3; - width: calc(66%); - padding: 17px 8px 25px; - margin: 31px 17px -25px 17px; - background: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; -} -.bodywebsite .thumbnail-variant-2 .thumbnail-caption * { - color: #fff; -} -.bodywebsite .thumbnail-variant-2 .thumbnail-caption a, -.bodywebsite .thumbnail-variant-2 .thumbnail-caption a:active, -.bodywebsite .thumbnail-variant-2 .thumbnail-caption a:focus { - color: #fff; -} -.bodywebsite .thumbnail-variant-2 .thumbnail-caption a:hover { - color: #9f9f9f; -} -.bodywebsite .thumbnail-variant-2 .text-header { - font-size: 18px; - font-weight: 700; -} -.bodywebsite .thumbnail-variant-2 .text-caption { - font-style: italic; - line-height: 1.3; - font-family: "Roboto", Helvetica, Arial, sans-serif; -} -@media (min-width: 768px) { - .bodywebsite .thumbnail-variant-2 .text-caption { - font-size: 16px; - } -} -@media (min-width: 992px) { - .bodywebsite .desktop .thumbnail-variant-2:before { - top: 40px; - } - .bodywebsite .desktop .thumbnail-variant-2 .thumbnail-inner > * { - position: relative; - transform: translateY(14px); - transition: 0.4s all ease-in-out; - } - .bodywebsite .desktop .thumbnail-variant-2:before, - .bodywebsite .desktop .thumbnail-variant-2 .thumbnail-inner { - opacity: 0; - visibility: hidden; - transition: 0.33s all ease-out; - } - .bodywebsite .desktop .thumbnail-variant-2:hover:before { - top: 0; - left: 0; - right: 0; - } - .bodywebsite .desktop .thumbnail-variant-2:hover .thumbnail-inner > * { - transform: translateY(0); - } - .bodywebsite .desktop .thumbnail-variant-2:hover:before, - .bodywebsite .desktop .thumbnail-variant-2:hover .thumbnail-inner { - opacity: 1; - visibility: visible; - } -} -@media (min-width: 992px) { - .bodywebsite .thumbnail-variant-2 .thumbnail-caption { - width: calc(84%); - margin: 31px 8px -25px 8px; - } -} -@media (min-width: 1200px) { - .bodywebsite .thumbnail-variant-2 { - width: calc(78%); - margin: 0 11px 0; - } - .bodywebsite .thumbnail-variant-2 .thumbnail-caption { - width: calc(66%); - margin: 31px 17px -25px 17px; - } -} -.bodywebsite .ie-11 .thumbnail-variant-2 { - min-height: 0; -} -.bodywebsite .thumbnail-variant-3 { - width: 100.025%; - text-align: center; -} -.bodywebsite .thumbnail-variant-3 img { - position: relative; - left: 50%; - transform: translateX(-50%); - width: auto; - max-width: none; - min-width: 100.5%; -} -.bodywebsite .thumbnail-variant-3 .link-external { - position: absolute; - top: -30px; - right: -30px; - z-index: 1; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; - -webkit-justify-content: center; - -ms-flex-pack: center; - justify-content: center; - width: 200px; - height: 110px; - padding: 55px 15px 5px; - vertical-align: bottom; - line-height: 40px; - background: #fafafa; - transform-origin: 74% 110%; - transform: rotate(45deg); - will-change: transform; - text-align: center; - /** - @bugfix: color flickering in child objects on hover - @affected: IE Edge - */ - transition: top 0.28s cubic-bezier(0.79, 0.14, 0.15, 0.86), right 0.28s cubic-bezier(0.79, 0.14, 0.15, 0.86), opacity 0.28s cubic-bezier(0.79, 0.14, 0.15, 0.86), visibility 0.28s cubic-bezier(0.79, 0.14, 0.15, 0.86); -} -.bodywebsite .thumbnail-variant-3 .link-external .icon { - transition: none; - transform: rotate(-45deg); - color: #000; - vertical-align: bottom; -} -.bodywebsite .thumbnail-variant-3 .link-external:hover { - top: -12px; - right: -12px; -} -.bodywebsite .thumbnail-variant-3 .link-original { - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-flex-direction: row; - -ms-flex-direction: row; - flex-direction: row; - -webkit-flex-wrap: nowrap; - -ms-flex-wrap: nowrap; - flex-wrap: nowrap; - -webkit-align-items: flex-end; - -ms-flex-align: end; - align-items: flex-end; - -webkit-justify-content: flex-start; - -ms-flex-pack: start; - justify-content: flex-start; -} -.bodywebsite .thumbnail-variant-3 .link-original, -.bodywebsite .thumbnail-variant-3 .link-original:active, -.bodywebsite .thumbnail-variant-3 .link-original:focus, -.bodywebsite .thumbnail-variant-3 .link-original:hover { - color: #fff; -} -.bodywebsite .thumbnail-variant-3 .link-original:before { - content: '\e8ff'; - position: relative; - left: 20px; - bottom: 30px; - z-index: 3; - font-family: 'Material Icons'; - font-size: 140px; - line-height: 1; - opacity: .2; - transition: .33s all ease; -} -.bodywebsite .thumbnail-variant-3 .caption { - position: absolute; - top: -2px; - right: 0; - bottom: -2px; - left: 0; - padding: 15px; - transition: 0.33s all ease-in-out; - background: rgba(0, 0, 0, 0.6); -} -@media (min-width: 992px) { - .bodywebsite .desktop .thumbnail-variant-3 figure img { - will-change: transform; - transition: 0.4s ease-out; - } - .bodywebsite .desktop .thumbnail-variant-3 .caption, - .bodywebsite .desktop .thumbnail-variant-3 .link-external { - opacity: 0; - visibility: hidden; - } - .bodywebsite .desktop .thumbnail-variant-3 .link-external { - right: -50px; - top: -50px; - } - .bodywebsite .desktop .thumbnail-variant-3:hover .caption, - .bodywebsite .desktop .thumbnail-variant-3:hover .link-external { - opacity: 1; - visibility: visible; - } - .bodywebsite .desktop .thumbnail-variant-3:hover figure img { - transform: translateX(-50%) scale(1.08); - } - .bodywebsite .desktop .thumbnail-variant-3:hover .link-external { - right: -30px; - top: -30px; - } - .bodywebsite .desktop .thumbnail-variant-3:hover .link-external:hover { - top: -20px; - right: -20px; - } -} -.bodywebsite .thumbnail-variant-3 > * + * { - margin-top: 0; -} -@media (min-width: 768px) { - .bodywebsite .thumbnail-wrap { - padding: 0 5px; - } -} -@media (min-width: 1200px) { - .bodywebsite .thumbnail-wrap { - padding: 0 9px; - } -} -.bodywebsite .thumbnail-variant-4 { - position: relative; - overflow: hidden; - box-shadow: 0px 0px 13px 0px rgba(1, 3, 4, 0.15); -} -.bodywebsite .thumbnail-variant-4 .thumbnail-image { - background: #000; -} -.bodywebsite .thumbnail-variant-4 .thumbnail-image img { - opacity: .92; -} -.bodywebsite .thumbnail-variant-4 .caption { - position: absolute; - left: 0; - right: 0; - bottom: 0; - padding: 16px 15px; - text-align: center; - color: #000; - background: #fff; -} -.bodywebsite .thumbnail-variant-4 .text-light { - color: #0d0d0d; -} -@media (min-width: 992px) { - .bodywebsite .desktop .thumbnail-variant-4 .thumbnail-image img { - position: relative; - will-change: transform; - opacity: 1; - transition: opacity .7s, transform .7s; - transform: scale3d(1.0001, 1.0001, 1); - } - .bodywebsite .desktop .thumbnail-variant-4 .caption, - .bodywebsite .desktop .thumbnail-variant-4 .caption-header { - transition: transform 0.55s; - transform: translate3d(0, 200%, 0); - } - .bodywebsite .desktop .thumbnail-variant-4 .caption-header { - transition-delay: 0.05s; - } - .bodywebsite .desktop .thumbnail-variant-4:hover .thumbnail-image img { - opacity: .9; - transform: scale3d(1.07, 1.07, 1); - } - .bodywebsite .desktop .thumbnail-variant-4:hover .caption, - .bodywebsite .desktop .thumbnail-variant-4:hover .caption-header { - transform: translate3d(0, 0, 0); - } -} -@media (min-width: 992px) { - .bodywebsite .thumbnail-variant-4 .caption { - padding: 20px 15px; - } -} -.bodywebsite .thumbnail-profile .thumbnail-image img { - width: 100%; -} -.bodywebsite .thumbnail-profile .thumbnail-caption { - padding: 20px; - background: #f2f3f7; -} -.bodywebsite .thumbnail-profile .thumbnail-caption-inner { - margin-bottom: -12px; - -webkit-align-items: flex-end; - -ms-flex-align: end; - align-items: flex-end; - transform: translateY(-12px); - text-align: center; -} -.bodywebsite .thumbnail-profile .thumbnail-caption-inner > * { - display: inline-block; - margin-top: 12px; - -webkit-flex-shrink: 0; - -ms-flex-negative: 0; - flex-shrink: 0; -} -.bodywebsite .thumbnail-profile .thumbnail-caption-inner, -.bodywebsite .thumbnail-profile .thumbnail-caption-inner > ul { - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; - -webkit-justify-content: center; - -ms-flex-pack: center; - justify-content: center; - -webkit-flex-direction: row; - -ms-flex-direction: row; - flex-direction: row; - -webkit-flex-wrap: wrap; - -ms-flex-wrap: wrap; - flex-wrap: wrap; -} -.bodywebsite .thumbnail-profile .thumbnail-caption-inner ul { - position: relative; - margin-bottom: -3px; - transform: translateY(-3px); - -webkit-flex-grow: 2; - -ms-flex-positive: 2; - flex-grow: 2; -} -.bodywebsite .thumbnail-profile .thumbnail-caption-inner ul > li { - display: inline-block; - margin-top: 3px; - padding: 0 7px; -} -.bodywebsite .thumbnail-profile .thumbnail-caption-inner .btn-wrap { - -webkit-flex-grow: 1; - -ms-flex-positive: 1; - flex-grow: 1; -} -@media (min-width: 576px) { - .bodywebsite .thumbnail-profile .thumbnail-caption-inner, - .bodywebsite .thumbnail-profile .thumbnail-caption-inner ul { - -webkit-justify-content: center; - -ms-flex-pack: center; - justify-content: center; - } -} -@media (min-width: 992px) { - .bodywebsite .thumbnail-profile .thumbnail-caption-inner ul { - -webkit-justify-content: space-around; - -ms-flex-pack: distribute; - justify-content: space-around; - } -} -@media (min-width: 1200px) { - .bodywebsite .thumbnail-profile .thumbnail-caption-inner { - text-align: left; - -webkit-justify-content: space-between; - -ms-flex-pack: justify; - justify-content: space-between; - } - .bodywebsite .thumbnail-profile .thumbnail-caption-inner .btn-wrap { - text-align: right; - } -} -@media (max-width: 767px) { - .bodywebsite .thumbnail-variant-2 { - max-width: 300px; - margin-left: auto; - margin-right: auto; - } - .bodywebsite .thumbnail-variant-3, - .bodywebsite .thumbnail-profile { - max-width: 370px; - margin-left: auto; - margin-right: auto; - } -} -.bodywebsite .thumbnail-block { - display: block; -} -.bodywebsite .thumbnail-block > img, -.bodywebsite .thumbnail-block a > img { - width: 100%; - height: auto; -} -.bodywebsite .thumbnail-variant-5 { - padding: 40px 20px; - display: inline-block; -} -.bodywebsite .thumbnail-variant-5, -.bodywebsite .thumbnail-variant-5 img { - transition: 0.2s ease-in-out; -} -@media (min-width: 992px) { - .bodywebsite .thumbnail-variant-5 { - border-top: 5px solid transparent; - border-bottom: 5px solid transparent; - } - .bodywebsite .thumbnail-variant-5 .thumbnail-variant-5-img-wrap { - position: relative; - display: inline-block; - } - .bodywebsite .thumbnail-variant-5 .thumbnail-variant-5-img-wrap:before { - content: ''; - position: absolute; - top: 0; - right: 0; - left: 0; - width: 100%; - height: 100%; - border-radius: 50%; - background: rgba(0, 0, 0, 0.4); - transition: 0.2s ease-in-out; - } - .bodywebsite .thumbnail-variant-5 { - box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.15); - border-color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; - } - .bodywebsite .thumbnail-variant-5:hover .thumbnail-variant-5-img-wrap:before { - opacity: 0; - } - .bodywebsite .thumbnail-variant-5:hover img { - will-change: transform; - -webkit-transform: scale(1.18); - transform: scale(1.18); - } -} -@media (min-width: 992px) { - .bodywebsite .thumbnail-variant-5 { - padding: 40px 50px; - } -} -@media (min-width: 1200px) { - .bodywebsite .thumbnail-variant-5 { - padding: 65px 50px; - } -} -.bodywebsite .thumbnail-variant-5 * + h2 { - margin-top: 36px; -} -.bodywebsite .thumbnail-variant-5 h2 + * { - margin-top: 0; -} -.bodywebsite .thumbnail-variant-5 .link-group + .link-group { - margin-top: 7px; -} -.bodywebsite .thumbnail-variant-5 .divider-fullwidth { - margin-top: 12px; - margin-bottom: 17px; -} -.bodywebsite .thumbnail-with-img * + .thumbnail-title { - margin-top: 22px; -} -.bodywebsite .thumbnail-with-img .thumbnail-title + * { - margin-top: 10px; -} -.bodywebsite .thumbnail-profile-info h4 + * { - margin-top: 0; -} -.bodywebsite .thumbnail-profile-info * + .profile-quote { - margin-top: 15px; -} -.bodywebsite .thumbnail-profile-info .profile-quote + * { - margin-top: 15px; -} -.bodywebsite .thumbnail-profile-info * + .list-progress { - margin-top: 35px; -} -@media (min-width: 992px) { - .bodywebsite .thumbnail-profile-info * + .profile-quote { - margin-top: 0; - } - .bodywebsite .thumbnail-profile-info .profile-quote + * { - margin-top: 0; - } -} -.bodywebsite figure img { - margin: 18px; - border: 1px solid #ccc; - box-shadow: 1px 1px 25px #aaa; - max-width: calc(44%); -} -.bodywebsite figure img { - width: 100%; - height: auto; - max-width: none; -} -.bodywebsite .figure .caption { - padding: 15px; -} -.bodywebsite .rd-mailform { - position: relative; -} -.bodywebsite label { - margin-bottom: 0; -} -.bodywebsite input::-webkit-autofill + .form-label { - display: none; - transition: none; -} -.bodywebsite .form-label, -.bodywebsite .form-input { - font-weight: 400; -} -.bodywebsite .input-sm, -.bodywebsite .input-lg, -.bodywebsite .form-input { - font-size: 14px; -} -.bodywebsite .input-sm, -.bodywebsite .input-sm:focus, -.bodywebsite .input-lg, -.bodywebsite .input-lg:focus, -.bodywebsite .form-input, -.bodywebsite .form-input:focus { - box-shadow: none; -} -.bodywebsite textarea.form-input { - height: 166px; - min-height: 52px; - max-height: 249px; - resize: vertical; -} -.bodywebsite .form-input { - height: auto; - min-height: 52px; - border: 0px solid #dedede; - border-radius: 0; - -webkit-appearance: none; - line-height: 24px; -} -.bodywebsite .form-input:focus { - outline: 0; -} -.bodywebsite .form-wrap { - position: relative; - margin-bottom: 0; -} -.bodywebsite .form-wrap + .form-wrap { - margin-top: 10px; -} -.bodywebsite .form-label { - position: absolute; - top: 26px; - left: 19px; - font-size: 14px; - color: #9f9f9f; - pointer-events: none; - z-index: 9; - transition: .3s; - transform: translateY(-50%); - will-change: transform; -} -.bodywebsite .form-label.focus { - opacity: 0; -} -.bodywebsite .form-label.auto-fill { - color: #9f9f9f; -} -@media (min-width: 768px) { - .bodywebsite .form-label-outside { - position: static; - margin-bottom: 8px; - } - .bodywebsite .form-label-outside, - .bodywebsite .form-label-outside.focus, - .bodywebsite .form-label-outside.auto-fill { - transform: none; - color: #9f9f9f; - font-size: 14px; - } -} -.bodywebsite .form-wrap-outside { - margin-top: 10px; -} -.bodywebsite .form-wrap-outside .form-label-outside { - position: absolute; - top: -15px; - left: 0; -} -.bodywebsite .form-wrap-outside .form-label-outside.focus { - opacity: 1; -} -@media (min-width: 768px) { - .bodywebsite .form-wrap-outside .form-label-outside { - top: -30px; - } -} -.bodywebsite .form-border-bottom { - border-bottom: 3px solid maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; -} -.bodywebsite .form-validation { - position: absolute; - right: 10px; - top: 2px; - font-size: 11px; - line-height: 11px; - color: #fe4a21; - margin-top: 2px; - transition: .3s; -} -.bodywebsite form.label-outside .form-validation { - top: 12px; -} -.bodywebsite .has-error .help-block, -.bodywebsite .has-error .control-label, -.bodywebsite .has-error .radio, -.bodywebsite .has-error .checkbox, -.bodywebsite .has-error .radio-inline, -.bodywebsite .has-error .checkbox-inline, -.bodywebsite .has-error.radio label, -.bodywebsite .has-error.checkbox label, -.bodywebsite .has-error.radio-inline label, -.bodywebsite .has-error.checkbox-inline label { - color: #fe4a21; -} -.bodywebsite .has-error .form-input:not(.form-input-impressed), -.bodywebsite .has-error .form-input:not(.form-input-impressed):focus { - border-color: #fe4a21; - box-shadow: none; -} -.bodywebsite .has-error .form-input-impressed, -.bodywebsite .has-error .form-input-impressed:focus { - box-shadow: inset 0 0 0 1px #fe4a21; -} -.bodywebsite .has-error .input-group-addon { - color: #fff; - border-color: #fe4a21; - background-color: #fe4a21; -} -.bodywebsite .form-inline .has-error ~ button[type='submit'] { - border-color: #fe4a21; - background: #fe4a21; -} -.bodywebsite .has-error .form-validation { - color: #fe4a21; -} -.bodywebsite .has-success .help-block, -.bodywebsite .has-success .control-label, -.bodywebsite .has-success .radio, -.bodywebsite .has-success .checkbox, -.bodywebsite .has-success .radio-inline, -.bodywebsite .has-success .checkbox-inline, -.bodywebsite .has-success.radio label, -.bodywebsite .has-success.checkbox label, -.bodywebsite .has-success.radio-inline label, -.bodywebsite .has-success.checkbox-inline label { - color: #58c476; -} -.bodywebsite .has-success .form-input:not(.form-input-impressed), -.bodywebsite .has-success .form-input:not(.form-input-impressed):focus { - border-color: #dff0d8; - box-shadow: none; -} -.bodywebsite .has-success .form-input-impressed, -.bodywebsite .has-success .form-input-impressed:focus { - box-shadow: inset 0 0 0 1px #dff0d8; -} -.bodywebsite .has-success .input-group-addon { - color: #fff; - border-color: #dff0d8; - background-color: #dff0d8; -} -.bodywebsite .form-inline .has-success ~ button[type='submit'] { - border-color: #dff0d8; - background: #dff0d8; -} -.bodywebsite .has-success .form-validation { - color: #58c476; -} -.bodywebsite .has-warning .help-block, -.bodywebsite .has-warning .control-label, -.bodywebsite .has-warning .radio, -.bodywebsite .has-warning .checkbox, -.bodywebsite .has-warning .radio-inline, -.bodywebsite .has-warning .checkbox-inline, -.bodywebsite .has-warning.radio label, -.bodywebsite .has-warning.checkbox label, -.bodywebsite .has-warning.radio-inline label, -.bodywebsite .has-warning.checkbox-inline label { - color: #c49558; -} -.bodywebsite .has-warning .form-input:not(.form-input-impressed), -.bodywebsite .has-warning .form-input:not(.form-input-impressed):focus { - border-color: #fcf8e3; - box-shadow: none; -} -.bodywebsite .has-warning .form-input-impressed, -.bodywebsite .has-warning .form-input-impressed:focus { - box-shadow: inset 0 0 0 1px #fcf8e3; -} -.bodywebsite .has-warning .input-group-addon { - color: #fff; - border-color: #fcf8e3; - background-color: #fcf8e3; -} -.bodywebsite .form-inline .has-warning ~ button[type='submit'] { - border-color: #fcf8e3; - background: #fcf8e3; -} -.bodywebsite .has-warning .form-validation { - color: #c49558; -} -.bodywebsite .has-info .help-block, -.bodywebsite .has-info .control-label, -.bodywebsite .has-info .radio, -.bodywebsite .has-info .checkbox, -.bodywebsite .has-info .radio-inline, -.bodywebsite .has-info .checkbox-inline, -.bodywebsite .has-info.radio label, -.bodywebsite .has-info.checkbox label, -.bodywebsite .has-info.radio-inline label, -.bodywebsite .has-info.checkbox-inline label { - color: #3e9cf6; -} -.bodywebsite .has-info .form-input:not(.form-input-impressed), -.bodywebsite .has-info .form-input:not(.form-input-impressed):focus { - border-color: #d9edf7; - box-shadow: none; -} -.bodywebsite .has-info .form-input-impressed, -.bodywebsite .has-info .form-input-impressed:focus { - box-shadow: inset 0 0 0 1px #d9edf7; -} -.bodywebsite .has-info .input-group-addon { - color: #fff; - border-color: #d9edf7; - background-color: #d9edf7; -} -.bodywebsite .form-inline .has-info ~ button[type='submit'] { - border-color: #d9edf7; - background: #d9edf7; -} -.bodywebsite .has-info .form-validation { - color: #3e9cf6; -} -.bodywebsite #form-output-global { - position: fixed; - bottom: 30px; - left: 15px; - visibility: hidden; - transform: translateX(-500px); - transition: .3s all ease; - z-index: 9999999; -} -.bodywebsite #form-output-global.active { - transform: translateX(0); - visibility: visible; -} -@media (min-width: 576px) { - .bodywebsite #form-output-global { - left: 30px; - } -} -.bodywebsite .form-output { - position: absolute; - top: 100%; - left: 0; - font-size: 14px; - line-height: 1.5; - margin-top: 2px; - transition: .3s; - opacity: 0; - visibility: hidden; -} -.bodywebsite .form-output.active { - opacity: 1; - visibility: visible; -} -.bodywebsite .form-output.error { - color: #fe4a21; -} -.bodywebsite .form-output.success { - color: #58c476; -} -.bodywebsite .radio .radio-custom, -.bodywebsite .radio-inline .radio-custom, -.bodywebsite .checkbox .checkbox-custom, -.bodywebsite .checkbox-inline .checkbox-custom { - opacity: 0; -} -.bodywebsite .radio .radio-custom, -.bodywebsite .radio .radio-custom-dummy, -.bodywebsite .radio-inline .radio-custom, -.bodywebsite .radio-inline .radio-custom-dummy, -.bodywebsite .checkbox .checkbox-custom, -.bodywebsite .checkbox .checkbox-custom-dummy, -.bodywebsite .checkbox-inline .checkbox-custom, -.bodywebsite .checkbox-inline .checkbox-custom-dummy { - position: absolute; - width: 18px; - height: 18px; - margin-left: -20px; - margin-top: 3px; - outline: none; - cursor: pointer; -} -.bodywebsite .radio .radio-custom-dummy, -.bodywebsite .radio-inline .radio-custom-dummy, -.bodywebsite .checkbox .checkbox-custom-dummy, -.bodywebsite .checkbox-inline .checkbox-custom-dummy { - pointer-events: none; -} -.bodywebsite .radio .radio-custom-dummy:after, -.bodywebsite .radio-inline .radio-custom-dummy:after, -.bodywebsite .checkbox .checkbox-custom-dummy:after, -.bodywebsite .checkbox-inline .checkbox-custom-dummy:after { - position: absolute; - opacity: 0; - transition: .22s; -} -.bodywebsite .radio .radio-custom:focus, -.bodywebsite .radio-inline .radio-custom:focus, -.bodywebsite .checkbox .checkbox-custom:focus, -.bodywebsite .checkbox-inline .checkbox-custom:focus { - outline: none; -} -.bodywebsite .radio-custom:checked + .radio-custom-dummy:after, -.bodywebsite .checkbox-custom:checked + .checkbox-custom-dummy:after { - opacity: 1; -} -.bodywebsite .radio, -.bodywebsite .radio-inline { - padding-left: 30px; -} -.bodywebsite .radio .radio-custom-dummy, -.bodywebsite .radio-inline .radio-custom-dummy { - margin-top: 2px; - border-radius: 50%; - margin-left: -30px; - background: transparent; - border: 2px solid #000; -} -.bodywebsite .radio .radio-custom-dummy:after, -.bodywebsite .radio-inline .radio-custom-dummy:after { - content: ''; - top: 3px; - right: 3px; - bottom: 3px; - left: 3px; - background: #00030a; - border-radius: 50%; -} -.bodywebsite .form-wrap-color .radio-inline, -.bodywebsite .form-wrap-size .radio-inline { - padding-left: 0; -} -.bodywebsite .form-wrap-color .radio-control, -.bodywebsite .form-wrap-size .radio-control { - position: relative; - display: block; - width: 24px; - height: 24px; - border-radius: 50%; - margin-top: 23px; - margin-bottom: 23px; -} -.bodywebsite .form-wrap-color .radio-control:after, -.bodywebsite .form-wrap-size .radio-control:after { - bottom: 0; -} -.bodywebsite .form-wrap-color .radio-control:after, -.bodywebsite .form-wrap-size .radio-control:after { - content: ''; - position: absolute; - left: 50%; - bottom: -23px; - transform: translateX(-50%); - width: 0; - max-width: 100%; - height: 3px; - background: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; - visibility: hidden; - transition: .2s; -} -.bodywebsite .form-wrap-color .radio-custom:checked ~ .radio-control:after, -.bodywebsite .form-wrap-size .radio-custom:checked ~ .radio-control:after { - visibility: visible; - width: 100%; -} -.bodywebsite .form-wrap-color .radio-custom-dummy, -.bodywebsite .form-wrap-size .radio-custom-dummy { - display: none; -} -.bodywebsite .form-wrap-size .radio-inline { - padding-left: 2px; - padding-right: 2px; -} -.bodywebsite .form-wrap-size .radio-inline + .radio-inline { - margin-left: 1px; -} -.bodywebsite .form-wrap-size .radio-control { - color: #9f9f9f; - text-align: center; - text-transform: uppercase; - transition: .2s; -} -.bodywebsite .form-wrap-size .radio-control:hover { - color: #000; -} -.bodywebsite .form-wrap-size .radio-custom:checked ~ .radio-control { - color: #000; -} -.bodywebsite .checkbox, -.bodywebsite .checkbox-inline { - padding-left: 38px; - color: #000; -} -.bodywebsite .checkbox .checkbox-custom-dummy, -.bodywebsite .checkbox-inline .checkbox-custom-dummy { - pointer-events: none; - border-radius: 2px; - margin-left: 0; - left: 0; - background: #fff; - box-shadow: none; - border: 2px solid #dedede; -} -.bodywebsite .checkbox .checkbox-custom-dummy:after, -.bodywebsite .checkbox-inline .checkbox-custom-dummy:after { - content: '\e5ca'; - font-family: 'Material Icons'; - font-size: 22px; - line-height: 10px; - position: absolute; - top: 0; - left: -1px; - color: #2a2b2b; -} -.bodywebsite .checkbox-small { - padding-left: 26px; -} -.bodywebsite .checkbox-small .checkbox-custom-dummy { - margin-top: 6px; - width: 12px; - height: 12px; - border-width: 1px; - border-radius: 1px; -} -.bodywebsite .checkbox-small .checkbox-custom-dummy:after { - top: -1px; - left: -2px; - font-size: 18px; -} -.bodywebsite .textarea-lined-wrap { - position: relative; - line-height: 2.39; -} -.bodywebsite .textarea-lined-wrap textarea { - height: 203px; - resize: none; - overflow: hidden; - line-height: 2.39; - background-color: transparent; -} -.bodywebsite .textarea-lined-wrap-xs textarea { - height: 68px; -} -.bodywebsite .page .form-classic-bordered .form-label, -.bodywebsite .page .form-classic-bordered .form-label-outside, -.bodywebsite .page .form-classic-bordered .form-input { - color: #000; -} -.bodywebsite .page .form-classic-bordered .form-input { - border: 1px solid #dedede; -} -.bodywebsite .page .form-modern .form-input, -.bodywebsite .page .form-modern .form-label { - color: #9f9f9f; -} -.bodywebsite .page .form-modern input { - height: auto; - min-height: 20px; -} -.bodywebsite .page .form-modern .form-input:focus { - border-color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; -} -.bodywebsite .page .form-modern .form-input { - padding: 6px 0; - border-radius: 0; - border-width: 0 0 1px 0; - border-color: #dedede; - background-color: transparent; -} -.bodywebsite .page .form-modern .form-label { - left: 0; - top: 18px; -} -.bodywebsite .page .form-modern .form-validation { - top: auto; - left: auto; - right: 0; - bottom: -12px; - font-style: italic; -} -.bodywebsite .page .form-modern .has-error .help-block, -.bodywebsite .page .form-modern .has-error .control-label, -.bodywebsite .page .form-modern .has-error .radio, -.bodywebsite .page .form-modern .has-error .checkbox, -.bodywebsite .page .form-modern .has-error .radio-inline, -.bodywebsite .page .form-modern .has-error .checkbox-inline, -.bodywebsite .page .form-modern .has-error.radio label, -.bodywebsite .page .form-modern .has-error.checkbox label, -.bodywebsite .page .form-modern .has-error.radio-inline label, -.bodywebsite .page .form-modern .has-error.checkbox-inline label { - color: #fe4a21; -} -.bodywebsite .page .form-modern .has-error .form-input:not(.form-input-impressed), -.bodywebsite .page .form-modern .has-error .form-input:not(.form-input-impressed):focus { - border-color: #fe4a21; - box-shadow: none; -} -.bodywebsite .page .form-modern .has-error .form-input-impressed, -.bodywebsite .page .form-modern .has-error .form-input-impressed:focus { - box-shadow: inset 0 0 0 1px #fe4a21; -} -.bodywebsite .page .form-modern .has-error .input-group-addon { - color: #fff; - border-color: #fe4a21; - background-color: #fe4a21; -} -.bodywebsite .form-inline .page .form-modern .has-error ~ button[type='submit'] { - border-color: #fe4a21; - background: #fe4a21; -} -.bodywebsite .page .form-modern .has-error .form-validation { - color: #fe4a21; -} -.bodywebsite .page .form-modern.form-darker .form-input, -.bodywebsite .page .form-modern.form-darker .form-label { - color: #000; -} -.bodywebsite .page .form-modern.form-darker .form-label:not(.focus) + .form-input { - border-color: #cdcdcd; -} -.bodywebsite .page .form-modern.form-inverse .form-label, -.bodywebsite .page .form-modern.form-inverse .form-input { - color: #9f9f9f; - background-color: transparent; -} -.bodywebsite .page .form-modern.form-inverse .form-label.text-white-05, -.bodywebsite .page .form-modern.form-inverse .form-input.text-white-05 { - color: rgba(255, 255, 255, 0.5); -} -.bodywebsite .stacktable { - width: 100%; - text-align: left; -} -.bodywebsite .st-head-row { - padding-top: 1em; -} -.bodywebsite .st-head-row.st-head-row-main { - font-size: 1.5em; - padding-top: 0; -} -.bodywebsite .st-key { - width: 49%; - text-align: right; - padding-right: 1%; -} -.bodywebsite .st-val { - width: 49%; - padding-left: 1%; -} -.bodywebsite .stacktable.large-only { - display: none; -} -.bodywebsite .stacktable.small-only { - display: table; -} -@media (min-width: 768px) { - .bodywebsite .stacktable.large-only { - display: table; - } - .bodywebsite .stacktable.small-only { - display: none; - } -} -.bodywebsite .section-relative { - position: relative; -} -.bodywebsite #sectionfooter h4, -.bodywebsite #sectiontestimonies h1 { - color: #fff; -} -@media (min-width: 768px) { - .bodywebsite .section-with-counters { - padding-top: 1px; - padding-bottom: 1px; - } - .bodywebsite .section-with-counters > div { - position: relative; - box-shadow: 2px 2px 27px 0px rgba(1, 3, 4, 0.35); - z-index: 2; - margin-top: -30px; - margin-bottom: -30px; - } -} -@media (min-width: 768px) { - .bodywebsite .section-image-aside { - position: relative; - } -} -.bodywebsite .section-image-aside-img { - position: absolute; - top: 0; - bottom: 0; - width: 190%; - -webkit-background-size: cover; - background-size: cover; -} -@media (min-width: 768px) { - .bodywebsite .section-image-aside-img { - width: 50vw; - } -} -.bodywebsite .section-image-aside-left .section-image-aside-img { - right: -50%; -} -@media (min-width: 768px) { - .bodywebsite .section-image-aside-left .section-image-aside-img { - right: 0; - } -} -.bodywebsite .section-image-aside-right .section-image-aside-img { - left: -50%; -} -@media (min-width: 768px) { - .bodywebsite .section-image-aside-right .section-image-aside-img { - left: 0; - } -} -.bodywebsite .section-15 { - padding-top: 15px; - padding-bottom: 15px; -} -.bodywebsite .section-30 { - padding-top: 30px; - padding-bottom: 30px; -} -.bodywebsite .section-35 { - padding-top: 35px; - padding-bottom: 35px; -} -.bodywebsite .section-40 { - padding-top: 40px; - padding-bottom: 40px; -} -.bodywebsite .section-45 { - padding-top: 45px; - padding-bottom: 45px; -} -.bodywebsite .section-50 { - padding-top: 50px; - padding-bottom: 50px; -} -.bodywebsite .section-60 { - padding-top: 60px; - padding-bottom: 60px; -} -.bodywebsite .section-66 { - padding-top: 66px; - padding-bottom: 66px; -} -.bodywebsite .section-75 { - padding-top: 75px; - padding-bottom: 75px; -} -.bodywebsite .section-90 { - padding-top: 90px; - padding-bottom: 90px; -} -.bodywebsite .section-100 { - padding-top: 100px; - padding-bottom: 100px; -} -.bodywebsite .section-120 { - padding-top: 120px; - padding-bottom: 120px; -} -.bodywebsite .section-130 { - padding-top: 130px; - padding-bottom: 130px; -} -.bodywebsite .section-145 { - padding-top: 145px; - padding-bottom: 145px; -} -.bodywebsite .section-165 { - padding-top: 165px; - padding-bottom: 165px; -} -@media (min-width: 576px) { - .bodywebsite .section-sm-15 { - padding-top: 15px; - padding-bottom: 15px; - } - .bodywebsite .section-sm-30 { - padding-top: 30px; - padding-bottom: 30px; - } - .bodywebsite .section-sm-35 { - padding-top: 35px; - padding-bottom: 35px; - } - .bodywebsite .section-sm-40 { - padding-top: 40px; - padding-bottom: 40px; - } - .bodywebsite .section-sm-45 { - padding-top: 45px; - padding-bottom: 45px; - } - .bodywebsite .section-sm-50 { - padding-top: 50px; - padding-bottom: 50px; - } - .bodywebsite .section-sm-60 { - padding-top: 60px; - padding-bottom: 60px; - } - .bodywebsite .section-sm-66 { - padding-top: 66px; - padding-bottom: 66px; - } - .bodywebsite .section-sm-75 { - padding-top: 75px; - padding-bottom: 75px; - } - .bodywebsite .section-sm-90 { - padding-top: 90px; - padding-bottom: 90px; - } - .bodywebsite .section-sm-100 { - padding-top: 100px; - padding-bottom: 100px; - } - .bodywebsite .section-sm-120 { - padding-top: 120px; - padding-bottom: 120px; - } - .bodywebsite .section-sm-130 { - padding-top: 130px; - padding-bottom: 130px; - } - .bodywebsite .section-sm-145 { - padding-top: 145px; - padding-bottom: 145px; - } - .bodywebsite .section-sm-165 { - padding-top: 165px; - padding-bottom: 165px; - } -} -@media (min-width: 768px) { - .bodywebsite .section-md-15 { - padding-top: 15px; - padding-bottom: 15px; - } - .bodywebsite .section-md-30 { - padding-top: 30px; - padding-bottom: 30px; - } - .bodywebsite .section-md-35 { - padding-top: 35px; - padding-bottom: 35px; - } - .bodywebsite .section-md-40 { - padding-top: 40px; - padding-bottom: 40px; - } - .bodywebsite .section-md-45 { - padding-top: 45px; - padding-bottom: 45px; - } - .bodywebsite .section-md-50 { - padding-top: 50px; - padding-bottom: 50px; - } - .bodywebsite .section-md-60 { - padding-top: 60px; - padding-bottom: 60px; - } - .bodywebsite .section-md-66 { - padding-top: 66px; - padding-bottom: 66px; - } - .bodywebsite .section-md-75 { - padding-top: 75px; - padding-bottom: 75px; - } - .bodywebsite .section-md-90 { - padding-top: 90px; - padding-bottom: 90px; - } - .bodywebsite .section-md-100 { - padding-top: 100px; - padding-bottom: 100px; - } - .bodywebsite .section-md-120 { - padding-top: 120px; - padding-bottom: 120px; - } - .bodywebsite .section-md-130 { - padding-top: 130px; - padding-bottom: 130px; - } - .bodywebsite .section-md-145 { - padding-top: 145px; - padding-bottom: 145px; - } - .bodywebsite .section-md-165 { - padding-top: 165px; - padding-bottom: 165px; - } -} -@media (min-width: 992px) { - .bodywebsite .section-lg-15 { - padding-top: 15px; - padding-bottom: 15px; - } - .bodywebsite .section-lg-30 { - padding-top: 30px; - padding-bottom: 30px; - } - .bodywebsite .section-lg-35 { - padding-top: 35px; - padding-bottom: 35px; - } - .bodywebsite .section-lg-40 { - padding-top: 40px; - padding-bottom: 40px; - } - .bodywebsite .section-lg-45 { - padding-top: 45px; - padding-bottom: 45px; - } - .bodywebsite .section-lg-50 { - padding-top: 50px; - padding-bottom: 50px; - } - .bodywebsite .section-lg-60 { - padding-top: 60px; - padding-bottom: 60px; - } - .bodywebsite .section-lg-66 { - padding-top: 66px; - padding-bottom: 66px; - } - .bodywebsite .section-lg-75 { - padding-top: 75px; - padding-bottom: 75px; - } - .bodywebsite .section-lg-90 { - padding-top: 90px; - padding-bottom: 90px; - } - .bodywebsite .section-lg-100 { - padding-top: 100px; - padding-bottom: 100px; - } - .bodywebsite .section-lg-120 { - padding-top: 120px; - padding-bottom: 120px; - } - .bodywebsite .section-lg-130 { - padding-top: 130px; - padding-bottom: 130px; - } - .bodywebsite .section-lg-145 { - padding-top: 145px; - padding-bottom: 145px; - } - .bodywebsite .section-lg-165 { - padding-top: 165px; - padding-bottom: 165px; - } -} -@media (min-width: 1200px) { - .bodywebsite .section-xl-15 { - padding-top: 15px; - padding-bottom: 15px; - } - .bodywebsite .section-xl-30 { - padding-top: 30px; - padding-bottom: 30px; - } - .bodywebsite .section-xl-35 { - padding-top: 35px; - padding-bottom: 35px; - } - .bodywebsite .section-xl-40 { - padding-top: 40px; - padding-bottom: 40px; - } - .bodywebsite .section-xl-45 { - padding-top: 45px; - padding-bottom: 45px; - } - .bodywebsite .section-xl-50 { - padding-top: 50px; - padding-bottom: 50px; - } - .bodywebsite .section-xl-60 { - padding-top: 60px; - padding-bottom: 60px; - } - .bodywebsite .section-xl-66 { - padding-top: 66px; - padding-bottom: 66px; - } - .bodywebsite .section-xl-75 { - padding-top: 75px; - padding-bottom: 75px; - } - .bodywebsite .section-xl-90 { - padding-top: 90px; - padding-bottom: 90px; - } - .bodywebsite .section-xl-100 { - padding-top: 100px; - padding-bottom: 100px; - } - .bodywebsite .section-xl-120 { - padding-top: 120px; - padding-bottom: 120px; - } - .bodywebsite .section-xl-130 { - padding-top: 130px; - padding-bottom: 130px; - } - .bodywebsite .section-xl-145 { - padding-top: 145px; - padding-bottom: 145px; - } - .bodywebsite .section-xl-165 { - padding-top: 165px; - padding-bottom: 165px; - } -} -@media (min-width: 1800px) { - .bodywebsite .section-xxl-15 { - padding-top: 15px; - padding-bottom: 15px; - } - .bodywebsite .section-xxl-30 { - padding-top: 30px; - padding-bottom: 30px; - } - .bodywebsite .section-xxl-35 { - padding-top: 35px; - padding-bottom: 35px; - } - .bodywebsite .section-xxl-40 { - padding-top: 40px; - padding-bottom: 40px; - } - .bodywebsite .section-xxl-45 { - padding-top: 45px; - padding-bottom: 45px; - } - .bodywebsite .section-xxl-50 { - padding-top: 50px; - padding-bottom: 50px; - } - .bodywebsite .section-xxl-60 { - padding-top: 60px; - padding-bottom: 60px; - } - .bodywebsite .section-xxl-66 { - padding-top: 66px; - padding-bottom: 66px; - } - .bodywebsite .section-xxl-75 { - padding-top: 75px; - padding-bottom: 75px; - } - .bodywebsite .section-xxl-90 { - padding-top: 90px; - padding-bottom: 90px; - } - .bodywebsite .section-xxl-100 { - padding-top: 100px; - padding-bottom: 100px; - } - .bodywebsite .section-xxl-120 { - padding-top: 120px; - padding-bottom: 120px; - } - .bodywebsite .section-xxl-130 { - padding-top: 130px; - padding-bottom: 130px; - } - .bodywebsite .section-xxl-145 { - padding-top: 145px; - padding-bottom: 145px; - } - .bodywebsite .section-xxl-165 { - padding-top: 165px; - padding-bottom: 165px; - } -} -.bodywebsite .section-top-15 { - padding-top: 15px; -} -.bodywebsite .section-top-30 { - padding-top: 30px; -} -.bodywebsite .section-top-35 { - padding-top: 35px; -} -.bodywebsite .section-top-40 { - padding-top: 40px; -} -.bodywebsite .section-top-45 { - padding-top: 45px; -} -.bodywebsite .section-top-50 { - padding-top: 50px; -} -.bodywebsite .section-top-60 { - padding-top: 60px; -} -.bodywebsite .section-top-66 { - padding-top: 66px; -} -.bodywebsite .section-top-75 { - padding-top: 75px; -} -.bodywebsite .section-top-90 { - padding-top: 90px; -} -.bodywebsite .section-top-100 { - padding-top: 100px; -} -.bodywebsite .section-top-120 { - padding-top: 120px; -} -.bodywebsite .section-top-130 { - padding-top: 130px; -} -.bodywebsite .section-top-145 { - padding-top: 145px; -} -.bodywebsite .section-top-165 { - padding-top: 165px; -} -@media (min-width: 576px) { - .bodywebsite .section-sm-top-15 { - padding-top: 15px; - } - .bodywebsite .section-sm-top-30 { - padding-top: 30px; - } - .bodywebsite .section-sm-top-35 { - padding-top: 35px; - } - .bodywebsite .section-sm-top-40 { - padding-top: 40px; - } - .bodywebsite .section-sm-top-45 { - padding-top: 45px; - } - .bodywebsite .section-sm-top-50 { - padding-top: 50px; - } - .bodywebsite .section-sm-top-60 { - padding-top: 60px; - } - .bodywebsite .section-sm-top-66 { - padding-top: 66px; - } - .bodywebsite .section-sm-top-75 { - padding-top: 75px; - } - .bodywebsite .section-sm-top-90 { - padding-top: 90px; - } - .bodywebsite .section-sm-top-100 { - padding-top: 100px; - } - .bodywebsite .section-sm-top-120 { - padding-top: 120px; - } - .bodywebsite .section-sm-top-130 { - padding-top: 130px; - } - .bodywebsite .section-sm-top-145 { - padding-top: 145px; - } - .bodywebsite .section-sm-top-165 { - padding-top: 165px; - } -} -@media (min-width: 768px) { - .bodywebsite .section-md-top-15 { - padding-top: 15px; - } - .bodywebsite .section-md-top-30 { - padding-top: 30px; - } - .bodywebsite .section-md-top-35 { - padding-top: 35px; - } - .bodywebsite .section-md-top-40 { - padding-top: 40px; - } - .bodywebsite .section-md-top-45 { - padding-top: 45px; - } - .bodywebsite .section-md-top-50 { - padding-top: 50px; - } - .bodywebsite .section-md-top-60 { - padding-top: 60px; - } - .bodywebsite .section-md-top-66 { - padding-top: 66px; - } - .bodywebsite .section-md-top-75 { - padding-top: 75px; - } - .bodywebsite .section-md-top-90 { - padding-top: 90px; - } - .bodywebsite .section-md-top-100 { - padding-top: 100px; - } - .bodywebsite .section-md-top-120 { - padding-top: 120px; - } - .bodywebsite .section-md-top-130 { - padding-top: 130px; - } - .bodywebsite .section-md-top-145 { - padding-top: 145px; - } - .bodywebsite .section-md-top-165 { - padding-top: 165px; - } -} -@media (min-width: 992px) { - .bodywebsite .section-lg-top-15 { - padding-top: 15px; - } - .bodywebsite .section-lg-top-30 { - padding-top: 30px; - } - .bodywebsite .section-lg-top-35 { - padding-top: 35px; - } - .bodywebsite .section-lg-top-40 { - padding-top: 40px; - } - .bodywebsite .section-lg-top-45 { - padding-top: 45px; - } - .bodywebsite .section-lg-top-50 { - padding-top: 50px; - } - .bodywebsite .section-lg-top-60 { - padding-top: 60px; - } - .bodywebsite .section-lg-top-66 { - padding-top: 66px; - } - .bodywebsite .section-lg-top-75 { - padding-top: 75px; - } - .bodywebsite .section-lg-top-90 { - padding-top: 90px; - } - .bodywebsite .section-lg-top-100 { - padding-top: 100px; - } - .bodywebsite .section-lg-top-120 { - padding-top: 120px; - } - .bodywebsite .section-lg-top-130 { - padding-top: 130px; - } - .bodywebsite .section-lg-top-145 { - padding-top: 145px; - } - .bodywebsite .section-lg-top-165 { - padding-top: 165px; - } -} -@media (min-width: 1200px) { - .bodywebsite .section-xl-top-15 { - padding-top: 15px; - } - .bodywebsite .section-xl-top-30 { - padding-top: 30px; - } - .bodywebsite .section-xl-top-35 { - padding-top: 35px; - } - .bodywebsite .section-xl-top-40 { - padding-top: 40px; - } - .bodywebsite .section-xl-top-45 { - padding-top: 45px; - } - .bodywebsite .section-xl-top-50 { - padding-top: 50px; - } - .bodywebsite .section-xl-top-60 { - padding-top: 60px; - } - .bodywebsite .section-xl-top-66 { - padding-top: 66px; - } - .bodywebsite .section-xl-top-75 { - padding-top: 75px; - } - .bodywebsite .section-xl-top-90 { - padding-top: 90px; - } - .bodywebsite .section-xl-top-100 { - padding-top: 100px; - } - .bodywebsite .section-xl-top-120 { - padding-top: 120px; - } - .bodywebsite .section-xl-top-130 { - padding-top: 130px; - } - .bodywebsite .section-xl-top-145 { - padding-top: 145px; - } - .bodywebsite .section-xl-top-165 { - padding-top: 165px; - } -} -@media (min-width: 1800px) { - .bodywebsite .section-xxl-top-15 { - padding-top: 15px; - } - .bodywebsite .section-xxl-top-30 { - padding-top: 30px; - } - .bodywebsite .section-xxl-top-35 { - padding-top: 35px; - } - .bodywebsite .section-xxl-top-40 { - padding-top: 40px; - } - .bodywebsite .section-xxl-top-45 { - padding-top: 45px; - } - .bodywebsite .section-xxl-top-50 { - padding-top: 50px; - } - .bodywebsite .section-xxl-top-60 { - padding-top: 60px; - } - .bodywebsite .section-xxl-top-66 { - padding-top: 66px; - } - .bodywebsite .section-xxl-top-75 { - padding-top: 75px; - } - .bodywebsite .section-xxl-top-90 { - padding-top: 90px; - } - .bodywebsite .section-xxl-top-100 { - padding-top: 100px; - } - .bodywebsite .section-xxl-top-120 { - padding-top: 120px; - } - .bodywebsite .section-xxl-top-130 { - padding-top: 130px; - } - .bodywebsite .section-xxl-top-145 { - padding-top: 145px; - } - .bodywebsite .section-xxl-top-165 { - padding-top: 165px; - } -} -.bodywebsite .section-bottom-15 { - padding-bottom: 15px; -} -.bodywebsite .section-bottom-30 { - padding-bottom: 30px; -} -.bodywebsite .section-bottom-35 { - padding-bottom: 35px; -} -.bodywebsite .section-bottom-40 { - padding-bottom: 40px; -} -.bodywebsite .section-bottom-45 { - padding-bottom: 45px; -} -.bodywebsite .section-bottom-50 { - padding-bottom: 50px; -} -.bodywebsite .section-bottom-60 { - padding-bottom: 60px; -} -.bodywebsite .section-bottom-66 { - padding-bottom: 66px; -} -.bodywebsite .section-bottom-75 { - padding-bottom: 75px; -} -.bodywebsite .section-bottom-90 { - padding-bottom: 90px; -} -.bodywebsite .section-bottom-100 { - padding-bottom: 100px; -} -.bodywebsite .section-bottom-120 { - padding-bottom: 120px; -} -.bodywebsite .section-bottom-130 { - padding-bottom: 130px; -} -.bodywebsite .section-bottom-145 { - padding-bottom: 145px; -} -.bodywebsite .section-bottom-165 { - padding-bottom: 165px; -} -@media (min-width: 576px) { - .bodywebsite .section-sm-bottom-15 { - padding-bottom: 15px; - } - .bodywebsite .section-sm-bottom-30 { - padding-bottom: 30px; - } - .bodywebsite .section-sm-bottom-35 { - padding-bottom: 35px; - } - .bodywebsite .section-sm-bottom-40 { - padding-bottom: 40px; - } - .bodywebsite .section-sm-bottom-45 { - padding-bottom: 45px; - } - .bodywebsite .section-sm-bottom-50 { - padding-bottom: 50px; - } - .bodywebsite .section-sm-bottom-60 { - padding-bottom: 60px; - } - .bodywebsite .section-sm-bottom-66 { - padding-bottom: 66px; - } - .bodywebsite .section-sm-bottom-75 { - padding-bottom: 75px; - } - .bodywebsite .section-sm-bottom-90 { - padding-bottom: 90px; - } - .bodywebsite .section-sm-bottom-100 { - padding-bottom: 100px; - } - .bodywebsite .section-sm-bottom-120 { - padding-bottom: 120px; - } - .bodywebsite .section-sm-bottom-130 { - padding-bottom: 130px; - } - .bodywebsite .section-sm-bottom-145 { - padding-bottom: 145px; - } - .bodywebsite .section-sm-bottom-165 { - padding-bottom: 165px; - } -} -@media (min-width: 768px) { - .bodywebsite .section-md-bottom-15 { - padding-bottom: 15px; - } - .bodywebsite .section-md-bottom-30 { - padding-bottom: 30px; - } - .bodywebsite .section-md-bottom-35 { - padding-bottom: 35px; - } - .bodywebsite .section-md-bottom-40 { - padding-bottom: 40px; - } - .bodywebsite .section-md-bottom-45 { - padding-bottom: 45px; - } - .bodywebsite .section-md-bottom-50 { - padding-bottom: 50px; - } - .bodywebsite .section-md-bottom-60 { - padding-bottom: 60px; - } - .bodywebsite .section-md-bottom-66 { - padding-bottom: 66px; - } - .bodywebsite .section-md-bottom-75 { - padding-bottom: 75px; - } - .bodywebsite .section-md-bottom-90 { - padding-bottom: 90px; - } - .bodywebsite .section-md-bottom-100 { - padding-bottom: 100px; - } - .bodywebsite .section-md-bottom-120 { - padding-bottom: 120px; - } - .bodywebsite .section-md-bottom-130 { - padding-bottom: 130px; - } - .bodywebsite .section-md-bottom-145 { - padding-bottom: 145px; - } - .bodywebsite .section-md-bottom-165 { - padding-bottom: 165px; - } -} -@media (min-width: 992px) { - .bodywebsite .section-lg-bottom-15 { - padding-bottom: 15px; - } - .bodywebsite .section-lg-bottom-30 { - padding-bottom: 30px; - } - .bodywebsite .section-lg-bottom-35 { - padding-bottom: 35px; - } - .bodywebsite .section-lg-bottom-40 { - padding-bottom: 40px; - } - .bodywebsite .section-lg-bottom-45 { - padding-bottom: 45px; - } - .bodywebsite .section-lg-bottom-50 { - padding-bottom: 50px; - } - .bodywebsite .section-lg-bottom-60 { - padding-bottom: 60px; - } - .bodywebsite .section-lg-bottom-66 { - padding-bottom: 66px; - } - .bodywebsite .section-lg-bottom-75 { - padding-bottom: 75px; - } - .bodywebsite .section-lg-bottom-90 { - padding-bottom: 90px; - } - .bodywebsite .section-lg-bottom-100 { - padding-bottom: 100px; - } - .bodywebsite .section-lg-bottom-120 { - padding-bottom: 120px; - } - .bodywebsite .section-lg-bottom-130 { - padding-bottom: 130px; - } - .bodywebsite .section-lg-bottom-145 { - padding-bottom: 145px; - } - .bodywebsite .section-lg-bottom-165 { - padding-bottom: 165px; - } -} -@media (min-width: 1200px) { - .bodywebsite .section-xl-bottom-15 { - padding-bottom: 15px; - } - .bodywebsite .section-xl-bottom-30 { - padding-bottom: 30px; - } - .bodywebsite .section-xl-bottom-35 { - padding-bottom: 35px; - } - .bodywebsite .section-xl-bottom-40 { - padding-bottom: 40px; - } - .bodywebsite .section-xl-bottom-45 { - padding-bottom: 45px; - } - .bodywebsite .section-xl-bottom-50 { - padding-bottom: 50px; - } - .bodywebsite .section-xl-bottom-60 { - padding-bottom: 60px; - } - .bodywebsite .section-xl-bottom-66 { - padding-bottom: 66px; - } - .bodywebsite .section-xl-bottom-75 { - padding-bottom: 75px; - } - .bodywebsite .section-xl-bottom-90 { - padding-bottom: 90px; - } - .bodywebsite .section-xl-bottom-100 { - padding-bottom: 100px; - } - .bodywebsite .section-xl-bottom-120 { - padding-bottom: 120px; - } - .bodywebsite .section-xl-bottom-130 { - padding-bottom: 130px; - } - .bodywebsite .section-xl-bottom-145 { - padding-bottom: 145px; - } - .bodywebsite .section-xl-bottom-165 { - padding-bottom: 165px; - } -} -@media (min-width: 1800px) { - .bodywebsite .section-xxl-bottom-15 { - padding-bottom: 15px; - } - .bodywebsite .section-xxl-bottom-30 { - padding-bottom: 30px; - } - .bodywebsite .section-xxl-bottom-35 { - padding-bottom: 35px; - } - .bodywebsite .section-xxl-bottom-40 { - padding-bottom: 40px; - } - .bodywebsite .section-xxl-bottom-45 { - padding-bottom: 45px; - } - .bodywebsite .section-xxl-bottom-50 { - padding-bottom: 50px; - } - .bodywebsite .section-xxl-bottom-60 { - padding-bottom: 60px; - } - .bodywebsite .section-xxl-bottom-66 { - padding-bottom: 66px; - } - .bodywebsite .section-xxl-bottom-75 { - padding-bottom: 75px; - } - .bodywebsite .section-xxl-bottom-90 { - padding-bottom: 90px; - } - .bodywebsite .section-xxl-bottom-100 { - padding-bottom: 100px; - } - .bodywebsite .section-xxl-bottom-120 { - padding-bottom: 120px; - } - .bodywebsite .section-xxl-bottom-130 { - padding-bottom: 130px; - } - .bodywebsite .section-xxl-bottom-145 { - padding-bottom: 145px; - } - .bodywebsite .section-xxl-bottom-165 { - padding-bottom: 165px; - } -} -html .bodywebsite .group { - -webkit-transform: translateY(-15px); - transform: translateY(-15px); - margin-bottom: -15px; - margin-left: -15px; -} -html .bodywebsite .group > *, -html .bodywebsite .group > *:first-child { - display: inline-block; - margin-top: 15px; - margin-left: 15px; -} -html .bodywebsite .group-xs { - -webkit-transform: translateY(-5px); - transform: translateY(-5px); - margin-bottom: -5px; - margin-left: -5px; -} -html .bodywebsite .group-xs > *, -html .bodywebsite .group-xs > *:first-child { - display: inline-block; - margin-top: 5px; - margin-left: 5px; -} -html .bodywebsite .group-sm { - -webkit-transform: translateY(-10px); - transform: translateY(-10px); - margin-bottom: -10px; - margin-left: -10px; -} -html .bodywebsite .group-sm > *, -html .bodywebsite .group-sm > *:first-child { - display: inline-block; - margin-top: 10px; - margin-left: 10px; -} -html .bodywebsite .group-md { - -webkit-transform: translateY(-15px); - transform: translateY(-15px); - margin-bottom: -15px; - margin-left: -15px; -} -html .bodywebsite .group-md > *, -html .bodywebsite .group-md > *:first-child { - display: inline-block; - margin-top: 15px; - margin-left: 15px; -} -html .bodywebsite .group-lg { - -webkit-transform: translateY(-20px); - transform: translateY(-20px); - margin-bottom: -20px; - margin-left: -20px; -} -html .bodywebsite .group-lg > *, -html .bodywebsite .group-lg > *:first-child { - display: inline-block; - margin-top: 20px; - margin-left: 20px; -} -html .bodywebsite .group-xl { - -webkit-transform: translateY(-30px); - transform: translateY(-30px); - margin-bottom: -30px; - margin-left: -30px; -} -html .bodywebsite .group-xl > *, -html .bodywebsite .group-xl > *:first-child { - display: inline-block; - margin-top: 30px; - margin-left: 30px; -} -html .bodywebsite .group-top > *, -html .bodywebsite .group-top > *:first-child { - vertical-align: top; -} -html .bodywebsite .group-middle > *, -html .bodywebsite .group-middle > *:first-child { - vertical-align: middle; -} -html .bodywebsite .group-bottom > *, -html .bodywebsite .group-bottom > *:first-child { - vertical-align: bottom; -} -html .bodywebsite .group-inline > * { - display: inline; -} -html .bodywebsite .group-inline > *:not(:last-child) { - margin-right: .25em; -} -html .bodywebsite .group-xl-responsive { - -webkit-transform: translateY(-18px); - transform: translateY(-18px); - margin-bottom: -18px; - margin-left: -18px; -} -html .bodywebsite .group-xl-responsive > *, -html .bodywebsite .group-xl-responsive > *:first-child { - display: inline-block; - margin-top: 18px; - margin-left: 18px; -} -@media (min-width: 768px) { - html .bodywebsite .group-xl-responsive { - -webkit-transform: translateY(-30px); - transform: translateY(-30px); - margin-bottom: -30px; - margin-left: -30px; - } - html .bodywebsite .group-xl-responsive > *, - html .bodywebsite .group-xl-responsive > *:first-child { - display: inline-block; - margin-top: 30px; - margin-left: 30px; - } -} -.bodywebsite .group-flex-center { - display: -webkit-inline-box; - display: -webkit-inline-flex; - display: -ms-inline-flexbox; - display: inline-flex; - -webkit-flex-direction: row; - -ms-flex-direction: row; - flex-direction: row; - -webkit-flex-wrap: wrap; - -ms-flex-wrap: wrap; - flex-wrap: wrap; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; - -webkit-justify-content: center; - -ms-flex-pack: center; - justify-content: center; -} -.bodywebsite .relative { - position: relative; -} -.bodywebsite .static { - position: static; -} -.bodywebsite .block-top-level { - position: relative; - z-index: 3; -} -.bodywebsite .height-fill { - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-flex-direction: column; - -ms-flex-direction: column; - flex-direction: column; - -webkit-align-items: stretch; - -ms-flex-align: stretch; - align-items: stretch; -} -.bodywebsite .height-fill > * { - -webkit-flex-grow: 1; - -ms-flex-positive: 1; - flex-grow: 1; -} -.bodywebsite .centered { - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-justify-content: center; - -ms-flex-pack: center; - justify-content: center; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; -} -.bodywebsite .align-bottom { - -webkit-align-self: flex-end; - -ms-flex-item-align: end; - align-self: flex-end; -} -.bodywebsite .block-centered { - margin-left: auto; - margin-right: auto; -} -@media (max-width: 767px) { - .bodywebsite .responsive-centered { - margin-left: auto; - margin-right: auto; - } -} -.bodywebsite .overflow-hidden { - overflow: hidden; -} -.bodywebsite .page .white-space-normal { - white-space: normal; -} -.bodywebsite * + h1, -.bodywebsite * + .h1 { - margin-top: 20px; -} -@media (min-width: 768px) { - .bodywebsite * + h1, - .bodywebsite * + .h1 { - margin-top: 27px; - } -} -@media (min-width: 992px) { - .bodywebsite * + h1, - .bodywebsite * + .h1 { - margin-top: 34px; - } -} -.bodywebsite * + h2, -.bodywebsite * + .h2 { - margin-top: 25px; -} -.bodywebsite * + h3, -.bodywebsite * + .h3 { - margin-top: 17px; -} -.bodywebsite * + h4, -.bodywebsite * + .h4 { - margin-top: 15px; -} -.bodywebsite h1 + *, -.bodywebsite .h1 + * { - margin-top: 25px; -} -.bodywebsite h2 + *, -.bodywebsite .h2 + * { - margin-top: 18px; -} -.bodywebsite h3 + *, -.bodywebsite .h3 + * { - margin-top: 19px; -} -.bodywebsite h4 + *, -.bodywebsite .h4 + * { - margin-top: 18px; -} -.bodywebsite * + p, -.bodywebsite * + p { - margin-top: 14px; -} -.bodywebsite * + .text-big { - margin-top: 20px; -} -.bodywebsite hr + * { - margin-top: 18px; -} -@media (min-width: 1200px) { - .bodywebsite hr + * { - margin-top: 26px; - } -} -.bodywebsite * + .big { - margin-top: 6px; -} -.bodywebsite * + .text-large { - margin-top: 10px; -} -.bodywebsite * + .text-bigger { - margin-top: 28px; -} -.bodywebsite * + .btn { - margin-top: 30px; -} -@media (min-width: 1200px) { - .bodywebsite * + .btn { - margin-top: 44px; - } -} -.bodywebsite * + .link { - margin-top: 18px; -} -.bodywebsite * + .contact-info { - margin-top: 16px; -} -.bodywebsite * + .list-inline { - margin-top: 32px; -} -.bodywebsite * + .list-terms { - margin-top: 42px; -} -@media (min-width: 1200px) { - .bodywebsite * + .list-terms { - margin-top: 62px; - } -} -.bodywebsite * + .list-marked, -.bodywebsite * + .list-ordered { - margin-top: 22px; -} -.bodywebsite * + .link-wrap { - margin-top: 8px; -} -.bodywebsite * + .link-iconed { - margin-top: 2px; -} -.bodywebsite .contact-info { - vertical-align: baseline; -} -.bodywebsite .contact-info a { - display: inline-block; -} -.bodywebsite .contact-info dl dt, -.bodywebsite .contact-info dl dd { - display: inline-block; -} -.bodywebsite .contact-info dl dt:after { - content: ':'; - display: inline-block; - text-align: center; -} -.bodywebsite .contact-info .dl-inline dt { - padding-right: 0; -} -.bodywebsite .grid-system p { - color: #00030a; -} -@media (max-width: 1199px) { - .bodywebsite .grid-system p { - width: 100%; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - } -} -.bodywebsite .object-inline, -.bodywebsite .object-inline-baseline { - white-space: nowrap; -} -.bodywebsite .object-inline > * + *, -.bodywebsite .object-inline-baseline > * + * { - margin-top: 0; - margin-left: 5px; -} -.bodywebsite .object-inline { - vertical-align: middle; -} -.bodywebsite .object-inline > * { - display: inline-block; - vertical-align: middle; -} -.bodywebsite .object-inline-baseline { - vertical-align: baseline; -} -.bodywebsite .object-inline-baseline > * { - display: inline-block; - vertical-align: baseline; -} -.bodywebsite .row-no-gutter { - margin-left: 0; - margin-right: 0; -} -.bodywebsite .row-no-gutter [class*='col'] { - padding: 0; -} -.bodywebsite .text-width-1 { - max-width: 400px; -} -@media (min-width: 992px) { - .bodywebsite .text-width-1 { - max-width: 310px; - } -} -.bodywebsite .min-width-1 { - min-width: 100%; -} -@media (min-width: 576px) { - .bodywebsite .min-width-1 { - min-width: 270px; - } -} -.bodywebsite .img-shadow { - box-shadow: -3px 2px 4px 0px rgba(0, 0, 0, 0.58); -} -@media (min-width: 768px) { - .bodywebsite .img-shadow { - box-shadow: -5px 4px 8px 0px rgba(0, 0, 0, 0.58); - } -} -.bodywebsite .box { - box-shadow: 0 5px 23px 0 rgba(0, 0, 0, 0.3); - padding: 50px 30px; - margin-top: 10px; - margin-bottom: 10px; -} -@media (min-width: 992px) { - .bodywebsite .box { - padding: 55px 30px 65px 44px; - } -} -@media (min-width: 1200px) { - .bodywebsite .box { - padding: 54px 40px 85px 54px; - } -} -.bodywebsite .box-xs { - padding: 38px 20px; -} -.bodywebsite .page .box-list-xs { - box-shadow: 0 5px 13px 0 rgba(0, 0, 0, 0.2); -} -.bodywebsite .page .box-list-xs .box-xs + .box-xs { - border-top: 1px solid #1c2e3f; -} -@media (min-width: 768px) { - .bodywebsite .page .box-list-xs { - max-width: 170px; - } -} -.bodywebsite .group-item { - width: 100%; - max-width: 220px; - margin-left: auto; - margin-right: auto; -} -@media (min-width: 576px) { - .bodywebsite .group-item { - max-width: 300px; - } -} -@media (min-width: 768px) { - .bodywebsite .group-item { - min-width: 40%; - max-width: 0; - } -} -@media (min-width: 1200px) { - .bodywebsite .group-item { - min-width: 272px; - } - .bodywebsite .group-item-sm { - min-width: 195px; - } -} -@media (min-width: 1200px) { - .bodywebsite .border-modern { - position: relative; - } - .bodywebsite .border-modern .border-modern-item-1, - .bodywebsite .border-modern .border-modern-item-2, - .bodywebsite .border-modern .border-modern-item-3, - .bodywebsite .border-modern .border-modern-item-4 { - position: absolute; - width: 45px; - height: 45px; - border-left: 3px solid maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; - border-top: 3px solid maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; - } - .bodywebsite .border-modern .border-modern-item-1, - .bodywebsite .border-modern .border-modern-item-2 { - top: -27px; - } - .bodywebsite .border-modern .border-modern-item-3, - .bodywebsite .border-modern .border-modern-item-4 { - bottom: -68px; - } - .bodywebsite .border-modern .border-modern-item-1, - .bodywebsite .border-modern .border-modern-item-3 { - left: 0px; - } - .bodywebsite .border-modern .border-modern-item-2, - .bodywebsite .border-modern .border-modern-item-4 { - right: 0px; - } - .bodywebsite .border-modern .border-modern-item-2 { - transform: rotate(90deg); - } - .bodywebsite .border-modern .border-modern-item-3 { - transform: rotate(-90deg); - } - .bodywebsite .border-modern .border-modern-item-4 { - transform: rotate(180deg); - } -} -.bodywebsite .pagination-custom { - display: inline-block; - position: relative; - transform: translateY(-4px); - margin-bottom: -4px; -} -.bodywebsite .pagination-custom > * { - margin-top: 4px; -} -.bodywebsite .pagination-custom > *:not(:last-child) { - margin-right: 4px; -} -.bodywebsite .pagination-custom .page-item { - display: inline-block; - line-height: 1; -} -.bodywebsite .pagination-custom .page-item:first-child .page-link, -.bodywebsite .pagination-custom .page-item:last-child .page-link { - padding-left: 25px; - padding-right: 25px; - color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; - border-color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; -} -.bodywebsite .pagination-custom .page-item .page-link { - display: block; - width: auto; - min-width: 52px; - height: 52px; - padding: 10px 20px; - border: 2px solid; - border-radius: 0; - font: 700 14px/14px "Roboto", Helvetica, Arial, sans-serif; - text-transform: uppercase; - vertical-align: middle; -} -.bodywebsite .pagination-custom .page-item .page-link:after { - content: ''; - height: 108%; - width: 0; - display: inline-block; - vertical-align: middle; -} -.bodywebsite .pagination-custom .page-item .page-link, -.bodywebsite .pagination-custom .page-item .page-link:active, -.bodywebsite .pagination-custom .page-item .page-link:focus { - color: #000; - background: transparent; - border-color: #cdcdcd; -} -.bodywebsite .pagination-custom .page-item .page-link:hover { - color: #fff; - background: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; - border-color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; -} -.bodywebsite .pagination-custom .page-item.disabled, -.bodywebsite .pagination-custom .page-item.active { - pointer-events: none; -} -.bodywebsite .pagination-custom .page-item.active .page-link { - color: #fff; - background: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; - border-color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; -} -.bodywebsite .pagination-custom .page-item.disabled .page-link { - color: #f9f9f9; - background: #cdcdcd; - border-color: #cdcdcd; -} -.bodywebsite .label-custom { - padding: .35em .3em .25em; - font-weight: 400; - font-size: 70%; - text-transform: uppercase; -} -.bodywebsite .mac .label-custom { - padding-top: .4em; -} -.bodywebsite .label-custom.label-danger { - color: #fff; - background: #fe4a21; - box-shadow: inset 0 8px 12px rgba(0, 0, 0, 0.25); -} -.bodywebsite .label-custom.label-info { - color: #fff; - background: #3e9cf6; - box-shadow: inset 0 8px 12px rgba(0, 0, 0, 0.25); -} -.bodywebsite blockquote { - font: inherit; - padding: 0; - margin: 0; - border: 0; -} -.bodywebsite blockquote q:before, -.bodywebsite blockquote q:after { - content: none; -} -.bodywebsite blockquote cite { - font-style: normal; -} -.bodywebsite .quote-default { - position: relative; - padding: 43px 0 43px 6px; - color: #00030a; -} -.bodywebsite .quote-default svg { - fill: #ddd; -} -.bodywebsite .quote-default .quote-open, -.bodywebsite .quote-default .quote-close { - position: absolute; - left: 30px; -} -.bodywebsite .quote-default .quote-open { - top: 0; -} -.bodywebsite .quote-default .quote-close { - bottom: 0; -} -.bodywebsite .quote-bordered { - padding-top: 14px; -} -.bodywebsite .quote-bordered .quote-body { - position: relative; - padding-bottom: 10px; -} -.bodywebsite .quote-bordered h6 { - font-size: 18px; -} -.bodywebsite .quote-bordered .quote-body-inner { - position: relative; - padding: 37px 22px 29px 34px; - border-style: solid; - border-width: 1px 1px 0 1px; - border-color: #e5e7e9; -} -.bodywebsite .quote-bordered .quote-body-inner:before, -.bodywebsite .quote-bordered .quote-body-inner:after { - content: ''; - position: absolute; - bottom: -10px; - height: 10px; - border-style: solid; - border-color: #e5e7e9; - background-color: transparent; -} -.bodywebsite .quote-bordered .quote-body-inner:before { - left: 10px; - width: 46px; - border-width: 1px 1px 0 0; - transform: skew(45deg); - transform-origin: 100% 100%; -} -.bodywebsite .quote-bordered .quote-body-inner:after { - right: 10px; - width: calc(34%); - border-width: 1px 0 0 1px; - transform: skew(-45deg); - transform-origin: 0 100%; -} -.bodywebsite .quote-bordered .quote-open { - position: absolute; - top: -10px; - left: 34px; - z-index: 2; -} -.bodywebsite .quote-bordered .quote-open > svg { - fill: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; -} -.bodywebsite .quote-bordered .quote-footer { - padding-left: 25px; -} -.bodywebsite .quote-bordered cite { - font-size: 17px; - font-weight: 900; - line-height: 21px; - color: #fff; -} -.bodywebsite .quote-bordered * + .quote-footer { - margin-top: 9px; -} -.bodywebsite .quote-bordered cite + p { - margin-top: 0; -} -.bodywebsite .quote-bordered-inverse cite, -.bodywebsite .quote-bordered-inverse q { - color: #000; -} -.bodywebsite .quote-minimal-bordered { - position: relative; - padding: 16px 0 26px; - text-align: center; -} -.bodywebsite .quote-minimal-bordered q { - font: 400 20px "Roboto", Helvetica, Arial, sans-serif; - font-style: italic; - color: #464a4d; -} -.bodywebsite .quote-minimal-bordered q:before, -.bodywebsite .quote-minimal-bordered q:after { - content: '"'; -} -.bodywebsite .quote-minimal-bordered:before, -.bodywebsite .quote-minimal-bordered:after { - content: ''; - position: absolute; - left: 50%; - width: 270px; - height: 1px; - transform: translateX(-50%); - background: -moz-linear-gradient(left, rgba(255, 255, 255, 0) 0%, #dedede 50%, rgba(0, 0, 0, 0) 100%); - background: -webkit-linear-gradient(left, rgba(255, 255, 255, 0) 0%, #dedede 50%, rgba(0, 0, 0, 0) 100%); - background: linear-gradient(to right, rgba(255, 255, 255, 0) 0%, #dedede 50%, rgba(0, 0, 0, 0) 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00ffffff', endColorstr='#00000000', GradientType=1); -} -.bodywebsite .quote-minimal-bordered:before { - top: 0; -} -.bodywebsite .quote-minimal-bordered:after { - bottom: 0; -} -@media (min-width: 768px) { - .bodywebsite .quote-minimal-bordered q { - font-size: 24px; - line-height: 1.55; - } -} -@media (min-width: 1200px) { - .bodywebsite .quote-minimal-bordered q { - font-size: 30px; - } -} -.bodywebsite .quote-minimal q { - font-size: 18px; - font-weight: 300; - font-style: italic; - line-height: 1.2; - color: #000; -} -.bodywebsite .quote-minimal cite { - font: 700 15px "Roboto", Helvetica, Arial, sans-serif; - line-height: 1.1; - color: #000; -} -.bodywebsite .quote-minimal .caption { - color: #9f9f9f; -} -.bodywebsite .quote-minimal.quote-minimal-inverse q { - color: #fff; -} -.bodywebsite .quote-minimal.quote-minimal-inverse cite { - color: #fff; -} -.bodywebsite .quote-minimal.quote-minimal-inverse .caption { - color: rgba(255, 255, 255, 0.5); -} -.bodywebsite .quote-minimal * + .caption { - margin-top: 0; -} -.bodywebsite .quote-minimal * + .quote-meta { - margin-top: 20px; -} -.bodywebsite .quote-strict q, -.bodywebsite .quote-strict cite { - color: #000; -} -.bodywebsite .quote-strict q { - font-size: 19px; - font-weight: 300; - font-style: italic; - line-height: 28px; -} -.bodywebsite .quote-strict cite { - display: block; - font: 700 16px/21px "Roboto", Helvetica, Arial, sans-serif; - text-transform: uppercase; -} -.bodywebsite .quote-strict * + cite { - margin-top: 20px; -} -.bodywebsite .quote-strict.quote-strict-inverse q, -.bodywebsite .quote-strict.quote-strict-inverse cite { - color: #fff; -} -.bodywebsite .quote-vertical { - max-width: 360px; - margin-left: auto; - margin-right: auto; - text-align: center; -} -.bodywebsite .quote-vertical q { - font-size: 16px; - line-height: 1.57895; - font-weight: 100; - color: rgba(0, 0, 0, 0.5); -} -.bodywebsite .quote-vertical cite { - display: block; - color: #000; - font: 700 14px/18px "Roboto", Helvetica, Arial, sans-serif; -} -.bodywebsite .quote-vertical .quote-open > svg { - fill: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; -} -.bodywebsite .quote-vertical .quote-image, -.bodywebsite .quote-vertical .quote-image > img { - border-radius: 600px; -} -.bodywebsite .quote-vertical .quote-image > img { - width: auto; -} -.bodywebsite .quote-vertical * + cite { - margin-top: 16px; -} -.bodywebsite .quote-vertical * + .caption { - margin-top: 0; -} -.bodywebsite .quote-vertical * + .quote-text { - margin-top: 25px; -} -.bodywebsite .quote-vertical * + .quote-meta { - margin-top: 25px; -} -.bodywebsite .quote-vertical.quote-vertical-inverse q, -.bodywebsite .quote-vertical.quote-vertical-inverse cite { - color: #fff; -} -.bodywebsite .quote-vertical.quote-vertical-inverse .cite { - color: rgba(255, 255, 255, 0.5); -} -.bodywebsite .quote-vertical.quote-vertical-inverse .quote-open > svg { - fill: #fff; -} -.bodywebsite .quote-review cite { - font: 700 14px/18px "Roboto", Helvetica, Arial, sans-serif; - text-transform: uppercase; - letter-spacing: -0.025em; - color: #000; -} -.bodywebsite .quote-review .quote-header { - position: relative; - transform: translateY(-2px); - margin-bottom: -2px; -} -.bodywebsite .quote-review .quote-header > * { - margin-top: 2px; -} -.bodywebsite .quote-review .quote-header > *:not(:last-child) { - margin-right: 10px; -} -.bodywebsite .quote-review .quote-header > * { - display: inline-block; - vertical-align: middle; -} -.bodywebsite .quote-review * + .quote-body { - margin-top: 10px; -} -.bodywebsite * + .quote-review { - margin-top: 35px; -} -@media (min-width: 768px) { - .bodywebsite .quote-minimal q { - font-size: 22px; - } - .bodywebsite .quote-minimal cite { - font-size: 19px; - } - .bodywebsite .quote-minimal * + .quote-meta { - margin-top: 37px; - } - .bodywebsite * + .quote-review { - margin-top: 45px; - } -} -@media (min-width: 992px) { - .bodywebsite .quote-minimal q { - font-size: 24px; - } - .bodywebsite .quote-vertical q { - font-size: 19px; - } -} -.bodywebsite .quote-left .divider-fullwidth { - margin-top: 20px; - background: #bcd; -} -.bodywebsite .quote-left .quote-name { - font-size: 18px; - font-weight: 500; - color: #fff; -} -@media (min-width: 992px) { - .bodywebsite .quote-left .quote-name { - font-size: 24px; - } -} -.bodywebsite .quote-left .quote-desc-text { - font-size: 26px; - line-height: 1; - font-style: italic; - font-weight: 700; -} -@media (min-width: 992px) { - .bodywebsite .quote-left .quote-desc-text { - font-size: 36px; - } -} -.bodywebsite .quote-left .quote-body { - margin-top: 27px; - padding-left: 75px; - position: relative; - text-align: left; -} -.bodywebsite .quote-left .quote-body:before { - content: ''; - position: absolute; - top: 6px; - left: 0; - width: 50px; - height: 36px; - background: url("medias/image/ref; ?>/icon-quote.png") no-repeat top left; - opacity: .5; -} -.bodywebsite .quote-left .quote-body q { - color: #fff; -} -.bodywebsite .quote-left .h4 + *, -.bodywebsite .quote-left h5 + * { - margin-top: 0; -} -.bodywebsite .page .box-text > * { - display: inline; - margin: 0 .25em 0 0; -} -.bodywebsite .icon-box-horizontal .unit-left { - min-width: 48px; -} -.bodywebsite .icon-box-horizontal [class*='icon-md'] { - margin-top: -2px; -} -.bodywebsite .icon-box-horizontal [class*='icon-lg'] { - margin-top: -5px; -} -.bodywebsite .icon-box-horizontal * + p { - margin-top: 9px; -} -.bodywebsite .icon-box-vertical * + p { - margin-top: 9px; -} -.bodywebsite .icon-box-vertical-sm { - max-width: 370px; -} -@media (max-width: 767px) { - .bodywebsite .icon-box-vertical-sm { - margin-left: auto; - margin-right: auto; - } -} -.bodywebsite .icon-box { - position: relative; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-flex-direction: column; - -ms-flex-direction: column; - flex-direction: column; - -webkit-flex-wrap: nowrap; - -ms-flex-wrap: nowrap; - flex-wrap: nowrap; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; - -webkit-justify-content: center; - -ms-flex-pack: center; - justify-content: center; - width: 100%; - padding: 35px 30px; - text-align: center; - cursor: default; -} -@media (min-width: 768px) { - .bodywebsite .icon-box:before, - .bodywebsite .icon-box:after { - content: ''; - position: absolute; - width: 100%; - height: 100%; - border: 1px solid #e5e7e9; - pointer-events: none; - transition: .33s all ease; - } - .bodywebsite .icon-box.icon-box-top-line:before { - border-width: 1px 0 0 0; - } - .bodywebsite .icon-box:before { - top: 0; - left: 0; - border-width: 0 0 0 0; - } - .bodywebsite .icon-box:after { - bottom: 0; - right: 0; - border-width: 0 1px 1px 0; - } -} -.bodywebsite .icon-box .icon:after { - opacity: 0; -} -.bodywebsite .icon-box .btn:hover { - color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; -} -.bodywebsite .icon-box .box-top, -.bodywebsite .icon-box .box-body { - position: relative; - will-change: transform; - transition: .33s all ease; - -webkit-filter: blur(0); -} -.bodywebsite .icon-box .box-top { - top: 0; -} -.bodywebsite .icon-box .box-body { - max-width: 100%; -} -.bodywebsite .icon-box .box-header { - bottom: 0; -} -.bodywebsite .icon-box .box-icon { - min-height: 46px; - display: -webkit-inline-box; - display: -webkit-inline-flex; - display: -ms-inline-flexbox; - display: inline-flex; - -webkit-flex-direction: row; - -ms-flex-direction: row; - flex-direction: row; - -webkit-flex-wrap: nowrap; - -ms-flex-wrap: nowrap; - flex-wrap: nowrap; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; - -webkit-justify-content: center; - -ms-flex-pack: center; - justify-content: center; -} -.bodywebsite .icon-box * + .box-header { - margin-top: 10px; -} -.bodywebsite .icon-box * + .box-body { - margin-top: 22px; -} -.bodywebsite .icon-box .box-body + .btn { - margin-top: 18px; -} -.bodywebsite .icon-box.hover .box-top, -.bodywebsite .icon-box:hover .box-top { - -webkit-transform: translateY(-7px); - transform: translateY(-7px); -} -.bodywebsite .icon-box.hover .btn, -.bodywebsite .icon-box.hover .box-body, -.bodywebsite .icon-box:hover .btn, -.bodywebsite .icon-box:hover .box-body { - -webkit-transform: translateY(7px); - transform: translateY(7px); -} -@media (min-width: 992px) { - .bodywebsite .desktop .icon-box .icon-box-overlay { - position: absolute; - top: 0; - bottom: 0; - right: 0; - left: 0; - opacity: 0; - background: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; - transition: 0.2s ease-in-out; - } - .bodywebsite .desktop .icon-box:hover .icon-box-overlay { - opacity: 1; - z-index: 5; - -webkit-transform: scale(1.05); - transform: scale(1.05); - } - .bodywebsite .desktop .icon-box:hover .btn { - z-index: 6; - } - .bodywebsite .desktop .icon-box:hover .box-body, - .bodywebsite .desktop .icon-box:hover .box-top { - z-index: 6; - } -} -@media (min-width: 768px) { - .bodywebsite .icon-box { - padding: 67px 37px 61px; - margin-left: auto; - margin-right: auto; - } -} -@media (min-width: 1400px) { - .bodywebsite .icon-box { - padding: 67px 110px 61px; - } -} -@media (min-width: 1800px) { - .bodywebsite .icon-box { - padding: 90px 165px 82px; - } -} -.bodywebsite .list-blocks { - counter-reset: li; -} -.bodywebsite .list-blocks > li { - display: block; -} -.bodywebsite .list-blocks .block-list-counter:before { - position: relative; - content: counter(li, decimal-leading-zero); - counter-increment: li; - font: 700 30px/30px "Roboto", Helvetica, Arial, sans-serif; - letter-spacing: -0.025em; - color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; -} -.bodywebsite .list-blocks > li + li { - margin-top: 50px; -} -.bodywebsite .block-image-plate { - display: block; - width: 100%; -} -.bodywebsite .block-image-plate .block-header { - max-width: 400px; -} -.bodywebsite .block-image-plate .block-inner { - position: relative; - padding: 45px 30px; -} -.bodywebsite .block-image-plate .block-inner:after { - content: ''; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: 0; - background: rgba(0, 0, 0, 0.7); -} -.bodywebsite .block-image-plate .block-inner > * { - position: relative; - z-index: 2; -} -.bodywebsite .block-image-plate * + .block-text { - margin-top: 18px; -} -.bodywebsite .block-image-plate * + .block-body { - margin-top: 22px; -} -@media (max-width: 767px) { - .bodywebsite .block-image-plate { - margin-left: -16px; - margin-right: -15px; - width: calc(132%); - } -} -@media (min-width: 768px) { - .bodywebsite .block-image-plate .block-header { - max-width: 340px; - } - .bodywebsite .block-image-plate .block-header h3 { - line-height: 1.2; - } - .bodywebsite .block-image-plate .block-inner { - padding: 60px 12.5% 60px 8.33333%; - } - .bodywebsite .block-image-plate .block-body { - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-flex-direction: row; - -ms-flex-direction: row; - flex-direction: row; - -webkit-flex-wrap: nowrap; - -ms-flex-wrap: nowrap; - flex-wrap: nowrap; - -webkit-align-items: flex-start; - -ms-flex-align: start; - align-items: flex-start; - -webkit-justify-content: center; - -ms-flex-pack: center; - justify-content: center; - } - .bodywebsite .block-image-plate .block-left { - -webkit-flex-shrink: 0; - -ms-flex-negative: 0; - flex-shrink: 0; - -webkit-flex-basis: 11.11111%; - -ms-flex-preferred-size: 11.11111%; - flex-basis: 11.11111%; - max-width: 11.11111%; - max-width: 100px; - } - .bodywebsite .block-image-plate .block-body { - -webkit-flex-grow: 1; - -ms-flex-positive: 1; - flex-grow: 1; - } - .bodywebsite .block-image-plate * + .block-text { - margin-top: 0; - } -} -@media (min-width: 992px) { - .bodywebsite .block-image-plate .block-header { - max-width: 410px; - } - .bodywebsite .block-image-plate .block-inner { - padding-right: 16%; - padding-top: 90px; - padding-bottom: 95px; - } -} -.bodywebsite .block-vacation { - position: relative; - width: 100%; - padding: 39px 9% 45px; - border-radius: 4px; - background: #fff; - box-shadow: -1px 0px 10px 0px rgba(65, 65, 65, 0.12); -} -.bodywebsite .block-vacation, -.bodywebsite .block-vacation:active, -.bodywebsite .block-vacation:focus, -.bodywebsite .block-vacation:hover { - color: #9f9f9f; -} -.bodywebsite .block-vacation:hover { - box-shadow: -3px 5px 12px 0px rgba(65, 65, 65, 0.16); -} -.bodywebsite .block-vacation * + .block-meta { - margin-top: 14px; -} -@media (min-width: 1200px) { - .bodywebsite .block-vacation * + .block-meta { - margin-top: 5px; - } -} -.bodywebsite .block-shadow { - position: relative; - width: 100%; - padding-top: 30px; - overflow: hidden; - border-radius: 0; - background: #fff; - box-shadow: 0px 1px 10px 0px rgba(65, 65, 65, 0.12); - text-align: center; -} -.bodywebsite .block-shadow .block-inner { - padding: 0 40px; -} -.bodywebsite .block-shadow * + .block-footer { - margin-top: 32px; -} -.bodywebsite .block-shadow * + .icon-block { - margin-top: 40px; -} -@media (min-width: 768px) { - .bodywebsite .block-shadow { - padding-top: 38px; - } - .bodywebsite .block-shadow .block-inner { - padding: 0 70px; - } - .bodywebsite .block-shadow * + .icon-block { - margin-top: 60px; - } -} -.bodywebsite .box-counter { - text-align: center; -} -.bodywebsite .box-counter .box-header { - text-transform: uppercase; -} -.bodywebsite .box-counter * + .box-header { - margin-top: 10px; -} -@media (min-width: 768px) and (max-width: 1199px) { - .bodywebsite .box-counter .box-header { - font-size: 15px; - } -} -.bodywebsite .box-counter-inverse .box-header { - color: rgba(255, 255, 255, 0.2); -} -.bodywebsite .box-counter-inverse .counter { - color: #dedede; -} -.bodywebsite .box-counter-inverse-lighter .box-header { - color: rgba(255, 255, 255, 0.35); -} -.bodywebsite .box-counter-inverse-lighter .counter { - color: #dedede; -} -.bodywebsite .box-container-small { - display: inline-block; - width: 100%; - max-width: 280px; -} -.bodywebsite .post-single .post-footer { - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-flex-direction: row; - -ms-flex-direction: row; - flex-direction: row; - -webkit-flex-wrap: wrap; - -ms-flex-wrap: wrap; - flex-wrap: wrap; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; - -webkit-justify-content: space-between; - -ms-flex-pack: justify; - justify-content: space-between; - position: relative; - transform: translateY(-10px); - margin-bottom: -10px; -} -.bodywebsite .post-single .post-footer > * { - margin-top: 10px; -} -.bodywebsite .post-single .post-footer > *:not(:last-child) { - margin-right: 20px; -} -.bodywebsite .post-single * + .post-header { - margin-top: 15px; -} -.bodywebsite .post-single * + .post-meta { - margin-top: 20px; -} -.bodywebsite .post-single * + .post-body { - margin-top: 20px; -} -.bodywebsite .post-single * + .post-footer { - margin-top: 42px; -} -.bodywebsite .post-single + * { - margin-top: 40px; -} -@media (min-width: 768px) { - .bodywebsite .post-single * + .post-header { - margin-top: 22px; - } - .bodywebsite .post-single * + .post-meta { - margin-top: 10px; - } -} -.bodywebsite .post-info * + .post-main { - margin-top: 30px; -} -.bodywebsite .post-info * + .post-body { - margin-top: 20px; -} -@media (min-width: 768px) { - .bodywebsite .post-info .post-main { - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-flex-direction: row; - -ms-flex-direction: row; - flex-direction: row; - -webkit-flex-wrap: nowrap; - -ms-flex-wrap: nowrap; - flex-wrap: nowrap; - } - .bodywebsite .post-info .post-left { - -webkit-flex-basis: 33.33333%; - -ms-flex-preferred-size: 33.33333%; - flex-basis: 33.33333%; - max-width: 33.33333%; - padding-right: 25px; - } - .bodywebsite .post-info .post-body { - -webkit-flex-basis: 66.66667%; - -ms-flex-preferred-size: 66.66667%; - flex-basis: 66.66667%; - max-width: 66.66667%; - } - .bodywebsite .post-info * + .post-body { - margin-top: 0; - } -} -.bodywebsite .post-minimal { - position: relative; - border-radius: 4px; - overflow: hidden; - background: #fff; - box-shadow: -1px 0px 10px 0px rgba(65, 65, 65, 0.12); -} -.bodywebsite .post-minimal .post-body { - padding: 20px; -} -.bodywebsite .post-minimal * + p { - margin-top: 8px; -} -.bodywebsite .post-minimal * + .post-meta { - margin-top: 5px; -} -@media (max-width: 575px) { - .bodywebsite .post-minimal { - display: inline-block; - width: 100%; - max-width: 300px; - } -} -@media (min-width: 576px) { - .bodywebsite .post-minimal { - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-flex-direction: row; - -ms-flex-direction: row; - flex-direction: row; - -webkit-flex-wrap: nowrap; - -ms-flex-wrap: nowrap; - flex-wrap: nowrap; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; - -webkit-justify-content: center; - -ms-flex-pack: center; - justify-content: center; - } - .bodywebsite .post-minimal .post-left { - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-flex-direction: column; - -ms-flex-direction: column; - flex-direction: column; - -webkit-align-items: stretch; - -ms-flex-align: stretch; - align-items: stretch; - -webkit-flex-shrink: 0; - -ms-flex-negative: 0; - flex-shrink: 0; - -webkit-align-self: stretch; - -ms-flex-item-align: stretch; - align-self: stretch; - width: 220px; - } - .bodywebsite .post-minimal .post-image { - position: relative; - -webkit-flex-shrink: 0; - -ms-flex-negative: 0; - flex-shrink: 0; - -webkit-align-self: stretch; - -ms-flex-item-align: stretch; - align-self: stretch; - -webkit-flex-grow: 1; - -ms-flex-positive: 1; - flex-grow: 1; - overflow: hidden; - } - .bodywebsite .post-minimal .post-image img { - position: absolute; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); - height: auto; - width: auto; - min-height: 100%; - min-width: 100%; - z-index: 1; - } - .bodywebsite .post-minimal .post-body { - padding: 30px 24px 30px 27px; - -webkit-flex-grow: 1; - -ms-flex-positive: 1; - flex-grow: 1; - } -} -@media (min-width: 1200px) { - .bodywebsite .post-minimal .post-body { - padding: 40px 26px 40px 50px; - } -} -.bodywebsite .post-preview { - max-width: 320px; -} -.bodywebsite .post-preview a { - display: block; -} -.bodywebsite .post-preview .post-image, -.bodywebsite .post-preview .post-image img { - border-radius: 5px; -} -.bodywebsite .post-preview .post-image img { - width: auto; -} -.bodywebsite .post-preview .post-header { - line-height: 1.5; - color: #000; - transition: .33s all ease; -} -.bodywebsite .post-preview .list-meta > li { - display: inline-block; - font-size: 12px; - font-style: italic; - color: #9b9b9b; -} -.bodywebsite .post-preview .list-meta > li:not(:last-child):after { - content: '/'; -} -.bodywebsite .post-preview:hover .post-header { - color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; -} -.bodywebsite .post-preview * + .post-meta { - margin-top: 5px; -} -.bodywebsite .post-preview.post-preview-inverse > li { - color: rgba(255, 255, 255, 0.5); -} -.bodywebsite .post-preview.post-preview-inverse .post-header { - color: #fff; -} -.bodywebsite .post-preview.post-preview-inverse:hover .post-header { - color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; -} -.bodywebsite .blog-timeline > dt { - font: 700 25px "Roboto", Helvetica, Arial, sans-serif; - color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; -} -.bodywebsite .blog-timeline > dd { - margin-top: 20px; -} -@media (min-width: 768px) { - .bodywebsite .blog-timeline { - word-spacing: 0; - white-space: nowrap; - } - .bodywebsite .blog-timeline > * { - display: inline-block; - } - .bodywebsite .blog-timeline > dt { - min-width: 65px; - padding-right: 20px; - margin-top: -0.15em; - vertical-align: top; - } - .bodywebsite .blog-timeline > dd { - margin-top: 0; - width: calc(0%); - } -} -@media (min-width: 992px) { - .bodywebsite .blog-timeline > dt { - min-width: 100px; - padding-right: 30px; - } -} -.bodywebsite .post-boxed { - max-width: 330px; - margin-right: auto; - margin-left: auto; - padding-top: 10px; - text-align: center; - box-shadow: -1px 0px 10px 0px rgba(65, 65, 65, 0.12); - transition: .3s all ease; -} -.bodywebsite .post-boxed-caption { - height: 120px; -} -.bodywebsite .post-boxed-img-wrap a { - display: block; -} -.bodywebsite .post-boxed-title { - font: 500 18px/28px "Roboto", Helvetica, Arial, sans-serif; -} -.bodywebsite .post-boxed-title { - color: #000; -} -.bodywebsite .post-boxed-title a { - display: inline; - color: #000; -} -.bodywebsite .post-boxed-title a:hover { - color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; -} -.bodywebsite .post-boxed img { - width: 30%; -} -.bodywebsite .post-boxed .list-inline { - font-size: 12px; - letter-spacing: .05em; -} -.bodywebsite .post-boxed-caption { - padding: 20px; -} -.bodywebsite .post-boxed .post-boxed-title + * { - margin-top: 5px; -} -@media (min-width: 768px) { - .bodywebsite .post-boxed .post-boxed-caption { - padding: 28px 42px 36px 28px; - } -} -@media (min-width: 1200px) { - .bodywebsite .post-boxed:hover { - box-shadow: -3px 5px 12px 0px rgba(65, 65, 65, 0.16); - } -} -.bodywebsite .post-minimal .post-image { - height: 100%; -} -.bodywebsite .post-minimal .post-image img { - width: 100%; - height: 100%; - object-fit: cover; -} -.bodywebsite * + .post-blockquote { - margin-top: 30px; -} -.bodywebsite .post-blockquote + * { - margin-top: 30px; -} -@media (min-width: 768px) { - .bodywebsite * + .post-blockquote { - margin-top: 50px; - } - .bodywebsite .post-blockquote + * { - margin-top: 50px; - } -} -.bodywebsite * + .post-comment-block, -.bodywebsite * + .post-comment-form { - margin-top: 40px; -} -.bodywebsite .post-comment-form h4 + * { - margin-top: 15px; -} -.bodywebsite .comment figure, -.bodywebsite .comment figure img { - border-radius: 50%; - max-width: 71px; -} -.bodywebsite .comment time { - font-size: 12px; - line-height: 1; - color: #9b9b9b; -} -.bodywebsite .comment .user { - font-size: 16px; - line-height: 1.33333; - font-weight: 700; - text-transform: uppercase; - color: #000; -} -.bodywebsite .comment .list-icon-meta { - position: relative; - transform: translateY(0); - margin-bottom: 0; -} -.bodywebsite .comment .list-icon-meta > * { - margin-top: 0; -} -.bodywebsite .comment .list-icon-meta > *:not(:last-child) { - margin-right: 8px; -} -.bodywebsite .comment .list-icon-meta > li { - display: inline-block; -} -.bodywebsite .comment .list-icon-meta li { - font-size: 12px; - line-height: 1; - font-weight: 400; -} -.bodywebsite .comment .comment-body { - padding: 17px 22px; - border: 1px solid #dedede; - border-radius: 7px; -} -.bodywebsite .comment .comment-body-header { - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-flex-wrap: wrap; - -ms-flex-wrap: wrap; - flex-wrap: wrap; - -webkit-flex-direction: row; - -ms-flex-direction: row; - flex-direction: row; - -webkit-align-items: flex-start; - -ms-flex-align: start; - align-items: flex-start; - -webkit-justify-content: space-between; - -ms-flex-pack: justify; - justify-content: space-between; - position: relative; - transform: translateY(-5px); - margin-bottom: -5px; -} -.bodywebsite .comment .comment-body-header > * { - margin-top: 5px; -} -.bodywebsite .comment .comment-body-header > *:not(:last-child) { - margin-right: 5px; -} -@media (min-width: 768px) { - .bodywebsite .comment .comment-body-header { - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; - } -} -.bodywebsite .comment .comment-body-header > * { - -webkit-flex-shrink: 0; - -ms-flex-negative: 0; - flex-shrink: 0; -} -.bodywebsite .comment .comment-meta { - -webkit-flex-grow: 1; - -ms-flex-positive: 1; - flex-grow: 1; - position: relative; - transform: translateY(-5px); - margin-bottom: -5px; -} -.bodywebsite .comment .comment-meta > * { - margin-top: 5px; -} -.bodywebsite .comment .comment-meta > *:not(:last-child) { - margin-right: 10px; -} -@media (min-width: 768px) { - .bodywebsite .comment .comment-meta > * { - display: inline-block; - vertical-align: baseline; - } -} -.bodywebsite .comment .comment-body-text { - margin-top: 10px; -} -.bodywebsite .comment-minimal .author { - font: 700 14px/18px "Roboto", Helvetica, Arial, sans-serif; - text-transform: uppercase; - letter-spacing: -0.025em; - color: #000; -} -.bodywebsite .comment-minimal * + .comment-body { - margin-top: 10px; -} -.bodywebsite * + .comment-minimal { - margin-top: 35px; -} -.bodywebsite .comment-group-reply { - padding-left: 12%; -} -.bodywebsite .comment + * { - margin-top: 21px; -} -.bodywebsite * + .comment-group { - margin-top: 30px; -} -@media (min-width: 768px) { - .bodywebsite .comment > .unit > .unit-left { - margin-top: 16px; - } - .bodywebsite * + .comment-minimal { - margin-top: 45px; - } -} -@media (min-width: 992px) { - .bodywebsite * + .post-comment { - margin-top: 80px; - } -} -.bodywebsite .page-title { - text-align: center; -} -.bodywebsite .page-title > * { - letter-spacing: 0; - text-transform: uppercase; -} -.bodywebsite .page-title .page-title-inner { - position: relative; - display: inline-block; -} -.bodywebsite .page-title .page-title-left, -.bodywebsite .page-title .page-title-right { - position: absolute; - top: 50%; - width: auto; - overflow: hidden; - white-space: nowrap; - vertical-align: middle; -} -.bodywebsite .page-title .page-title-left *, -.bodywebsite .page-title .page-title-right * { - display: inline; - white-space: nowrap; -} -.bodywebsite .page-title .page-title-left { - left: 0; - text-align: right; - transform: translate(-100%, -50%); -} -.bodywebsite .page-title .page-title-left * { - padding-right: .85em; -} -.bodywebsite .page-title .page-title-left *:nth-last-child(odd) { - color: rgba(255, 255, 255, 0.1); -} -.bodywebsite .page-title .page-title-left *:nth-last-child(even) { - color: rgba(255, 255, 255, 0.2); -} -.bodywebsite .page-title .page-title-right { - right: 0; - text-align: left; - transform: translate(100%, -50%); -} -.bodywebsite .page-title .page-title-right * { - padding-left: .85em; -} -.bodywebsite .page-title .page-title-right *:nth-child(odd) { - color: rgba(255, 255, 255, 0.1); -} -.bodywebsite .page-title .page-title-right *:nth-child(even) { - color: rgba(255, 255, 255, 0.2); -} -.bodywebsite .page-title-wrap { - background: #000; - background-attachment: fixed; - -webkit-background-size: cover; - background-size: cover; - background-position: center 80%; -} -@media (min-width: 768px) { - .bodywebsite .page-title { - text-align: left; - } -} -.bodywebsite .preloader { - position: fixed; - left: 0; - top: 0; - bottom: 0; - right: 0; - z-index: 10000; - display: flex; - justify-content: center; - align-items: center; - padding: 20px; - background: #fff; - transition: .3s all ease; -} -.bodywebsite .preloader.loaded { - opacity: 0; - visibility: hidden; -} -.bodywebsite .preloader-body { - text-align: center; -} -.bodywebsite .preloader-body p { - position: relative; - right: -8px; -} -.bodywebsite .cssload-container { - width: 100%; - height: 36px; - text-align: center; -} -.bodywebsite .cssload-speeding-wheel { - width: 36px; - height: 36px; - margin: 0 auto; - border: 3px solid maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; - border-radius: 50%; - border-left-color: transparent; - border-bottom-color: transparent; - animation: cssload-spin 0.88s infinite linear; -} -@-webkit-keyframes cssload-spin { - 100% { - transform: rotate(360deg); - } -} -@keyframes cssload-spin { - 100% { - transform: rotate(360deg); - } -} -.bodywebsite .pricing-table { - overflow: hidden; - background: #fff; - text-align: center; - box-shadow: -1px 2px 5px 0 rgba(65, 65, 65, 0.12); -} -.bodywebsite .pricing-table-header { - font-size: 18px; - text-transform: uppercase; - letter-spacing: .05em; - color: #464a4d; -} -.bodywebsite .pricing-table-body { - padding: 35px 30px; -} -.bodywebsite .pricing-table-label { - padding: 17px 15px; - text-align: center; - background: #3a3c3e; -} -.bodywebsite .pricing-table-label p { - font: 700 14px "Roboto", Helvetica, Arial, sans-serif; - letter-spacing: .05em; - text-transform: uppercase; - color: #fff; -} -.bodywebsite .pricing-table .pricing-list { - font-size: 16px; - font-weight: 300; - color: #00030a; -} -.bodywebsite .pricing-table .pricing-list span { - display: inline-block; - margin-right: .25em; -} -.bodywebsite .pricing-table .pricing-list > li + li { - margin-top: 12px; -} -.bodywebsite .pricing-table * + .price-object { - margin-top: 22px; -} -.bodywebsite .pricing-table * + .pricing-list { - margin-top: 22px; -} -.bodywebsite .pricing-object { - font-family: "Roboto", Helvetica, Arial, sans-serif; - font-weight: 900; - font-size: 0; - line-height: 0; - color: #000; -} -.bodywebsite .pricing-object > * { - margin-top: 0; -} -.bodywebsite .pricing-object .price { - font-family: Helvetica, Arial, sans-serif; - font-weight: 900; -} -.bodywebsite .pricing-object .small { - position: relative; - font: 700 10px "Roboto", Helvetica, Arial, sans-serif; - color: inherit; - text-transform: uppercase; -} -.bodywebsite .pricing-object .small-middle { - vertical-align: middle; -} -.bodywebsite .pricing-object .small-bottom { - vertical-align: bottom; -} -.bodywebsite .pricing-object-sm { - font-size: 32px; - line-height: .8; -} -.bodywebsite .pricing-object-sm .small { - font-size: 12px; -} -.bodywebsite .pricing-object-sm .small-middle { - margin-right: 3px; -} -.bodywebsite .pricing-object-sm .small-bottom { - margin-left: 1px; - vertical-align: bottom; -} -.bodywebsite .price-irrelevant { - color: #9f9f9f; - text-decoration: line-through; -} -.bodywebsite .pricing-object-md { - font-size: 53px; - line-height: 1; -} -.bodywebsite .pricing-object-md .price { - line-height: .5; -} -.bodywebsite .pricing-object-md .small { - font-size: 17px; - font-weight: 400; -} -.bodywebsite .pricing-object-md .small-middle { - font-size: 23px; -} -.bodywebsite .pricing-object-md .small-bottom { - bottom: -0.25em; -} -.bodywebsite .pricing-object-lg, -.bodywebsite .pricing-object-xl { - font-size: 64px; - line-height: .7; -} -.bodywebsite .pricing-object-lg .small, -.bodywebsite .pricing-object-xl .small { - font-size: 9px; -} -.bodywebsite .pricing-object-lg .small-top, -.bodywebsite .pricing-object-xl .small-top { - top: 11px; - margin-right: 5px; - font-size: 14px; - vertical-align: top; - font-weight: 700; -} -.bodywebsite .pricing-object-lg .small-bottom, -.bodywebsite .pricing-object-xl .small-bottom { - bottom: -10px; - margin-left: -2px; - font-weight: 700; - vertical-align: bottom; -} -.bodywebsite .price-current .small { - position: relative; - font-family: "Roboto", Helvetica, Arial, sans-serif; - font-weight: 400; -} -.bodywebsite .price-current .small-middle { - vertical-align: middle; - top: -0.3em; -} -.bodywebsite .price-current .small-bottom { - top: .3em; -} -@media (min-width: 768px) { - .bodywebsite .pricing-object-lg { - font-size: 72px; - } - .bodywebsite .pricing-object-xl { - font-size: 54px; - } - .bodywebsite .pricing-object-xl .small-middle { - font-size: 30px; - } - .bodywebsite .pricing-object-xl .small-bottom { - font-size: 25px; - } -} -@media (min-width: 992px) { - .bodywebsite .pricing-object-xl { - font-size: 76px; - } -} -.bodywebsite .panel.bg-accent.bg-default-outline-btn.text-center { - background: transparent; -} -.bodywebsite .product .product-label { - padding: 7px 11px; - min-width: 90px; - font: 700 12px/16px "Roboto", Helvetica, Arial, sans-serif; - letter-spacing: .05em; - text-align: center; - border-radius: 0 0 7px 7px; -} -.bodywebsite .product .product-rating { - position: relative; - transform: translateY(-2px); - margin-bottom: -2px; -} -.bodywebsite .product .product-rating > * { - margin-top: 2px; -} -.bodywebsite .product .product-rating > *:not(:last-child) { - margin-right: 5px; -} -.bodywebsite .product .product-rating > * { - display: inline-block; - vertical-align: middle; -} -.bodywebsite .product .product-color { - display: inline-block; - width: 24px; - height: 24px; - font-size: 0; - line-height: 0; - border-radius: 50%; - background: #000; - vertical-align: middle; -} -.bodywebsite .product .product-size { - font: 700 14px/18px "Roboto", Helvetica, Arial, sans-serif; - color: #000; -} -.bodywebsite .product * + .product-brand, -.bodywebsite .product .product-brand + * { - margin-top: 0; -} -.bodywebsite .one-screen-page .page { - display: -ms-flexbox; - display: -webkit-flex; - display: flex; -} -.bodywebsite .one-screen-page .page-inner { - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-flex-direction: column; - -ms-flex-direction: column; - flex-direction: column; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; - -webkit-justify-content: space-between; - -ms-flex-pack: justify; - justify-content: space-between; - min-height: 100vh; - text-align: center; -} -.bodywebsite .one-screen-page .page-inner, -.bodywebsite .one-screen-page .page-inner > * { - width: 100%; -} -.bodywebsite .one-screen-page .page-head, -.bodywebsite .one-screen-page .page-foot { - padding: 0; - background: transparent; -} -.bodywebsite .one-screen-page .page-head-inner { - padding: calc(5em) 0 calc(3em); -} -.bodywebsite .one-screen-page .page-content { - padding: calc(5em) 0; -} -.bodywebsite .one-screen-page .page-foot-inner { - padding: calc(3em) 0 calc(5em); -} -.bodywebsite .one-screen-page .rights { - color: #fff; -} -.bodywebsite .one-screen-page .rights a, -.bodywebsite .one-screen-page .rights a:active, -.bodywebsite .one-screen-page .rights a:focus { - color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; -} -.bodywebsite .one-screen-page .rights a:hover { - color: #ababab; -} -@media (min-width: 576px) { - .bodywebsite .one-screen-page .page-inner { - text-align: left; - } -} -@media (min-width: 1800px) { - .bodywebsite .one-screen-page .page-head-inner { - padding: 50px 0 10px; - } - .bodywebsite .one-screen-page .page-content { - padding: 30px 0; - } - .bodywebsite .one-screen-page .page-foot-inner { - padding: 50px 0 23px; - } -} -.bodywebsite .ie-10 .one-screen-page, -.bodywebsite .ie-11 .one-screen-page { - overflow-x: hidden; - overflow-y: auto; -} -.bodywebsite .inset-left-0 { - padding-left: 0; -} -.bodywebsite .inset-left-10 { - padding-left: 10px; -} -.bodywebsite .inset-left-15 { - padding-left: 15px; -} -.bodywebsite .inset-left-20 { - padding-left: 20px; -} -.bodywebsite .inset-left-30 { - padding-left: 30px; -} -.bodywebsite .inset-left-40 { - padding-left: 40px; -} -.bodywebsite .inset-left-50 { - padding-left: 50px; -} -.bodywebsite .inset-left-60 { - padding-left: 60px; -} -.bodywebsite .inset-left-70 { - padding-left: 70px; -} -.bodywebsite .inset-left-85 { - padding-left: 85px; -} -.bodywebsite .inset-left-100 { - padding-left: 100px; -} -@media (min-width: 576px) { - .bodywebsite .inset-sm-left-0 { - padding-left: 0; - } - .bodywebsite .inset-sm-left-10 { - padding-left: 10px; - } - .bodywebsite .inset-sm-left-15 { - padding-left: 15px; - } - .bodywebsite .inset-sm-left-20 { - padding-left: 20px; - } - .bodywebsite .inset-sm-left-30 { - padding-left: 30px; - } - .bodywebsite .inset-sm-left-40 { - padding-left: 40px; - } - .bodywebsite .inset-sm-left-50 { - padding-left: 50px; - } - .bodywebsite .inset-sm-left-60 { - padding-left: 60px; - } - .bodywebsite .inset-sm-left-70 { - padding-left: 70px; - } - .bodywebsite .inset-sm-left-85 { - padding-left: 85px; - } - .bodywebsite .inset-sm-left-100 { - padding-left: 100px; - } -} -@media (min-width: 768px) { - .bodywebsite .inset-md-left-0 { - padding-left: 0; - } - .bodywebsite .inset-md-left-10 { - padding-left: 10px; - } - .bodywebsite .inset-md-left-15 { - padding-left: 15px; - } - .bodywebsite .inset-md-left-20 { - padding-left: 20px; - } - .bodywebsite .inset-md-left-30 { - padding-left: 30px; - } - .bodywebsite .inset-md-left-40 { - padding-left: 40px; - } - .bodywebsite .inset-md-left-50 { - padding-left: 50px; - } - .bodywebsite .inset-md-left-60 { - padding-left: 60px; - } - .bodywebsite .inset-md-left-70 { - padding-left: 70px; - } - .bodywebsite .inset-md-left-85 { - padding-left: 85px; - } - .bodywebsite .inset-md-left-100 { - padding-left: 100px; - } -} -@media (min-width: 992px) { - .bodywebsite .inset-lg-left-0 { - padding-left: 0; - } - .bodywebsite .inset-lg-left-10 { - padding-left: 10px; - } - .bodywebsite .inset-lg-left-15 { - padding-left: 15px; - } - .bodywebsite .inset-lg-left-20 { - padding-left: 20px; - } - .bodywebsite .inset-lg-left-30 { - padding-left: 30px; - } - .bodywebsite .inset-lg-left-40 { - padding-left: 40px; - } - .bodywebsite .inset-lg-left-50 { - padding-left: 50px; - } - .bodywebsite .inset-lg-left-60 { - padding-left: 60px; - } - .bodywebsite .inset-lg-left-70 { - padding-left: 70px; - } - .bodywebsite .inset-lg-left-85 { - padding-left: 85px; - } - .bodywebsite .inset-lg-left-100 { - padding-left: 100px; - } -} -@media (min-width: 1200px) { - .bodywebsite .inset-xl-left-0 { - padding-left: 0; - } - .bodywebsite .inset-xl-left-10 { - padding-left: 10px; - } - .bodywebsite .inset-xl-left-15 { - padding-left: 15px; - } - .bodywebsite .inset-xl-left-20 { - padding-left: 20px; - } - .bodywebsite .inset-xl-left-30 { - padding-left: 30px; - } - .bodywebsite .inset-xl-left-40 { - padding-left: 40px; - } - .bodywebsite .inset-xl-left-50 { - padding-left: 50px; - } - .bodywebsite .inset-xl-left-60 { - padding-left: 60px; - } - .bodywebsite .inset-xl-left-70 { - padding-left: 70px; - } - .bodywebsite .inset-xl-left-85 { - padding-left: 85px; - } - .bodywebsite .inset-xl-left-100 { - padding-left: 100px; - } -} -@media (min-width: 1800px) { - .bodywebsite .inset-xxl-left-0 { - padding-left: 0; - } - .bodywebsite .inset-xxl-left-10 { - padding-left: 10px; - } - .bodywebsite .inset-xxl-left-15 { - padding-left: 15px; - } - .bodywebsite .inset-xxl-left-20 { - padding-left: 20px; - } - .bodywebsite .inset-xxl-left-30 { - padding-left: 30px; - } - .bodywebsite .inset-xxl-left-40 { - padding-left: 40px; - } - .bodywebsite .inset-xxl-left-50 { - padding-left: 50px; - } - .bodywebsite .inset-xxl-left-60 { - padding-left: 60px; - } - .bodywebsite .inset-xxl-left-70 { - padding-left: 70px; - } - .bodywebsite .inset-xxl-left-85 { - padding-left: 85px; - } - .bodywebsite .inset-xxl-left-100 { - padding-left: 100px; - } -} -.bodywebsite .inset-right-0 { - padding-right: 0; -} -.bodywebsite .inset-right-10 { - padding-right: 10px; -} -.bodywebsite .inset-right-15 { - padding-right: 15px; -} -.bodywebsite .inset-right-20 { - padding-right: 20px; -} -.bodywebsite .inset-right-30 { - padding-right: 30px; -} -.bodywebsite .inset-right-40 { - padding-right: 40px; -} -.bodywebsite .inset-right-50 { - padding-right: 50px; -} -.bodywebsite .inset-right-60 { - padding-right: 60px; -} -.bodywebsite .inset-right-70 { - padding-right: 70px; -} -.bodywebsite .inset-right-85 { - padding-right: 85px; -} -.bodywebsite .inset-right-100 { - padding-right: 100px; -} -@media (min-width: 576px) { - .bodywebsite .inset-sm-right-0 { - padding-right: 0; - } - .bodywebsite .inset-sm-right-10 { - padding-right: 10px; - } - .bodywebsite .inset-sm-right-15 { - padding-right: 15px; - } - .bodywebsite .inset-sm-right-20 { - padding-right: 20px; - } - .bodywebsite .inset-sm-right-30 { - padding-right: 30px; - } - .bodywebsite .inset-sm-right-40 { - padding-right: 40px; - } - .bodywebsite .inset-sm-right-50 { - padding-right: 50px; - } - .bodywebsite .inset-sm-right-60 { - padding-right: 60px; - } - .bodywebsite .inset-sm-right-70 { - padding-right: 70px; - } - .bodywebsite .inset-sm-right-85 { - padding-right: 85px; - } - .bodywebsite .inset-sm-right-100 { - padding-right: 100px; - } -} -@media (min-width: 768px) { - .bodywebsite .inset-md-right-0 { - padding-right: 0; - } - .bodywebsite .inset-md-right-10 { - padding-right: 10px; - } - .bodywebsite .inset-md-right-15 { - padding-right: 15px; - } - .bodywebsite .inset-md-right-20 { - padding-right: 20px; - } - .bodywebsite .inset-md-right-30 { - padding-right: 30px; - } - .bodywebsite .inset-md-right-40 { - padding-right: 40px; - } - .bodywebsite .inset-md-right-50 { - padding-right: 50px; - } - .bodywebsite .inset-md-right-60 { - padding-right: 60px; - } - .bodywebsite .inset-md-right-70 { - padding-right: 70px; - } - .bodywebsite .inset-md-right-85 { - padding-right: 85px; - } - .bodywebsite .inset-md-right-100 { - padding-right: 100px; - } -} -@media (min-width: 992px) { - .bodywebsite .inset-lg-right-0 { - padding-right: 0; - } - .bodywebsite .inset-lg-right-10 { - padding-right: 10px; - } - .bodywebsite .inset-lg-right-15 { - padding-right: 15px; - } - .bodywebsite .inset-lg-right-20 { - padding-right: 20px; - } - .bodywebsite .inset-lg-right-30 { - padding-right: 30px; - } - .bodywebsite .inset-lg-right-40 { - padding-right: 40px; - } - .bodywebsite .inset-lg-right-50 { - padding-right: 50px; - } - .bodywebsite .inset-lg-right-60 { - padding-right: 60px; - } - .bodywebsite .inset-lg-right-70 { - padding-right: 70px; - } - .bodywebsite .inset-lg-right-85 { - padding-right: 85px; - } - .bodywebsite .inset-lg-right-100 { - padding-right: 100px; - } -} -@media (min-width: 1200px) { - .bodywebsite .inset-xl-right-0 { - padding-right: 0; - } - .bodywebsite .inset-xl-right-10 { - padding-right: 10px; - } - .bodywebsite .inset-xl-right-15 { - padding-right: 15px; - } - .bodywebsite .inset-xl-right-20 { - padding-right: 20px; - } - .bodywebsite .inset-xl-right-30 { - padding-right: 30px; - } - .bodywebsite .inset-xl-right-40 { - padding-right: 40px; - } - .bodywebsite .inset-xl-right-50 { - padding-right: 50px; - } - .bodywebsite .inset-xl-right-60 { - padding-right: 60px; - } - .bodywebsite .inset-xl-right-70 { - padding-right: 70px; - } - .bodywebsite .inset-xl-right-85 { - padding-right: 85px; - } - .bodywebsite .inset-xl-right-100 { - padding-right: 100px; - } -} -@media (min-width: 1800px) { - .bodywebsite .inset-xxl-right-0 { - padding-right: 0; - } - .bodywebsite .inset-xxl-right-10 { - padding-right: 10px; - } - .bodywebsite .inset-xxl-right-15 { - padding-right: 15px; - } - .bodywebsite .inset-xxl-right-20 { - padding-right: 20px; - } - .bodywebsite .inset-xxl-right-30 { - padding-right: 30px; - } - .bodywebsite .inset-xxl-right-40 { - padding-right: 40px; - } - .bodywebsite .inset-xxl-right-50 { - padding-right: 50px; - } - .bodywebsite .inset-xxl-right-60 { - padding-right: 60px; - } - .bodywebsite .inset-xxl-right-70 { - padding-right: 70px; - } - .bodywebsite .inset-xxl-right-85 { - padding-right: 85px; - } - .bodywebsite .inset-xxl-right-100 { - padding-right: 100px; - } -} -.bodywebsite .container + .container { - margin-top: 60px; -} -.bodywebsite h3.section-title { - color: #000; -} -.bodywebsite h4 + .section-title { - margin-top: 2px; -} -.bodywebsite h4 + .comment-list { - margin-top: 30px; -} -.bodywebsite h3 + p { - margin-top: 15px; -} -.bodywebsite h3 + p.h4 { - margin-top: 2px; -} -.bodywebsite h3 + .row { - margin-top: 40px; -} -.bodywebsite h3 + * { - margin-top: 40px; -} -.bodywebsite .row + .row { - margin-top: 60px; -} -.bodywebsite * + .row.list-md-dashed { - margin-top: 60px; -} -.bodywebsite .row + .button-block { - margin-top: 60px; -} -.bodywebsite .slick-slider + .slick-slider.carousel-parent { - margin-top: 35px; -} -.bodywebsite .quote-left + .button-block { - margin-top: 22px; -} -.bodywebsite .aside-title + * { - margin-top: 22px; -} -.bodywebsite * + .button-group { - margin-top: 25px; -} -html .bodywebsite .page .offset-top-0 { - margin-top: 0; -} -html .bodywebsite .page .offset-top-2 { - margin-top: 2px; -} -html .bodywebsite .page .offset-top-5 { - margin-top: 5px; -} -html .bodywebsite .page .offset-top-10 { - margin-top: 10px; -} -html .bodywebsite .page .offset-top-15 { - margin-top: 15px; -} -html .bodywebsite .page .offset-top-22 { - margin-top: 22px; -} -html .bodywebsite .page .offset-top-27 { - margin-top: 27px; -} -html .bodywebsite .page .offset-top-30 { - margin-top: 30px; -} -html .bodywebsite .page .offset-top-35 { - margin-top: 35px; -} -html .bodywebsite .page .offset-top-40 { - margin-top: 40px; -} -html .bodywebsite .page .offset-top-45 { - margin-top: 45px; -} -html .bodywebsite .page .offset-top-50 { - margin-top: 50px; -} -html .bodywebsite .page .offset-top-60 { - margin-top: 60px; -} -html .bodywebsite .page .offset-top-75 { - margin-top: 75px; -} -html .bodywebsite .page .offset-top-90 { - margin-top: 90px; -} -html .bodywebsite .page .offset-top-100 { - margin-top: 100px; -} -html .bodywebsite .page .offset-top-120 { - margin-top: 120px; -} -@media (min-width: 576px) { - html .bodywebsite .page .offset-sm-top-0 { - margin-top: 0; - } - html .bodywebsite .page .offset-sm-top-2 { - margin-top: 2px; - } - html .bodywebsite .page .offset-sm-top-5 { - margin-top: 5px; - } - html .bodywebsite .page .offset-sm-top-10 { - margin-top: 10px; - } - html .bodywebsite .page .offset-sm-top-15 { - margin-top: 15px; - } - html .bodywebsite .page .offset-sm-top-22 { - margin-top: 22px; - } - html .bodywebsite .page .offset-sm-top-27 { - margin-top: 27px; - } - html .bodywebsite .page .offset-sm-top-30 { - margin-top: 30px; - } - html .bodywebsite .page .offset-sm-top-35 { - margin-top: 35px; - } - html .bodywebsite .page .offset-sm-top-40 { - margin-top: 40px; - } - html .bodywebsite .page .offset-sm-top-45 { - margin-top: 45px; - } - html .bodywebsite .page .offset-sm-top-50 { - margin-top: 50px; - } - html .bodywebsite .page .offset-sm-top-60 { - margin-top: 60px; - } - html .bodywebsite .page .offset-sm-top-75 { - margin-top: 75px; - } - html .bodywebsite .page .offset-sm-top-90 { - margin-top: 90px; - } - html .bodywebsite .page .offset-sm-top-100 { - margin-top: 100px; - } - html .bodywebsite .page .offset-sm-top-120 { - margin-top: 120px; - } -} -@media (min-width: 768px) { - html .bodywebsite .page .offset-md-top-0 { - margin-top: 0; - } - html .bodywebsite .page .offset-md-top-2 { - margin-top: 2px; - } - html .bodywebsite .page .offset-md-top-5 { - margin-top: 5px; - } - html .bodywebsite .page .offset-md-top-10 { - margin-top: 10px; - } - html .bodywebsite .page .offset-md-top-15 { - margin-top: 15px; - } - html .bodywebsite .page .offset-md-top-22 { - margin-top: 22px; - } - html .bodywebsite .page .offset-md-top-27 { - margin-top: 27px; - } - html .bodywebsite .page .offset-md-top-30 { - margin-top: 30px; - } - html .bodywebsite .page .offset-md-top-35 { - margin-top: 35px; - } - html .bodywebsite .page .offset-md-top-40 { - margin-top: 40px; - } - html .bodywebsite .page .offset-md-top-45 { - margin-top: 45px; - } - html .bodywebsite .page .offset-md-top-50 { - margin-top: 50px; - } - html .bodywebsite .page .offset-md-top-60 { - margin-top: 60px; - } - html .bodywebsite .page .offset-md-top-75 { - margin-top: 75px; - } - html .bodywebsite .page .offset-md-top-90 { - margin-top: 90px; - } - html .bodywebsite .page .offset-md-top-100 { - margin-top: 100px; - } - html .bodywebsite .page .offset-md-top-120 { - margin-top: 120px; - } -} -@media (min-width: 992px) { - html .bodywebsite .page .offset-lg-top-0 { - margin-top: 0; - } - html .bodywebsite .page .offset-lg-top-2 { - margin-top: 2px; - } - html .bodywebsite .page .offset-lg-top-5 { - margin-top: 5px; - } - html .bodywebsite .page .offset-lg-top-10 { - margin-top: 10px; - } - html .bodywebsite .page .offset-lg-top-15 { - margin-top: 15px; - } - html .bodywebsite .page .offset-lg-top-22 { - margin-top: 22px; - } - html .bodywebsite .page .offset-lg-top-27 { - margin-top: 27px; - } - html .bodywebsite .page .offset-lg-top-30 { - margin-top: 30px; - } - html .bodywebsite .page .offset-lg-top-35 { - margin-top: 35px; - } - html .bodywebsite .page .offset-lg-top-40 { - margin-top: 40px; - } - html .bodywebsite .page .offset-lg-top-45 { - margin-top: 45px; - } - html .bodywebsite .page .offset-lg-top-50 { - margin-top: 50px; - } - html .bodywebsite .page .offset-lg-top-60 { - margin-top: 60px; - } - html .bodywebsite .page .offset-lg-top-75 { - margin-top: 75px; - } - html .bodywebsite .page .offset-lg-top-90 { - margin-top: 90px; - } - html .bodywebsite .page .offset-lg-top-100 { - margin-top: 100px; - } - html .bodywebsite .page .offset-lg-top-120 { - margin-top: 120px; - } -} -@media (min-width: 1200px) { - html .bodywebsite .page .offset-xl-top-0 { - margin-top: 0; - } - html .bodywebsite .page .offset-xl-top-2 { - margin-top: 2px; - } - html .bodywebsite .page .offset-xl-top-5 { - margin-top: 5px; - } - html .bodywebsite .page .offset-xl-top-10 { - margin-top: 10px; - } - html .bodywebsite .page .offset-xl-top-15 { - margin-top: 15px; - } - html .bodywebsite .page .offset-xl-top-22 { - margin-top: 22px; - } - html .bodywebsite .page .offset-xl-top-27 { - margin-top: 27px; - } - html .bodywebsite .page .offset-xl-top-30 { - margin-top: 30px; - } - html .bodywebsite .page .offset-xl-top-35 { - margin-top: 35px; - } - html .bodywebsite .page .offset-xl-top-40 { - margin-top: 40px; - } - html .bodywebsite .page .offset-xl-top-45 { - margin-top: 45px; - } - html .bodywebsite .page .offset-xl-top-50 { - margin-top: 50px; - } - html .bodywebsite .page .offset-xl-top-60 { - margin-top: 60px; - } - html .bodywebsite .page .offset-xl-top-75 { - margin-top: 75px; - } - html .bodywebsite .page .offset-xl-top-90 { - margin-top: 90px; - } - html .bodywebsite .page .offset-xl-top-100 { - margin-top: 100px; - } - html .bodywebsite .page .offset-xl-top-120 { - margin-top: 120px; - } -} -@media (min-width: 1800px) { - html .bodywebsite .page .offset-xxl-top-0 { - margin-top: 0; - } - html .bodywebsite .page .offset-xxl-top-2 { - margin-top: 2px; - } - html .bodywebsite .page .offset-xxl-top-5 { - margin-top: 5px; - } - html .bodywebsite .page .offset-xxl-top-10 { - margin-top: 10px; - } - html .bodywebsite .page .offset-xxl-top-15 { - margin-top: 15px; - } - html .bodywebsite .page .offset-xxl-top-22 { - margin-top: 22px; - } - html .bodywebsite .page .offset-xxl-top-27 { - margin-top: 27px; - } - html .bodywebsite .page .offset-xxl-top-30 { - margin-top: 30px; - } - html .bodywebsite .page .offset-xxl-top-35 { - margin-top: 35px; - } - html .bodywebsite .page .offset-xxl-top-40 { - margin-top: 40px; - } - html .bodywebsite .page .offset-xxl-top-45 { - margin-top: 45px; - } - html .bodywebsite .page .offset-xxl-top-50 { - margin-top: 50px; - } - html .bodywebsite .page .offset-xxl-top-60 { - margin-top: 60px; - } - html .bodywebsite .page .offset-xxl-top-75 { - margin-top: 75px; - } - html .bodywebsite .page .offset-xxl-top-90 { - margin-top: 90px; - } - html .bodywebsite .page .offset-xxl-top-100 { - margin-top: 100px; - } - html .bodywebsite .page .offset-xxl-top-120 { - margin-top: 120px; - } -} -@media (min-width: 768px) { - .bodywebsite .shift-sm-top-1 { - margin-top: -18px; - } -} -@media (min-width: 992px) { - .bodywebsite .shift-sm-top-1 { - margin-top: -23px; - } -} -@media (min-width: 992px) { - .bodywebsite .shift-md-top-1 { - margin-top: -33px; - } -} -@media (min-width: 1200px) { - .bodywebsite .shift-md-top-1 { - margin-top: -43px; - } -} -.bodywebsite .row-0 { - margin-bottom: 0px; -} -.bodywebsite .row-0:empty { - margin-bottom: 0; -} -.bodywebsite .row-0 > * { - margin-bottom: 0px; -} -.bodywebsite .row-15 { - margin-bottom: -15px; -} -.bodywebsite .row-15:empty { - margin-bottom: 0; -} -.bodywebsite .row-15 > * { - margin-bottom: 15px; -} -.bodywebsite .row-20 { - margin-bottom: -20px; -} -.bodywebsite .row-20:empty { - margin-bottom: 0; -} -.bodywebsite .row-20 > * { - margin-bottom: 20px; -} -.bodywebsite .row-30 { - margin-bottom: -30px; -} -.bodywebsite .row-30:empty { - margin-bottom: 0; -} -.bodywebsite .row-30 > * { - margin-bottom: 30px; -} -.bodywebsite .row-40 { - margin-bottom: -40px; -} -.bodywebsite .row-40:empty { - margin-bottom: 0; -} -.bodywebsite .row-40 > * { - margin-bottom: 40px; -} -.bodywebsite .row-50 { - margin-bottom: -50px; -} -.bodywebsite .row-50:empty { - margin-bottom: 0; -} -.bodywebsite .row-50 > * { - margin-bottom: 50px; -} -.bodywebsite .row-60 { - margin-bottom: -60px; -} -.bodywebsite .row-60:empty { - margin-bottom: 0; -} -.bodywebsite .row-60 > * { - margin-bottom: 60px; -} -@media (min-width: 576px) { - .bodywebsite .row-sm-50 { - margin-bottom: -50px; - } - .bodywebsite .row-sm-50:empty { - margin-bottom: 0; - } - .bodywebsite .row-sm-50 > * { - margin-bottom: 50px; - } - .bodywebsite .row-sm-0 { - margin-bottom: 0px; - } - .bodywebsite .row-sm-0:empty { - margin-bottom: 0; - } - .bodywebsite .row-sm-0 > * { - margin-bottom: 0px; - } -} -@media (min-width: 768px) { - .bodywebsite .row-md-60 { - margin-bottom: -60px; - } - .bodywebsite .row-md-60:empty { - margin-bottom: 0; - } - .bodywebsite .row-md-60 > * { - margin-bottom: 60px; - } -} -@media (min-width: 992px) { - .bodywebsite .row-md-30 { - margin-bottom: -30px; - } - .bodywebsite .row-md-30:empty { - margin-bottom: 0; - } - .bodywebsite .row-md-30 > * { - margin-bottom: 30px; - } -} -@media (min-width: 1200px) { - .bodywebsite .row-xl-100 { - margin-bottom: -100px; - } - .bodywebsite .row-xl-100:empty { - margin-bottom: 0; - } - .bodywebsite .row-xl-100 > * { - margin-bottom: 100px; - } - .bodywebsite .row-xl-90 { - margin-bottom: -90px; - } - .bodywebsite .row-xl-90:empty { - margin-bottom: 0; - } - .bodywebsite .row-xl-90 > * { - margin-bottom: 90px; - } -} -.bodywebsite .link { - display: inline-block; -} -.bodywebsite .link-inline { - font: inherit; - line-height: inherit; - text-decoration: underline; -} -.bodywebsite .link-underline, -.bodywebsite .link-underline:active, -.bodywebsite .link-underline:focus { - text-decoration: underline; -} -.bodywebsite .link-underline:hover { - text-decoration: none; -} -.bodywebsite .link-circle { - border-radius: 50%; -} -.bodywebsite .link-circle .icon, -.bodywebsite .link-circle .icon:before { - position: static; -} -.bodywebsite .link-bold { - font: 700 18px/22px "Roboto", Helvetica, Arial, sans-serif; -} -.bodywebsite .link-group { - white-space: nowrap; -} -.bodywebsite .link-group * { - vertical-align: middle; -} -.bodywebsite .link-group span { - display: inline-block; -} -.bodywebsite .link-group span + *, -.bodywebsite .link-group * + span { - margin-left: 5px; -} -.bodywebsite .link-group.link-group-animated .icon { - position: relative; - right: 0; - transition: .22s; -} -.bodywebsite .link-group.link-group-animated:hover .icon { - right: -5px; -} -.bodywebsite .link-group-baseline * { - vertical-align: baseline; -} -.bodywebsite .link-icon, -.bodywebsite .link-icon * { - vertical-align: middle; -} -.bodywebsite .link-icon .icon { - margin-right: 5px; -} -.bodywebsite .link-icon-mod .icon { - position: relative; - top: -3px; -} -.bodywebsite .link-image img { - width: auto; - transition: .44s all ease; - opacity: .5; -} -.bodywebsite .link-image:hover img { - opacity: 1; -} -.bodywebsite .link-image-wrap { - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-flex-direction: row; - -ms-flex-direction: row; - flex-direction: row; - -webkit-flex-wrap: nowrap; - -ms-flex-wrap: nowrap; - flex-wrap: nowrap; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; - -webkit-justify-content: center; - -ms-flex-pack: center; - justify-content: center; - min-height: 126px; -} -.bodywebsite * + .link-image-wrap { - margin-top: 13px; -} -.bodywebsite .page .link-primary-inline { - color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; -} -.bodywebsite .page .link-primary-inline.active, -.bodywebsite .page .link-primary-inline:active, -.bodywebsite .page .link-primary-inline:focus { - color: #9b9b9b; -} -.bodywebsite .page .link-primary-inline.hover, -.bodywebsite .page .link-primary-inline:hover { - color: #42b294; -} -.bodywebsite .page .link-default, -.bodywebsite .page .link-default:active, -.bodywebsite .page .link-default:focus { - color: #9f9f9f; -} -.bodywebsite .page .link-default:hover { - color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; -} -.bodywebsite .page .link-primary, -.bodywebsite .page .link-primary:active, -.bodywebsite .page .link-primary:focus { - color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; -} -.bodywebsite .page .link-primary:hover { - color: #00030a; -} -.bodywebsite .page .link-primary-inverse, -.bodywebsite .page .link-primary-inverse:active, -.bodywebsite .page .link-primary-inverse:focus { - color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; -} -.bodywebsite .page .link-primary-inverse:hover { - color: #ddd; -} -.bodywebsite .page .link-primary-inverse-v2, -.bodywebsite .page .link-primary-inverse-v2:active, -.bodywebsite .page .link-primary-inverse-v2:focus { - color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; -} -.bodywebsite .page .link-primary-inverse-v2:hover { - color: #fff; -} -.bodywebsite .page .link-secondary, -.bodywebsite .page .link-secondary:active, -.bodywebsite .page .link-secondary:focus { - color: #00030a; -} -.bodywebsite .page .link-secondary:hover { - color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; -} -.bodywebsite .page .link-tundora, -.bodywebsite .page .link-tundora:active, -.bodywebsite .page .link-tundora:focus { - color: #414141; -} -.bodywebsite .page .link-tundora:hover { - color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; -} -.bodywebsite .page .link-tundora-inverse, -.bodywebsite .page .link-tundora-inverse:active, -.bodywebsite .page .link-tundora-inverse:focus { - color: #414141; -} -.bodywebsite .page .link-tundora-inverse:hover { - color: #fff; -} -.bodywebsite .page .link-secondary, -.bodywebsite .page .link-secondary:active, -.bodywebsite .page .link-secondary:focus { - color: #000; -} -.bodywebsite .page .link-secondary:hover { - color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; -} -.bodywebsite .page .link-gray-light, -.bodywebsite .page .link-gray-light:active, -.bodywebsite .page .link-gray-light:focus { - color: #dedede; -} -.bodywebsite .page .link-gray-light:hover { - color: #000; -} -.bodywebsite .page .link-white, -.bodywebsite .page .link-white:active, -.bodywebsite .page .link-white:focus { - color: #fff; -} -.bodywebsite .page .link-white:hover { - color: #fff; -} -.bodywebsite .page .link-black, -.bodywebsite .page .link-black:active, -.bodywebsite .page .link-black:focus { - color: #000; -} -.bodywebsite .page .link-black:hover { - color: maincolorbis) ? 'rgb(50, 120, 180)' : '#'.$website->maincolorbis; ?>; -} -.bodywebsite .page .link-black:hover { - text-decoration: underline; -} -.bodywebsite .page .link-gray-dark-filled, -.bodywebsite .page .link-gray-dark-filled:active, -.bodywebsite .page .link-gray-dark-filled:focus { - color: #fff; - background: #2a2b2b; -} -.bodywebsite .page .link-gray-dark-filled:hover { - color: #fff; - background: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; -} -.bodywebsite .page .link-shop { - width: 25px; - height: 25px; - font-size: 25px; - line-height: 25px; -} -.bodywebsite .page .link-shop, -.bodywebsite .page .link-shop:active, -.bodywebsite .page .link-shop:focus { - color: #00030a; -} -.bodywebsite .page .link-shop:hover { - color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; -} -.bodywebsite ul, -.bodywebsite ol { - list-style: none; - padding: 0; - margin: 0; -} -.bodywebsite dl { - margin: 0; -} -.bodywebsite dt { - font-weight: inherit; -} -.bodywebsite .list > li + li { - margin-top: 5px; -} -.bodywebsite .list-xl > li + li { - margin-top: 44px; -} -.bodywebsite .list-inline { - margin-left: -5px; - margin-right: -5px; - vertical-align: baseline; -} -.bodywebsite .list-inline > li { - display: inline-block; - padding-left: 5px; - padding-right: 5px; -} -.bodywebsite .list-inline-xs { - margin-left: -6px; - margin-right: -6px; -} -.bodywebsite .list-inline-xs > li { - display: inline-block; - padding-left: 6px; - padding-right: 6px; -} -.bodywebsite .list-inline-sm { - margin-left: -10px; - margin-right: -10px; -} -.bodywebsite .list-inline-sm > li { - display: inline-block; - padding-left: 10px; - padding-right: 10px; -} -.bodywebsite .list-inline-md { - margin-left: -15px; - margin-right: -15px; -} -.bodywebsite .list-inline-md > li { - display: inline-block; - padding-left: 15px; - padding-right: 15px; -} -.bodywebsite .list-objects-inline { - margin-bottom: -4px; - margin-left: -22px; - transform: translateY(-4px); -} -.bodywebsite .list-objects-inline > *, -.bodywebsite .list-objects-inline > *:first-child { - display: inline-block; - vertical-align: middle; - margin-top: 4px; - margin-left: 22px; -} -.bodywebsite .list-objects-inline > li > * { - display: inline-block; - vertical-align: middle; -} -.bodywebsite .list-objects-inline > li > * + * { - margin-left: 5px; -} -.bodywebsite .list-terms dt + dd { - margin-top: 10px; -} -.bodywebsite .list-terms dd + dt { - margin-top: 31px; -} -.bodywebsite .list-terms-variant-1 dt { - font: 700 16px/22px "Roboto", Helvetica, Arial, sans-serif; - letter-spacing: -0.025em; - color: #000; -} -.bodywebsite .list-terms-variant-1 dt + dd { - margin-top: 18px; -} -.bodywebsite .list-terms-variant-1 dd + dt { - margin-top: 40px; -} -@media (min-width: 1200px) { - .bodywebsite .list-terms-variant-1 dt { - font-size: 24px; - line-height: 1.2; - } - .bodywebsite .list-terms-variant-1 dd + dt { - margin-top: 50px; - } -} -.bodywebsite .list-inline-dashed { - margin-left: -15px; -} -.bodywebsite .list-inline-dashed li { - padding-left: 15px; - padding-right: 10px; -} -.bodywebsite .list-inline-dashed li:after { - content: '|'; - position: relative; - right: -12.5px; - color: #e5e7e9; -} -.bodywebsite .list-inline-dashed li:last-child { - padding-right: 0; -} -.bodywebsite .list-inline-dashed li:last-child:after { - display: none; -} -@media (min-width: 992px) { - .bodywebsite .list-md-dashed > * { - position: relative; - } - .bodywebsite .list-md-dashed > *:after { - content: ''; - position: absolute; - font-weight: 100; - top: 0; - right: -6%; - height: 73px; - -webkit-transform: translateX(-50%) skew(-21deg); - transform: translateX(-50%) skew(-21deg); - width: 1px; - background: #48494a; - } -} -@media (min-width: 992px) and (min-width: 1200px) { - .bodywebsite .list-md-dashed > *:after { - right: -3%; - height: 120px; - } -} -@media (min-width: 992px) { - .bodywebsite .list-md-dashed > *:last-child::after { - display: none; - } -} -.bodywebsite .dl-inline { - vertical-align: middle; -} -.bodywebsite .dl-inline dt, -.bodywebsite .dl-inline dd { - display: inline-block; - vertical-align: middle; -} -.bodywebsite .dl-inline dt { - padding-right: 5px; -} -.bodywebsite .dl-inline dt:after { - content: ':'; -} -.bodywebsite .dl-inline .pricing-object-sm { - position: relative; - top: -5px; -} -.bodywebsite .list-terms-inline dt, -.bodywebsite .list-terms-inline dd { - display: inline-block; -} -.bodywebsite .list-terms-inline dt { - color: #000; -} -.bodywebsite .list-terms-inline dd { - color: #9f9f9f; -} -.bodywebsite .list-terms-inline dt:after { - content: ':'; -} -.bodywebsite .list-index { - counter-reset: li; -} -.bodywebsite .list-index > li .list-index-counter:before { - content: counter(li, decimal-leading-zero); - counter-increment: li; -} -.bodywebsite .list-marked li { - color: #000; - position: relative; - padding-left: 32px; -} -.bodywebsite .list-marked li:before { - position: absolute; - top: 1px; - left: 0; - content: '\e005'; - font-family: "fl-flat-icons-set-2"; - display: inline-block; - margin-right: 11px; - font-size: 13px; - line-height: inherit; - vertical-align: middle; - color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; -} -.bodywebsite .list-marked li:not(:last-child):after { - content: ';'; -} -.bodywebsite .list-marked li:last-child:after { - content: '.'; -} -.bodywebsite .list-marked li + li { - margin-top: 11px; -} -.bodywebsite .list-marked-spacing-lg li { - padding-left: 26px; -} -@media (min-width: 992px) and (max-width: 1799px) { - .bodywebsite .list-marked li { - padding-left: 24px; - font-size: 13px; - } - .bodywebsite .list-marked li:before { - font-size: 11px; - } -} -.bodywebsite .list-marked-variant-2 > li > a { - position: relative; - display: inline-block; -} -.bodywebsite .list-marked-variant-2 > li > a:hover:before { - left: 4px; -} -.bodywebsite .list-marked-variant-2 > li + li { - margin-top: 14px; -} -.bodywebsite .list-ordered { - counter-reset: li; -} -.bodywebsite .list-ordered li { - color: #000; -} -.bodywebsite .list-ordered li:before { - display: inline-block; - margin-right: 13px; - width: 15px; - content: counter(li, decimal) "."; - counter-increment: li; -} -.bodywebsite .list-ordered li:not(:last-child):after { - content: ';'; -} -.bodywebsite .list-ordered li:last-child:after { - content: '.'; -} -.bodywebsite .list-ordered li + li { - margin-top: 11px; -} -.bodywebsite .list-tags > li { - display: inline-block; - font-style: italic; -} -.bodywebsite .list-tags > li a, -.bodywebsite .list-tags > li a:active, -.bodywebsite .list-tags > li a:focus { - color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; -} -.bodywebsite .list-tags > li a:hover { - color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; -} -.bodywebsite .list-tags > li:after { - content: ','; - display: inline-block; - color: #f9f9f9; -} -.bodywebsite .list-tags > li:last-child:after { - display: none; -} -.bodywebsite .list-numbered { - counter-reset: li; -} -.bodywebsite .list-numbered > li { - position: relative; - padding-left: 30px; -} -.bodywebsite .list-numbered > li:before { - position: absolute; - top: 0; - left: 0; - content: counter(li, decimal) "."; - counter-increment: li; -} -.bodywebsite .list-numbered > li + li { - margin-top: 10px; -} -.bodywebsite .list-icon-pack { - margin-top: 6px; -} -.bodywebsite .list-icon-pack > li { - margin-top: 25px; -} -.bodywebsite .list-icon-pack > li span { - display: block; -} -.bodywebsite .list-icon-pack > li span + span { - margin-left: .25em; -} -.bodywebsite .list-icon-pack h6 + *, -.bodywebsite .list-icon-pack .h6 + * { - margin-top: 2px; -} -.bodywebsite .list-links > li { - display: inline-block; -} -.bodywebsite .list-links > li:after { - content: ';'; -} -.bodywebsite .list-links > li:last-child:after { - display: none; -} -.bodywebsite .list-hashtags > li { - display: inline-block; -} -.bodywebsite .list-hashtags > li a { - color: inherit; -} -.bodywebsite .list-hashtags > li a:hover { - color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; -} -.bodywebsite .list-hashtags > li > a:before { - content: '#'; -} -.bodywebsite .list-marked-bordered { - color: #000; -} -.bodywebsite .list-marked-bordered li a { - display: block; - padding: 10px 7px; - border-bottom: 1px solid #f9f9f9; -} -.bodywebsite .list-marked-bordered li a:before { - position: relative; - display: inline-block; - padding-right: 10px; - font: 400 18px "FontAwesome"; - line-height: inherit; - color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; - content: '\f105'; -} -.bodywebsite .list-marked-bordered li a span { - color: inherit; - transition: color .33s; -} -.bodywebsite .list-marked-bordered li a span:first-child { - color: #000; -} -.bodywebsite .list-marked-bordered li a:hover, -.bodywebsite .list-marked-bordered li a:hover span:nth-child(n) { - color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; -} -.bodywebsite .list-marked-bordered li span:not(:last-child) { - margin-right: .25em; -} -.bodywebsite .list-bordered-horizontal { - position: relative; - transform: translateY(-7px); - margin-bottom: -7px; -} -.bodywebsite .list-bordered-horizontal > * { - margin-top: 7px; -} -.bodywebsite .list-bordered-horizontal > *:not(:last-child) { - margin-right: 35px; -} -@media (min-width: 768px) { - .bodywebsite .list-bordered-horizontal > li { - display: inline-block; - } - .bodywebsite .list-bordered-horizontal > li:not(:last-child) { - position: relative; - } - .bodywebsite .list-bordered-horizontal > li:not(:last-child):after { - content: ''; - position: absolute; - top: 50%; - transform: translateY(-50%); - right: -20px; - width: 1px; - height: 22px; - background: #dedede; - } -} -.bodywebsite .list-tag-blocks { - position: relative; - transform: translateY(-6px); - margin-bottom: -6px; -} -.bodywebsite .list-tag-blocks > * { - margin-top: 6px; -} -.bodywebsite .list-tag-blocks > *:not(:last-child) { - margin-right: 6px; -} -.bodywebsite .list-tag-blocks li { - display: inline-block; - font-size: 11px; - font-weight: 700; - text-transform: uppercase; -} -.bodywebsite .list-tag-blocks li a { - display: inline-block; - padding: 6px 19px; - border-radius: 0; - border: 1px solid transparent; -} -.bodywebsite .list-tag-blocks li a, -.bodywebsite .list-tag-blocks li a:active, -.bodywebsite .list-tag-blocks li a:focus { - color: #000; - background: #fff; -} -.bodywebsite .list-tag-blocks li a:hover { - background: transparent; - border-color: #cdcdcd; -} -.bodywebsite .list-progress { - font-family: "Roboto", Helvetica, Arial, sans-serif; - color: #00030a; -} -.bodywebsite .list-progress li + li { - margin-top: 23px; -} -.bodywebsite .list-progress p { - padding-right: 40px; -} -.bodywebsite .list-tags-inline > li { - display: inline; -} -.bodywebsite .list-tags-inline > li a { - color: inherit; -} -.bodywebsite .list-tags-inline > li a:hover { - color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; -} -.bodywebsite .list-tags-inline > li:not(:last-child):after { - content: ','; -} -.bodywebsite .list-rating { - font-size: 0; - line-height: 0; -} -.bodywebsite .list-rating > li { - display: inline-block; -} -.bodywebsite .list-rating .icon { - color: #ffd400; -} -.bodywebsite .list-wide-bordered { - color: #00030a; - font: 400 14px/22px "Roboto", Helvetica, Arial, sans-serif; - border-top: 1px solid #dedede; -} -.bodywebsite .list-wide-bordered dl { - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-flex-direction: row; - -ms-flex-direction: row; - flex-direction: row; - -webkit-flex-wrap: nowrap; - -ms-flex-wrap: nowrap; - flex-wrap: nowrap; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; - -webkit-justify-content: space-between; - -ms-flex-pack: justify; - justify-content: space-between; - width: 100%; - font-weight: 700; -} -.bodywebsite .list-wide-bordered dl dt { - padding-right: 15px; -} -.bodywebsite .list-wide-bordered dl dd { - font-weight: 700; - font-size: 14px; -} -.bodywebsite .list-wide-bordered li { - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-flex-direction: row; - -ms-flex-direction: row; - flex-direction: row; - -webkit-flex-wrap: nowrap; - -ms-flex-wrap: nowrap; - flex-wrap: nowrap; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; - min-height: 54px; - padding: 10px 20px; - border-bottom: 1px solid #dedede; -} -.bodywebsite .list-wide-bordered + .list-wide-bordered { - border-top: 0; -} -@media (min-width: 768px) { - .bodywebsite .list-wide-bordered { - font-size: 16px; - } - .bodywebsite .list-wide-bordered li { - min-height: 73px; - padding: 20px 30px; - } -} -.bodywebsite .object-wrap { - position: relative; - overflow: hidden; -} -.bodywebsite .object-wrap-right > .object-wrap-body { - right: 0; -} -.bodywebsite .object-wrap-left > .object-wrap-body { - left: 0; -} -@media (min-width: 768px) { - .bodywebsite .object-wrap-sm-right > .object-wrap-body { - right: 0; - } - .bodywebsite .object-wrap-sm-left > .object-wrap-body { - left: 0; - } -} -@media (max-width: 767px) { - .bodywebsite .object-wrap-body { - position: relative; - overflow: hidden; - min-height: 300px; - width: 100%; - } - .bodywebsite .object-wrap-body > img { - position: absolute; - min-width: 100%; - max-width: none; - height: auto; - max-height: none; - top: 20%; - left: 50%; - transform: translate(-50%, -20%); - } -} -@media (min-width: 768px) { - .bodywebsite .object-wrap-body { - overflow: hidden; - position: absolute; - top: 0; - bottom: 0; - width: 100vw; - min-width: 1px; - max-width: none; - height: 100%; - min-height: 100%; - max-height: none; - margin: 0; - background: inherit; - z-index: 0; - } - .bodywebsite .object-wrap-body > img { - position: relative; - height: auto; - min-height: 100.5%; - width: auto; - min-width: 102%; - max-width: none; - left: 50%; - transform: translateX(-50%); - } - .bodywebsite .object-wrap-body + * { - margin-top: 0; - } -} -@media (min-width: 768px) { - .bodywebsite .sm-width-c6 { - width: calc(50vw); - } -} -@media (min-width: 992px) { - .bodywebsite .md-width-c7d20 { - width: calc(150vw); - } -} -@media (min-width: 1200px) { - .bodywebsite .md-width-c7d20 { - width: calc(167.5vw); - } -} -@media (min-width: 992px) { - .bodywebsite .md-width-c5dm20 { - width: calc(-50vw); - } -} -@media (min-width: 1200px) { - .bodywebsite .md-width-c5dm20 { - width: calc(-67.5vw); - } -} -.bodywebsite .bg-wrap { - position: relative; -} -.bodywebsite .bg-wrap:before { - content: ''; - position: absolute; - top: 0; - bottom: 0; - width: 120vw; - left: 50%; - transform: translateX(-50%); - background: inherit; - z-index: -1; -} -.bodywebsite .bg-wrap-sm-left { - z-index: 1; -} -@media (min-width: 992px) { - .bodywebsite .bg-wrap-sm-left:before { - width: 100vw; - right: 0; - transform: none; - } -} -.bodywebsite .bg-wrap-sm-right { - z-index: 1; -} -@media (min-width: 992px) { - .bodywebsite .bg-wrap-sm-right:before { - width: 100vw; - left: 0; - transform: none; - } -} -@media (min-width: 576px) { - .bodywebsite .wrap-justify { - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-flex-direction: row; - -ms-flex-direction: row; - flex-direction: row; - -webkit-flex-wrap: nowrap; - -ms-flex-wrap: nowrap; - flex-wrap: nowrap; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; - -webkit-justify-content: space-around; - -ms-flex-pack: distribute; - justify-content: space-around; - } - .bodywebsite .wrap-justify > * + * { - margin-top: 0; - } -} -@media (min-width: 768px) { - .bodywebsite .wrap-justify { - -webkit-justify-content: space-between; - -ms-flex-pack: justify; - justify-content: space-between; - } -} -@media (min-width: 1200px) { - .bodywebsite .wrap-justify { - padding-right: 30px; - } -} -.bodywebsite .link-wrap { - line-height: 1; -} -.bodywebsite .link-wrap a { - display: inline; - line-height: 1; -} -.bodywebsite [class*='bg-decoration-wrap'] { - position: relative; - overflow: hidden; -} -.bodywebsite [class*='bg-decoration-wrap'] .bg-decoration-content { - position: relative; - z-index: 2; -} -.bodywebsite [class*='bg-decoration-wrap'] .bg-decoration-object { - top: 0; - bottom: auto; -} -.bodywebsite .bg-decoration-bottom .bg-decoration-object { - top: auto; - bottom: 0; -} -@media (min-width: 768px) { - .bodywebsite .bg-decoration-wrap-sm .bg-decoration-object { - height: 50%; - position: absolute; - right: 0; - left: 0; - } - .bodywebsite .bg-decoration-bottom-sm .bg-decoration-object { - height: 34%; - } -} -@media (min-width: 1200px) { - .bodywebsite .bg-decoration-object { - height: 50%; - position: absolute; - right: 0; - left: 0; - } - .bodywebsite .bg-decoration-bottom-mod .bg-decoration-object { - height: 45%; - } -} -.bodywebsite .divider-fullwidth { - height: 1px; - width: 100%; -} -.bodywebsite .hr { - border: none; - height: 1px; - width: 100%; -} -.bodywebsite .tabs-custom .nav-tabs { - display: block; - word-spacing: 0; - border: 0; -} -.bodywebsite .tabs-custom .nav-tabs:before, -.bodywebsite .tabs-custom .nav-tabs:after { - display: none; -} -.bodywebsite .tabs-custom .nav-tabs .nav-item { - float: none; - border: 0; - cursor: pointer; - transition: .33s all ease; -} -.bodywebsite .tabs-custom .nav-tabs .nav-item .nav-link.active { - cursor: default; - border: 0; -} -.bodywebsite .tabs-custom .nav-tabs .nav-link { - margin: 0; - border: 0; -} -.bodywebsite * + .tabs-custom { - margin-top: 35px; -} -@media (min-width: 992px) { - .bodywebsite * + .tabs-custom { - margin-top: 50px; - } -} -.bodywebsite .tabs-custom.tabs-corporate .nav-tabs, -.bodywebsite .tabs-custom.tabs-line .nav-tabs, -.bodywebsite .tabs-custom.tabs-minimal .nav-tabs { - font-size: 0; - line-height: 0; -} -.bodywebsite .tabs-custom.tabs-corporate .nav-tabs { - border: 1px solid #dedede; -} -.bodywebsite .tabs-custom.tabs-corporate .nav-tabs li { - margin: -1px 0; -} -.bodywebsite .tabs-custom.tabs-corporate .nav-tabs .nav-item .nav-link { - padding: 8px 10px; - font: 700 11px/18px "Roboto", Helvetica, Arial, sans-serif; - color: #000; - background: transparent; - border-bottom: 1px solid #dedede; - text-align: center; - vertical-align: middle; -} -.bodywebsite .tabs-custom.tabs-corporate .nav-tabs .nav-item .nav-link:after { - font: 400 17px 'Material Design Icons'; - color: transparent; - position: relative; - top: -12px; - display: inline-block; - margin-left: 5px; - content: '\f236'; - vertical-align: middle; - transition: .33s all ease; -} -.bodywebsite .tabs-custom.tabs-corporate .nav-tabs .nav-item .nav-link:first-child { - border-top: 1px solid #dedede; -} -.bodywebsite .tabs-custom.tabs-corporate .nav-tabs .nav-item .nav-link:hover, -.bodywebsite .tabs-custom.tabs-corporate .nav-tabs .nav-item .active.nav-link { - color: #fff; - background: #3a3c3e; - border-color: #3a3c3e; -} -.bodywebsite .tabs-custom.tabs-corporate .nav-tabs .nav-item .nav-link:hover:after, -.bodywebsite .tabs-custom.tabs-corporate .nav-tabs .nav-item .active.nav-link:after { - top: -1px; - color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; -} -.bodywebsite .tabs-custom.tabs-corporate .tab-content { - padding: 22px 0 0; -} -.bodywebsite .tabs-custom.tabs-line .nav-tabs .nav-item, -.bodywebsite .tabs-custom.tabs-minimal .nav-tabs .nav-item { - margin: 0; -} -.bodywebsite .tabs-custom.tabs-line .nav-tabs .nav-item + .nav-item, -.bodywebsite .tabs-custom.tabs-minimal .nav-tabs .nav-item + .nav-item { - margin-top: -1px; -} -.bodywebsite .tabs-custom.tabs-line .tab-content, -.bodywebsite .tabs-custom.tabs-minimal .tab-content { - padding: 22px 0 0; -} -.bodywebsite .tabs-custom.tabs-line .nav-tabs .nav-item .nav-link { - font: 400 11px/16px "Roboto", Helvetica, Arial, sans-serif; - letter-spacing: -0.05em; - text-transform: uppercase; - color: #9b9b9b; -} -.bodywebsite .tabs-custom.tabs-line .nav-tabs .nav-item .nav-link:hover, -.bodywebsite .tabs-custom.tabs-line .nav-tabs .nav-item .active.nav-link { - color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; -} -.bodywebsite .tabs-custom.tabs-minimal .nav-tabs .nav-item .nav-link { - font: 700 11px/24px "Roboto", Helvetica, Arial, sans-serif; - color: #000; -} -.bodywebsite .tabs-custom.tabs-minimal .nav-tabs .nav-item .nav-link:hover, -.bodywebsite .tabs-custom.tabs-minimal .nav-tabs .nav-item .active.nav-link { - color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; -} -.bodywebsite .tabs-custom.tabs-line .nav-tabs { - text-align: center; -} -.bodywebsite .tabs-custom.tabs-line .nav-tabs .nav-item { - display: block; - margin: 0 -1px; -} -.bodywebsite .tabs-custom.tabs-line .nav-tabs .nav-item .nav-link { - padding: 8px 15px; - border: 1px solid #e5e7e9; -} -.bodywebsite .tabs-custom.tabs-line .nav-tabs .nav-item .nav-link:last-child { - margin-right: 0; - border-bottom-width: 1px; -} -.bodywebsite .tabs-custom.tabs-line .nav-tabs .nav-item .nav-link:hover, -.bodywebsite .tabs-custom.tabs-line .nav-tabs .nav-item .active.nav-link { - color: #fff; - background: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; - border-color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; -} -.bodywebsite .tabs-custom.tabs-minimal .nav-tabs { - text-align: center; -} -.bodywebsite .tabs-custom.tabs-minimal .nav-tabs .nav-item { - display: block; -} -.bodywebsite .tabs-custom.tabs-minimal .nav-tabs .nav-item .nav-link { - padding: 7px 15px; - border: 1px solid #e5e7e9; -} -.bodywebsite .tabs-custom.tabs-minimal .nav-tabs .nav-item .nav-link:last-child { - border-bottom-width: 1px; -} -.bodywebsite .tabs-custom.tabs-minimal .nav-tabs .nav-item .nav-link:hover, -.bodywebsite .tabs-custom.tabs-minimal .nav-tabs .nav-item .active.nav-link { - color: #fff; - background: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; - border-color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; -} -@media (min-width: 768px) { - .bodywebsite .tabs-custom.tabs-line .nav-item, - .bodywebsite .tabs-custom.tabs-minimal .nav-item { - margin: 0; - } - .bodywebsite .tabs-custom.tabs-line .nav-tabs .nav-item .nav-link { - font-size: 14px; - line-height: 24px; - } - .bodywebsite .tabs-custom.tabs-minimal .nav-tabs .nav-item .nav-link { - font-size: 14px; - line-height: 24px; - } - .bodywebsite .tabs-custom.tabs-horizontal.tabs-corporate .nav-tabs, - .bodywebsite .tabs-custom.tabs-horizontal.tabs-line .nav-tabs { - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-flex-direction: row; - -ms-flex-direction: row; - flex-direction: row; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; - width: 100%; - text-align: left; - } - .bodywebsite .tabs-custom.tabs-horizontal.tabs-line .nav-tabs .nav-item .nav-link, - .bodywebsite .tabs-custom.tabs-horizontal.tabs-minimal .nav-tabs .nav-item .nav-link { - position: relative; - z-index: 10; - display: inline-block; - border: 0; - } - .bodywebsite .tabs-custom.tabs-horizontal.tabs-line .nav-tabs .nav-item + .nav-item, - .bodywebsite .tabs-custom.tabs-horizontal.tabs-minimal .nav-tabs .nav-item + .nav-item { - margin-top: 0; - } - .bodywebsite .tabs-custom.tabs-horizontal.tabs-line .tab-content, - .bodywebsite .tabs-custom.tabs-horizontal.tabs-minimal .tab-content { - padding: 40px 0 0; - } - .bodywebsite .tabs-custom.tabs-horizontal.tabs-corporate .nav-tabs .nav-item, - .bodywebsite .tabs-custom.tabs-horizontal.tabs-corporate .nav-tabs .nav-link { - display: block; - border: 0; - } - .bodywebsite .tabs-custom.tabs-horizontal.tabs-line .nav-tabs { - -webkit-justify-content: space-between; - -ms-flex-pack: justify; - justify-content: space-between; - border-bottom: 2px solid #e5e7e9; - } - .bodywebsite .tabs-custom.tabs-horizontal.tabs-line .nav-tabs .nav-item .nav-link { - padding: 8px 0 8px 0; - margin: 0 30px 0 0; - font-weight: 700; - background: transparent; - } - .bodywebsite .tabs-custom.tabs-horizontal.tabs-line .nav-tabs .nav-item .nav-link:after { - content: ''; - position: absolute; - left: 0; - right: 100%; - bottom: -1px; - border-bottom: 2px solid maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; - opacity: 0; - visibility: hidden; - transition: .33s all ease; - } - .bodywebsite .tabs-custom.tabs-horizontal.tabs-line .nav-tabs .nav-item .nav-link:hover, - .bodywebsite .tabs-custom.tabs-horizontal.tabs-line .nav-tabs .nav-item .active.nav-link { - color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; - background: transparent; - } - .bodywebsite .tabs-custom.tabs-horizontal.tabs-line .nav-tabs .nav-item .active.nav-link:after { - right: 0; - opacity: 1; - visibility: visible; - } - .bodywebsite .tabs-custom.tabs-horizontal.tabs-minimal .nav-tabs { - margin-top: -10px; - } - .bodywebsite .tabs-custom.tabs-horizontal.tabs-minimal .nav-tabs .nav-item { - display: inline-block; - margin: 10px 15px 0 0; - } - .bodywebsite .tabs-custom.tabs-horizontal.tabs-minimal .nav-tabs .nav-item .nav-link { - position: relative; - bottom: -1px; - z-index: 10; - display: inline-block; - padding: 0 0 5px 0; - } - .bodywebsite .tabs-custom.tabs-horizontal.tabs-minimal .nav-tabs .nav-item .nav-link:after { - content: ''; - position: absolute; - left: 0; - right: 100%; - bottom: 0; - border-bottom: 2px solid maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; - opacity: 0; - visibility: hidden; - transition: .33s all ease; - } - .bodywebsite .tabs-custom.tabs-horizontal.tabs-minimal .nav-tabs .nav-item .nav-link:last-child { - margin-right: 0; - } - .bodywebsite .tabs-custom.tabs-horizontal.tabs-minimal .nav-tabs .nav-item .nav-link:hover, - .bodywebsite .tabs-custom.tabs-horizontal.tabs-minimal .nav-tabs .nav-item .active.nav-link { - color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; - background: transparent; - } - .bodywebsite .tabs-custom.tabs-horizontal.tabs-minimal .nav-tabs .nav-item .active.nav-link:after { - right: 0; - opacity: 1; - visibility: visible; - } -} -.bodywebsite .tabs-vertical .nav-tabs { - position: relative; -} -.bodywebsite .tabs-vertical .nav-tabs > .nav-item { - z-index: 10; - display: block; - -webkit-flex-grow: 1; - -ms-flex-positive: 1; - flex-grow: 1; -} -.bodywebsite .tabs-vertical.tabs-corporate .nav-tabs { - width: 100%; -} -.bodywebsite .tabs-vertical.tabs-corporate .nav-tabs .nav-item { - display: block; -} -.bodywebsite .tabs-vertical.tabs-corporate .nav-tabs .nav-item .nav-link { - position: relative; - padding: 8px 10px; -} -.bodywebsite .tabs-vertical.tabs-corporate .nav-tabs .nav-item .nav-link:hover, -.bodywebsite .tabs-vertical.tabs-corporate .nav-tabs .nav-item .active.nav-link { - border-color: #3a3c3e; -} -.bodywebsite .tabs-vertical.tabs-corporate .tab-content { - padding: 30px 0 0; -} -.bodywebsite .tabs-vertical.tabs-minimal .nav-tabs { - border-right: 1px solid #ddd; -} -.bodywebsite .tabs-vertical.tabs-minimal .nav-tabs .nav-item .nav-link { - position: relative; - right: -1px; - padding: 0 16px 0 0; - text-align: right; - border-right: 1px solid transparent; - background-color: transparent; -} -.bodywebsite .tabs-vertical.tabs-minimal .nav-tabs .nav-item .nav-link:hover, -.bodywebsite .tabs-vertical.tabs-minimal .nav-tabs .nav-item .nav-link.resp-tab-active { - border-right-color: #00030a; -} -.bodywebsite .tabs-vertical.tabs-minimal .nav-tabs .nav-item + .nav-item { - margin-top: 16px; -} -@media (min-width: 768px) { - .bodywebsite .tabs-custom.tabs-corporate .nav-tabs .nav-item .nav-link { - font-size: 16px; - line-height: 26px; - } - .bodywebsite .tabs-custom.tabs-corporate .nav-tabs .nav-item .nav-link:after { - font-size: 25px; - } - .bodywebsite .tabs-custom.tabs-horizontal.tabs-corporate .nav-tabs { - position: relative; - -webkit-justify-content: center; - -ms-flex-pack: center; - justify-content: center; - } - .bodywebsite .tabs-custom.tabs-horizontal.tabs-corporate .nav-tabs .nav-item { - -webkit-flex-grow: 1; - -ms-flex-positive: 1; - flex-grow: 1; - -webkit-flex-shrink: 0; - -ms-flex-negative: 0; - flex-shrink: 0; - } - .bodywebsite .tabs-custom.tabs-horizontal.tabs-corporate .nav-tabs .nav-item .nav-link { - display: block; - padding: 21px 10px 19px; - } - .bodywebsite .tabs-custom.tabs-horizontal.tabs-corporate .tab-content { - padding: 30px 0 0; - } - .bodywebsite .tabs-custom.tabs-vertical { - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-flex-direction: row; - -ms-flex-direction: row; - flex-direction: row; - -webkit-flex-wrap: nowrap; - -ms-flex-wrap: nowrap; - flex-wrap: nowrap; - -webkit-align-items: flex-start; - -ms-flex-align: start; - align-items: flex-start; - } - .bodywebsite .tabs-custom.tabs-vertical .nav-tabs { - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-flex-direction: column; - -ms-flex-direction: column; - flex-direction: column; - -webkit-flex-wrap: nowrap; - -ms-flex-wrap: nowrap; - flex-wrap: nowrap; - -webkit-align-items: stretch; - -ms-flex-align: stretch; - align-items: stretch; - -webkit-flex-shrink: 0; - -ms-flex-negative: 0; - flex-shrink: 0; - max-width: 50%; - } - .bodywebsite .tabs-custom.tabs-vertical .nav-tabs .nav-item { - width: 100%; - } - .bodywebsite .tabs-custom.tabs-vertical .nav-tabs .nav-item .nav-link { - text-align: left; - } - .bodywebsite .tabs-custom.tabs-vertical .nav-tabs .nav-item .nav-link:hover, - .bodywebsite .tabs-custom.tabs-vertical .nav-tabs .nav-item .active.nav-link { - border-color: #3a3c3e; - } - .bodywebsite .tabs-custom.tabs-vertical .nav-tabs .nav-item .nav-link:hover:after, - .bodywebsite .tabs-custom.tabs-vertical .nav-tabs .nav-item .active.nav-link:after { - right: 15px; - } - .bodywebsite .tabs-custom.tabs-vertical .tab-content { - -webkit-flex-grow: 1; - -ms-flex-positive: 1; - flex-grow: 1; - } - .bodywebsite .tabs-custom.tabs-vertical.tabs-corporate .nav-tabs { - width: auto; - min-width: 240px; - border-width: 0 0 1px 0; - } - .bodywebsite .tabs-custom.tabs-vertical.tabs-corporate .nav-tabs .nav-item { - margin: 0; - } - .bodywebsite .tabs-custom.tabs-vertical.tabs-corporate .nav-tabs .nav-item .nav-link { - padding: 23px 44px 22px 30px; - border-width: 1px 0 0 0; - text-align: left; - } - .bodywebsite .tabs-custom.tabs-vertical.tabs-corporate .nav-tabs .nav-item .nav-link:after { - position: absolute; - top: 50%; - transform: translateY(-50%); - right: 26px; - content: '\f238'; - transition: .33s all ease; - } - .bodywebsite .tabs-custom.tabs-vertical.tabs-corporate .nav-tabs .nav-item .nav-link:hover:after, - .bodywebsite .tabs-custom.tabs-vertical.tabs-corporate .nav-tabs .nav-item .active.nav-link:after { - right: 15px; - top: 50%; - } - .bodywebsite .tabs-custom.tabs-vertical.tabs-corporate .tab-content { - padding: 0 0 0 30px; - margin-top: -5px; - } -} -@media (min-width: 992px) { - .bodywebsite .tabs-custom.tabs-vertical.tabs-corporate .nav-tabs { - min-width: 300px; - } - .bodywebsite .tabs-custom.tabs-vertical.tabs-corporate .tab-content { - padding: 0 0 0 44px; - } -} -.bodywebsite .card-group.card-group-custom { - margin-bottom: 0; -} -.bodywebsite .card-group.card-group-custom .card-heading + .card-collapse > .card-body, -.bodywebsite .card-group.card-group-custom .card-heading + .card-collapse > .list-group { - border-top: 0; -} -.bodywebsite .card-group.card-group-custom .card + .card { - margin-top: 0; -} -.bodywebsite .card-group.card-group-corporate .card + .card { - margin-top: 30px; -} -.bodywebsite .card-custom { - margin: 0; - background: inherit; - border: 0; - border-radius: 0; - box-shadow: none; -} -.bodywebsite .card-custom a { - display: block; -} -.bodywebsite .card-custom .card-heading { - padding: 0; - border-bottom: 0; - border-top-left-radius: 0; - border-top-right-radius: 0; -} -.bodywebsite .card-custom .card-body { - padding: 0; - border: 0; -} -.bodywebsite * + .card-group-custom { - margin-top: 35px; -} -@media (min-width: 768px) { - .bodywebsite * + .card-group-custom { - margin-top: 50px; - } -} -.bodywebsite .card-light:first-child .card-title { - border-top: 1px solid #dedede; -} -.bodywebsite .card-light .card-title { - border-bottom: 1px solid #dedede; -} -.bodywebsite .card-light .card-title:nth-child(n + 2) { - margin-top: -1px; -} -.bodywebsite .card-light .card-title a { - position: relative; - padding: 24px 55px 22px 32px; - font: 500 18px/24px "Roboto", Helvetica, Arial, sans-serif; - color: #000; - transition: 1.5s all ease; -} -.bodywebsite .card-light .card-title a .card-arrow:after { - opacity: 0; - visibility: hidden; -} -.bodywebsite .card-light .card-title a.collapsed .card-arrow:after { - opacity: 1; - visibility: visible; -} -.bodywebsite .card-light .card-arrow { - position: absolute; - top: 50%; - transform: translateY(-50%); - right: 26px; - transition: .33s; - will-change: transform; -} -.bodywebsite .card-light .card-arrow:before, -.bodywebsite .card-light .card-arrow:after { - content: ''; - position: absolute; - top: 50%; - transform: translateY(-50%); - background: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; -} -.bodywebsite .card-light .card-arrow:before { - width: 14px; - height: 2px; - right: 0; -} -.bodywebsite .card-light .card-arrow:after { - width: 2px; - height: 14px; - right: 6px; - transition: .2s all ease; -} -.bodywebsite .card-light .card-collapse { - position: relative; - margin-top: -1px; - border-bottom: 1px solid #dedede; - color: #9f9f9f; - will-change: transform; -} -.bodywebsite .card-light .card-body { - padding: 25px 44px 25px 32px; -} -@media (max-width: 767px) { - .bodywebsite .card-light .card-title a, - .bodywebsite .card-light .card-body { - padding-left: 15px; - } -} -.bodywebsite .card-corporate .card-title a, -.bodywebsite .card-corporate .card-collapse { - background: #fff; - box-shadow: -1px 0px 10px 0px rgba(65, 65, 65, 0.12); -} -.bodywebsite .card-corporate .card-collapse.in { - box-shadow: -1px 0 5px 0 rgba(65, 65, 65, 0.12); -} -.bodywebsite .card-corporate .card-collapse.in:before { - content: ''; - position: absolute; - top: -1px; - height: 1px; - background: #ededed; - left: 0; - width: 100%; -} -.bodywebsite .card-corporate .card-title a { - position: relative; - z-index: 1; - padding: 24px 82px 22px 32px; - font: 500 18px/24px "Roboto", Helvetica, Arial, sans-serif; - color: #000; - transition: 1.3s all ease; - letter-spacing: -0.025em; - border-radius: 6px 6px 0 0; -} -.bodywebsite .card-corporate .card-title a .card-arrow:after { - opacity: 0; - visibility: hidden; -} -.bodywebsite .card-corporate .card-title a.collapsed { - border-radius: 6px; -} -.bodywebsite .card-corporate .card-title a.collapsed .card-arrow { - border-radius: 0 6px 6px 0; -} -.bodywebsite .card-corporate .card-title a.collapsed .card-arrow:after { - opacity: 1; - visibility: visible; -} -.bodywebsite .card-corporate .card-arrow { - position: absolute; - top: 0; - bottom: 0; - right: 0; - z-index: 2; - width: 70px; - background: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; - border-radius: 0 6px 0 0; - transition: 1.3s all ease; -} -.bodywebsite .card-corporate .card-arrow:before, -.bodywebsite .card-corporate .card-arrow:after { - content: ''; - position: absolute; - top: 50%; - z-index: 4; - transform: translateY(-50%); - background: #fff; -} -.bodywebsite .card-corporate .card-arrow:before { - width: 14px; - height: 2px; - right: 28px; -} -.bodywebsite .card-corporate .card-arrow:after { - width: 2px; - height: 14px; - right: 34px; -} -.bodywebsite .card-corporate .card-collapse { - position: relative; - z-index: 2; - color: #9f9f9f; - border-radius: 0 0 6px 6px; -} -.bodywebsite .card-corporate .card-body { - padding: 25px 44px 25px 32px; -} -@media (max-width: 767px) { - .bodywebsite .card-corporate .card-title a, - .bodywebsite .card-corporate .card-body { - padding-left: 25px; - } -} -.bodywebsite .card-lg { - position: relative; - padding: 50px 15px; -} -.bodywebsite .card-lg:before { - content: ''; - position: absolute; - top: -45px; - left: 50%; - width: 55px; - height: 55px; - margin-left: -10px; - background: #fff; - transform: translateX(-50%) rotate(-45deg); -} -@media (min-width: 768px) { - .bodywebsite .card-lg { - padding: 90px 35px 100px; - } -} -.bodywebsite table { - background-color: transparent; -} -.bodywebsite caption { - padding-top: 17px 25px 18px; - padding-bottom: 17px 25px 18px; - color: #dedede; - text-align: left; -} -.bodywebsite th { - text-align: left; -} -.bodywebsite .table { - width: 100%; - max-width: 100%; - margin-bottom: 0; - color: #00030a; -} -.bodywebsite .table > thead > tr > th, -.bodywebsite .table > thead > tr > td, -.bodywebsite .table > tbody > tr > th, -.bodywebsite .table > tbody > tr > td, -.bodywebsite .table > tfoot > tr > th, -.bodywebsite .table > tfoot > tr > td { - line-height: 1.71429; - vertical-align: top; - border-top: 0; -} -.bodywebsite .table > tbody > tr > th, -.bodywebsite .table > tbody > tr > td, -.bodywebsite .table > tfoot > tr > th, -.bodywebsite .table > tfoot > tr > td { - padding: 17px 25px 18px; - line-height: 1.71429; - vertical-align: top; - border-bottom: 1px solid #d9d9d9; -} -.bodywebsite .table > thead > tr > th { - font-family: "Playfair Display", Helvetica, Arial, sans-serif; - font-size: 16px; - font-weight: 700; - padding: 26px 25px; - vertical-align: bottom; - background: #f6f7fa; - border-bottom: 0; -} -@media (min-width: 576px) { - .bodywebsite .table > thead > tr > th { - padding: 34px 25px 29px; - } -} -.bodywebsite .table > tfoot > tr > td { - font-weight: 700; -} -.bodywebsite .table > caption + thead > tr:first-child > th, -.bodywebsite .table > caption + thead > tr:first-child > td, -.bodywebsite .table > colgroup + thead > tr:first-child > th, -.bodywebsite .table > colgroup + thead > tr:first-child > td, -.bodywebsite .table > thead:first-child > tr:first-child > th, -.bodywebsite .table > thead:first-child > tr:first-child > td { - border-top: 0; -} -.bodywebsite .table > tbody + tbody { - border-top: 0; -} -.bodywebsite .table .table { - background-color: #fff; -} -.bodywebsite .table-condensed > thead > tr > th, -.bodywebsite .table-condensed > thead > tr > td, -.bodywebsite .table-condensed > tbody > tr > th, -.bodywebsite .table-condensed > tbody > tr > td, -.bodywebsite .table-condensed > tfoot > tr > th, -.bodywebsite .table-condensed > tfoot > tr > td { - padding: 5px; -} -.bodywebsite .table-bordered { - border: 1px solid #d9d9d9; -} -.bodywebsite .table-bordered > thead > tr > th, -.bodywebsite .table-bordered > thead > tr > td, -.bodywebsite .table-bordered > tbody > tr > th, -.bodywebsite .table-bordered > tbody > tr > td, -.bodywebsite .table-bordered > tfoot > tr > th, -.bodywebsite .table-bordered > tfoot > tr > td { - border: 1px solid #d9d9d9; -} -.bodywebsite .table-bordered > thead > tr > th, -.bodywebsite .table-bordered > thead > tr > td { - border-bottom-width: 2px; -} -.bodywebsite .table-primary { - background: #fff; -} -.bodywebsite .table-primary thead > tr > th { - color: #fff; - background: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; -} -.bodywebsite .table-striped > tbody > tr:nth-of-type(even) { - background-color: #f6f7fa; -} -.bodywebsite .table-striped > tbody > tr:nth-of-type(odd) { - background-color: #fff; -} -.bodywebsite .table-striped > tbody > tr > td { - border-bottom: 0; -} -.bodywebsite .table-hover > tbody > tr:hover { - background-color: #f6f7fa; -} -.bodywebsite table col[class*="col-"] { - position: static; - float: none; - display: table-column; -} -.bodywebsite table td[class*="col-"], -.bodywebsite table th[class*="col-"] { - position: static; - float: none; - display: table-cell; -} -.bodywebsite .table-active, -.bodywebsite .table-active > th, -.bodywebsite .table-active > td { - background-color: #f6f7fa; -} -.bodywebsite .table-hover .table-active:hover { - background-color: #e6e8f1; -} -.bodywebsite .table-hover .table-active:hover > td, -.bodywebsite .table-hover .table-active:hover > th { - background-color: #e6e8f1; -} -.bodywebsite .table-success, -.bodywebsite .table-success > th, -.bodywebsite .table-success > td { - background-color: #dff0d8; -} -.bodywebsite .table-hover .table-success:hover { - background-color: #d0e9c6; -} -.bodywebsite .table-hover .table-success:hover > td, -.bodywebsite .table-hover .table-success:hover > th { - background-color: #d0e9c6; -} -.bodywebsite .table-info, -.bodywebsite .table-info > th, -.bodywebsite .table-info > td { - background-color: #d9edf7; -} -.bodywebsite .table-hover .table-info:hover { - background-color: #c4e3f3; -} -.bodywebsite .table-hover .table-info:hover > td, -.bodywebsite .table-hover .table-info:hover > th { - background-color: #c4e3f3; -} -.bodywebsite .table-warning, -.bodywebsite .table-warning > th, -.bodywebsite .table-warning > td { - background-color: #fcf8e3; -} -.bodywebsite .table-hover .table-warning:hover { - background-color: #faf2cc; -} -.bodywebsite .table-hover .table-warning:hover > td, -.bodywebsite .table-hover .table-warning:hover > th { - background-color: #faf2cc; -} -.bodywebsite .table-danger, -.bodywebsite .table-danger > th, -.bodywebsite .table-danger > td { - background-color: #fe4a21; -} -.bodywebsite .table-hover .table-danger:hover { - background-color: #fe3508; -} -.bodywebsite .table-hover .table-danger:hover > td, -.bodywebsite .table-hover .table-danger:hover > th { - background-color: #fe3508; -} -.bodywebsite .table-responsive { - overflow-x: auto; - min-height: 0.01%; -} -@media (max-width: 575px) { - .bodywebsite .table-responsive { - width: 100%; - margin-bottom: 1.28571; - overflow-y: hidden; - -ms-overflow-style: -ms-autohiding-scrollbar; - border: 1px solid #d9d9d9; - } - .bodywebsite .table-responsive > .table { - margin-bottom: 0; - } - .bodywebsite .table-responsive > .table > thead > tr > th, - .bodywebsite .table-responsive > .table > thead > tr > td, - .bodywebsite .table-responsive > .table > tbody > tr > th, - .bodywebsite .table-responsive > .table > tbody > tr > td, - .bodywebsite .table-responsive > .table > tfoot > tr > th, - .bodywebsite .table-responsive > .table > tfoot > tr > td { - white-space: nowrap; - } - .bodywebsite .table-responsive > .table-bordered { - border: 0; - } - .bodywebsite .table-responsive > .table-bordered > thead > tr > th:first-child, - .bodywebsite .table-responsive > .table-bordered > thead > tr > td:first-child, - .bodywebsite .table-responsive > .table-bordered > tbody > tr > th:first-child, - .bodywebsite .table-responsive > .table-bordered > tbody > tr > td:first-child, - .bodywebsite .table-responsive > .table-bordered > tfoot > tr > th:first-child, - .bodywebsite .table-responsive > .table-bordered > tfoot > tr > td:first-child { - border-left: 0; - } - .bodywebsite .table-responsive > .table-bordered > thead > tr > th:last-child, - .bodywebsite .table-responsive > .table-bordered > thead > tr > td:last-child, - .bodywebsite .table-responsive > .table-bordered > tbody > tr > th:last-child, - .bodywebsite .table-responsive > .table-bordered > tbody > tr > td:last-child, - .bodywebsite .table-responsive > .table-bordered > tfoot > tr > th:last-child, - .bodywebsite .table-responsive > .table-bordered > tfoot > tr > td:last-child { - border-right: 0; - } - .bodywebsite .table-responsive > .table-bordered > tbody > tr:last-child > th, - .bodywebsite .table-responsive > .table-bordered > tbody > tr:last-child > td, - .bodywebsite .table-responsive > .table-bordered > tfoot > tr:last-child > th, - .bodywebsite .table-responsive > .table-bordered > tfoot > tr:last-child > td { - border-bottom: 0; - } -} -.bodywebsite .jumbotron-custom { - font-weight: 900; - font-size: 35px; - line-height: 1.2; - letter-spacing: .01em; -} -.bodywebsite .jumbotron-custom > span { - font-size: 31px; - line-height: 1.2; -} -@media (min-width: 768px) { - .bodywebsite .jumbotron-custom { - font-size: 45px; - } - .bodywebsite .jumbotron-custom > span { - font-size: 41px; - } -} -@media (min-width: 992px) { - .bodywebsite .jumbotron-custom { - font-size: 55px; - } - .bodywebsite .jumbotron-custom > span { - font-size: 51px; - } -} -@media (min-width: 1200px) { - .bodywebsite .jumbotron-custom { - font-size: 65px; - } - .bodywebsite .jumbotron-custom > span { - font-size: 61px; - } -} -.bodywebsite [class^="thin-icon-"]:before, -.bodywebsite [class*=" thin-icon-"]:before, -.bodywebsite .thin-ico { - font-family: "Thin Regular"; - font-weight: 400; - font-style: normal; - font-size: inherit; - text-transform: none; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} -.bodywebsite .thin-icon-volume-on:before { - content: '\e800'; -} -.bodywebsite .thin-icon-gift:before { - content: '\e801'; -} -.bodywebsite .thin-icon-cup:before { - content: '\e802'; -} -.bodywebsite .thin-icon-folder:before { - content: '\e803'; -} -.bodywebsite .thin-icon-dublicate:before { - content: '\e804'; -} -.bodywebsite .thin-icon-tag:before { - content: '\e805'; -} -.bodywebsite .thin-icon-chat:before { - content: '\e806'; -} -.bodywebsite .thin-icon-clock:before { - content: '\e807'; -} -.bodywebsite .thin-icon-microphone:before { - content: '\e808'; -} -.bodywebsite .thin-icon-map-marker:before { - content: '\e809'; -} -.bodywebsite .thin-icon-mobile:before { - content: '\e80a'; -} -.bodywebsite .thin-icon-cloud-charge:before { - content: '\e80b'; -} -.bodywebsite .thin-icon-resize:before { - content: '\e80c'; -} -.bodywebsite .thin-icon-cake:before { - content: '\e80d'; -} -.bodywebsite .thin-icon-case:before { - content: '\e80e'; -} -.bodywebsite .thin-icon-address:before { - content: '\e80f'; -} -.bodywebsite .thin-icon-phone-support:before { - content: '\e810'; -} -.bodywebsite .thin-icon-fullscreen:before { - content: '\e811'; -} -.bodywebsite .thin-icon-db:before { - content: '\e812'; -} -.bodywebsite .thin-icon-music:before { - content: '\e813'; -} -.bodywebsite .thin-icon-network:before { - content: '\e814'; -} -.bodywebsite .thin-icon-db-network:before { - content: '\e815'; -} -.bodywebsite .thin-icon-dropbox-upload:before { - content: '\e816'; -} -.bodywebsite .thin-icon-phone-call:before { - content: '\e817'; -} -.bodywebsite .thin-icon-briefcase-2:before { - content: '\e818'; -} -.bodywebsite .thin-icon-card:before { - content: '\e819'; -} -.bodywebsite .thin-icon-support:before { - content: '\e81a'; -} -.bodywebsite .thin-icon-pull:before { - content: '\e81b'; -} -.bodywebsite .thin-icon-desktop:before { - content: '\e81c'; -} -.bodywebsite .thin-icon-pass:before { - content: '\e81d'; -} -.bodywebsite .thin-icon-picture:before { - content: '\e81e'; -} -.bodywebsite .thin-icon-email:before { - content: '\e81f'; -} -.bodywebsite .thin-icon-push:before { - content: '\e820'; -} -.bodywebsite .thin-icon-house:before { - content: '\e821'; -} -.bodywebsite .thin-icon-download:before { - content: '\e822'; -} -.bodywebsite .thin-icon-storage:before { - content: '\e823'; -} -.bodywebsite .thin-icon-milk:before { - content: '\e824'; -} -.bodywebsite .thin-icon-external-right:before { - content: '\e825'; -} -.bodywebsite .thin-icon-email-open:before { - content: '\e826'; -} -.bodywebsite .thin-icon-planet:before { - content: '\e827'; -} -.bodywebsite .thin-icon-pointer:before { - content: '\e828'; -} -.bodywebsite .thin-icon-email-search:before { - content: '\e829'; -} -.bodywebsite .thin-icon-external-left:before { - content: '\e82a'; -} -.bodywebsite .thin-icon-shirt:before { - content: '\e82b'; -} -.bodywebsite .thin-icon-document-edit:before { - content: '\e82c'; -} -.bodywebsite .thin-icon-document-delete:before { - content: '\e82d'; -} -.bodywebsite .thin-icon-money:before { - content: '\e82e'; -} -.bodywebsite .thin-icon-eye:before { - content: '\e82f'; -} -.bodywebsite .thin-icon-settings:before { - content: '\e830'; -} -.bodywebsite .thin-icon-arrow-bottom-right:before { - content: '\e831'; -} -.bodywebsite .thin-icon-arrow-right:before { - content: '\e832'; -} -.bodywebsite .thin-icon-flag:before { - content: '\e833'; -} -.bodywebsite .thin-icon-star:before { - content: '\e834'; -} -.bodywebsite .thin-icon-calculator:before { - content: '\e835'; -} -.bodywebsite .thin-icon-safe:before { - content: '\e836'; -} -.bodywebsite .thin-icon-cart:before { - content: '\e837'; -} -.bodywebsite .thin-icon-bullhorn:before { - content: '\e838'; -} -.bodywebsite .thin-icon-anchor:before { - content: '\e839'; -} -.bodywebsite .thin-icon-globe:before { - content: '\e83a'; -} -.bodywebsite .thin-icon-statistics:before { - content: '\e83b'; -} -.bodywebsite .thin-icon-thumb-up:before { - content: '\e83c'; -} -.bodywebsite .thin-icon-headphones:before { - content: '\e83d'; -} -.bodywebsite .thin-icon-bell:before { - content: '\e83e'; -} -.bodywebsite .thin-icon-study:before { - content: '\e83f'; -} -.bodywebsite .thin-icon-cart-add:before { - content: '\e840'; -} -.bodywebsite .thin-icon-cart-delete:before { - content: '\e841'; -} -.bodywebsite .thin-icon-satelite:before { - content: '\e842'; -} -.bodywebsite .thin-icon-home:before { - content: '\e843'; -} -.bodywebsite .thin-icon-time:before { - content: '\e844'; -} -.bodywebsite .thin-icon-book:before { - content: '\e845'; -} -.bodywebsite .thin-icon-bookmark:before { - content: '\e846'; -} -.bodywebsite .thin-icon-key:before { - content: '\e847'; -} -.bodywebsite .thin-icon-timer:before { - content: '\e848'; -} -.bodywebsite .thin-icon-saturn:before { - content: '\e849'; -} -.bodywebsite .thin-icon-notes:before { - content: '\e84a'; -} -.bodywebsite .thin-icon-ambulance:before { - content: '\e84b'; -} -.bodywebsite .thin-icon-briefcase:before { - content: '\e84c'; -} -.bodywebsite .thin-icon-layers:before { - content: '\e84d'; -} -.bodywebsite .thin-icon-delivery:before { - content: '\e84e'; -} -.bodywebsite .thin-icon-tint:before { - content: '\e84f'; -} -.bodywebsite .thin-icon-trash:before { - content: '\e850'; -} -.bodywebsite .thin-icon-lightbulb:before { - content: '\e851'; -} -.bodywebsite .thin-icon-calendar:before { - content: '\e852'; -} -.bodywebsite .thin-icon-chart:before { - content: '\e853'; -} -.bodywebsite .thin-icon-documents:before { - content: '\e854'; -} -.bodywebsite .thin-icon-checklist:before { - content: '\e855'; -} -.bodywebsite .thin-icon-camera-web:before { - content: '\e856'; -} -.bodywebsite .thin-icon-camera:before { - content: '\e857'; -} -.bodywebsite .thin-icon-lock:before { - content: '\e858'; -} -.bodywebsite .thin-icon-umbrella:before { - content: '\e859'; -} -.bodywebsite .thin-icon-user:before { - content: '\e85a'; -} -.bodywebsite .thin-icon-love:before { - content: '\e85b'; -} -.bodywebsite .thin-icon-hanger:before { - content: '\e85c'; -} -.bodywebsite .thin-icon-car:before { - content: '\e85d'; -} -.bodywebsite .thin-icon-cloth:before { - content: '\e85e'; -} -.bodywebsite .thin-icon-box:before { - content: '\e85f'; -} -.bodywebsite .thin-icon-attachment:before { - content: '\e860'; -} -.bodywebsite .thin-icon-cd:before { - content: '\e861'; -} -.bodywebsite .thin-icon-love-broken:before { - content: '\e862'; -} -.bodywebsite .thin-icon-volume-off:before { - content: '\e863'; -} -.bodywebsite .slideOutUp { - -webkit-animation-name: slideOutUp; - animation-name: slideOutUp; -} -.bodywebsite .counter { - font: 900 45px/45px "Roboto", Helvetica, Arial, sans-serif; - margin-bottom: 0; - color: #fff; -} -.bodywebsite .counter-bold { - font-weight: 700; -} -.bodywebsite .counter-k:after { - content: 'k'; -} -.bodywebsite * + .counter-title { - margin-top: 0; -} -.bodywebsite .countdown-default { - color: #000; -} -.bodywebsite .countdown-default .countdown-section { - position: relative; - display: inline-block; - min-width: 90px; - padding: 0 10px; - text-align: center; -} -.bodywebsite .countdown-default .countdown-section > * { - display: block; -} -.bodywebsite .countdown-default .countdown-section:after { - position: absolute; - top: 35%; - transform: translateY(-35%); - border-radius: 20px; - background: #000; -} -.bodywebsite .countdown-default .countdown-section:nth-last-child(n + 3):after { - content: ''; - right: -2px; - width: 5px; - height: 5px; -} -@media (max-width: 767px) { - .bodywebsite .countdown-default .countdown-section:last-child { - display: none; - } -} -.bodywebsite .countdown-default .countdown-amount { - font-family: Helvetica, Arial, sans-serif; - font-size: 30px; - font-weight: 900; - line-height: 1; -} -.bodywebsite .countdown-default .countdown-period { - margin-top: 10px; - font-size: 12px; - text-transform: uppercase; - letter-spacing: -0.025em; - color: rgba(0, 0, 0, 0.4); -} -.bodywebsite .countdown-default.countdown-inverse .countdown-section:after { - background: #fff; -} -.bodywebsite .countdown-default.countdown-inverse .countdown-period { - color: rgba(255, 255, 255, 0.4); -} -@media (min-width: 768px) { - .bodywebsite .countdown-default .countdown-section { - min-width: 150px; - } - .bodywebsite .countdown-default .countdown-section:not(:last-child):after { - content: ''; - top: 50%; - right: -5px; - transform: translateY(-50%); - width: 10px; - height: 10px; - } - .bodywebsite .countdown-default .countdown-amount { - font-size: 50px; - } - .bodywebsite .countdown-default .countdown-period { - font-size: 14px; - } -} -@media (min-width: 992px) { - .bodywebsite .countdown-default .countdown-section { - min-width: 200px; - } - .bodywebsite .countdown-default .countdown-amount { - font-size: 72px; - } -} -.bodywebsite .countdown-inverse { - color: #fff; -} -.bodywebsite .owl-carousel .animated { - -webkit-animation-duration: 1000ms; - animation-duration: 1000ms; - -webkit-animation-fill-mode: both; - animation-fill-mode: both; -} -.bodywebsite .owl-carousel .owl-animated-in { - z-index: 0; -} -.bodywebsite .owl-carousel .owl-animated-out { - z-index: 1; -} -.bodywebsite .owl-carousel .fadeOut { - -webkit-animation-name: fadeOut; - animation-name: fadeOut; -} -@-webkit-keyframes fadeOut { - 0% { - opacity: 1; - } - 100% { - opacity: 0; - } -} -@keyframes fadeOut { - 0% { - opacity: 1; - } - 100% { - opacity: 0; - } -} -.bodywebsite .owl-height { - -webkit-transition: height 500ms ease-in-out; - -moz-transition: height 500ms ease-in-out; - -ms-transition: height 500ms ease-in-out; - -o-transition: height 500ms ease-in-out; - transition: height 500ms ease-in-out; -} -.bodywebsite .owl-carousel { - display: none; - width: 100%; - -webkit-tap-highlight-color: transparent; - /* position relative and z-index fix webkit rendering fonts issue */ - position: relative; - z-index: 1; -} -.bodywebsite .owl-carousel .owl-stage { - position: relative; - -ms-touch-action: pan-Y; -} -.bodywebsite .owl-carousel .owl-stage:after { - content: "."; - display: block; - clear: both; - visibility: hidden; - line-height: 0; - height: 0; -} -.bodywebsite .owl-carousel .owl-stage-outer { - position: relative; - overflow: hidden; - /* fix for flashing background */ - -webkit-transform: translate3d(0px, 0px, 0px); -} -.bodywebsite .owl-carousel .owl-controls .owl-nav .owl-prev, -.bodywebsite .owl-carousel .owl-controls .owl-nav .owl-next, -.bodywebsite .owl-carousel .owl-controls .owl-dot { - cursor: pointer; - cursor: hand; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} -.bodywebsite .owl-carousel.owl-loaded { - display: block; -} -.bodywebsite .owl-carousel.owl-loading { - opacity: 0; - display: block; -} -.bodywebsite .owl-carousel.owl-hidden { - opacity: 0; -} -.bodywebsite .owl-carousel .owl-refresh .owl-item { - display: none; -} -.bodywebsite .owl-carousel .owl-item { - position: relative; - min-height: 1px; - float: left; - -webkit-tap-highlight-color: transparent; - -webkit-touch-callout: none; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} -.bodywebsite .owl-carousel.owl-text-select-on .owl-item { - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} -.bodywebsite .owl-carousel .owl-grab { - cursor: move; - cursor: -webkit-grab; - cursor: grab; -} -.bodywebsite .owl-carousel.owl-rtl { - direction: rtl; -} -.bodywebsite .owl-carousel.owl-rtl .owl-item { - float: right; -} -.bodywebsite .no-js .owl-carousel { - display: block; -} -.bodywebsite .owl-carousel .owl-item .owl-lazy { - opacity: 0; - -webkit-transition: opacity 400ms ease; - -moz-transition: opacity 400ms ease; - -ms-transition: opacity 400ms ease; - -o-transition: opacity 400ms ease; - transition: opacity 400ms ease; -} -.bodywebsite .owl-carousel .owl-video-wrapper { - position: relative; - height: 100%; - background: #000; -} -.bodywebsite .owl-carousel .owl-video-play-icon { - position: absolute; - height: 80px; - width: 80px; - left: 50%; - top: 50%; - margin-left: -40px; - margin-top: -40px; - font: 400 40px/80px 'FontAwesome'; - cursor: pointer; - z-index: 1; - -webkit-transition: scale 100ms ease; - -moz-transition: scale 100ms ease; - -ms-transition: scale 100ms ease; - -o-transition: scale 100ms ease; - transition: scale 100ms ease; -} -.bodywebsite .owl-carousel .owl-video-play-icon:before { - content: '\f144'; -} -.bodywebsite .owl-carousel .owl-video-play-icon:hover { - -webkit-transform: scale(1.3); - transform: scale(1.3); -} -.bodywebsite .owl-carousel .owl-video-playing .owl-video-tn, -.bodywebsite .owl-carousel .owl-video-playing .owl-video-play-icon { - display: none; -} -.bodywebsite .owl-carousel .owl-video-tn { - opacity: 0; - height: 100%; - background-position: center center; - background-repeat: no-repeat; - -webkit-background-size: contain; - -moz-background-size: contain; - -o-background-size: contain; - background-size: contain; - -webkit-transition: opacity 400ms ease; - -moz-transition: opacity 400ms ease; - -ms-transition: opacity 400ms ease; - -o-transition: opacity 400ms ease; - transition: opacity 400ms ease; -} -.bodywebsite .owl-carousel .owl-video-frame { - position: relative; - z-index: 1; -} -.bodywebsite .owl-carousel .owl-stage { - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-flex-direction: row; - -ms-flex-direction: row; - flex-direction: row; - -webkit-flex-wrap: nowrap; - -ms-flex-wrap: nowrap; - flex-wrap: nowrap; - -webkit-align-items: stretch; - -ms-flex-align: stretch; - align-items: stretch; -} -.bodywebsite .owl-carousel .owl-item { - float: none; - display: -webkit-inline-box; - display: -webkit-inline-flex; - display: -ms-inline-flexbox; - display: inline-flex; - -webkit-flex-grow: 1; - -ms-flex-positive: 1; - flex-grow: 1; - -webkit-flex-shrink: 0; - -ms-flex-negative: 0; - flex-shrink: 0; - -webkit-align-items: stretch; - -ms-flex-align: stretch; - align-items: stretch; -} -.bodywebsite .owl-carousel .item { - width: 100%; -} -.bodywebsite .owl-carousel-center .owl-item { - -webkit-justify-content: center; - -ms-flex-pack: center; - justify-content: center; -} -.bodywebsite .owl-carousel-center .owl-stage { - -webkit-justify-content: space-around; - -ms-flex-pack: distribute; - justify-content: space-around; -} -.bodywebsite .owl-prev, -.bodywebsite .owl-next { - position: absolute; - top: 50%; - transform: translateY(-50%); - color: #000; - transition: .22s; -} -.bodywebsite .owl-prev.disabled, -.bodywebsite .owl-next.disabled { - opacity: 0; -} -.bodywebsite .owl-prev:hover, -.bodywebsite .owl-next:hover { - color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; -} -.bodywebsite .owl-prev { - left: 0; -} -.bodywebsite .owl-prev:before { - content: '\e5c4'; -} -.bodywebsite .owl-next { - right: 0; -} -.bodywebsite .owl-next:before { - content: '\e5c8'; -} -.bodywebsite .owl-dots { - text-align: center; -} -.bodywebsite .owl-dot { - display: inline-block; -} -.bodywebsite .owl-numbering-default { - padding-bottom: 15px; -} -.bodywebsite .owl-numbering-default > * { - display: inline-block; -} -.bodywebsite .owl-numbering-default .numbering-current { - min-width: 16px; - font: 700 25px "Roboto", Helvetica, Arial, sans-serif; - color: #000; - transition: .33s all ease; -} -.bodywebsite .owl-numbering-default .numbering-separator { - position: relative; - display: inline-block; - margin: 0 10px; -} -.bodywebsite .owl-numbering-default .numbering-separator:after { - position: absolute; - top: -23px; - left: -12px; - content: ''; - width: 2px; - height: 51px; - transform-origin: 50% 75%; - transform: rotate(30deg); - background: rgba(0, 0, 0, 0.3); -} -.bodywebsite .owl-numbering-default .numbering-count { - position: relative; - top: 19px; - left: -7px; - font: 400 18px "Roboto", Helvetica, Arial, sans-serif; - color: rgba(0, 0, 0, 0.3); -} -.bodywebsite .owl-carousel-inverse .owl-next, -.bodywebsite .owl-carousel-inverse .owl-prev { - color: #fff; -} -.bodywebsite .owl-carousel-inverse .owl-next:hover, -.bodywebsite .owl-carousel-inverse .owl-prev:hover { - color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; -} -.bodywebsite .owl-carousel-inverse .owl-numbering-default .numbering-current { - color: #fff; -} -.bodywebsite .owl-carousel-inverse .owl-numbering-default .numbering-separator:after { - background: rgba(255, 255, 255, 0.3); -} -.bodywebsite .owl-carousel-inverse .owl-numbering-default .numbering-count { - color: rgba(255, 255, 255, 0.3); -} -.bodywebsite .owl-carousel-dark .owl-next, -.bodywebsite .owl-carousel-dark .owl-prev { - color: #000; -} -.bodywebsite .owl-carousel-dark .owl-next:hover, -.bodywebsite .owl-carousel-dark .owl-prev:hover { - color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; -} -.bodywebsite .owl-nav-position-numbering .owl-next, -.bodywebsite .owl-nav-position-numbering .owl-prev { - top: auto; - bottom: -53px; - transform: none; -} -.bodywebsite .owl-nav-position-numbering .owl-prev { - left: auto; - right: calc(92%); -} -.bodywebsite .owl-nav-position-numbering .owl-next { - right: auto; - left: calc(92%); -} -.bodywebsite .owl-nav-position-numbering + .owl-numbering { - margin-top: 15px; -} -.bodywebsite .owl-nav-bottom-left .owl-nav { - margin-top: 15px; -} -.bodywebsite .owl-nav-bottom-left .owl-next, -.bodywebsite .owl-nav-bottom-left .owl-prev { - display: inline-block; - position: static; - top: auto; - transform: none; -} -.bodywebsite .owl-nav-bottom-left .owl-prev { - left: auto; -} -.bodywebsite .owl-nav-bottom-left .owl-next { - right: auto; - margin-left: 10px; -} -.bodywebsite .owl-style-minimal .item { - width: 100%; -} -.bodywebsite .owl-style-minimal .item img { - width: 100%; -} -.bodywebsite .owl-style-minimal .owl-dots { - margin-top: 10px; - text-align: center; -} -.bodywebsite .owl-style-minimal .owl-dot { - width: 8px; - height: 8px; - border-radius: 10px; - background: #dedede; - transition: .33s all ease; -} -.bodywebsite .owl-style-minimal .owl-dot.active, -.bodywebsite .owl-style-minimal .owl-dot:hover { - background: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; -} -.bodywebsite .owl-style-minimal .owl-dot + .owl-dot { - margin-left: 8px; -} -.bodywebsite .owl-style-minimal-inverse .owl-dot { - background: #74787C; -} -@media (min-width: 992px) { - .bodywebsite .owl-spacing-1 { - padding-right: 60px; - padding-left: 60px; - } -} -@media (min-width: 1200px) { - .bodywebsite .owl-spacing-1 { - padding: 0; - } - .bodywebsite .owl-spacing-1 .owl-item { - padding-right: 41px; - padding-left: 41px; - } - .bodywebsite .owl-spacing-1 .owl-prev { - left: -6%; - } - .bodywebsite .owl-spacing-1 .owl-next { - right: -6%; - } -} -.bodywebsite .owl-nav-classic .owl-nav { - display: none; -} -@media (min-width: 992px) { - .bodywebsite .owl-nav-classic .owl-dots { - display: none !important; - } - .bodywebsite .owl-nav-classic .owl-nav { - display: block; - } - .bodywebsite .owl-nav-classic .owl-nav .owl-prev, - .bodywebsite .owl-nav-classic .owl-nav .owl-next { - top: 39%; - transform: translateY(-45%); - width: 45px; - height: 45px; - line-height: 45px; - color: #fff; - background: rgba(255, 255, 255, 0.2); - text-align: center; - font: 400 20px/45px 'fl-flat-icons-set-2'; - } - .bodywebsite .owl-nav-classic .owl-nav .owl-prev:hover, - .bodywebsite .owl-nav-classic .owl-nav .owl-next:hover { - color: #fff; - background: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; - } - .bodywebsite .owl-nav-classic .owl-nav .owl-prev { - padding-right: 3px; - } - .bodywebsite .owl-nav-classic .owl-nav .owl-prev:before { - position: relative; - display: inline-block; - content: '\e015'; - transform: scale(-1, 1); - } - .bodywebsite .owl-nav-classic .owl-nav .owl-next { - padding-left: 3px; - } - .bodywebsite .owl-nav-classic .owl-nav .owl-next:before { - content: '\e015'; - } -} -.bodywebsite .owl-nav-modern .owl-nav { - display: none; -} -@media (min-width: 1400px) { - .bodywebsite .owl-nav-modern .owl-dots { - display: none !important; - } - .bodywebsite .owl-nav-modern .owl-nav { - display: block; - } - .bodywebsite .owl-nav-modern .owl-nav .owl-prev, - .bodywebsite .owl-nav-modern .owl-nav .owl-next { - top: 50%; - width: 48px; - height: 48px; - background: url("medias/image/ref; ?>/chevron-left.svg") no-repeat top left; - background-size: 48px 48px; - transition: 180ms ease-in-out; - } - .bodywebsite .owl-nav-modern .owl-nav .owl-prev:before, - .bodywebsite .owl-nav-modern .owl-nav .owl-next:before { - content: ''; - } - .bodywebsite .owl-nav-modern .owl-nav .owl-prev:hover, - .bodywebsite .owl-nav-modern .owl-nav .owl-next:hover { - opacity: 0.5; - } - .bodywebsite .owl-nav-modern .owl-nav .owl-prev { - left: -58px; - } - .bodywebsite .owl-nav-modern .owl-nav .owl-next { - right: -50px; - } - .bodywebsite .owl-nav-modern .owl-nav .owl-next { - -webkit-transform: rotate(180deg); - transform: rotate(180deg); - } -} -@-webkit-keyframes rd-navbar-slide-down { - 0% { - transform: translateY(-100%); - } - 100% { - transform: translateY(0); - } -} -@keyframes rd-navbar-slide-down { - 0% { - transform: translateY(-100%); - } - 100% { - transform: translateY(0); - } -} -@-webkit-keyframes rd-navbar-slide-up { - 0% { - transform: translateY(0); - } - 100% { - transform: translateY(-100%); - } -} -@keyframes rd-navbar-slide-up { - 0% { - transform: translateY(0); - } - 100% { - transform: translateY(-100%); - } -} -.bodywebsite .rd-navbar-wrap, -.bodywebsite .rd-navbar-static .rd-navbar-megamenu, -.bodywebsite .rd-navbar-fullwidth .rd-navbar-megamenu, -.bodywebsite .rd-navbar-static .rd-navbar-inner, -.bodywebsite .rd-navbar-fixed .rd-navbar-nav-wrap, -.bodywebsite .rd-navbar-fixed .rd-navbar-submenu, -.bodywebsite .rd-navbar-corporate-dark.rd-navbar-static .rd-navbar-group, -.bodywebsite .rd-navbar-corporate-light .rd-navbar-search .rd-navbar-search-toggle, -.bodywebsite .rd-navbar-corporate-light .rd-navbar-search .rd-navbar-search-toggle:before, -.bodywebsite .rd-navbar-corporate-light .rd-navbar-search .rd-navbar-search-toggle:after, -.bodywebsite .rd-navbar-corporate-light.rd-navbar-fixed .rd-navbar-search .rd-search, -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-navbar-group, -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search { - transition: 0.3s all cubic-bezier(0.785, 0.135, 0.15, 0.86); -} -.bodywebsite .rd-navbar, -.bodywebsite .rd-navbar.rd-navbar--is-clone { - display: none; -} -.bodywebsite .rd-navbar-fixed, -.bodywebsite .rd-navbar-static, -.bodywebsite .rd-navbar-fullwidth, -.bodywebsite .rd-navbar-sidebar { - display: block; -} -.bodywebsite .rd-navbar--no-transition, -.bodywebsite .rd-navbar--no-transition * { - transition: none !important; -} -.bodywebsite .rd-navbar-wrap { - position: relative; - z-index: 10; -} -.bodywebsite .rd-navbar-wrap, -.bodywebsite .rd-navbar, -.bodywebsite .rd-navbar-brand, -.bodywebsite .rd-navbar-slogan, -.bodywebsite .rd-navbar-dropdown, -.bodywebsite .rd-navbar-megamenu, -.bodywebsite .rd-navbar-collapse-items, -.bodywebsite .brand-name, -.bodywebsite .rd-navbar-nav, -.bodywebsite .rd-navbar-panel, -.bodywebsite .rd-navbar-search-form-input, -.bodywebsite .rd-navbar-search-form-submit, -.bodywebsite .rd-navbar-search-toggle, -.bodywebsite .rd-navbar-live-search-results, -.bodywebsite .rd-navbar-search-form { - transition: 0.33s all ease-out; -} -.bodywebsite .rd-navbar-collapse-toggle { - display: inline-block; - position: relative; - width: 48px; - height: 48px; - line-height: 48px; - cursor: pointer; - color: #00030a; - display: none; -} -.bodywebsite .rd-navbar-collapse-toggle span { - top: 50%; - margin-top: -3px; -} -.bodywebsite .rd-navbar-collapse-toggle span, -.bodywebsite .rd-navbar-collapse-toggle span:before, -.bodywebsite .rd-navbar-collapse-toggle span:after { - position: absolute; - width: 6px; - height: 6px; - line-height: 6px; - text-align: center; - background: #00030a; - left: 50%; - margin-left: -3px; - border-radius: 50%; - transition: .3s all ease; -} -.bodywebsite .rd-navbar-collapse-toggle span:before, -.bodywebsite .rd-navbar-collapse-toggle span:after { - content: ''; -} -.bodywebsite .rd-navbar-collapse-toggle span:before { - bottom: 100%; - margin-bottom: 3px; -} -.bodywebsite .rd-navbar-collapse-toggle span:after { - top: 100%; - margin-top: 3px; -} -.bodywebsite .rd-navbar-collapse-toggle.active span { - transform: scale(0.7); -} -.bodywebsite .rd-navbar-collapse-toggle.active span:before { - transform: translateY(18px); -} -.bodywebsite .rd-navbar-collapse-toggle.active span:after { - transform: translateY(-18px); -} -.bodywebsite .rd-navbar--has-sidebar body { - padding-left: 270px; -} -.bodywebsite .rd-navbar--is-stuck { - border-bottom: 1px solid #e5e7e9; -} -.bodywebsite .rd-navbar.rd-navbar-fixed + .rd-navbar.rd-navbar--is-clone, -.bodywebsite .rd-navbar.rd-navbar-sidebar + .rd-navbar.rd-navbar--is-clone { - display: none; -} -.bodywebsite .rd-navbar { - display: none; - background: #fff; - box-shadow: none; -} -.bodywebsite .rd-navbar-toggle { - display: inline-block; - position: relative; - width: 48px; - height: 48px; - line-height: 48px; - cursor: pointer; - color: #000; - background-color: transparent; - border: none; - display: none; -} -.bodywebsite .rd-navbar-toggle span { - position: relative; - display: block; - margin: auto; - transition: .3s all ease; -} -.bodywebsite .rd-navbar-toggle span:after, -.bodywebsite .rd-navbar-toggle span:before { - content: ""; - position: absolute; - left: 0; - top: -8px; - transition: .3s all ease; -} -.bodywebsite .rd-navbar-toggle span:after { - top: 8px; -} -.bodywebsite .rd-navbar-toggle span:after, -.bodywebsite .rd-navbar-toggle span:before, -.bodywebsite .rd-navbar-toggle span { - width: 24px; - height: 4px; - background-color: #000; - backface-visibility: hidden; - border-radius: 2px; -} -.bodywebsite .rd-navbar-toggle span { - transform: rotate(180deg); -} -.bodywebsite .rd-navbar-toggle span:before, -.bodywebsite .rd-navbar-toggle span:after { - transform-origin: 1.71429px center; -} -.bodywebsite .rd-navbar-toggle.active span { - transform: rotate(360deg); -} -.bodywebsite .rd-navbar-toggle.active span:before, -.bodywebsite .rd-navbar-toggle.active span:after { - top: 0; - width: 15px; -} -.bodywebsite .rd-navbar-toggle.active span:before { - -webkit-transform: rotate3d(0, 0, 1, -40deg); - transform: rotate3d(0, 0, 1, -40deg); -} -.bodywebsite .rd-navbar-toggle.active span:after { - -webkit-transform: rotate3d(0, 0, 1, 40deg); - transform: rotate3d(0, 0, 1, 40deg); -} -.bodywebsite .rd-navbar-toggle:focus { - outline: none; -} -.bodywebsite .rd-navbar-brand { - transition: none !important; -} -.bodywebsite .rd-navbar-brand svg { - fill: #000; -} -.bodywebsite .rd-navbar-search .rd-navbar-search-toggle, -.bodywebsite .rd-navbar-search .rd-search-submit, -.bodywebsite .buttonwithnoborder { - background: none; - border: none; - display: inline-block; - padding: 0; - outline: none; - outline-offset: 0; - cursor: pointer; - -webkit-appearance: none; -} -.bodywebsite .rd-navbar-search .rd-navbar-search-toggle::-moz-focus-inner, -.bodywebsite .rd-navbar-search .rd-search-submit::-moz-focus-inner { - border: none; - padding: 0; -} -.bodywebsite .rd-navbar-search .form-input::-ms-clear { - display: none; -} -.bodywebsite .rd-navbar-search-toggle { - display: inline-block; - width: 36px; - height: 36px; - text-align: center; - font: 400 18px/36px "FontAwesome"; -} -.bodywebsite .rd-navbar-search-toggle:before { - content: '\f002'; - position: absolute; - left: 0; - top: 0; -} -.bodywebsite .rd-navbar-search-toggle:after { - display: none; -} -.bodywebsite .rd-navbar-aside { - pointer-events: none; -} -.bodywebsite .rd-navbar-aside > * { - pointer-events: auto; -} -.bodywebsite .rd-navbar-aside-toggle { - display: none; - pointer-events: auto; -} -.bodywebsite .rd-navbar-static .rd-navbar-search-form-input input, -.bodywebsite .rd-navbar-sidebar .rd-navbar-search-form-input input, -.bodywebsite .rd-navbar-fullwidth .rd-navbar-search-form-input input { - width: 100%; - padding: 0 10px; - font-size: 16px; -} -.bodywebsite .rd-navbar-static:after, -.bodywebsite .rd-navbar-fullwidth:after { - content: ''; - background: #fff; -} -.bodywebsite .rd-navbar-static .rd-navbar-brand, -.bodywebsite .rd-navbar-static .rd-navbar-nav > li > a, -.bodywebsite .rd-navbar-static .rd-navbar-search-toggle, -.bodywebsite .rd-navbar-fullwidth .rd-navbar-brand, -.bodywebsite .rd-navbar-fullwidth .rd-navbar-nav > li > a, -.bodywebsite .rd-navbar-fullwidth .rd-navbar-search-toggle { - position: relative; - z-index: 2; -} -.bodywebsite .rd-navbar-static .rd-navbar-inner, -.bodywebsite .rd-navbar-fullwidth .rd-navbar-inner { - position: relative; - max-width: 1200px; - padding-left: 15px; - padding-right: 15px; - margin-left: auto; - margin-right: auto; -} -.bodywebsite .rd-navbar-static .rd-navbar-nav > li > a, -.bodywebsite .rd-navbar-fullwidth .rd-navbar-nav > li > a { - position: relative; - padding: 5px 0; - font-size: 13px; - line-height: 1.2; - color: #00030a; - background: transparent; -} -.bodywebsite .rd-navbar-static .rd-navbar-nav > li > a .label, -.bodywebsite .rd-navbar-fullwidth .rd-navbar-nav > li > a .label { - position: absolute; - left: 0; - margin: -18px 0 0 0; -} -@media (min-width: 1200px) { - .bodywebsite .rd-navbar-static .rd-navbar-nav > li > a, - .bodywebsite .rd-navbar-fullwidth .rd-navbar-nav > li > a { - font-size: 14px; - } -} -.bodywebsite .rd-navbar-static .rd-navbar-nav > li.active > a, -.bodywebsite .rd-navbar-fullwidth .rd-navbar-nav > li.active > a { - color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; - background: transparent; -} -.bodywebsite .rd-navbar-static .rd-navbar-nav > li.focus > a, -.bodywebsite .rd-navbar-static .rd-navbar-nav > li > a:hover, -.bodywebsite .rd-navbar-fullwidth .rd-navbar-nav > li.focus > a, -.bodywebsite .rd-navbar-fullwidth .rd-navbar-nav > li > a:hover { - color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; - background: transparent; -} -.bodywebsite .rd-navbar-static .rd-navbar-nav .rd-navbar-submenu > .rd-navbar-dropdown, -.bodywebsite .rd-navbar-static .rd-navbar-nav .rd-navbar-submenu > .rd-navbar-megamenu, -.bodywebsite .rd-navbar-fullwidth .rd-navbar-nav .rd-navbar-submenu > .rd-navbar-dropdown, -.bodywebsite .rd-navbar-fullwidth .rd-navbar-nav .rd-navbar-submenu > .rd-navbar-megamenu { - opacity: 0; - visibility: hidden; - font-size: 14px; -} -.bodywebsite .rd-navbar-static .rd-navbar-nav .rd-navbar-submenu.focus, -.bodywebsite .rd-navbar-fullwidth .rd-navbar-nav .rd-navbar-submenu.focus { - opacity: 1; - visibility: visible; -} -.bodywebsite .rd-navbar-static .rd-navbar-nav > .rd-navbar-submenu > .rd-navbar-dropdown, -.bodywebsite .rd-navbar-static .rd-navbar-nav > .rd-navbar-submenu > .rd-navbar-megamenu, -.bodywebsite .rd-navbar-fullwidth .rd-navbar-nav > .rd-navbar-submenu > .rd-navbar-dropdown, -.bodywebsite .rd-navbar-fullwidth .rd-navbar-nav > .rd-navbar-submenu > .rd-navbar-megamenu { - transform: translateY(30px); -} -.bodywebsite .rd-navbar-static .rd-navbar-nav > .rd-navbar-submenu.opened > .rd-navbar-dropdown, -.bodywebsite .rd-navbar-static .rd-navbar-nav > .rd-navbar-submenu.opened > .rd-navbar-megamenu, -.bodywebsite .rd-navbar-static .rd-navbar-nav > .rd-navbar-submenu.focus > .rd-navbar-dropdown, -.bodywebsite .rd-navbar-static .rd-navbar-nav > .rd-navbar-submenu.focus > .rd-navbar-megamenu, -.bodywebsite .rd-navbar-fullwidth .rd-navbar-nav > .rd-navbar-submenu.opened > .rd-navbar-dropdown, -.bodywebsite .rd-navbar-fullwidth .rd-navbar-nav > .rd-navbar-submenu.opened > .rd-navbar-megamenu, -.bodywebsite .rd-navbar-fullwidth .rd-navbar-nav > .rd-navbar-submenu.focus > .rd-navbar-dropdown, -.bodywebsite .rd-navbar-fullwidth .rd-navbar-nav > .rd-navbar-submenu.focus > .rd-navbar-megamenu { - transform: translateY(0); -} -.bodywebsite .rd-navbar-static .rd-navbar-nav > .rd-navbar-submenu .rd-navbar-submenu > .rd-navbar-dropdown, -.bodywebsite .rd-navbar-fullwidth .rd-navbar-nav > .rd-navbar-submenu .rd-navbar-submenu > .rd-navbar-dropdown { - transform: translateX(-20px); -} -.bodywebsite .rd-navbar-static .rd-navbar-nav > .rd-navbar-submenu .rd-navbar-submenu.focus > .rd-navbar-dropdown, -.bodywebsite .rd-navbar-static .rd-navbar-nav > .rd-navbar-submenu .rd-navbar-submenu.opened > .rd-navbar-dropdown, -.bodywebsite .rd-navbar-fullwidth .rd-navbar-nav > .rd-navbar-submenu .rd-navbar-submenu.focus > .rd-navbar-dropdown, -.bodywebsite .rd-navbar-fullwidth .rd-navbar-nav > .rd-navbar-submenu .rd-navbar-submenu.opened > .rd-navbar-dropdown { - transform: translateX(0); -} -.bodywebsite .rd-navbar-static .rd-navbar-nav > .rd-navbar-submenu .rd-navbar-submenu.focus > .rd-navbar-dropdown, -.bodywebsite .rd-navbar-static .rd-navbar-nav > .rd-navbar-submenu .rd-navbar-submenu.opened > .rd-navbar-dropdown, -.bodywebsite .rd-navbar-fullwidth .rd-navbar-nav > .rd-navbar-submenu .rd-navbar-submenu.focus > .rd-navbar-dropdown, -.bodywebsite .rd-navbar-fullwidth .rd-navbar-nav > .rd-navbar-submenu .rd-navbar-submenu.opened > .rd-navbar-dropdown { - display: block; -} -.bodywebsite .rd-navbar-static .rd-navbar-nav > li, -.bodywebsite .rd-navbar-fullwidth .rd-navbar-nav > li { - display: inline-block; -} -.bodywebsite .rd-navbar-static .rd-navbar-nav li.rd-navbar--has-dropdown, -.bodywebsite .rd-navbar-fullwidth .rd-navbar-nav li.rd-navbar--has-dropdown { - position: relative; -} -.bodywebsite .rd-navbar-static .rd-navbar-nav li.focus > .rd-navbar-dropdown, -.bodywebsite .rd-navbar-static .rd-navbar-nav li.focus > .rd-navbar-megamenu, -.bodywebsite .rd-navbar-static .rd-navbar-nav li.opened > .rd-navbar-dropdown, -.bodywebsite .rd-navbar-static .rd-navbar-nav li.opened > .rd-navbar-megamenu, -.bodywebsite .rd-navbar-fullwidth .rd-navbar-nav li.focus > .rd-navbar-dropdown, -.bodywebsite .rd-navbar-fullwidth .rd-navbar-nav li.focus > .rd-navbar-megamenu, -.bodywebsite .rd-navbar-fullwidth .rd-navbar-nav li.opened > .rd-navbar-dropdown, -.bodywebsite .rd-navbar-fullwidth .rd-navbar-nav li.opened > .rd-navbar-megamenu { - opacity: 1; - visibility: visible; - transform: translateY(0); -} -.bodywebsite .rd-navbar-static .rd-navbar-nav > li > .rd-navbar-dropdown, -.bodywebsite .rd-navbar-fullwidth .rd-navbar-nav > li > .rd-navbar-dropdown { - position: absolute; - left: 0; - z-index: 5; - display: block; - margin-top: 27px; - text-align: left; - background: #fff; -} -.bodywebsite .rd-navbar-static .rd-navbar-list li, -.bodywebsite .rd-navbar-fullwidth .rd-navbar-list li { - padding-left: 5px; - padding-right: 5px; -} -.bodywebsite .rd-navbar-static .rd-navbar-dropdown > li > a, -.bodywebsite .rd-navbar-static .rd-navbar-list > li > a, -.bodywebsite .rd-navbar-fullwidth .rd-navbar-dropdown > li > a, -.bodywebsite .rd-navbar-fullwidth .rd-navbar-list > li > a { - position: relative; - display: block; - width: 100%; - padding-left: 0; - padding-right: 14px; - font-size: 14px; - line-height: 1.3; -} -.bodywebsite .rd-navbar-static .rd-navbar-dropdown > li > a, -.bodywebsite .rd-navbar-static .rd-navbar-dropdown > li > a:before, -.bodywebsite .rd-navbar-static .rd-navbar-list > li > a, -.bodywebsite .rd-navbar-static .rd-navbar-list > li > a:before, -.bodywebsite .rd-navbar-fullwidth .rd-navbar-dropdown > li > a, -.bodywebsite .rd-navbar-fullwidth .rd-navbar-dropdown > li > a:before, -.bodywebsite .rd-navbar-fullwidth .rd-navbar-list > li > a, -.bodywebsite .rd-navbar-fullwidth .rd-navbar-list > li > a:before { - transition: .33s all ease; -} -.bodywebsite .rd-navbar-static .rd-navbar-dropdown > li > a:before, -.bodywebsite .rd-navbar-static .rd-navbar-list > li > a:before, -.bodywebsite .rd-navbar-fullwidth .rd-navbar-dropdown > li > a:before, -.bodywebsite .rd-navbar-fullwidth .rd-navbar-list > li > a:before { - position: absolute; - top: 0; - left: -6px; - content: '\f105'; - font-family: 'FontAwesome'; - font-size: 16px; - line-height: inherit; - color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; - opacity: 0; - visibility: hidden; -} -.bodywebsite .rd-navbar-static .rd-navbar-dropdown > li > a:hover, -.bodywebsite .rd-navbar-static .rd-navbar-list > li > a:hover, -.bodywebsite .rd-navbar-fullwidth .rd-navbar-dropdown > li > a:hover, -.bodywebsite .rd-navbar-fullwidth .rd-navbar-list > li > a:hover { - padding-left: 14px; - padding-right: 0; -} -.bodywebsite .rd-navbar-static .rd-navbar-dropdown > li > a:hover:before, -.bodywebsite .rd-navbar-static .rd-navbar-list > li > a:hover:before, -.bodywebsite .rd-navbar-fullwidth .rd-navbar-dropdown > li > a:hover:before, -.bodywebsite .rd-navbar-fullwidth .rd-navbar-list > li > a:hover:before { - left: 0; - opacity: 1; - visibility: visible; -} -.bodywebsite .rd-navbar-static .rd-navbar-dropdown > li > a, -.bodywebsite .rd-navbar-static .rd-navbar-dropdown > li > a:focus, -.bodywebsite .rd-navbar-static .rd-navbar-dropdown > li > a:active, -.bodywebsite .rd-navbar-static .rd-navbar-list > li > a, -.bodywebsite .rd-navbar-static .rd-navbar-list > li > a:focus, -.bodywebsite .rd-navbar-static .rd-navbar-list > li > a:active, -.bodywebsite .rd-navbar-fullwidth .rd-navbar-dropdown > li > a, -.bodywebsite .rd-navbar-fullwidth .rd-navbar-dropdown > li > a:focus, -.bodywebsite .rd-navbar-fullwidth .rd-navbar-dropdown > li > a:active, -.bodywebsite .rd-navbar-fullwidth .rd-navbar-list > li > a, -.bodywebsite .rd-navbar-fullwidth .rd-navbar-list > li > a:focus, -.bodywebsite .rd-navbar-fullwidth .rd-navbar-list > li > a:active { - color: #9f9f9f; - background: transparent; -} -.bodywebsite .rd-navbar-static .rd-navbar-dropdown > li > a:hover, -.bodywebsite .rd-navbar-static .rd-navbar-list > li > a:hover, -.bodywebsite .rd-navbar-fullwidth .rd-navbar-dropdown > li > a:hover, -.bodywebsite .rd-navbar-fullwidth .rd-navbar-list > li > a:hover { - color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; - background: transparent; -} -.bodywebsite .rd-navbar-static .rd-navbar-dropdown > li + li, -.bodywebsite .rd-navbar-static .rd-navbar-list > li + li, -.bodywebsite .rd-navbar-fullwidth .rd-navbar-dropdown > li + li, -.bodywebsite .rd-navbar-fullwidth .rd-navbar-list > li + li { - margin-top: 14px; -} -@media (min-width: 1200px) { - .bodywebsite .rd-navbar-static .rd-navbar-dropdown > li > a, - .bodywebsite .rd-navbar-static .rd-navbar-list > li > a, - .bodywebsite .rd-navbar-fullwidth .rd-navbar-dropdown > li > a, - .bodywebsite .rd-navbar-fullwidth .rd-navbar-list > li > a { - font-size: 16px; - } -} -@media (min-width: 1800px) { - .bodywebsite .rd-navbar-static .rd-navbar-dropdown > li + li, - .bodywebsite .rd-navbar-static .rd-navbar-list > li + li, - .bodywebsite .rd-navbar-fullwidth .rd-navbar-dropdown > li + li, - .bodywebsite .rd-navbar-fullwidth .rd-navbar-list > li + li { - margin-top: 17px; - } -} -.bodywebsite .rd-navbar-static .rd-navbar-dropdown, -.bodywebsite .rd-navbar-static .rd-navbar-megamenu, -.bodywebsite .rd-navbar-fullwidth .rd-navbar-dropdown, -.bodywebsite .rd-navbar-fullwidth .rd-navbar-megamenu { - box-shadow: 0 0 13px 0 rgba(0, 0, 0, 0.13); - border-top: 2px solid maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; -} -.bodywebsite .rd-navbar-static .rd-navbar-dropdown, -.bodywebsite .rd-navbar-fullwidth .rd-navbar-dropdown { - width: 188px; - padding: 25px 25px 30px; - margin-left: -32px; - background: #fff; -} -@media (min-width: 1200px) { - .bodywebsite .rd-navbar-static .rd-navbar-dropdown, - .bodywebsite .rd-navbar-fullwidth .rd-navbar-dropdown { - width: 235px; - } -} -.bodywebsite .rd-navbar-static .rd-navbar-dropdown .rd-navbar-dropdown, -.bodywebsite .rd-navbar-fullwidth .rd-navbar-dropdown .rd-navbar-dropdown { - position: absolute; - left: 100%; - margin-left: 91px; - top: -20px; -} -.bodywebsite .rd-navbar-static .rd-navbar-dropdown > li > a, -.bodywebsite .rd-navbar-fullwidth .rd-navbar-dropdown > li > a { - display: block; - width: 100%; -} -.bodywebsite .rd-navbar-static .rd-navbar-dropdown > li > a, -.bodywebsite .rd-navbar-static .rd-navbar-dropdown > li > a:focus, -.bodywebsite .rd-navbar-static .rd-navbar-dropdown > li > a:active, -.bodywebsite .rd-navbar-fullwidth .rd-navbar-dropdown > li > a, -.bodywebsite .rd-navbar-fullwidth .rd-navbar-dropdown > li > a:focus, -.bodywebsite .rd-navbar-fullwidth .rd-navbar-dropdown > li > a:active { - color: #9f9f9f; - background: transparent; -} -.bodywebsite .rd-navbar-static .rd-navbar-dropdown > li > a:hover, -.bodywebsite .rd-navbar-fullwidth .rd-navbar-dropdown > li > a:hover { - color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; - background: transparent; -} -.bodywebsite .rd-navbar-static .rd-navbar-dropdown > li.focus > a, -.bodywebsite .rd-navbar-static .rd-navbar-dropdown > li.opened > a, -.bodywebsite .rd-navbar-fullwidth .rd-navbar-dropdown > li.focus > a, -.bodywebsite .rd-navbar-fullwidth .rd-navbar-dropdown > li.opened > a { - color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; - background: transparent; -} -.bodywebsite .rd-navbar-static .rd-navbar-megamenu, -.bodywebsite .rd-navbar-fullwidth .rd-navbar-megamenu { - position: absolute; - z-index: 4; - display: table; - table-layout: fixed; - width: calc(70%); - left: 15px; - max-width: 1200px; - margin-top: 27px; - text-align: left; - background: #fff; -} -.bodywebsite .rd-navbar-static .rd-navbar-megamenu > li, -.bodywebsite .rd-navbar-fullwidth .rd-navbar-megamenu > li { - position: relative; - display: table-cell; - padding: 34px 20px 30px 35px; -} -.bodywebsite .rd-navbar-static .rd-navbar-megamenu > li + li, -.bodywebsite .rd-navbar-fullwidth .rd-navbar-megamenu > li + li { - border-left: 1px solid #ededed; -} -.bodywebsite .rd-navbar-static .rd-navbar-megamenu * + .rd-megamenu-header, -.bodywebsite .rd-navbar-fullwidth .rd-navbar-megamenu * + .rd-megamenu-header { - margin-top: 40px; -} -.bodywebsite .rd-navbar-static .rd-navbar-megamenu * + .rd-navbar-list, -.bodywebsite .rd-navbar-fullwidth .rd-navbar-megamenu * + .rd-navbar-list { - margin-top: 20px; -} -@media (min-width: 1200px) { - .bodywebsite .rd-navbar-static .rd-navbar-megamenu, - .bodywebsite .rd-navbar-fullwidth .rd-navbar-megamenu { - width: 1140px; - } - .bodywebsite .rd-navbar-static .rd-navbar-megamenu > li, - .bodywebsite .rd-navbar-fullwidth .rd-navbar-megamenu > li { - padding: 44px 25px 50px 45px; - } -} -.bodywebsite .rd-navbar-static .rd-navbar-submenu-toggle, -.bodywebsite .rd-navbar-fullwidth .rd-navbar-submenu-toggle { - display: none; - cursor: pointer; - z-index: 100; -} -.bodywebsite .rd-navbar-static .rd-navbar-submenu-toggle:hover, -.bodywebsite .rd-navbar-fullwidth .rd-navbar-submenu-toggle:hover { - color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; -} -.bodywebsite .rd-navbar-static .rd-navbar-nav > li > .rd-navbar-submenu-toggle, -.bodywebsite .rd-navbar-fullwidth .rd-navbar-nav > li > .rd-navbar-submenu-toggle { - display: none; - -webkit-align-self: center; - -ms-flex-item-align: center; - align-self: center; - width: 24px; - text-align: center; -} -.bodywebsite .rd-navbar-static .rd-navbar-nav > li > .rd-navbar-submenu-toggle::after, -.bodywebsite .rd-navbar-fullwidth .rd-navbar-nav > li > .rd-navbar-submenu-toggle::after { - content: '\f107'; - position: relative; - display: inline-block; - font: 400 16px "FontAwesome"; - text-align: center; - transition: 0.4s all ease; - z-index: 2; - color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; - will-change: transform; - -webkit-filter: blur(0); -} -.bodywebsite .rd-navbar-static .rd-navbar-nav > li li.focus > .rd-navbar-submenu-toggle::after, -.bodywebsite .rd-navbar-static .rd-navbar-nav > li li.opened > .rd-navbar-submenu-toggle::after, -.bodywebsite .rd-navbar-static .rd-navbar-nav > li li > a:hover + .rd-navbar-submenu-toggle::after, -.bodywebsite .rd-navbar-fullwidth .rd-navbar-nav > li li.focus > .rd-navbar-submenu-toggle::after, -.bodywebsite .rd-navbar-fullwidth .rd-navbar-nav > li li.opened > .rd-navbar-submenu-toggle::after, -.bodywebsite .rd-navbar-fullwidth .rd-navbar-nav > li li > a:hover + .rd-navbar-submenu-toggle::after { - -webkit-transform: rotate(-90deg); - transform: rotate(-90deg); -} -.bodywebsite .rd-navbar-static .rd-navbar-nav > li.focus > .rd-navbar-submenu-toggle::after, -.bodywebsite .rd-navbar-static .rd-navbar-nav > li.opened > .rd-navbar-submenu-toggle::after, -.bodywebsite .rd-navbar-static .rd-navbar-nav > li > a:hover + .rd-navbar-submenu-toggle::after, -.bodywebsite .rd-navbar-fullwidth .rd-navbar-nav > li.focus > .rd-navbar-submenu-toggle::after, -.bodywebsite .rd-navbar-fullwidth .rd-navbar-nav > li.opened > .rd-navbar-submenu-toggle::after, -.bodywebsite .rd-navbar-fullwidth .rd-navbar-nav > li > a:hover + .rd-navbar-submenu-toggle::after { - color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; -} -.bodywebsite .rd-navbar-static .rd-navbar-dropdown .rd-navbar-submenu-toggle, -.bodywebsite .rd-navbar-fullwidth .rd-navbar-dropdown .rd-navbar-submenu-toggle { - display: none; - vertical-align: middle; -} -.bodywebsite .rd-navbar-static .rd-navbar-dropdown .rd-navbar-submenu-toggle::after, -.bodywebsite .rd-navbar-fullwidth .rd-navbar-dropdown .rd-navbar-submenu-toggle::after { - top: 1px; -} -.bodywebsite .rd-navbar-static .rd-navbar-dropdown > li.focus > .rd-navbar-submenu-toggle::after, -.bodywebsite .rd-navbar-static .rd-navbar-dropdown > li.opened > .rd-navbar-submenu-toggle::after, -.bodywebsite .rd-navbar-static .rd-navbar-dropdown > li > a:hover + .rd-navbar-submenu-toggle::after, -.bodywebsite .rd-navbar-fullwidth .rd-navbar-dropdown > li.focus > .rd-navbar-submenu-toggle::after, -.bodywebsite .rd-navbar-fullwidth .rd-navbar-dropdown > li.opened > .rd-navbar-submenu-toggle::after, -.bodywebsite .rd-navbar-fullwidth .rd-navbar-dropdown > li > a:hover + .rd-navbar-submenu-toggle::after { - color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; -} -.bodywebsite .rd-navbar-static.rd-navbar--is-clone, -.bodywebsite .rd-navbar-fullwidth.rd-navbar--is-clone { - display: none; -} -.bodywebsite .rd-navbar-static.rd-navbar--is-clone.rd-navbar--is-stuck, -.bodywebsite .rd-navbar-fullwidth.rd-navbar--is-clone.rd-navbar--is-stuck { - display: block; -} -.bodywebsite .rd-navbar-static.rd-navbar--is-stuck, -.bodywebsite .rd-navbar-static.rd-navbar--is-clone, -.bodywebsite .rd-navbar-fullwidth.rd-navbar--is-stuck, -.bodywebsite .rd-navbar-fullwidth.rd-navbar--is-clone { - position: fixed; - left: 0; - top: 0; - right: 0; - z-index: 999; - background: #fff; -} -.bodywebsite .rd-navbar-static.rd-navbar--is-stuck .rd-navbar-megamenu, -.bodywebsite .rd-navbar-static.rd-navbar--is-clone .rd-navbar-megamenu, -.bodywebsite .rd-navbar-fullwidth.rd-navbar--is-stuck .rd-navbar-megamenu, -.bodywebsite .rd-navbar-fullwidth.rd-navbar--is-clone .rd-navbar-megamenu { - margin-top: 18px; -} -.bodywebsite .rd-navbar-static .rd-navbar-megamenu, -.bodywebsite .rd-navbar-fullwidth .rd-navbar-megamenu { - position: absolute; - transform: translateY(30px); - text-align: left; - visibility: hidden; - opacity: 0; -} -.bodywebsite .rd-navbar-static .rd-navbar--has-dropdown, -.bodywebsite .rd-navbar-fullwidth .rd-navbar--has-dropdown { - position: relative; -} -.bodywebsite .rd-navbar-fixed .rd-navbar-collapse-toggle, -.bodywebsite .rd-navbar-sidebar .rd-navbar-collapse-toggle { - display: inline-block; - z-index: 9999; -} -.bodywebsite .rd-navbar-fixed .rd-navbar-dropdown, -.bodywebsite .rd-navbar-sidebar .rd-navbar-dropdown { - display: block; -} -.bodywebsite .rd-navbar-fixed .rd-navbar-collapse-items, -.bodywebsite .rd-navbar-sidebar .rd-navbar-collapse-items { - position: absolute; - width: 260px; - padding: 25px 15px; - box-shadow: none; - color: #00030a; - background: #fff; - font-size: 16px; - line-height: 34px; -} -.bodywebsite .rd-navbar-fixed .rd-navbar-collapse-items li > *, -.bodywebsite .rd-navbar-sidebar .rd-navbar-collapse-items li > * { - vertical-align: middle; -} -.bodywebsite .rd-navbar-fixed .rd-navbar-collapse-items li + li, -.bodywebsite .rd-navbar-sidebar .rd-navbar-collapse-items li + li { - margin-top: 10px; -} -.bodywebsite .rd-navbar-fixed .rd-navbar-collapse-items .icon, -.bodywebsite .rd-navbar-fixed .rd-navbar-collapse-items a, -.bodywebsite .rd-navbar-sidebar .rd-navbar-collapse-items .icon, -.bodywebsite .rd-navbar-sidebar .rd-navbar-collapse-items a { - display: inline-block; - font-size: 16px; - line-height: 30px; -} -.bodywebsite .rd-navbar-fixed .rd-navbar-collapse-items .icon, -.bodywebsite .rd-navbar-fixed .rd-navbar-collapse-items a[class*="fa"]:before, -.bodywebsite .rd-navbar-sidebar .rd-navbar-collapse-items .icon, -.bodywebsite .rd-navbar-sidebar .rd-navbar-collapse-items a[class*="fa"]:before { - display: inline-block; - width: 30px; - height: 30px; - padding-right: 5px; -} -.bodywebsite .rd-navbar-fixed .rd-navbar-nav, -.bodywebsite .rd-navbar-sidebar { - width: 270px; - left: 0; - top: 0; - font-size: 16px; - line-height: 34px; - color: #00030a; - background: #fff; - z-index: 998; -} -.bodywebsite .rd-navbar-static-smooth .rd-navbar { - position: fixed; - top: 0; - left: 0; - right: 0; - z-index: 9999; -} -.bodywebsite .rd-navbar-static { - display: block; -} -.bodywebsite .rd-navbar-static .rd-navbar-nav > li { - display: inline-block; -} -.bodywebsite .rd-navbar-static .rd-navbar-nav > li + li { - margin-left: 10px; -} -.bodywebsite .rd-navbar-static.rd-navbar-default .rd-navbar-search, -.bodywebsite .rd-navbar-static.rd-navbar-corporate-dark .rd-navbar-search { - position: static; - z-index: 2; -} -.bodywebsite .rd-navbar-static.rd-navbar-default .rd-navbar-search .rd-search, -.bodywebsite .rd-navbar-static.rd-navbar-corporate-dark .rd-navbar-search .rd-search { - position: absolute; - top: -1px; - right: 4px; - bottom: 0; - left: 0; - z-index: 5; - opacity: 0; - visibility: hidden; -} -.bodywebsite .rd-navbar-static.rd-navbar-default .rd-navbar-search .rd-search-submit, -.bodywebsite .rd-navbar-static.rd-navbar-corporate-dark .rd-navbar-search .rd-search-submit { - width: 39px; - height: 39px; - line-height: 38px; -} -.bodywebsite .rd-navbar-static.rd-navbar-default .rd-navbar-search .rd-search-results-live, -.bodywebsite .rd-navbar-static.rd-navbar-corporate-dark .rd-navbar-search .rd-search-results-live { - padding: 0; - border: 0; - background: #fff; -} -.bodywebsite .rd-navbar-static.rd-navbar-default .rd-navbar-search .rd-search-results-live > *, -.bodywebsite .rd-navbar-static.rd-navbar-corporate-dark .rd-navbar-search .rd-search-results-live > * { - display: none; - padding: 16px; - border: 1px solid #e5e7e9; - border-top: 0; - border-radius: 0 0 3px 3px; -} -.bodywebsite .rd-navbar-static.rd-navbar-default .rd-navbar-search .form-label, -.bodywebsite .rd-navbar-static.rd-navbar-corporate-dark .rd-navbar-search .form-label { - border: 0; -} -.bodywebsite .rd-navbar-static.rd-navbar-default .rd-navbar-search.active .rd-search, -.bodywebsite .rd-navbar-static.rd-navbar-corporate-dark .rd-navbar-search.active .rd-search { - opacity: 1; - visibility: visible; - transition: .22s; -} -.bodywebsite .rd-navbar-static.rd-navbar-default .rd-navbar-search.active .rd-search-results-live > *, -.bodywebsite .rd-navbar-static.rd-navbar-corporate-dark .rd-navbar-search.active .rd-search-results-live > * { - display: block; -} -.bodywebsite .rd-navbar-static.rd-navbar-default .rd-navbar-search-wrap.active .rd-navbar-nav-inner, -.bodywebsite .rd-navbar-static.rd-navbar-corporate-dark .rd-navbar-search-wrap.active .rd-navbar-nav-inner { - position: relative; -} -.bodywebsite .rd-navbar-static.rd-navbar-default .rd-navbar-search.active + .rd-navbar-nav, -.bodywebsite .rd-navbar-static.rd-navbar-corporate-dark .rd-navbar-search.active + .rd-navbar-nav { - opacity: 0; - visibility: hidden; - pointer-events: none; -} -.bodywebsite .rd-navbar-static.rd-navbar--is-clone { - display: block; - transform: translateY(-105%); - transition: .33s all ease; -} -.bodywebsite .rd-navbar-static.rd-navbar--is-clone.rd-navbar--is-stuck { - transform: translateY(0); -} -.bodywebsite .rd-navbar-static.rd-navbar--is-clone .rd-navbar-inner, -.bodywebsite .rd-navbar-static.rd-navbar--is-stuck .rd-navbar-inner { - padding: 13px 30px; -} -.bodywebsite .rd-navbar-static.rd-navbar--is-clone .rd-navbar-nav-wrap, -.bodywebsite .rd-navbar-static.rd-navbar--is-stuck .rd-navbar-nav-wrap { - margin-top: 0; -} -.bodywebsite .rd-navbar-fullwidth { - display: block; - text-align: center; -} -.bodywebsite .rd-navbar-fullwidth .rd-navbar-nav { - width: 100%; -} -.bodywebsite .rd-navbar-fullwidth .rd-navbar-nav > li + li { - margin-left: 20px; -} -.bodywebsite .rd-navbar-fullwidth.rd-navbar--is-stuck .rd-navbar-panel { - display: none; -} -.bodywebsite .rd-navbar-fixed { - display: block; -} -.bodywebsite .rd-navbar-fixed .rd-navbar-brand { - position: fixed; - top: 10px; - left: 64px; - z-index: 17; - display: block; - overflow: hidden; - text-align: left; - white-space: nowrap; - text-overflow: ellipsis; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-flex-direction: row; - -ms-flex-direction: row; - flex-direction: row; - -webkit-flex-wrap: nowrap; - -ms-flex-wrap: nowrap; - flex-wrap: nowrap; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; - -webkit-justify-content: flex-start; - -ms-flex-pack: start; - justify-content: flex-start; -} -.bodywebsite .rd-navbar-fixed .rd-navbar-brand .brand-slogan { - display: none; -} -.bodywebsite .rd-navbar-fixed .rd-navbar-panel { - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - position: fixed; - left: 0; - top: 0; - right: 0; - padding: 4px; - height: 56px; - color: #9f9f9f; - z-index: 999; -} -.bodywebsite .rd-navbar-fixed .rd-navbar-panel:before { - content: ''; - position: absolute; - left: 0; - top: 0; - bottom: 0; - right: 0; - box-shadow: none; - border-bottom: 1px solid #e5e7e9; - background: #fff; -} -.bodywebsite .rd-navbar-fixed .rd-navbar-toggle { - display: inline-block; -} -.bodywebsite .rd-navbar-fixed .rd-navbar-nav-wrap { - position: fixed; - top: -56px; - left: 0; - bottom: -56px; - z-index: 998; - width: 270px; - padding: 112px 0 56px; - color: #fff; - background: #fff; - border-right: 1px solid #e5e7e9; - transform: translateX(-105%); - pointer-events: none; - overflow: hidden; -} -.bodywebsite .rd-navbar-fixed .rd-navbar-nav-wrap.active { - transform: translateX(0); -} -.bodywebsite .rd-navbar-fixed .rd-navbar-nav-inner { - position: relative; - z-index: 100000; - height: 100%; - padding: 10px 0 20px; - pointer-events: auto; - -webkit-overflow-scrolling: touch; - overflow-x: hidden; - overflow-y: auto; -} -.bodywebsite .rd-navbar-fixed .rd-navbar-nav-inner::-webkit-scrollbar { - width: 4px; -} -.bodywebsite .rd-navbar-fixed .rd-navbar-nav-inner::-webkit-scrollbar-thumb { - background: white; - border: none; - border-radius: 0; - opacity: .2; -} -.bodywebsite .rd-navbar-fixed .rd-navbar-nav-inner::-webkit-scrollbar-track { - background: #fff; - border: none; - border-radius: 0; -} -.bodywebsite .rd-navbar-fixed .rd-navbar-nav { - display: block; - font-size: 16px; - line-height: 26px; - text-align: left; -} -.bodywebsite .rd-navbar-fixed .rd-navbar-nav li > a { - display: block; - font-size: 16px; - padding: 14px 56px 14px 16px; - color: #464a4d; -} -.bodywebsite .rd-navbar-fixed .rd-navbar-nav li:hover > a, -.bodywebsite .rd-navbar-fixed .rd-navbar-nav li:hover > a:hover, -.bodywebsite .rd-navbar-fixed .rd-navbar-nav li.focus > a, -.bodywebsite .rd-navbar-fixed .rd-navbar-nav li.focus > a:hover, -.bodywebsite .rd-navbar-fixed .rd-navbar-nav li.active > a, -.bodywebsite .rd-navbar-fixed .rd-navbar-nav li.active > a:hover, -.bodywebsite .rd-navbar-fixed .rd-navbar-nav li.opened > a, -.bodywebsite .rd-navbar-fixed .rd-navbar-nav li.opened > a:hover { - color: #fff; - background: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; -} -.bodywebsite .rd-navbar-fixed .rd-navbar-nav li:hover > .rd-navbar-submenu-toggle::after, -.bodywebsite .rd-navbar-fixed .rd-navbar-nav li.focus > .rd-navbar-submenu-toggle::after, -.bodywebsite .rd-navbar-fixed .rd-navbar-nav li.active > .rd-navbar-submenu-toggle::after, -.bodywebsite .rd-navbar-fixed .rd-navbar-nav li.opened > .rd-navbar-submenu-toggle::after { - color: #fff; -} -.bodywebsite .rd-navbar-fixed .rd-navbar-nav > li + li { - margin-top: 4px; -} -.bodywebsite .rd-navbar-fixed .label-custom { - position: relative; - top: -1px; - display: inline-block; - margin: 0 0 0 8px; - font-size: 60%; - line-height: 1; - padding: 6px .5em 5px; - vertical-align: middle; -} -.bodywebsite .iphone .rd-navbar-fixed .label-custom, -.bodywebsite .ipad .rd-navbar-fixed .label-custom, -.bodywebsite .mac .rd-navbar-fixed .label-custom { - padding: 6px .5em 4px; -} -.bodywebsite .rd-navbar-fixed .rd-navbar-dropdown > li > a, -.bodywebsite .rd-navbar-fixed .rd-navbar-list > li > a { - font-family: "Roboto", Helvetica, Arial, sans-serif; - font-size: 12px; - line-height: 1.2; -} -.bodywebsite .rd-navbar-fixed .rd-navbar-megamenu .rd-megamenu-header { - padding: 0 15px; -} -.bodywebsite .rd-navbar-fixed .rd-navbar-megamenu > li { - padding-top: 15px; -} -.bodywebsite .rd-navbar-fixed .rd-navbar-megamenu * + .rd-megamenu-header { - margin-top: 15px; -} -.bodywebsite .rd-navbar-fixed .rd-navbar-megamenu * + .rd-navbar-list { - margin-top: 10px; -} -.bodywebsite .rd-navbar-fixed .rd-navbar-dropdown, -.bodywebsite .rd-navbar-fixed .rd-navbar-megamenu { - display: none; -} -.bodywebsite .rd-navbar-fixed .rd-navbar-submenu { - position: relative; -} -.bodywebsite .rd-navbar-fixed .rd-navbar-submenu li > a { - font-size: 14px; - padding-left: 30px; -} -.bodywebsite .rd-navbar-fixed .rd-navbar-submenu .rd-navbar-dropdown li li > a, -.bodywebsite .rd-navbar-fixed .rd-navbar-submenu .rd-navbar-megamenu ul li li > a { - padding-left: 48px; -} -.bodywebsite .rd-navbar-fixed .rd-navbar-submenu.opened > .rd-navbar-dropdown, -.bodywebsite .rd-navbar-fixed .rd-navbar-submenu.opened > .rd-navbar-megamenu { - display: block; -} -.bodywebsite .rd-navbar-fixed .rd-navbar-search, -.bodywebsite .rd-navbar-fixed .rd-navbar-btn-wrap { - display: block; - padding: 16px 5px; -} -.bodywebsite .rd-navbar-fixed .rd-search .rd-search-results-live { - display: none; -} -.bodywebsite .rd-navbar-fixed .rd-navbar-btn-wrap { - padding: 16px 10px; -} -.bodywebsite .rd-navbar-fixed .rd-navbar-btn-wrap .btn { - width: 100%; -} -.bodywebsite .rd-navbar-fixed .rd-navbar-nav li .rd-navbar-dropdown, -.bodywebsite .rd-navbar-fixed .rd-navbar-nav li .rd-navbar-megamenu { - transition: opacity 0.3s, height 0.4s ease; - opacity: 0; - height: 0; - overflow: hidden; -} -.bodywebsite .rd-navbar-fixed .rd-navbar-nav li.opened > .rd-navbar-dropdown, -.bodywebsite .rd-navbar-fixed .rd-navbar-nav li.opened > .rd-navbar-megamenu { - padding: 3px 0; - opacity: 1; - height: auto; -} -.bodywebsite .rd-navbar-fixed .rd-navbar-nav li.opened > .rd-navbar-submenu-toggle { - color: #fff; -} -.bodywebsite .rd-navbar-fixed .rd-navbar-nav li.opened > .rd-navbar-submenu-toggle::after { - transform: rotate(180deg); - margin-top: -24px; -} -.bodywebsite .rd-navbar-fixed .rd-navbar-submenu-toggle::after { - content: '\f107'; - position: absolute; - top: 24px; - right: 0; - margin-top: -18px; - width: 65px; - height: 44px; - font: 400 15px "FontAwesome"; - line-height: 42px; - text-align: center; - transition: 0.4s all ease; - z-index: 2; - cursor: pointer; - color: #000; - will-change: transform; -} -.bodywebsite .rd-navbar-fixed .rd-navbar-collapse, -.bodywebsite .rd-navbar-fixed .rd-navbar-search-toggle { - position: fixed; - top: 4px; - height: 48px; - z-index: 1000; - background-color: transparent; - border: none; -} -.bodywebsite .rd-navbar-fixed .rd-navbar-collapse:focus, -.bodywebsite .rd-navbar-fixed .rd-navbar-search-toggle:focus { - outline: none; -} -.bodywebsite .rd-navbar-fixed .rd-navbar-aside { - top: 0; - right: 0; - width: 100%; -} -.bodywebsite .rd-navbar-fixed .rd-navbar-aside, -.bodywebsite .rd-navbar-fixed .rd-navbar-aside .rd-navbar-aside-toggle { - position: fixed; - z-index: 1000; - display: block; - height: 48px; -} -.bodywebsite .rd-navbar-fixed .rd-navbar-aside.active .rd-navbar-aside-content { - visibility: visible; - opacity: 1; -} -.bodywebsite .rd-navbar-fixed .rd-navbar-aside-toggle { - top: 4px; - right: 4px; - display: inline-block; - position: relative; - width: 48px; - height: 48px; - line-height: 48px; - cursor: pointer; - color: #000; -} -.bodywebsite .rd-navbar-fixed .rd-navbar-aside-toggle span { - top: 50%; - margin-top: -3px; -} -.bodywebsite .rd-navbar-fixed .rd-navbar-aside-toggle span, -.bodywebsite .rd-navbar-fixed .rd-navbar-aside-toggle span:before, -.bodywebsite .rd-navbar-fixed .rd-navbar-aside-toggle span:after { - position: absolute; - width: 6px; - height: 6px; - line-height: 6px; - text-align: center; - background: #000; - left: 50%; - margin-left: -3px; - border-radius: 50%; - transition: .3s all ease; -} -.bodywebsite .rd-navbar-fixed .rd-navbar-aside-toggle span:before, -.bodywebsite .rd-navbar-fixed .rd-navbar-aside-toggle span:after { - content: ''; -} -.bodywebsite .rd-navbar-fixed .rd-navbar-aside-toggle span:before { - bottom: 100%; - margin-bottom: 3px; -} -.bodywebsite .rd-navbar-fixed .rd-navbar-aside-toggle span:after { - top: 100%; - margin-top: 3px; -} -.bodywebsite .rd-navbar-fixed .rd-navbar-aside-toggle.active span { - transform: scale(0.7); -} -.bodywebsite .rd-navbar-fixed .rd-navbar-aside-toggle.active span:before { - transform: translateY(18px); -} -.bodywebsite .rd-navbar-fixed .rd-navbar-aside-toggle.active span:after { - transform: translateY(-18px); -} -.bodywebsite .rd-navbar-fixed .rd-navbar-aside-content { - position: absolute; - top: calc(107%); - right: 0; - width: calc(102%); - padding: 20px 35px; - margin: 0 -1px; - pointer-events: auto; - opacity: 0; - visibility: hidden; - transition: 0.23s all ease-out; -} -@media (min-width: 768px) { - .bodywebsite .rd-navbar-fixed .rd-navbar-aside-content { - width: auto; - } -} -.bodywebsite .rd-navbar-fixed.rd-navbar--is-clone { - display: none; -} -.bodywebsite .rd-navbar-fixed .rd-navbar-fixed--visible { - display: block; -} -.bodywebsite .rd-navbar-fixed .rd-navbar-fixed--hidden { - display: none; -} -.bodywebsite html.rd-navbar-fixed-linked .page { - padding-top: 56px; -} -.bodywebsite html.rd-navbar-sidebar-linked body { - padding-left: 270px; -} -.bodywebsite .rd-navbar-sidebar { - position: fixed; - display: block; -} -.bodywebsite .rd-navbar-sidebar .rd-navbar-nav li:hover > a, -.bodywebsite .rd-navbar-sidebar .rd-navbar-nav li:hover > a:hover, -.bodywebsite .rd-navbar-sidebar .rd-navbar-nav li.focus > a, -.bodywebsite .rd-navbar-sidebar .rd-navbar-nav li.focus > a:hover { - color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; - background: transparent; -} -.bodywebsite .rd-navbar-sidebar .rd-navbar-nav li:hover > .rd-navbar-submenu-toggle, -.bodywebsite .rd-navbar-sidebar .rd-navbar-nav li.focus > .rd-navbar-submenu-toggle { - color: #fff; -} -.bodywebsite .rd-navbar-sidebar .rd-navbar-nav li:hover > .rd-navbar-submenu-toggle:hover, -.bodywebsite .rd-navbar-sidebar .rd-navbar-nav li.focus > .rd-navbar-submenu-toggle:hover { - cursor: pointer; - color: #fff; -} -.bodywebsite .rd-navbar-sidebar .rd-navbar-nav li .rd-navbar-dropdown, -.bodywebsite .rd-navbar-sidebar .rd-navbar-nav li .rd-navbar-megamenu { - transition: opacity 0.3s, height 0.4s ease; - opacity: 0; - height: 0; - overflow: hidden; -} -.bodywebsite .rd-navbar-sidebar .rd-navbar-nav li.opened > .rd-navbar-dropdown, -.bodywebsite .rd-navbar-sidebar .rd-navbar-nav li.opened > .rd-navbar-megamenu { - opacity: 1; - height: auto; -} -.bodywebsite .rd-navbar-sidebar .rd-navbar-nav li.opened > a { - background: transparent; - color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; -} -.bodywebsite .rd-navbar-sidebar .rd-navbar-nav li.opened > .rd-navbar-submenu-toggle { - color: #fff; -} -.bodywebsite .rd-navbar-sidebar .rd-navbar-nav li.opened > .rd-navbar-submenu-toggle::after { - -webkit-transform: rotate(180deg); - transform: rotate(180deg); -} -.bodywebsite .rd-navbar-sidebar .rd-navbar-submenu-toggle::after { - content: '\f078'; - position: absolute; - top: 22px; - right: 0; - margin-top: -22px; - width: 65px; - height: 44px; - font: 400 14px "FontAwesome"; - line-height: 42px; - text-align: center; - transition: 0.4s all ease; - z-index: 2; -} -.bodywebsite .rd-navbar-sidebar .rd-navbar-brand { - text-align: center; -} -.bodywebsite .rd-navbar-sidebar .rd-navbar-collapse-items { - top: 0; - left: 0; - padding-top: 45px; - transform: scale(0.7); - transform-origin: 0% 0%; - opacity: 0; - visibility: hidden; -} -.bodywebsite .rd-navbar-sidebar .rd-navbar-collapse { - position: absolute; - top: 4px; - left: 4px; - display: inline-block; - z-index: 1; -} -.bodywebsite .rd-navbar-sidebar .rd-navbar-collapse.active .rd-navbar-collapse-items { - opacity: 1; - visibility: visible; - transform: scale(1); -} -.bodywebsite .rd-navbar-default .rd-navbar-nav > li > a { - font-family: "Roboto", Helvetica, Arial, sans-serif; - font-weight: 700; - line-height: 1.2; - text-transform: uppercase; - color: #00030a; -} -.bodywebsite .rd-navbar-default .rd-navbar-search .form-input, -.bodywebsite .rd-navbar-default .rd-navbar-search .form-label { - font-size: 16px; - line-height: 1.3; - color: #9b9b9b; -} -.bodywebsite .rd-navbar-default .rd-navbar-search .form-label { - top: 18px; - left: 22px; -} -.bodywebsite .rd-navbar-default .rd-navbar-search .form-input { - padding: 7px 45px 10px 22px; - height: auto; - min-height: 20px; - border: 1px solid #e5e7e9; - border-radius: 3px; -} -.bodywebsite .rd-navbar-default .rd-navbar-search .rd-navbar-search-toggle, -.bodywebsite .rd-navbar-default .rd-navbar-search .rd-search-submit { - font-size: 25px; -} -.bodywebsite .rd-navbar-default .rd-navbar-search .rd-navbar-search-toggle, -.bodywebsite .rd-navbar-default .rd-navbar-search .rd-navbar-search-toggle:active, -.bodywebsite .rd-navbar-default .rd-navbar-search .rd-navbar-search-toggle:focus, -.bodywebsite .rd-navbar-default .rd-navbar-search .rd-search-submit, -.bodywebsite .rd-navbar-default .rd-navbar-search .rd-search-submit:active, -.bodywebsite .rd-navbar-default .rd-navbar-search .rd-search-submit:focus { - color: #00030a; -} -.bodywebsite .rd-navbar-default .rd-navbar-search .rd-navbar-search-toggle:hover, -.bodywebsite .rd-navbar-default .rd-navbar-search .rd-search-submit:hover { - color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; -} -.bodywebsite .rd-navbar-default .rd-navbar-search .rd-navbar-search-toggle, -.bodywebsite .rd-navbar-default .rd-navbar-search .rd-navbar-search-toggle:before, -.bodywebsite .rd-navbar-default .rd-navbar-search .rd-search-submit, -.bodywebsite .rd-navbar-default .rd-navbar-search .rd-search-submit:before { - font-family: 'Material Icons'; -} -.bodywebsite .rd-navbar-default .rd-navbar-search .rd-navbar-search-toggle { - position: relative; -} -.bodywebsite .rd-navbar-default .rd-navbar-search .rd-navbar-search-toggle:after { - content: '\e5cd'; -} -.bodywebsite .rd-navbar-default.rd-navbar-fixed .rd-navbar-shop { - position: fixed; - top: 15px; - right: 15px; - z-index: 1001; -} -.bodywebsite .rd-navbar-default.rd-navbar-fixed .rd-navbar-search .rd-navbar-search-toggle { - display: none; -} -.bodywebsite .rd-navbar-default.rd-navbar-static .rd-navbar-inner, -.bodywebsite .rd-navbar-default.rd-navbar-static .rd-navbar-group { - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-flex-direction: row; - -ms-flex-direction: row; - flex-direction: row; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; - -webkit-flex-wrap: nowrap; - -ms-flex-wrap: nowrap; - flex-wrap: nowrap; -} -.bodywebsite .rd-navbar-default.rd-navbar-static .rd-navbar-inner { - -webkit-justify-content: space-between; - -ms-flex-pack: justify; - justify-content: space-between; - padding: 44px 15px 42px; - font-size: 0; - line-height: 0; -} -.bodywebsite .rd-navbar-default.rd-navbar-static .rd-navbar-panel { - min-width: 100px; -} -.bodywebsite .rd-navbar-default.rd-navbar-static .rd-navbar-group { - -webkit-justify-content: flex-end; - -ms-flex-pack: end; - justify-content: flex-end; -} -.bodywebsite .rd-navbar-default.rd-navbar-static .rd-navbar-nav-inner { - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-flex-direction: row-reverse; - -ms-flex-direction: row-reverse; - flex-direction: row-reverse; - -webkit-flex-wrap: nowrap; - -ms-flex-wrap: nowrap; - flex-wrap: nowrap; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; - -webkit-justify-content: flex-start; - -ms-flex-pack: start; - justify-content: flex-start; - margin-right: 12px; -} -.bodywebsite .rd-navbar-default.rd-navbar-static .rd-navbar-nav { - z-index: 0; - margin-right: 40px; - transition: .25s; -} -.bodywebsite .rd-navbar-default.rd-navbar-static .rd-navbar-nav > li + li { - margin-left: 32px; -} -@media (min-width: 1200px) { - .bodywebsite .rd-navbar-default.rd-navbar-static .rd-navbar-nav { - margin-right: 77px; - } - .bodywebsite .rd-navbar-default.rd-navbar-static .rd-navbar-nav > li + li { - margin-left: 48px; - } -} -.bodywebsite .rd-navbar-default.rd-navbar-static .rd-navbar-toggle .rd-navbar-nav > li .rd-navbar-toggle { - display: none; -} -.bodywebsite .rd-navbar-default.rd-navbar-static .rd-navbar-nav > li > .rd-navbar-dropdown { - margin-top: 54px; -} -.bodywebsite .rd-navbar-default.rd-navbar-static.rd-navbar--is-clone .rd-navbar-inner, -.bodywebsite .rd-navbar-default.rd-navbar-static.rd-navbar--is-stuck .rd-navbar-inner { - padding: 18px 15px; -} -.bodywebsite .rd-navbar-default.rd-navbar-static.rd-navbar--is-clone .rd-navbar-nav > li > .rd-navbar-dropdown, -.bodywebsite .rd-navbar-default.rd-navbar-static.rd-navbar--is-stuck .rd-navbar-nav > li > .rd-navbar-dropdown { - margin-top: 49px; -} -.bodywebsite .rd-navbar-corporate-dark .rd-navbar-nav > li > a { - font-weight: 700; - font-size: 14px; - letter-spacing: .05em; - text-transform: uppercase; -} -.bodywebsite .rd-navbar-corporate-dark .rd-navbar-search .form-input, -.bodywebsite .rd-navbar-corporate-dark .rd-navbar-search .form-label { - font-size: 16px; - line-height: 1.3; - color: #9b9b9b; -} -.bodywebsite .rd-navbar-corporate-dark .rd-navbar-search .form-label { - top: 18px; - left: 22px; -} -.bodywebsite .rd-navbar-corporate-dark .rd-navbar-search .form-input { - padding: 7px 45px 7px 22px; - height: auto; - min-height: 20px; - border: 1px solid #e5e7e9; - border-radius: 3px; -} -.bodywebsite .rd-navbar-corporate-dark .rd-navbar-search .rd-navbar-search-toggle, -.bodywebsite .rd-navbar-corporate-dark .rd-navbar-search .rd-search-submit { - text-align: center; - color: #000; -} -.bodywebsite .rd-navbar-corporate-dark .rd-navbar-search .rd-navbar-search-toggle:before, -.bodywebsite .rd-navbar-corporate-dark .rd-navbar-search .rd-search-submit:before { - position: static; - display: inline-block; - font-family: 'fl-bigmug-line'; - font-size: 20px; -} -.bodywebsite .rd-navbar-corporate-dark .rd-navbar-search .rd-navbar-search-toggle:hover, -.bodywebsite .rd-navbar-corporate-dark .rd-navbar-search .rd-search-submit:hover { - color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; -} -.bodywebsite .rd-navbar-corporate-dark .rd-navbar-search .rd-navbar-search-toggle:after { - display: none; -} -.bodywebsite .rd-navbar-corporate-dark .rd-navbar-aside { - width: 100%; - font-size: 14px; - line-height: 1.71429; -} -.bodywebsite .rd-navbar-corporate-dark.rd-navbar-fixed .rd-navbar-aside-content { - border-bottom: 1px solid #000; - border-left: 1px solid #000; - background: #111; -} -.bodywebsite .rd-navbar-corporate-dark.rd-navbar-fixed .rd-navbar-aside .list-units > li + li { - margin-top: 10px; -} -.bodywebsite .rd-navbar-corporate-dark.rd-navbar-fixed .rd-navbar-aside * + .rd-navbar-aside-group { - margin-top: 14px; -} -@media (min-width: 576px) { - .bodywebsite .rd-navbar-corporate-dark.rd-navbar-fixed .rd-navbar-aside-content { - width: auto; - } -} -.bodywebsite .rd-navbar-corporate-dark.rd-navbar-static .rd-navbar-group { - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-flex-direction: row; - -ms-flex-direction: row; - flex-direction: row; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; -} -.bodywebsite .rd-navbar-corporate-dark.rd-navbar-static .rd-navbar-inner { - padding: 0; - font-size: 0; - line-height: 0; -} -.bodywebsite .rd-navbar-corporate-dark.rd-navbar-static .rd-navbar-panel { - min-width: 100px; -} -.bodywebsite .rd-navbar-corporate-dark.rd-navbar-static .rd-navbar-aside { - position: relative; - z-index: 2; - background: #3a3c3e; -} -.bodywebsite .rd-navbar-corporate-dark.rd-navbar-static .rd-navbar-aside:after { - content: ''; - position: absolute; - top: 0; - bottom: 0; - left: 50%; - transform: translateX(-50%); - background: inherit; - width: 102vw; - z-index: -1; -} -.bodywebsite .rd-navbar-corporate-dark.rd-navbar-static .rd-navbar-aside .rd-navbar-aside-content, -.bodywebsite .rd-navbar-corporate-dark.rd-navbar-static .rd-navbar-aside .rd-navbar-aside-group { - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-flex-direction: row; - -ms-flex-direction: row; - flex-direction: row; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; -} -.bodywebsite .rd-navbar-corporate-dark.rd-navbar-static .rd-navbar-aside .rd-navbar-aside-content { - padding: 12px 15px; - margin-bottom: -5px; - transform: translateY(-5px); - -webkit-justify-content: space-between; - -ms-flex-pack: justify; - justify-content: space-between; -} -.bodywebsite .rd-navbar-corporate-dark.rd-navbar-static .rd-navbar-aside .rd-navbar-aside-group { - -webkit-flex-shrink: 0; - -ms-flex-negative: 0; - flex-shrink: 0; -} -.bodywebsite .rd-navbar-corporate-dark.rd-navbar-static .rd-navbar-aside .rd-navbar-aside-group:first-child { - margin-top: 7px; - -webkit-flex-grow: 8; - -ms-flex-positive: 8; - flex-grow: 8; - -webkit-justify-content: flex-start; - -ms-flex-pack: start; - justify-content: flex-start; - margin-right: 20px; -} -.bodywebsite .rd-navbar-corporate-dark.rd-navbar-static .rd-navbar-aside .rd-navbar-aside-group:last-child { - margin-top: 5px; - -webkit-justify-content: flex-end; - -ms-flex-pack: end; - justify-content: flex-end; - -webkit-flex-grow: 1; - -ms-flex-positive: 1; - flex-grow: 1; -} -.bodywebsite .rd-navbar-corporate-dark.rd-navbar-static .rd-navbar-aside .list-units li { - display: inline-block; - margin-top: 0; -} -.bodywebsite .rd-navbar-corporate-dark.rd-navbar-static .rd-navbar-aside .list-units li:not(:last-child) { - margin-right: 25px; -} -.bodywebsite .rd-navbar-corporate-dark.rd-navbar-static .rd-navbar-group { - /* padding: 35px 15px; */ - padding-top: 18px; - padding-bottom: 18px; - -webkit-justify-content: space-between; - -ms-flex-pack: justify; - justify-content: space-between; -} -.bodywebsite .rd-navbar-corporate-dark.rd-navbar-static .rd-navbar-nav-inner { - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-flex-direction: row-reverse; - -ms-flex-direction: row-reverse; - flex-direction: row-reverse; - -webkit-flex-wrap: nowrap; - -ms-flex-wrap: nowrap; - flex-wrap: nowrap; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; - -webkit-justify-content: flex-start; - -ms-flex-pack: start; - justify-content: flex-start; -} -.bodywebsite .rd-navbar-corporate-dark.rd-navbar-static .rd-navbar-nav { - margin-right: 23px; -} -.bodywebsite .rd-navbar-corporate-dark.rd-navbar-static .rd-navbar-nav > li { - padding-left: 5px; - padding-right: 5px; -} -.bodywebsite .rd-navbar-corporate-dark.rd-navbar-static .rd-navbar-nav > li > a { - font-size: 13px; -} -.bodywebsite .rd-navbar-corporate-dark.rd-navbar-static .rd-navbar-nav > li.rd-navbar-submenu { - margin-right: -18px; -} -.bodywebsite .rd-navbar-corporate-dark.rd-navbar-static .rd-navbar-nav > li > .rd-navbar-submenu-toggle { - display: inline-block; -} -.bodywebsite .rd-navbar-corporate-dark.rd-navbar-static .rd-navbar-nav > li + li { - margin-left: 32px; -} -.bodywebsite .rd-navbar-corporate-dark.rd-navbar-static .rd-navbar-nav .rd-navbar-dropdown > li { - padding-left: 5px; - padding-right: 5px; -} -@media (min-width: 1200px) { - .bodywebsite .rd-navbar-corporate-dark.rd-navbar-static .rd-navbar-nav > li > a { - font-size: 14px; - } - .bodywebsite .rd-navbar-corporate-dark.rd-navbar-static .rd-navbar-nav > li + li { - margin-left: 29px; - } - .bodywebsite .rd-navbar-corporate-dark.rd-navbar-static .rd-navbar-aside .list-units li:not(:last-child) { - margin-right: 50px; - } -} -.bodywebsite .rd-navbar-corporate-dark.rd-navbar-static .rd-navbar-search { - position: static; - z-index: 2; -} -.bodywebsite .rd-navbar-corporate-dark.rd-navbar-static .rd-navbar-search .rd-search { - position: absolute; - top: -2px; - right: -2px; - bottom: 0; - left: 0; - z-index: 5; - opacity: 0; - visibility: hidden; -} -.bodywebsite .rd-navbar-corporate-dark.rd-navbar-static .rd-navbar-search .rd-search-submit { - width: 39px; - height: 39px; - line-height: 38px; -} -.bodywebsite .rd-navbar-corporate-dark.rd-navbar-static .rd-navbar-search-wrap.active .rd-navbar-nav-wrap { - position: relative; -} -.bodywebsite .rd-navbar-corporate-dark.rd-navbar-static .rd-navbar-search.active + .rd-navbar-nav { - opacity: 0; - visibility: hidden; - pointer-events: none; -} -.bodywebsite .rd-navbar-corporate-dark.rd-navbar-static .rd-navbar-toggle .rd-navbar-nav > li .rd-navbar-toggle { - display: none; -} -.bodywebsite .rd-navbar-corporate-dark.rd-navbar-static.rd-navbar--is-clone .rd-navbar-aside, -.bodywebsite .rd-navbar-corporate-dark.rd-navbar-static.rd-navbar--is-stuck .rd-navbar-aside { - display: none; -} -.bodywebsite .rd-navbar-corporate-dark.rd-navbar-static.rd-navbar--is-clone .rd-navbar-group, -.bodywebsite .rd-navbar-corporate-dark.rd-navbar-static.rd-navbar--is-stuck .rd-navbar-group { - padding-top: 18px; - padding-bottom: 18px; -} -.bodywebsite .rd-navbar-corporate-dark.rd-navbar-static.rd-navbar--is-clone .rd-navbar-nav > li > .rd-navbar-dropdown, -.bodywebsite .rd-navbar-corporate-dark.rd-navbar-static.rd-navbar--is-stuck .rd-navbar-nav > li > .rd-navbar-dropdown { - margin-top: 18px; -} -.bodywebsite .rd-navbar-corporate-light .rd-navbar-nav > li > a { - font: 400 16px "Roboto", Helvetica, Arial, sans-serif; - letter-spacing: .025em; -} -.bodywebsite .rd-navbar-corporate-light .rd-navbar-search .form-input, -.bodywebsite .rd-navbar-corporate-light .rd-navbar-search .form-label { - font-size: 16px; - line-height: 1.3; - color: #9b9b9b; -} -.bodywebsite .rd-navbar-corporate-light .rd-navbar-search .form-label { - top: 18px; - left: 22px; -} -.bodywebsite .rd-navbar-corporate-light .rd-navbar-search .form-input { - padding: 7px 22px 10px; - height: auto; - min-height: 20px; - border: 1px solid #e5e7e9; - border-radius: 3px; -} -.bodywebsite .rd-navbar-corporate-light .rd-navbar-search .rd-navbar-search-toggle, -.bodywebsite .rd-navbar-corporate-light .rd-navbar-search .rd-search-submit { - text-align: center; -} -.bodywebsite .rd-navbar-corporate-light .rd-navbar-search .rd-navbar-search-toggle:before, -.bodywebsite .rd-navbar-corporate-light .rd-navbar-search .rd-search-submit:before { - font-family: 'fl-bigmug-line'; - position: static; - display: inline-block; -} -.bodywebsite .rd-navbar-corporate-light .rd-navbar-search .rd-navbar-search-toggle:before, -.bodywebsite .rd-navbar-corporate-light .rd-navbar-search .rd-navbar-search-toggle:after { - font-size: 20px; -} -.bodywebsite .rd-navbar-corporate-light .rd-navbar-search .rd-navbar-search-toggle:before { - font-family: 'fl-bigmug-line'; - color: #000; -} -.bodywebsite .rd-navbar-corporate-light .rd-navbar-search .rd-navbar-search-toggle:after { - font-family: 'Material Icons'; -} -.bodywebsite .rd-navbar-corporate-light .rd-navbar-search .rd-navbar-search-toggle:hover:before { - color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; -} -.bodywebsite .rd-navbar-corporate-light .rd-navbar-search .rd-navbar-search-toggle, -.bodywebsite .rd-navbar-corporate-light .rd-navbar-search .rd-navbar-search-toggle:before, -.bodywebsite .rd-navbar-corporate-light .rd-navbar-search .rd-navbar-search-toggle:after { - width: 36px; - height: 36px; - text-align: center; -} -.bodywebsite .rd-navbar-corporate-light .rd-navbar-search .rd-navbar-search-toggle:before, -.bodywebsite .rd-navbar-corporate-light .rd-navbar-search .rd-navbar-search-toggle:after { - display: block; - position: absolute; - left: 0; - top: 0; -} -.bodywebsite .rd-navbar-corporate-light .rd-navbar-search .rd-navbar-search-toggle:before { - content: ""; - transform: scale(1) rotate(0deg); -} -.bodywebsite .rd-navbar-corporate-light .rd-navbar-search .rd-navbar-search-toggle:after { - content: ""; - opacity: 0; - transform: scale(0) rotate(-90deg); -} -.bodywebsite .rd-navbar-corporate-light .rd-navbar-search .rd-navbar-search-toggle.active:before { - opacity: 0; - transform: scale(0) rotate(90deg); -} -.bodywebsite .rd-navbar-corporate-light .rd-navbar-search .rd-navbar-search-toggle.active:after { - opacity: 1; - transform: scale(1) rotate(0deg); -} -.bodywebsite .rd-navbar-corporate-light .rd-navbar-aside { - width: 100%; - font-size: 14px; - line-height: 1.71429; -} -.bodywebsite .rd-navbar-corporate-light.rd-navbar-fixed .rd-navbar-search { - padding: 0; -} -.bodywebsite .rd-navbar-corporate-light.rd-navbar-fixed .rd-navbar-search .rd-search { - opacity: 0; - visibility: hidden; - position: fixed; - width: 100%; - padding: 8px 10px; - transform: translateY(-80%); - background: #fff; - border: 1px solid #e5e7e9; - border-top: 0; -} -.bodywebsite .rd-navbar-corporate-light.rd-navbar-fixed .rd-navbar-search.active .rd-search { - opacity: 1; - visibility: visible; - transform: translateY(0); -} -.bodywebsite .rd-navbar-corporate-light.rd-navbar-fixed .rd-navbar-search .form-input { - padding: 7px 46px 10px 22px; -} -.bodywebsite .rd-navbar-corporate-light.rd-navbar-fixed .rd-navbar-search .rd-navbar-search-toggle, -.bodywebsite .rd-navbar-corporate-light.rd-navbar-fixed .rd-navbar-search .rd-search-submit { - font-size: 20px; -} -.bodywebsite .rd-navbar-corporate-light.rd-navbar-fixed .rd-navbar-search .rd-navbar-search-toggle, -.bodywebsite .rd-navbar-corporate-light.rd-navbar-fixed .rd-navbar-search .rd-navbar-search-toggle:active, -.bodywebsite .rd-navbar-corporate-light.rd-navbar-fixed .rd-navbar-search .rd-navbar-search-toggle:focus, -.bodywebsite .rd-navbar-corporate-light.rd-navbar-fixed .rd-navbar-search .rd-search-submit, -.bodywebsite .rd-navbar-corporate-light.rd-navbar-fixed .rd-navbar-search .rd-search-submit:active, -.bodywebsite .rd-navbar-corporate-light.rd-navbar-fixed .rd-navbar-search .rd-search-submit:focus { - color: #000; -} -.bodywebsite .rd-navbar-corporate-light.rd-navbar-fixed .rd-navbar-search .rd-navbar-search-toggle:hover, -.bodywebsite .rd-navbar-corporate-light.rd-navbar-fixed .rd-navbar-search .rd-search-submit:hover { - color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; -} -.bodywebsite .rd-navbar-corporate-light.rd-navbar-fixed .rd-navbar-search .rd-navbar-search-toggle { - position: fixed; - right: 56px; - top: 10px; - z-index: 1000; -} -.bodywebsite .rd-navbar-corporate-light.rd-navbar-fixed .rd-navbar-search .rd-search-submit { - right: 10px; -} -.bodywebsite .rd-navbar-corporate-light.rd-navbar-fixed .rd-navbar-aside-content { - border: 1px solid #e5e7e9; - background: #fff; -} -.bodywebsite .rd-navbar-corporate-light.rd-navbar-fixed .rd-navbar-aside .list-units > li + li { - margin-top: 10px; -} -.bodywebsite .rd-navbar-corporate-light.rd-navbar-fixed .rd-navbar-aside * + .rd-navbar-aside-group { - margin-top: 14px; -} -@media (min-width: 576px) { - .bodywebsite .rd-navbar-corporate-light.rd-navbar-fixed .rd-navbar-aside-content { - width: auto; - } -} -.bodywebsite .rd-navbar-corporate-light.rd-navbar-fixed .rd-navbar-btn-wrap { - padding: 16px 5px; -} -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-navbar-group { - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-flex-direction: row; - -ms-flex-direction: row; - flex-direction: row; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; -} -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-navbar-inner { - padding: 0; - font-size: 0; - line-height: 0; -} -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-navbar-panel { - min-width: 100px; -} -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-navbar-aside { - position: relative; - z-index: 100; -} -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-navbar-aside-wrap, -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-navbar-aside .rd-navbar-aside-content, -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-navbar-aside .rd-navbar-aside-group { - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-flex-direction: row; - -ms-flex-direction: row; - flex-direction: row; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; -} -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-navbar-aside-wrap { - position: relative; - z-index: 1001; - padding: 6px 20px 6px 10px; - -webkit-flex-wrap: nowrap; - -ms-flex-wrap: nowrap; - flex-wrap: nowrap; -} -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-navbar-aside-wrap:after { - content: ''; - position: absolute; - top: 0; - bottom: 0; - left: 50%; - transform: translateX(-50%); - border-bottom: 1px solid #e5e7e9; - width: 101vw; -} -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-navbar-aside-wrap > * + * { - margin-left: 10px; -} -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-navbar-aside .rd-navbar-aside-content { - margin-bottom: -5px; - transform: translateY(-5px); - -webkit-justify-content: space-between; - -ms-flex-pack: justify; - justify-content: space-between; -} -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-navbar-aside .rd-navbar-aside-group { - -webkit-flex-shrink: 0; - -ms-flex-negative: 0; - flex-shrink: 0; -} -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-navbar-aside .rd-navbar-aside-group:first-child { - margin-top: 7px; - -webkit-flex-grow: 8; - -ms-flex-positive: 8; - flex-grow: 8; - -webkit-justify-content: flex-start; - -ms-flex-pack: start; - justify-content: flex-start; - margin-right: 20px; -} -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-navbar-aside .rd-navbar-aside-group:last-child { - margin-top: 5px; - -webkit-justify-content: flex-end; - -ms-flex-pack: end; - justify-content: flex-end; - -webkit-flex-grow: 1; - -ms-flex-positive: 1; - flex-grow: 1; -} -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-navbar-aside .list-units li { - display: inline-block; - margin-top: 0; -} -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-navbar-aside .list-units li:not(:last-child) { - margin-right: 30px; -} -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-navbar-group { - padding: 35px 15px; - -webkit-justify-content: space-between; - -ms-flex-pack: justify; - justify-content: space-between; -} -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-navbar-nav-inner { - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-flex-direction: row-reverse; - -ms-flex-direction: row-reverse; - flex-direction: row-reverse; - -webkit-flex-wrap: nowrap; - -ms-flex-wrap: nowrap; - flex-wrap: nowrap; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; - -webkit-justify-content: flex-start; - -ms-flex-pack: start; - justify-content: flex-start; -} -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-navbar-nav { - margin-right: 40px; -} -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-navbar-nav > li > a { - font-size: 15px; - padding: 7px 0; -} -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-navbar-nav > li.rd-navbar-submenu { - margin-right: -24px; -} -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-navbar-nav > li > .rd-navbar-submenu-toggle { - position: relative; - top: 2px; - display: inline-block; -} -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-navbar-nav > li + li { - margin-left: 37px; -} -@media (min-width: 1200px) { - .bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-navbar-nav > li > a { - font-size: 16px; - } - .bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-navbar-nav > li + li { - margin-left: 48px; - } -} -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-navbar-search { - position: relative; - z-index: 1500; -} -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-navbar-search .form-label { - -webkit-flex-grow: 1; - -ms-flex-positive: 1; - flex-grow: 1; -} -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-navbar-search .form-input, -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-navbar-search .form-label { - color: #fff; - font-size: 30px; - font-weight: 700; -} -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-navbar-search .form-label { - top: 24px; - left: 0; -} -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-navbar-search .form-input { - padding: 10px 50px 9px 0; - background-color: transparent; - border: 0; -} -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-navbar-search .btn { - -webkit-flex-shrink: 0; - -ms-flex-negative: 0; - flex-shrink: 0; -} -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search { - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: -1000; - opacity: 0; - visibility: hidden; - background: rgba(0, 0, 0, 0.96); -} -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-inner { - width: 540px; - margin-top: 75px; - margin-left: auto; - margin-right: auto; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-flex-direction: row; - -ms-flex-direction: row; - flex-direction: row; - -webkit-flex-wrap: nowrap; - -ms-flex-wrap: nowrap; - flex-wrap: nowrap; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; - border-bottom: 1px solid #fff; -} -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-submit { - position: relative; - left: 0; - top: 0; - width: 39px; - height: 39px; - font-size: 25px; - line-height: 39px; - transform: none; -} -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-submit, -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-submit:active, -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-submit:focus { - color: #fff; -} -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-submit:hover { - color: #ababab; -} -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live { - position: relative; - display: block; - top: auto; - right: auto; - bottom: auto; - left: auto; - margin-top: 60px; - margin-left: auto; - margin-right: auto; - width: 800px; - font-size: 20px; - background-color: transparent; - opacity: 1; - visibility: visible; -} -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live > * { - display: block; - padding: 0; -} -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .active .search_list li { - top: 0; - opacity: 1; - visibility: visible; -} -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .search-quick-result { - display: none; -} -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .search_list { - margin: 0; - background-color: transparent; - text-align: left; -} -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .search_list li { - position: relative; - top: 30px; - display: inline-block; - width: 48%; - padding: 0 15px; - text-align: left; - transition: 0.5s all ease-in-out; - opacity: 0; - visibility: hidden; -} -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .search_list .search_all { - top: 0; - margin-top: 40px; - display: inline-block; - width: 100%; - text-align: right; -} -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .search_list li:nth-child(0) { - transition-delay: 0s; -} -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .search_list li:nth-child(1) { - transition-delay: 0.15s; -} -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .search_list li:nth-child(2) { - transition-delay: 0.3s; -} -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .search_list li:nth-child(3) { - transition-delay: 0.45s; -} -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .search_list li:nth-child(4) { - transition-delay: 0.6s; -} -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .search_list li:nth-child(5) { - transition-delay: 0.75s; -} -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .search_list li:nth-child(6) { - transition-delay: 0.9s; -} -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .search_list li:nth-child(7) { - transition-delay: 1.05s; -} -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .search_list li:nth-child(8) { - transition-delay: 1.2s; -} -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .search_list li:nth-child(9) { - transition-delay: 1.35s; -} -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .search_list li:nth-child(10) { - transition-delay: 1.5s; -} -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .search_list li.search_all:nth-child(0) { - transition-delay: 0s; -} -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .search_list li.search_all:nth-child(1) { - transition-delay: 0.2s; -} -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .search_list li.search_all:nth-child(2) { - transition-delay: 0.4s; -} -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .search_list li.search_all:nth-child(3) { - transition-delay: 0.6s; -} -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .search_list li.search_all:nth-child(4) { - transition-delay: 0.8s; -} -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .search_list li.search_all:nth-child(5) { - transition-delay: 1s; -} -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .search_list li.search_all:nth-child(6) { - transition-delay: 1.2s; -} -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .search_list li.search_all:nth-child(7) { - transition-delay: 1.4s; -} -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .search_list li.search_all:nth-child(8) { - transition-delay: 1.6s; -} -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .search_list li.search_all:nth-child(9) { - transition-delay: 1.8s; -} -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .search_list li.search_all:nth-child(10) { - transition-delay: 2s; -} -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .result-item:only-child { - top: 0; - width: 100%; - text-align: center; - transition-delay: 0s; -} -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .result-item:nth-child(n + 3) { - margin-top: 50px; -} -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .search_title { - font: 700 30px/26px Helvetica, Arial, sans-serif; - font-style: italic; -} -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .search_title a, -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .search_title a:active, -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .search_title a:focus { - color: #fff; -} -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .search_title a:hover { - color: #ababab; -} -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .search_title + p { - margin-top: 16px; -} -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .search_error { - line-height: 1.35; - text-align: center; -} -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .search_submit { - display: inline-block; - padding: 10px 35px; - border: 2px solid; -} -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .search_submit, -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .search_submit:active, -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .search_submit.active, -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .search_submit:active:focus, -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .search_submit.active:focus, -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .search_submit:focus:active, -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .search_submit:focus { - color: #fff; - background-color: transparent; - border-color: #fff; -} -.bodywebsite .open > .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .search_submit.dropdown-toggle, -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .search_submit:hover { - color: #414141; - background-color: #fff; - border-color: #fff; -} -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .search_submit.disabled, -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .search_submit[disabled], -.bodywebsite fieldset[disabled] .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .search_submit { - pointer-events: none; - opacity: .5; -} -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search-results-live .search_submit .badge { - color: transparent; - background-color: #fff; -} -@media (min-width: 1600px) and (min-height: 767px) { - .bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search .rd-search-inner { - margin-top: 10%; - } -} -@media (max-height: 767px) { - .bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search .rd-search-results-live .result-item:nth-child(5), - .bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search .rd-search-results-live .result-item:nth-child(6) { - display: none; - } - .bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-search .rd-search-results-live .search_list > li.search_all { - transition-delay: 0.8s; - } -} -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-navbar-search.active .rd-search { - display: block; - z-index: 10000; - margin: 0; - opacity: 1; - visibility: visible; -} -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-navbar-search.active .rd-navbar-search-toggle { - z-index: 10002; -} -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-navbar-search.active .rd-navbar-search-toggle:after { - color: #fff; -} -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-navbar-search.active .rd-navbar-search-toggle:hover:after { - color: #ababab; -} -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static .rd-navbar-toggle .rd-navbar-nav > li .rd-navbar-toggle { - display: none; -} -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static.rd-navbar--is-clone .rd-navbar-aside-wrap, -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static.rd-navbar--is-stuck .rd-navbar-aside-wrap { - position: absolute; - top: -60px; -} -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static.rd-navbar--is-clone .rd-navbar-group, -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static.rd-navbar--is-stuck .rd-navbar-group { - padding-top: 17px; - padding-bottom: 17px; -} -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static.rd-navbar--is-clone .rd-navbar-nav > li > .rd-navbar-dropdown, -.bodywebsite .rd-navbar-corporate-light.rd-navbar-static.rd-navbar--is-stuck .rd-navbar-nav > li > .rd-navbar-dropdown { - margin-top: 50px; -} -html .bodywebsite.boxed.rd-navbar--has-sidebar body { - padding-left: 300px; - padding-right: 30px; -} -html .bodywebsite.boxed .rd-navbar--is-clone { - max-width: 1920px; - margin-left: auto; - margin-right: auto; -} -.bodywebsite .rd-parallax-inner { - position: relative; - overflow: hidden; - -webkit-transform: translate3d(0px, 0px, 0px); - transform: translate3d(0px, 0px, 0px); - z-index: 1; -} -.bodywebsite .rd-parallax-layer[data-type="media"] { - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0; - height: 100%; - pointer-events: none; -} -.bodywebsite .rd-parallax-layer[data-type="media"] iframe { - width: 100%; - height: 100%; -} -.bodywebsite .rd-parallax-layer[data-url] { - -webkit-background-size: cover; - background-size: cover; - background-position: center center; -} -.bodywebsite .rd-parallax[class*="rd-parallax-overlay"] { - background-color: #000; - color: #fff; -} -.bodywebsite .rd-parallax[class*="rd-parallax-overlay"] .rd-parallax-layer[data-type="media"] { - opacity: 0.2; -} -.bodywebsite .rd-parallax[class*="rd-parallax-overlay"] .rd-parallax-layer[data-type="media"] + * { - position: relative; -} -.bodywebsite .rd-parallax.rd-parallax-overlay-2 .rd-parallax-layer[data-type="media"] { - opacity: 0.8; -} -.bodywebsite .google-map-markers { - display: none; -} -.bodywebsite .google-map-container { - width: 100%; -} -.bodywebsite .google-map { - height: 250px; - color: #333; -} -.bodywebsite .google-map img { - max-width: none !important; -} -@media (min-width: 576px) { - .bodywebsite .google-map { - height: 250px; - } -} -@media (min-width: 768px) { - .bodywebsite .google-map { - height: 400px; - } -} -@media (min-width: 1200px) { - .bodywebsite .google-map { - height: 450px; - } -} -@media (min-width: 1800px) { - .bodywebsite .google-map { - height: 532px; - } -} -.bodywebsite .rd-search { - position: relative; -} -.bodywebsite .rd-search .form-wrap { - display: block; - margin: 0; - font-size: 0; -} -.bodywebsite .rd-search label * { - margin-top: 0; -} -.bodywebsite .rd-search .rd-search-submit { - top: 16px; - right: -4px; - background-color: transparent; - border: none; - transform: translateY(-50%); -} -.bodywebsite .rd-search .text-mobile { - display: block; -} -.bodywebsite .rd-search .text-default { - display: none; -} -@media (min-width: 768px) { - .bodywebsite .rd-search .text-mobile { - display: none; - } - .bodywebsite .rd-search .text-default { - display: block; - } -} -.bodywebsite .rd-search-submit { - background: none; - border: none; - padding: 0; - outline: none; - outline-offset: 0; - -webkit-appearance: none; - display: inline-block; - position: relative; - width: 48px; - height: 48px; - line-height: 48px; - cursor: pointer; - color: #00030a; - text-align: center; - font-size: 22px; - position: absolute; - right: 0; - transition: color .33s; -} -.bodywebsite .rd-search-submit::-moz-focus-inner { - border: none; - padding: 0; -} -.bodywebsite .rd-search-submit:before { - font-weight: 400; - font-family: "FontAwesome"; -} -.bodywebsite .rd-search-submit.active { - transform: scale(0.7); -} -.bodywebsite .rd-search-submit:hover { - color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; -} -.bodywebsite .rd-search-minimal { - position: relative; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-flex-direction: row; - -ms-flex-direction: row; - flex-direction: row; - -webkit-flex-wrap: nowrap; - -ms-flex-wrap: nowrap; - flex-wrap: nowrap; - -webkit-align-items: stretch; - -ms-flex-align: stretch; - align-items: stretch; - -webkit-justify-content: center; - -ms-flex-pack: center; - justify-content: center; - padding-left: 40px; - border-bottom: 1px solid #dedede; -} -.bodywebsite .rd-search-minimal:before { - content: '\e8b6'; - position: absolute; - top: 50%; - transform: translateY(-50%); - left: 10px; - font: 400 21px 'Material Icons'; - color: #000; -} -.bodywebsite .rd-search-minimal .form-wrap { - -webkit-flex-grow: 1; - -ms-flex-positive: 1; - flex-grow: 1; -} -.bodywebsite .rd-search-minimal .form-label, -.bodywebsite .rd-search-minimal .form-input { - font: 400 16px/24px "Roboto", Helvetica, Arial, sans-serif; - color: rgba(0, 0, 0, 0.2); - letter-spacing: -0.025em; -} -.bodywebsite .rd-search-minimal .form-label { - top: 29px; -} -.bodywebsite .rd-search-minimal .form-input { - padding: 17px 20px; -} -.bodywebsite .rd-search-minimal button[type='submit'] { - padding: 0 20px; - -webkit-flex-shrink: 0; - -ms-flex-negative: 0; - flex-shrink: 0; -} -@media (min-width: 768px) { - .bodywebsite .rd-search-minimal .form-label, - .bodywebsite .rd-search-minimal .form-input { - font-size: 19px; - } -} -.bodywebsite .rd-search-classic { - overflow: hidden; - border: 1px solid #dedede; - border-radius: 0; -} -.bodywebsite .rd-search-classic .form-input { - min-height: 50px; - padding: 13px 50px 15px 19px; - border: 0; -} -.bodywebsite .rd-search-classic .rd-search-submit { - position: absolute; - right: 0; - top: 0; - bottom: 0; - width: 40px; - line-height: 0; - height: auto; - transform: none; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; - -webkit-justify-content: center; - -ms-flex-pack: center; - justify-content: center; - text-align: left; -} -.bodywebsite .rd-search-classic .rd-search-submit:before { - font: 400 25px 'Material Icons'; -} -.bodywebsite .search_error { - max-width: 100%; - overflow: hidden; - text-overflow: ellipsis; -} -.bodywebsite .rd-search-results-live { - position: absolute; - left: 0; - right: 0; - top: 100%; - z-index: 998; - margin: -3px 0 0; - font-size: 14px; - line-height: 34px; - text-align: left; - color: #9f9f9f; - opacity: 0; - visibility: hidden; -} -.bodywebsite .rd-search-results-live > * { - padding: 16px; - border: 0px solid #dedede; - border-top: 0; -} -.bodywebsite .rd-search-results-live .search-quick-result { - font: 700 14px/24px "Roboto", Helvetica, Arial, sans-serif; - color: #000; - letter-spacing: .06em; - text-transform: uppercase; -} -.bodywebsite .rd-search-results-live .search_list { - margin-top: 10px; - font-size: 16px; - line-height: 30px; -} -.bodywebsite .rd-search-results-live .search_list li + li { - margin-top: 20px; -} -.bodywebsite .rd-search-results-live .search_list .search_error { - padding-bottom: 10px; - font-size: 14px; - line-height: 1.1; -} -.bodywebsite .rd-search-results-live .search_link, -.bodywebsite .rd-search-results-live .search_link:active, -.bodywebsite .rd-search-results-live .search_link:focus { - color: #464a4d; -} -.bodywebsite .rd-search-results-live .search_link:hover { - color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; -} -.bodywebsite .rd-search-results-live p { - margin-top: 0; - font-size: 14px; - line-height: 1.6; -} -.bodywebsite .rd-search-results-live .search_title { - margin-bottom: 0; - font-family: "Roboto", Helvetica, Arial, sans-serif; - font-size: 14px; - font-weight: 700; - color: #000; -} -.bodywebsite .rd-search-results-live .search_submit { - display: block; - padding: 6px 20px; - font-size: 14px; - font-weight: 700; - text-align: center; - color: #fff; - background: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; - border-radius: 5px; - border: 0; - text-transform: uppercase; - transition: 0.3s ease-out; -} -.bodywebsite .rd-search-results-live .search_submit:hover { - color: #fff; - background: #3a3c3e; -} -.bodywebsite .rd-search-results-live .match { - display: none; -} -@media (min-width: 1200px) { - .bodywebsite .rd-search-results-live .search_link p { - display: block; - } -} -.bodywebsite .rd-navbar-fixed-linked .rd-search-results-live { - display: none; -} -.bodywebsite .rd-search-results-live.active.cleared { - opacity: 0; - visibility: hidden; - transition-delay: .08s; -} -.bodywebsite .active .rd-search-results-live { - display: block; - opacity: 1; - visibility: visible; -} -.bodywebsite .rd-search-results .search_list { - text-align: left; - padding-left: 0; - font-size: 14px; - list-style-type: none; - counter-reset: result; -} -.bodywebsite .rd-search-results .result-item { - position: relative; - padding-left: 40px; - color: #9f9f9f; -} -.bodywebsite .rd-search-results .result-item:before { - position: absolute; - top: -1px; - left: 0; - content: counter(result, decimal-leading-zero) "."; - counter-increment: result; - font: 500 19px "Roboto", Helvetica, Arial, sans-serif; - line-height: 1; - color: #cdcdcd; -} -.bodywebsite .rd-search-results .result-item:only-child:before { - display: none; -} -.bodywebsite .rd-search-results .search { - color: #fff; - background: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; -} -.bodywebsite .rd-search-results .search_error .search { - color: #9f9f9f; - background-color: transparent; -} -.bodywebsite .rd-search-results .match em { - font: 700 12px/16px "Roboto", Helvetica, Arial, sans-serif; - font-style: normal; - text-transform: uppercase; - color: #000; -} -.bodywebsite .rd-search-results * + p { - margin-top: 10px; -} -.bodywebsite .rd-search-results * + .match { - margin-top: 5px; -} -.bodywebsite .rd-search-results * + .result-item { - margin-top: 35px; -} -@media (min-width: 576px) { - .bodywebsite .rd-search-results .result-item { - padding-left: 60px; - } - .bodywebsite .rd-search-results .result-item:before { - left: 15px; - font-size: 19px; - } -} -@media (min-width: 768px) { - .bodywebsite .rd-search-results .result-item:before { - top: 0; - } -} -@media (min-width: 992px) { - .bodywebsite .rd-search-results .result-item { - padding-left: 85px; - } - .bodywebsite .rd-search-results .result-item:before { - top: 0; - left: 40px; - } -} -@media (min-width: 1200px) { - .bodywebsite .rd-search-results .result-item { - padding-left: 100px; - } - .bodywebsite .rd-search-results .result-item:before { - left: 44px; - } -} -.bodywebsite .twitter-item-minimal .tweet-user { - font-size: 16px; - font-weight: 700; -} -.bodywebsite .twitter-item-minimal .tweet-user a, -.bodywebsite .twitter-item-minimal .tweet-user a:active, -.bodywebsite .twitter-item-minimal .tweet-user a:focus { - color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; -} -.bodywebsite .twitter-item-minimal .tweet-user a:hover { - color: #000; -} -.bodywebsite .twitter-item-minimal .tweet-user a:before { - content: '-'; -} -.bodywebsite .twitter-item-minimal .tweet-text a, -.bodywebsite .twitter-item-minimal .tweet-text a:active, -.bodywebsite .twitter-item-minimal .tweet-text a:focus { - color: #000; -} -.bodywebsite .twitter-item-minimal .tweet-text a:hover { - color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; -} -.bodywebsite .twitter-item-minimal * + .tweet-text { - margin-top: 0; -} -.bodywebsite .twitter-item-minimal * + .tweet-user { - margin-top: 10px; -} -.bodywebsite .twitter-item-minimal + .twitter-item-minimal { - margin-top: 25px; -} -.bodywebsite .twitter-widget { - overflow: hidden; - background: #fff; - border-radius: 6px; - box-shadow: -1px 0px 10px 0px rgba(65, 65, 65, 0.12); -} -.bodywebsite .twitter-widget > a { - display: block; - color: #9f9f9f; -} -.bodywebsite .twitter-widget .tweet-text a, -.bodywebsite .twitter-widget .tweet-text a:active, -.bodywebsite .twitter-widget .tweet-text a:focus { - color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; -} -.bodywebsite .twitter-widget .tweet-text a:hover { - color: #000; -} -.bodywebsite .twitter-widget .twitter-widget-time { - color: #9f9f9f; -} -.bodywebsite .twitter-widget .twitter-widget-meta > * { - line-height: 1.1; -} -.bodywebsite .twitter-widget .twitter-widget-meta > * + * { - margin-top: 5px; -} -.bodywebsite .twitter-widget .twitter-widget-media { - position: relative; - z-index: 1; - overflow: hidden; -} -.bodywebsite .twitter-widget .twitter-widget-media > img { - position: absolute; - top: 0; - right: 0; - left: 0; - min-height: 101%; -} -.bodywebsite .twitter-widget .twitter-widget-media:empty { - display: none; -} -.bodywebsite .twitter-widget .twitter-widget-media:not(:empty) { - padding-bottom: 42.5170068%; -} -.bodywebsite .twitter-widget .tweet-avatar { - display: block; - width: 48px; - height: 48px; - background: #dedede; -} -.bodywebsite .twitter-widget .twitter-widget-header { - padding: 30px 30px 0 30px; -} -.bodywebsite .twitter-widget .twitter-widget-inset { - padding: 25px 30px 15px; -} -.bodywebsite .twitter-widget .twitter-widget-footer { - padding: 15px 30px; -} -.bodywebsite * + .twitter-widget { - margin-top: 30px; -} -.bodywebsite .swiper-container { - margin: 0 auto; - position: relative; - overflow: hidden; - /* Fix of Webkit flickering */ - z-index: 1; - height: auto; -} -.bodywebsite .swiper-container .swiper-wrapper { - height: auto; - min-height: 36.25vw; -} -@media (min-width: 1800px) { - .bodywebsite .swiper-container .swiper-wrapper { - height: auto; - min-height: 680px; - } -} -.bodywebsite .swiper-container-no-flexbox .swiper-slide { - float: left; -} -.bodywebsite .swiper-container-vertical > .swiper-wrapper { - -webkit-box-orient: vertical; - -moz-box-orient: vertical; - -ms-flex-direction: column; - -webkit-flex-direction: column; - flex-direction: column; -} -.bodywebsite .swiper-wrapper { - position: relative; - width: 100%; - z-index: 1; - display: -webkit-box; - display: -moz-box; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-transition-property: -webkit-transform; - -moz-transition-property: -moz-transform; - -o-transition-property: -o-transform; - -ms-transition-property: -ms-transform; - transition-property: transform; - -webkit-box-sizing: content-box; - -moz-box-sizing: content-box; - box-sizing: content-box; - -webkit-align-self: stretch; - -ms-flex-item-align: stretch; - align-self: stretch; - -webkit-align-items: stretch; - -ms-flex-align: stretch; - align-items: stretch; -} -.bodywebsite .swiper-container-android .swiper-slide, -.bodywebsite .swiper-wrapper { - -webkit-transform: translate3d(0px, 0, 0); - -moz-transform: translate3d(0px, 0, 0); - -o-transform: translate(0px, 0px); - -ms-transform: translate3d(0px, 0, 0); - transform: translate3d(0px, 0, 0); -} -.bodywebsite .swiper-container-multirow > .swiper-wrapper { - -webkit-box-lines: multiple; - -moz-box-lines: multiple; - -ms-flex-wrap: wrap; - -webkit-flex-wrap: wrap; - flex-wrap: wrap; -} -.bodywebsite .swiper-container-free-mode > .swiper-wrapper { - -webkit-transition-timing-function: ease-out; - -moz-transition-timing-function: ease-out; - -ms-transition-timing-function: ease-out; - -o-transition-timing-function: ease-out; - transition-timing-function: ease-out; - margin: 0 auto; -} -.bodywebsite .swiper-slide { - position: relative; - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; - -webkit-flex-shrink: 0; - -ms-flex: 0 0 auto; - flex-shrink: 0; - width: 100%; - min-height: inherit; -} -.bodywebsite .swiper-container .swiper-notification { - position: absolute; - left: 0; - top: 0; - pointer-events: none; - opacity: 0; - z-index: -1000; -} -.bodywebsite .swiper-wp8-horizontal { - -ms-touch-action: pan-y; - touch-action: pan-y; -} -.bodywebsite .swiper-wp8-vertical { - -ms-touch-action: pan-x; - touch-action: pan-x; -} -.bodywebsite .swiper-nav { - position: absolute; - top: 50%; - right: 0; - left: 0; - z-index: 10; - pointer-events: none; - transform: translateY(-50%); -} -.bodywebsite .swiper-button-prev, -.bodywebsite .swiper-button-next { - z-index: 10; - width: 48px; - height: 48px; - background-size: 48px 48px; - color: #fff; - transition: 180ms ease-in-out; - text-align: center; - cursor: pointer; - pointer-events: auto; -} -.bodywebsite .swiper-button-prev:hover, -.bodywebsite .swiper-button-next:hover { - opacity: .7; -} -.bodywebsite .swiper-button-prev.swiper-button-disabled, -.bodywebsite .swiper-button-next.swiper-button-disabled { - opacity: 0; - cursor: auto; - pointer-events: none; -} -.bodywebsite .swiper-button-next { - transform: rotate(180deg); -} -.bodywebsite .swiper-pagination-wrap { - position: absolute; - bottom: 20px; - left: 50%; - width: 100%; - transform: translate3d(-50%, 0, 0); - z-index: 10; -} -@media (min-width: 992px) { - .bodywebsite .swiper-pagination-wrap { - bottom: 35px; - } -} -@media (min-width: 1200px) { - .bodywebsite .swiper-pagination-wrap { - bottom: 55px; - } -} -.bodywebsite .swiper-pagination { - display: block; - width: 100%; - text-align: center; - transition: 300ms; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - z-index: 10; -} -@media (min-width: 768px) { - .bodywebsite .swiper-pagination { - text-align: left; - } -} -.bodywebsite .swiper-pagination.swiper-pagination-hidden { - opacity: 0; -} -.bodywebsite .swiper-pagination-bullet { - display: inline-block; - width: 6px; - height: 6px; - border-radius: 20px; - background: #cdcdcd; - pointer-events: none; - transition: all 0.2s ease-out; -} -.bodywebsite .swiper-pagination-bullet + * { - margin-left: 10px; -} -@media (min-width: 768px) { - .bodywebsite .swiper-pagination-bullet { - width: 12px; - height: 12px; - pointer-events: auto; - } - .bodywebsite .swiper-pagination-bullet + * { - margin-left: 20px; - } -} -.bodywebsite .swiper-pagination-clickable .swiper-pagination-bullet { - cursor: pointer; -} -.bodywebsite .swiper-pagination-white .swiper-pagination-bullet { - background: #fff; -} -.bodywebsite .swiper-pagination-bullet:hover, -.bodywebsite .swiper-pagination-bullet-active { - background: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; -} -.bodywebsite .swiper-pagination-white .swiper-pagination-bullet-active { - background: #fff; -} -.bodywebsite .swiper-pagination-black .swiper-pagination-bullet-active { - background: #000; -} -.bodywebsite .swiper-container-vertical > .swiper-pagination { - right: 10px; - top: 50%; - -webkit-transform: translate3d(0px, -50%, 0); - -moz-transform: translate3d(0px, -50%, 0); - -o-transform: translate(0px, -50%); - -ms-transform: translate3d(0px, -50%, 0); - transform: translate3d(0px, -50%, 0); -} -.bodywebsite .swiper-container-vertical > .swiper-pagination .swiper-pagination-bullet { - margin: 5px 0; - display: block; -} -.bodywebsite .swiper-container-horizontal > .swiper-pagination { - bottom: 20px; - left: 0; - width: 100%; -} -.bodywebsite .swiper-container-horizontal > .swiper-pagination .swiper-pagination-bullet { - margin: 0 5px; -} -.bodywebsite .swiper-container-3d { - -webkit-perspective: 1200px; - -moz-perspective: 1200px; - -o-perspective: 1200px; - perspective: 1200px; -} -.bodywebsite .swiper-container-3d .swiper-wrapper, -.bodywebsite .swiper-container-3d .swiper-slide, -.bodywebsite .swiper-container-3d .swiper-slide-shadow-left, -.bodywebsite .swiper-container-3d .swiper-slide-shadow-right, -.bodywebsite .swiper-container-3d .swiper-slide-shadow-top, -.bodywebsite .swiper-container-3d .swiper-slide-shadow-bottom, -.bodywebsite .swiper-container-3d .swiper-cube-shadow { - -webkit-transform-style: preserve-3d; - -moz-transform-style: preserve-3d; - -ms-transform-style: preserve-3d; - transform-style: preserve-3d; -} -.bodywebsite .swiper-container-3d .swiper-slide-shadow-left, -.bodywebsite .swiper-container-3d .swiper-slide-shadow-right, -.bodywebsite .swiper-container-3d .swiper-slide-shadow-top, -.bodywebsite .swiper-container-3d .swiper-slide-shadow-bottom { - position: absolute; - left: 0; - top: 0; - width: 100%; - height: 100%; - pointer-events: none; - z-index: 10; -} -.bodywebsite .swiper-container-3d .swiper-slide-shadow-left { - background-image: linear-gradient(to left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); -} -.bodywebsite .swiper-container-3d .swiper-slide-shadow-top { - background-image: linear-gradient(to top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); -} -.bodywebsite .swiper-container-3d .swiper-slide-shadow-bottom { - background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); -} -.bodywebsite .swiper-container-coverflow .swiper-wrapper { - /* Windows 8 IE 10 fix */ - -ms-perspective: 1200px; -} -.bodywebsite .swiper-container-fade.swiper-container-free-mode .swiper-slide { - -webkit-transition-timing-function: ease-out; - transition-timing-function: ease-out; -} -.bodywebsite .swiper-container-fade .swiper-slide { - pointer-events: none; -} -.bodywebsite .swiper-container-fade .swiper-slide .swiper-slide { - pointer-events: none; -} -.bodywebsite .swiper-container-fade .swiper-slide-active, -.bodywebsite .swiper-container-fade .swiper-slide-active .swiper-slide-active { - pointer-events: auto; -} -.bodywebsite .swiper-container-cube { - overflow: visible; -} -.bodywebsite .swiper-container-cube .swiper-slide { - pointer-events: none; - visibility: hidden; - -webkit-transform-origin: 0 0; - -moz-transform-origin: 0 0; - -ms-transform-origin: 0 0; - transform-origin: 0 0; - -webkit-backface-visibility: hidden; - -moz-backface-visibility: hidden; - -ms-backface-visibility: hidden; - backface-visibility: hidden; - width: 100%; - height: 100%; - z-index: 1; -} -.bodywebsite .swiper-container-cube.swiper-container-rtl .swiper-slide { - -webkit-transform-origin: 100% 0; - -moz-transform-origin: 100% 0; - -ms-transform-origin: 100% 0; - transform-origin: 100% 0; -} -.bodywebsite .swiper-container-cube .swiper-slide-active, -.bodywebsite .swiper-container-cube .swiper-slide-next, -.bodywebsite .swiper-container-cube .swiper-slide-prev, -.bodywebsite .swiper-container-cube .swiper-slide-next + .swiper-slide { - pointer-events: auto; - visibility: visible; -} -.bodywebsite .swiper-container-cube .swiper-slide-shadow-top, -.bodywebsite .swiper-container-cube .swiper-slide-shadow-bottom, -.bodywebsite .swiper-container-cube .swiper-slide-shadow-left, -.bodywebsite .swiper-container-cube .swiper-slide-shadow-right { - z-index: 0; - -webkit-backface-visibility: hidden; - -moz-backface-visibility: hidden; - -ms-backface-visibility: hidden; - backface-visibility: hidden; -} -.bodywebsite .swiper-container-cube .swiper-cube-shadow { - position: absolute; - left: 0; - bottom: 0px; - width: 100%; - height: 100%; - background: #000; - opacity: 0.6; - -webkit-filter: blur(50px); - filter: blur(50px); - z-index: 0; -} -.bodywebsite .swiper-scrollbar { - position: relative; - -ms-touch-action: none; -} -.bodywebsite .swiper-container-horizontal > .swiper-scrollbar { - position: absolute; - top: 0; - left: 0; - z-index: 50; - height: 5px; - width: 100%; -} -.bodywebsite .swiper-container-vertical > .swiper-scrollbar { - position: absolute; - right: 3px; - top: 1%; - z-index: 50; - width: 5px; - height: 98%; -} -.bodywebsite .swiper-scrollbar-drag { - height: 100%; - width: 100%; - position: relative; - background: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; - left: 0; - top: 0; -} -.bodywebsite .swiper-scrollbar-cursor-drag { - cursor: move; -} -.bodywebsite .swiper-lazy-preloader { - width: 42px; - height: 42px; - position: absolute; - left: 50%; - top: 50%; - margin-left: -21px; - margin-top: -21px; - z-index: 10; - -webkit-transform-origin: 50%; - -moz-transform-origin: 50%; - transform-origin: 50%; - -webkit-animation: swiper-preloader-spin 1s steps(12, end) infinite; - -moz-animation: swiper-preloader-spin 1s steps(12, end) infinite; - animation: swiper-preloader-spin 1s steps(12, end) infinite; -} -.bodywebsite .swiper-lazy-preloader:after { - display: block; - content: ""; - width: 100%; - height: 100%; - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20viewBox%3D'0%200%20120%20120'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20xmlns%3Axlink%3D'http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink'%3E%3Cdefs%3E%3Cline%20id%3D'l'%20x1%3D'60'%20x2%3D'60'%20y1%3D'7'%20y2%3D'27'%20stroke%3D'%236c6c6c'%20stroke-width%3D'11'%20stroke-linecap%3D'round'%2F%3E%3C%2Fdefs%3E%3Cg%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(30%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(60%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(90%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(120%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(150%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.37'%20transform%3D'rotate(180%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.46'%20transform%3D'rotate(210%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.56'%20transform%3D'rotate(240%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.66'%20transform%3D'rotate(270%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.75'%20transform%3D'rotate(300%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.85'%20transform%3D'rotate(330%2060%2C60)'%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); - background-position: 50%; - -webkit-background-size: 100%; - background-size: 100%; - background-repeat: no-repeat; -} -.bodywebsite .swiper-lazy-preloader-white:after { - background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20viewBox%3D'0%200%20120%20120'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20xmlns%3Axlink%3D'http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink'%3E%3Cdefs%3E%3Cline%20id%3D'l'%20x1%3D'60'%20x2%3D'60'%20y1%3D'7'%20y2%3D'27'%20stroke%3D'%23fff'%20stroke-width%3D'11'%20stroke-linecap%3D'round'%2F%3E%3C%2Fdefs%3E%3Cg%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(30%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(60%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(90%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(120%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(150%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.37'%20transform%3D'rotate(180%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.46'%20transform%3D'rotate(210%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.56'%20transform%3D'rotate(240%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.66'%20transform%3D'rotate(270%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.75'%20transform%3D'rotate(300%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.85'%20transform%3D'rotate(330%2060%2C60)'%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); -} -@-webkit-keyframes swiper-preloader-spin { - 100% { - -webkit-transform: rotate(360deg); - } -} -@keyframes swiper-preloader-spin { - 100% { - transform: rotate(360deg); - } -} -.bodywebsite .swiper-slide > .vide__body, -.bodywebsite .swiper-slide > .parallax_cnt { - height: 100%; -} -.bodywebsite .swiper-slide { - position: relative; - text-align: center; - white-space: nowrap; - background-position: center center; - overflow: hidden; -} -.bodywebsite .swiper-slide:not(.vide):not(.rd-parallax):before, -.bodywebsite .swiper-slide .parallax_cnt:before, -.bodywebsite .swiper-slide .vide__body:before { - content: ''; - display: inline-block; - height: 50%; -} -.bodywebsite .swiper-slide-caption { - display: inline-block; - width: 100%; - max-height: 100%; - margin-left: -0.25em; - vertical-align: middle; - white-space: normal; - z-index: 1; -} -.bodywebsite .swiper-variant-1, -.bodywebsite .swiper-variant-1 .swiper-wrapper { - height: auto; - min-height: calc(44vh); -} -.bodywebsite .swiper-variant-1 .swiper-slide-caption { - padding: 40px 0 40px; -} -.bodywebsite .swiper-variant-1 .swiper-button-prev, -.bodywebsite .swiper-variant-1 .swiper-button-next { - display: none; -} -.bodywebsite .swiper-variant-1 .slider-text { - display: none; -} -.bodywebsite .swiper-variant-1 .jumbotron-custom + * { - margin-top: 5px; -} -.bodywebsite .swiper-variant-1 * + .button-block { - margin-top: 27px; -} -@media (min-width: 768px) { - .bodywebsite .swiper-variant-1, - .bodywebsite .swiper-variant-1 .swiper-wrapper { - height: auto; - min-height: 36.25vw; - } - .bodywebsite .swiper-variant-1 .swiper-slide-caption { - padding: 60px 0 115px; - } - .bodywebsite .swiper-variant-1 .slider-header { - font-size: 50px; - } - .bodywebsite .swiper-variant-1 .slider-text { - display: block; - } -} -@media (min-width: 992px) { - .bodywebsite .swiper-variant-1 .swiper-slide-caption { - padding: 100px 0 155px; - } - .bodywebsite .swiper-variant-1 .swiper-button-prev, - .bodywebsite .swiper-variant-1 .swiper-button-next { - position: absolute; - top: 50%; - transform: translateY(-59%); - z-index: 10; - display: block; - transition: .3s all ease; - } - .bodywebsite .swiper-variant-1 .swiper-button-prev { - left: 5.1%; - transform: scale(-1, 1); - } - .bodywebsite .swiper-variant-1 .swiper-button-next { - right: 5.1%; - } -} -@media (min-width: 1200px) { - .bodywebsite .swiper-variant-1 .slider-header { - font-size: 59px; - } - .bodywebsite .swiper-variant-1 .swiper-button-prev { - left: 20px; - } - .bodywebsite .swiper-variant-1 .swiper-button-next { - right: 20px; - } -} -@media (min-width: 1599px) { - .bodywebsite .swiper-variant-1 .swiper-button-prev { - left: calc(50vw - 1170px / 2 - 170px + (1170px / 12) * 0); - } - .bodywebsite .swiper-variant-1 .swiper-button-next { - right: calc(50vw - 1170px / 2 - 170px + (1170px / 12) * 0); - } -} -@media (min-width: 1800px) { - .bodywebsite .swiper-variant-1, - .bodywebsite .swiper-variant-1 .swiper-wrapper { - height: auto; - min-height: 680px; - } -} -.bodywebsite .ui-to-top { - width: 40px; - height: 40px; - font-size: 18px; - line-height: 38px; - border-radius: 50%; - position: fixed; - right: 15px; - bottom: 15px; - overflow: hidden; - text-align: center; - text-decoration: none; - z-index: 20; - transition: .3s all ease; - box-shadow: 0 0 1px 0px rgba(55, 195, 134, 0.3); - transform: translateY(100px); -} -.bodywebsite .ui-to-top, -.bodywebsite .ui-to-top:active, -.bodywebsite .ui-to-top:focus { - color: #fff; - background: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; -} -.bodywebsite .ui-to-top:hover { - color: #fff; - background: maincolorbis) ? '#6ca' : '#'.$website->maincolorbis; ?>; - box-shadow: 0 0 1px 0px rgba(0, 0, 0, 0.4); -} -.bodywebsite .ui-to-top:focus { - outline: 0; -} -.bodywebsite .ui-to-top.active { - transform: translateY(0); -} -.bodywebsite .mobile .ui-to-top, -.bodywebsite .tablet .ui-to-top { - display: none !important; -} -@media (min-width: 576px) { - .bodywebsite .ui-to-top { - right: 40px; - bottom: 40px; - } -} -.bodywebsite .progress-bar-wrap { - max-width: 100%; - width: 210px; -} -@media (min-width: 576px) and (max-width: 767px) { - .bodywebsite .progress-bar-wrap { - max-width: 120px; - } -} -@media (min-width: 768px) { - .bodywebsite .progress-bar-wrap { - max-width: 150px; - } -} -.bodywebsite .progress-bar { - position: relative; - width: 100%; - margin: 0; - font-family: "Roboto", Helvetica, Arial, sans-serif; -} -.bodywebsite .progress-bar .progress-bar__body { - position: absolute; - right: 50%; - width: 100%; - top: 50%; - padding: 0; - margin: 0; - white-space: nowrap; - font-size: 34px; - font-weight: 400; - line-height: 26px; - color: #00030a; - text-align: right; -} -.bodywebsite .progress-bar .progress-bar__body:after { - content: '%'; -} -.bodywebsite .progress-bar .progress-bar__stroke, -.bodywebsite .progress-bar .progress-bar__trail { - stroke-linejoin: round; -} -.bodywebsite .progress-bar-horizontal { - position: relative; - font-family: "Roboto", Helvetica, Arial, sans-serif; - text-align: right; -} -.bodywebsite .progress-bar-horizontal > svg { - margin-top: 3px; - border-radius: 3px; -} -.bodywebsite .progress-bar-horizontal .progress-bar__body { - position: absolute; - top: -27px; - margin-top: 0; - padding-right: 0; -} -.bodywebsite .progress-bar-horizontal .progress-bar__body:after { - content: '%'; -} -.bodywebsite .progress-bar-radial { - position: relative; - padding-bottom: 100%; -} -.bodywebsite .progress-bar-radial > svg { - position: absolute; - width: 100%; - height: 100%; - left: 0; - top: 0; - border-radius: 5px; - overflow: hidden; -} -.bodywebsite .progress-bar-radial .progress-bar__stroke, -.bodywebsite .progress-bar-radial .progress-bar__trail { - stroke-location: outside; -} -.bodywebsite .progress-bar-radial .progress-bar__body { - transform: translate(50%, -50%); -} -.bodywebsite .progress-bar-default .progress-bar__stroke { - stroke: #9f9f9f; -} -.bodywebsite .progress-bar-default .progress-bar__trail { - stroke: rgba(159, 159, 159, 0.05); -} -.bodywebsite .progress-bar-primary .progress-bar__stroke { - stroke: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; -} -.bodywebsite .progress-bar-primary .progress-bar__trail { - stroke: #F8F9FB; -} -.bodywebsite .progress-bar-bermuda-gray .progress-bar__stroke { - stroke: #6f8fad; -} -.bodywebsite .progress-bar-bermuda-gray .progress-bar__trail { - stroke: #F8F9FB; -} -.bodywebsite .progress-bar-contessa .progress-bar__stroke { - stroke: #e76752; -} -.bodywebsite .progress-bar-contessa .progress-bar__trail { - stroke: #F8F9FB; -} -.bodywebsite .progress-bar-red-orange-1 .progress-bar__stroke { - stroke: #f8333c; -} -.bodywebsite .progress-bar-red-orange-1 .progress-bar__trail { - stroke: #ededed; -} -.bodywebsite .progress-bar-dodger-blue .progress-bar__stroke { - stroke: #45a4ff; -} -.bodywebsite .progress-bar-dodger-blue .progress-bar__trail { - stroke: #ededed; -} -.bodywebsite .progress-bar-gorse .progress-bar__stroke { - stroke: #fde74c; -} -.bodywebsite .progress-bar-gorse .progress-bar__trail { - stroke: #ededed; -} -.bodywebsite .progress-bar-old-gold .progress-bar__stroke { - stroke: #ecd746; -} -.bodywebsite .progress-bar-old-gold .progress-bar__trail { - stroke: #F8F9FB; -} -.bodywebsite .progress-bar-secondary-2 .progress-bar__stroke { - stroke: #dedede; -} -.bodywebsite .progress-bar-secondary-2 .progress-bar__trail { - stroke: gray; -} -.bodywebsite .progress-bar-secondary-1 .progress-bar__stroke { - stroke: #dedede; -} -.bodywebsite .progress-bar-secondary-1 .progress-bar__trail { - stroke: rgba(159, 159, 159, 0.05); -} -.bodywebsite .progress-bar-secondary-3 .progress-bar__stroke { - stroke: #c49558; -} -.bodywebsite .progress-bar-secondary-3 .progress-bar__trail { - stroke: rgba(159, 159, 159, 0.05); -} -.bodywebsite .progress-bar-secondary-4 .progress-bar__stroke { - stroke: #fe4a21; -} -.bodywebsite .progress-bar-secondary-4 .progress-bar__trail { - stroke: rgba(159, 159, 159, 0.05); -} -.bodywebsite .countdown-wrap { - max-width: 720px; - max-height: 134px; -} -.bodywebsite .countdown-wrap .time_circles > div { - display: -ms-flexbox; - display: -webkit-flex; - display: flex; - -webkit-flex-direction: column-reverse; - -ms-flex-direction: column-reverse; - flex-direction: column-reverse; - -webkit-flex-wrap: nowrap; - -ms-flex-wrap: nowrap; - flex-wrap: nowrap; - -webkit-align-items: center; - -ms-flex-align: center; - align-items: center; - -webkit-justify-content: center; - -ms-flex-pack: center; - justify-content: center; - font-size: 0; - line-height: 0; -} -.bodywebsite .countdown-wrap div > h4 { - position: relative; - margin-top: -2px; - font: 500 12px "Roboto", Helvetica, Arial, sans-serif !important; - color: rgba(0, 0, 0, 0.2); - letter-spacing: -0.025em; - bottom: auto !important; - text-transform: uppercase; -} -@media (min-width: 576px) { - .bodywebsite .countdown-wrap div > h4 { - font-size: 14px !important; - } -} -.bodywebsite .countdown-wrap span { - font: 900 18px "Roboto", Helvetica, Arial, sans-serif !important; - font-style: normal; - color: #000; -} -@media (min-width: 576px) { - .bodywebsite .countdown-wrap span { - font-size: 40px !important; - } -} -@media (min-width: 768px) { - .bodywebsite .countdown-wrap span { - font-size: 45px !important; - line-height: 1; - } -} -.bodywebsite .slick-slider { - position: relative; - display: block; - -moz-box-sizing: border-box; - box-sizing: border-box; - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - -ms-touch-action: pan-y; - touch-action: pan-y; - -webkit-tap-highlight-color: transparent; -} -.bodywebsite .slick-list { - position: relative; - overflow: hidden; - display: block; - margin: 0; - padding: 0; -} -.bodywebsite .slick-list:focus { - outline: none; -} -.bodywebsite .slick-list.dragging { - cursor: pointer; - cursor: hand; -} -.bodywebsite .slick-slider .slick-track, -.bodywebsite .slick-slider .slick-list { - -webkit-transform: translate3d(0, 0, 0); - -moz-transform: translate3d(0, 0, 0); - -ms-transform: translate3d(0, 0, 0); - -o-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); -} -.bodywebsite .slick-track { - position: relative; - left: 0; - top: 0; - display: block; -} -.bodywebsite .slick-track:before, -.bodywebsite .slick-track:after { - content: ""; - display: table; -} -.bodywebsite .slick-track:after { - clear: both; -} -.bodywebsite .slick-loading .slick-track { - visibility: hidden; -} -.bodywebsite .slick-slide { - float: left; - min-height: 1px; - display: none; -} -.bodywebsite [dir="rtl"] .slick-slide { - float: right; -} -.bodywebsite .slick-slide img { - display: block; -} -.bodywebsite .slick-slide.slick-loading img { - display: none; -} -.bodywebsite .slick-slide.dragging img { - pointer-events: none; -} -.bodywebsite .slick-initialized .slick-slide { - display: block; -} -.bodywebsite .slick-loading .slick-slide { - visibility: hidden; -} -.bodywebsite .slick-vertical .slick-slide { - display: block; - height: auto; - border: 1px solid transparent; -} -.bodywebsite .slick-arrow.slick-hidden { - display: none; -} -.bodywebsite .slick-loading .slick-list { - background: #fff url("medias/image/ref; ?>/ajax-loading.gif") center center no-repeat; -} -.bodywebsite .slick-prev, -.bodywebsite .slick-next { - position: absolute; - display: block; - height: 20px; - width: 20px; - line-height: 0; - font-size: 0; - cursor: pointer; - background: rgba(0, 0, 0, 0.6); - color: transparent; - top: 50%; - -webkit-transform: translate(0, -50%); - -ms-transform: translate(0, -50%); - transform: translate(0, -50%); - padding: 0; - border: none; - outline: none; - z-index: 999; -} -.bodywebsite .slick-prev:hover, -.bodywebsite .slick-prev:focus, -.bodywebsite .slick-next:hover, -.bodywebsite .slick-next:focus { - outline: none; - background: transparent; - color: transparent; -} -.bodywebsite .slick-prev:hover:before, -.bodywebsite .slick-prev:focus:before, -.bodywebsite .slick-next:hover:before, -.bodywebsite .slick-next:focus:before { - opacity: 1; -} -.bodywebsite .slick-prev.slick-disabled:before, -.bodywebsite .slick-next.slick-disabled:before { - opacity: 0.25; -} -.bodywebsite .slick-prev:before, -.bodywebsite .slick-next:before { - font-family: "Roboto", Helvetica, Arial, sans-serif; - font-size: 20px; - line-height: 1; - color: white; - opacity: 0.75; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} -.bodywebsite .slick-prev { - left: 0; -} -.bodywebsite [dir="rtl"] .slick-prev { - left: auto; - right: 0; -} -.bodywebsite .slick-prev:before { - content: "←"; -} -.bodywebsite [dir="rtl"] .slick-prev:before { - content: "→"; -} -.bodywebsite .slick-next { - right: 0; -} -.bodywebsite [dir="rtl"] .slick-next { - left: 0; - right: auto; -} -.bodywebsite .slick-next:before { - content: "→"; -} -.bodywebsite [dir="rtl"] .slick-next:before { - content: "←"; -} -.bodywebsite .slick-slider { - margin-top: 30px; -} -.bodywebsite .slick-slider *:focus { - outline: 0; -} -.bodywebsite .slick-dots { - display: block; - margin-top: 20px; - list-style: none; - width: 100%; - padding: 0; - text-align: center; - font-size: 0; - line-height: 0; - word-spacing: 0; -} -.bodywebsite .slick-dots li { - position: relative; - display: inline-block; - height: 20px; - width: 20px; - margin: 0 5px; - padding: 0; - cursor: pointer; -} -.bodywebsite .slick-dots li button { - background: none; - border: none; - display: inline-block; - padding: 0; - outline: none; - outline-offset: 0; - cursor: pointer; - -webkit-appearance: none; - width: 8px; - height: 8px; - border-radius: 100px; - background: #ababab; -} -.bodywebsite .slick-dots li button::-moz-focus-inner { - border: none; - padding: 0; -} -.bodywebsite .slick-dots li.slick-active button, -.bodywebsite .slick-dots li:hover button { - background: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; -} -.bodywebsite .slick-dots-variant-1 .slick-dots li button { - height: 12px; - width: 12px; - background: rgba(58, 60, 62, 0.5); - transition: .33s all ease; - position: relative; -} -.bodywebsite .slick-dots-variant-1 .slick-dots li button:after { - content: ''; - position: absolute; - top: 50%; - left: 50%; - width: 19px; - height: 19px; - border: 4px solid #fff; - opacity: 0; - border-radius: 50%; - -webkit-transform: translate(-50%, -50%) scale(0); - transform: translate(-50%, -50%) scale(0); - transition: 180ms ease-in-out; -} -.bodywebsite .slick-dots-variant-1 .slick-dots li.slick-active button, -.bodywebsite .slick-dots-variant-1 .slick-dots li:hover button { - background: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; -} -.bodywebsite .slick-dots-variant-1 .slick-dots li.slick-active button:after, -.bodywebsite .slick-dots-variant-1 .slick-dots li:hover button:after { - opacity: 1; - -webkit-transform: translate(-50%, -50%) scale(1); - transform: translate(-50%, -50%) scale(1); -} -.bodywebsite .slick-carousel-complex-variant-1 { - position: relative; - padding-bottom: 60px; -} -.bodywebsite .slick-carousel-complex-variant-1:after { - content: ''; - position: absolute; - top: 80px; - left: 50%; - bottom: 0; - transform: translateX(-50%); - width: 101vw; - background: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; -} -.bodywebsite .slick-carousel-complex-variant-1 > * { - position: relative; - z-index: 2; -} -.bodywebsite .slick-carousel-complex-variant-1 .slick-slider { - margin-bottom: 0; -} -.bodywebsite .slick-carousel-complex-variant-1 .slick-dots { - margin-top: 30px; -} -@media (min-width: 768px) { - .bodywebsite .slick-carousel-complex-variant-1 { - padding-bottom: 90px; - } -} -.bodywebsite .slick-slider-images .item { - padding: 0 15px; - text-align: right; -} -.bodywebsite .slick-slider-images .item img { - display: inline-block; - transform: scale(0.75); - transform-origin: 100% 50%; - will-change: transform; - cursor: pointer; - transition: .5s all ease; -} -.bodywebsite .slick-slider-images .item.slick-center { - text-align: center; -} -.bodywebsite .slick-slider-images .item.slick-center img { - transform-origin: 50% 50%; - transform: scale(1); -} -.bodywebsite .slick-slider-images .item.slick-center + * { - text-align: left; -} -.bodywebsite .slick-slider-images .item.slick-center + * img { - transform-origin: 0 50%; -} -.bodywebsite .slick-carousel-round-image .item img { - border-radius: 50%; -} -.bodywebsite .carousel-testimonials-home .slick-slide { - text-align: center; -} -.bodywebsite #sectiontestimonies.maincolorbackground { - background-image: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; -} -@media (min-width: 576px) { - .bodywebsite .carousel-testimonials-home .slick-slide { - text-align: left; - } -} -.bodywebsite .carousel-testimonials-home .slick-dots li button { - background: rgba(246, 247, 250, 0.5); -} -.bodywebsite .carousel-testimonials-home .item { - padding-left: 10px; - padding-right: 10px; -} -@media (min-width: 1200px) { - .bodywebsite .carousel-testimonials-home .item { - padding-left: 0; - padding-right: 0; - } -} -@media (min-width: 576px) { - .bodywebsite .carousel-testimonials-home .slick-dots { - display: none !important; - } -} -.bodywebsite .carousel-testimonials-home .slick-images .item { - padding-left: 0; - padding-right: 0; -} -.bodywebsite .carousel-testimonials-home .slick-images .item .imp-wrap { - text-align: center; - position: relative; - padding: 10px; -} -.bodywebsite .carousel-testimonials-home .slick-images .item .imp-wrap:after { - position: absolute; - top: 50%; - left: 50%; - transform: translate(-50%, -50%) scale(0); - content: ''; - display: inline-block; - margin-left: 0px; - border: 1px solid #fccb56; - width: 116px; - height: 116px; - border-radius: 50%; - transition: 200ms ease-in-out; - opacity: 0; - pointer-events: none; -} -.bodywebsite .carousel-testimonials-home .slick-images .item .imp-wrap img { - display: inline-block; - border-radius: 50%; - cursor: pointer; -} -.bodywebsite .carousel-testimonials-home .slick-images .item:hover .imp-wrap:after, -.bodywebsite .carousel-testimonials-home .slick-images .item.slick-current .imp-wrap:after { - transform: translate(-50%, -50%) scale(1); - opacity: 1; -} -.bodywebsite .carousel-testimonials-home .quote-desc { - -webkit-justify-content: center; - -ms-flex-pack: center; - justify-content: center; -} -.bodywebsite .websitemaincolor { - color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; -} -.bodywebsite .maincolor { - color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; -} -.bodywebsite .maincolorbis { - color: maincolorbis) ? '#6ca' : '#'.$website->maincolorbis; ?> !important; -} -.bodywebsite .maincolorbackground { - background-color: maincolor) ? 'rgb(50, 120, 180)' : '#'.$website->maincolor; ?>; -} -.bodywebsite .maincolorbisbackground { - background-color: maincolorbis) ? '#6ca' : '#'.$website->maincolorbis; ?> !important; - border-color: maincolorbis) ? '#6ca' : '#'.$website->maincolorbis; ?> !important; -} -.bodywebsite .maincolorbisbackground:hover { - box-shadow: 1px 1px 8px #aaa; -} -.bodywebsite textarea:focus, -.bodywebsite button:focus { - border: unset !important; -} -.bodywebsite .marginrightonly { - margin-right: 10px !important; -} -.bodywebsite .inline-block { - display: inline-block; -} -.bodywebsite .valignmiddle { - vertical-align: middle; -} -.bodywebsite .center { - text-align: center; -} -.bodywebsite button.buttonwithnoborder.toggle-original.active { - display: none; -} -.bodywebsite .rd-navbar-nav-wrap.active .toggle-original span.icon.icon-xs.icon-dusty-gray.fa.fa-search { - display: none; -} -.bodywebsite ul.rd-navbar-list { - padding-top: 20px; -} -.bodywebsite .photouser:hover, -.bodywebsite .photouser:active { - border: 2px solid #eee; -} -.bodywebsite .imp-wrap { - display: inline-block; -} -.bodywebsite .imp-wrap img { - border-radius: 50px; -} -.bodywebsite .text-green { - color: #6ca; -} -.bodywebsite .plan-tile .plan-title { - padding: 20px 0 0; - font-size: 20px; - font-weight: bold; - text-align: center; -} -.bodywebsite .plan-tile .plan-tag { - color: #687484; - text-align: center; - font-size: 16px; - padding: 0 5px 10px; - font-weight: 300; - min-height: 70px; -} -.bodywebsite .plan-tile .plan-pricer .plan-price-title { - display: block; - text-align: center; - color: #8492A6; - font-style: italic; - position: absolute; - top: 30px; - transform: translateX(-50%); - -webkit-transform: translateX(-50%); - left: 50%; - font-size: 16px; - width: 100%; - font-weight: 300; -} -.bodywebsite .plan-tile .plan-feat { - display: block; - font-size: 14px; - color: #3C4858; - text-align: center; - padding: 22px 10px; - min-height: 90px; -} -.bodywebsite .plan-tile .plan-pricer .plan-price { - border-bottom: 1px solid #d5dadf; - border-top: 1px solid #d5dadf; - padding: 20px 0 20px; - display: block; -} -.bodywebsite .plan-tile .plan-pricer .plan-price > span { - color: #3C4858; - font-size: 32px; -} -.bodywebsite .plan-tile .plan-pricer .plan-price > span > sup { - font-size: 13px; - top: -0.9em; -} -.bodywebsite .plan-tile .plan-pricer { - padding: 5px 0; - text-align: center; - max-width: 90%; - position: relative; - margin: auto; -} -.bodywebsite .pricing-plan-slider .plan-tile .plan-btn { - position: absolute; - bottom: 0px; - left: 0; - width: 100%; -} -.bodywebsite .plan-tile .plan-btn { - text-align: center; - padding: 0 15px 15px 15px; -} -.bodywebsite .plan-features { - padding-top: 20px; - padding-bottom: 20px; - padding-left: 20px; - padding-right: 20px; -} -.bodywebsite .formcontact div { - margin: 2px; -} -.bodywebsite section#sectionfooterdolibarr { - padding-left: 3px; - padding-right: 3px; - padding-bottom: 10px; -} -.bodywebsite button.buttonwithnoborder.toggle-original { - font: 400 18px/36px "FontAwesome"; - /* If removed, the search icon is not visible */ -} -.bodywebsite .rd-navbar-fixed .buttonsearchwhenstatic { - display: none; -} -.bodywebsite input[type="text"] { - display: block; - width: 100%; - padding: 11px 35px; - font-size: 14px; - line-height: 1.25; - background-image: none; - background-clip: padding-box; - border: 1px solid #ced4da; - border-radius: 0.25rem; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s; -} -@media print { - .bodywebsite *, - .bodywebsite *::before, - .bodywebsite *::after { - text-shadow: none !important; - box-shadow: none !important; - } - .bodywebsite a, - .bodywebsite a:visited { - text-decoration: underline; - } - .bodywebsite abbr[title]::after { - content: " (" attr(title) ")"; - } - .bodywebsite pre { - white-space: pre-wrap !important; - } - .bodywebsite pre, - .bodywebsite blockquote { - border: 1px solid #999; - page-break-inside: avoid; - } - .bodywebsite thead { - display: table-header-group; - } - .bodywebsite tr, - .bodywebsite img { - page-break-inside: avoid; - } - .bodywebsite p, - .bodywebsite h2, - .bodywebsite h3 { - orphans: 3; - widows: 3; - } - .bodywebsite h2, - .bodywebsite h3 { - page-break-after: avoid; - } - .bodywebsite .navbar { - display: none; - } - .bodywebsite .badge { - border: 1px solid #000; - } - .bodywebsite .table { - border-collapse: collapse !important; - } - .bodywebsite .table td, - .bodywebsite .table th { - background-color: #fff !important; - } - .bodywebsite .table-bordered th, - .bodywebsite .table-bordered td { - border: 1px solid #ddd !important; - } -} -.bodywebsite *, -.bodywebsite *::before, -.bodywebsite *::after { - box-sizing: border-box; -} -html .bodywebsite { - font-family: sans-serif; - -webkit-text-size-adjust: 100%; - -ms-text-size-adjust: 100%; - -ms-overflow-style: scrollbar; - -webkit-tap-highlight-color: rgba(0, 0, 0, 0); -} -@-ms-viewport { - width: device-width; -} -.bodywebsite article, -.bodywebsite aside, -.bodywebsite dialog, -.bodywebsite figcaption, -.bodywebsite figure, -.bodywebsite footer, -.bodywebsite header, -.bodywebsite hgroup, -.bodywebsite main, -.bodywebsite nav, -.bodywebsite section { - display: block; -} -.bodywebsite { - margin: 0; - font-family: "Roboto", Helvetica, Arial, sans-serif; - font-size: 14px; - font-weight: 400; - line-height: 1.71429; - text-align: left; - background-color: #fff; -} -.bodywebsite [tabindex="-1"]:focus { - outline: none !important; -} -.bodywebsite hr { - box-sizing: content-box; - height: 0; - overflow: visible; -} -.bodywebsite h1, -.bodywebsite h2, -.bodywebsite h3, -.bodywebsite h4, -.bodywebsite h5, -.bodywebsite h6 { - margin-top: 0; - margin-bottom: 0.5rem; -} -.bodywebsite abbr[title], -.bodywebsite abbr[data-original-title] { - text-decoration: underline; - text-decoration: underline dotted; - cursor: help; - border-bottom: 0; -} -.bodywebsite address { - margin-bottom: 1rem; - font-style: normal; - line-height: inherit; -} -.bodywebsite ol, -.bodywebsite ul, -.bodywebsite dl { - margin-top: 0; -} -.bodywebsite ol ol, -.bodywebsite ul ul, -.bodywebsite ol ul, -.bodywebsite ul ol { - margin-bottom: 0; -} -.bodywebsite dt { - font-weight: inherit; -} -.bodywebsite dd { - margin-bottom: .5rem; - margin-left: 0; -} -.bodywebsite blockquote { - margin: 0 0 1rem; -} -.bodywebsite dfn { - font-style: italic; -} -.bodywebsite b, -.bodywebsite strong { - font-weight: bolder; -} -.bodywebsite small { - font-size: 80%; -} -.bodywebsite sub, -.bodywebsite sup { - position: relative; - font-size: 75%; - line-height: 0; - vertical-align: baseline; -} -.bodywebsite sub { - bottom: -0.25em; -} -.bodywebsite sup { - top: -0.5em; -} -.bodywebsite a { - text-decoration: none; - -webkit-text-decoration-skip: objects; -} -.bodywebsite a:hover { - text-decoration: none; -} -.bodywebsite a:not([href]):not([tabindex]) { - color: inherit; - text-decoration: none; -} -.bodywebsite a:not([href]):not([tabindex]):focus, -.bodywebsite a:not([href]):not([tabindex]):hover { - color: inherit; - text-decoration: none; -} -.bodywebsite a:not([href]):not([tabindex]):focus { - outline: 0; -} -.bodywebsite pre, -.bodywebsite code, -.bodywebsite kbd, -.bodywebsite samp { - font-family: monospace, monospace; - font-size: 1em; -} -.bodywebsite pre { - margin-top: 0; - margin-bottom: 1rem; - overflow: auto; - -ms-overflow-style: scrollbar; -} -.bodywebsite figure { - margin: 0 0 1rem; -} -.bodywebsite img { - vertical-align: middle; - border-style: none; -} -.bodywebsite svg:not(:root) { - overflow: hidden; -} -.bodywebsite a, -.bodywebsite area, -.bodywebsite button, -.bodywebsite [role="button"], -.bodywebsite input:not([type="range"]), -.bodywebsite label, -.bodywebsite select, -.bodywebsite summary, -.bodywebsite textarea { - touch-action: manipulation; -} -.bodywebsite table { - border-collapse: collapse; -} -.bodywebsite caption { - padding-top: 17px 25px 18px; - padding-bottom: 17px 25px 18px; - color: #dedede; - text-align: left; - caption-side: bottom; -} -.bodywebsite th { - text-align: inherit; -} -.bodywebsite label { - display: inline-block; - margin-bottom: .5rem; -} -.bodywebsite button { - border-radius: 0; -} -.bodywebsite button:focus { - outline: 1px dotted; - outline: 5px auto -webkit-focus-ring-color; -} -.bodywebsite input, -.bodywebsite button, -.bodywebsite select, -.bodywebsite optgroup, -.bodywebsite textarea { - margin: 0; - font-family: inherit; - font-size: inherit; - line-height: inherit; -} -.bodywebsite button, -.bodywebsite input { - overflow: visible; -} -.bodywebsite button, -.bodywebsite select { - text-transform: none; -} -.bodywebsite button, -html .bodywebsite [type="button"], -.bodywebsite [type="reset"], -.bodywebsite [type="submit"] { - -webkit-appearance: button; -} -.bodywebsite button::-moz-focus-inner, -.bodywebsite [type="button"]::-moz-focus-inner, -.bodywebsite [type="reset"]::-moz-focus-inner, -.bodywebsite [type="submit"]::-moz-focus-inner { - padding: 0; - border-style: none; -} -.bodywebsite input[type="radio"], -.bodywebsite input[type="checkbox"] { - box-sizing: border-box; - padding: 0; -} -.bodywebsite input[type="date"], -.bodywebsite input[type="time"], -.bodywebsite input[type="datetime-local"], -.bodywebsite input[type="month"] { - -webkit-appearance: listbox; -} -.bodywebsite textarea { - overflow: auto; - resize: vertical; -} -.bodywebsite fieldset { - min-width: 0; - padding: 0; - margin: 0; - border: 0; -} -.bodywebsite legend { - display: block; - width: 100%; - max-width: 100%; - padding: 0; - margin-bottom: .5rem; - font-size: 1.5rem; - line-height: inherit; - color: inherit; - white-space: normal; -} -.bodywebsite progress { - vertical-align: baseline; -} -.bodywebsite [type="number"]::-webkit-inner-spin-button, -.bodywebsite [type="number"]::-webkit-outer-spin-button { - height: auto; -} -.bodywebsite [type="search"] { - outline-offset: -2px; - -webkit-appearance: none; -} -.bodywebsite [type="search"]::-webkit-search-cancel-button, -.bodywebsite [type="search"]::-webkit-search-decoration { - -webkit-appearance: none; -} -.bodywebsite ::-webkit-file-upload-button { - font: inherit; - -webkit-appearance: button; -} -.bodywebsite output { - display: inline-block; -} -.bodywebsite summary { - display: list-item; -} -.bodywebsite template { - display: none; -} -.bodywebsite [hidden] { - display: none !important; -} -.bodywebsite h1, -.bodywebsite h2, -.bodywebsite h3, -.bodywebsite h4, -.bodywebsite h5, -.bodywebsite h6, -.bodywebsite .h1, -.bodywebsite .h2, -.bodywebsite .h3, -.bodywebsite .h4, -.bodywebsite .h5, -.bodywebsite .h6 { - margin-bottom: 0.5rem; - font-family: "Roboto", Helvetica, Arial, sans-serif; - font-weight: 700; - line-height: 1.1; - color: #000; -} -.bodywebsite h1, -.bodywebsite .h1 { - font-size: 45px; -} -.bodywebsite h2, -.bodywebsite .h2 { - font-size: 24px; -} -.bodywebsite h3, -.bodywebsite .h3 { - font-size: 33px; -} -.bodywebsite h4, -.bodywebsite .h4 { - font-size: 18px; -} -.bodywebsite .lead { - font-size: 24px; - font-weight: 300; -} -.bodywebsite .display-1 { - font-size: 6rem; - font-weight: 300; - line-height: 1.2; -} -.bodywebsite .display-2 { - font-size: 5.5rem; - font-weight: 300; - line-height: 1.2; -} -.bodywebsite .display-3 { - font-size: 4.5rem; - font-weight: 300; - line-height: 1.2; -} -.bodywebsite .display-4 { - font-size: 3.5rem; - font-weight: 300; - line-height: 1.2; -} -.bodywebsite hr { - margin-top: 1rem; - margin-bottom: 1rem; - border: 0; - border-top: 1px solid #2a2b2b; -} -.bodywebsite small, -.bodywebsite .small { - font-size: 80%; - font-weight: 400; -} -.bodywebsite mark, -.bodywebsite .mark { - padding: 5px 10px; - background-color: #37c386; -} -.bodywebsite .list-unstyled { - padding-left: 0; - list-style: none; -} -.bodywebsite .list-inline { - padding-left: 0; - list-style: none; -} -.bodywebsite .list-inline-item { - display: inline-block; -} -.bodywebsite .list-inline-item:not(:last-child) { - margin-right: 5px; -} -.bodywebsite .initialism { - font-size: 90%; - text-transform: uppercase; -} -.bodywebsite .blockquote { - margin-bottom: 1rem; - font-size: 17.5px; -} -.bodywebsite .blockquote-footer { - display: block; - font-size: 80%; - color: #dedede; -} -.bodywebsite .blockquote-footer::before { - content: "\2014 \00A0"; -} -.bodywebsite .img-fluid { - max-width: 100%; - height: auto; -} -.bodywebsite code, -.bodywebsite kbd, -.bodywebsite pre, -.bodywebsite samp { - font-family: Menlo, Monaco, Consolas, "Courier New", monospace; -} -.bodywebsite code { - padding: 10px 5px; - font-size: 90%; - color: #00030a; - background-color: #edeff4; - border-radius: 0; -} -.bodywebsite a > code { - padding: 0; - color: inherit; - background-color: inherit; -} -.bodywebsite kbd { - padding: 10px 5px; - font-size: 90%; - color: #fff; - background-color: #212529; - border-radius: 3px; - box-shadow: inset 0 -0.1rem 0 rgba(0, 0, 0, 0.25); -} -.bodywebsite kbd kbd { - padding: 0; - font-size: 100%; - font-weight: 700; - box-shadow: none; -} -.bodywebsite pre { - display: block; - margin-top: 0; - margin-bottom: 1rem; - font-size: 90%; - color: #212529; -} -.bodywebsite pre code { - padding: 0; - font-size: inherit; - color: inherit; - background-color: transparent; - border-radius: 0; -} -.bodywebsite .pre-scrollable { - max-height: 340px; - overflow-y: scroll; -} -.bodywebsite .container { - width: 100%; - padding-right: 15px; - padding-left: 15px; - margin-right: auto; - margin-left: auto; -} -@media (min-width: 576px) { - .bodywebsite .container { - max-width: 540px; - } -} -@media (min-width: 768px) { - .bodywebsite .container { - max-width: 720px; - } -} -@media (min-width: 992px) { - .bodywebsite .container { - max-width: 960px; - } -} -@media (min-width: 1200px) { - .bodywebsite .container { - max-width: 1170px; - } -} -.bodywebsite .container-fluid { - width: 100%; - padding-right: 15px; - padding-left: 15px; - margin-right: auto; - margin-left: auto; -} -.bodywebsite .row { - display: flex; - flex-wrap: wrap; - margin-right: -15px; - margin-left: -15px; -} -.bodywebsite .no-gutters { - margin-right: 0; - margin-left: 0; -} -.bodywebsite .no-gutters > .col, -.bodywebsite .no-gutters > [class*="col-"] { - padding-right: 0; - padding-left: 0; -} -.bodywebsite .col-1, -.bodywebsite .col-2, -.bodywebsite .col-3, -.bodywebsite .col-4, -.bodywebsite .col-5, -.bodywebsite .col-6, -.bodywebsite .col-7, -.bodywebsite .col-8, -.bodywebsite .col-9, -.bodywebsite .col-10, -.bodywebsite .col-11, -.bodywebsite .col-12, -.bodywebsite .col, -.bodywebsite .col-auto, -.bodywebsite .col-sm-1, -.bodywebsite .col-sm-2, -.bodywebsite .col-sm-3, -.bodywebsite .col-sm-4, -.bodywebsite .col-sm-5, -.bodywebsite .col-sm-6, -.bodywebsite .col-sm-7, -.bodywebsite .col-sm-8, -.bodywebsite .col-sm-9, -.bodywebsite .col-sm-10, -.bodywebsite .col-sm-11, -.bodywebsite .col-sm-12, -.bodywebsite .col-sm, -.bodywebsite .col-sm-auto, -.bodywebsite .col-md-1, -.bodywebsite .col-md-2, -.bodywebsite .col-md-3, -.bodywebsite .col-md-4, -.bodywebsite .col-md-5, -.bodywebsite .col-md-6, -.bodywebsite .col-md-7, -.bodywebsite .col-md-8, -.bodywebsite .col-md-9, -.bodywebsite .col-md-10, -.bodywebsite .col-md-11, -.bodywebsite .col-md-12, -.bodywebsite .col-md, -.bodywebsite .col-md-auto, -.bodywebsite .col-lg-1, -.bodywebsite .col-lg-2, -.bodywebsite .col-lg-3, -.bodywebsite .col-lg-4, -.bodywebsite .col-lg-5, -.bodywebsite .col-lg-6, -.bodywebsite .col-lg-7, -.bodywebsite .col-lg-8, -.bodywebsite .col-lg-9, -.bodywebsite .col-lg-10, -.bodywebsite .col-lg-11, -.bodywebsite .col-lg-12, -.bodywebsite .col-lg, -.bodywebsite .col-lg-auto, -.bodywebsite .col-xl-1, -.bodywebsite .col-xl-2, -.bodywebsite .col-xl-3, -.bodywebsite .col-xl-4, -.bodywebsite .col-xl-5, -.bodywebsite .col-xl-6, -.bodywebsite .col-xl-7, -.bodywebsite .col-xl-8, -.bodywebsite .col-xl-9, -.bodywebsite .col-xl-10, -.bodywebsite .col-xl-11, -.bodywebsite .col-xl-12, -.bodywebsite .col-xl, -.bodywebsite .col-xl-auto, -.bodywebsite .col-xxl-1, -.bodywebsite .col-xxl-2, -.bodywebsite .col-xxl-3, -.bodywebsite .col-xxl-4, -.bodywebsite .col-xxl-5, -.bodywebsite .col-xxl-6, -.bodywebsite .col-xxl-7, -.bodywebsite .col-xxl-8, -.bodywebsite .col-xxl-9, -.bodywebsite .col-xxl-10, -.bodywebsite .col-xxl-11, -.bodywebsite .col-xxl-12, -.bodywebsite .col-xxl, -.bodywebsite .col-xxl-auto { - position: relative; - width: 100%; - min-height: 1px; - padding-right: 15px; - padding-left: 15px -} -.bodywebsite .col { - flex-basis: 0; - flex-grow: 1; - max-width: 100%; -} -.bodywebsite .col-auto { - flex: 0 0 auto; - width: auto; - max-width: none; -} -.bodywebsite .col-1 { - flex: 0 0 8.33333%; - max-width: 8.33333%; -} -.bodywebsite .col-2 { - flex: 0 0 16.66667%; - max-width: 16.66667%; -} -.bodywebsite .col-3 { - flex: 0 0 25%; - max-width: 25%; -} -.bodywebsite .col-4 { - flex: 0 0 33.33333%; - max-width: 33.33333%; -} -.bodywebsite .col-5 { - flex: 0 0 41.66667%; - max-width: 41.66667%; -} -.bodywebsite .col-6 { - flex: 0 0 50%; - max-width: 50%; -} -.bodywebsite .col-7 { - flex: 0 0 58.33333%; - max-width: 58.33333%; -} -.bodywebsite .col-8 { - flex: 0 0 66.66667%; - max-width: 66.66667%; -} -.bodywebsite .col-9 { - flex: 0 0 75%; - max-width: 75%; -} -.bodywebsite .col-10 { - flex: 0 0 83.33333%; - max-width: 83.33333%; -} -.bodywebsite .col-11 { - flex: 0 0 91.66667%; - max-width: 91.66667%; -} -.bodywebsite .col-12 { - flex: 0 0 100%; - max-width: 100%; -} -.bodywebsite .order-first { - order: -1; -} -.bodywebsite .order-1 { - order: 1; -} -.bodywebsite .order-2 { - order: 2; -} -.bodywebsite .order-3 { - order: 3; -} -.bodywebsite .order-4 { - order: 4; -} -.bodywebsite .order-5 { - order: 5; -} -.bodywebsite .order-6 { - order: 6; -} -.bodywebsite .order-7 { - order: 7; -} -.bodywebsite .order-8 { - order: 8; -} -.bodywebsite .order-9 { - order: 9; -} -.bodywebsite .order-10 { - order: 10; -} -.bodywebsite .order-11 { - order: 11; -} -.bodywebsite .order-12 { - order: 12; -} -.bodywebsite .offset-1 { - margin-left: 8.33333%; -} -.bodywebsite .offset-2 { - margin-left: 16.66667%; -} -.bodywebsite .offset-3 { - margin-left: 25%; -} -.bodywebsite .offset-4 { - margin-left: 33.33333%; -} -.bodywebsite .offset-5 { - margin-left: 41.66667%; -} -.bodywebsite .offset-6 { - margin-left: 50%; -} -.bodywebsite .offset-7 { - margin-left: 58.33333%; -} -.bodywebsite .offset-8 { - margin-left: 66.66667%; -} -.bodywebsite .offset-9 { - margin-left: 75%; -} -.bodywebsite .offset-10 { - margin-left: 83.33333%; -} -.bodywebsite .offset-11 { - margin-left: 91.66667%; -} -@media (min-width: 576px) { - .bodywebsite .col-sm { - flex-basis: 0; - flex-grow: 1; - max-width: 100%; - } - .bodywebsite .col-sm-auto { - flex: 0 0 auto; - width: auto; - max-width: none; - } - .bodywebsite .col-sm-1 { - flex: 0 0 8.33333%; - max-width: 8.33333%; - } - .bodywebsite .col-sm-2 { - flex: 0 0 16.66667%; - max-width: 16.66667%; - } - .bodywebsite .col-sm-3 { - flex: 0 0 25%; - max-width: 25%; - } - .bodywebsite .col-sm-4 { - flex: 0 0 33.33333%; - max-width: 33.33333%; - } - .bodywebsite .col-sm-5 { - flex: 0 0 41.66667%; - max-width: 41.66667%; - } - .bodywebsite .col-sm-6 { - flex: 0 0 50%; - max-width: 50%; - } - .bodywebsite .col-sm-7 { - flex: 0 0 58.33333%; - max-width: 58.33333%; - } - .bodywebsite .col-sm-8 { - flex: 0 0 66.66667%; - max-width: 66.66667%; - } - .bodywebsite .col-sm-9 { - flex: 0 0 75%; - max-width: 75%; - } - .bodywebsite .col-sm-10 { - flex: 0 0 83.33333%; - max-width: 83.33333%; - } - .bodywebsite .col-sm-11 { - flex: 0 0 91.66667%; - max-width: 91.66667%; - } - .bodywebsite .col-sm-12 { - flex: 0 0 100%; - max-width: 100%; - } - .bodywebsite .order-sm-first { - order: -1; - } - .bodywebsite .order-sm-1 { - order: 1; - } - .bodywebsite .order-sm-2 { - order: 2; - } - .bodywebsite .order-sm-3 { - order: 3; - } - .bodywebsite .order-sm-4 { - order: 4; - } - .bodywebsite .order-sm-5 { - order: 5; - } - .bodywebsite .order-sm-6 { - order: 6; - } - .bodywebsite .order-sm-7 { - order: 7; - } - .bodywebsite .order-sm-8 { - order: 8; - } - .bodywebsite .order-sm-9 { - order: 9; - } - .bodywebsite .order-sm-10 { - order: 10; - } - .bodywebsite .order-sm-11 { - order: 11; - } - .bodywebsite .order-sm-12 { - order: 12; - } - .bodywebsite .offset-sm-0 { - margin-left: 0; - } - .bodywebsite .offset-sm-1 { - margin-left: 8.33333%; - } - .bodywebsite .offset-sm-2 { - margin-left: 16.66667%; - } - .bodywebsite .offset-sm-3 { - margin-left: 25%; - } - .bodywebsite .offset-sm-4 { - margin-left: 33.33333%; - } - .bodywebsite .offset-sm-5 { - margin-left: 41.66667%; - } - .bodywebsite .offset-sm-6 { - margin-left: 50%; - } - .bodywebsite .offset-sm-7 { - margin-left: 58.33333%; - } - .bodywebsite .offset-sm-8 { - margin-left: 66.66667%; - } - .bodywebsite .offset-sm-9 { - margin-left: 75%; - } - .bodywebsite .offset-sm-10 { - margin-left: 83.33333%; - } - .bodywebsite .offset-sm-11 { - margin-left: 91.66667%; - } -} -@media (min-width: 768px) { - .bodywebsite .col-md { - flex-basis: 0; - flex-grow: 1; - max-width: 100%; - } - .bodywebsite .col-md-auto { - flex: 0 0 auto; - width: auto; - max-width: none; - } - .bodywebsite .col-md-1 { - flex: 0 0 8.33333%; - max-width: 8.33333%; - } - .bodywebsite .col-md-2 { - flex: 0 0 16.66667%; - max-width: 16.66667%; - } - .bodywebsite .col-md-3 { - flex: 0 0 25%; - max-width: 25%; - } - .bodywebsite .col-md-4 { - flex: 0 0 33.33333%; - max-width: 33.33333%; - } - .bodywebsite .col-md-5 { - flex: 0 0 41.66667%; - max-width: 41.66667%; - } - .bodywebsite .col-md-6 { - flex: 0 0 50%; - max-width: 50%; - } - .bodywebsite .col-md-7 { - flex: 0 0 58.33333%; - max-width: 58.33333%; - } - .bodywebsite .col-md-8 { - flex: 0 0 66.66667%; - max-width: 66.66667%; - } - .bodywebsite .col-md-9 { - flex: 0 0 75%; - max-width: 75%; - } - .bodywebsite .col-md-10 { - flex: 0 0 83.33333%; - max-width: 83.33333%; - } - .bodywebsite .col-md-11 { - flex: 0 0 91.66667%; - max-width: 91.66667%; - } - .bodywebsite .col-md-12 { - flex: 0 0 100%; - max-width: 100%; - } - .bodywebsite .order-md-first { - order: -1; - } - .bodywebsite .order-md-1 { - order: 1; - } - .bodywebsite .order-md-2 { - order: 2; - } - .bodywebsite .order-md-3 { - order: 3; - } - .bodywebsite .order-md-4 { - order: 4; - } - .bodywebsite .order-md-5 { - order: 5; - } - .bodywebsite .order-md-6 { - order: 6; - } - .bodywebsite .order-md-7 { - order: 7; - } - .bodywebsite .order-md-8 { - order: 8; - } - .bodywebsite .order-md-9 { - order: 9; - } - .bodywebsite .order-md-10 { - order: 10; - } - .bodywebsite .order-md-11 { - order: 11; - } - .bodywebsite .order-md-12 { - order: 12; - } - .bodywebsite .offset-md-0 { - margin-left: 0; - } - .bodywebsite .offset-md-1 { - margin-left: 8.33333%; - } - .bodywebsite .offset-md-2 { - margin-left: 16.66667%; - } - .bodywebsite .offset-md-3 { - margin-left: 25%; - } - .bodywebsite .offset-md-4 { - margin-left: 33.33333%; - } - .bodywebsite .offset-md-5 { - margin-left: 41.66667%; - } - .bodywebsite .offset-md-6 { - margin-left: 50%; - } - .bodywebsite .offset-md-7 { - margin-left: 58.33333%; - } - .bodywebsite .offset-md-8 { - margin-left: 66.66667%; - } - .bodywebsite .offset-md-9 { - margin-left: 75%; - } - .bodywebsite .offset-md-10 { - margin-left: 83.33333%; - } - .bodywebsite .offset-md-11 { - margin-left: 91.66667%; - } -} -@media (min-width: 992px) { - .bodywebsite .col-lg { - flex-basis: 0; - flex-grow: 1; - max-width: 100%; - } - .bodywebsite .col-lg-auto { - flex: 0 0 auto; - width: auto; - max-width: none; - } - .bodywebsite .col-lg-1 { - flex: 0 0 8.33333%; - max-width: 8.33333%; - } - .bodywebsite .col-lg-2 { - flex: 0 0 16.66667%; - max-width: 16.66667%; - } - .bodywebsite .col-lg-3 { - flex: 0 0 25%; - max-width: 25%; - } - .bodywebsite .col-lg-4 { - flex: 0 0 33.33333%; - max-width: 33.33333%; - } - .bodywebsite .col-lg-5 { - flex: 0 0 41.66667%; - max-width: 41.66667%; - } - .bodywebsite .col-lg-6 { - flex: 0 0 50%; - max-width: 50%; - } - .bodywebsite .col-lg-7 { - flex: 0 0 58.33333%; - max-width: 58.33333%; - } - .bodywebsite .col-lg-8 { - flex: 0 0 66.66667%; - max-width: 66.66667%; - } - .bodywebsite .col-lg-9 { - flex: 0 0 75%; - max-width: 75%; - } - .bodywebsite .col-lg-10 { - flex: 0 0 83.33333%; - max-width: 83.33333%; - } - .bodywebsite .col-lg-11 { - flex: 0 0 91.66667%; - max-width: 91.66667%; - } - .bodywebsite .col-lg-12 { - flex: 0 0 100%; - max-width: 100%; - } - .bodywebsite .order-lg-first { - order: -1; - } - .bodywebsite .order-lg-1 { - order: 1; - } - .bodywebsite .order-lg-2 { - order: 2; - } - .bodywebsite .order-lg-3 { - order: 3; - } - .bodywebsite .order-lg-4 { - order: 4; - } - .bodywebsite .order-lg-5 { - order: 5; - } - .bodywebsite .order-lg-6 { - order: 6; - } - .bodywebsite .order-lg-7 { - order: 7; - } - .bodywebsite .order-lg-8 { - order: 8; - } - .bodywebsite .order-lg-9 { - order: 9; - } - .bodywebsite .order-lg-10 { - order: 10; - } - .bodywebsite .order-lg-11 { - order: 11; - } - .bodywebsite .order-lg-12 { - order: 12; - } - .bodywebsite .offset-lg-0 { - margin-left: 0; - } - .bodywebsite .offset-lg-1 { - margin-left: 8.33333%; - } - .bodywebsite .offset-lg-2 { - margin-left: 16.66667%; - } - .bodywebsite .offset-lg-3 { - margin-left: 25%; - } - .bodywebsite .offset-lg-4 { - margin-left: 33.33333%; - } - .bodywebsite .offset-lg-5 { - margin-left: 41.66667%; - } - .bodywebsite .offset-lg-6 { - margin-left: 50%; - } - .bodywebsite .offset-lg-7 { - margin-left: 58.33333%; - } - .bodywebsite .offset-lg-8 { - margin-left: 66.66667%; - } - .bodywebsite .offset-lg-9 { - margin-left: 75%; - } - .bodywebsite .offset-lg-10 { - margin-left: 83.33333%; - } - .bodywebsite .offset-lg-11 { - margin-left: 91.66667%; - } -} -@media (min-width: 1200px) { - .bodywebsite .col-xl { - flex-basis: 0; - flex-grow: 1; - max-width: 100%; - } - .bodywebsite .col-xl-auto { - flex: 0 0 auto; - width: auto; - max-width: none; - } - .bodywebsite .col-xl-1 { - flex: 0 0 8.33333%; - max-width: 8.33333%; - } - .bodywebsite .col-xl-2 { - flex: 0 0 16.66667%; - max-width: 16.66667%; - } - .bodywebsite .col-xl-3 { - flex: 0 0 25%; - max-width: 25%; - } - .bodywebsite .col-xl-4 { - flex: 0 0 33.33333%; - max-width: 33.33333%; - } - .bodywebsite .col-xl-5 { - flex: 0 0 41.66667%; - max-width: 41.66667%; - } - .bodywebsite .col-xl-6 { - flex: 0 0 50%; - max-width: 50%; - } - .bodywebsite .col-xl-7 { - flex: 0 0 58.33333%; - max-width: 58.33333%; - } - .bodywebsite .col-xl-8 { - flex: 0 0 66.66667%; - max-width: 66.66667%; - } - .bodywebsite .col-xl-9 { - flex: 0 0 75%; - max-width: 75%; - } - .bodywebsite .col-xl-10 { - flex: 0 0 83.33333%; - max-width: 83.33333%; - } - .bodywebsite .col-xl-11 { - flex: 0 0 91.66667%; - max-width: 91.66667%; - } - .bodywebsite .col-xl-12 { - flex: 0 0 100%; - max-width: 100%; - } - .bodywebsite .order-xl-first { - order: -1; - } - .bodywebsite .order-xl-1 { - order: 1; - } - .bodywebsite .order-xl-2 { - order: 2; - } - .bodywebsite .order-xl-3 { - order: 3; - } - .bodywebsite .order-xl-4 { - order: 4; - } - .bodywebsite .order-xl-5 { - order: 5; - } - .bodywebsite .order-xl-6 { - order: 6; - } - .bodywebsite .order-xl-7 { - order: 7; - } - .bodywebsite .order-xl-8 { - order: 8; - } - .bodywebsite .order-xl-9 { - order: 9; - } - .bodywebsite .order-xl-10 { - order: 10; - } - .bodywebsite .order-xl-11 { - order: 11; - } - .bodywebsite .order-xl-12 { - order: 12; - } - .bodywebsite .offset-xl-0 { - margin-left: 0; - } - .bodywebsite .offset-xl-1 { - margin-left: 8.33333%; - } - .bodywebsite .offset-xl-2 { - margin-left: 16.66667%; - } - .bodywebsite .offset-xl-3 { - margin-left: 25%; - } - .bodywebsite .offset-xl-4 { - margin-left: 33.33333%; - } - .bodywebsite .offset-xl-5 { - margin-left: 41.66667%; - } - .bodywebsite .offset-xl-6 { - margin-left: 50%; - } - .bodywebsite .offset-xl-7 { - margin-left: 58.33333%; - } - .bodywebsite .offset-xl-8 { - margin-left: 66.66667%; - } - .bodywebsite .offset-xl-9 { - margin-left: 75%; - } - .bodywebsite .offset-xl-10 { - margin-left: 83.33333%; - } - .bodywebsite .offset-xl-11 { - margin-left: 91.66667%; - } -} -@media (min-width: 1800px) { - .bodywebsite .col-xxl { - flex-basis: 0; - flex-grow: 1; - max-width: 100%; - } - .bodywebsite .col-xxl-auto { - flex: 0 0 auto; - width: auto; - max-width: none; - } - .bodywebsite .col-xxl-1 { - flex: 0 0 8.33333%; - max-width: 8.33333%; - } - .bodywebsite .col-xxl-2 { - flex: 0 0 16.66667%; - max-width: 16.66667%; - } - .bodywebsite .col-xxl-3 { - flex: 0 0 25%; - max-width: 25%; - } - .bodywebsite .col-xxl-4 { - flex: 0 0 33.33333%; - max-width: 33.33333%; - } - .bodywebsite .col-xxl-5 { - flex: 0 0 41.66667%; - max-width: 41.66667%; - } - .bodywebsite .col-xxl-6 { - flex: 0 0 50%; - max-width: 50%; - } - .bodywebsite .col-xxl-7 { - flex: 0 0 58.33333%; - max-width: 58.33333%; - } - .bodywebsite .col-xxl-8 { - flex: 0 0 66.66667%; - max-width: 66.66667%; - } - .bodywebsite .col-xxl-9 { - flex: 0 0 75%; - max-width: 75%; - } - .bodywebsite .col-xxl-10 { - flex: 0 0 83.33333%; - max-width: 83.33333%; - } - .bodywebsite .col-xxl-11 { - flex: 0 0 91.66667%; - max-width: 91.66667%; - } - .bodywebsite .col-xxl-12 { - flex: 0 0 100%; - max-width: 100%; - } - .bodywebsite .order-xxl-first { - order: -1; - } - .bodywebsite .order-xxl-1 { - order: 1; - } - .bodywebsite .order-xxl-2 { - order: 2; - } - .bodywebsite .order-xxl-3 { - order: 3; - } - .bodywebsite .order-xxl-4 { - order: 4; - } - .bodywebsite .order-xxl-5 { - order: 5; - } - .bodywebsite .order-xxl-6 { - order: 6; - } - .bodywebsite .order-xxl-7 { - order: 7; - } - .bodywebsite .order-xxl-8 { - order: 8; - } - .bodywebsite .order-xxl-9 { - order: 9; - } - .bodywebsite .order-xxl-10 { - order: 10; - } - .bodywebsite .order-xxl-11 { - order: 11; - } - .bodywebsite .order-xxl-12 { - order: 12; - } - .bodywebsite .offset-xxl-0 { - margin-left: 0; - } - .bodywebsite .offset-xxl-1 { - margin-left: 8.33333%; - } - .bodywebsite .offset-xxl-2 { - margin-left: 16.66667%; - } - .bodywebsite .offset-xxl-3 { - margin-left: 25%; - } - .bodywebsite .offset-xxl-4 { - margin-left: 33.33333%; - } - .bodywebsite .offset-xxl-5 { - margin-left: 41.66667%; - } - .bodywebsite .offset-xxl-6 { - margin-left: 50%; - } - .bodywebsite .offset-xxl-7 { - margin-left: 58.33333%; - } - .bodywebsite .offset-xxl-8 { - margin-left: 66.66667%; - } - .bodywebsite .offset-xxl-9 { - margin-left: 75%; - } - .bodywebsite .offset-xxl-10 { - margin-left: 83.33333%; - } - .bodywebsite .offset-xxl-11 { - margin-left: 91.66667%; - } -} -.bodywebsite .table { - width: 100%; - max-width: 100%; - margin-bottom: 1rem; - background-color: transparent; -} -.bodywebsite .table th, -.bodywebsite .table td { - padding: 17px 25px 18px; - vertical-align: top; - border-top: 1px solid #d9d9d9; -} -.bodywebsite .table thead th { - vertical-align: bottom; - border-bottom: 2px solid #d9d9d9; -} -.bodywebsite .table tbody + tbody { - border-top: 2px solid #d9d9d9; -} -.bodywebsite .table .table { - background-color: #fff; -} -.bodywebsite .table-sm th, -.bodywebsite .table-sm td { - padding: 0.3rem; -} -.bodywebsite .table-bordered { - border: 1px solid #d9d9d9; -} -.bodywebsite .table-bordered th, -.bodywebsite .table-bordered td { - border: 1px solid #d9d9d9; -} -.bodywebsite .table-bordered thead th, -.bodywebsite .table-bordered thead td { - border-bottom-width: 2px; -} -.bodywebsite .table-striped tbody tr:nth-of-type(odd) { - background-color: rgba(0, 0, 0, 0.05); -} -.bodywebsite .table-hover tbody tr:hover { - background-color: rgba(0, 0, 0, 0.075); -} -.bodywebsite .table-primary, -.bodywebsite .table-primary > th, -.bodywebsite .table-primary > td { - background-color: #b8daff; -} -.bodywebsite .table-hover .table-primary:hover { - background-color: #9fcdff; -} -.bodywebsite .table-hover .table-primary:hover > td, -.bodywebsite .table-hover .table-primary:hover > th { - background-color: #9fcdff; -} -.bodywebsite .table-secondary, -.bodywebsite .table-secondary > th, -.bodywebsite .table-secondary > td { - background-color: #dddfe2; -} -.bodywebsite .table-hover .table-secondary:hover { - background-color: #cfd2d6; -} -.bodywebsite .table-hover .table-secondary:hover > td, -.bodywebsite .table-hover .table-secondary:hover > th { - background-color: #cfd2d6; -} -.bodywebsite .table-success, -.bodywebsite .table-success > th, -.bodywebsite .table-success > td { - background-color: #c3e6cb; -} -.bodywebsite .table-hover .table-success:hover { - background-color: #b1dfbb; -} -.bodywebsite .table-hover .table-success:hover > td, -.bodywebsite .table-hover .table-success:hover > th { - background-color: #b1dfbb; -} -.bodywebsite .table-info, -.bodywebsite .table-info > th, -.bodywebsite .table-info > td { - background-color: #bee5eb; -} -.bodywebsite .table-hover .table-info:hover { - background-color: #abdde5; -} -.bodywebsite .table-hover .table-info:hover > td, -.bodywebsite .table-hover .table-info:hover > th { - background-color: #abdde5; -} -.bodywebsite .table-warning, -.bodywebsite .table-warning > th, -.bodywebsite .table-warning > td { - background-color: #ffeeba; -} -.bodywebsite .table-hover .table-warning:hover { - background-color: #ffe8a1; -} -.bodywebsite .table-hover .table-warning:hover > td, -.bodywebsite .table-hover .table-warning:hover > th { - background-color: #ffe8a1; -} -.bodywebsite .table-danger, -.bodywebsite .table-danger > th, -.bodywebsite .table-danger > td { - background-color: #f5c6cb; -} -.bodywebsite .table-hover .table-danger:hover { - background-color: #f1b0b7; -} -.bodywebsite .table-hover .table-danger:hover > td, -.bodywebsite .table-hover .table-danger:hover > th { - background-color: #f1b0b7; -} -.bodywebsite .table-light, -.bodywebsite .table-light > th, -.bodywebsite .table-light > td { - background-color: #fdfdfe; -} -.bodywebsite .table-hover .table-light:hover { - background-color: #ececf6; -} -.bodywebsite .table-hover .table-light:hover > td, -.bodywebsite .table-hover .table-light:hover > th { - background-color: #ececf6; -} -.bodywebsite .table-dark, -.bodywebsite .table-dark > th, -.bodywebsite .table-dark > td { - background-color: #c6c8ca; -} -.bodywebsite .table-hover .table-dark:hover { - background-color: #b9bbbe; -} -.bodywebsite .table-hover .table-dark:hover > td, -.bodywebsite .table-hover .table-dark:hover > th { - background-color: #b9bbbe; -} -.bodywebsite .table-active, -.bodywebsite .table-active > th, -.bodywebsite .table-active > td { - background-color: rgba(0, 0, 0, 0.075); -} -.bodywebsite .table-hover .table-active:hover { - background-color: rgba(0, 0, 0, 0.075); -} -.bodywebsite .table-hover .table-active:hover > td, -.bodywebsite .table-hover .table-active:hover > th { - background-color: rgba(0, 0, 0, 0.075); -} -.bodywebsite .table .thead-dark th { - color: #fff; - background-color: #212529; - border-color: #32383e; -} -.bodywebsite .table .thead-light th { - color: #495057; - background-color: #e9ecef; - border-color: #d9d9d9; -} -.bodywebsite .table-dark { - color: #fff; - background-color: #212529; -} -.bodywebsite .table-dark th, -.bodywebsite .table-dark td, -.bodywebsite .table-dark thead th { - border-color: #32383e; -} -.bodywebsite .table-dark.table-bordered { - border: 0; -} -.bodywebsite .table-dark.table-striped tbody tr:nth-of-type(odd) { - background-color: rgba(255, 255, 255, 0.05); -} -.bodywebsite .table-dark.table-hover tbody tr:hover { - background-color: rgba(255, 255, 255, 0.075); -} -@media (max-width: 575px) { - .bodywebsite .table-responsive-sm { - display: block; - width: 100%; - overflow-x: auto; - -webkit-overflow-scrolling: touch; - -ms-overflow-style: -ms-autohiding-scrollbar; - } - .bodywebsite .table-responsive-sm.table-bordered { - border: 0; - } -} -@media (max-width: 767px) { - .bodywebsite .table-responsive-md { - display: block; - width: 100%; - overflow-x: auto; - -webkit-overflow-scrolling: touch; - -ms-overflow-style: -ms-autohiding-scrollbar; - } - .bodywebsite .table-responsive-md.table-bordered { - border: 0; - } -} -@media (max-width: 991px) { - .bodywebsite .table-responsive-lg { - display: block; - width: 100%; - overflow-x: auto; - -webkit-overflow-scrolling: touch; - -ms-overflow-style: -ms-autohiding-scrollbar; - } - .bodywebsite .table-responsive-lg.table-bordered { - border: 0; - } -} -@media (max-width: 1199px) { - .bodywebsite .table-responsive-xl { - display: block; - width: 100%; - overflow-x: auto; - -webkit-overflow-scrolling: touch; - -ms-overflow-style: -ms-autohiding-scrollbar; - } - .bodywebsite .table-responsive-xl.table-bordered { - border: 0; - } -} -@media (max-width: 1799px) { - .bodywebsite .table-responsive-xxl { - display: block; - width: 100%; - overflow-x: auto; - -webkit-overflow-scrolling: touch; - -ms-overflow-style: -ms-autohiding-scrollbar; - } - .bodywebsite .table-responsive-xxl.table-bordered { - border: 0; - } -} -.bodywebsite .table-responsive { - display: block; - width: 100%; - overflow-x: auto; - -webkit-overflow-scrolling: touch; - -ms-overflow-style: -ms-autohiding-scrollbar; -} -.bodywebsite .table-responsive.table-bordered { - border: 0; -} -.bodywebsite .form-input { - display: block; - width: 100%; - padding: 11px 35px; - font-size: 14px; - line-height: 1.25; - background-image: none; - background-clip: padding-box; - border: 1px solid #ced4da; - border-radius: 0.25rem; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s; -} -.bodywebsite .form-input::-ms-expand { - background-color: transparent; - border: 0; -} -.bodywebsite .form-input:focus { - color: #495057; - background-color: #fff; - border-color: #80bdff; - outline: none; - box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); -} -.bodywebsite .form-input::placeholder { - color: #868e96; - opacity: 1; -} -.bodywebsite .form-input:disabled, -.bodywebsite .form-input[readonly] { - background-color: #e9ecef; - opacity: 1; -} -.bodywebsite select.form-input:not([size]):not([multiple]) { - height: calc(4.25rem); -} -.bodywebsite .form-input-file, -.bodywebsite .form-input-range { - display: block; -} -.bodywebsite .col-form-label { - padding-top: calc(12px); - padding-bottom: calc(12px); - margin-bottom: 0; - line-height: 1.25; -} -.bodywebsite .col-form-label-lg { - padding-top: calc(13px); - padding-bottom: calc(13px); - font-size: 18px; - line-height: 1.5; -} -.bodywebsite .col-form-label-sm { - padding-top: calc(6px); - padding-bottom: calc(6px); - font-size: 12px; - line-height: 1.5; -} -.bodywebsite .col-form-legend { - padding-top: 11px; - padding-bottom: 11px; - margin-bottom: 0; - font-size: 14px; -} -.bodywebsite .form-input-plaintext { - padding-top: 11px; - padding-bottom: 11px; - margin-bottom: 0; - line-height: 1.25; - background-color: transparent; - border: solid transparent; - border-width: 1px 0; -} -.bodywebsite .form-input-plaintext.form-input-sm, -.bodywebsite .input-group-sm > .form-input-plaintext.form-input, -.bodywebsite .input-group-sm > .form-input-plaintext.input-group-addon, -.bodywebsite .input-group-sm > .input-group-btn > .form-input-plaintext.btn, -.bodywebsite .form-input-plaintext.form-input-lg, -.bodywebsite .input-group-lg > .form-input-plaintext.form-input, -.bodywebsite .input-group-lg > .form-input-plaintext.input-group-addon, -.bodywebsite .input-group-lg > .input-group-btn > .form-input-plaintext.btn { - padding-right: 0; - padding-left: 0; -} -.bodywebsite .form-input-sm, -.bodywebsite .input-group-sm > .form-input, -.bodywebsite .input-group-sm > .input-group-addon, -.bodywebsite .input-group-sm > .input-group-btn > .btn { - padding: 5px 25px; - font-size: 12px; - line-height: 1.5; - border-radius: 0.2rem; -} -.bodywebsite select.form-input-sm:not([size]):not([multiple]), -.bodywebsite .input-group-sm > select.form-input:not([size]):not([multiple]), -.bodywebsite .input-group-sm > select.input-group-addon:not([size]):not([multiple]), -.bodywebsite .input-group-sm > .input-group-btn > select.btn:not([size]):not([multiple]) { - height: calc(3.8125rem); -} -.bodywebsite .form-input-lg, -.bodywebsite .input-group-lg > .form-input, -.bodywebsite .input-group-lg > .input-group-addon, -.bodywebsite .input-group-lg > .input-group-btn > .btn { - padding: 12px 50px; - font-size: 18px; - line-height: 1.5; - border-radius: 0.3rem; -} -.bodywebsite select.form-input-lg:not([size]):not([multiple]), -.bodywebsite .input-group-lg > select.form-input:not([size]):not([multiple]), -.bodywebsite .input-group-lg > select.input-group-addon:not([size]):not([multiple]), -.bodywebsite .input-group-lg > .input-group-btn > select.btn:not([size]):not([multiple]) { - height: calc(4.875rem); -} -.bodywebsite .form-label { - margin-bottom: 1rem; -} -.bodywebsite .form-text { - display: block; - margin-top: 0.25rem; -} -.bodywebsite .form-row { - display: flex; - flex-wrap: wrap; - margin-right: -5px; - margin-left: -5px; -} -.bodywebsite .form-row > .col, -.bodywebsite .form-row > [class*="col-"] { - padding-right: 5px; - padding-left: 5px; -} -.bodywebsite .form-check { - position: relative; - display: block; - margin-bottom: 0.5rem; -} -.bodywebsite .form-check.disabled .form-check-label { - color: #dedede; -} -.bodywebsite .form-check-label { - padding-left: 1.25rem; - margin-bottom: 0; -} -.bodywebsite .form-check-input { - position: absolute; - margin-top: 0.25rem; - margin-left: -1.25rem; -} -.bodywebsite .form-check-inline { - display: inline-block; - margin-right: 0.75rem; -} -.bodywebsite .form-check-inline .form-check-label { - vertical-align: middle; -} -.bodywebsite .valid-feedback { - display: none; - margin-top: .25rem; - font-size: .875rem; - color: #98bf44; -} -.bodywebsite .valid-tooltip { - position: absolute; - top: 100%; - z-index: 5; - display: none; - width: 250px; - padding: .5rem; - margin-top: .1rem; - font-size: .875rem; - line-height: 1; - color: #fff; - /* background-color: rgba(152, 191, 68, 0.8); */ - border-radius: .2rem; -} -.bodywebsite .was-validated .form-input:valid, -.bodywebsite .form-input.is-valid, -.bodywebsite .was-validated .custom-select:valid, -.bodywebsite .custom-select.is-valid { - border-color: #98bf44; -} -.bodywebsite .was-validated .form-input:valid:focus, -.bodywebsite .form-input.is-valid:focus, -.bodywebsite .was-validated .custom-select:valid:focus, -.bodywebsite .custom-select.is-valid:focus { - box-shadow: 0 0 0 0.2rem rgba(152, 191, 68, 0.25); -} -.bodywebsite .was-validated .form-input:valid ~ .valid-feedback, -.bodywebsite .was-validated .form-input:valid ~ .valid-tooltip, -.bodywebsite .form-input.is-valid ~ .valid-feedback, -.bodywebsite .form-input.is-valid ~ .valid-tooltip, -.bodywebsite .was-validated .custom-select:valid ~ .valid-feedback, -.bodywebsite .was-validated .custom-select:valid ~ .valid-tooltip, -.bodywebsite .custom-select.is-valid ~ .valid-feedback, -.bodywebsite .custom-select.is-valid ~ .valid-tooltip { - display: block; -} -.bodywebsite .was-validated .form-check-input:valid + .form-check-label, -.bodywebsite .form-check-input.is-valid + .form-check-label { - color: #98bf44; -} -.bodywebsite .was-validated .custom-control-input:valid ~ .custom-control-indicator, -.bodywebsite .custom-control-input.is-valid ~ .custom-control-indicator { - background-color: rgba(152, 191, 68, 0.25); -} -.bodywebsite .was-validated .custom-control-input:valid ~ .custom-control-description, -.bodywebsite .custom-control-input.is-valid ~ .custom-control-description { - color: #98bf44; -} -.bodywebsite .was-validated .custom-file-input:valid ~ .custom-file-control, -.bodywebsite .custom-file-input.is-valid ~ .custom-file-control { - border-color: #98bf44; -} -.bodywebsite .was-validated .custom-file-input:valid ~ .custom-file-control::before, -.bodywebsite .custom-file-input.is-valid ~ .custom-file-control::before { - border-color: inherit; -} -.bodywebsite .was-validated .custom-file-input:valid:focus, -.bodywebsite .custom-file-input.is-valid:focus { - box-shadow: 0 0 0 0.2rem rgba(152, 191, 68, 0.25); -} -.bodywebsite .invalid-feedback { - display: none; - margin-top: .25rem; - font-size: .875rem; - color: #f5543f; -} -.bodywebsite .invalid-tooltip { - position: absolute; - top: 100%; - z-index: 5; - display: none; - width: 250px; - padding: .5rem; - margin-top: .1rem; - font-size: .875rem; - line-height: 1; - color: #fff; - background-color: rgba(245, 84, 63, 0.8); - border-radius: .2rem; -} -.bodywebsite .was-validated .form-input:invalid, -.bodywebsite .form-input.is-invalid, -.bodywebsite .was-validated .custom-select:invalid, -.bodywebsite .custom-select.is-invalid { - border-color: #f5543f; -} -.bodywebsite .was-validated .form-input:invalid:focus, -.bodywebsite .form-input.is-invalid:focus, -.bodywebsite .was-validated .custom-select:invalid:focus, -.bodywebsite .custom-select.is-invalid:focus { - box-shadow: 0 0 0 0.2rem rgba(245, 84, 63, 0.25); -} -.bodywebsite .was-validated .form-input:invalid ~ .invalid-feedback, -.bodywebsite .was-validated .form-input:invalid ~ .invalid-tooltip, -.bodywebsite .form-input.is-invalid ~ .invalid-feedback, -.bodywebsite .form-input.is-invalid ~ .invalid-tooltip, -.bodywebsite .was-validated .custom-select:invalid ~ .invalid-feedback, -.bodywebsite .was-validated .custom-select:invalid ~ .invalid-tooltip, -.bodywebsite .custom-select.is-invalid ~ .invalid-feedback, -.bodywebsite .custom-select.is-invalid ~ .invalid-tooltip { - display: block; -} -.bodywebsite .was-validated .form-check-input:invalid + .form-check-label, -.bodywebsite .form-check-input.is-invalid + .form-check-label { - color: #f5543f; -} -.bodywebsite .was-validated .custom-control-input:invalid ~ .custom-control-indicator, -.bodywebsite .custom-control-input.is-invalid ~ .custom-control-indicator { - background-color: rgba(245, 84, 63, 0.25); -} -.bodywebsite .was-validated .custom-control-input:invalid ~ .custom-control-description, -.bodywebsite .custom-control-input.is-invalid ~ .custom-control-description { - color: #f5543f; -} -.bodywebsite .was-validated .custom-file-input:invalid ~ .custom-file-control, -.bodywebsite .custom-file-input.is-invalid ~ .custom-file-control { - border-color: #f5543f; -} -.bodywebsite .was-validated .custom-file-input:invalid ~ .custom-file-control::before, -.bodywebsite .custom-file-input.is-invalid ~ .custom-file-control::before { - border-color: inherit; -} -.bodywebsite .was-validated .custom-file-input:invalid:focus, -.bodywebsite .custom-file-input.is-invalid:focus { - box-shadow: 0 0 0 0.2rem rgba(245, 84, 63, 0.25); -} -.bodywebsite .form-inline { - display: flex; - flex-flow: row wrap; - align-items: center; -} -.bodywebsite .form-inline .form-check { - width: 100%; -} -@media (min-width: 576px) { - .bodywebsite .form-inline label { - display: flex; - align-items: center; - justify-content: center; - margin-bottom: 0; - } - .bodywebsite .form-inline .form-label { - display: flex; - flex: 0 0 auto; - flex-flow: row wrap; - align-items: center; - margin-bottom: 0; - } - .bodywebsite .form-inline .form-input { - display: inline-block; - width: auto; - vertical-align: middle; - } - .bodywebsite .form-inline .form-input-plaintext { - display: inline-block; - } - .bodywebsite .form-inline .input-group { - width: auto; - } - .bodywebsite .form-inline .form-check { - display: flex; - align-items: center; - justify-content: center; - width: auto; - margin-top: 0; - margin-bottom: 0; - } - .bodywebsite .form-inline .form-check-label { - padding-left: 0; - } - .bodywebsite .form-inline .form-check-input { - position: relative; - margin-top: 0; - margin-right: 0.25rem; - margin-left: 0; - } - .bodywebsite .form-inline .custom-control { - display: flex; - align-items: center; - justify-content: center; - padding-left: 0; - } - .bodywebsite .form-inline .custom-control-indicator { - position: static; - display: inline-block; - margin-right: 0.25rem; - vertical-align: text-bottom; - } - .bodywebsite .form-inline .has-feedback .form-input-feedback { - top: 0; - } -} -.bodywebsite .btn { - display: inline-block; - font-weight: 700; - text-align: center; - white-space: nowrap; - vertical-align: middle; - user-select: none; - border: 1px solid transparent; - padding: 11px 35px; - font-size: 14px; - line-height: 1.25; - border-radius: 5px; - transition: all 0.15s ease-in-out; -} -.bodywebsite .btn:focus, -.bodywebsite .btn:hover { - text-decoration: none; -} -.bodywebsite .btn:focus, -.bodywebsite .btn.focus { - outline: 0; - box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); -} -.bodywebsite .btn.disabled, -.bodywebsite .btn:disabled { - opacity: .65; - box-shadow: none; -} -.bodywebsite .btn:not([disabled]):not(.disabled):active, -.bodywebsite .btn:not([disabled]):not(.disabled).active { - background-image: none; - box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25), 0; -} -.bodywebsite a.btn.disabled, -.bodywebsite fieldset[disabled] a.btn { - pointer-events: none; -} -.bodywebsite .btn-primary { - color: #fff; - background-color: #007bff; - border-color: #007bff; - box-shadow: 0; -} -.bodywebsite .btn-primary:focus, -.bodywebsite .btn-primary.focus { - box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5); -} -.bodywebsite .btn-primary.maincolorbisbackground:focus, -.bodywebsite .btn-primary.maincolorbisbackground.focus { - box-shadow: 0 0 0 0.2rem rgba(0, 255, 123, 0.5); -} -.bodywebsite .btn-primary.maincolorbisbackground:hover { - box-shadow: 1px 1px 8px #aaa; -} -.bodywebsite .btn-primary.disabled, -.bodywebsite .btn-primary:disabled { - background-color: #007bff; - border-color: #007bff; -} -.bodywebsite .btn-primary:not([disabled]):not(.disabled):active, -.bodywebsite .btn-primary:not([disabled]):not(.disabled).active, -.bodywebsite .show > .btn-primary.dropdown-toggle { - color: #fff; - background-color: #0062cc; - border-color: #005cbf; - box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5); -} -.bodywebsite .btn-secondary { - color: #fff; - background-color: #868e96; - border-color: #868e96; - box-shadow: 0; -} -.bodywebsite .btn-secondary:hover { - color: #fff; - background-color: #727b84; - border-color: #6c757d; -} -.bodywebsite .btn-secondary:focus, -.bodywebsite .btn-secondary.focus { - box-shadow: 0 0 0 0.2rem rgba(134, 142, 150, 0.5); -} -.bodywebsite .btn-secondary.disabled, -.bodywebsite .btn-secondary:disabled { - background-color: #868e96; - border-color: #868e96; -} -.bodywebsite .btn-secondary:not([disabled]):not(.disabled):active, -.bodywebsite .btn-secondary:not([disabled]):not(.disabled).active, -.bodywebsite .show > .btn-secondary.dropdown-toggle { - color: #fff; - background-color: #6c757d; - border-color: #666e76; - box-shadow: 0 0 0 0.2rem rgba(134, 142, 150, 0.5); -} -.bodywebsite .btn-success { - color: #fff; - background-color: #28a745; - border-color: #28a745; - box-shadow: 0; -} -.bodywebsite .btn-success:hover { - color: #fff; - background-color: #218838; - border-color: #1e7e34; -} -.bodywebsite .btn-success:focus, -.bodywebsite .btn-success.focus { - box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5); -} -.bodywebsite .btn-success.disabled, -.bodywebsite .btn-success:disabled { - background-color: #28a745; - border-color: #28a745; -} -.bodywebsite .btn-success:not([disabled]):not(.disabled):active, -.bodywebsite .btn-success:not([disabled]):not(.disabled).active, -.bodywebsite .show > .btn-success.dropdown-toggle { - color: #fff; - background-color: #1e7e34; - border-color: #1c7430; - box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5); -} -.bodywebsite .btn-info { - color: #fff; - background-color: #17a2b8; - border-color: #17a2b8; - box-shadow: 0; -} -.bodywebsite .btn-info:hover { - color: #fff; - background-color: #138496; - border-color: #117a8b; -} -.bodywebsite .btn-info:focus, -.bodywebsite .btn-info.focus { - box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5); -} -.bodywebsite .btn-info.disabled, -.bodywebsite .btn-info:disabled { - background-color: #17a2b8; - border-color: #17a2b8; -} -.bodywebsite .btn-info:not([disabled]):not(.disabled):active, -.bodywebsite .btn-info:not([disabled]):not(.disabled).active, -.bodywebsite .show > .btn-info.dropdown-toggle { - color: #fff; - background-color: #117a8b; - border-color: #10707f; - box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5); -} -.bodywebsite .btn-warning { - color: #111; - background-color: #ffc107; - border-color: #ffc107; - box-shadow: 0; -} -.bodywebsite .btn-warning:hover { - color: #111; - background-color: #e0a800; - border-color: #d39e00; -} -.bodywebsite .btn-warning:focus, -.bodywebsite .btn-warning.focus { - box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5); -} -.bodywebsite .btn-warning.disabled, -.bodywebsite .btn-warning:disabled { - background-color: #ffc107; - border-color: #ffc107; -} -.bodywebsite .btn-warning:not([disabled]):not(.disabled):active, -.bodywebsite .btn-warning:not([disabled]):not(.disabled).active, -.bodywebsite .show > .btn-warning.dropdown-toggle { - color: #111; - background-color: #d39e00; - border-color: #c69500; - box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5); -} -.bodywebsite .btn-danger { - color: #fff; - background-color: #dc3545; - border-color: #dc3545; - box-shadow: 0; -} -.bodywebsite .btn-danger:hover { - color: #fff; - background-color: #c82333; - border-color: #bd2130; -} -.bodywebsite .btn-danger:focus, -.bodywebsite .btn-danger.focus { - box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5); -} -.bodywebsite .btn-danger.disabled, -.bodywebsite .btn-danger:disabled { - background-color: #dc3545; - border-color: #dc3545; -} -.bodywebsite .btn-danger:not([disabled]):not(.disabled):active, -.bodywebsite .btn-danger:not([disabled]):not(.disabled).active, -.bodywebsite .show > .btn-danger.dropdown-toggle { - color: #fff; - background-color: #bd2130; - border-color: #b21f2d; - box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5); -} -.bodywebsite .btn-light { - color: #111; - background-color: #f8f9fa; - border-color: #f8f9fa; - box-shadow: 0; -} -.bodywebsite .btn-light:hover { - color: #111; - background-color: #e2e6ea; - border-color: #dae0e5; -} -.bodywebsite .btn-light:focus, -.bodywebsite .btn-light.focus { - box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); -} -.bodywebsite .btn-light.disabled, -.bodywebsite .btn-light:disabled { - background-color: #f8f9fa; - border-color: #f8f9fa; -} -.bodywebsite .btn-light:not([disabled]):not(.disabled):active, -.bodywebsite .btn-light:not([disabled]):not(.disabled).active, -.bodywebsite .show > .btn-light.dropdown-toggle { - color: #111; - background-color: #dae0e5; - border-color: #d3d9df; - box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); -} -.bodywebsite .btn-dark { - color: #fff; - background-color: #343a40; - border-color: #343a40; - box-shadow: 0; -} -.bodywebsite .btn-dark:hover { - color: #fff; - background-color: #23272b; - border-color: #1d2124; -} -.bodywebsite .btn-dark:focus, -.bodywebsite .btn-dark.focus { - box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); -} -.bodywebsite .btn-dark.disabled, -.bodywebsite .btn-dark:disabled { - background-color: #343a40; - border-color: #343a40; -} -.bodywebsite .btn-dark:not([disabled]):not(.disabled):active, -.bodywebsite .btn-dark:not([disabled]):not(.disabled).active, -.bodywebsite .show > .btn-dark.dropdown-toggle { - color: #fff; - background-color: #1d2124; - border-color: #171a1d; - box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); -} -.bodywebsite .btn-outline-primary { - color: #007bff; - background-color: transparent; - background-image: none; - border-color: #007bff; -} -.bodywebsite .btn-outline-primary:hover { - color: #fff; - background-color: #007bff; - border-color: #007bff; -} -.bodywebsite .btn-outline-primary:focus, -.bodywebsite .btn-outline-primary.focus { - box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5); -} -.bodywebsite .btn-outline-primary.disabled, -.bodywebsite .btn-outline-primary:disabled { - color: #007bff; - background-color: transparent; -} -.bodywebsite .btn-outline-primary:not([disabled]):not(.disabled):active, -.bodywebsite .btn-outline-primary:not([disabled]):not(.disabled).active, -.bodywebsite .show > .btn-outline-primary.dropdown-toggle { - color: #fff; - background-color: #007bff; - border-color: #007bff; - box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5); -} -.bodywebsite .btn-outline-secondary { - color: #868e96; - background-color: transparent; - background-image: none; - border-color: #868e96; -} -.bodywebsite .btn-outline-secondary:hover { - color: #fff; - background-color: #868e96; - border-color: #868e96; -} -.bodywebsite .btn-outline-secondary:focus, -.bodywebsite .btn-outline-secondary.focus { - box-shadow: 0 0 0 0.2rem rgba(134, 142, 150, 0.5); -} -.bodywebsite .btn-outline-secondary.disabled, -.bodywebsite .btn-outline-secondary:disabled { - color: #868e96; - background-color: transparent; -} -.bodywebsite .btn-outline-secondary:not([disabled]):not(.disabled):active, -.bodywebsite .btn-outline-secondary:not([disabled]):not(.disabled).active, -.bodywebsite .show > .btn-outline-secondary.dropdown-toggle { - color: #fff; - background-color: #868e96; - border-color: #868e96; - box-shadow: 0 0 0 0.2rem rgba(134, 142, 150, 0.5); -} -.bodywebsite .btn-outline-success { - color: #28a745; - background-color: transparent; - background-image: none; - border-color: #28a745; -} -.bodywebsite .btn-outline-success:hover { - color: #fff; - background-color: #28a745; - border-color: #28a745; -} -.bodywebsite .btn-outline-success:focus, -.bodywebsite .btn-outline-success.focus { - box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5); -} -.bodywebsite .btn-outline-success.disabled, -.bodywebsite .btn-outline-success:disabled { - color: #28a745; - background-color: transparent; -} -.bodywebsite .btn-outline-success:not([disabled]):not(.disabled):active, -.bodywebsite .btn-outline-success:not([disabled]):not(.disabled).active, -.bodywebsite .show > .btn-outline-success.dropdown-toggle { - color: #fff; - background-color: #28a745; - border-color: #28a745; - box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5); -} -.bodywebsite .btn-outline-info { - color: #17a2b8; - background-color: transparent; - background-image: none; - border-color: #17a2b8; -} -.bodywebsite .btn-outline-info:hover { - color: #fff; - background-color: #17a2b8; - border-color: #17a2b8; -} -.bodywebsite .btn-outline-info:focus, -.bodywebsite .btn-outline-info.focus { - box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5); -} -.bodywebsite .btn-outline-info.disabled, -.bodywebsite .btn-outline-info:disabled { - color: #17a2b8; - background-color: transparent; -} -.bodywebsite .btn-outline-info:not([disabled]):not(.disabled):active, -.bodywebsite .btn-outline-info:not([disabled]):not(.disabled).active, -.bodywebsite .show > .btn-outline-info.dropdown-toggle { - color: #fff; - background-color: #17a2b8; - border-color: #17a2b8; - box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5); -} -.bodywebsite .btn-outline-warning { - color: #ffc107; - background-color: transparent; - background-image: none; - border-color: #ffc107; -} -.bodywebsite .btn-outline-warning:hover { - color: #fff; - background-color: #ffc107; - border-color: #ffc107; -} -.bodywebsite .btn-outline-warning:focus, -.bodywebsite .btn-outline-warning.focus { - box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5); -} -.bodywebsite .btn-outline-warning.disabled, -.bodywebsite .btn-outline-warning:disabled { - color: #ffc107; - background-color: transparent; -} -.bodywebsite .btn-outline-warning:not([disabled]):not(.disabled):active, -.bodywebsite .btn-outline-warning:not([disabled]):not(.disabled).active, -.bodywebsite .show > .btn-outline-warning.dropdown-toggle { - color: #fff; - background-color: #ffc107; - border-color: #ffc107; - box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5); -} -.bodywebsite .btn-outline-danger { - color: #dc3545; - background-color: transparent; - background-image: none; - border-color: #dc3545; -} -.bodywebsite .btn-outline-danger:hover { - color: #fff; - background-color: #dc3545; - border-color: #dc3545; -} -.bodywebsite .btn-outline-danger:focus, -.bodywebsite .btn-outline-danger.focus { - box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5); -} -.bodywebsite .btn-outline-danger.disabled, -.bodywebsite .btn-outline-danger:disabled { - color: #dc3545; - background-color: transparent; -} -.bodywebsite .btn-outline-danger:not([disabled]):not(.disabled):active, -.bodywebsite .btn-outline-danger:not([disabled]):not(.disabled).active, -.bodywebsite .show > .btn-outline-danger.dropdown-toggle { - color: #fff; - background-color: #dc3545; - border-color: #dc3545; - box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5); -} -.bodywebsite .btn-outline-light { - color: #f8f9fa; - background-color: transparent; - background-image: none; - border-color: #f8f9fa; -} -.bodywebsite .btn-outline-light:hover { - color: #00030a; - background-color: #f8f9fa; - border-color: #f8f9fa; -} -.bodywebsite .btn-outline-light:focus, -.bodywebsite .btn-outline-light.focus { - box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); -} -.bodywebsite .btn-outline-light.disabled, -.bodywebsite .btn-outline-light:disabled { - color: #f8f9fa; - background-color: transparent; -} -.bodywebsite .btn-outline-light:not([disabled]):not(.disabled):active, -.bodywebsite .btn-outline-light:not([disabled]):not(.disabled).active, -.bodywebsite .show > .btn-outline-light.dropdown-toggle { - color: #00030a; - background-color: #f8f9fa; - border-color: #f8f9fa; - box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); -} -.bodywebsite .btn-outline-dark { - color: #343a40; - background-color: transparent; - background-image: none; - border-color: #343a40; -} -.bodywebsite .btn-outline-dark:hover { - color: #fff; - background-color: #343a40; - border-color: #343a40; -} -.bodywebsite .btn-outline-dark:focus, -.bodywebsite .btn-outline-dark.focus { - box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); -} -.bodywebsite .btn-outline-dark.disabled, -.bodywebsite .btn-outline-dark:disabled { - color: #343a40; - background-color: transparent; -} -.bodywebsite .btn-outline-dark:not([disabled]):not(.disabled):active, -.bodywebsite .btn-outline-dark:not([disabled]):not(.disabled).active, -.bodywebsite .show > .btn-outline-dark.dropdown-toggle { - color: #fff; - background-color: #343a40; - border-color: #343a40; - box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); -} -.bodywebsite .btn-link { - font-weight: 400; - color: #37c386; - background-color: transparent; -} -.bodywebsite .btn-link:hover { - color: #26875d; - text-decoration: none; - background-color: transparent; - border-color: transparent; -} -.bodywebsite .btn-link:focus, -.bodywebsite .btn-link.focus { - border-color: transparent; - box-shadow: none; -} -.bodywebsite .btn-link:disabled, -.bodywebsite .btn-link.disabled { - color: #dedede; -} -.bodywebsite .btn-lg, -.bodywebsite .btn-group-lg > .btn { - padding: 12px 50px; - font-size: 18px; - line-height: 1.5; - border-radius: 6px; -} -.bodywebsite .btn-sm, -.bodywebsite .btn-group-sm > .btn { - padding: 5px 25px; - font-size: 12px; - line-height: 1.5; - border-radius: 3px; -} -.bodywebsite .btn-block { - display: block; - width: 100%; -} -.bodywebsite .btn-block + .btn-block { - margin-top: 0.5rem; -} -.bodywebsite input[type="submit"].btn-block, -.bodywebsite input[type="reset"].btn-block, -.bodywebsite input[type="button"].btn-block { - width: 100%; -} -.bodywebsite .fade { - opacity: 0; - transition: opacity 0.15s linear; -} -.bodywebsite .fade.show { - opacity: 1; -} -.bodywebsite .collapse { - display: none; -} -.bodywebsite .collapse.show { - display: block; -} -.bodywebsite tr.collapse.show { - display: table-row; -} -.bodywebsite tbody.collapse.show { - display: table-row-group; -} -.bodywebsite .collapsing { - position: relative; - height: 0; - overflow: hidden; - transition: height 0.35s ease; -} -.bodywebsite .dropup, -.bodywebsite .dropdown { - position: relative; -} -.bodywebsite .dropdown-toggle::after { - display: inline-block; - width: 0; - height: 0; - margin-left: 0.255em; - vertical-align: 0.255em; - content: ""; - border-top: 0.3em solid; - border-right: 0.3em solid transparent; - border-bottom: 0; - border-left: 0.3em solid transparent; -} -.bodywebsite .dropdown-toggle:empty::after { - margin-left: 0; -} -.bodywebsite .dropdown-menu { - position: absolute; - top: 100%; - left: 0; - z-index: 1000; - display: none; - float: left; - min-width: 10rem; - padding: 0.5rem 0; - margin: 0.125rem 0 0; - font-size: 14px; - text-align: left; - list-style: none; - background-color: #fff; - background-clip: padding-box; - border: 1px solid rgba(0, 0, 0, 0.15); - border-radius: 0; - box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.175); -} -.bodywebsite .dropup .dropdown-menu { - margin-top: 0; - margin-bottom: 0.125rem; -} -.bodywebsite .dropup .dropdown-toggle::after { - display: inline-block; - width: 0; - height: 0; - margin-left: 0.255em; - vertical-align: 0.255em; - content: ""; - border-top: 0; - border-right: 0.3em solid transparent; - border-bottom: 0.3em solid; - border-left: 0.3em solid transparent; -} -.bodywebsite .dropup .dropdown-toggle:empty::after { - margin-left: 0; -} -.bodywebsite .dropdown-divider { - height: 0; - margin: 0.5rem 0; - overflow: hidden; - border-top: 1px solid #e5e5e5; -} -.bodywebsite .dropdown-item { - display: block; - width: 100%; - padding: 0.25rem 1.5rem; - clear: both; - font-weight: 400; - color: #2a2b2b; - text-align: inherit; - white-space: nowrap; - background: none; - border: 0; -} -.bodywebsite .dropdown-item:focus, -.bodywebsite .dropdown-item:hover { - color: #1d1e1e; - text-decoration: none; - background-color: #f5f5f5; -} -.bodywebsite .dropdown-item.active, -.bodywebsite .dropdown-item:active { - color: #2a2b2b; - text-decoration: none; - background-color: #37c386; -} -.bodywebsite .dropdown-item.disabled, -.bodywebsite .dropdown-item:disabled { - color: #dedede; - background-color: transparent; -} -.bodywebsite .dropdown-menu.show { - display: block; -} -.bodywebsite .dropdown-header { - display: block; - padding: 0.5rem 1.5rem; - margin-bottom: 0; - font-size: 12px; - color: #dedede; - white-space: nowrap; -} -.bodywebsite .btn-group, -.bodywebsite .btn-group-vertical { - position: relative; - display: inline-flex; - vertical-align: middle; -} -.bodywebsite .btn-group > .btn, -.bodywebsite .btn-group-vertical > .btn { - position: relative; - flex: 0 1 auto; -} -.bodywebsite .btn-group > .btn:hover, -.bodywebsite .btn-group-vertical > .btn:hover { - z-index: 2; -} -.bodywebsite .btn-group > .btn:focus, -.bodywebsite .btn-group > .btn:active, -.bodywebsite .btn-group > .btn.active, -.bodywebsite .btn-group-vertical > .btn:focus, -.bodywebsite .btn-group-vertical > .btn:active, -.bodywebsite .btn-group-vertical > .btn.active { - z-index: 2; -} -.bodywebsite .btn-group .btn + .btn, -.bodywebsite .btn-group .btn + .btn-group, -.bodywebsite .btn-group .btn-group + .btn, -.bodywebsite .btn-group .btn-group + .btn-group, -.bodywebsite .btn-group-vertical .btn + .btn, -.bodywebsite .btn-group-vertical .btn + .btn-group, -.bodywebsite .btn-group-vertical .btn-group + .btn, -.bodywebsite .btn-group-vertical .btn-group + .btn-group { - margin-left: -1px; -} -.bodywebsite .btn-toolbar { - display: flex; - flex-wrap: wrap; - justify-content: flex-start; -} -.bodywebsite .btn-toolbar .input-group { - width: auto; -} -.bodywebsite .btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) { - border-radius: 0; -} -.bodywebsite .btn-group > .btn:first-child { - margin-left: 0; -} -.bodywebsite .btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) { - border-top-right-radius: 0; - border-bottom-right-radius: 0; -} -.bodywebsite .btn-group > .btn:last-child:not(:first-child), -.bodywebsite .btn-group > .dropdown-toggle:not(:first-child) { - border-top-left-radius: 0; - border-bottom-left-radius: 0; -} -.bodywebsite .btn-group > .btn-group { - float: left; -} -.bodywebsite .btn-group > .btn-group:not(:first-child):not(:last-child) > .btn { - border-radius: 0; -} -.bodywebsite .btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child, -.bodywebsite .btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle { - border-top-right-radius: 0; - border-bottom-right-radius: 0; -} -.bodywebsite .btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child { - border-top-left-radius: 0; - border-bottom-left-radius: 0; -} -.bodywebsite .btn + .dropdown-toggle-split { - padding-right: 26.25px; - padding-left: 26.25px; -} -.bodywebsite .btn + .dropdown-toggle-split::after { - margin-left: 0; -} -.bodywebsite .btn-sm + .dropdown-toggle-split, -.bodywebsite .btn-group-sm > .btn + .dropdown-toggle-split { - padding-right: 18.75px; - padding-left: 18.75px; -} -.bodywebsite .btn-lg + .dropdown-toggle-split, -.bodywebsite .btn-group-lg > .btn + .dropdown-toggle-split { - padding-right: 37.5px; - padding-left: 37.5px; -} -.bodywebsite .btn-group.show .dropdown-toggle { - box-shadow: 0; -} -.bodywebsite .btn-group.show .dropdown-toggle.btn-link { - box-shadow: none; -} -.bodywebsite .btn-group-vertical { - flex-direction: column; - align-items: flex-start; - justify-content: center; -} -.bodywebsite .btn-group-vertical .btn, -.bodywebsite .btn-group-vertical .btn-group { - width: 100%; -} -.bodywebsite .btn-group-vertical > .btn + .btn, -.bodywebsite .btn-group-vertical > .btn + .btn-group, -.bodywebsite .btn-group-vertical > .btn-group + .btn, -.bodywebsite .btn-group-vertical > .btn-group + .btn-group { - margin-top: -1px; - margin-left: 0; -} -.bodywebsite .btn-group-vertical > .btn:not(:first-child):not(:last-child) { - border-radius: 0; -} -.bodywebsite .btn-group-vertical > .btn:first-child:not(:last-child) { - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; -} -.bodywebsite .btn-group-vertical > .btn:last-child:not(:first-child) { - border-top-left-radius: 0; - border-top-right-radius: 0; -} -.bodywebsite .btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn { - border-radius: 0; -} -.bodywebsite .btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child, -.bodywebsite .btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle { - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; -} -.bodywebsite .btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child { - border-top-left-radius: 0; - border-top-right-radius: 0; -} -.bodywebsite [data-toggle="buttons"] > .btn input[type="radio"], -.bodywebsite [data-toggle="buttons"] > .btn input[type="checkbox"], -.bodywebsite [data-toggle="buttons"] > .btn-group > .btn input[type="radio"], -.bodywebsite [data-toggle="buttons"] > .btn-group > .btn input[type="checkbox"] { - position: absolute; - clip: rect(0, 0, 0, 0); - pointer-events: none; -} -.bodywebsite .input-group { - position: relative; - display: flex; - align-items: stretch; - width: 100%; -} -.bodywebsite .input-group .form-input { - position: relative; - z-index: 2; - flex: 1 1 auto; - width: 1%; - margin-bottom: 0; -} -.bodywebsite .input-group .form-input:focus, -.bodywebsite .input-group .form-input:active, -.bodywebsite .input-group .form-input:hover { - z-index: 3; -} -.bodywebsite .input-group-addon, -.bodywebsite .input-group-btn, -.bodywebsite .input-group .form-input { - display: flex; - align-items: center; -} -.bodywebsite .input-group-addon:not(:first-child):not(:last-child), -.bodywebsite .input-group-btn:not(:first-child):not(:last-child), -.bodywebsite .input-group .form-input:not(:first-child):not(:last-child) { - border-radius: 0; -} -.bodywebsite .input-group-addon, -.bodywebsite .input-group-btn { - white-space: nowrap; -} -.bodywebsite .input-group-addon { - padding: 11px 35px; - margin-bottom: 0; - font-size: 14px; - font-weight: 400; - line-height: 1.25; - color: #495057; - text-align: center; - background-color: #e9ecef; - border: 1px solid #ced4da; - border-radius: 0.25rem; -} -.bodywebsite .input-group-addon.form-input-sm, -.bodywebsite .input-group-sm > .input-group-addon, -.bodywebsite .input-group-sm > .input-group-btn > .input-group-addon.btn { - padding: 5px 25px; - font-size: 12px; - border-radius: 0.2rem; -} -.bodywebsite .input-group-addon.form-input-lg, -.bodywebsite .input-group-lg > .input-group-addon, -.bodywebsite .input-group-lg > .input-group-btn > .input-group-addon.btn { - padding: 12px 50px; - font-size: 18px; - border-radius: 0.3rem; -} -.bodywebsite .input-group-addon input[type="radio"], -.bodywebsite .input-group-addon input[type="checkbox"] { - margin-top: 0; -} -.bodywebsite .input-group .form-input:not(:last-child), -.bodywebsite .input-group-addon:not(:last-child), -.bodywebsite .input-group-btn:not(:last-child) > .btn, -.bodywebsite .input-group-btn:not(:last-child) > .btn-group > .btn, -.bodywebsite .input-group-btn:not(:last-child) > .dropdown-toggle, -.bodywebsite .input-group-btn:not(:first-child) > .btn:not(:last-child):not(.dropdown-toggle), -.bodywebsite .input-group-btn:not(:first-child) > .btn-group:not(:last-child) > .btn { - border-top-right-radius: 0; - border-bottom-right-radius: 0; -} -.bodywebsite .input-group-addon:not(:last-child) { - border-right: 0; -} -.bodywebsite .input-group .form-input:not(:first-child), -.bodywebsite .input-group-addon:not(:first-child), -.bodywebsite .input-group-btn:not(:first-child) > .btn, -.bodywebsite .input-group-btn:not(:first-child) > .btn-group > .btn, -.bodywebsite .input-group-btn:not(:first-child) > .dropdown-toggle, -.bodywebsite .input-group-btn:not(:last-child) > .btn:not(:first-child), -.bodywebsite .input-group-btn:not(:last-child) > .btn-group:not(:first-child) > .btn { - border-top-left-radius: 0; - border-bottom-left-radius: 0; -} -.bodywebsite .form-input + .input-group-addon:not(:first-child) { - border-left: 0; -} -.bodywebsite .input-group-btn { - position: relative; - align-items: stretch; - font-size: 0; - white-space: nowrap; -} -.bodywebsite .input-group-btn > .btn { - position: relative; -} -.bodywebsite .input-group-btn > .btn + .btn { - margin-left: -1px; -} -.bodywebsite .input-group-btn > .btn:focus, -.bodywebsite .input-group-btn > .btn:active, -.bodywebsite .input-group-btn > .btn:hover { - z-index: 3; -} -.bodywebsite .input-group-btn:first-child > .btn + .btn { - margin-left: 0; -} -.bodywebsite .input-group-btn:not(:last-child) > .btn, -.bodywebsite .input-group-btn:not(:last-child) > .btn-group { - margin-right: -1px; -} -.bodywebsite .input-group-btn:not(:first-child) > .btn, -.bodywebsite .input-group-btn:not(:first-child) > .btn-group { - z-index: 2; - margin-left: 0; -} -.bodywebsite .input-group-btn:not(:first-child) > .btn:first-child, -.bodywebsite .input-group-btn:not(:first-child) > .btn-group:first-child { - margin-left: -1px; -} -.bodywebsite .input-group-btn:not(:first-child) > .btn:focus, -.bodywebsite .input-group-btn:not(:first-child) > .btn:active, -.bodywebsite .input-group-btn:not(:first-child) > .btn:hover, -.bodywebsite .input-group-btn:not(:first-child) > .btn-group:focus, -.bodywebsite .input-group-btn:not(:first-child) > .btn-group:active, -.bodywebsite .input-group-btn:not(:first-child) > .btn-group:hover { - z-index: 3; -} -.bodywebsite .custom-control { - position: relative; - display: inline-flex; - min-height: 1.71429rem; - padding-left: 1.5rem; - margin-right: 1rem; -} -.bodywebsite .custom-control-input { - position: absolute; - z-index: -1; - opacity: 0; -} -.bodywebsite .custom-control-input:checked ~ .custom-control-indicator { - color: #fff; - background-color: #007bff; - box-shadow: none; -} -.bodywebsite .custom-control-input:focus ~ .custom-control-indicator { - box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25); -} -.bodywebsite .custom-control-input:active ~ .custom-control-indicator { - color: #fff; - background-color: #b3d7ff; - box-shadow: none; -} -.bodywebsite .custom-control-input:disabled ~ .custom-control-indicator { - background-color: #e9ecef; -} -.bodywebsite .custom-control-input:disabled ~ .custom-control-description { - color: #868e96; -} -.bodywebsite .custom-control-indicator { - position: absolute; - top: 0.35714rem; - left: 0; - display: block; - width: 1rem; - height: 1rem; - pointer-events: none; - user-select: none; - background-color: #ddd; - background-repeat: no-repeat; - background-position: center center; - background-size: 50% 50%; - box-shadow: inset 0 0.25rem 0.25rem rgba(0, 0, 0, 0.1); -} -.bodywebsite .custom-checkbox .custom-control-indicator { - border-radius: 0.25rem; -} -.bodywebsite .custom-checkbox .custom-control-input:checked ~ .custom-control-indicator { - background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E"); -} -.bodywebsite .custom-checkbox .custom-control-input:indeterminate ~ .custom-control-indicator { - background-color: #007bff; - background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E"); - box-shadow: none; -} -.bodywebsite .custom-radio .custom-control-indicator { - border-radius: 50%; -} -.bodywebsite .custom-radio .custom-control-input:checked ~ .custom-control-indicator { - background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E"); -} -.bodywebsite .custom-controls-stacked { - display: flex; - flex-direction: column; -} -.bodywebsite .custom-controls-stacked .custom-control { - margin-bottom: 0.25rem; -} -.bodywebsite .custom-controls-stacked .custom-control + .custom-control { - margin-left: 0; -} -.bodywebsite .custom-select { - display: inline-block; - max-width: 100%; - height: calc(4.25rem); - padding: 0.375rem 1.75rem 0.375rem 0.75rem; - line-height: 1.5; - color: #495057; - vertical-align: middle; - background: #fff url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23333' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") no-repeat right 0.75rem center; - background-size: 8px 10px; - border: 1px solid #ced4da; - border-radius: 0.25rem; - appearance: none; -} -.bodywebsite .custom-select:focus { - border-color: #80bdff; - outline: none; - box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.075), 0 0 5px rgba(128, 189, 255, 0.5); -} -.bodywebsite .custom-select[multiple] { - height: auto; - background-image: none; -} -.bodywebsite .custom-select:disabled { - color: #868e96; - background-color: #e9ecef; -} -.bodywebsite .custom-select::-ms-expand { - opacity: 0; -} -.bodywebsite .custom-select-sm { - height: calc(3.8125rem); - padding-top: 0.375rem; - padding-bottom: 0.375rem; - font-size: 75%; -} -.bodywebsite .custom-file { - position: relative; - display: inline-block; - max-width: 100%; - height: calc(4.25rem); - margin-bottom: 0; -} -.bodywebsite .custom-file-input { - min-width: 14rem; - max-width: 100%; - height: calc(4.25rem); - margin: 0; - opacity: 0; -} -.bodywebsite .custom-file-input:focus ~ .custom-file-control { - box-shadow: 0 0 0 0.075rem #fff, 0 0 0 0.2rem #007bff; -} -.bodywebsite .custom-file-control { - position: absolute; - top: 0; - right: 0; - left: 0; - z-index: 5; - height: calc(4.25rem); - padding: 0.375rem 0.75rem; - line-height: 1.5; - color: #495057; - pointer-events: none; - user-select: none; - background-color: #fff; - border: 1px solid #ced4da; - border-radius: 0.25rem; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); -} -.bodywebsite .custom-file-control:lang(en):empty::after { - content: "Choose file..."; -} -.bodywebsite .custom-file-control::before { - position: absolute; - top: -1px; - right: -1px; - bottom: -1px; - z-index: 6; - display: block; - height: calc(4.25rem); - padding: 0.375rem 0.75rem; - line-height: 1.5; - color: #495057; - background-color: #e9ecef; - border: 1px solid #ced4da; - border-radius: 0 0.25rem 0.25rem 0; -} -.bodywebsite .custom-file-control:lang(en)::before { - content: "Browse"; -} -.bodywebsite .nav { - display: flex; - flex-wrap: wrap; - padding-left: 0; - margin-bottom: 0; - list-style: none; -} -.bodywebsite .nav-link { - display: block; - padding: 0.5rem 1rem; -} -.bodywebsite .nav-link:focus, -.bodywebsite .nav-link:hover { - text-decoration: none; -} -.bodywebsite .nav-link.disabled { - color: #868e96; -} -.bodywebsite .nav-tabs { - border-bottom: 1px solid #ddd; -} -.bodywebsite .nav-tabs .nav-item { - margin-bottom: -1px; -} -.bodywebsite .nav-tabs .nav-link { - border: 1px solid transparent; - border-top-left-radius: 0.25rem; - border-top-right-radius: 0.25rem; -} -.bodywebsite .nav-tabs .nav-link:focus, -.bodywebsite .nav-tabs .nav-link:hover { - border-color: #f9f9f9 #f9f9f9 #ddd; -} -.bodywebsite .nav-tabs .nav-link.disabled { - color: #868e96; - background-color: transparent; - border-color: transparent; -} -.bodywebsite .nav-tabs .nav-link.active, -.bodywebsite .nav-tabs .nav-item.show .nav-link { - color: #495057; - background-color: #fff; - border-color: #ddd #ddd #fff; -} -.bodywebsite .nav-tabs .dropdown-menu { - margin-top: -1px; - border-top-left-radius: 0; - border-top-right-radius: 0; -} -.bodywebsite .nav-pills .nav-link { - border-radius: 0; -} -.bodywebsite .nav-pills .nav-link.active, -.bodywebsite .nav-pills .show > .nav-link { - color: #fff; - background-color: #007bff; -} -.bodywebsite .nav-fill .nav-item { - flex: 1 1 auto; - text-align: center; -} -.bodywebsite .nav-justified .nav-item { - flex-basis: 0; - flex-grow: 1; - text-align: center; -} -.bodywebsite .tab-content > .tab-pane { - display: none; -} -.bodywebsite .tab-content > .active { - display: block; -} -.bodywebsite .navbar { - position: relative; - display: flex; - flex-wrap: wrap; - align-items: center; - justify-content: space-between; - padding: 0.5rem 1rem; -} -.bodywebsite .navbar > .container, -.bodywebsite .navbar > .container-fluid { - display: flex; - flex-wrap: wrap; - align-items: center; - justify-content: space-between; -} -.bodywebsite .navbar-brand { - display: inline-block; - padding-top: 0.3125rem; - padding-bottom: 0.3125rem; - margin-right: 1rem; - font-size: 1.25rem; - line-height: inherit; - white-space: nowrap; -} -.bodywebsite .navbar-brand:focus, -.bodywebsite .navbar-brand:hover { - text-decoration: none; -} -.bodywebsite .navbar-nav { - display: flex; - flex-direction: column; - padding-left: 0; - margin-bottom: 0; - list-style: none; -} -.bodywebsite .navbar-nav .nav-link { - padding-right: 0; - padding-left: 0; -} -.bodywebsite .navbar-nav .dropdown-menu { - position: static; - float: none; -} -.bodywebsite .navbar-text { - display: inline-block; - padding-top: 0.5rem; - padding-bottom: 0.5rem; -} -.bodywebsite .navbar-collapse { - flex-basis: 100%; - flex-grow: 1; - align-items: center; -} -.bodywebsite .navbar-toggler { - padding: 0.25rem 0.75rem; - font-size: 1.25rem; - line-height: 1; - background: transparent; - border: 1px solid transparent; - border-radius: 0.25rem; -} -.bodywebsite .navbar-toggler:focus, -.bodywebsite .navbar-toggler:hover { - text-decoration: none; -} -.bodywebsite .navbar-toggler-icon { - display: inline-block; - width: 1.5em; - height: 1.5em; - vertical-align: middle; - content: ""; - background: no-repeat center center; - background-size: 100% 100%; -} -@media (max-width: 575px) { - .bodywebsite .navbar-expand-sm > .container, - .bodywebsite .navbar-expand-sm > .container-fluid { - padding-right: 0; - padding-left: 0; - } -} -@media (min-width: 576px) { - .bodywebsite .navbar-expand-sm { - flex-flow: row nowrap; - justify-content: flex-start; - } - .bodywebsite .navbar-expand-sm .navbar-nav { - flex-direction: row; - } - .bodywebsite .navbar-expand-sm .navbar-nav .dropdown-menu { - position: absolute; - } - .bodywebsite .navbar-expand-sm .navbar-nav .dropdown-menu-right { - right: 0; - left: auto; - } - .bodywebsite .navbar-expand-sm .navbar-nav .nav-link { - padding-right: .5rem; - padding-left: .5rem; - } - .bodywebsite .navbar-expand-sm > .container, - .bodywebsite .navbar-expand-sm > .container-fluid { - flex-wrap: nowrap; - } - .bodywebsite .navbar-expand-sm .navbar-collapse { - display: flex !important; - flex-basis: auto; - } - .bodywebsite .navbar-expand-sm .navbar-toggler { - display: none; - } - .bodywebsite .navbar-expand-sm .dropup .dropdown-menu { - top: auto; - bottom: 100%; - } -} -@media (max-width: 767px) { - .bodywebsite .navbar-expand-md > .container, - .bodywebsite .navbar-expand-md > .container-fluid { - padding-right: 0; - padding-left: 0; - } -} -@media (min-width: 768px) { - .bodywebsite .navbar-expand-md { - flex-flow: row nowrap; - justify-content: flex-start; - } - .bodywebsite .navbar-expand-md .navbar-nav { - flex-direction: row; - } - .bodywebsite .navbar-expand-md .navbar-nav .dropdown-menu { - position: absolute; - } - .bodywebsite .navbar-expand-md .navbar-nav .dropdown-menu-right { - right: 0; - left: auto; - } - .bodywebsite .navbar-expand-md .navbar-nav .nav-link { - padding-right: .5rem; - padding-left: .5rem; - } - .bodywebsite .navbar-expand-md > .container, - .bodywebsite .navbar-expand-md > .container-fluid { - flex-wrap: nowrap; - } - .bodywebsite .navbar-expand-md .navbar-collapse { - display: flex !important; - flex-basis: auto; - } - .bodywebsite .navbar-expand-md .navbar-toggler { - display: none; - } - .bodywebsite .navbar-expand-md .dropup .dropdown-menu { - top: auto; - bottom: 100%; - } -} -@media (max-width: 991px) { - .bodywebsite .navbar-expand-lg > .container, - .bodywebsite .navbar-expand-lg > .container-fluid { - padding-right: 0; - padding-left: 0; - } -} -@media (min-width: 992px) { - .bodywebsite .navbar-expand-lg { - flex-flow: row nowrap; - justify-content: flex-start; - } - .bodywebsite .navbar-expand-lg .navbar-nav { - flex-direction: row; - } - .bodywebsite .navbar-expand-lg .navbar-nav .dropdown-menu { - position: absolute; - } - .bodywebsite .navbar-expand-lg .navbar-nav .dropdown-menu-right { - right: 0; - left: auto; - } - .bodywebsite .navbar-expand-lg .navbar-nav .nav-link { - padding-right: .5rem; - padding-left: .5rem; - } - .bodywebsite .navbar-expand-lg > .container, - .bodywebsite .navbar-expand-lg > .container-fluid { - flex-wrap: nowrap; - } - .bodywebsite .navbar-expand-lg .navbar-collapse { - display: flex !important; - flex-basis: auto; - } - .bodywebsite .navbar-expand-lg .navbar-toggler { - display: none; - } - .bodywebsite .navbar-expand-lg .dropup .dropdown-menu { - top: auto; - bottom: 100%; - } -} -@media (max-width: 1199px) { - .bodywebsite .navbar-expand-xl > .container, - .bodywebsite .navbar-expand-xl > .container-fluid { - padding-right: 0; - padding-left: 0; - } -} -@media (min-width: 1200px) { - .bodywebsite .navbar-expand-xl { - flex-flow: row nowrap; - justify-content: flex-start; - } - .bodywebsite .navbar-expand-xl .navbar-nav { - flex-direction: row; - } - .bodywebsite .navbar-expand-xl .navbar-nav .dropdown-menu { - position: absolute; - } - .bodywebsite .navbar-expand-xl .navbar-nav .dropdown-menu-right { - right: 0; - left: auto; - } - .bodywebsite .navbar-expand-xl .navbar-nav .nav-link { - padding-right: .5rem; - padding-left: .5rem; - } - .bodywebsite .navbar-expand-xl > .container, - .bodywebsite .navbar-expand-xl > .container-fluid { - flex-wrap: nowrap; - } - .bodywebsite .navbar-expand-xl .navbar-collapse { - display: flex !important; - flex-basis: auto; - } - .bodywebsite .navbar-expand-xl .navbar-toggler { - display: none; - } - .bodywebsite .navbar-expand-xl .dropup .dropdown-menu { - top: auto; - bottom: 100%; - } -} -@media (max-width: 1799px) { - .bodywebsite .navbar-expand-xxl > .container, - .bodywebsite .navbar-expand-xxl > .container-fluid { - padding-right: 0; - padding-left: 0; - } -} -@media (min-width: 1800px) { - .bodywebsite .navbar-expand-xxl { - flex-flow: row nowrap; - justify-content: flex-start; - } - .bodywebsite .navbar-expand-xxl .navbar-nav { - flex-direction: row; - } - .bodywebsite .navbar-expand-xxl .navbar-nav .dropdown-menu { - position: absolute; - } - .bodywebsite .navbar-expand-xxl .navbar-nav .dropdown-menu-right { - right: 0; - left: auto; - } - .bodywebsite .navbar-expand-xxl .navbar-nav .nav-link { - padding-right: .5rem; - padding-left: .5rem; - } - .bodywebsite .navbar-expand-xxl > .container, - .bodywebsite .navbar-expand-xxl > .container-fluid { - flex-wrap: nowrap; - } - .bodywebsite .navbar-expand-xxl .navbar-collapse { - display: flex !important; - flex-basis: auto; - } - .bodywebsite .navbar-expand-xxl .navbar-toggler { - display: none; - } - .bodywebsite .navbar-expand-xxl .dropup .dropdown-menu { - top: auto; - bottom: 100%; - } -} -.bodywebsite .navbar-expand { - flex-flow: row nowrap; - justify-content: flex-start; -} -.bodywebsite .navbar-expand > .container, -.bodywebsite .navbar-expand > .container-fluid { - padding-right: 0; - padding-left: 0; -} -.bodywebsite .navbar-expand .navbar-nav { - flex-direction: row; -} -.bodywebsite .navbar-expand .navbar-nav .dropdown-menu { - position: absolute; -} -.bodywebsite .navbar-expand .navbar-nav .dropdown-menu-right { - right: 0; - left: auto; -} -.bodywebsite .navbar-expand .navbar-nav .nav-link { - padding-right: .5rem; - padding-left: .5rem; -} -.bodywebsite .navbar-expand > .container, -.bodywebsite .navbar-expand > .container-fluid { - flex-wrap: nowrap; -} -.bodywebsite .navbar-expand .navbar-collapse { - display: flex !important; - flex-basis: auto; -} -.bodywebsite .navbar-expand .navbar-toggler { - display: none; -} -.bodywebsite .navbar-expand .dropup .dropdown-menu { - top: auto; - bottom: 100%; -} -.bodywebsite .navbar-light .navbar-brand { - color: rgba(0, 0, 0, 0.9); -} -.bodywebsite .navbar-light .navbar-brand:focus, -.bodywebsite .navbar-light .navbar-brand:hover { - color: rgba(0, 0, 0, 0.9); -} -.bodywebsite .navbar-light .navbar-nav .nav-link { - color: rgba(0, 0, 0, 0.5); -} -.bodywebsite .navbar-light .navbar-nav .nav-link:focus, -.bodywebsite .navbar-light .navbar-nav .nav-link:hover { - color: rgba(0, 0, 0, 0.7); -} -.bodywebsite .navbar-light .navbar-nav .nav-link.disabled { - color: rgba(0, 0, 0, 0.3); -} -.bodywebsite .navbar-light .navbar-nav .show > .nav-link, -.bodywebsite .navbar-light .navbar-nav .active > .nav-link, -.bodywebsite .navbar-light .navbar-nav .nav-link.show, -.bodywebsite .navbar-light .navbar-nav .nav-link.active { - color: rgba(0, 0, 0, 0.9); -} -.bodywebsite .navbar-light .navbar-toggler { - color: rgba(0, 0, 0, 0.5); - border-color: rgba(0, 0, 0, 0.1); -} -.bodywebsite .navbar-light .navbar-toggler-icon { - background-image: url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E"); -} -.bodywebsite .navbar-light .navbar-text { - color: rgba(0, 0, 0, 0.5); -} -.bodywebsite .navbar-light .navbar-text a { - color: rgba(0, 0, 0, 0.9); -} -.bodywebsite .navbar-light .navbar-text a:focus, -.bodywebsite .navbar-light .navbar-text a:hover { - color: rgba(0, 0, 0, 0.9); -} -.bodywebsite .navbar-dark .navbar-brand { - color: #fff; -} -.bodywebsite .navbar-dark .navbar-brand:focus, -.bodywebsite .navbar-dark .navbar-brand:hover { - color: #fff; -} -.bodywebsite .navbar-dark .navbar-nav .nav-link { - color: rgba(255, 255, 255, 0.5); -} -.bodywebsite .navbar-dark .navbar-nav .nav-link:focus, -.bodywebsite .navbar-dark .navbar-nav .nav-link:hover { - color: rgba(255, 255, 255, 0.75); -} -.bodywebsite .navbar-dark .navbar-nav .nav-link.disabled { - color: rgba(255, 255, 255, 0.25); -} -.bodywebsite .navbar-dark .navbar-nav .show > .nav-link, -.bodywebsite .navbar-dark .navbar-nav .active > .nav-link, -.bodywebsite .navbar-dark .navbar-nav .nav-link.show, -.bodywebsite .navbar-dark .navbar-nav .nav-link.active { - color: #fff; -} -.bodywebsite .navbar-dark .navbar-toggler { - color: rgba(255, 255, 255, 0.5); - border-color: rgba(255, 255, 255, 0.1); -} -.bodywebsite .navbar-dark .navbar-toggler-icon { - background-image: url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E"); -} -.bodywebsite .navbar-dark .navbar-text { - color: rgba(255, 255, 255, 0.5); -} -.bodywebsite .navbar-dark .navbar-text a { - color: #fff; -} -.bodywebsite .navbar-dark .navbar-text a:focus, -.bodywebsite .navbar-dark .navbar-text a:hover { - color: #fff; -} -.bodywebsite .jumbotron { - padding: 2rem 1rem; - margin-bottom: 2rem; - background-color: #e9ecef; - border-radius: 6px; -} -@media (min-width: 576px) { - .bodywebsite .jumbotron { - padding: 4rem 2rem; - } -} -.bodywebsite .jumbotron-fluid { - padding-right: 0; - padding-left: 0; - border-radius: 0; -} -.bodywebsite .alert { - position: relative; - padding: 0.75rem 1.25rem; - margin-bottom: 1rem; - border: 1px solid transparent; - border-radius: 0.25rem; -} -.bodywebsite .alert-heading { - color: inherit; -} -.bodywebsite .alert-link { - font-weight: 700; -} -.bodywebsite .alert-dismissible .close { - position: absolute; - top: 0; - right: 0; - padding: 0.75rem 1.25rem; - color: inherit; -} -.bodywebsite .alert-primary { - color: #004085; - background-color: #cce5ff; - border-color: #b8daff; -} -.bodywebsite .alert-primary hr { - border-top-color: #9fcdff; -} -.bodywebsite .alert-primary .alert-link { - color: #002752; -} -.bodywebsite .alert-secondary { - color: #464a4e; - background-color: #e7e8ea; - border-color: #dddfe2; -} -.bodywebsite .alert-secondary hr { - border-top-color: #cfd2d6; -} -.bodywebsite .alert-secondary .alert-link { - color: #2e3133; -} -.bodywebsite .alert-success { - color: #155724; - background-color: #d4edda; - border-color: #c3e6cb; -} -.bodywebsite .alert-success hr { - border-top-color: #b1dfbb; -} -.bodywebsite .alert-success .alert-link { - color: #0b2e13; -} -.bodywebsite .alert-info { - color: #0c5460; - background-color: #d1ecf1; - border-color: #bee5eb; -} -.bodywebsite .alert-info hr { - border-top-color: #abdde5; -} -.bodywebsite .alert-info .alert-link { - color: #062c33; -} -.bodywebsite .alert-warning { - color: #856404; - background-color: #fff3cd; - border-color: #ffeeba; -} -.bodywebsite .alert-warning hr { - border-top-color: #ffe8a1; -} -.bodywebsite .alert-warning .alert-link { - color: #533f03; -} -.bodywebsite .alert-danger { - color: #721c24; - background-color: #f8d7da; - border-color: #f5c6cb; -} -.bodywebsite .alert-danger hr { - border-top-color: #f1b0b7; -} -.bodywebsite .alert-danger .alert-link { - color: #491217; -} -.bodywebsite .alert-light { - color: #818182; - background-color: #fefefe; - border-color: #fdfdfe; -} -.bodywebsite .alert-light hr { - border-top-color: #ececf6; -} -.bodywebsite .alert-light .alert-link { - color: #686868; -} -.bodywebsite .alert-dark { - color: #1b1e21; - background-color: #d6d8d9; - border-color: #c6c8ca; -} -.bodywebsite .alert-dark hr { - border-top-color: #b9bbbe; -} -.bodywebsite .alert-dark .alert-link { - color: #040505; -} -@keyframes progress-bar-stripes { - from { - background-position: 1rem 0; - } - to { - background-position: 0 0; - } -} -.bodywebsite .progress { - display: flex; - height: 1rem; - overflow: hidden; - font-size: 0.75rem; - background-color: #e9ecef; - border-radius: 0.25rem; -} -.bodywebsite .progress-bar { - display: flex; - align-items: center; - justify-content: center; - color: #fff; - background-color: #007bff; -} -.bodywebsite .progress-bar-striped { - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-size: 1rem 1rem; -} -.bodywebsite .progress-bar-animated { - animation: progress-bar-stripes 1s linear infinite; -} -.bodywebsite .media { - display: flex; - align-items: flex-start; -} -.bodywebsite .media-body { - flex: 1; -} -.bodywebsite .list-group { - display: flex; - flex-direction: column; - padding-left: 0; - margin-bottom: 0; -} -.bodywebsite .list-group-item-action { - width: 100%; - color: #495057; - text-align: inherit; -} -.bodywebsite .list-group-item-action:focus, -.bodywebsite .list-group-item-action:hover { - color: #495057; - text-decoration: none; - background-color: #f8f9fa; -} -.bodywebsite .list-group-item-action:active { - color: #212529; - background-color: #e9ecef; -} -.bodywebsite .list-group-item { - position: relative; - display: block; - padding: 0.75rem 1.25rem; - margin-bottom: -1px; - background-color: #fff; - border: 1px solid rgba(0, 0, 0, 0.125); -} -.bodywebsite .list-group-item:first-child { - border-top-left-radius: 0.25rem; - border-top-right-radius: 0.25rem; -} -.bodywebsite .list-group-item:last-child { - margin-bottom: 0; - border-bottom-right-radius: 0.25rem; - border-bottom-left-radius: 0.25rem; -} -.bodywebsite .list-group-item:focus, -.bodywebsite .list-group-item:hover { - text-decoration: none; -} -.bodywebsite .list-group-item.disabled, -.bodywebsite .list-group-item:disabled { - color: #868e96; - background-color: #fff; -} -.bodywebsite .list-group-item.active { - z-index: 2; - color: #fff; - background-color: #007bff; - border-color: #007bff; -} -.bodywebsite .list-group-flush .list-group-item { - border-right: 0; - border-left: 0; - border-radius: 0; -} -.bodywebsite .list-group-flush:first-child .list-group-item:first-child { - border-top: 0; -} -.bodywebsite .list-group-flush:last-child .list-group-item:last-child { - border-bottom: 0; -} -.bodywebsite .list-group-item-primary { - color: #004085; - background-color: #b8daff; -} -.bodywebsite a.list-group-item-primary, -.bodywebsite button.list-group-item-primary { - color: #004085; -} -.bodywebsite a.list-group-item-primary:focus, -.bodywebsite a.list-group-item-primary:hover, -.bodywebsite button.list-group-item-primary:focus, -.bodywebsite button.list-group-item-primary:hover { - color: #004085; - background-color: #9fcdff; -} -.bodywebsite a.list-group-item-primary.active, -.bodywebsite button.list-group-item-primary.active { - color: #fff; - background-color: #004085; - border-color: #004085; -} -.bodywebsite .list-group-item-secondary { - color: #464a4e; - background-color: #dddfe2; -} -.bodywebsite a.list-group-item-secondary, -.bodywebsite button.list-group-item-secondary { - color: #464a4e; -} -.bodywebsite a.list-group-item-secondary:focus, -.bodywebsite a.list-group-item-secondary:hover, -.bodywebsite button.list-group-item-secondary:focus, -.bodywebsite button.list-group-item-secondary:hover { - color: #464a4e; - background-color: #cfd2d6; -} -.bodywebsite a.list-group-item-secondary.active, -.bodywebsite button.list-group-item-secondary.active { - color: #fff; - background-color: #464a4e; - border-color: #464a4e; -} -.bodywebsite .list-group-item-success { - color: #155724; - background-color: #c3e6cb; -} -.bodywebsite a.list-group-item-success, -.bodywebsite button.list-group-item-success { - color: #155724; -} -.bodywebsite a.list-group-item-success:focus, -.bodywebsite a.list-group-item-success:hover, -.bodywebsite button.list-group-item-success:focus, -.bodywebsite button.list-group-item-success:hover { - color: #155724; - background-color: #b1dfbb; -} -.bodywebsite a.list-group-item-success.active, -.bodywebsite button.list-group-item-success.active { - color: #fff; - background-color: #155724; - border-color: #155724; -} -.bodywebsite .list-group-item-info { - color: #0c5460; - background-color: #bee5eb; -} -.bodywebsite a.list-group-item-info, -.bodywebsite button.list-group-item-info { - color: #0c5460; -} -.bodywebsite a.list-group-item-info:focus, -.bodywebsite a.list-group-item-info:hover, -.bodywebsite button.list-group-item-info:focus, -.bodywebsite button.list-group-item-info:hover { - color: #0c5460; - background-color: #abdde5; -} -.bodywebsite a.list-group-item-info.active, -.bodywebsite button.list-group-item-info.active { - color: #fff; - background-color: #0c5460; - border-color: #0c5460; -} -.bodywebsite .list-group-item-warning { - color: #856404; - background-color: #ffeeba; -} -.bodywebsite a.list-group-item-warning, -.bodywebsite button.list-group-item-warning { - color: #856404; -} -.bodywebsite a.list-group-item-warning:focus, -.bodywebsite a.list-group-item-warning:hover, -.bodywebsite button.list-group-item-warning:focus, -.bodywebsite button.list-group-item-warning:hover { - color: #856404; - background-color: #ffe8a1; -} -.bodywebsite a.list-group-item-warning.active, -.bodywebsite button.list-group-item-warning.active { - color: #fff; - background-color: #856404; - border-color: #856404; -} -.bodywebsite .list-group-item-danger { - color: #721c24; - background-color: #f5c6cb; -} -.bodywebsite a.list-group-item-danger, -.bodywebsite button.list-group-item-danger { - color: #721c24; -} -.bodywebsite a.list-group-item-danger:focus, -.bodywebsite a.list-group-item-danger:hover, -.bodywebsite button.list-group-item-danger:focus, -.bodywebsite button.list-group-item-danger:hover { - color: #721c24; - background-color: #f1b0b7; -} -.bodywebsite a.list-group-item-danger.active, -.bodywebsite button.list-group-item-danger.active { - color: #fff; - background-color: #721c24; - border-color: #721c24; -} -.bodywebsite .list-group-item-light { - color: #818182; - background-color: #fdfdfe; -} -.bodywebsite a.list-group-item-light, -.bodywebsite button.list-group-item-light { - color: #818182; -} -.bodywebsite a.list-group-item-light:focus, -.bodywebsite a.list-group-item-light:hover, -.bodywebsite button.list-group-item-light:focus, -.bodywebsite button.list-group-item-light:hover { - color: #818182; - background-color: #ececf6; -} -.bodywebsite a.list-group-item-light.active, -.bodywebsite button.list-group-item-light.active { - color: #fff; - background-color: #818182; - border-color: #818182; -} -.bodywebsite .list-group-item-dark { - color: #1b1e21; - background-color: #c6c8ca; -} -.bodywebsite a.list-group-item-dark, -.bodywebsite button.list-group-item-dark { - color: #1b1e21; -} -.bodywebsite a.list-group-item-dark:focus, -.bodywebsite a.list-group-item-dark:hover, -.bodywebsite button.list-group-item-dark:focus, -.bodywebsite button.list-group-item-dark:hover { - color: #1b1e21; - background-color: #b9bbbe; -} -.bodywebsite a.list-group-item-dark.active, -.bodywebsite button.list-group-item-dark.active { - color: #fff; - background-color: #1b1e21; - border-color: #1b1e21; -} -.bodywebsite .close { - float: right; - font-size: 1.5rem; - font-weight: 700; - line-height: 1; - color: #000; - text-shadow: 0 1px 0 #fff; - opacity: .5; -} -.bodywebsite .close:focus, -.bodywebsite .close:hover { - color: #000; - text-decoration: none; - opacity: .75; -} -.bodywebsite button.close { - padding: 0; - background: transparent; - border: 0; - -webkit-appearance: none; -} -.bodywebsite .tooltip { - position: absolute; - z-index: 1070; - display: block; - margin: 0; - font-family: "Roboto", Helvetica, Arial, sans-serif; - font-style: normal; - font-weight: 400; - line-height: 1.71429; - text-align: left; - text-align: start; - text-decoration: none; - text-shadow: none; - text-transform: none; - letter-spacing: normal; - word-break: normal; - word-spacing: normal; - white-space: normal; - line-break: auto; - font-size: 12px; - word-wrap: break-word; - opacity: 0; -} -.bodywebsite .tooltip.show { - opacity: 1; -} -.bodywebsite .tooltip .arrow { - position: absolute; - display: block; - width: 6px; - height: 6px; -} -.bodywebsite .tooltip .arrow::before { - position: absolute; - border-color: transparent; - border-style: solid; -} -.bodywebsite .tooltip.bs-tooltip-top, -.bodywebsite .tooltip.bs-tooltip-auto[x-placement^="top"] { - padding: 6px 0; -} -.bodywebsite .tooltip.bs-tooltip-top .arrow, -.bodywebsite .tooltip.bs-tooltip-auto[x-placement^="top"] .arrow { - bottom: 0; -} -.bodywebsite .tooltip.bs-tooltip-top .arrow::before, -.bodywebsite .tooltip.bs-tooltip-auto[x-placement^="top"] .arrow::before { - margin-left: -4px; - content: ""; - border-width: 6px 6px 0; - border-top-color: #37c386; -} -.bodywebsite .tooltip.bs-tooltip-right, -.bodywebsite .tooltip.bs-tooltip-auto[x-placement^="right"] { - padding: 0 6px; -} -.bodywebsite .tooltip.bs-tooltip-right .arrow, -.bodywebsite .tooltip.bs-tooltip-auto[x-placement^="right"] .arrow { - left: 0; -} -.bodywebsite .tooltip.bs-tooltip-right .arrow::before, -.bodywebsite .tooltip.bs-tooltip-auto[x-placement^="right"] .arrow::before { - margin-top: -4px; - content: ""; - border-width: 6px 6px 6px 0; - border-right-color: #37c386; -} -.bodywebsite .tooltip.bs-tooltip-bottom, -.bodywebsite .tooltip.bs-tooltip-auto[x-placement^="bottom"] { - padding: 6px 0; -} -.bodywebsite .tooltip.bs-tooltip-bottom .arrow, -.bodywebsite .tooltip.bs-tooltip-auto[x-placement^="bottom"] .arrow { - top: 0; -} -.bodywebsite .tooltip.bs-tooltip-bottom .arrow::before, -.bodywebsite .tooltip.bs-tooltip-auto[x-placement^="bottom"] .arrow::before { - margin-left: -4px; - content: ""; - border-width: 0 6px 6px; - border-bottom-color: #37c386; -} -.bodywebsite .tooltip.bs-tooltip-left, -.bodywebsite .tooltip.bs-tooltip-auto[x-placement^="left"] { - padding: 0 6px; -} -.bodywebsite .tooltip.bs-tooltip-left .arrow, -.bodywebsite .tooltip.bs-tooltip-auto[x-placement^="left"] .arrow { - right: 0; -} -.bodywebsite .tooltip.bs-tooltip-left .arrow::before, -.bodywebsite .tooltip.bs-tooltip-auto[x-placement^="left"] .arrow::before { - right: 0; - margin-top: -4px; - content: ""; - border-width: 6px 0 6px 6px; - border-left-color: #37c386; -} -.bodywebsite .tooltip-inner { - max-width: 200px; - padding: 6px 10px; - color: #fff; - text-align: center; - background-color: #37c386; - border-radius: 0; -} -.bodywebsite .popover { - position: absolute; - top: 0; - left: 0; - z-index: 1060; - display: block; - max-width: 276px; - font-family: "Roboto", Helvetica, Arial, sans-serif; - font-style: normal; - font-weight: 400; - line-height: 1.71429; - text-align: left; - text-align: start; - text-decoration: none; - text-shadow: none; - text-transform: none; - letter-spacing: normal; - word-break: normal; - word-spacing: normal; - white-space: normal; - line-break: auto; - font-size: 12px; - word-wrap: break-word; - background-color: #fff; - background-clip: padding-box; - border: 1px solid rgba(0, 0, 0, 0.2); - border-radius: 6px; - box-shadow: 0 0.25rem 0.5rem rgba(0, 0, 0, 0.2); -} -.bodywebsite .popover .arrow { - position: absolute; - display: block; - width: 0.8rem; - height: 0.4rem; -} -.bodywebsite .popover .arrow::before, -.bodywebsite .popover .arrow::after { - position: absolute; - display: block; - border-color: transparent; - border-style: solid; -} -.bodywebsite .popover .arrow::before { - content: ""; - border-width: 0.8rem; -} -.bodywebsite .popover .arrow::after { - content: ""; - border-width: 0.8rem; -} -.bodywebsite .popover.bs-popover-top, -.bodywebsite .popover.bs-popover-auto[x-placement^="top"] { - margin-bottom: 0.8rem; -} -.bodywebsite .popover.bs-popover-top .arrow, -.bodywebsite .popover.bs-popover-auto[x-placement^="top"] .arrow { - bottom: 0; -} -.bodywebsite .popover.bs-popover-top .arrow::before, -.bodywebsite .popover.bs-popover-auto[x-placement^="top"] .arrow::before, -.bodywebsite .popover.bs-popover-top .arrow::after, -.bodywebsite .popover.bs-popover-auto[x-placement^="top"] .arrow::after { - border-bottom-width: 0; -} -.bodywebsite .popover.bs-popover-top .arrow::before, -.bodywebsite .popover.bs-popover-auto[x-placement^="top"] .arrow::before { - bottom: -0.8rem; - margin-left: -0.8rem; - border-top-color: rgba(0, 0, 0, 0.25); -} -.bodywebsite .popover.bs-popover-top .arrow::after, -.bodywebsite .popover.bs-popover-auto[x-placement^="top"] .arrow::after { - bottom: calc(0.2rem); - margin-left: -0.8rem; - border-top-color: #fff; -} -.bodywebsite .popover.bs-popover-right, -.bodywebsite .popover.bs-popover-auto[x-placement^="right"] { - margin-left: 0.8rem; -} -.bodywebsite .popover.bs-popover-right .arrow, -.bodywebsite .popover.bs-popover-auto[x-placement^="right"] .arrow { - left: 0; -} -.bodywebsite .popover.bs-popover-right .arrow::before, -.bodywebsite .popover.bs-popover-auto[x-placement^="right"] .arrow::before, -.bodywebsite .popover.bs-popover-right .arrow::after, -.bodywebsite .popover.bs-popover-auto[x-placement^="right"] .arrow::after { - margin-top: -0.8rem; - border-left-width: 0; -} -.bodywebsite .popover.bs-popover-right .arrow::before, -.bodywebsite .popover.bs-popover-auto[x-placement^="right"] .arrow::before { - left: -0.8rem; - border-right-color: rgba(0, 0, 0, 0.25); -} -.bodywebsite .popover.bs-popover-right .arrow::after, -.bodywebsite .popover.bs-popover-auto[x-placement^="right"] .arrow::after { - left: calc(0.2rem); - border-right-color: #fff; -} -.bodywebsite .popover.bs-popover-bottom, -.bodywebsite .popover.bs-popover-auto[x-placement^="bottom"] { - margin-top: 0.8rem; -} -.bodywebsite .popover.bs-popover-bottom .arrow, -.bodywebsite .popover.bs-popover-auto[x-placement^="bottom"] .arrow { - top: 0; -} -.bodywebsite .popover.bs-popover-bottom .arrow::before, -.bodywebsite .popover.bs-popover-auto[x-placement^="bottom"] .arrow::before, -.bodywebsite .popover.bs-popover-bottom .arrow::after, -.bodywebsite .popover.bs-popover-auto[x-placement^="bottom"] .arrow::after { - margin-left: -0.8rem; - border-top-width: 0; -} -.bodywebsite .popover.bs-popover-bottom .arrow::before, -.bodywebsite .popover.bs-popover-auto[x-placement^="bottom"] .arrow::before { - top: -0.8rem; - border-bottom-color: rgba(0, 0, 0, 0.25); -} -.bodywebsite .popover.bs-popover-bottom .arrow::after, -.bodywebsite .popover.bs-popover-auto[x-placement^="bottom"] .arrow::after { - top: calc(0.2rem); - border-bottom-color: #fff; -} -.bodywebsite .popover.bs-popover-bottom .popover-header::before, -.bodywebsite .popover.bs-popover-auto[x-placement^="bottom"] .popover-header::before { - position: absolute; - top: 0; - left: 50%; - display: block; - width: 20px; - margin-left: -10px; - content: ""; - border-bottom: 1px solid #f7f7f7; -} -.bodywebsite .popover.bs-popover-left, -.bodywebsite .popover.bs-popover-auto[x-placement^="left"] { - margin-right: 0.8rem; -} -.bodywebsite .popover.bs-popover-left .arrow, -.bodywebsite .popover.bs-popover-auto[x-placement^="left"] .arrow { - right: 0; -} -.bodywebsite .popover.bs-popover-left .arrow::before, -.bodywebsite .popover.bs-popover-auto[x-placement^="left"] .arrow::before, -.bodywebsite .popover.bs-popover-left .arrow::after, -.bodywebsite .popover.bs-popover-auto[x-placement^="left"] .arrow::after { - margin-top: -0.8rem; - border-right-width: 0; -} -.bodywebsite .popover.bs-popover-left .arrow::before, -.bodywebsite .popover.bs-popover-auto[x-placement^="left"] .arrow::before { - right: -0.8rem; - border-left-color: rgba(0, 0, 0, 0.25); -} -.bodywebsite .popover.bs-popover-left .arrow::after, -.bodywebsite .popover.bs-popover-auto[x-placement^="left"] .arrow::after { - right: calc(0.2rem); - border-left-color: #fff; -} -.bodywebsite .popover-header { - padding: 0.5rem 0.75rem; - margin-bottom: 0; - font-size: 14px; - color: inherit; - background-color: #f7f7f7; - border-bottom: 1px solid #ebebeb; - border-top-left-radius: calc(5px); - border-top-right-radius: calc(5px); -} -.bodywebsite .popover-header:empty { - display: none; -} -.bodywebsite .popover-body { - padding: 0.5rem 0.75rem; - color: #212529; -} -.bodywebsite .carousel { - position: relative; -} -.bodywebsite .carousel-inner { - position: relative; - width: 100%; - overflow: hidden; -} -.bodywebsite .carousel-item { - position: relative; - display: none; - align-items: center; - width: 100%; - transition: transform 0.6s ease; - backface-visibility: hidden; - perspective: 1000px; -} -.bodywebsite .carousel-item.active, -.bodywebsite .carousel-item-next, -.bodywebsite .carousel-item-prev { - display: block; -} -.bodywebsite .carousel-item-next, -.bodywebsite .carousel-item-prev { - position: absolute; - top: 0; -} -.bodywebsite .carousel-item-next.carousel-item-left, -.bodywebsite .carousel-item-prev.carousel-item-right { - transform: translateX(0); -} -@supports (transform-style: preserve-3d) { - .bodywebsite .carousel-item-next.carousel-item-left, - .bodywebsite .carousel-item-prev.carousel-item-right { - transform: translate3d(0, 0, 0); - } -} -.bodywebsite .carousel-item-next, -.bodywebsite .active.carousel-item-right { - transform: translateX(100%); -} -@supports (transform-style: preserve-3d) { - .bodywebsite .carousel-item-next, - .bodywebsite .active.carousel-item-right { - transform: translate3d(100%, 0, 0); - } -} -.bodywebsite .carousel-item-prev, -.bodywebsite .active.carousel-item-left { - transform: translateX(-100%); -} -@supports (transform-style: preserve-3d) { - .bodywebsite .carousel-item-prev, - .bodywebsite .active.carousel-item-left { - transform: translate3d(-100%, 0, 0); - } -} -.bodywebsite .carousel-control-prev, -.bodywebsite .carousel-control-next { - position: absolute; - top: 0; - bottom: 0; - display: flex; - align-items: center; - justify-content: center; - width: 15%; - color: #fff; - text-align: center; - opacity: 0.5; -} -.bodywebsite .carousel-control-prev:focus, -.bodywebsite .carousel-control-prev:hover, -.bodywebsite .carousel-control-next:focus, -.bodywebsite .carousel-control-next:hover { - color: #fff; - text-decoration: none; - outline: 0; - opacity: .9; -} -.bodywebsite .carousel-control-prev { - left: 0; -} -.bodywebsite .carousel-control-next { - right: 0; -} -.bodywebsite .carousel-control-prev-icon, -.bodywebsite .carousel-control-next-icon { - display: inline-block; - width: 20px; - height: 20px; - background: transparent no-repeat center center; - background-size: 100% 100%; -} -.bodywebsite .carousel-control-prev-icon { - background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3E%3C/svg%3E"); -} -.bodywebsite .carousel-control-next-icon { - background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3E%3C/svg%3E"); -} -.bodywebsite .carousel-indicators { - position: absolute; - right: 0; - bottom: 10px; - left: 0; - z-index: 15; - display: flex; - justify-content: center; - padding-left: 0; - margin-right: 15%; - margin-left: 15%; - list-style: none; -} -.bodywebsite .carousel-indicators li { - position: relative; - flex: 0 1 auto; - width: 30px; - height: 3px; - margin-right: 3px; - margin-left: 3px; - text-indent: -999px; - background-color: rgba(255, 255, 255, 0.5); -} -.bodywebsite .carousel-indicators li::before { - position: absolute; - top: -10px; - left: 0; - display: inline-block; - width: 100%; - height: 10px; - content: ""; -} -.bodywebsite .carousel-indicators li::after { - position: absolute; - bottom: -10px; - left: 0; - display: inline-block; - width: 100%; - height: 10px; - content: ""; -} -.bodywebsite .carousel-indicators .active { - background-color: #fff; -} -.bodywebsite .carousel-caption { - position: absolute; - right: 15%; - bottom: 20px; - left: 15%; - z-index: 10; - padding-top: 20px; - padding-bottom: 20px; - color: #fff; - text-align: center; -} -.bodywebsite .align-baseline { - vertical-align: baseline !important; -} -.bodywebsite .align-top { - vertical-align: top !important; -} -.bodywebsite .align-middle { - vertical-align: middle !important; -} -.bodywebsite .align-bottom { - vertical-align: bottom !important; -} -.bodywebsite .align-text-bottom { - vertical-align: text-bottom !important; -} -.bodywebsite .align-text-top { - vertical-align: text-top !important; -} -.bodywebsite .bg-primary { - background-color: #007bff !important; -} -.bodywebsite a.bg-primary:focus, -.bodywebsite a.bg-primary:hover { - background-color: #0062cc !important; -} -.bodywebsite .bg-secondary { - background-color: #868e96 !important; -} -.bodywebsite a.bg-secondary:focus, -.bodywebsite a.bg-secondary:hover { - background-color: #6c757d !important; -} -.bodywebsite .bg-success { - background-color: #28a745 !important; -} -.bodywebsite a.bg-success:focus, -.bodywebsite a.bg-success:hover { - background-color: #1e7e34 !important; -} -.bodywebsite .bg-info { - background-color: #17a2b8 !important; -} -.bodywebsite a.bg-info:focus, -.bodywebsite a.bg-info:hover { - background-color: #117a8b !important; -} -.bodywebsite .bg-warning { - background-color: #ffc107 !important; -} -.bodywebsite a.bg-warning:focus, -.bodywebsite a.bg-warning:hover { - background-color: #d39e00 !important; -} -.bodywebsite .bg-danger { - background-color: #dc3545 !important; -} -.bodywebsite a.bg-danger:focus, -.bodywebsite a.bg-danger:hover { - background-color: #bd2130 !important; -} -.bodywebsite .bg-light { - background-color: #f8f9fa !important; -} -.bodywebsite a.bg-light:focus, -.bodywebsite a.bg-light:hover { - background-color: #dae0e5 !important; -} -.bodywebsite .bg-dark { - background-color: #343a40 !important; -} -.bodywebsite a.bg-dark:focus, -.bodywebsite a.bg-dark:hover { - background-color: #1d2124 !important; -} -.bodywebsite .bg-default { - background-color: #fff !important; -} -.bodywebsite .bg-transparent { - background-color: transparent !important; -} -.bodywebsite .border { - border: 1px solid #e9ecef !important; -} -.bodywebsite .border-0 { - border: 0 !important; -} -.bodywebsite .border-top-0 { - border-top: 0 !important; -} -.bodywebsite .border-right-0 { - border-right: 0 !important; -} -.bodywebsite .border-bottom-0 { - border-bottom: 0 !important; -} -.bodywebsite .border-left-0 { - border-left: 0 !important; -} -.bodywebsite .border-primary { - border-color: #007bff !important; -} -.bodywebsite .border-secondary { - border-color: #868e96 !important; -} -.bodywebsite .border-success { - border-color: #28a745 !important; -} -.bodywebsite .border-info { - border-color: #17a2b8 !important; -} -.bodywebsite .border-warning { - border-color: #ffc107 !important; -} -.bodywebsite .border-danger { - border-color: #dc3545 !important; -} -.bodywebsite .border-light { - border-color: #f8f9fa !important; -} -.bodywebsite .border-dark { - border-color: #343a40 !important; -} -.bodywebsite .border-white { - border-color: #fff !important; -} -.bodywebsite .rounded { - border-radius: 0 !important; -} -.bodywebsite .rounded-top { - border-top-left-radius: 0 !important; - border-top-right-radius: 0 !important; -} -.bodywebsite .rounded-right { - border-top-right-radius: 0 !important; - border-bottom-right-radius: 0 !important; -} -.bodywebsite .rounded-bottom { - border-bottom-right-radius: 0 !important; - border-bottom-left-radius: 0 !important; -} -.bodywebsite .rounded-left { - border-top-left-radius: 0 !important; - border-bottom-left-radius: 0 !important; -} -.bodywebsite .rounded-circle { - border-radius: 50% !important; -} -.bodywebsite .rounded-0 { - border-radius: 0 !important; -} -.bodywebsite .clearfix::after { - display: block; - clear: both; - content: ""; -} -.bodywebsite .d-none { - display: none !important; -} -.bodywebsite .d-inline { - display: inline !important; -} -.bodywebsite .d-inline-block { - display: inline-block !important; -} -.bodywebsite .d-block { - display: block !important; -} -.bodywebsite .d-table { - display: table !important; -} -.bodywebsite .d-table-row { - display: table-row !important; -} -.bodywebsite .d-table-cell { - display: table-cell !important; -} -.bodywebsite .d-flex { - display: flex !important; -} -.bodywebsite .d-inline-flex { - display: inline-flex !important; -} -@media (min-width: 576px) { - .bodywebsite .d-sm-none { - display: none !important; - } - .bodywebsite .d-sm-inline { - display: inline !important; - } - .bodywebsite .d-sm-inline-block { - display: inline-block !important; - } - .bodywebsite .d-sm-block { - display: block !important; - } - .bodywebsite .d-sm-table { - display: table !important; - } - .bodywebsite .d-sm-table-row { - display: table-row !important; - } - .bodywebsite .d-sm-table-cell { - display: table-cell !important; - } - .bodywebsite .d-sm-flex { - display: flex !important; - } - .bodywebsite .d-sm-inline-flex { - display: inline-flex !important; - } -} -@media (min-width: 768px) { - .bodywebsite .d-md-none { - display: none !important; - } - .bodywebsite .d-md-inline { - display: inline !important; - } - .bodywebsite .d-md-inline-block { - display: inline-block !important; - } - .bodywebsite .d-md-block { - display: block !important; - } - .bodywebsite .d-md-table { - display: table !important; - } - .bodywebsite .d-md-table-row { - display: table-row !important; - } - .bodywebsite .d-md-table-cell { - display: table-cell !important; - } - .bodywebsite .d-md-flex { - display: flex !important; - } - .bodywebsite .d-md-inline-flex { - display: inline-flex !important; - } -} -@media (min-width: 992px) { - .bodywebsite .d-lg-none { - display: none !important; - } - .bodywebsite .d-lg-inline { - display: inline !important; - } - .bodywebsite .d-lg-inline-block { - display: inline-block !important; - } - .bodywebsite .d-lg-block { - display: block !important; - } - .bodywebsite .d-lg-table { - display: table !important; - } - .bodywebsite .d-lg-table-row { - display: table-row !important; - } - .bodywebsite .d-lg-table-cell { - display: table-cell !important; - } - .bodywebsite .d-lg-flex { - display: flex !important; - } - .bodywebsite .d-lg-inline-flex { - display: inline-flex !important; - } -} -@media (min-width: 1200px) { - .bodywebsite .d-xl-none { - display: none !important; - } - .bodywebsite .d-xl-inline { - display: inline !important; - } - .bodywebsite .d-xl-inline-block { - display: inline-block !important; - } - .bodywebsite .d-xl-block { - display: block !important; - } - .bodywebsite .d-xl-table { - display: table !important; - } - .bodywebsite .d-xl-table-row { - display: table-row !important; - } - .bodywebsite .d-xl-table-cell { - display: table-cell !important; - } - .bodywebsite .d-xl-flex { - display: flex !important; - } - .bodywebsite .d-xl-inline-flex { - display: inline-flex !important; - } -} -@media (min-width: 1800px) { - .bodywebsite .d-xxl-none { - display: none !important; - } - .bodywebsite .d-xxl-inline { - display: inline !important; - } - .bodywebsite .d-xxl-inline-block { - display: inline-block !important; - } - .bodywebsite .d-xxl-block { - display: block !important; - } - .bodywebsite .d-xxl-table { - display: table !important; - } - .bodywebsite .d-xxl-table-row { - display: table-row !important; - } - .bodywebsite .d-xxl-table-cell { - display: table-cell !important; - } - .bodywebsite .d-xxl-flex { - display: flex !important; - } - .bodywebsite .d-xxl-inline-flex { - display: inline-flex !important; - } -} -.bodywebsite .d-print-block { - display: none !important; -} -@media print { - .bodywebsite .d-print-block { - display: block !important; - } -} -.bodywebsite .d-print-inline { - display: none !important; -} -@media print { - .bodywebsite .d-print-inline { - display: inline !important; - } -} -.bodywebsite .d-print-inline-block { - display: none !important; -} -@media print { - .bodywebsite .d-print-inline-block { - display: inline-block !important; - } -} -@media print { - .bodywebsite .d-print-none { - display: none !important; - } -} -.bodywebsite .embed-responsive { - position: relative; - display: block; - width: 100%; - padding: 0; - overflow: hidden; -} -.bodywebsite .embed-responsive::before { - display: block; - content: ""; -} -.bodywebsite .embed-responsive .embed-responsive-item, -.bodywebsite .embed-responsive iframe, -.bodywebsite .embed-responsive embed, -.bodywebsite .embed-responsive object, -.bodywebsite .embed-responsive video { - position: absolute; - top: 0; - bottom: 0; - left: 0; - width: 100%; - height: 100%; - border: 0; -} -.bodywebsite .embed-responsive-21by9::before { - padding-top: 42.85714%; -} -.bodywebsite .embed-responsive-16by9::before { - padding-top: 56.25%; -} -.bodywebsite .embed-responsive-4by3::before { - padding-top: 75%; -} -.bodywebsite .embed-responsive-1by1::before { - padding-top: 100%; -} -.bodywebsite .flex-row { - flex-direction: row !important; -} -.bodywebsite .flex-column { - flex-direction: column !important; -} -.bodywebsite .flex-row-reverse { - flex-direction: row-reverse !important; -} -.bodywebsite .flex-column-reverse { - flex-direction: column-reverse !important; -} -.bodywebsite .flex-wrap { - flex-wrap: wrap !important; -} -.bodywebsite .flex-nowrap { - flex-wrap: nowrap !important; -} -.bodywebsite .flex-wrap-reverse { - flex-wrap: wrap-reverse !important; -} -.bodywebsite .justify-content-start { - justify-content: flex-start !important; -} -.bodywebsite .justify-content-end { - justify-content: flex-end !important; -} -.bodywebsite .justify-content-center { - justify-content: center !important; -} -.bodywebsite .justify-content-between { - justify-content: space-between !important; -} -.bodywebsite .justify-content-around { - justify-content: space-around !important; -} -.bodywebsite .align-items-start { - align-items: flex-start !important; -} -.bodywebsite .align-items-end { - align-items: flex-end !important; -} -.bodywebsite .align-items-center { - align-items: center !important; -} -.bodywebsite .align-items-baseline { - align-items: baseline !important; -} -.bodywebsite .align-items-stretch { - align-items: stretch !important; -} -.bodywebsite .align-content-start { - align-content: flex-start !important; -} -.bodywebsite .align-content-end { - align-content: flex-end !important; -} -.bodywebsite .align-content-center { - align-content: center !important; -} -.bodywebsite .align-content-between { - align-content: space-between !important; -} -.bodywebsite .align-content-around { - align-content: space-around !important; -} -.bodywebsite .align-content-stretch { - align-content: stretch !important; -} -.bodywebsite .align-self-auto { - align-self: auto !important; -} -.bodywebsite .align-self-start { - align-self: flex-start !important; -} -.bodywebsite .align-self-end { - align-self: flex-end !important; -} -.bodywebsite .align-self-center { - align-self: center !important; -} -.bodywebsite .align-self-baseline { - align-self: baseline !important; -} -.bodywebsite .align-self-stretch { - align-self: stretch !important; -} -@media (min-width: 576px) { - .bodywebsite .flex-sm-row { - flex-direction: row !important; - } - .bodywebsite .flex-sm-column { - flex-direction: column !important; - } - .bodywebsite .flex-sm-row-reverse { - flex-direction: row-reverse !important; - } - .bodywebsite .flex-sm-column-reverse { - flex-direction: column-reverse !important; - } - .bodywebsite .flex-sm-wrap { - flex-wrap: wrap !important; - } - .bodywebsite .flex-sm-nowrap { - flex-wrap: nowrap !important; - } - .bodywebsite .flex-sm-wrap-reverse { - flex-wrap: wrap-reverse !important; - } - .bodywebsite .justify-content-sm-start { - justify-content: flex-start !important; - } - .bodywebsite .justify-content-sm-end { - justify-content: flex-end !important; - } - .bodywebsite .justify-content-sm-center { - justify-content: center !important; - } - .bodywebsite .justify-content-sm-between { - justify-content: space-between !important; - } - .bodywebsite .justify-content-sm-around { - justify-content: space-around !important; - } - .bodywebsite .align-items-sm-start { - align-items: flex-start !important; - } - .bodywebsite .align-items-sm-end { - align-items: flex-end !important; - } - .bodywebsite .align-items-sm-center { - align-items: center !important; - } - .bodywebsite .align-items-sm-baseline { - align-items: baseline !important; - } - .bodywebsite .align-items-sm-stretch { - align-items: stretch !important; - } - .bodywebsite .align-content-sm-start { - align-content: flex-start !important; - } - .bodywebsite .align-content-sm-end { - align-content: flex-end !important; - } - .bodywebsite .align-content-sm-center { - align-content: center !important; - } - .bodywebsite .align-content-sm-between { - align-content: space-between !important; - } - .bodywebsite .align-content-sm-around { - align-content: space-around !important; - } - .bodywebsite .align-content-sm-stretch { - align-content: stretch !important; - } - .bodywebsite .align-self-sm-auto { - align-self: auto !important; - } - .bodywebsite .align-self-sm-start { - align-self: flex-start !important; - } - .bodywebsite .align-self-sm-end { - align-self: flex-end !important; - } - .bodywebsite .align-self-sm-center { - align-self: center !important; - } - .bodywebsite .align-self-sm-baseline { - align-self: baseline !important; - } - .bodywebsite .align-self-sm-stretch { - align-self: stretch !important; - } -} -@media (min-width: 768px) { - .bodywebsite .flex-md-row { - flex-direction: row !important; - } - .bodywebsite .flex-md-column { - flex-direction: column !important; - } - .bodywebsite .flex-md-row-reverse { - flex-direction: row-reverse !important; - } - .bodywebsite .flex-md-column-reverse { - flex-direction: column-reverse !important; - } - .bodywebsite .flex-md-wrap { - flex-wrap: wrap !important; - } - .bodywebsite .flex-md-nowrap { - flex-wrap: nowrap !important; - } - .bodywebsite .flex-md-wrap-reverse { - flex-wrap: wrap-reverse !important; - } - .bodywebsite .justify-content-md-start { - justify-content: flex-start !important; - } - .bodywebsite .justify-content-md-end { - justify-content: flex-end !important; - } - .bodywebsite .justify-content-md-center { - justify-content: center !important; - } - .bodywebsite .justify-content-md-between { - justify-content: space-between !important; - } - .bodywebsite .justify-content-md-around { - justify-content: space-around !important; - } - .bodywebsite .align-items-md-start { - align-items: flex-start !important; - } - .bodywebsite .align-items-md-end { - align-items: flex-end !important; - } - .bodywebsite .align-items-md-center { - align-items: center !important; - } - .bodywebsite .align-items-md-baseline { - align-items: baseline !important; - } - .bodywebsite .align-items-md-stretch { - align-items: stretch !important; - } - .bodywebsite .align-content-md-start { - align-content: flex-start !important; - } - .bodywebsite .align-content-md-end { - align-content: flex-end !important; - } - .bodywebsite .align-content-md-center { - align-content: center !important; - } - .bodywebsite .align-content-md-between { - align-content: space-between !important; - } - .bodywebsite .align-content-md-around { - align-content: space-around !important; - } - .bodywebsite .align-content-md-stretch { - align-content: stretch !important; - } - .bodywebsite .align-self-md-auto { - align-self: auto !important; - } - .bodywebsite .align-self-md-start { - align-self: flex-start !important; - } - .bodywebsite .align-self-md-end { - align-self: flex-end !important; - } - .bodywebsite .align-self-md-center { - align-self: center !important; - } - .bodywebsite .align-self-md-baseline { - align-self: baseline !important; - } - .bodywebsite .align-self-md-stretch { - align-self: stretch !important; - } -} -@media (min-width: 992px) { - .bodywebsite .flex-lg-row { - flex-direction: row !important; - } - .bodywebsite .flex-lg-column { - flex-direction: column !important; - } - .bodywebsite .flex-lg-row-reverse { - flex-direction: row-reverse !important; - } - .bodywebsite .flex-lg-column-reverse { - flex-direction: column-reverse !important; - } - .bodywebsite .flex-lg-wrap { - flex-wrap: wrap !important; - } - .bodywebsite .flex-lg-nowrap { - flex-wrap: nowrap !important; - } - .bodywebsite .flex-lg-wrap-reverse { - flex-wrap: wrap-reverse !important; - } - .bodywebsite .justify-content-lg-start { - justify-content: flex-start !important; - } - .bodywebsite .justify-content-lg-end { - justify-content: flex-end !important; - } - .bodywebsite .justify-content-lg-center { - justify-content: center !important; - } - .bodywebsite .justify-content-lg-between { - justify-content: space-between !important; - } - .bodywebsite .justify-content-lg-around { - justify-content: space-around !important; - } - .bodywebsite .align-items-lg-start { - align-items: flex-start !important; - } - .bodywebsite .align-items-lg-end { - align-items: flex-end !important; - } - .bodywebsite .align-items-lg-center { - align-items: center !important; - } - .bodywebsite .align-items-lg-baseline { - align-items: baseline !important; - } - .bodywebsite .align-items-lg-stretch { - align-items: stretch !important; - } - .bodywebsite .align-content-lg-start { - align-content: flex-start !important; - } - .bodywebsite .align-content-lg-end { - align-content: flex-end !important; - } - .bodywebsite .align-content-lg-center { - align-content: center !important; - } - .bodywebsite .align-content-lg-between { - align-content: space-between !important; - } - .bodywebsite .align-content-lg-around { - align-content: space-around !important; - } - .bodywebsite .align-content-lg-stretch { - align-content: stretch !important; - } - .bodywebsite .align-self-lg-auto { - align-self: auto !important; - } - .bodywebsite .align-self-lg-start { - align-self: flex-start !important; - } - .bodywebsite .align-self-lg-end { - align-self: flex-end !important; - } - .bodywebsite .align-self-lg-center { - align-self: center !important; - } - .bodywebsite .align-self-lg-baseline { - align-self: baseline !important; - } - .bodywebsite .align-self-lg-stretch { - align-self: stretch !important; - } -} -@media (min-width: 1200px) { - .bodywebsite .flex-xl-row { - flex-direction: row !important; - } - .bodywebsite .flex-xl-column { - flex-direction: column !important; - } - .bodywebsite .flex-xl-row-reverse { - flex-direction: row-reverse !important; - } - .bodywebsite .flex-xl-column-reverse { - flex-direction: column-reverse !important; - } - .bodywebsite .flex-xl-wrap { - flex-wrap: wrap !important; - } - .bodywebsite .flex-xl-nowrap { - flex-wrap: nowrap !important; - } - .bodywebsite .flex-xl-wrap-reverse { - flex-wrap: wrap-reverse !important; - } - .bodywebsite .justify-content-xl-start { - justify-content: flex-start !important; - } - .bodywebsite .justify-content-xl-end { - justify-content: flex-end !important; - } - .bodywebsite .justify-content-xl-center { - justify-content: center !important; - } - .bodywebsite .justify-content-xl-between { - justify-content: space-between !important; - } - .bodywebsite .justify-content-xl-around { - justify-content: space-around !important; - } - .bodywebsite .align-items-xl-start { - align-items: flex-start !important; - } - .bodywebsite .align-items-xl-end { - align-items: flex-end !important; - } - .bodywebsite .align-items-xl-center { - align-items: center !important; - } - .bodywebsite .align-items-xl-baseline { - align-items: baseline !important; - } - .bodywebsite .align-items-xl-stretch { - align-items: stretch !important; - } - .bodywebsite .align-content-xl-start { - align-content: flex-start !important; - } - .bodywebsite .align-content-xl-end { - align-content: flex-end !important; - } - .bodywebsite .align-content-xl-center { - align-content: center !important; - } - .bodywebsite .align-content-xl-between { - align-content: space-between !important; - } - .bodywebsite .align-content-xl-around { - align-content: space-around !important; - } - .bodywebsite .align-content-xl-stretch { - align-content: stretch !important; - } - .bodywebsite .align-self-xl-auto { - align-self: auto !important; - } - .bodywebsite .align-self-xl-start { - align-self: flex-start !important; - } - .bodywebsite .align-self-xl-end { - align-self: flex-end !important; - } - .bodywebsite .align-self-xl-center { - align-self: center !important; - } - .bodywebsite .align-self-xl-baseline { - align-self: baseline !important; - } - .bodywebsite .align-self-xl-stretch { - align-self: stretch !important; - } -} -@media (min-width: 1800px) { - .bodywebsite .flex-xxl-row { - flex-direction: row !important; - } - .bodywebsite .flex-xxl-column { - flex-direction: column !important; - } - .bodywebsite .flex-xxl-row-reverse { - flex-direction: row-reverse !important; - } - .bodywebsite .flex-xxl-column-reverse { - flex-direction: column-reverse !important; - } - .bodywebsite .flex-xxl-wrap { - flex-wrap: wrap !important; - } - .bodywebsite .flex-xxl-nowrap { - flex-wrap: nowrap !important; - } - .bodywebsite .flex-xxl-wrap-reverse { - flex-wrap: wrap-reverse !important; - } - .bodywebsite .justify-content-xxl-start { - justify-content: flex-start !important; - } - .bodywebsite .justify-content-xxl-end { - justify-content: flex-end !important; - } - .bodywebsite .justify-content-xxl-center { - justify-content: center !important; - } - .bodywebsite .justify-content-xxl-between { - justify-content: space-between !important; - } - .bodywebsite .justify-content-xxl-around { - justify-content: space-around !important; - } - .bodywebsite .align-items-xxl-start { - align-items: flex-start !important; - } - .bodywebsite .align-items-xxl-end { - align-items: flex-end !important; - } - .bodywebsite .align-items-xxl-center { - align-items: center !important; - } - .bodywebsite .align-items-xxl-baseline { - align-items: baseline !important; - } - .bodywebsite .align-items-xxl-stretch { - align-items: stretch !important; - } - .bodywebsite .align-content-xxl-start { - align-content: flex-start !important; - } - .bodywebsite .align-content-xxl-end { - align-content: flex-end !important; - } - .bodywebsite .align-content-xxl-center { - align-content: center !important; - } - .bodywebsite .align-content-xxl-between { - align-content: space-between !important; - } - .bodywebsite .align-content-xxl-around { - align-content: space-around !important; - } - .bodywebsite .align-content-xxl-stretch { - align-content: stretch !important; - } - .bodywebsite .align-self-xxl-auto { - align-self: auto !important; - } - .bodywebsite .align-self-xxl-start { - align-self: flex-start !important; - } - .bodywebsite .align-self-xxl-end { - align-self: flex-end !important; - } - .bodywebsite .align-self-xxl-center { - align-self: center !important; - } - .bodywebsite .align-self-xxl-baseline { - align-self: baseline !important; - } - .bodywebsite .align-self-xxl-stretch { - align-self: stretch !important; - } -} -.bodywebsite .float-left { - float: left !important; -} -.bodywebsite .float-right { - float: right !important; -} -.bodywebsite .float-none { - float: none !important; -} -@media (min-width: 576px) { - .bodywebsite .float-sm-left { - float: left !important; - } - .bodywebsite .float-sm-right { - float: right !important; - } - .bodywebsite .float-sm-none { - float: none !important; - } -} -@media (min-width: 768px) { - .bodywebsite .float-md-left { - float: left !important; - } - .bodywebsite .float-md-right { - float: right !important; - } - .bodywebsite .float-md-none { - float: none !important; - } -} -@media (min-width: 992px) { - .bodywebsite .float-lg-left { - float: left !important; - } - .bodywebsite .float-lg-right { - float: right !important; - } - .bodywebsite .float-lg-none { - float: none !important; - } -} -@media (min-width: 1200px) { - .bodywebsite .float-xl-left { - float: left !important; - } - .bodywebsite .float-xl-right { - float: right !important; - } - .bodywebsite .float-xl-none { - float: none !important; - } -} -@media (min-width: 1800px) { - .bodywebsite .float-xxl-left { - float: left !important; - } - .bodywebsite .float-xxl-right { - float: right !important; - } - .bodywebsite .float-xxl-none { - float: none !important; - } -} -.bodywebsite .position-static { - position: static !important; -} -.bodywebsite .position-relative { - position: relative !important; -} -.bodywebsite .position-absolute { - position: absolute !important; -} -.bodywebsite .position-fixed { - position: fixed !important; -} -.bodywebsite .position-sticky { - position: sticky !important; -} -.bodywebsite .fixed-top { - position: fixed; - top: 0; - right: 0; - left: 0; - z-index: 1030; -} -.bodywebsite .fixed-bottom { - position: fixed; - right: 0; - bottom: 0; - left: 0; - z-index: 1030; -} -@supports (position: sticky) { - .bodywebsite .sticky-top { - position: sticky; - top: 0; - z-index: 1020; - } -} -.bodywebsite .sr-only { - position: absolute; - width: 1px; - height: 1px; - padding: 0; - overflow: hidden; - clip: rect(0, 0, 0, 0); - white-space: nowrap; - clip-path: inset(50%); - border: 0; -} -.bodywebsite .sr-only-focusable:active, -.bodywebsite .sr-only-focusable:focus { - position: static; - width: auto; - height: auto; - overflow: visible; - clip: auto; - white-space: normal; - clip-path: none; -} -.bodywebsite .w-25 { - width: 25% !important; -} -.bodywebsite .w-50 { - width: 50% !important; -} -.bodywebsite .w-75 { - width: 75% !important; -} -.bodywebsite .w-100 { - width: 100% !important; -} -.bodywebsite .h-25 { - height: 25% !important; -} -.bodywebsite .h-50 { - height: 50% !important; -} -.bodywebsite .h-75 { - height: 75% !important; -} -.bodywebsite .h-100 { - height: 100% !important; -} -.bodywebsite .mw-100 { - max-width: 100% !important; -} -.bodywebsite .mh-100 { - max-height: 100% !important; -} -.bodywebsite .m-0 { - margin: 0 !important; -} -.bodywebsite .mt-0, -.bodywebsite .my-0 { - margin-top: 0 !important; -} -.bodywebsite .mr-0, -.bodywebsite .mx-0 { - margin-right: 0 !important; -} -.bodywebsite .mb-0, -.bodywebsite .my-0 { - margin-bottom: 0 !important; -} -.bodywebsite .ml-0, -.bodywebsite .mx-0 { - margin-left: 0 !important; -} -.bodywebsite .m-1 { - margin: 0.25rem !important; -} -.bodywebsite .mt-1, -.bodywebsite .my-1 { - margin-top: 0.25rem !important; -} -.bodywebsite .mr-1, -.bodywebsite .mx-1 { - margin-right: 0.25rem !important; -} -.bodywebsite .mb-1, -.bodywebsite .my-1 { - margin-bottom: 0.25rem !important; -} -.bodywebsite .ml-1, -.bodywebsite .mx-1 { - margin-left: 0.25rem !important; -} -.bodywebsite .m-2 { - margin: 0.5rem !important; -} -.bodywebsite .mt-2, -.bodywebsite .my-2 { - margin-top: 0.5rem !important; -} -.bodywebsite .mr-2, -.bodywebsite .mx-2 { - margin-right: 0.5rem !important; -} -.bodywebsite .mb-2, -.bodywebsite .my-2 { - margin-bottom: 0.5rem !important; -} -.bodywebsite .ml-2, -.bodywebsite .mx-2 { - margin-left: 0.5rem !important; -} -.bodywebsite .m-3 { - margin: 1rem !important; -} -.bodywebsite .mt-3, -.bodywebsite .my-3 { - margin-top: 1rem !important; -} -.bodywebsite .mr-3, -.bodywebsite .mx-3 { - margin-right: 1rem !important; -} -.bodywebsite .mb-3, -.bodywebsite .my-3 { - margin-bottom: 1rem !important; -} -.bodywebsite .ml-3, -.bodywebsite .mx-3 { - margin-left: 1rem !important; -} -.bodywebsite .m-4 { - margin: 1.5rem !important; -} -.bodywebsite .mt-4, -.bodywebsite .my-4 { - margin-top: 1.5rem !important; -} -.bodywebsite .mr-4, -.bodywebsite .mx-4 { - margin-right: 1.5rem !important; -} -.bodywebsite .mb-4, -.bodywebsite .my-4 { - margin-bottom: 1.5rem !important; -} -.bodywebsite .ml-4, -.bodywebsite .mx-4 { - margin-left: 1.5rem !important; -} -.bodywebsite .m-5 { - margin: 3rem !important; -} -.bodywebsite .mt-5, -.bodywebsite .my-5 { - margin-top: 3rem !important; -} -.bodywebsite .mr-5, -.bodywebsite .mx-5 { - margin-right: 3rem !important; -} -.bodywebsite .mb-5, -.bodywebsite .my-5 { - margin-bottom: 3rem !important; -} -.bodywebsite .ml-5, -.bodywebsite .mx-5 { - margin-left: 3rem !important; -} -.bodywebsite .p-0 { - padding: 0 !important; -} -.bodywebsite .pt-0, -.bodywebsite .py-0 { - padding-top: 0 !important; -} -.bodywebsite .pr-0, -.bodywebsite .px-0 { - padding-right: 0 !important; -} -.bodywebsite .pb-0, -.bodywebsite .py-0 { - padding-bottom: 0 !important; -} -.bodywebsite .pl-0, -.bodywebsite .px-0 { - padding-left: 0 !important; -} -.bodywebsite .p-1 { - padding: 0.25rem !important; -} -.bodywebsite .pt-1, -.bodywebsite .py-1 { - padding-top: 0.25rem !important; -} -.bodywebsite .pr-1, -.bodywebsite .px-1 { - padding-right: 0.25rem !important; -} -.bodywebsite .pb-1, -.bodywebsite .py-1 { - padding-bottom: 0.25rem !important; -} -.bodywebsite .pl-1, -.bodywebsite .px-1 { - padding-left: 0.25rem !important; -} -.bodywebsite .p-2 { - padding: 0.5rem !important; -} -.bodywebsite .pt-2, -.bodywebsite .py-2 { - padding-top: 0.5rem !important; -} -.bodywebsite .pr-2, -.bodywebsite .px-2 { - padding-right: 0.5rem !important; -} -.bodywebsite .pb-2, -.bodywebsite .py-2 { - padding-bottom: 0.5rem !important; -} -.bodywebsite .pl-2, -.bodywebsite .px-2 { - padding-left: 0.5rem !important; -} -.bodywebsite .p-3 { - padding: 1rem !important; -} -.bodywebsite .pt-3, -.bodywebsite .py-3 { - padding-top: 1rem !important; -} -.bodywebsite .pr-3, -.bodywebsite .px-3 { - padding-right: 1rem !important; -} -.bodywebsite .pb-3, -.bodywebsite .py-3 { - padding-bottom: 1rem !important; -} -.bodywebsite .pl-3, -.bodywebsite .px-3 { - padding-left: 1rem !important; -} -.bodywebsite .p-4 { - padding: 1.5rem !important; -} -.bodywebsite .pt-4, -.bodywebsite .py-4 { - padding-top: 1.5rem !important; -} -.bodywebsite .pr-4, -.bodywebsite .px-4 { - padding-right: 1.5rem !important; -} -.bodywebsite .pb-4, -.bodywebsite .py-4 { - padding-bottom: 1.5rem !important; -} -.bodywebsite .pl-4, -.bodywebsite .px-4 { - padding-left: 1.5rem !important; -} -.bodywebsite .p-5 { - padding: 3rem !important; -} -.bodywebsite .pt-5, -.bodywebsite .py-5 { - padding-top: 3rem !important; -} -.bodywebsite .pr-5, -.bodywebsite .px-5 { - padding-right: 3rem !important; -} -.bodywebsite .pb-5, -.bodywebsite .py-5 { - padding-bottom: 3rem !important; -} -.bodywebsite .pl-5, -.bodywebsite .px-5 { - padding-left: 3rem !important; -} -.bodywebsite .m-auto { - margin: auto !important; -} -.bodywebsite .mt-auto, -.bodywebsite .my-auto { - margin-top: auto !important; -} -.bodywebsite .mr-auto, -.bodywebsite .mx-auto { - margin-right: auto !important; -} -.bodywebsite .mb-auto, -.bodywebsite .my-auto { - margin-bottom: auto !important; -} -.bodywebsite .ml-auto, -.bodywebsite .mx-auto { - margin-left: auto !important; -} -@media (min-width: 576px) { - .bodywebsite .m-sm-0 { - margin: 0 !important; - } - .bodywebsite .mt-sm-0, - .bodywebsite .my-sm-0 { - margin-top: 0 !important; - } - .bodywebsite .mr-sm-0, - .bodywebsite .mx-sm-0 { - margin-right: 0 !important; - } - .bodywebsite .mb-sm-0, - .bodywebsite .my-sm-0 { - margin-bottom: 0 !important; - } - .bodywebsite .ml-sm-0, - .bodywebsite .mx-sm-0 { - margin-left: 0 !important; - } - .bodywebsite .m-sm-1 { - margin: 0.25rem !important; - } - .bodywebsite .mt-sm-1, - .bodywebsite .my-sm-1 { - margin-top: 0.25rem !important; - } - .bodywebsite .mr-sm-1, - .bodywebsite .mx-sm-1 { - margin-right: 0.25rem !important; - } - .bodywebsite .mb-sm-1, - .bodywebsite .my-sm-1 { - margin-bottom: 0.25rem !important; - } - .bodywebsite .ml-sm-1, - .bodywebsite .mx-sm-1 { - margin-left: 0.25rem !important; - } - .bodywebsite .m-sm-2 { - margin: 0.5rem !important; - } - .bodywebsite .mt-sm-2, - .bodywebsite .my-sm-2 { - margin-top: 0.5rem !important; - } - .bodywebsite .mr-sm-2, - .bodywebsite .mx-sm-2 { - margin-right: 0.5rem !important; - } - .bodywebsite .mb-sm-2, - .bodywebsite .my-sm-2 { - margin-bottom: 0.5rem !important; - } - .bodywebsite .ml-sm-2, - .bodywebsite .mx-sm-2 { - margin-left: 0.5rem !important; - } - .bodywebsite .m-sm-3 { - margin: 1rem !important; - } - .bodywebsite .mt-sm-3, - .bodywebsite .my-sm-3 { - margin-top: 1rem !important; - } - .bodywebsite .mr-sm-3, - .bodywebsite .mx-sm-3 { - margin-right: 1rem !important; - } - .bodywebsite .mb-sm-3, - .bodywebsite .my-sm-3 { - margin-bottom: 1rem !important; - } - .bodywebsite .ml-sm-3, - .bodywebsite .mx-sm-3 { - margin-left: 1rem !important; - } - .bodywebsite .m-sm-4 { - margin: 1.5rem !important; - } - .bodywebsite .mt-sm-4, - .bodywebsite .my-sm-4 { - margin-top: 1.5rem !important; - } - .bodywebsite .mr-sm-4, - .bodywebsite .mx-sm-4 { - margin-right: 1.5rem !important; - } - .bodywebsite .mb-sm-4, - .bodywebsite .my-sm-4 { - margin-bottom: 1.5rem !important; - } - .bodywebsite .ml-sm-4, - .bodywebsite .mx-sm-4 { - margin-left: 1.5rem !important; - } - .bodywebsite .m-sm-5 { - margin: 3rem !important; - } - .bodywebsite .mt-sm-5, - .bodywebsite .my-sm-5 { - margin-top: 3rem !important; - } - .bodywebsite .mr-sm-5, - .bodywebsite .mx-sm-5 { - margin-right: 3rem !important; - } - .bodywebsite .mb-sm-5, - .bodywebsite .my-sm-5 { - margin-bottom: 3rem !important; - } - .bodywebsite .ml-sm-5, - .bodywebsite .mx-sm-5 { - margin-left: 3rem !important; - } - .bodywebsite .p-sm-0 { - padding: 0 !important; - } - .bodywebsite .pt-sm-0, - .bodywebsite .py-sm-0 { - padding-top: 0 !important; - } - .bodywebsite .pr-sm-0, - .bodywebsite .px-sm-0 { - padding-right: 0 !important; - } - .bodywebsite .pb-sm-0, - .bodywebsite .py-sm-0 { - padding-bottom: 0 !important; - } - .bodywebsite .pl-sm-0, - .bodywebsite .px-sm-0 { - padding-left: 0 !important; - } - .bodywebsite .p-sm-1 { - padding: 0.25rem !important; - } - .bodywebsite .pt-sm-1, - .bodywebsite .py-sm-1 { - padding-top: 0.25rem !important; - } - .bodywebsite .pr-sm-1, - .bodywebsite .px-sm-1 { - padding-right: 0.25rem !important; - } - .bodywebsite .pb-sm-1, - .bodywebsite .py-sm-1 { - padding-bottom: 0.25rem !important; - } - .bodywebsite .pl-sm-1, - .bodywebsite .px-sm-1 { - padding-left: 0.25rem !important; - } - .bodywebsite .p-sm-2 { - padding: 0.5rem !important; - } - .bodywebsite .pt-sm-2, - .bodywebsite .py-sm-2 { - padding-top: 0.5rem !important; - } - .bodywebsite .pr-sm-2, - .bodywebsite .px-sm-2 { - padding-right: 0.5rem !important; - } - .bodywebsite .pb-sm-2, - .bodywebsite .py-sm-2 { - padding-bottom: 0.5rem !important; - } - .bodywebsite .pl-sm-2, - .bodywebsite .px-sm-2 { - padding-left: 0.5rem !important; - } - .bodywebsite .p-sm-3 { - padding: 1rem !important; - } - .bodywebsite .pt-sm-3, - .bodywebsite .py-sm-3 { - padding-top: 1rem !important; - } - .bodywebsite .pr-sm-3, - .bodywebsite .px-sm-3 { - padding-right: 1rem !important; - } - .bodywebsite .pb-sm-3, - .bodywebsite .py-sm-3 { - padding-bottom: 1rem !important; - } - .bodywebsite .pl-sm-3, - .bodywebsite .px-sm-3 { - padding-left: 1rem !important; - } - .bodywebsite .p-sm-4 { - padding: 1.5rem !important; - } - .bodywebsite .pt-sm-4, - .bodywebsite .py-sm-4 { - padding-top: 1.5rem !important; - } - .bodywebsite .pr-sm-4, - .bodywebsite .px-sm-4 { - padding-right: 1.5rem !important; - } - .bodywebsite .pb-sm-4, - .bodywebsite .py-sm-4 { - padding-bottom: 1.5rem !important; - } - .bodywebsite .pl-sm-4, - .bodywebsite .px-sm-4 { - padding-left: 1.5rem !important; - } - .bodywebsite .p-sm-5 { - padding: 3rem !important; - } - .bodywebsite .pt-sm-5, - .bodywebsite .py-sm-5 { - padding-top: 3rem !important; - } - .bodywebsite .pr-sm-5, - .bodywebsite .px-sm-5 { - padding-right: 3rem !important; - } - .bodywebsite .pb-sm-5, - .bodywebsite .py-sm-5 { - padding-bottom: 3rem !important; - } - .bodywebsite .pl-sm-5, - .bodywebsite .px-sm-5 { - padding-left: 3rem !important; - } - .bodywebsite .m-sm-auto { - margin: auto !important; - } - .bodywebsite .mt-sm-auto, - .bodywebsite .my-sm-auto { - margin-top: auto !important; - } - .bodywebsite .mr-sm-auto, - .bodywebsite .mx-sm-auto { - margin-right: auto !important; - } - .bodywebsite .mb-sm-auto, - .bodywebsite .my-sm-auto { - margin-bottom: auto !important; - } - .bodywebsite .ml-sm-auto, - .bodywebsite .mx-sm-auto { - margin-left: auto !important; - } -} -@media (min-width: 768px) { - .bodywebsite .m-md-0 { - margin: 0 !important; - } - .bodywebsite .mt-md-0, - .bodywebsite .my-md-0 { - margin-top: 0 !important; - } - .bodywebsite .mr-md-0, - .bodywebsite .mx-md-0 { - margin-right: 0 !important; - } - .bodywebsite .mb-md-0, - .bodywebsite .my-md-0 { - margin-bottom: 0 !important; - } - .bodywebsite .ml-md-0, - .bodywebsite .mx-md-0 { - margin-left: 0 !important; - } - .bodywebsite .m-md-1 { - margin: 0.25rem !important; - } - .bodywebsite .mt-md-1, - .bodywebsite .my-md-1 { - margin-top: 0.25rem !important; - } - .bodywebsite .mr-md-1, - .bodywebsite .mx-md-1 { - margin-right: 0.25rem !important; - } - .bodywebsite .mb-md-1, - .bodywebsite .my-md-1 { - margin-bottom: 0.25rem !important; - } - .bodywebsite .ml-md-1, - .bodywebsite .mx-md-1 { - margin-left: 0.25rem !important; - } - .bodywebsite .m-md-2 { - margin: 0.5rem !important; - } - .bodywebsite .mt-md-2, - .bodywebsite .my-md-2 { - margin-top: 0.5rem !important; - } - .bodywebsite .mr-md-2, - .bodywebsite .mx-md-2 { - margin-right: 0.5rem !important; - } - .bodywebsite .mb-md-2, - .bodywebsite .my-md-2 { - margin-bottom: 0.5rem !important; - } - .bodywebsite .ml-md-2, - .bodywebsite .mx-md-2 { - margin-left: 0.5rem !important; - } - .bodywebsite .m-md-3 { - margin: 1rem !important; - } - .bodywebsite .mt-md-3, - .bodywebsite .my-md-3 { - margin-top: 1rem !important; - } - .bodywebsite .mr-md-3, - .bodywebsite .mx-md-3 { - margin-right: 1rem !important; - } - .bodywebsite .mb-md-3, - .bodywebsite .my-md-3 { - margin-bottom: 1rem !important; - } - .bodywebsite .ml-md-3, - .bodywebsite .mx-md-3 { - margin-left: 1rem !important; - } - .bodywebsite .m-md-4 { - margin: 1.5rem !important; - } - .bodywebsite .mt-md-4, - .bodywebsite .my-md-4 { - margin-top: 1.5rem !important; - } - .bodywebsite .mr-md-4, - .bodywebsite .mx-md-4 { - margin-right: 1.5rem !important; - } - .bodywebsite .mb-md-4, - .bodywebsite .my-md-4 { - margin-bottom: 1.5rem !important; - } - .bodywebsite .ml-md-4, - .bodywebsite .mx-md-4 { - margin-left: 1.5rem !important; - } - .bodywebsite .m-md-5 { - margin: 3rem !important; - } - .bodywebsite .mt-md-5, - .bodywebsite .my-md-5 { - margin-top: 3rem !important; - } - .bodywebsite .mr-md-5, - .bodywebsite .mx-md-5 { - margin-right: 3rem !important; - } - .bodywebsite .mb-md-5, - .bodywebsite .my-md-5 { - margin-bottom: 3rem !important; - } - .bodywebsite .ml-md-5, - .bodywebsite .mx-md-5 { - margin-left: 3rem !important; - } - .bodywebsite .p-md-0 { - padding: 0 !important; - } - .bodywebsite .pt-md-0, - .bodywebsite .py-md-0 { - padding-top: 0 !important; - } - .bodywebsite .pr-md-0, - .bodywebsite .px-md-0 { - padding-right: 0 !important; - } - .bodywebsite .pb-md-0, - .bodywebsite .py-md-0 { - padding-bottom: 0 !important; - } - .bodywebsite .pl-md-0, - .bodywebsite .px-md-0 { - padding-left: 0 !important; - } - .bodywebsite .p-md-1 { - padding: 0.25rem !important; - } - .bodywebsite .pt-md-1, - .bodywebsite .py-md-1 { - padding-top: 0.25rem !important; - } - .bodywebsite .pr-md-1, - .bodywebsite .px-md-1 { - padding-right: 0.25rem !important; - } - .bodywebsite .pb-md-1, - .bodywebsite .py-md-1 { - padding-bottom: 0.25rem !important; - } - .bodywebsite .pl-md-1, - .bodywebsite .px-md-1 { - padding-left: 0.25rem !important; - } - .bodywebsite .p-md-2 { - padding: 0.5rem !important; - } - .bodywebsite .pt-md-2, - .bodywebsite .py-md-2 { - padding-top: 0.5rem !important; - } - .bodywebsite .pr-md-2, - .bodywebsite .px-md-2 { - padding-right: 0.5rem !important; - } - .bodywebsite .pb-md-2, - .bodywebsite .py-md-2 { - padding-bottom: 0.5rem !important; - } - .bodywebsite .pl-md-2, - .bodywebsite .px-md-2 { - padding-left: 0.5rem !important; - } - .bodywebsite .p-md-3 { - padding: 1rem !important; - } - .bodywebsite .pt-md-3, - .bodywebsite .py-md-3 { - padding-top: 1rem !important; - } - .bodywebsite .pr-md-3, - .bodywebsite .px-md-3 { - padding-right: 1rem !important; - } - .bodywebsite .pb-md-3, - .bodywebsite .py-md-3 { - padding-bottom: 1rem !important; - } - .bodywebsite .pl-md-3, - .bodywebsite .px-md-3 { - padding-left: 1rem !important; - } - .bodywebsite .p-md-4 { - padding: 1.5rem !important; - } - .bodywebsite .pt-md-4, - .bodywebsite .py-md-4 { - padding-top: 1.5rem !important; - } - .bodywebsite .pr-md-4, - .bodywebsite .px-md-4 { - padding-right: 1.5rem !important; - } - .bodywebsite .pb-md-4, - .bodywebsite .py-md-4 { - padding-bottom: 1.5rem !important; - } - .bodywebsite .pl-md-4, - .bodywebsite .px-md-4 { - padding-left: 1.5rem !important; - } - .bodywebsite .p-md-5 { - padding: 3rem !important; - } - .bodywebsite .pt-md-5, - .bodywebsite .py-md-5 { - padding-top: 3rem !important; - } - .bodywebsite .pr-md-5, - .bodywebsite .px-md-5 { - padding-right: 3rem !important; - } - .bodywebsite .pb-md-5, - .bodywebsite .py-md-5 { - padding-bottom: 3rem !important; - } - .bodywebsite .pl-md-5, - .bodywebsite .px-md-5 { - padding-left: 3rem !important; - } - .bodywebsite .m-md-auto { - margin: auto !important; - } - .bodywebsite .mt-md-auto, - .bodywebsite .my-md-auto { - margin-top: auto !important; - } - .bodywebsite .mr-md-auto, - .bodywebsite .mx-md-auto { - margin-right: auto !important; - } - .bodywebsite .mb-md-auto, - .bodywebsite .my-md-auto { - margin-bottom: auto !important; - } - .bodywebsite .ml-md-auto, - .bodywebsite .mx-md-auto { - margin-left: auto !important; - } -} -@media (min-width: 992px) { - .bodywebsite .m-lg-0 { - margin: 0 !important; - } - .bodywebsite .mt-lg-0, - .bodywebsite .my-lg-0 { - margin-top: 0 !important; - } - .bodywebsite .mr-lg-0, - .bodywebsite .mx-lg-0 { - margin-right: 0 !important; - } - .bodywebsite .mb-lg-0, - .bodywebsite .my-lg-0 { - margin-bottom: 0 !important; - } - .bodywebsite .ml-lg-0, - .bodywebsite .mx-lg-0 { - margin-left: 0 !important; - } - .bodywebsite .m-lg-1 { - margin: 0.25rem !important; - } - .bodywebsite .mt-lg-1, - .bodywebsite .my-lg-1 { - margin-top: 0.25rem !important; - } - .bodywebsite .mr-lg-1, - .bodywebsite .mx-lg-1 { - margin-right: 0.25rem !important; - } - .bodywebsite .mb-lg-1, - .bodywebsite .my-lg-1 { - margin-bottom: 0.25rem !important; - } - .bodywebsite .ml-lg-1, - .bodywebsite .mx-lg-1 { - margin-left: 0.25rem !important; - } - .bodywebsite .m-lg-2 { - margin: 0.5rem !important; - } - .bodywebsite .mt-lg-2, - .bodywebsite .my-lg-2 { - margin-top: 0.5rem !important; - } - .bodywebsite .mr-lg-2, - .bodywebsite .mx-lg-2 { - margin-right: 0.5rem !important; - } - .bodywebsite .mb-lg-2, - .bodywebsite .my-lg-2 { - margin-bottom: 0.5rem !important; - } - .bodywebsite .ml-lg-2, - .bodywebsite .mx-lg-2 { - margin-left: 0.5rem !important; - } - .bodywebsite .m-lg-3 { - margin: 1rem !important; - } - .bodywebsite .mt-lg-3, - .bodywebsite .my-lg-3 { - margin-top: 1rem !important; - } - .bodywebsite .mr-lg-3, - .bodywebsite .mx-lg-3 { - margin-right: 1rem !important; - } - .bodywebsite .mb-lg-3, - .bodywebsite .my-lg-3 { - margin-bottom: 1rem !important; - } - .bodywebsite .ml-lg-3, - .bodywebsite .mx-lg-3 { - margin-left: 1rem !important; - } - .bodywebsite .m-lg-4 { - margin: 1.5rem !important; - } - .bodywebsite .mt-lg-4, - .bodywebsite .my-lg-4 { - margin-top: 1.5rem !important; - } - .bodywebsite .mr-lg-4, - .bodywebsite .mx-lg-4 { - margin-right: 1.5rem !important; - } - .bodywebsite .mb-lg-4, - .bodywebsite .my-lg-4 { - margin-bottom: 1.5rem !important; - } - .bodywebsite .ml-lg-4, - .bodywebsite .mx-lg-4 { - margin-left: 1.5rem !important; - } - .bodywebsite .m-lg-5 { - margin: 3rem !important; - } - .bodywebsite .mt-lg-5, - .bodywebsite .my-lg-5 { - margin-top: 3rem !important; - } - .bodywebsite .mr-lg-5, - .bodywebsite .mx-lg-5 { - margin-right: 3rem !important; - } - .bodywebsite .mb-lg-5, - .bodywebsite .my-lg-5 { - margin-bottom: 3rem !important; - } - .bodywebsite .ml-lg-5, - .bodywebsite .mx-lg-5 { - margin-left: 3rem !important; - } - .bodywebsite .p-lg-0 { - padding: 0 !important; - } - .bodywebsite .pt-lg-0, - .bodywebsite .py-lg-0 { - padding-top: 0 !important; - } - .bodywebsite .pr-lg-0, - .bodywebsite .px-lg-0 { - padding-right: 0 !important; - } - .bodywebsite .pb-lg-0, - .bodywebsite .py-lg-0 { - padding-bottom: 0 !important; - } - .bodywebsite .pl-lg-0, - .bodywebsite .px-lg-0 { - padding-left: 0 !important; - } - .bodywebsite .p-lg-1 { - padding: 0.25rem !important; - } - .bodywebsite .pt-lg-1, - .bodywebsite .py-lg-1 { - padding-top: 0.25rem !important; - } - .bodywebsite .pr-lg-1, - .bodywebsite .px-lg-1 { - padding-right: 0.25rem !important; - } - .bodywebsite .pb-lg-1, - .bodywebsite .py-lg-1 { - padding-bottom: 0.25rem !important; - } - .bodywebsite .pl-lg-1, - .bodywebsite .px-lg-1 { - padding-left: 0.25rem !important; - } - .bodywebsite .p-lg-2 { - padding: 0.5rem !important; - } - .bodywebsite .pt-lg-2, - .bodywebsite .py-lg-2 { - padding-top: 0.5rem !important; - } - .bodywebsite .pr-lg-2, - .bodywebsite .px-lg-2 { - padding-right: 0.5rem !important; - } - .bodywebsite .pb-lg-2, - .bodywebsite .py-lg-2 { - padding-bottom: 0.5rem !important; - } - .bodywebsite .pl-lg-2, - .bodywebsite .px-lg-2 { - padding-left: 0.5rem !important; - } - .bodywebsite .p-lg-3 { - padding: 1rem !important; - } - .bodywebsite .pt-lg-3, - .bodywebsite .py-lg-3 { - padding-top: 1rem !important; - } - .bodywebsite .pr-lg-3, - .bodywebsite .px-lg-3 { - padding-right: 1rem !important; - } - .bodywebsite .pb-lg-3, - .bodywebsite .py-lg-3 { - padding-bottom: 1rem !important; - } - .bodywebsite .pl-lg-3, - .bodywebsite .px-lg-3 { - padding-left: 1rem !important; - } - .bodywebsite .p-lg-4 { - padding: 1.5rem !important; - } - .bodywebsite .pt-lg-4, - .bodywebsite .py-lg-4 { - padding-top: 1.5rem !important; - } - .bodywebsite .pr-lg-4, - .bodywebsite .px-lg-4 { - padding-right: 1.5rem !important; - } - .bodywebsite .pb-lg-4, - .bodywebsite .py-lg-4 { - padding-bottom: 1.5rem !important; - } - .bodywebsite .pl-lg-4, - .bodywebsite .px-lg-4 { - padding-left: 1.5rem !important; - } - .bodywebsite .p-lg-5 { - padding: 3rem !important; - } - .bodywebsite .pt-lg-5, - .bodywebsite .py-lg-5 { - padding-top: 3rem !important; - } - .bodywebsite .pr-lg-5, - .bodywebsite .px-lg-5 { - padding-right: 3rem !important; - } - .bodywebsite .pb-lg-5, - .bodywebsite .py-lg-5 { - padding-bottom: 3rem !important; - } - .bodywebsite .pl-lg-5, - .bodywebsite .px-lg-5 { - padding-left: 3rem !important; - } - .bodywebsite .m-lg-auto { - margin: auto !important; - } - .bodywebsite .mt-lg-auto, - .bodywebsite .my-lg-auto { - margin-top: auto !important; - } - .bodywebsite .mr-lg-auto, - .bodywebsite .mx-lg-auto { - margin-right: auto !important; - } - .bodywebsite .mb-lg-auto, - .bodywebsite .my-lg-auto { - margin-bottom: auto !important; - } - .bodywebsite .ml-lg-auto, - .bodywebsite .mx-lg-auto { - margin-left: auto !important; - } -} -@media (min-width: 1200px) { - .bodywebsite .m-xl-0 { - margin: 0 !important; - } - .bodywebsite .mt-xl-0, - .bodywebsite .my-xl-0 { - margin-top: 0 !important; - } - .bodywebsite .mr-xl-0, - .bodywebsite .mx-xl-0 { - margin-right: 0 !important; - } - .bodywebsite .mb-xl-0, - .bodywebsite .my-xl-0 { - margin-bottom: 0 !important; - } - .bodywebsite .ml-xl-0, - .bodywebsite .mx-xl-0 { - margin-left: 0 !important; - } - .bodywebsite .m-xl-1 { - margin: 0.25rem !important; - } - .bodywebsite .mt-xl-1, - .bodywebsite .my-xl-1 { - margin-top: 0.25rem !important; - } - .bodywebsite .mr-xl-1, - .bodywebsite .mx-xl-1 { - margin-right: 0.25rem !important; - } - .bodywebsite .mb-xl-1, - .bodywebsite .my-xl-1 { - margin-bottom: 0.25rem !important; - } - .bodywebsite .ml-xl-1, - .bodywebsite .mx-xl-1 { - margin-left: 0.25rem !important; - } - .bodywebsite .m-xl-2 { - margin: 0.5rem !important; - } - .bodywebsite .mt-xl-2, - .bodywebsite .my-xl-2 { - margin-top: 0.5rem !important; - } - .bodywebsite .mr-xl-2, - .bodywebsite .mx-xl-2 { - margin-right: 0.5rem !important; - } - .bodywebsite .mb-xl-2, - .bodywebsite .my-xl-2 { - margin-bottom: 0.5rem !important; - } - .bodywebsite .ml-xl-2, - .bodywebsite .mx-xl-2 { - margin-left: 0.5rem !important; - } - .bodywebsite .m-xl-3 { - margin: 1rem !important; - } - .bodywebsite .mt-xl-3, - .bodywebsite .my-xl-3 { - margin-top: 1rem !important; - } - .bodywebsite .mr-xl-3, - .bodywebsite .mx-xl-3 { - margin-right: 1rem !important; - } - .bodywebsite .mb-xl-3, - .bodywebsite .my-xl-3 { - margin-bottom: 1rem !important; - } - .bodywebsite .ml-xl-3, - .bodywebsite .mx-xl-3 { - margin-left: 1rem !important; - } - .bodywebsite .m-xl-4 { - margin: 1.5rem !important; - } - .bodywebsite .mt-xl-4, - .bodywebsite .my-xl-4 { - margin-top: 1.5rem !important; - } - .bodywebsite .mr-xl-4, - .bodywebsite .mx-xl-4 { - margin-right: 1.5rem !important; - } - .bodywebsite .mb-xl-4, - .bodywebsite .my-xl-4 { - margin-bottom: 1.5rem !important; - } - .bodywebsite .ml-xl-4, - .bodywebsite .mx-xl-4 { - margin-left: 1.5rem !important; - } - .bodywebsite .m-xl-5 { - margin: 3rem !important; - } - .bodywebsite .mt-xl-5, - .bodywebsite .my-xl-5 { - margin-top: 3rem !important; - } - .bodywebsite .mr-xl-5, - .bodywebsite .mx-xl-5 { - margin-right: 3rem !important; - } - .bodywebsite .mb-xl-5, - .bodywebsite .my-xl-5 { - margin-bottom: 3rem !important; - } - .bodywebsite .ml-xl-5, - .bodywebsite .mx-xl-5 { - margin-left: 3rem !important; - } - .bodywebsite .p-xl-0 { - padding: 0 !important; - } - .bodywebsite .pt-xl-0, - .bodywebsite .py-xl-0 { - padding-top: 0 !important; - } - .bodywebsite .pr-xl-0, - .bodywebsite .px-xl-0 { - padding-right: 0 !important; - } - .bodywebsite .pb-xl-0, - .bodywebsite .py-xl-0 { - padding-bottom: 0 !important; - } - .bodywebsite .pl-xl-0, - .bodywebsite .px-xl-0 { - padding-left: 0 !important; - } - .bodywebsite .p-xl-1 { - padding: 0.25rem !important; - } - .bodywebsite .pt-xl-1, - .bodywebsite .py-xl-1 { - padding-top: 0.25rem !important; - } - .bodywebsite .pr-xl-1, - .bodywebsite .px-xl-1 { - padding-right: 0.25rem !important; - } - .bodywebsite .pb-xl-1, - .bodywebsite .py-xl-1 { - padding-bottom: 0.25rem !important; - } - .bodywebsite .pl-xl-1, - .bodywebsite .px-xl-1 { - padding-left: 0.25rem !important; - } - .bodywebsite .p-xl-2 { - padding: 0.5rem !important; - } - .bodywebsite .pt-xl-2, - .bodywebsite .py-xl-2 { - padding-top: 0.5rem !important; - } - .bodywebsite .pr-xl-2, - .bodywebsite .px-xl-2 { - padding-right: 0.5rem !important; - } - .bodywebsite .pb-xl-2, - .bodywebsite .py-xl-2 { - padding-bottom: 0.5rem !important; - } - .bodywebsite .pl-xl-2, - .bodywebsite .px-xl-2 { - padding-left: 0.5rem !important; - } - .bodywebsite .p-xl-3 { - padding: 1rem !important; - } - .bodywebsite .pt-xl-3, - .bodywebsite .py-xl-3 { - padding-top: 1rem !important; - } - .bodywebsite .pr-xl-3, - .bodywebsite .px-xl-3 { - padding-right: 1rem !important; - } - .bodywebsite .pb-xl-3, - .bodywebsite .py-xl-3 { - padding-bottom: 1rem !important; - } - .bodywebsite .pl-xl-3, - .bodywebsite .px-xl-3 { - padding-left: 1rem !important; - } - .bodywebsite .p-xl-4 { - padding: 1.5rem !important; - } - .bodywebsite .pt-xl-4, - .bodywebsite .py-xl-4 { - padding-top: 1.5rem !important; - } - .bodywebsite .pr-xl-4, - .bodywebsite .px-xl-4 { - padding-right: 1.5rem !important; - } - .bodywebsite .pb-xl-4, - .bodywebsite .py-xl-4 { - padding-bottom: 1.5rem !important; - } - .bodywebsite .pl-xl-4, - .bodywebsite .px-xl-4 { - padding-left: 1.5rem !important; - } - .bodywebsite .p-xl-5 { - padding: 3rem !important; - } - .bodywebsite .pt-xl-5, - .bodywebsite .py-xl-5 { - padding-top: 3rem !important; - } - .bodywebsite .pr-xl-5, - .bodywebsite .px-xl-5 { - padding-right: 3rem !important; - } - .bodywebsite .pb-xl-5, - .bodywebsite .py-xl-5 { - padding-bottom: 3rem !important; - } - .bodywebsite .pl-xl-5, - .bodywebsite .px-xl-5 { - padding-left: 3rem !important; - } - .bodywebsite .m-xl-auto { - margin: auto !important; - } - .bodywebsite .mt-xl-auto, - .bodywebsite .my-xl-auto { - margin-top: auto !important; - } - .bodywebsite .mr-xl-auto, - .bodywebsite .mx-xl-auto { - margin-right: auto !important; - } - .bodywebsite .mb-xl-auto, - .bodywebsite .my-xl-auto { - margin-bottom: auto !important; - } - .bodywebsite .ml-xl-auto, - .bodywebsite .mx-xl-auto { - margin-left: auto !important; - } -} -@media (min-width: 1800px) { - .bodywebsite .m-xxl-0 { - margin: 0 !important; - } - .bodywebsite .mt-xxl-0, - .bodywebsite .my-xxl-0 { - margin-top: 0 !important; - } - .bodywebsite .mr-xxl-0, - .bodywebsite .mx-xxl-0 { - margin-right: 0 !important; - } - .bodywebsite .mb-xxl-0, - .bodywebsite .my-xxl-0 { - margin-bottom: 0 !important; - } - .bodywebsite .ml-xxl-0, - .bodywebsite .mx-xxl-0 { - margin-left: 0 !important; - } - .bodywebsite .m-xxl-1 { - margin: 0.25rem !important; - } - .bodywebsite .mt-xxl-1, - .bodywebsite .my-xxl-1 { - margin-top: 0.25rem !important; - } - .bodywebsite .mr-xxl-1, - .bodywebsite .mx-xxl-1 { - margin-right: 0.25rem !important; - } - .bodywebsite .mb-xxl-1, - .bodywebsite .my-xxl-1 { - margin-bottom: 0.25rem !important; - } - .bodywebsite .ml-xxl-1, - .bodywebsite .mx-xxl-1 { - margin-left: 0.25rem !important; - } - .bodywebsite .m-xxl-2 { - margin: 0.5rem !important; - } - .bodywebsite .mt-xxl-2, - .bodywebsite .my-xxl-2 { - margin-top: 0.5rem !important; - } - .bodywebsite .mr-xxl-2, - .bodywebsite .mx-xxl-2 { - margin-right: 0.5rem !important; - } - .bodywebsite .mb-xxl-2, - .bodywebsite .my-xxl-2 { - margin-bottom: 0.5rem !important; - } - .bodywebsite .ml-xxl-2, - .bodywebsite .mx-xxl-2 { - margin-left: 0.5rem !important; - } - .bodywebsite .m-xxl-3 { - margin: 1rem !important; - } - .bodywebsite .mt-xxl-3, - .bodywebsite .my-xxl-3 { - margin-top: 1rem !important; - } - .bodywebsite .mr-xxl-3, - .bodywebsite .mx-xxl-3 { - margin-right: 1rem !important; - } - .bodywebsite .mb-xxl-3, - .bodywebsite .my-xxl-3 { - margin-bottom: 1rem !important; - } - .bodywebsite .ml-xxl-3, - .bodywebsite .mx-xxl-3 { - margin-left: 1rem !important; - } - .bodywebsite .m-xxl-4 { - margin: 1.5rem !important; - } - .bodywebsite .mt-xxl-4, - .bodywebsite .my-xxl-4 { - margin-top: 1.5rem !important; - } - .bodywebsite .mr-xxl-4, - .bodywebsite .mx-xxl-4 { - margin-right: 1.5rem !important; - } - .bodywebsite .mb-xxl-4, - .bodywebsite .my-xxl-4 { - margin-bottom: 1.5rem !important; - } - .bodywebsite .ml-xxl-4, - .bodywebsite .mx-xxl-4 { - margin-left: 1.5rem !important; - } - .bodywebsite .m-xxl-5 { - margin: 3rem !important; - } - .bodywebsite .mt-xxl-5, - .bodywebsite .my-xxl-5 { - margin-top: 3rem !important; - } - .bodywebsite .mr-xxl-5, - .bodywebsite .mx-xxl-5 { - margin-right: 3rem !important; - } - .bodywebsite .mb-xxl-5, - .bodywebsite .my-xxl-5 { - margin-bottom: 3rem !important; - } - .bodywebsite .ml-xxl-5, - .bodywebsite .mx-xxl-5 { - margin-left: 3rem !important; - } - .bodywebsite .p-xxl-0 { - padding: 0 !important; - } - .bodywebsite .pt-xxl-0, - .bodywebsite .py-xxl-0 { - padding-top: 0 !important; - } - .bodywebsite .pr-xxl-0, - .bodywebsite .px-xxl-0 { - padding-right: 0 !important; - } - .bodywebsite .pb-xxl-0, - .bodywebsite .py-xxl-0 { - padding-bottom: 0 !important; - } - .bodywebsite .pl-xxl-0, - .bodywebsite .px-xxl-0 { - padding-left: 0 !important; - } - .bodywebsite .p-xxl-1 { - padding: 0.25rem !important; - } - .bodywebsite .pt-xxl-1, - .bodywebsite .py-xxl-1 { - padding-top: 0.25rem !important; - } - .bodywebsite .pr-xxl-1, - .bodywebsite .px-xxl-1 { - padding-right: 0.25rem !important; - } - .bodywebsite .pb-xxl-1, - .bodywebsite .py-xxl-1 { - padding-bottom: 0.25rem !important; - } - .bodywebsite .pl-xxl-1, - .bodywebsite .px-xxl-1 { - padding-left: 0.25rem !important; - } - .bodywebsite .p-xxl-2 { - padding: 0.5rem !important; - } - .bodywebsite .pt-xxl-2, - .bodywebsite .py-xxl-2 { - padding-top: 0.5rem !important; - } - .bodywebsite .pr-xxl-2, - .bodywebsite .px-xxl-2 { - padding-right: 0.5rem !important; - } - .bodywebsite .pb-xxl-2, - .bodywebsite .py-xxl-2 { - padding-bottom: 0.5rem !important; - } - .bodywebsite .pl-xxl-2, - .bodywebsite .px-xxl-2 { - padding-left: 0.5rem !important; - } - .bodywebsite .p-xxl-3 { - padding: 1rem !important; - } - .bodywebsite .pt-xxl-3, - .bodywebsite .py-xxl-3 { - padding-top: 1rem !important; - } - .bodywebsite .pr-xxl-3, - .bodywebsite .px-xxl-3 { - padding-right: 1rem !important; - } - .bodywebsite .pb-xxl-3, - .bodywebsite .py-xxl-3 { - padding-bottom: 1rem !important; - } - .bodywebsite .pl-xxl-3, - .bodywebsite .px-xxl-3 { - padding-left: 1rem !important; - } - .bodywebsite .p-xxl-4 { - padding: 1.5rem !important; - } - .bodywebsite .pt-xxl-4, - .bodywebsite .py-xxl-4 { - padding-top: 1.5rem !important; - } - .bodywebsite .pr-xxl-4, - .bodywebsite .px-xxl-4 { - padding-right: 1.5rem !important; - } - .bodywebsite .pb-xxl-4, - .bodywebsite .py-xxl-4 { - padding-bottom: 1.5rem !important; - } - .bodywebsite .pl-xxl-4, - .bodywebsite .px-xxl-4 { - padding-left: 1.5rem !important; - } - .bodywebsite .p-xxl-5 { - padding: 3rem !important; - } - .bodywebsite .pt-xxl-5, - .bodywebsite .py-xxl-5 { - padding-top: 3rem !important; - } - .bodywebsite .pr-xxl-5, - .bodywebsite .px-xxl-5 { - padding-right: 3rem !important; - } - .bodywebsite .pb-xxl-5, - .bodywebsite .py-xxl-5 { - padding-bottom: 3rem !important; - } - .bodywebsite .pl-xxl-5, - .bodywebsite .px-xxl-5 { - padding-left: 3rem !important; - } - .bodywebsite .m-xxl-auto { - margin: auto !important; - } - .bodywebsite .mt-xxl-auto, - .bodywebsite .my-xxl-auto { - margin-top: auto !important; - } - .bodywebsite .mr-xxl-auto, - .bodywebsite .mx-xxl-auto { - margin-right: auto !important; - } - .bodywebsite .mb-xxl-auto, - .bodywebsite .my-xxl-auto { - margin-bottom: auto !important; - } - .bodywebsite .ml-xxl-auto, - .bodywebsite .mx-xxl-auto { - margin-left: auto !important; - } -} -.bodywebsite .text-justify { - text-align: justify !important; -} -.bodywebsite .text-nowrap { - white-space: nowrap !important; -} -.bodywebsite .text-truncate { - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; -} -.bodywebsite .text-left { - text-align: left !important; -} -.bodywebsite .text-right { - text-align: right !important; -} -.bodywebsite .text-center { - text-align: center !important; -} -@media (min-width: 576px) { - .bodywebsite .text-sm-left { - text-align: left !important; - } - .bodywebsite .text-sm-right { - text-align: right !important; - } - .bodywebsite .text-sm-center { - text-align: center !important; - } -} -@media (min-width: 768px) { - .bodywebsite .text-md-left { - text-align: left !important; - } - .bodywebsite .text-md-right { - text-align: right !important; - } - .bodywebsite .text-md-center { - text-align: center !important; - } -} -@media (min-width: 992px) { - .bodywebsite .text-lg-left { - text-align: left !important; - } - .bodywebsite .text-lg-right { - text-align: right !important; - } - .bodywebsite .text-lg-center { - text-align: center !important; - } -} -@media (min-width: 1200px) { - .bodywebsite .text-xl-left { - text-align: left !important; - } - .bodywebsite .text-xl-right { - text-align: right !important; - } - .bodywebsite .text-xl-center { - text-align: center !important; - } -} -@media (min-width: 1800px) { - .bodywebsite .text-xxl-left { - text-align: left !important; - } - .bodywebsite .text-xxl-right { - text-align: right !important; - } - .bodywebsite .text-xxl-center { - text-align: center !important; - } -} -.bodywebsite .text-lowercase { - text-transform: lowercase !important; -} -.bodywebsite .text-uppercase { - text-transform: uppercase !important; -} -.bodywebsite .text-capitalize { - text-transform: capitalize !important; -} -.bodywebsite .font-weight-light { - font-weight: 300 !important; -} -.bodywebsite .font-weight-normal { - font-weight: 400 !important; -} -.bodywebsite .font-weight-bold { - font-weight: 700 !important; -} -.bodywebsite .font-italic { - font-style: italic !important; -} -.bodywebsite .text-white { - color: #fff !important; -} -.bodywebsite .text-primary { - color: #007bff !important; -} -.bodywebsite a.text-primary:focus, -.bodywebsite a.text-primary:hover { - color: #0062cc !important; -} -.bodywebsite .text-secondary { - color: #868e96 !important; -} -.bodywebsite a.text-secondary:focus, -.bodywebsite a.text-secondary:hover { - color: #6c757d !important; -} -.bodywebsite .text-success { - color: #28a745 !important; -} -.bodywebsite a.text-success:focus, -.bodywebsite a.text-success:hover { - color: #1e7e34 !important; -} -.bodywebsite .text-info { - color: #17a2b8 !important; -} -.bodywebsite a.text-info:focus, -.bodywebsite a.text-info:hover { - color: #117a8b !important; -} -.bodywebsite .text-warning { - color: #ffc107 !important; -} -.bodywebsite a.text-warning:focus, -.bodywebsite a.text-warning:hover { - color: #d39e00 !important; -} -.bodywebsite .text-danger { - color: #dc3545 !important; -} -.bodywebsite a.text-danger:focus, -.bodywebsite a.text-danger:hover { - color: #bd2130 !important; -} -.bodywebsite .text-light { - color: #f8f9fa !important; -} -.bodywebsite a.text-light:focus, -.bodywebsite a.text-light:hover { - color: #dae0e5 !important; -} -.bodywebsite .text-dark { - color: #343a40 !important; -} -.bodywebsite a.text-dark:focus, -.bodywebsite a.text-dark:hover { - color: #1d2124 !important; -} -.bodywebsite .text-muted { - color: #dedede !important; -} -.bodywebsite .text-hide { - font: 0/0 a; - color: transparent; - text-shadow: none; - background-color: transparent; - border: 0; -} -.bodywebsite .visible { - visibility: visible !important; -} -.bodywebsite .invisible { - visibility: hidden !important; -} -.bodywebsite .animated { - -webkit-animation-duration: 1s; - animation-duration: 1s; - -webkit-animation-fill-mode: both; - animation-fill-mode: both; - opacity: 1; -} -.bodywebsite .animated:not(.page) { - will-change: transform; -} -.bodywebsite .animated.infinite { - -webkit-animation-iteration-count: infinite; - animation-iteration-count: infinite; -} -.bodywebsite .animated.hinge { - -webkit-animation-duration: 2s; - animation-duration: 2s; -} -html .bodywebsite:not(.lt-ie10) .not-animated { - opacity: 0; -} -@-webkit-keyframes fadeInUp { - 0% { - opacity: 0; - -webkit-transform: translate3d(0, 100%, 0); - transform: translate3d(0, 100%, 0); - } - 100% { - opacity: 1; - -webkit-transform: none; - transform: none; - } -} -@keyframes fadeInUp { - 0% { - opacity: 0; - -webkit-transform: translate3d(0, 100%, 0); - transform: translate3d(0, 100%, 0); - } - 100% { - opacity: 1; - -webkit-transform: none; - transform: none; - } -} -.bodywebsite .fadeInUp { - -webkit-animation-name: fadeInUp; - animation-name: fadeInUp; -} -@-webkit-keyframes fadeInUpBig { - 0% { - opacity: 0; - -webkit-transform: translate3d(0, 2000px, 0); - transform: translate3d(0, 2000px, 0); - } - 100% { - opacity: 1; - -webkit-transform: none; - transform: none; - } -} -@keyframes fadeInUpBig { - 0% { - opacity: 0; - -webkit-transform: translate3d(0, 2000px, 0); - transform: translate3d(0, 2000px, 0); - } - 100% { - opacity: 1; - -webkit-transform: none; - transform: none; - } -} -.bodywebsite .fadeInUpBig { - -webkit-animation-name: fadeInUpBig; - animation-name: fadeInUpBig; -} - - - - - - - - - - - - - - - - - - - - - - diff --git a/htdocs/install/doctemplates/websites/template/test.php b/htdocs/install/doctemplates/websites/template/test.php deleted file mode 100644 index a6f437b4c3a..00000000000 --- a/htdocs/install/doctemplates/websites/template/test.php +++ /dev/null @@ -1,5 +0,0 @@ -ref.'/page126.tpl.php'; -?> diff --git a/htdocs/install/doctemplates/websites/template/test2.php b/htdocs/install/doctemplates/websites/template/test2.php deleted file mode 100644 index a6f437b4c3a..00000000000 --- a/htdocs/install/doctemplates/websites/template/test2.php +++ /dev/null @@ -1,5 +0,0 @@ -ref.'/page126.tpl.php'; -?> diff --git a/htdocs/install/doctemplates/websites/template/wrapper.php b/htdocs/install/doctemplates/websites/template/wrapper.php deleted file mode 100644 index 952662e27b1..00000000000 --- a/htdocs/install/doctemplates/websites/template/wrapper.php +++ /dev/null @@ -1,126 +0,0 @@ -entity; -$original_file=GETPOST("file","alpha"); - -// If we have a hash public (hashp), we guess the original_file. -if (! empty($hashp)) -{ - include_once DOL_DOCUMENT_ROOT.'/ecm/class/ecmfiles.class.php'; - $ecmfile=new EcmFiles($db); - $result = $ecmfile->fetch(0, '', '', '', $hashp); - if ($result > 0) - { - $tmp = explode('/', $ecmfile->filepath, 2); // $ecmfile->filepath is relative to document directory - // filepath can be 'users/X' or 'X/propale/PR11111' - if (is_numeric($tmp[0])) // If first tmp is numeric, it is subdir of company for multicompany, we take next part. - { - $tmp = explode('/', $tmp[1], 2); - } - $moduleparttocheck = $tmp[0]; // moduleparttocheck is first part of path - - if ($modulepart) // Not required, so often not defined, for link using public hashp parameter. - { - if ($moduleparttocheck == $modulepart) - { - // We remove first level of directory - $original_file = (($tmp[1]?$tmp[1].'/':'').$ecmfile->filename); // this is relative to module dir - //var_dump($original_file); exit; - } - else - { - print 'Bad link. File is from another module part.'; - } - } - else - { - $modulepart = $moduleparttocheck; - $original_file = (($tmp[1]?$tmp[1].'/':'').$ecmfile->filename); // this is relative to module dir - } - } - else - { - print "ErrorFileNotFoundWithSharedLink"; - exit; - } -} - -// Define attachment (attachment=true to force choice popup 'open'/'save as') -$attachment = true; -if (preg_match('/\.(html|htm)$/i',$original_file)) $attachment = false; -if (isset($_GET["attachment"])) $attachment = GETPOST("attachment",'alpha')?true:false; -if (! empty($conf->global->MAIN_DISABLE_FORCE_SAVEAS)) $attachment=false; - -// Define mime type -$type = 'application/octet-stream'; -if (GETPOST('type','alpha')) $type=GETPOST('type','alpha'); -else $type=dol_mimetype($original_file); - -// Security: Delete string ../ into $original_file -$original_file=str_replace("../","/", $original_file); - -// Find the subdirectory name as the reference -$refname=basename(dirname($original_file)."/"); - -if ($_GET["modulepart"] == "mycompany" && preg_match('/^\/?logos\//', $original_file)) -{ - readfile(dol_osencode($conf->mycompany->dir_output."/".$original_file)); -} -else -{ - include_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; - $check_access = dol_check_secure_access_document($modulepart, $original_file, $entity, $refname); - $accessallowed = $check_access['accessallowed']; - $sqlprotectagainstexternals = $check_access['sqlprotectagainstexternals']; - $fullpath_original_file = $check_access['original_file']; // $fullpath_original_file is now a full path name - if (! empty($_GET["hashp"])) - { - $accessallowed = 1; // When using hashp, link is public so we force $accessallowed - $sqlprotectagainstexternals = ''; - } - - // Security: - // Limit access if permissions are wrong - if (! $accessallowed) - { - print 'Access forbidden'; - exit; - } - - clearstatcache(); - - $filename = basename($fullpath_original_file); - - // Output file on browser - dol_syslog("wrapper.php download $fullpath_original_file filename=$filename content-type=$type"); - $fullpath_original_file_osencoded=dol_osencode($fullpath_original_file); // New file name encoded in OS encoding charset - - // This test if file exists should be useless. We keep it to find bug more easily - if (! file_exists($fullpath_original_file_osencoded)) - { - print "ErrorFileDoesNotExists: ".$original_file; - exit; - } - - // Permissions are ok and file found, so we return it - //top_httphead($type); - header('Content-Description: File Transfer'); - if ($encoding) header('Content-Encoding: '.$encoding); - // Add MIME Content-Disposition from RFC 2183 (inline=automatically displayed, attachment=need user action to open) - if ($attachment) header('Content-Disposition: attachment; filename="'.$filename.'"'); - else header('Content-Disposition: inline; filename="'.$filename.'"'); - header('Content-Length: ' . dol_filesize($fullpath_original_file)); - // Ajout directives pour resoudre bug IE - header('Cache-Control: Public, must-revalidate'); - header('Pragma: public'); - - readfile($fullpath_original_file_osencoded); -} -if (is_object($db)) $db->close(); -// END PHP ?> From 2ecde139f04b6b20c4df6a9b9ab67514e8a6d887 Mon Sep 17 00:00:00 2001 From: Francis Appels Date: Wed, 5 Jun 2019 19:06:58 +0200 Subject: [PATCH 250/365] Fix stock mouvement does not need virtual stock. --- htdocs/product/stock/class/mouvementstock.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/product/stock/class/mouvementstock.class.php b/htdocs/product/stock/class/mouvementstock.class.php index b85e0cfcf23..c6db985f515 100644 --- a/htdocs/product/stock/class/mouvementstock.class.php +++ b/htdocs/product/stock/class/mouvementstock.class.php @@ -163,7 +163,7 @@ class MouvementStock extends CommonObject $this->db->begin(); - $product->load_stock(); + $product->load_stock('novirtual'); // Test if product require batch data. If yes, and there is not, we throw an error. if (! empty($conf->productbatch->enabled) && $product->hasbatch() && ! $skip_batch) From b73d287953d44f1d7b0d7c6daf07d73498e165b9 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 7 Jun 2019 18:09:43 +0200 Subject: [PATCH 251/365] Update agenda.lib.php --- htdocs/core/lib/agenda.lib.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/core/lib/agenda.lib.php b/htdocs/core/lib/agenda.lib.php index 94492e9430b..4326276766b 100644 --- a/htdocs/core/lib/agenda.lib.php +++ b/htdocs/core/lib/agenda.lib.php @@ -469,7 +469,7 @@ function actions_prepare_head($object) $head[$h][0] = DOL_URL_ROOT.'/resource/element_resource.php?element=action&element_id='.$object->id; $listofresourcelinked = $resource->getElementResources($object->element, $object->id); - $nbResources=is_array($listofresourcelinked)?count($listofresourcelinked):0; + $nbResources=(is_array($listofresourcelinked)?count($listofresourcelinked):0); $head[$h][1] = $langs->trans("Resources"); if ($nbResources > 0) $head[$h][1].= ' '.($nbResources).''; $head[$h][2] = 'resources'; From 49646663a124c19ed3d5a13b306e38e3e120bbbb Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 7 Jun 2019 22:47:15 +0200 Subject: [PATCH 252/365] Fix link on invoice --- htdocs/compta/facture/class/facture.class.php | 6 ++++-- htdocs/fourn/class/fournisseur.facture.class.php | 6 ++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/htdocs/compta/facture/class/facture.class.php b/htdocs/compta/facture/class/facture.class.php index fa67f2bf67e..e5041217cb3 100644 --- a/htdocs/compta/facture/class/facture.class.php +++ b/htdocs/compta/facture/class/facture.class.php @@ -1203,7 +1203,7 @@ class Facture extends CommonInvoice */ public function getNomUrl($withpicto = 0, $option = '', $max = 0, $short = 0, $moretitle = '', $notooltip = 0, $addlinktonotes = 0, $save_lastsearch_value = -1, $target = '') { - global $langs, $conf, $user, $form; + global $langs, $conf, $user; if (! empty($conf->dol_no_mouse_hover)) $notooltip=1; // Force disable tooltips @@ -1225,7 +1225,7 @@ class Facture extends CommonInvoice if ($short) return $url; - $picto='bill'; + $picto=$this->picto; if ($this->type == self::TYPE_REPLACEMENT) $picto.='r'; // Replacement invoice if ($this->type == self::TYPE_CREDIT_NOTE) $picto.='a'; // Credit note if ($this->type == self::TYPE_DEPOSIT) $picto.='d'; // Deposit invoice @@ -1241,6 +1241,8 @@ class Facture extends CommonInvoice $label .= '
'.$langs->trans('Ref') . ': ' . $this->ref; if (! empty($this->ref_client)) $label .= '
' . $langs->trans('RefCustomer') . ': ' . $this->ref_client; + if (! empty($this->date)) + $label .= '
' . $langs->trans('Date') . ': ' . dol_print_date($this->date, 'day'); if (! empty($this->total_ht)) $label.= '
' . $langs->trans('AmountHT') . ': ' . price($this->total_ht, 0, $langs, 0, -1, -1, $conf->currency); if (! empty($this->total_tva)) diff --git a/htdocs/fourn/class/fournisseur.facture.class.php b/htdocs/fourn/class/fournisseur.facture.class.php index d9c6781e74d..883fe383de7 100644 --- a/htdocs/fourn/class/fournisseur.facture.class.php +++ b/htdocs/fourn/class/fournisseur.facture.class.php @@ -2269,7 +2269,7 @@ class FactureFournisseur extends CommonInvoice if ($add_save_lastsearch_values) $url.='&save_lastsearch_values=1'; } - $picto='bill'; + $picto=$this->picto; if ($this->type == self::TYPE_REPLACEMENT) $picto.='r'; // Replacement invoice if ($this->type == self::TYPE_CREDIT_NOTE) $picto.='a'; // Credit note if ($this->type == self::TYPE_DEPOSIT) $picto.='d'; // Deposit invoice @@ -2281,6 +2281,8 @@ class FactureFournisseur extends CommonInvoice $label.= '
' . $langs->trans('RefSupplier') . ': ' . $this->ref_supplier; if (! empty($this->libelle)) $label.= '
' . $langs->trans('Label') . ': ' . $this->libelle; + if (! empty($this->date)) + $label .= '
' . $langs->trans('Date') . ': ' . dol_print_date($this->date, 'day'); if (! empty($this->total_ht)) $label.= '
' . $langs->trans('AmountHT') . ': ' . price($this->total_ht, 0, $langs, 0, -1, -1, $conf->currency); if (! empty($this->total_tva)) @@ -2312,7 +2314,7 @@ class FactureFournisseur extends CommonInvoice $linkend=''; $result .= $linkstart; - if ($withpicto) $result.=img_object(($notooltip?'':$label), $this->picto, ($notooltip?(($withpicto != 2) ? 'class="paddingright"' : ''):'class="'.(($withpicto != 2) ? 'paddingright ' : '').'classfortooltip"'), 0, 0, $notooltip?0:1); + if ($withpicto) $result.=img_object(($notooltip?'':$label), $picto, ($notooltip?(($withpicto != 2) ? 'class="paddingright"' : ''):'class="'.(($withpicto != 2) ? 'paddingright ' : '').'classfortooltip"'), 0, 0, $notooltip?0:1); if ($withpicto != 2) $result.= ($max?dol_trunc($ref, $max):$ref); $result .= $linkend; From 0099c1f602e28f10c160e0dfbe6220e0f58c75b9 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 7 Jun 2019 22:55:18 +0200 Subject: [PATCH 253/365] Fix missing date --- htdocs/compta/index.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/htdocs/compta/index.php b/htdocs/compta/index.php index c872fae3def..3e455aebae6 100644 --- a/htdocs/compta/index.php +++ b/htdocs/compta/index.php @@ -136,8 +136,7 @@ if (! empty($conf->global->MAIN_SEARCH_FORM_ON_HOME_AREAS)) // This is usele */ if (! empty($conf->facture->enabled) && $user->rights->facture->lire) { - $sql = "SELECT f.ref"; - $sql.= ", f.rowid, f.total as total_ht, f.tva as total_tva, f.total_ttc, f.ref_client"; + $sql = "SELECT f.rowid, f.ref, f.date, f.total as total_ht, f.tva as total_tva, f.total_ttc, f.ref_client"; $sql.= ", f.type"; $sql.= ", s.nom as name"; $sql.= ", s.rowid as socid, s.email"; @@ -177,13 +176,14 @@ if (! empty($conf->facture->enabled) && $user->rights->facture->lire) { $obj = $db->fetch_object($resql); - $facturestatic->ref=$obj->ref; $facturestatic->id=$obj->rowid; + $facturestatic->ref=$obj->ref; + $facturestatic->date=$db->jdate($obj->date); + $facturestatic->type=$obj->type; $facturestatic->total_ht=$obj->total_ht; $facturestatic->total_tva=$obj->total_tva; $facturestatic->total_ttc=$obj->total_ttc; $facturestatic->ref_client=$obj->ref_client; - $facturestatic->type=$obj->type; $companystatic->id=$obj->socid; $companystatic->name=$obj->name; From f713deb0a86a6ffddd9fce925e57264b09cc226f Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 7 Jun 2019 22:55:51 +0200 Subject: [PATCH 254/365] Fix sql syntax error --- htdocs/compta/index.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/compta/index.php b/htdocs/compta/index.php index 3e455aebae6..ae84340333e 100644 --- a/htdocs/compta/index.php +++ b/htdocs/compta/index.php @@ -136,7 +136,7 @@ if (! empty($conf->global->MAIN_SEARCH_FORM_ON_HOME_AREAS)) // This is usele */ if (! empty($conf->facture->enabled) && $user->rights->facture->lire) { - $sql = "SELECT f.rowid, f.ref, f.date, f.total as total_ht, f.tva as total_tva, f.total_ttc, f.ref_client"; + $sql = "SELECT f.rowid, f.ref, f.datef as date, f.total as total_ht, f.tva as total_tva, f.total_ttc, f.ref_client"; $sql.= ", f.type"; $sql.= ", s.nom as name"; $sql.= ", s.rowid as socid, s.email"; From 39fa4f936527ea4bfcdcdff0293f86a019d846b8 Mon Sep 17 00:00:00 2001 From: Alexandre SPANGARO Date: Sat, 8 Jun 2019 21:34:30 +0200 Subject: [PATCH 255/365] Fix Missing language key --- htdocs/langs/en_US/main.lang | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/htdocs/langs/en_US/main.lang b/htdocs/langs/en_US/main.lang index fd74d0cae07..a89443b345f 100644 --- a/htdocs/langs/en_US/main.lang +++ b/htdocs/langs/en_US/main.lang @@ -972,4 +972,5 @@ NoFilesUploadedYet=Please upload a document first SeePrivateNote=See private note PaymentInformation=Payment information ValidFrom=Valid from -ValidUntil=Valid until \ No newline at end of file +ValidUntil=Valid until +NoRecordedUsers=No records users \ No newline at end of file From a0ab2fdfd773692ed99c8884645fe1d74dfe3721 Mon Sep 17 00:00:00 2001 From: Alexandre SPANGARO Date: Sun, 9 Jun 2019 08:29:44 +0200 Subject: [PATCH 256/365] Fix Missing language key --- htdocs/langs/en_US/errors.lang | 1 + 1 file changed, 1 insertion(+) diff --git a/htdocs/langs/en_US/errors.lang b/htdocs/langs/en_US/errors.lang index 08ec66f8ea3..bb92e41a537 100644 --- a/htdocs/langs/en_US/errors.lang +++ b/htdocs/langs/en_US/errors.lang @@ -217,6 +217,7 @@ ErrorBadSyntaxForParamKeyForContent=Bad syntax for param keyforcontent. Must hav ErrorVariableKeyForContentMustBeSet=Error, the constant with name %s (with text content to show) or %s (with external url to show) must be set. ErrorURLMustStartWithHttp=URL %s must start with http:// or https:// ErrorNewRefIsAlreadyUsed=Error, the new reference is already used +ErrorDeletePaymentLinkedToAClosedInvoiceNotPossible=Error, delete payment linked to a closed invoice is not possible. # Warnings WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user. WarningMandatorySetupNotComplete=Click here to setup mandatory parameters From ae686ff62a0d30f6e547905e6a51da7d97b49ee4 Mon Sep 17 00:00:00 2001 From: Alexandre SPANGARO Date: Sun, 9 Jun 2019 08:39:38 +0200 Subject: [PATCH 257/365] Better look --- htdocs/compta/paiement/cheque/card.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/htdocs/compta/paiement/cheque/card.php b/htdocs/compta/paiement/cheque/card.php index f84a805caef..21480a8496d 100644 --- a/htdocs/compta/paiement/cheque/card.php +++ b/htdocs/compta/paiement/cheque/card.php @@ -474,9 +474,9 @@ if ($action == 'new') print ''; print ''.$langs->trans("DateChequeReceived").''."\n"; print ''.$langs->trans("ChequeNumber")."\n"; - print ''.$langs->trans("CheckTransmitter")."\n"; - print ''.$langs->trans("Bank")."\n"; - print ''.$langs->trans("Amount")."\n"; + print ''.$langs->trans("CheckTransmitter")."\n"; + print ''.$langs->trans("Bank")."\n"; + print ''.$langs->trans("Amount")."\n"; print ''.$langs->trans("Payment")."\n"; print ''.$langs->trans("LineRecord")."\n"; print ''.$langs->trans("Select")."
"; From 33b02b97d5f46b0c318992b63bee3f0afaba10e4 Mon Sep 17 00:00:00 2001 From: Alexandre SPANGARO Date: Sun, 9 Jun 2019 08:50:20 +0200 Subject: [PATCH 258/365] Better look --- htdocs/compta/bank/bankentries_list.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/compta/bank/bankentries_list.php b/htdocs/compta/bank/bankentries_list.php index 444927ea27d..be2d8335afa 100644 --- a/htdocs/compta/bank/bankentries_list.php +++ b/htdocs/compta/bank/bankentries_list.php @@ -941,8 +941,8 @@ if ($resql) if (! empty($arrayfields['b.num_chq']['checked'])) print_liste_field_titre($arrayfields['b.num_chq']['label'], $_SERVER['PHP_SELF'], 'b.num_chq', '', $param, 'align="center"', $sortfield, $sortorder); if (! empty($arrayfields['bu.label']['checked'])) print_liste_field_titre($arrayfields['bu.label']['label'], $_SERVER['PHP_SELF'], 'bu.label', '', $param, '', $sortfield, $sortorder); if (! empty($arrayfields['ba.ref']['checked'])) print_liste_field_titre($arrayfields['ba.ref']['label'], $_SERVER['PHP_SELF'], 'ba.ref', '', $param, '', $sortfield, $sortorder); - if (! empty($arrayfields['b.debit']['checked'])) print_liste_field_titre($arrayfields['b.debit']['label'], $_SERVER['PHP_SELF'], 'b.amount', '', $param, 'class="right"', $sortfield, $sortorder); - if (! empty($arrayfields['b.credit']['checked'])) print_liste_field_titre($arrayfields['b.credit']['label'], $_SERVER['PHP_SELF'], 'b.amount', '', $param, 'class="right"', $sortfield, $sortorder); + if (! empty($arrayfields['b.debit']['checked'])) print_liste_field_titre($arrayfields['b.debit']['label'], $_SERVER['PHP_SELF'], 'b.amount', '', $param, 'align="center" style="min-width: 100px"', $sortfield, $sortorder, "right "); + if (! empty($arrayfields['b.credit']['checked'])) print_liste_field_titre($arrayfields['b.credit']['label'], $_SERVER['PHP_SELF'], 'b.amount', '', $param, 'align="center" style="min-width: 100px"', $sortfield, $sortorder, "right "); if (! empty($arrayfields['balancebefore']['checked'])) print_liste_field_titre($arrayfields['balancebefore']['label'], $_SERVER['PHP_SELF'], '', '', $param, 'class="right"', $sortfield, $sortorder); if (! empty($arrayfields['balance']['checked'])) print_liste_field_titre($arrayfields['balance']['label'], $_SERVER['PHP_SELF'], '', '', $param, 'class="right"', $sortfield, $sortorder); if (! empty($arrayfields['b.num_releve']['checked'])) print_liste_field_titre($arrayfields['b.num_releve']['label'], $_SERVER['PHP_SELF'], 'b.num_releve', '', $param, 'align="center"', $sortfield, $sortorder); From 8c5a01dd900022f7d57658018c4e36f445fa02a5 Mon Sep 17 00:00:00 2001 From: Alexandre SPANGARO Date: Sun, 9 Jun 2019 08:56:49 +0200 Subject: [PATCH 259/365] Show total with decimals --- htdocs/compta/bank/list.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/compta/bank/list.php b/htdocs/compta/bank/list.php index aeb593f53b9..5968505c540 100644 --- a/htdocs/compta/bank/list.php +++ b/htdocs/compta/bank/list.php @@ -594,7 +594,7 @@ if (isset($totalarray['totalbalancefield']) && $lastcurrencycode != 'various') / if ($num < $limit && empty($offset)) print ''.$langs->trans("Total").''; else print ''.$langs->trans("Totalforthispage").''; } - elseif ($totalarray['totalbalancefield'] == $i) print ''.price($totalarray['totalbalance'], 0, $langs, 0, 0, -1, $lastcurrencycode).''; + elseif ($totalarray['totalbalancefield'] == $i) print ''.price($totalarray['totalbalance'], 0, $langs, 0, -1, -1, $lastcurrencycode).''; else print ''; } print ''; From 6d43efb4a254413ce128dbc201c232099be5c854 Mon Sep 17 00:00:00 2001 From: Alexandre SPANGARO Date: Sun, 9 Jun 2019 16:35:45 +0200 Subject: [PATCH 260/365] Align right --- htdocs/compta/bank/annuel.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/compta/bank/annuel.php b/htdocs/compta/bank/annuel.php index 98085b34778..78705847bfc 100644 --- a/htdocs/compta/bank/annuel.php +++ b/htdocs/compta/bank/annuel.php @@ -217,7 +217,7 @@ for ($mois = 1 ; $mois < 13 ; $mois++) } print ""; - print ' '; + print ' '; if ($encaiss[$case]>0) { print price($encaiss[$case]); @@ -232,7 +232,7 @@ for ($mois = 1 ; $mois < 13 ; $mois++) print ''.$langs->trans("Total").""; for ($annee = $year_start ; $annee <= $year_end ; $annee++) { - print ''.price($totsorties[$annee]).''.price($totentrees[$annee]).''; + print ''.price($totsorties[$annee]).''.price($totentrees[$annee]).''; } print "\n"; From f3cba862825ac4797a53435c3f68c3605c1e08b7 Mon Sep 17 00:00:00 2001 From: Alexandre SPANGARO Date: Mon, 10 Jun 2019 07:49:10 +0200 Subject: [PATCH 261/365] Better look --- htdocs/accountancy/journal/bankjournal.php | 28 +++++++--------- .../journal/expensereportsjournal.php | 23 +++++++------ .../accountancy/journal/purchasesjournal.php | 33 +++++++++---------- htdocs/accountancy/journal/sellsjournal.php | 27 ++++++++------- htdocs/compta/paiement/cheque/card.php | 10 +++--- 5 files changed, 57 insertions(+), 64 deletions(-) diff --git a/htdocs/accountancy/journal/bankjournal.php b/htdocs/accountancy/journal/bankjournal.php index 275af10701d..a286e4d8a66 100644 --- a/htdocs/accountancy/journal/bankjournal.php +++ b/htdocs/accountancy/journal/bankjournal.php @@ -987,15 +987,14 @@ if (empty($action) || $action == 'view') { print '
'; print ""; print ""; - print ""; print ""; print ""; print ""; print ""; print ""; - print ""; - print ""; - print ""; + print ""; + print ""; + print ""; print "\n"; $r = ''; @@ -1019,7 +1018,6 @@ if (empty($action) || $action == 'view') { //var_dump($tabpay[$key]); print ''; print ''; - print ""; print ""; print ""; // Ledger account @@ -1043,9 +1041,9 @@ if (empty($action) || $action == 'view') { print ""; - print ""; - print ""; - print ""; + print ""; + print ""; + print ""; print ""; } } @@ -1061,7 +1059,6 @@ if (empty($action) || $action == 'view') { print ''; print ''; - print ""; print ""; print ""; // Ledger account @@ -1125,9 +1122,9 @@ if (empty($action) || $action == 'view') { } print ""; print ""; - print ""; - print ""; - print ""; + print ""; + print ""; + print ""; print ""; } } @@ -1141,7 +1138,6 @@ if (empty($action) || $action == 'view') { print ''; print ''; - print ""; print ""; print ""; // Ledger account @@ -1162,9 +1158,9 @@ if (empty($action) || $action == 'view') { */ print ""; print ""; - print ""; - print ""; - print ""; + print ""; + print ""; + print ""; print ""; } } diff --git a/htdocs/accountancy/journal/expensereportsjournal.php b/htdocs/accountancy/journal/expensereportsjournal.php index 30ed5a07207..9da814e2d8c 100644 --- a/htdocs/accountancy/journal/expensereportsjournal.php +++ b/htdocs/accountancy/journal/expensereportsjournal.php @@ -549,14 +549,13 @@ if (empty($action) || $action == 'view') { print '
'; print "
" . $langs->trans("Date") . "" . $langs->trans("Piece") . ' (' . $langs->trans("ObjectsRef") . ")" . $langs->trans("AccountAccounting") . "" . $langs->trans("SubledgerAccount") . "" . $langs->trans("LabelOperation") . "" . $langs->trans("PaymentMode") . "" . $langs->trans("Debit") . "" . $langs->trans("Credit") . "" . $langs->trans("PaymentMode") . "" . $langs->trans("Debit") . "" . $langs->trans("Credit") . "
" . $date . "" . $ref . ""; print $reflabel; print "" . $val["type_payment"] . "" . ($mt >= 0 ? price($mt) : '') . "" . ($mt < 0 ? price(- $mt) : '') . "" . $val["type_payment"] . "" . ($mt >= 0 ? price($mt) : '') . "" . ($mt < 0 ? price(- $mt) : '') . "
" . $date . "" . $ref . "" . $reflabel . "" . $val["type_payment"] . "" . ($mt < 0 ? price(- $mt) : '') . "" . ($mt >= 0 ? price($mt) : '') . "" . $val["type_payment"] . "" . ($mt < 0 ? price(- $mt) : '') . "" . ($mt >= 0 ? price($mt) : '') . "
" . $date . "" . $ref . "" . $reflabel . "" . $val["type_payment"] . "" . ($mt < 0 ? price(- $mt) : '') . "" . ($mt >= 0 ? price($mt) : '') . "" . $val["type_payment"] . "" . ($mt < 0 ? price(- $mt) : '') . "" . ($mt >= 0 ? price($mt) : '') . "
"; print ""; - print ""; print ""; print ""; print ""; print ""; print ""; - print ""; - print ""; + print ""; + print ""; print "\n"; $r = ''; @@ -578,7 +577,7 @@ if (empty($action) || $action == 'view') { if ($mt) { print ''; - print ""; + print ""; print ""; print ""; $userstatic->id = $tabuser[$key]['id']; @@ -598,8 +597,8 @@ if (empty($action) || $action == 'view') { $userstatic->id = $tabuser[$key]['id']; $userstatic->name = $tabuser[$key]['name']; print ""; - print '"; - print '"; + print '"; + print '"; print ""; } } @@ -607,7 +606,7 @@ if (empty($action) || $action == 'view') { // Third party foreach ($tabttc[$key] as $k => $mt) { print ''; - print ""; + print ""; print ""; print ""; $userstatic->id = $tabuser[$key]['id']; @@ -631,8 +630,8 @@ if (empty($action) || $action == 'view') { else print $accountoshow; print ''; print ""; - print '"; - print '"; + print '"; + print '"; print ""; } @@ -646,7 +645,7 @@ if (empty($action) || $action == 'view') { foreach ($arrayofvat[$key] as $k => $mt) { if ($mt) { print ''; - print ""; + print ""; print ""; print ""; // Account @@ -663,8 +662,8 @@ if (empty($action) || $action == 'view') { print ''; print ""; - print '"; - print '"; + print '"; + print '"; print ""; } } diff --git a/htdocs/accountancy/journal/purchasesjournal.php b/htdocs/accountancy/journal/purchasesjournal.php index 12e76882adc..8dbcc0989ce 100644 --- a/htdocs/accountancy/journal/purchasesjournal.php +++ b/htdocs/accountancy/journal/purchasesjournal.php @@ -783,14 +783,13 @@ if (empty($action) || $action == 'view') { print '
'; print "
" . $langs->trans("Date") . "" . $langs->trans("Piece") . ' (' . $langs->trans("ExpenseReportRef") . ")" . $langs->trans("AccountAccounting") . "" . $langs->trans("SubledgerAccount") . "" . $langs->trans("LabelOperation") . "" . $langs->trans("Debit") . "" . $langs->trans("Credit") . "" . $langs->trans("Debit") . "" . $langs->trans("Credit") . "
" . $date . "" . $expensereportstatic->getNomUrl(1) . "" . $userstatic->getNomUrl(0, 'user', 16) . ' - ' . $accountingaccount->label . "' . ($mt >= 0 ? price($mt) : '') . "' . ($mt < 0 ? price(- $mt) : '') . "' . ($mt >= 0 ? price($mt) : '') . "' . ($mt < 0 ? price(- $mt) : '') . "
" . $date . "" . $expensereportstatic->getNomUrl(1) . "" . $userstatic->getNomUrl(0, 'user', 16) . ' - ' . $langs->trans("SubledgerAccount") . "' . ($mt < 0 ? - price(- $mt) : '') . "' . ($mt >= 0 ? price($mt) : '') . "' . ($mt < 0 ? - price(- $mt) : '') . "' . ($mt >= 0 ? price($mt) : '') . "
" . $date . "" . $expensereportstatic->getNomUrl(1) . "" . $userstatic->getNomUrl(0, 'user', 16) . ' - ' . $langs->trans("VAT"). ' '.join(', ', $def_tva[$key][$k]).' %'.($numtax?' - Localtax '.$numtax:''); print "' . ($mt >= 0 ? price($mt) : '') . "' . ($mt < 0 ? price(- $mt) : '') . "' . ($mt >= 0 ? price($mt) : '') . "' . ($mt < 0 ? price(- $mt) : '') . "
"; print ""; - print ""; print ""; print ""; print ""; print ""; print ""; - print ""; - print ""; + print ""; + print ""; print "\n"; $r = ''; @@ -830,7 +829,7 @@ if (empty($action) || $action == 'view') { if ($replacedinvoice == 1) { print ''; - print ""; + print ""; print ""; print ""; // Account @@ -851,7 +850,7 @@ if (empty($action) || $action == 'view') { if ($errorforinvoice[$key] == 'somelinesarenotbound') { print ''; - print ""; + print ""; print ""; print ""; // Account @@ -872,7 +871,7 @@ if (empty($action) || $action == 'view') { foreach ($tabttc[$key] as $k => $mt) { //if ($mt) { print ''; - print ""; + print ""; print ""; print ""; // Account @@ -894,8 +893,8 @@ if (empty($action) || $action == 'view') { else print $accountoshow; print ''; print ""; - print '"; - print '"; + print '"; + print '"; print ""; //} } @@ -907,7 +906,7 @@ if (empty($action) || $action == 'view') { //if ($mt) { print ''; - print ""; + print ""; print ""; print ""; // Account @@ -925,8 +924,8 @@ if (empty($action) || $action == 'view') { $companystatic->id = $tabcompany[$key]['id']; $companystatic->name = $tabcompany[$key]['name']; print ""; - print '"; - print '"; + print '"; + print '"; print ""; //} } @@ -941,7 +940,7 @@ if (empty($action) || $action == 'view') { foreach ($arrayofvat[$key] as $k => $mt) { if ($mt) { print ''; - print ""; + print ""; print ""; print ""; // Account @@ -959,8 +958,8 @@ if (empty($action) || $action == 'view') { print ""; - print '"; - print '"; + print '"; + print '"; print ""; } } @@ -972,7 +971,7 @@ if (empty($action) || $action == 'view') { foreach ($tabother[$key] as $k => $mt) { if ($mt) { print ''; - print ""; + print ""; print ""; print ""; // Account @@ -988,8 +987,8 @@ if (empty($action) || $action == 'view') { print "'; print ""; - print '"; - print '"; + print '"; + print '"; print ""; } } diff --git a/htdocs/accountancy/journal/sellsjournal.php b/htdocs/accountancy/journal/sellsjournal.php index 08df2e71b32..da1f14dade5 100644 --- a/htdocs/accountancy/journal/sellsjournal.php +++ b/htdocs/accountancy/journal/sellsjournal.php @@ -720,14 +720,13 @@ if (empty($action) || $action == 'view') { print '
'; print "
" . $langs->trans("Date") . "" . $langs->trans("Piece") . ' (' . $langs->trans("InvoiceRef") . ")" . $langs->trans("AccountAccounting") . "" . $langs->trans("SubledgerAccount") . "" . $langs->trans("LabelOperation") . "" . $langs->trans("Debit") . "" . $langs->trans("Credit") . "" . $langs->trans("Debit") . "" . $langs->trans("Credit") . "
" . $date . "" . $invoicestatic->getNomUrl(1) . "
" . $date . "" . $invoicestatic->getNomUrl(1) . "
" . $date . "" . $invoicestatic->getNomUrl(1) . "" . $companystatic->getNomUrl(0, 'supplier', 16) . ' - ' . $invoicestatic->ref_supplier . ' - ' . $langs->trans("SubledgerAccount") . "'. ($mt < 0 ? price(- $mt) : '') . "' . ($mt >= 0 ? price($mt) : '') . "'. ($mt < 0 ? price(- $mt) : '') . "' . ($mt >= 0 ? price($mt) : '') . "
" . $date . "" . $invoicestatic->getNomUrl(1) . "" . $companystatic->getNomUrl(0, 'supplier', 16) . ' - ' . $invoicestatic->ref_supplier . ' - ' . $accountingaccount->label . "' . ($mt >= 0 ? price($mt) : '') . "' . ($mt < 0 ? price(- $mt) : '') . "' . ($mt >= 0 ? price($mt) : '') . "' . ($mt < 0 ? price(- $mt) : '') . "
" . $date . "" . $invoicestatic->getNomUrl(1) . ""; print $companystatic->getNomUrl(0, 'supplier', 16) . ' - ' . $invoicestatic->ref_supplier . ' - ' . $langs->trans("VAT"). ' '.join(', ', $def_tva[$key][$k]).' %'.($numtax?' - Localtax '.$numtax:''); print "' . ($mt >= 0 ? price($mt) : '') . "' . ($mt < 0 ? price(- $mt) : '') . "' . ($mt >= 0 ? price($mt) : '') . "' . ($mt < 0 ? price(- $mt) : '') . "
" . $date . "" . $invoicestatic->getNomUrl(1) . ""; print '" . $companystatic->getNomUrl(0, 'supplier', 16) . ' - ' . $invoicestatic->ref_supplier . ' - ' . $langs->trans("VAT") . " NPR (counterpart)' . ($mt < 0 ? price(- $mt) : '') . "' . ($mt >= 0 ? price($mt) : '') . "' . ($mt < 0 ? price(- $mt) : '') . "' . ($mt >= 0 ? price($mt) : '') . "
"; print ""; - print ""; print ""; print ""; print ""; print ""; print ""; - print ""; - print ""; + print ""; + print ""; print "\n"; $r = ''; @@ -765,7 +764,7 @@ if (empty($action) || $action == 'view') { if ($replacedinvoice == 1) { print ''; - print ""; + print ""; print ""; print ""; // Account @@ -786,7 +785,7 @@ if (empty($action) || $action == 'view') { if ($errorforinvoice[$key] == 'somelinesarenotbound') { print ''; - print ""; + print ""; print ""; print ""; // Account @@ -808,7 +807,7 @@ if (empty($action) || $action == 'view') { { //if ($mt) { print ''; - print ""; + print ""; print ""; print ""; // Account @@ -830,8 +829,8 @@ if (empty($action) || $action == 'view') { else print $accountoshow; print ''; print ""; - print '"; - print '"; + print '"; + print '"; print ""; //} } @@ -844,7 +843,7 @@ if (empty($action) || $action == 'view') { //if ($mt) { print ''; - print ""; + print ""; print ""; print ""; // Account @@ -862,8 +861,8 @@ if (empty($action) || $action == 'view') { $companystatic->id = $tabcompany[$key]['id']; $companystatic->name = $tabcompany[$key]['name']; print ""; - print ""; - print ""; + print ""; + print ""; print ""; //} } @@ -879,7 +878,7 @@ if (empty($action) || $action == 'view') { foreach ($arrayofvat[$key] as $k => $mt) { if ($mt) { print ''; - print ""; + print ""; print ""; print ""; // Account @@ -896,8 +895,8 @@ if (empty($action) || $action == 'view') { print ''; print ""; - print '"; - print '"; + print '"; + print '"; print ""; } } diff --git a/htdocs/compta/paiement/cheque/card.php b/htdocs/compta/paiement/cheque/card.php index 21480a8496d..9372ec84cfe 100644 --- a/htdocs/compta/paiement/cheque/card.php +++ b/htdocs/compta/paiement/cheque/card.php @@ -472,11 +472,11 @@ if ($action == 'new') print '
" . $langs->trans("Date") . "" . $langs->trans("Piece") . ' (' . $langs->trans("InvoiceRef") . ")" . $langs->trans("AccountAccounting") . "" . $langs->trans("SubledgerAccount") . "" . $langs->trans("LabelOperation") . "" . $langs->trans("Debit") . "" . $langs->trans("Credit") . "" . $langs->trans("Debit") . "" . $langs->trans("Credit") . "
" . $date . "" . $invoicestatic->getNomUrl(1) . "
" . $date . "" . $invoicestatic->getNomUrl(1) . "
" . $date . "" . $invoicestatic->getNomUrl(1) . "" . $companystatic->getNomUrl(0, 'customer', 16) . ' - ' . $invoicestatic->ref . ' - ' . $langs->trans("SubledgerAccount") . "' . ($mt >= 0 ? price($mt) : '') . "' . ($mt < 0 ? price(- $mt) : '') . "' . ($mt >= 0 ? price($mt) : '') . "' . ($mt < 0 ? price(- $mt) : '') . "
" . $date . "" . $invoicestatic->getNomUrl(1) . "" . $companystatic->getNomUrl(0, 'customer', 16) . ' - ' . $invoicestatic->ref . ' - ' . $accountingaccount->label . "" . ($mt < 0 ? price(- $mt) : '') . "" . ($mt >= 0 ? price($mt) : '') . "" . ($mt < 0 ? price(- $mt) : '') . "" . ($mt >= 0 ? price($mt) : '') . "
" . $date . "" . $invoicestatic->getNomUrl(1) . "" . $companystatic->getNomUrl(0, 'customer', 16) . ' - ' . $invoicestatic->ref . ' - ' . $langs->trans("VAT"). ' '.join(', ', $def_tva[$key][$k]).' %'.($numtax?' - Localtax '.$numtax:''); print "' . ($mt < 0 ? price(- $mt) : '') . "' . ($mt >= 0 ? price($mt) : '') . "' . ($mt < 0 ? price(- $mt) : '') . "' . ($mt >= 0 ? price($mt) : '') . "
'."\n"; print ''; - print ''."\n"; - print '\n"; - print '\n"; - print '\n"; - print '\n"; + print ''."\n"; + print '\n"; + print '\n"; + print '\n"; + print '\n"; print '\n"; print '\n"; print ''; } +//Birthday +if (! empty($arrayfields['d.birth']['checked'])) +{ + print ''; +} // Date modification if (! empty($arrayfields['d.tms']['checked'])) { @@ -646,6 +653,7 @@ $parameters=array('arrayfields'=>$arrayfields,'param'=>$param,'sortfield'=>$sort $reshook=$hookmanager->executeHooks('printFieldListTitle', $parameters); // Note that $action and $object may have been modified by hook print $hookmanager->resPrint; if (! empty($arrayfields['d.datec']['checked'])) print_liste_field_titre($arrayfields['d.datec']['label'], $_SERVER["PHP_SELF"], "d.datec", "", $param, 'align="center" class="nowrap"', $sortfield, $sortorder); +if (! empty($arrayfields['d.birth']['checked'])) print_liste_field_titre($arrayfields['d.birth']['label'], $_SERVER["PHP_SELF"], "d.birth", "", $param, 'align="center" class="nowrap"', $sortfield, $sortorder); if (! empty($arrayfields['d.tms']['checked'])) print_liste_field_titre($arrayfields['d.tms']['label'], $_SERVER["PHP_SELF"], "d.tms", "", $param, 'align="center" class="nowrap"', $sortfield, $sortorder); if (! empty($arrayfields['d.statut']['checked'])) print_liste_field_titre($arrayfields['d.statut']['label'], $_SERVER["PHP_SELF"], "d.statut", "", $param, 'class="right"', $sortfield, $sortorder); print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', '', 'align="center"', $sortfield, $sortorder, 'maxwidthsearch '); @@ -865,6 +873,14 @@ while ($i < min($num, $limit)) print ''; if (! $i) $totalarray['nbfield']++; } + // Birth + if (! empty($arrayfields['d.birth']['checked'])) + { + print ''; + if (! $i) $totalarray['nbfield']++; + } // Date modification if (! empty($arrayfields['d.tms']['checked'])) { From 0ce2c2aab54bdcbce9582d34c4033f8d41ceb3b0 Mon Sep 17 00:00:00 2001 From: Maxime Kohlhaas Date: Mon, 10 Jun 2019 10:11:26 +0200 Subject: [PATCH 263/365] Fix missing massaction hook params --- htdocs/core/actions_massactions.inc.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/htdocs/core/actions_massactions.inc.php b/htdocs/core/actions_massactions.inc.php index 9be0e0a4b77..71c3f98420a 100644 --- a/htdocs/core/actions_massactions.inc.php +++ b/htdocs/core/actions_massactions.inc.php @@ -1269,9 +1269,10 @@ if (! $error && $massaction == 'generate_doc' && $permtoread) $parameters['toselect']=$toselect; $parameters['uploaddir']=$uploaddir; +$parameters['massaction']=$massaction; +$parameters['diroutputmassaction']=$diroutputmassaction; $reshook=$hookmanager->executeHooks('doMassActions',$parameters, $object, $action); // Note that $action and $object may have been modified by some hooks if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); - From a72e36cd013bb95c23a0e0d422621713a51a39db Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 10 Jun 2019 20:05:49 +0200 Subject: [PATCH 264/365] Fix show version removed from left menu --- htdocs/main.inc.php | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/htdocs/main.inc.php b/htdocs/main.inc.php index 319ee2dc363..d283abd7d15 100644 --- a/htdocs/main.inc.php +++ b/htdocs/main.inc.php @@ -1695,12 +1695,8 @@ function top_menu($head, $title = '', $target = '', $disablejs = 0, $disablehead if ($mode == 'wiki') $text.=sprintf($helpbaseurl, urlencode(html_entity_decode($helppage))); else $text.=sprintf($helpbaseurl, $helppage); $text.='">'; - //$text.=img_picto('', 'helpdoc_top').' '; $text.=''; - //$toprightmenu.=$langs->trans($mode == 'wiki' ? 'OnlineHelp': 'Help'); - //if ($mode == 'wiki') $text.=' ('.dol_trunc(strtr($helppage,'_',' '),8).')'; $text.=''; - //$toprightmenu.=''."\n"; $toprightmenu.=@Form::textwithtooltip('', $title, 2, 1, $text, 'login_block_elem', 2); } } @@ -1815,6 +1811,19 @@ function top_menu_user(User $user, Translate $langs) $profilName = ' '.$profilName; } + // Define version to show + $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; + $btnUser = '
'.$langs->trans("DateChequeReceived").''.$langs->trans("ChequeNumber")."'.$langs->trans("CheckTransmitter")."'.$langs->trans("Bank")."'.$langs->trans("Amount")."'.$langs->trans("DateChequeReceived").''.$langs->trans("ChequeNumber")."'.$langs->trans("CheckTransmitter")."'.$langs->trans("Bank")."'.$langs->trans("Amount")."'.$langs->trans("Payment")."'.$langs->trans("LineRecord")."'.$langs->trans("Select")."
"; From cab91e75c6a2fd77682fb08c03d45dc2d3f7002d Mon Sep 17 00:00:00 2001 From: florian HENRY Date: Mon, 10 Jun 2019 10:10:16 +0200 Subject: [PATCH 262/365] add missing column adherent list --- htdocs/adherents/list.php | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/htdocs/adherents/list.php b/htdocs/adherents/list.php index eaeb1fe305c..02f3d319aa3 100644 --- a/htdocs/adherents/list.php +++ b/htdocs/adherents/list.php @@ -130,6 +130,7 @@ $arrayfields=array( 'd.note_private'=>array('label'=>$langs->trans("NotePrivate"), 'checked'=>0),*/ 'd.datefin'=>array('label'=>$langs->trans("EndSubscription"), 'checked'=>1, 'position'=>500), 'd.datec'=>array('label'=>$langs->trans("DateCreation"), 'checked'=>0, 'position'=>500), + 'd.birth'=>array('label'=>$langs->trans("Birthday"), 'checked'=>0, 'position'=>500), 'd.tms'=>array('label'=>$langs->trans("DateModificationShort"), 'checked'=>0, 'position'=>500), 'd.statut'=>array('label'=>$langs->trans("Status"), 'checked'=>1, 'position'=>1000) ); @@ -591,6 +592,12 @@ if (! empty($arrayfields['d.datec']['checked'])) print '
'; print ''; + print ''; + print dol_print_date($db->jdate($obj->birth), 'day', 'tzuser'); + print '' . $objp->country .''; + $labelcountry=($objp->country_code && ($langs->trans("Country".$objp->country_code)!="Country".$objp->country_code))?$langs->trans("Country".$objp->country_code):$objp->country_label; + print $labelcountry; + print '' . $objp->tva_intra . ''; + print ''; print $formaccounting->select_account($objp->aarowid_suggest, 'codeventil'.$objp->rowid, 1, array(), 0, 0, 'codeventil maxwidth300 maxwidthonsmartphone', 'cachewithshowemptyone'); print ''; + print ''; print length_accountg(html_entity_decode($objp->code_buy)); print '' . $objp->country .''; + $labelcountry=($objp->country_code && ($langs->trans("Country".$objp->country_code)!="Country".$objp->country_code))?$langs->trans("Country".$objp->country_code):$objp->country_label; + print $labelcountry; + print '' . $objp->tva_intra . ''; + print ''; print $formaccounting->select_account($objp->aarowid_suggest, 'codeventil'.$objp->rowid, 1, array(), 0, 0, 'codeventil maxwidth300 maxwidthonsmartphone', 'cachewithshowemptyone'); print '
'.$langs->trans("Day").''.$langs->trans("Value").'
'; - print '
'; + print '
'; - print '
'; + print '
'; - print '
'; + print '
'; - print '
'; + print '
'; - //if (empty($country_selected)) $country_selected=substr($langs->defaultlang,-2); // By default, country of localization - print $form->select_country($conf->global->MAIN_INFO_ACCOUNTANT_COUNTRY, 'country_id'); - if ($user->admin) print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"), 1); - print '
'; + print '
'; - $formcompany->select_departement($conf->global->MAIN_INFO_ACCOUNTANT_STATE, $conf->global->MAIN_INFO_ACCOUNTANT_COUNTRY, 'state_id'); - print '
'; + print '
'; - print '
'; + print '
'; - print '
'; - print '
'; - print '
'; - print '
'; - print '

'; - print '
'; print ''; print ''; - print ''; - - - print ''; - - - print ''; - - - print ''; - - print ''; - - print ''; - - print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; print '
'.$langs->trans("Day").''.$langs->trans("Value").'
'.$langs->trans("Monday").'' . nl2br(empty($conf->global->MAIN_INFO_ACCOUNTANT_ADDRESS)?'':$conf->global->MAIN_INFO_ACCOUNTANT_ADDRESS) . '
'.$langs->trans("Tuesday").'' . (empty($conf->global->MAIN_INFO_ACCOUNTANT_ZIP)?'':$conf->global->MAIN_INFO_ACCOUNTANT_ZIP) . '
'.$langs->trans("Wednesday").'' . (empty($conf->global->MAIN_INFO_ACCOUNTANT_TOWN)?'':$conf->global->MAIN_INFO_ACCOUNTANT_TOWN) . '
'.$langs->trans("Thursday").''; - if (! empty($conf->global->MAIN_INFO_ACCOUNTANT_COUNTRY)) - { - $code = getCountry($conf->global->MAIN_INFO_ACCOUNTANT_COUNTRY, 2); - $img=picto_from_langcode($code); - print $img?$img.' ':''; - print getCountry($conf->global->MAIN_INFO_ACCOUNTANT_COUNTRY, 1); - } - print '
'.$langs->trans("Friday").'' . dol_print_phone($conf->global->MAIN_INFO_ACCOUNTANT_PHONE, $mysoc->country_code) . '
'.$langs->trans("Saturday").'' . dol_print_phone($conf->global->MAIN_INFO_ACCOUNTANT_FAX, $mysoc->country_code) . '
'.$langs->trans("Sunday").'' . dol_print_email($conf->global->MAIN_INFO_ACCOUNTANT_MAIL, 0, 0, 0, 80) . '
'.$langs->trans("Monday").'' . (empty($conf->global->MAIN_INFO_OPENINGHOURS_MONDAY)?'':$conf->global->MAIN_INFO_OPENINGHOURS_MONDAY) . '
'.$langs->trans("Tuesday").'' . (empty($conf->global->MAIN_INFO_OPENINGHOURS_TUESDAY)?'':$conf->global->MAIN_INFO_OPENINGHOURS_TUESDAY) . '
'.$langs->trans("Wednesday").'' . (empty($conf->global->MAIN_INFO_OPENINGHOURS_WEDNESDAY)?'':$conf->global->MAIN_INFO_OPENINGHOURS_WEDNESDAY) . '
'.$langs->trans("Thursday").'' . (empty($conf->global->MAIN_INFO_OPENINGHOURS_THURSDAY)?'':$conf->global->MAIN_INFO_OPENINGHOURS_THURSDAY) . '
'.$langs->trans("Friday").'' . (empty($conf->global->MAIN_INFO_OPENINGHOURS_FRIDAY)?'':$conf->global->MAIN_INFO_OPENINGHOURS_FRIDAY) . '
'.$langs->trans("Saturday").'' . (empty($conf->global->MAIN_INFO_OPENINGHOURS_SATURDAY)?'':$conf->global->MAIN_INFO_OPENINGHOURS_SATURDAY) . '
'.$langs->trans("Sunday").'' . (empty($conf->global->MAIN_INFO_OPENINGHOURS_SUNDAY)?'':$conf->global->MAIN_INFO_OPENINGHOURS_SUNDAY) . '
'; print "
"; From eb4dc36e055b4f73f390776613135b567e725017 Mon Sep 17 00:00:00 2001 From: Alexandre SPANGARO Date: Wed, 12 Jun 2019 04:56:16 +0200 Subject: [PATCH 270/365] Responsive on invoice index --- htdocs/compta/index.php | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/htdocs/compta/index.php b/htdocs/compta/index.php index c872fae3def..cc077ed55e1 100644 --- a/htdocs/compta/index.php +++ b/htdocs/compta/index.php @@ -351,6 +351,7 @@ if (! empty($conf->facture->enabled) && $user->rights->facture->lire) $num = $db->num_rows($resql); $i = 0; + print '
'; print ''; print ''; if (! empty($conf->global->MAIN_SHOW_HT_ON_SUMMARY)) print ''; @@ -428,7 +429,7 @@ if (! empty($conf->facture->enabled) && $user->rights->facture->lire) if (! empty($conf->global->MAIN_SHOW_HT_ON_SUMMARY)) $colspan++; print ''; } - print '
'.$langs->trans("BoxTitleLastCustomerBills", $max).''.$langs->trans("AmountHT").'
'.$langs->trans("NoInvoice").'

'; + print '

'; $db->free($resql); } else @@ -472,6 +473,7 @@ if (! empty($conf->fournisseur->enabled) && $user->rights->fournisseur->facture- { $num = $db->num_rows($resql); + print '
'; print ''; print ''; if (! empty($conf->global->MAIN_SHOW_HT_ON_SUMMARY)) print ''; @@ -524,7 +526,7 @@ if (! empty($conf->fournisseur->enabled) && $user->rights->fournisseur->facture- if (! empty($conf->global->MAIN_SHOW_HT_ON_SUMMARY)) $colspan++; print ''; } - print '
'.$langs->trans("BoxTitleLastSupplierBills", $max).''.$langs->trans("AmountHT").'
'.$langs->trans("NoInvoice").'

'; + print '

'; } else { @@ -561,6 +563,7 @@ if (! empty($conf->don->enabled) && $user->rights->societe->lire) $i = 0; + print '
'; print ''; print ''; print ''; @@ -600,7 +603,7 @@ if (! empty($conf->don->enabled) && $user->rights->societe->lire) { print ''; } - print '
'.$langs->trans("BoxTitleLastModifiedDonations", $max).'
'.$langs->trans("None").'

'; + print '

'; } else dol_print_error($db); } @@ -634,6 +637,7 @@ if (! empty($conf->tax->enabled) && $user->rights->tax->charges->lire) { $num = $db->num_rows($resql); + print '
'; print ''; print ''; print ''; @@ -676,7 +680,7 @@ if (! empty($conf->tax->enabled) && $user->rights->tax->charges->lire) { print ''; } - print "
'.$langs->trans("ContributionsToPay").($num?' '.$num.'':'').'
'.$langs->trans("None").'

"; + print "

"; $db->free($resql); } else @@ -726,6 +730,8 @@ if (! empty($conf->facture->enabled) && ! empty($conf->commande->enabled) && $us if ($num) { $i = 0; + + print '
'; print ''; print ""; print ''; @@ -795,7 +801,7 @@ if (! empty($conf->facture->enabled) && ! empty($conf->commande->enabled) && $us print ''; print ''; print ''; - print '
'.$langs->trans("OrdersDeliveredToBill").' '.$num.''.price($tot_tobill).' 

'; + print '

'; } $db->free($resql); } @@ -1053,6 +1059,7 @@ if (! empty($conf->fournisseur->enabled) && $user->rights->fournisseur->facture- $resql = 0; if ($resql) { + print '
'; print ''; print ''.$langs->trans("TasksToDo").''; print "\n"; @@ -1067,7 +1074,7 @@ if ($resql) $i++; } $db->free($resql); - print "

"; + print "

"; } From 420f3bbdabfa80206058a8a5c5c707ad58ba091b Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 12 Jun 2019 10:05:53 +0200 Subject: [PATCH 271/365] FIX #11316 --- htdocs/core/modules/modProjet.class.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/core/modules/modProjet.class.php b/htdocs/core/modules/modProjet.class.php index dcfef83f8e3..54cd897102e 100644 --- a/htdocs/core/modules/modProjet.class.php +++ b/htdocs/core/modules/modProjet.class.php @@ -247,8 +247,8 @@ class modProjet extends DolibarrModules $keyforselect='projet'; $keyforelement='project'; $keyforaliasextra='extra'; include DOL_DOCUMENT_ROOT.'/core/extrafieldsinexport.inc.php'; // Add fields for tasks - $this->export_fields_array[$r]=array_merge($this->export_fields_array[$r], array('pt.rowid'=>'RefTask','pt.label'=>'LabelTask','pt.dateo'=>"TaskDateStart",'pt.datee'=>"TaskDateEnd",'pt.duration_effective'=>"DurationEffective",'pt.planned_workload'=>"PlannedWorkload",'pt.progress'=>"Progress",'pt.description'=>"TaskDescription")); - $this->export_entities_array[$r]=array_merge($this->export_entities_array[$r], array('pt.rowid'=>'projecttask','pt.label'=>'projecttask','pt.dateo'=>"projecttask",'pt.datee'=>"projecttask",'pt.duration_effective'=>"projecttask",'pt.planned_workload'=>"projecttask",'pt.progress'=>"projecttask",'pt.description'=>"projecttask")); + $this->export_fields_array[$r]=array_merge($this->export_fields_array[$r], array('pt.rowid'=>'TaskId', 'pt.ref'=>'RefTask', 'pt.label'=>'LabelTask','pt.dateo'=>"TaskDateStart",'pt.datee'=>"TaskDateEnd",'pt.duration_effective'=>"DurationEffective",'pt.planned_workload'=>"PlannedWorkload",'pt.progress'=>"Progress",'pt.description'=>"TaskDescription")); + $this->export_entities_array[$r]=array_merge($this->export_entities_array[$r], array('pt.rowid'=>'projecttask', 'pt.ref'=>'projecttask', 'pt.label'=>'projecttask','pt.dateo'=>"projecttask",'pt.datee'=>"projecttask",'pt.duration_effective'=>"projecttask",'pt.planned_workload'=>"projecttask",'pt.progress'=>"projecttask",'pt.description'=>"projecttask")); // Add extra fields for task $keyforselect='projet_task'; $keyforelement='projecttask'; $keyforaliasextra='extra2'; include DOL_DOCUMENT_ROOT.'/core/extrafieldsinexport.inc.php'; From 25031e534dacd664bdbb69ba2da2001f266a2352 Mon Sep 17 00:00:00 2001 From: atm-greg Date: Wed, 12 Jun 2019 12:05:02 +0200 Subject: [PATCH 272/365] fix massaction presend --- htdocs/core/actions_massactions.inc.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/htdocs/core/actions_massactions.inc.php b/htdocs/core/actions_massactions.inc.php index 064acb0b1c6..bb8b03d9366 100644 --- a/htdocs/core/actions_massactions.inc.php +++ b/htdocs/core/actions_massactions.inc.php @@ -260,6 +260,11 @@ if (! $error && $massaction == 'confirm_presend') $filename=dol_sanitizeFileName($objectobj->ref).'.pdf'; $filedir=$uploaddir . '/' . dol_sanitizeFileName($objectobj->ref); $file = $filedir . '/' . $filename; + if ($object->element == 'invoice_supplier') + { + $fileparams = dol_most_recent_file($uploaddir . '/' . get_exdir($objectobj->id,2,0,0,$objectobj,$objectobj->element).$objectobj->ref, preg_quote($objectobj->ref,'/').'([^\-])+'); + $file = $fileparams['fullname']; + } $mime = dol_mimetype($file); if (dol_is_file($file)) From 9ba102b6b93239599626fe8c60cf0569ad12bcb5 Mon Sep 17 00:00:00 2001 From: atm-greg Date: Wed, 12 Jun 2019 12:08:16 +0200 Subject: [PATCH 273/365] bad object used --- htdocs/core/actions_massactions.inc.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/htdocs/core/actions_massactions.inc.php b/htdocs/core/actions_massactions.inc.php index bb8b03d9366..2d0750bbefe 100644 --- a/htdocs/core/actions_massactions.inc.php +++ b/htdocs/core/actions_massactions.inc.php @@ -260,11 +260,13 @@ if (! $error && $massaction == 'confirm_presend') $filename=dol_sanitizeFileName($objectobj->ref).'.pdf'; $filedir=$uploaddir . '/' . dol_sanitizeFileName($objectobj->ref); $file = $filedir . '/' . $filename; - if ($object->element == 'invoice_supplier') + + if ($objectobj->element == 'invoice_supplier') { $fileparams = dol_most_recent_file($uploaddir . '/' . get_exdir($objectobj->id,2,0,0,$objectobj,$objectobj->element).$objectobj->ref, preg_quote($objectobj->ref,'/').'([^\-])+'); $file = $fileparams['fullname']; } + $mime = dol_mimetype($file); if (dol_is_file($file)) From 91a4e8bc0a79d0a94cb32a8010fe2f2958ab1213 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 12 Jun 2019 12:09:56 +0200 Subject: [PATCH 274/365] Merge --- htdocs/core/modules/modProjet.class.php | 6 +++--- htdocs/langs/en_US/projects.lang | 5 +++-- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/htdocs/core/modules/modProjet.class.php b/htdocs/core/modules/modProjet.class.php index 5d2ed5126af..106517c638a 100644 --- a/htdocs/core/modules/modProjet.class.php +++ b/htdocs/core/modules/modProjet.class.php @@ -220,7 +220,7 @@ class modProjet extends DolibarrModules $this->export_TypeFields_array[$r]=array('s.rowid'=>"List:societe:nom::thirdparty",'s.nom'=>'Text','s.address'=>'Text','s.zip'=>'Text','s.town'=>'Text','s.fk_pays'=>'List:c_country:label', 's.phone'=>'Text','s.email'=>'Text','s.siren'=>'Text','s.siret'=>'Text','s.ape'=>'Text','s.idprof4'=>'Text','s.code_compta'=>'Text','s.code_compta_fournisseur'=>'Text', 'p.rowid'=>"List:projet:ref::project",'p.ref'=>"Text",'p.title'=>"Text",'p.datec'=>"Date",'p.dateo'=>"Date",'p.datee'=>"Date",'p.fk_statut'=>'Status','cls.code'=>"Text",'p.opp_percent'=>'Numeric','p.opp_amount'=>'Numeric','p.description'=>"Text",'p.entity'=>'Numeric', - 'pt.rowid'=>'Text','pt.label'=>'Text','pt.dateo'=>"Date",'pt.datee'=>"Date",'pt.duration_effective'=>"Duree",'pt.planned_workload'=>"Numeric",'pt.progress'=>"Numeric",'pt.description'=>"Text", + 'pt.rowid'=>'Numeric','pt.ref'=>'Text','pt.label'=>'Text','pt.dateo'=>"Date",'pt.datee'=>"Date",'pt.duration_effective'=>"Duree",'pt.planned_workload'=>"Numeric",'pt.progress'=>"Numeric",'pt.description'=>"Text", 'ptt.rowid'=>'Numeric','ptt.task_date'=>'Date','ptt.task_duration'=>"Duree",'ptt.fk_user'=>"List:user:CONCAT(lastname,' ',firstname)",'ptt.note'=>"Text"); $this->export_entities_array[$r]=array('s.rowid'=>"company",'s.nom'=>'company','s.address'=>'company','s.zip'=>'company','s.town'=>'company','s.fk_pays'=>'company', 's.phone'=>'company','s.email'=>'company','s.siren'=>'company','s.siret'=>'company','s.ape'=>'company','s.idprof4'=>'company','s.code_compta'=>'company','s.code_compta_fournisseur'=>'company'); @@ -247,8 +247,8 @@ class modProjet extends DolibarrModules $keyforselect='projet'; $keyforelement='project'; $keyforaliasextra='extra'; include DOL_DOCUMENT_ROOT.'/core/extrafieldsinexport.inc.php'; // Add fields for tasks - $this->export_fields_array[$r]=array_merge($this->export_fields_array[$r], array('pt.rowid'=>'TaskId', 'pt.ref'=>'RefTask', 'pt.label'=>'LabelTask','pt.dateo'=>"TaskDateStart",'pt.datee'=>"TaskDateEnd",'pt.duration_effective'=>"DurationEffective",'pt.planned_workload'=>"PlannedWorkload",'pt.progress'=>"Progress",'pt.description'=>"TaskDescription")); - $this->export_entities_array[$r]=array_merge($this->export_entities_array[$r], array('pt.rowid'=>'projecttask', 'pt.ref'=>'projecttask', 'pt.label'=>'projecttask','pt.dateo'=>"projecttask",'pt.datee'=>"projecttask",'pt.duration_effective'=>"projecttask",'pt.planned_workload'=>"projecttask",'pt.progress'=>"projecttask",'pt.description'=>"projecttask")); + $this->export_fields_array[$r]=array_merge($this->export_fields_array[$r], array('pt.rowid'=>'TaskId', 'pt.ref'=>'RefTask', 'pt.label'=>'LabelTask', 'pt.dateo'=>"TaskDateStart", 'pt.datee'=>"TaskDateEnd", 'pt.duration_effective'=>"DurationEffective", 'pt.planned_workload'=>"PlannedWorkload", 'pt.progress'=>"Progress", 'pt.description'=>"TaskDescription")); + $this->export_entities_array[$r]=array_merge($this->export_entities_array[$r], array('pt.rowid'=>'projecttask', 'pt.ref'=>'projecttask', 'pt.label'=>'projecttask', 'pt.dateo'=>"projecttask", 'pt.datee'=>"projecttask", 'pt.duration_effective'=>"projecttask", 'pt.planned_workload'=>"projecttask", 'pt.progress'=>"projecttask", 'pt.description'=>"projecttask")); // Add extra fields for task $keyforselect='projet_task'; $keyforelement='projecttask'; $keyforaliasextra='extra2'; include DOL_DOCUMENT_ROOT.'/core/extrafieldsinexport.inc.php'; diff --git a/htdocs/langs/en_US/projects.lang b/htdocs/langs/en_US/projects.lang index fbc43d6e990..ca9a1e2452f 100644 --- a/htdocs/langs/en_US/projects.lang +++ b/htdocs/langs/en_US/projects.lang @@ -45,8 +45,9 @@ TimeSpent=Time spent TimeSpentByYou=Time spent by you TimeSpentByUser=Time spent by user TimesSpent=Time spent -RefTask=Ref. task -LabelTask=Label task +TaskId=Task ID +RefTask=Task ref. +LabelTask=Task label TaskTimeSpent=Time spent on tasks TaskTimeUser=User TaskTimeNote=Note From 5554bd231f697c664b2221abaae92df4b842ae48 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 12 Jun 2019 12:11:06 +0200 Subject: [PATCH 275/365] Update openinghours.php --- htdocs/admin/openinghours.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/admin/openinghours.php b/htdocs/admin/openinghours.php index 435b99bc7f1..b68508f557a 100644 --- a/htdocs/admin/openinghours.php +++ b/htdocs/admin/openinghours.php @@ -17,7 +17,7 @@ /** * \file htdocs/admin/openinghours.php - * \ingroup Opening hours + * \ingroup core * \brief Setup page to configure opening hours */ From 47746fd17d77bb61c965130c325922daa30a01e3 Mon Sep 17 00:00:00 2001 From: atm-greg Date: Wed, 12 Jun 2019 12:30:49 +0200 Subject: [PATCH 276/365] fix template type --- htdocs/core/class/html.formmail.class.php | 1 + htdocs/fourn/facture/list.php | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/htdocs/core/class/html.formmail.class.php b/htdocs/core/class/html.formmail.class.php index e8693af943a..ac742f0dbb7 100644 --- a/htdocs/core/class/html.formmail.class.php +++ b/htdocs/core/class/html.formmail.class.php @@ -359,6 +359,7 @@ class FormMail extends Form if ($this->param['models'] != 'none') { $result = $this->fetchAllEMailTemplate($this->param["models"], $user, $outputlangs); + if ($result < 0) { setEventMessages($this->error, $this->errors, 'errors'); diff --git a/htdocs/fourn/facture/list.php b/htdocs/fourn/facture/list.php index 4b208a99af7..c14c037dc97 100644 --- a/htdocs/fourn/facture/list.php +++ b/htdocs/fourn/facture/list.php @@ -496,7 +496,7 @@ if ($resql) print_barre_liste($langs->trans("BillsSuppliers").($socid?' '.$soc->name:''), $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'title_accountancy', 0, $newcardbutton, '', $limit); $topicmail="SendBillRef"; - $modelmail="supplier_invoice_send"; + $modelmail="invoice_supplier_send"; $objecttmp=new FactureFournisseur($db); $trackid='sinv'.$object->id; include DOL_DOCUMENT_ROOT.'/core/tpl/massactions_pre.tpl.php'; From 0bf7512f288411d3e3e982c5522bab6606e920e8 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 12 Jun 2019 12:33:31 +0200 Subject: [PATCH 277/365] Update actions_massactions.inc.php --- htdocs/core/actions_massactions.inc.php | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/htdocs/core/actions_massactions.inc.php b/htdocs/core/actions_massactions.inc.php index 2d0750bbefe..34ba465ebff 100644 --- a/htdocs/core/actions_massactions.inc.php +++ b/htdocs/core/actions_massactions.inc.php @@ -257,10 +257,14 @@ if (! $error && $massaction == 'confirm_presend') { // TODO Use future field $objectobj->fullpathdoc to know where is stored default file // TODO If not defined, use $objectobj->modelpdf (or defaut invoice config) to know what is template to use to regenerate doc. - $filename=dol_sanitizeFileName($objectobj->ref).'.pdf'; - $filedir=$uploaddir . '/' . dol_sanitizeFileName($objectobj->ref); + $filename = dol_sanitizeFileName($objectobj->ref).'.pdf'; + $subdir = ''; + // TODO Set subdir to be compatible with multi levels dir trees + // $subdir = get_exdir($objectobj->id, 2, 0, 0, $objectobj, $objectobj->element) + $filedir = $uploaddir . '/' . $subdir . dol_sanitizeFileName($objectobj->ref); $file = $filedir . '/' . $filename; + // For supplier invoices, we use the file provided by supplier, not the one we generate if ($objectobj->element == 'invoice_supplier') { $fileparams = dol_most_recent_file($uploaddir . '/' . get_exdir($objectobj->id,2,0,0,$objectobj,$objectobj->element).$objectobj->ref, preg_quote($objectobj->ref,'/').'([^\-])+'); From 0f3db439fe459a16f9e9802854e8373796bd7878 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 12 Jun 2019 12:38:01 +0200 Subject: [PATCH 278/365] Update bankjournal.php --- htdocs/accountancy/journal/bankjournal.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/accountancy/journal/bankjournal.php b/htdocs/accountancy/journal/bankjournal.php index a286e4d8a66..f20d075c05f 100644 --- a/htdocs/accountancy/journal/bankjournal.php +++ b/htdocs/accountancy/journal/bankjournal.php @@ -993,8 +993,8 @@ if (empty($action) || $action == 'view') { print "" . $langs->trans("SubledgerAccount") . ""; print "" . $langs->trans("LabelOperation") . ""; print "" . $langs->trans("PaymentMode") . ""; - print "" . $langs->trans("Debit") . ""; - print "" . $langs->trans("Credit") . ""; + print "" . $langs->trans("Debit") . ""; + print "" . $langs->trans("Credit") . ""; print "\n"; $r = ''; From 1182c0d1f58da7311c0d3b4a0c85591055a8baf7 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 12 Jun 2019 12:46:44 +0200 Subject: [PATCH 279/365] Update list.php --- htdocs/accountancy/customer/list.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/accountancy/customer/list.php b/htdocs/accountancy/customer/list.php index b11c7c14cec..3b9a3f23564 100644 --- a/htdocs/accountancy/customer/list.php +++ b/htdocs/accountancy/customer/list.php @@ -407,7 +407,7 @@ if ($result) { print_liste_field_titre("ProductRef", $_SERVER["PHP_SELF"], "p.ref", "", $param, '', $sortfield, $sortorder); //print_liste_field_titre("ProductLabel", $_SERVER["PHP_SELF"], "p.label", "", $param, '', $sortfield, $sortorder); print_liste_field_titre("Description", $_SERVER["PHP_SELF"], "l.description", "", $param, '', $sortfield, $sortorder); - print_liste_field_titre("Amount", $_SERVER["PHP_SELF"], "l.total_ht", "", $param, '', $sortfield, $sortorder, 'right minwidth100 '); + print_liste_field_titre("Amount", $_SERVER["PHP_SELF"], "l.total_ht", "", $param, '', $sortfield, $sortorder, 'right maxwidth50 '); print_liste_field_titre("VATRate", $_SERVER["PHP_SELF"], "l.tva_tx", "", $param, '', $sortfield, $sortorder, 'right '); print_liste_field_titre("Country", $_SERVER["PHP_SELF"], "co.label", "", $param, '', $sortfield, $sortorder); print_liste_field_titre("VATIntra", $_SERVER["PHP_SELF"], "s.tva_intra", "", $param, '', $sortfield, $sortorder, 'center '); From 3aacd454371bdd0255c1c3ca4a23f4b16c43c142 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 12 Jun 2019 12:47:35 +0200 Subject: [PATCH 280/365] Update list.php --- htdocs/accountancy/expensereport/list.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/accountancy/expensereport/list.php b/htdocs/accountancy/expensereport/list.php index fc590ae140c..a317f7e50b2 100644 --- a/htdocs/accountancy/expensereport/list.php +++ b/htdocs/accountancy/expensereport/list.php @@ -331,7 +331,7 @@ if ($result) { print_liste_field_titre("Date", $_SERVER["PHP_SELF"], "erd.date, erd.rowid", "", $param, '', $sortfield, $sortorder, 'center '); print_liste_field_titre("TypeFees", $_SERVER["PHP_SELF"], "f.label", "", $param, '', $sortfield, $sortorder); print_liste_field_titre("Description", $_SERVER["PHP_SELF"], "erd.comments", "", $param, '', $sortfield, $sortorder); - print_liste_field_titre("Amount", $_SERVER["PHP_SELF"], "erd.total_ht", "", $param, '', $sortfield, $sortorder, 'right minwidth100 '); + print_liste_field_titre("Amount", $_SERVER["PHP_SELF"], "erd.total_ht", "", $param, '', $sortfield, $sortorder, 'right maxwidth50 '); print_liste_field_titre("VATRate", $_SERVER["PHP_SELF"], "erd.tva_tx", "", $param, '', $sortfield, $sortorder, 'right '); print_liste_field_titre("AccountAccountingSuggest", '', '', '', '', '', $sortfield, $sortorder, 'center '); print_liste_field_titre("IntoAccount", '', '', '', '', '', $sortfield, $sortorder, 'center '); From 402cbba4add00c60c9c3177b7ae171d96f2cbe87 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 12 Jun 2019 12:48:21 +0200 Subject: [PATCH 281/365] Update bankjournal.php --- htdocs/accountancy/journal/bankjournal.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/accountancy/journal/bankjournal.php b/htdocs/accountancy/journal/bankjournal.php index f20d075c05f..403e422f773 100644 --- a/htdocs/accountancy/journal/bankjournal.php +++ b/htdocs/accountancy/journal/bankjournal.php @@ -993,8 +993,8 @@ if (empty($action) || $action == 'view') { print "" . $langs->trans("SubledgerAccount") . ""; print "" . $langs->trans("LabelOperation") . ""; print "" . $langs->trans("PaymentMode") . ""; - print "" . $langs->trans("Debit") . ""; - print "" . $langs->trans("Credit") . ""; + print "" . $langs->trans("Debit") . ""; + print "" . $langs->trans("Credit") . ""; print "\n"; $r = ''; From f435f4bd6ab1ad4fd7c21b073bf1f2d3a5040e93 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 12 Jun 2019 12:49:44 +0200 Subject: [PATCH 282/365] Update bankjournal.php --- htdocs/accountancy/journal/bankjournal.php | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/htdocs/accountancy/journal/bankjournal.php b/htdocs/accountancy/journal/bankjournal.php index 403e422f773..70d54456c61 100644 --- a/htdocs/accountancy/journal/bankjournal.php +++ b/htdocs/accountancy/journal/bankjournal.php @@ -992,9 +992,9 @@ if (empty($action) || $action == 'view') { print "" . $langs->trans("AccountAccounting") . ""; print "" . $langs->trans("SubledgerAccount") . ""; print "" . $langs->trans("LabelOperation") . ""; - print "" . $langs->trans("PaymentMode") . ""; - print "" . $langs->trans("Debit") . ""; - print "" . $langs->trans("Credit") . ""; + print '' . $langs->trans("PaymentMode") . ""; + print '' . $langs->trans("Debit") . ""; + print '' . $langs->trans("Credit") . ""; print "\n"; $r = ''; @@ -1041,9 +1041,9 @@ if (empty($action) || $action == 'view') { print ""; print $reflabel; print ""; - print "" . $val["type_payment"] . ""; - print "" . ($mt >= 0 ? price($mt) : '') . ""; - print "" . ($mt < 0 ? price(- $mt) : '') . ""; + print '' . $val["type_payment"] . ""; + print '' . ($mt >= 0 ? price($mt) : '') . ""; + print '' . ($mt < 0 ? price(- $mt) : '') . ""; print ""; } } From a400183bf1f18fdbc5099a0352d57bec69300711 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 12 Jun 2019 12:52:51 +0200 Subject: [PATCH 283/365] Update bankjournal.php --- htdocs/accountancy/journal/bankjournal.php | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/htdocs/accountancy/journal/bankjournal.php b/htdocs/accountancy/journal/bankjournal.php index 70d54456c61..cce4c33e383 100644 --- a/htdocs/accountancy/journal/bankjournal.php +++ b/htdocs/accountancy/journal/bankjournal.php @@ -1122,9 +1122,9 @@ if (empty($action) || $action == 'view') { } print ""; print "" . $reflabel . ""; - print "" . $val["type_payment"] . ""; - print "" . ($mt < 0 ? price(- $mt) : '') . ""; - print "" . ($mt >= 0 ? price($mt) : '') . ""; + print '' . $val["type_payment"] . ""; + print '' . ($mt < 0 ? price(- $mt) : '') . ""; + print '' . ($mt >= 0 ? price($mt) : '') . ""; print ""; } } @@ -1158,9 +1158,9 @@ if (empty($action) || $action == 'view') { */ print ""; print "" . $reflabel . ""; - print "" . $val["type_payment"] . ""; - print "" . ($mt < 0 ? price(- $mt) : '') . ""; - print "" . ($mt >= 0 ? price($mt) : '') . ""; + print '' . $val["type_payment"] . ""; + print '' . ($mt < 0 ? price(- $mt) : '') . ""; + print '' . ($mt >= 0 ? price($mt) : '') . ""; print ""; } } From 42915d86ec0d3433b49769e306c0b777b936857f Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 12 Jun 2019 12:57:02 +0200 Subject: [PATCH 284/365] Update expensereportsjournal.php --- .../journal/expensereportsjournal.php | 21 ++++++++++--------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/htdocs/accountancy/journal/expensereportsjournal.php b/htdocs/accountancy/journal/expensereportsjournal.php index 9da814e2d8c..f02ea6c2212 100644 --- a/htdocs/accountancy/journal/expensereportsjournal.php +++ b/htdocs/accountancy/journal/expensereportsjournal.php @@ -554,8 +554,8 @@ if (empty($action) || $action == 'view') { print "" . $langs->trans("AccountAccounting") . ""; print "" . $langs->trans("SubledgerAccount") . ""; print "" . $langs->trans("LabelOperation") . ""; - print "" . $langs->trans("Debit") . ""; - print "" . $langs->trans("Credit") . ""; + print '' . $langs->trans("Debit") . ""; + print '' . $langs->trans("Credit") . ""; print "\n"; $r = ''; @@ -597,20 +597,21 @@ if (empty($action) || $action == 'view') { $userstatic->id = $tabuser[$key]['id']; $userstatic->name = $tabuser[$key]['name']; print "" . $userstatic->getNomUrl(0, 'user', 16) . ' - ' . $accountingaccount->label . ""; - print '' . ($mt >= 0 ? price($mt) : '') . ""; - print '' . ($mt < 0 ? price(- $mt) : '') . ""; + print '' . ($mt >= 0 ? price($mt) : '') . ""; + print '' . ($mt < 0 ? price(- $mt) : '') . ""; print ""; } } // Third party foreach ($tabttc[$key] as $k => $mt) { + $userstatic->id = $tabuser[$key]['id']; + $userstatic->name = $tabuser[$key]['name']; + print ''; print ""; print "" . $date . ""; print "" . $expensereportstatic->getNomUrl(1) . ""; - $userstatic->id = $tabuser[$key]['id']; - $userstatic->name = $tabuser[$key]['name']; // Account print ""; $accountoshow = length_accounta($conf->global->SALARIES_ACCOUNTING_ACCOUNT_PAYMENT); @@ -630,8 +631,8 @@ if (empty($action) || $action == 'view') { else print $accountoshow; print ''; print "" . $userstatic->getNomUrl(0, 'user', 16) . ' - ' . $langs->trans("SubledgerAccount") . ""; - print '' . ($mt < 0 ? - price(- $mt) : '') . ""; - print '' . ($mt >= 0 ? price($mt) : '') . ""; + print '' . ($mt < 0 ? - price(- $mt) : '') . ""; + print '' . ($mt >= 0 ? price($mt) : '') . ""; print ""; } @@ -662,8 +663,8 @@ if (empty($action) || $action == 'view') { print ''; print "" . $userstatic->getNomUrl(0, 'user', 16) . ' - ' . $langs->trans("VAT"). ' '.join(', ', $def_tva[$key][$k]).' %'.($numtax?' - Localtax '.$numtax:''); print ""; - print '' . ($mt >= 0 ? price($mt) : '') . ""; - print '' . ($mt < 0 ? price(- $mt) : '') . ""; + print '' . ($mt >= 0 ? price($mt) : '') . ""; + print '' . ($mt < 0 ? price(- $mt) : '') . ""; print ""; } } From eefd30fe1cda3f828b42bbc10c6b79301be61bf3 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 12 Jun 2019 13:01:04 +0200 Subject: [PATCH 285/365] Update purchasesjournal.php --- .../accountancy/journal/purchasesjournal.php | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/htdocs/accountancy/journal/purchasesjournal.php b/htdocs/accountancy/journal/purchasesjournal.php index 8dbcc0989ce..ee59481a419 100644 --- a/htdocs/accountancy/journal/purchasesjournal.php +++ b/htdocs/accountancy/journal/purchasesjournal.php @@ -788,8 +788,8 @@ if (empty($action) || $action == 'view') { print "" . $langs->trans("AccountAccounting") . ""; print "" . $langs->trans("SubledgerAccount") . ""; print "" . $langs->trans("LabelOperation") . ""; - print "" . $langs->trans("Debit") . ""; - print "" . $langs->trans("Credit") . ""; + print '' . $langs->trans("Debit") . ""; + print '' . $langs->trans("Credit") . ""; print "\n"; $r = ''; @@ -893,8 +893,8 @@ if (empty($action) || $action == 'view') { else print $accountoshow; print ''; print "" . $companystatic->getNomUrl(0, 'supplier', 16) . ' - ' . $invoicestatic->ref_supplier . ' - ' . $langs->trans("SubledgerAccount") . ""; - print ''. ($mt < 0 ? price(- $mt) : '') . ""; - print '' . ($mt >= 0 ? price($mt) : '') . ""; + print ''. ($mt < 0 ? price(- $mt) : '') . ""; + print '' . ($mt >= 0 ? price($mt) : '') . ""; print ""; //} } @@ -924,8 +924,8 @@ if (empty($action) || $action == 'view') { $companystatic->id = $tabcompany[$key]['id']; $companystatic->name = $tabcompany[$key]['name']; print "" . $companystatic->getNomUrl(0, 'supplier', 16) . ' - ' . $invoicestatic->ref_supplier . ' - ' . $accountingaccount->label . ""; - print '' . ($mt >= 0 ? price($mt) : '') . ""; - print '' . ($mt < 0 ? price(- $mt) : '') . ""; + print '' . ($mt >= 0 ? price($mt) : '') . ""; + print '' . ($mt < 0 ? price(- $mt) : '') . ""; print ""; //} } @@ -958,8 +958,8 @@ if (empty($action) || $action == 'view') { print ""; print $companystatic->getNomUrl(0, 'supplier', 16) . ' - ' . $invoicestatic->ref_supplier . ' - ' . $langs->trans("VAT"). ' '.join(', ', $def_tva[$key][$k]).' %'.($numtax?' - Localtax '.$numtax:''); print ""; - print '' . ($mt >= 0 ? price($mt) : '') . ""; - print '' . ($mt < 0 ? price(- $mt) : '') . ""; + print '' . ($mt >= 0 ? price($mt) : '') . ""; + print '' . ($mt < 0 ? price(- $mt) : '') . ""; print ""; } } @@ -987,8 +987,8 @@ if (empty($action) || $action == 'view') { print ""; print ''; print "" . $companystatic->getNomUrl(0, 'supplier', 16) . ' - ' . $invoicestatic->ref_supplier . ' - ' . $langs->trans("VAT") . " NPR (counterpart)"; - print '' . ($mt < 0 ? price(- $mt) : '') . ""; - print '' . ($mt >= 0 ? price($mt) : '') . ""; + print '' . ($mt < 0 ? price(- $mt) : '') . ""; + print '' . ($mt >= 0 ? price($mt) : '') . ""; print ""; } } From 1e87635e8ee034bb1974b89424d0ab17ada441ec Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 12 Jun 2019 13:02:59 +0200 Subject: [PATCH 286/365] Update sellsjournal.php --- htdocs/accountancy/journal/sellsjournal.php | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/htdocs/accountancy/journal/sellsjournal.php b/htdocs/accountancy/journal/sellsjournal.php index da1f14dade5..449f0a278eb 100644 --- a/htdocs/accountancy/journal/sellsjournal.php +++ b/htdocs/accountancy/journal/sellsjournal.php @@ -725,8 +725,8 @@ if (empty($action) || $action == 'view') { print "" . $langs->trans("AccountAccounting") . ""; print "" . $langs->trans("SubledgerAccount") . ""; print "" . $langs->trans("LabelOperation") . ""; - print "" . $langs->trans("Debit") . ""; - print "" . $langs->trans("Credit") . ""; + print '' . $langs->trans("Debit") . ""; + print '' . $langs->trans("Credit") . ""; print "\n"; $r = ''; @@ -829,8 +829,8 @@ if (empty($action) || $action == 'view') { else print $accountoshow; print ''; print "" . $companystatic->getNomUrl(0, 'customer', 16) . ' - ' . $invoicestatic->ref . ' - ' . $langs->trans("SubledgerAccount") . ""; - print '' . ($mt >= 0 ? price($mt) : '') . ""; - print '' . ($mt < 0 ? price(- $mt) : '') . ""; + print '' . ($mt >= 0 ? price($mt) : '') . ""; + print '' . ($mt < 0 ? price(- $mt) : '') . ""; print ""; //} } @@ -861,8 +861,8 @@ if (empty($action) || $action == 'view') { $companystatic->id = $tabcompany[$key]['id']; $companystatic->name = $tabcompany[$key]['name']; print "" . $companystatic->getNomUrl(0, 'customer', 16) . ' - ' . $invoicestatic->ref . ' - ' . $accountingaccount->label . ""; - print "" . ($mt < 0 ? price(- $mt) : '') . ""; - print "" . ($mt >= 0 ? price($mt) : '') . ""; + print '' . ($mt < 0 ? price(- $mt) : '') . ""; + print '' . ($mt >= 0 ? price($mt) : '') . ""; print ""; //} } @@ -895,8 +895,8 @@ if (empty($action) || $action == 'view') { print ''; print "" . $companystatic->getNomUrl(0, 'customer', 16) . ' - ' . $invoicestatic->ref . ' - ' . $langs->trans("VAT"). ' '.join(', ', $def_tva[$key][$k]).' %'.($numtax?' - Localtax '.$numtax:''); print ""; - print '' . ($mt < 0 ? price(- $mt) : '') . ""; - print '' . ($mt >= 0 ? price($mt) : '') . ""; + print '' . ($mt < 0 ? price(- $mt) : '') . ""; + print '' . ($mt >= 0 ? price($mt) : '') . ""; print ""; } } From 9fa6674e3f76794a9fdca44ddb0887cec96800d6 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 12 Jun 2019 13:03:54 +0200 Subject: [PATCH 287/365] Update list.php --- htdocs/accountancy/supplier/list.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/accountancy/supplier/list.php b/htdocs/accountancy/supplier/list.php index 1d53fba9aef..b7b74104f14 100644 --- a/htdocs/accountancy/supplier/list.php +++ b/htdocs/accountancy/supplier/list.php @@ -406,7 +406,7 @@ if ($result) { print_liste_field_titre("ProductRef", $_SERVER["PHP_SELF"], "p.ref", "", $param, '', $sortfield, $sortorder); //print_liste_field_titre("ProductLabel", $_SERVER["PHP_SELF"], "p.label", "", $param, '', $sortfield, $sortorder); print_liste_field_titre("Description", $_SERVER["PHP_SELF"], "l.description", "", $param, '', $sortfield, $sortorder); - print_liste_field_titre("Amount", $_SERVER["PHP_SELF"], "l.total_ht", "", $param, '', $sortfield, $sortorder, 'right minwidth100 '); + print_liste_field_titre("Amount", $_SERVER["PHP_SELF"], "l.total_ht", "", $param, '', $sortfield, $sortorder, 'right maxwidth50 '); print_liste_field_titre("VATRate", $_SERVER["PHP_SELF"], "l.tva_tx", "", $param, '', $sortfield, $sortorder, 'right '); print_liste_field_titre("Country", $_SERVER["PHP_SELF"], "co.label", "", $param, '', $sortfield, $sortorder); print_liste_field_titre("VATIntra", $_SERVER["PHP_SELF"], "s.tva_intra", "", $param, '', $sortfield, $sortorder); From aaed26b9b0d87bf162107909ff0f2eee5f9a5d6a Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 12 Jun 2019 13:04:28 +0200 Subject: [PATCH 288/365] Update main.lang --- htdocs/langs/en_US/main.lang | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/langs/en_US/main.lang b/htdocs/langs/en_US/main.lang index a89443b345f..400d7179b02 100644 --- a/htdocs/langs/en_US/main.lang +++ b/htdocs/langs/en_US/main.lang @@ -973,4 +973,4 @@ SeePrivateNote=See private note PaymentInformation=Payment information ValidFrom=Valid from ValidUntil=Valid until -NoRecordedUsers=No records users \ No newline at end of file +NoRecordedUsers=No users From 509ca489b22c9496d73185c9743ea96a48d84b38 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 12 Jun 2019 13:06:02 +0200 Subject: [PATCH 289/365] Update card.php --- htdocs/compta/paiement/cheque/card.php | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/htdocs/compta/paiement/cheque/card.php b/htdocs/compta/paiement/cheque/card.php index 9372ec84cfe..3107cf29742 100644 --- a/htdocs/compta/paiement/cheque/card.php +++ b/htdocs/compta/paiement/cheque/card.php @@ -472,14 +472,14 @@ if ($action == 'new') print ''."\n"; print ''; - print ''."\n"; - print '\n"; - print '\n"; - print '\n"; - print '\n"; - print '\n"; - print '\n"; - print ''."\n"; + print '\n"; + print '\n"; + print '\n"; + print '\n"; + print '\n"; + print '\n"; + print ''; print "\n"; From 9d958124958d7f700afceaae2bbdcb321ac5d6f3 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 12 Jun 2019 13:08:26 +0200 Subject: [PATCH 290/365] Update bankentries_list.php --- htdocs/compta/bank/bankentries_list.php | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/htdocs/compta/bank/bankentries_list.php b/htdocs/compta/bank/bankentries_list.php index be2d8335afa..e28ea5e9af1 100644 --- a/htdocs/compta/bank/bankentries_list.php +++ b/htdocs/compta/bank/bankentries_list.php @@ -935,18 +935,18 @@ if ($resql) print ''; if (! empty($arrayfields['b.rowid']['checked'])) print_liste_field_titre($arrayfields['b.rowid']['label'], $_SERVER['PHP_SELF'], 'b.rowid', '', $param, '', $sortfield, $sortorder); if (! empty($arrayfields['description']['checked'])) print_liste_field_titre($arrayfields['description']['label'], $_SERVER['PHP_SELF'], '', '', $param, '', $sortfield, $sortorder); - if (! empty($arrayfields['b.dateo']['checked'])) print_liste_field_titre($arrayfields['b.dateo']['label'], $_SERVER['PHP_SELF'], 'b.dateo', '', $param, 'align="center"', $sortfield, $sortorder); + if (! empty($arrayfields['b.dateo']['checked'])) print_liste_field_titre($arrayfields['b.dateo']['label'], $_SERVER['PHP_SELF'], 'b.dateo', '', $param, '', $sortfield, $sortorder, "center "); if (! empty($arrayfields['b.datev']['checked'])) print_liste_field_titre($arrayfields['b.datev']['label'], $_SERVER['PHP_SELF'], 'b.datev,b.dateo,b.rowid', '', $param, 'align="center"', $sortfield, $sortorder); if (! empty($arrayfields['type']['checked'])) print_liste_field_titre($arrayfields['type']['label'], $_SERVER['PHP_SELF'], '', '', $param, 'align="center"', $sortfield, $sortorder); - if (! empty($arrayfields['b.num_chq']['checked'])) print_liste_field_titre($arrayfields['b.num_chq']['label'], $_SERVER['PHP_SELF'], 'b.num_chq', '', $param, 'align="center"', $sortfield, $sortorder); + if (! empty($arrayfields['b.num_chq']['checked'])) print_liste_field_titre($arrayfields['b.num_chq']['label'], $_SERVER['PHP_SELF'], 'b.num_chq', '', $param, '', $sortfield, $sortorder, "center "); if (! empty($arrayfields['bu.label']['checked'])) print_liste_field_titre($arrayfields['bu.label']['label'], $_SERVER['PHP_SELF'], 'bu.label', '', $param, '', $sortfield, $sortorder); if (! empty($arrayfields['ba.ref']['checked'])) print_liste_field_titre($arrayfields['ba.ref']['label'], $_SERVER['PHP_SELF'], 'ba.ref', '', $param, '', $sortfield, $sortorder); - if (! empty($arrayfields['b.debit']['checked'])) print_liste_field_titre($arrayfields['b.debit']['label'], $_SERVER['PHP_SELF'], 'b.amount', '', $param, 'align="center" style="min-width: 100px"', $sortfield, $sortorder, "right "); - if (! empty($arrayfields['b.credit']['checked'])) print_liste_field_titre($arrayfields['b.credit']['label'], $_SERVER['PHP_SELF'], 'b.amount', '', $param, 'align="center" style="min-width: 100px"', $sortfield, $sortorder, "right "); - if (! empty($arrayfields['balancebefore']['checked'])) print_liste_field_titre($arrayfields['balancebefore']['label'], $_SERVER['PHP_SELF'], '', '', $param, 'class="right"', $sortfield, $sortorder); - if (! empty($arrayfields['balance']['checked'])) print_liste_field_titre($arrayfields['balance']['label'], $_SERVER['PHP_SELF'], '', '', $param, 'class="right"', $sortfield, $sortorder); - if (! empty($arrayfields['b.num_releve']['checked'])) print_liste_field_titre($arrayfields['b.num_releve']['label'], $_SERVER['PHP_SELF'], 'b.num_releve', '', $param, 'align="center"', $sortfield, $sortorder); - if (! empty($arrayfields['b.conciliated']['checked'])) print_liste_field_titre($arrayfields['b.conciliated']['label'], $_SERVER['PHP_SELF'], 'b.rappro', '', $param, 'align="center"', $sortfield, $sortorder); + if (! empty($arrayfields['b.debit']['checked'])) print_liste_field_titre($arrayfields['b.debit']['label'], $_SERVER['PHP_SELF'], 'b.amount', '', $param, '', $sortfield, $sortorder, "right "); + if (! empty($arrayfields['b.credit']['checked'])) print_liste_field_titre($arrayfields['b.credit']['label'], $_SERVER['PHP_SELF'], 'b.amount', '', $param, '', $sortfield, $sortorder, "right "); + if (! empty($arrayfields['balancebefore']['checked'])) print_liste_field_titre($arrayfields['balancebefore']['label'], $_SERVER['PHP_SELF'], '', '', $param, '', $sortfield, $sortorder, "right "); + if (! empty($arrayfields['balance']['checked'])) print_liste_field_titre($arrayfields['balance']['label'], $_SERVER['PHP_SELF'], '', '', $param, '', $sortfield, $sortorder, "right "); + if (! empty($arrayfields['b.num_releve']['checked'])) print_liste_field_titre($arrayfields['b.num_releve']['label'], $_SERVER['PHP_SELF'], 'b.num_releve', '', $param, '', $sortfield, $sortorder, "center "); + if (! empty($arrayfields['b.conciliated']['checked'])) print_liste_field_titre($arrayfields['b.conciliated']['label'], $_SERVER['PHP_SELF'], 'b.rappro', '', $param, '', $sortfield, $sortorder, "center "); // Extra fields include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_title.tpl.php'; // Hook fields From 475f59cc2ad8e180933183e6aa10ee74026ffeee Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 12 Jun 2019 13:10:17 +0200 Subject: [PATCH 291/365] Update annuel.php --- htdocs/compta/bank/annuel.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/compta/bank/annuel.php b/htdocs/compta/bank/annuel.php index 78705847bfc..c4352b3b97e 100644 --- a/htdocs/compta/bank/annuel.php +++ b/htdocs/compta/bank/annuel.php @@ -217,7 +217,7 @@ for ($mois = 1 ; $mois < 13 ; $mois++) } print ""; - print '"; for ($annee = $year_start ; $annee <= $year_end ; $annee++) { - print ''; + print ''; } print "\n"; From 44f383c8b976537de95d045dd802725671365bfa Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 12 Jun 2019 13:57:34 +0200 Subject: [PATCH 292/365] Fix data lost when creation in error --- htdocs/accountancy/bookkeeping/card.php | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/htdocs/accountancy/bookkeeping/card.php b/htdocs/accountancy/bookkeeping/card.php index d94ce0ec315..ca0476f3a3c 100644 --- a/htdocs/accountancy/bookkeeping/card.php +++ b/htdocs/accountancy/bookkeeping/card.php @@ -373,7 +373,7 @@ if ($action == 'create') print ''; print ''; - print ''; + print ''; print ''; /* @@ -615,23 +615,23 @@ if ($action == 'create') if ($action == 'update' && $line->id == $id) { print ''; print ''; - print ''; - print ''; - print ''; + print ''; + print ''; + print ''; print ''; print ''; print ''; - print ''; + print ''; print ''; print ''; print ''; From bf6f9dd7eae4d8904c13717c8bccef7166b2db53 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 12 Jun 2019 13:58:48 +0200 Subject: [PATCH 293/365] Fix phpcs --- htdocs/admin/multicurrency.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/admin/multicurrency.php b/htdocs/admin/multicurrency.php index 3b071f57fa8..206c251309e 100644 --- a/htdocs/admin/multicurrency.php +++ b/htdocs/admin/multicurrency.php @@ -46,7 +46,7 @@ $action = GETPOST('action', 'alpha'); */ -if (preg_match('/set_([a-z0-9_\-]+)/i',$action,$reg)) +if (preg_match('/set_([a-z0-9_\-]+)/i', $action, $reg)) { $code=$reg[1]; $value=GETPOST($code, 'alpha'); @@ -60,7 +60,7 @@ if (preg_match('/set_([a-z0-9_\-]+)/i',$action,$reg)) } } -if (preg_match('/del_([a-z0-9_\-]+)/i',$action,$reg)) +if (preg_match('/del_([a-z0-9_\-]+)/i', $action, $reg)) { $code=$reg[1]; if (dolibarr_del_const($db, $code, 0) > 0) From 47610d0323fb8e51220a9302b56f32069f482622 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 12 Jun 2019 15:42:48 +0200 Subject: [PATCH 294/365] Look and feel v10 --- htdocs/accountancy/customer/lines.php | 4 ++-- htdocs/accountancy/customer/list.php | 6 +++--- htdocs/accountancy/expensereport/lines.php | 4 ++-- htdocs/accountancy/expensereport/list.php | 4 ++-- htdocs/accountancy/supplier/lines.php | 4 ++-- htdocs/accountancy/supplier/list.php | 4 ++-- 6 files changed, 13 insertions(+), 13 deletions(-) diff --git a/htdocs/accountancy/customer/lines.php b/htdocs/accountancy/customer/lines.php index 83bceb04026..9848c4cf7c5 100644 --- a/htdocs/accountancy/customer/lines.php +++ b/htdocs/accountancy/customer/lines.php @@ -310,9 +310,9 @@ if ($result) { print ''; print ''; print ''; diff --git a/htdocs/accountancy/customer/list.php b/htdocs/accountancy/customer/list.php index 61c22eb2912..14eac87fdaa 100644 --- a/htdocs/accountancy/customer/list.php +++ b/htdocs/accountancy/customer/list.php @@ -377,9 +377,9 @@ if ($result) { print ''; print ''; print ''; @@ -410,7 +410,7 @@ if ($result) { print_liste_field_titre("Amount", $_SERVER["PHP_SELF"], "l.total_ht", "", $param, '', $sortfield, $sortorder, 'right '); print_liste_field_titre("VATRate", $_SERVER["PHP_SELF"], "l.tva_tx", "", $param, '', $sortfield, $sortorder, 'right '); print_liste_field_titre("Country", $_SERVER["PHP_SELF"], "co.label", "", $param, '', $sortfield, $sortorder); - print_liste_field_titre("VATIntra", $_SERVER["PHP_SELF"], "s.tva_intra", "", $param, '', $sortfield, $sortorder, 'center '); + print_liste_field_titre("VATIntra", $_SERVER["PHP_SELF"], "s.tva_intra", "", $param, '', $sortfield, $sortorder); print_liste_field_titre("AccountAccountingSuggest", '', '', '', '', '', '', '', 'center '); print_liste_field_titre("IntoAccount", '', '', '', '', '', '', '', 'center '); $checkpicto=''; diff --git a/htdocs/accountancy/expensereport/lines.php b/htdocs/accountancy/expensereport/lines.php index 734bbfb65d2..3e3a8fd623e 100644 --- a/htdocs/accountancy/expensereport/lines.php +++ b/htdocs/accountancy/expensereport/lines.php @@ -263,8 +263,8 @@ if ($result) { print ''; print ''; print ''; print ''; diff --git a/htdocs/accountancy/expensereport/list.php b/htdocs/accountancy/expensereport/list.php index 4c739a218b9..46d00268174 100644 --- a/htdocs/accountancy/expensereport/list.php +++ b/htdocs/accountancy/expensereport/list.php @@ -309,8 +309,8 @@ if ($result) { print ''; print ''; print ''; print ''; diff --git a/htdocs/accountancy/supplier/lines.php b/htdocs/accountancy/supplier/lines.php index 9b704e21eb3..f68bf107b47 100644 --- a/htdocs/accountancy/supplier/lines.php +++ b/htdocs/accountancy/supplier/lines.php @@ -314,8 +314,8 @@ if ($result) { print ''; print ''; print ''; print ''; diff --git a/htdocs/accountancy/supplier/list.php b/htdocs/accountancy/supplier/list.php index 47e3570bcbe..afd65cdc645 100644 --- a/htdocs/accountancy/supplier/list.php +++ b/htdocs/accountancy/supplier/list.php @@ -376,8 +376,8 @@ if ($result) { print ''; print ''; print ''; print ''; From e81663ec3495597815266713de87ad1d1e0ea025 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 12 Jun 2019 19:00:34 +0200 Subject: [PATCH 295/365] Fix cropping of image files for BOM module was ko --- htdocs/core/class/html.formfile.class.php | 4 ++-- htdocs/core/lib/security.lib.php | 15 ++++++++------- htdocs/core/photos_resize.php | 20 +++++++++++++++++++- htdocs/langs/en_US/mrp.lang | 2 ++ 4 files changed, 31 insertions(+), 10 deletions(-) diff --git a/htdocs/core/class/html.formfile.class.php b/htdocs/core/class/html.formfile.class.php index b729ad51fc5..8f0aee14424 100644 --- a/htdocs/core/class/html.formfile.class.php +++ b/htdocs/core/class/html.formfile.class.php @@ -1040,7 +1040,7 @@ class FormFile * @param string $relativepath Relative path of docs (autodefined if not provided), relative to module dir, not to MAIN_DATA_ROOT. * @param int $permonobject Permission on object (so permission to delete or crop document) * @param int $useinecm Change output for use in ecm module: - * 0 or 6: Add a preview column. Show also a rename and crop button. + * 0 or 6: Add a preview column. Show also a rename button. Show also a crop button for some values of $modulepart (must be supported into hard coded list in this function + photos_resize.php + restrictedArea + checkUserAccessToObject) * 1: Add link to edit ECM entry * 2: Add rename and crop file * 4: Add a preview column @@ -1068,7 +1068,7 @@ class FormFile global $form; $disablecrop=1; - if (in_array($modulepart, array('expensereport','holiday','member','project','product','produit','service','societe','tax','ticket','user'))) $disablecrop=0; + if (in_array($modulepart, array('bom','expensereport','holiday','member','project','product','produit','service','societe','tax','ticket','user'))) $disablecrop=0; // Define relative path used to store the file if (empty($relativepath)) diff --git a/htdocs/core/lib/security.lib.php b/htdocs/core/lib/security.lib.php index dcdc70c3fe6..69d9173e212 100644 --- a/htdocs/core/lib/security.lib.php +++ b/htdocs/core/lib/security.lib.php @@ -247,11 +247,12 @@ function restrictedArea($user, $features, $objectid = 0, $tableandshare = '', $f { if (! $user->rights->projet->lire && ! $user->rights->projet->all->lire) { $readok=0; $nbko++; } } - elseif (! empty($feature2)) // This should be used for future changes + elseif (! empty($feature2)) // This is for permissions on 2 levels { $tmpreadok=1; foreach($feature2 as $subfeature) { + var_dump($subfeature); if ($subfeature == 'user' && $user->id == $objectid) continue; // A user can always read its own card if (! empty($subfeature) && empty($user->rights->$feature->$subfeature->lire) && empty($user->rights->$feature->$subfeature->read)) { $tmpreadok=0; } elseif (empty($subfeature) && empty($user->rights->$feature->lire) && empty($user->rights->$feature->read)) { $tmpreadok=0; } @@ -263,7 +264,7 @@ function restrictedArea($user, $features, $objectid = 0, $tableandshare = '', $f $nbko++; } } - elseif (! empty($feature) && ($feature!='user' && $feature!='usergroup')) // This is for old permissions + elseif (! empty($feature) && ($feature!='user' && $feature!='usergroup')) // This is permissions on 1 level { if (empty($user->rights->$feature->lire) && empty($user->rights->$feature->read) @@ -307,7 +308,7 @@ function restrictedArea($user, $features, $objectid = 0, $tableandshare = '', $f { if (! $user->rights->banque->cheque) { $createok=0; $nbko++; } } - elseif (! empty($feature2)) // This should be used + elseif (! empty($feature2)) // This is for permissions on one level { foreach($feature2 as $subfeature) { @@ -317,7 +318,7 @@ function restrictedArea($user, $features, $objectid = 0, $tableandshare = '', $f else { $createok=1; break; } // Break to bypass second test if the first is ok } } - elseif (! empty($feature)) // This is for old permissions ('creer' or 'write') + elseif (! empty($feature)) // This is for permissions on 2 levels ('creer' or 'write') { //print '
feature='.$feature.' creer='.$user->rights->$feature->creer.' write='.$user->rights->$feature->write; if (empty($user->rights->$feature->creer) @@ -384,7 +385,7 @@ function restrictedArea($user, $features, $objectid = 0, $tableandshare = '', $f { if (! $user->rights->salaries->delete) $deleteok=0; } - elseif (! empty($feature2)) // This should be used for permissions on 2 levels + elseif (! empty($feature2)) // This is for permissions on 2 levels { foreach($feature2 as $subfeature) { @@ -392,7 +393,7 @@ function restrictedArea($user, $features, $objectid = 0, $tableandshare = '', $f else { $deleteok=1; break; } // For bypass the second test if the first is ok } } - elseif (! empty($feature)) // This is used for permissions on 1 level + elseif (! empty($feature)) // This is used for permissions on 1 level { //print '
feature='.$feature.' creer='.$user->rights->$feature->supprimer.' write='.$user->rights->$feature->delete; if (empty($user->rights->$feature->supprimer) @@ -451,7 +452,7 @@ function checkUserAccessToObject($user, $featuresarray, $objectid = 0, $tableand if ($feature == 'project') $feature='projet'; if ($feature == 'task') $feature='projet_task'; - $check = array('adherent','banque','don','user','usergroup','product','produit','service','produit|service','categorie','resource','expensereport','holiday'); // Test on entity only (Objects with no link to company) + $check = array('adherent','banque','bom','don','user','usergroup','product','produit','service','produit|service','categorie','resource','expensereport','holiday'); // Test on entity only (Objects with no link to company) $checksoc = array('societe'); // Test for societe object $checkother = array('contact','agenda'); // Test on entity and link to third party. Allowed if link is empty (Ex: contacts...). $checkproject = array('projet','project'); // Test for project object diff --git a/htdocs/core/photos_resize.php b/htdocs/core/photos_resize.php index 2ecb127f3b2..47be8cdf974 100644 --- a/htdocs/core/photos_resize.php +++ b/htdocs/core/photos_resize.php @@ -53,6 +53,12 @@ elseif ($modulepart == 'project') if (! $user->rights->projet->lire) accessforbidden(); $accessallowed=1; } +elseif ($modulepart == 'bom') +{ + $result=restrictedArea($user, 'bom', $id, 'bom_bom'); + if (! $user->rights->bom->read) accessforbidden(); + $accessallowed=1; +} elseif ($modulepart == 'expensereport') { $result=restrictedArea($user, 'expensereport', $id, 'expensereport'); @@ -205,8 +211,19 @@ elseif ($modulepart == 'ticket') $dir=$conf->ticket->dir_output; // By default } } +elseif ($modulepart == 'bom') +{ + require_once DOL_DOCUMENT_ROOT.'/bom/class/bom.class.php'; + $object = new BOM($db); + if ($id > 0) + { + $result = $object->fetch($id); + if ($result <= 0) dol_print_error($db, 'Failed to load object'); + $dir=$conf->bom->dir_output; // By default + } +} else { - print 'Action crop for module part '.$modulepart.' is not supported yet.'; + print 'Action crop for modulepart = '.$modulepart.' is not supported yet.'; } if (empty($backtourl)) @@ -220,6 +237,7 @@ if (empty($backtourl)) elseif (in_array($modulepart, array('tax'))) $backtourl=DOL_URL_ROOT."/compta/sociales/document.php?id=".$id.'&file='.urldecode($_POST["file"]); elseif (in_array($modulepart, array('ticket'))) $backtourl=DOL_URL_ROOT."/ticket/document.php?id=".$id.'&file='.urldecode($_POST["file"]); elseif (in_array($modulepart, array('user'))) $backtourl=DOL_URL_ROOT."/user/document.php?id=".$id.'&file='.urldecode($_POST["file"]); + else $backtourl=DOL_URL_ROOT."/".$modulepart."/".$modulepart."_document.php?id=".$id.'&file='.urldecode($_POST["file"]); } diff --git a/htdocs/langs/en_US/mrp.lang b/htdocs/langs/en_US/mrp.lang index c4bb9193a33..360f4303f07 100644 --- a/htdocs/langs/en_US/mrp.lang +++ b/htdocs/langs/en_US/mrp.lang @@ -13,3 +13,5 @@ WatermarkOnDraftBOMs=Watermark on draft BOM ConfirmCloneBillOfMaterials=Are you sure you want to clone this bill of material ? ManufacturingEfficiency=Manufacturing efficiency ValueOfMeansLoss=Value of 0.95 means an average of 5%% of loss during the production +DeleteBillOfMaterials=Delete Bill Of Materials +ConfirmDeleteBillOfMaterials=Are you sure you want to delete this Bill Of Material? From 2be5e9615d57a0ad568be62f817e8c50ee1f7974 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 12 Jun 2019 19:03:22 +0200 Subject: [PATCH 296/365] Fix look and field v10 --- htdocs/comm/action/card.php | 2 +- htdocs/core/lib/security.lib.php | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/htdocs/comm/action/card.php b/htdocs/comm/action/card.php index 71702c7b507..9381b186582 100644 --- a/htdocs/comm/action/card.php +++ b/htdocs/comm/action/card.php @@ -690,7 +690,7 @@ if ($action == 'create') dol_fiche_head(); - print '
'.$langs->trans("DateChequeReceived").''.$langs->trans("ChequeNumber")."'.$langs->trans("CheckTransmitter")."'.$langs->trans("Bank")."'.$langs->trans("Amount")."'.$langs->trans("Payment")."'.$langs->trans("LineRecord")."'.$langs->trans("Select")."
"; + print '
'.$langs->trans("DateChequeReceived").''.$langs->trans("ChequeNumber")."'.$langs->trans("CheckTransmitter")."'.$langs->trans("Bank")."'.$langs->trans("Amount")."'.$langs->trans("Payment")."'.$langs->trans("LineRecord")."'.$langs->trans("Select")."
"; if ($conf->use_javascript_ajax) print ''.$langs->trans("All").' / '.$langs->trans("None").''; print '
 '; + print ' '; if ($encaiss[$case]>0) { print price($encaiss[$case]); @@ -232,7 +232,7 @@ for ($mois = 1 ; $mois < 13 ; $mois++) print '
'.$langs->trans("Total")."'.price($totsorties[$annee]).''.price($totentrees[$annee]).''.price($totsorties[$annee]).''.price($totentrees[$annee]).'
' . $langs->trans("Piece") . '
'; - print $formaccounting->select_account($line->numero_compte, 'accountingaccount_number', 1, array (), 1, 1, ''); + print $formaccounting->select_account((GETPOSTISSET("accountingaccount_number") ? GETPOST("accountingaccount_number", "alpha") : $line->numero_compte), 'accountingaccount_number', 1, array (), 1, 1, ''); print ''; // TODO For the moment we keep a free input text instead of a combo. The select_auxaccount has problem because it does not // use setup of keypress to select thirdparty and this hang browser on large database. if (! empty($conf->global->ACCOUNTANCY_COMBO_FOR_AUX)) { - print $formaccounting->select_auxaccount($line->subledger_account, 'subledger_account', 1); + print $formaccounting->select_auxaccount((GETPOSTISSET("subledger_account") ? GETPOST("subledger_account", "alpha") : $line->subledger_account), 'subledger_account', 1); } else { - print ''; + print 'subledger_account).'">'; } print 'label_operation). '">debit)) . '">credit)) . '">'; print '' . "\n"; print ''; @@ -672,21 +672,21 @@ if ($action == 'create') if ($action == "" || $action == 'add') { print '
'; - print $formaccounting->select_account($accountingaccount_number, 'accountingaccount_number', 1, array (), 1, 1, ''); + print $formaccounting->select_account('', 'accountingaccount_number', 1, array (), 1, 1, ''); print ''; // TODO For the moment we keep a fre input text instead of a combo. The select_auxaccount has problem because it does not // use setup of keypress to select thirdparty and this hang browser on large database. if (! empty($conf->global->ACCOUNTANCY_COMBO_FOR_AUX)) { - print $formaccounting->select_auxaccount($subledger_account, 'subledger_account', 1); + print $formaccounting->select_auxaccount('', 'subledger_account', 1); } else { print ''; } print ''; if (! empty($conf->global->MAIN_LIST_FILTER_ON_DAY)) { - print ''; + print ''; } - print ''; + print ''; $formother->select_year($search_year, 'search_year', 1, 20, 5); print ''; if (! empty($conf->global->MAIN_LIST_FILTER_ON_DAY)) { - print ''; + print ''; } - print ''; + print ''; $formother->select_year($search_year, 'search_year', 1, 20, 5); print ''; - if (! empty($conf->global->MAIN_LIST_FILTER_ON_DAY)) print ''; - print ''; + if (! empty($conf->global->MAIN_LIST_FILTER_ON_DAY)) print ''; + print ''; $formother->select_year($search_year, 'search_year', 1, 20, 5); print ''; - if (! empty($conf->global->MAIN_LIST_FILTER_ON_DAY)) print ''; - print ''; + if (! empty($conf->global->MAIN_LIST_FILTER_ON_DAY)) print ''; + print ''; $formother->select_year($search_year, 'search_year', 1, 20, 5); print ''; - if (! empty($conf->global->MAIN_LIST_FILTER_ON_DAY)) print ''; - print ''; + if (! empty($conf->global->MAIN_LIST_FILTER_ON_DAY)) print ''; + print ''; $formother->select_year($search_year, 'search_year', 1, 20, 5); print ''; - if (! empty($conf->global->MAIN_LIST_FILTER_ON_DAY)) print ''; - print ''; + if (! empty($conf->global->MAIN_LIST_FILTER_ON_DAY)) print ''; + print ''; $formother->select_year($search_year, 'search_year', 1, 20, 5); print '
'; + print '
'; // Type of event if (! empty($conf->global->AGENDA_USE_EVENT_TYPE)) diff --git a/htdocs/core/lib/security.lib.php b/htdocs/core/lib/security.lib.php index 69d9173e212..051f3a5392a 100644 --- a/htdocs/core/lib/security.lib.php +++ b/htdocs/core/lib/security.lib.php @@ -252,7 +252,6 @@ function restrictedArea($user, $features, $objectid = 0, $tableandshare = '', $f $tmpreadok=1; foreach($feature2 as $subfeature) { - var_dump($subfeature); if ($subfeature == 'user' && $user->id == $objectid) continue; // A user can always read its own card if (! empty($subfeature) && empty($user->rights->$feature->$subfeature->lire) && empty($user->rights->$feature->$subfeature->read)) { $tmpreadok=0; } elseif (empty($subfeature) && empty($user->rights->$feature->lire) && empty($user->rights->$feature->read)) { $tmpreadok=0; } From 900e860f6dbf9cd8d6ccfb9997e8ae89e8e97baa Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 12 Jun 2019 19:32:29 +0200 Subject: [PATCH 297/365] Fix list of events for BOM module --- htdocs/bom/bom_agenda.php | 10 +++++----- htdocs/comm/action/card.php | 8 ++++---- htdocs/core/lib/company.lib.php | 12 ++++++++++-- htdocs/modulebuilder/template/myobject_agenda.php | 12 ++++++------ 4 files changed, 25 insertions(+), 17 deletions(-) diff --git a/htdocs/bom/bom_agenda.php b/htdocs/bom/bom_agenda.php index a4bf134e3ce..d7d86c50543 100644 --- a/htdocs/bom/bom_agenda.php +++ b/htdocs/bom/bom_agenda.php @@ -196,7 +196,7 @@ if ($object->id > 0) $objthirdparty=$object; $objcon=new stdClass(); - $out=''; + $out='&origin='.$object->element.'&originid='.$object->id; $permok=$user->rights->agenda->myactions->create; if ((! empty($objthirdparty->id) || ! empty($objcon->id)) && $permok) { @@ -227,9 +227,9 @@ if ($object->id > 0) if (! empty($conf->agenda->enabled) && (!empty($user->rights->agenda->myactions->read) || !empty($user->rights->agenda->allactions->read) )) { - $param='&socid='.$socid; - if (! empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param.='&contextpage='.$contextpage; - if ($limit > 0 && $limit != $conf->liste_limit) $param.='&limit='.$limit; + $param='&id='.$object->id.'&socid='.$socid; + if (! empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param.='&contextpage='.urlencode($contextpage); + if ($limit > 0 && $limit != $conf->liste_limit) $param.='&limit='.urlencode($limit); //print load_fiche_titre($langs->trans("ActionsOnBom"), '', ''); @@ -239,7 +239,7 @@ if ($object->id > 0) $filters['search_agenda_label']=$search_agenda_label; // TODO Replace this with same code than into list.php - //show_actions_done($conf,$langs,$db,$object,null,0,$actioncode, '', $filters, $sortfield, $sortorder); + show_actions_done($conf, $langs, $db, $object, null, 0, $actioncode, '', $filters, $sortfield, $sortorder); } } diff --git a/htdocs/comm/action/card.php b/htdocs/comm/action/card.php index 9381b186582..8e8d21c51b1 100644 --- a/htdocs/comm/action/card.php +++ b/htdocs/comm/action/card.php @@ -238,8 +238,8 @@ if ($action == 'add') $object->fulldayevent = (! empty($fulldayevent)?1:0); $object->location = GETPOST("location"); $object->label = trim(GETPOST('label')); - $object->fk_element = GETPOST("fk_element"); - $object->elementtype = GETPOST("elementtype"); + $object->fk_element = GETPOST("fk_element", 'int'); + $object->elementtype = GETPOST("elementtype", 'alpha'); if (! GETPOST('label')) { if (GETPOST('actioncode') == 'AC_RDV' && $contact->getFullName($langs)) @@ -349,7 +349,7 @@ if ($action == 'add') { $db->begin(); - // On cree l'action + // Creation of action/event $idaction=$object->create($user); if ($idaction > 0) @@ -857,7 +857,7 @@ if ($action == 'create') print '


'; - print '
'; + print '
'; if ($conf->societe->enabled) { diff --git a/htdocs/core/lib/company.lib.php b/htdocs/core/lib/company.lib.php index 99344b12dc1..c3b9bcec2cf 100644 --- a/htdocs/core/lib/company.lib.php +++ b/htdocs/core/lib/company.lib.php @@ -1188,7 +1188,8 @@ function show_actions_todo($conf, $langs, $db, $filterobj, $objcon = '', $noprin } /** - * Show html area with actions (done or not, ignore the name of function) + * Show html area with actions (done or not, ignore the name of function). + * Note: Global parameter $param must be defined. * * @param Conf $conf Object conf * @param Translate $langs Object langs @@ -1208,7 +1209,7 @@ function show_actions_done($conf, $langs, $db, $filterobj, $objcon = '', $noprin global $user, $conf; global $form; - global $param; + global $param, $massactionbutton; dol_include_once('/comm/action/class/actioncomm.class.php'); @@ -1251,6 +1252,7 @@ function show_actions_done($conf, $langs, $db, $filterobj, $objcon = '', $noprin elseif (is_object($filterobj) && get_class($filterobj) == 'CommandeFournisseur') $sql.= ", o.ref"; elseif (is_object($filterobj) && get_class($filterobj) == 'Product') $sql.= ", o.ref"; elseif (is_object($filterobj) && get_class($filterobj) == 'Ticket') $sql.= ", o.ref"; + elseif (is_object($filterobj) && get_class($filterobj) == 'BOM') $sql.= ", o.ref"; $sql.= " FROM ".MAIN_DB_PREFIX."actioncomm as a"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."user as u on u.rowid = a.fk_user_action"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_actioncomm as c ON a.fk_action = c.id"; @@ -1273,6 +1275,7 @@ function show_actions_done($conf, $langs, $db, $filterobj, $objcon = '', $noprin elseif (is_object($filterobj) && get_class($filterobj) == 'CommandeFournisseur') $sql.= ", ".MAIN_DB_PREFIX."commande_fournisseur as o"; elseif (is_object($filterobj) && get_class($filterobj) == 'Product') $sql.= ", ".MAIN_DB_PREFIX."product as o"; elseif (is_object($filterobj) && get_class($filterobj) == 'Ticket') $sql.= ", ".MAIN_DB_PREFIX."ticket as o"; + elseif (is_object($filterobj) && get_class($filterobj) == 'BOM') $sql.= ", ".MAIN_DB_PREFIX."bom_bom as o"; $sql.= " WHERE a.entity IN (".getEntity('agenda').")"; if ($force_filter_contact === false) { @@ -1298,6 +1301,11 @@ function show_actions_done($conf, $langs, $db, $filterobj, $objcon = '', $noprin $sql.= " AND a.fk_element = o.rowid AND a.elementtype = 'ticket'"; if ($filterobj->id) $sql.= " AND a.fk_element = ".$filterobj->id; } + elseif (is_object($filterobj) && get_class($filterobj) == 'BOM') + { + $sql.= " AND a.fk_element = o.rowid AND a.elementtype = 'bom'"; + if ($filterobj->id) $sql.= " AND a.fk_element = ".$filterobj->id; + } } // Condition on actioncode diff --git a/htdocs/modulebuilder/template/myobject_agenda.php b/htdocs/modulebuilder/template/myobject_agenda.php index 1f693282e5f..183781469ef 100644 --- a/htdocs/modulebuilder/template/myobject_agenda.php +++ b/htdocs/modulebuilder/template/myobject_agenda.php @@ -209,7 +209,7 @@ if ($object->id > 0) $objthirdparty=$object; $objcon=new stdClass(); - $out=''; + $out='&origin='.$object->element.'&originid='.$object->id; $permok=$user->rights->agenda->myactions->create; if ((! empty($objthirdparty->id) || ! empty($objcon->id)) && $permok) { @@ -240,19 +240,19 @@ if ($object->id > 0) if (! empty($conf->agenda->enabled) && (!empty($user->rights->agenda->myactions->read) || !empty($user->rights->agenda->allactions->read) )) { - $param='&socid='.$socid; - if (! empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param.='&contextpage='.$contextpage; - if ($limit > 0 && $limit != $conf->liste_limit) $param.='&limit='.$limit; + $param='&id='.$object->id.'&socid='.$socid; + if (! empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param.='&contextpage='.urlencode($contextpage); + if ($limit > 0 && $limit != $conf->liste_limit) $param.='&limit='.urlencode($limit); - print load_fiche_titre($langs->trans("ActionsOnMyObject"), '', ''); + //print load_fiche_titre($langs->trans("ActionsOnMyObject"), '', ''); // List of all actions $filters=array(); $filters['search_agenda_label']=$search_agenda_label; // TODO Replace this with same code than into list.php - //show_actions_done($conf,$langs,$db,$object,null,0,$actioncode, '', $filters, $sortfield, $sortorder); + //show_actions_done($conf, $langs, $db, $object, null, 0, $actioncode, '', $filters, $sortfield, $sortorder); } } From a26c86878334b5a29e157ecd8dc83c1aa2c902ac Mon Sep 17 00:00:00 2001 From: Francis Appels Date: Wed, 12 Jun 2019 22:05:10 +0200 Subject: [PATCH 298/365] Fix scrutinizer bugs --- .../barcode/doc/tcpdfbarcode.modules.php | 2 - .../doc/pdf_standard.modules.php | 81 ++++++++++--------- .../printsheet/doc/pdf_tcpdflabel.class.php | 16 ++-- htdocs/expedition/class/expedition.class.php | 6 +- .../fourn/class/fournisseur.product.class.php | 48 +++++------ .../product/class/html.formproduct.class.php | 34 ++++---- 6 files changed, 94 insertions(+), 93 deletions(-) diff --git a/htdocs/core/modules/barcode/doc/tcpdfbarcode.modules.php b/htdocs/core/modules/barcode/doc/tcpdfbarcode.modules.php index 1b39fe16095..3d2564591da 100644 --- a/htdocs/core/modules/barcode/doc/tcpdfbarcode.modules.php +++ b/htdocs/core/modules/barcode/doc/tcpdfbarcode.modules.php @@ -116,7 +116,6 @@ class modTcpdfbarcode extends ModeleBarCode $_GET["code"]=$code; $_GET["type"]=$encoding; - $_GET["height"]=$height; $_GET["readable"]=$readable; if ($code) { @@ -166,7 +165,6 @@ class modTcpdfbarcode extends ModeleBarCode $_GET["code"]=$code; $_GET["type"]=$encoding; - $_GET["height"]=$height; $_GET["readable"]=$readable; if ($code) { diff --git a/htdocs/core/modules/expensereport/doc/pdf_standard.modules.php b/htdocs/core/modules/expensereport/doc/pdf_standard.modules.php index 8bb3eaa7804..e0bba62df3b 100644 --- a/htdocs/core/modules/expensereport/doc/pdf_standard.modules.php +++ b/htdocs/core/modules/expensereport/doc/pdf_standard.modules.php @@ -117,13 +117,13 @@ class pdf_standard extends ModeleExpenseReport public $emetteur; - /** - * Constructor - * - * @param DoliDB $db Database handler - */ - public function __construct($db) - { + /** + * Constructor + * + * @param DoliDB $db Database handler + */ + public function __construct($db) + { global $conf, $langs, $mysoc, $user; // Translations @@ -172,12 +172,12 @@ class pdf_standard extends ModeleExpenseReport $this->posxup=145; $this->posxqty=168; $this->postotalttc=178; - // if (empty($conf->projet->enabled)) { - // $this->posxtva-=20; - // $this->posxup-=20; - // $this->posxqty-=20; - // $this->postotalttc-=20; - // } + // if (empty($conf->projet->enabled)) { + // $this->posxtva-=20; + // $this->posxup-=20; + // $this->posxqty-=20; + // $this->postotalttc-=20; + // } if ($this->page_largeur < 210) // To work with US executive format { $this->posxdate-=20; @@ -196,19 +196,19 @@ class pdf_standard extends ModeleExpenseReport } - // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps - /** - * Function to build pdf onto disk - * - * @param Object $object Object to generate - * @param Translate $outputlangs Lang output object - * @param string $srctemplatepath Full path of source filename for generator using a template file - * @param int $hidedetails Do not show line details - * @param int $hidedesc Do not show desc - * @param int $hideref Do not show ref - * @return int 1=OK, 0=KO + // phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps + /** + * Function to build pdf onto disk + * + * @param Object $object Object to generate + * @param Translate $outputlangs Lang output object + * @param string $srctemplatepath Full path of source filename for generator using a template file + * @param int $hidedetails Do not show line details + * @param int $hidedesc Do not show desc + * @param int $hideref Do not show ref + * @return int 1=OK, 0=KO */ - public function write_file($object, $outputlangs, $srctemplatepath = '', $hidedetails = 0, $hidedesc = 0, $hideref = 0) + public function write_file($object, $outputlangs, $srctemplatepath = '', $hidedetails = 0, $hidedesc = 0, $hideref = 0) { // phpcs:enable global $user, $langs, $conf, $mysoc, $db, $hookmanager; @@ -501,9 +501,9 @@ class pdf_standard extends ModeleExpenseReport $posy=$this->tablePayments($pdf, $object, $posy_start_of_totals, $outputlangs); } - // Pied de page + // Page footer $this->_pagefoot($pdf, $object, $outputlangs); - if (method_exists($pdf, 'AliasNbPages')) $pdf->AliasNbPage(); + if (method_exists($pdf, 'AliasNbPages')) $pdf->AliasNbPages(); $pdf->Close(); @@ -540,17 +540,17 @@ class pdf_standard extends ModeleExpenseReport } } - /** - * @param TCPDF $pdf Object PDF - * @param Object $object Object to show - * @param int $linenumber line number - * @param int $curY current y position - * @param int $default_font_size default siez of font - * @param Translate $outputlangs Object lang for output - * @param int $hidedetails Hide details (0=no, 1=yes, 2=just special lines) - * @return void - */ - private function printLine(&$pdf, $object, $linenumber, $curY, $default_font_size, $outputlangs, $hidedetails = 0) + /** + * @param TCPDF $pdf Object PDF + * @param Object $object Object to show + * @param int $linenumber line number + * @param int $curY current y position + * @param int $default_font_size default siez of font + * @param Translate $outputlangs Object lang for output + * @param int $hidedetails Hide details (0=no, 1=yes, 2=just special lines) + * @return void + */ + private function printLine(&$pdf, $object, $linenumber, $curY, $default_font_size, $outputlangs, $hidedetails = 0) { global $conf; $pdf->SetFont('', '', $default_font_size - 1); @@ -618,7 +618,7 @@ class pdf_standard extends ModeleExpenseReport } $comment .= $object->lines[$linenumber]->comments; $pdf->writeHTMLCell($this->posxtva-$this->posxcomment-0.8, 4, $this->posxcomment-1, $curY, $comment, 0, 1); - } + } /** * Show top header of page. @@ -846,7 +846,7 @@ class pdf_standard extends ModeleExpenseReport } } } - } + } /** * Show table for lines @@ -1024,6 +1024,7 @@ class pdf_standard extends ModeleExpenseReport if ($resql) { $num = $this->db->num_rows($resql); + $totalpaid = 0; $i=0; while ($i < $num) { $y+=$tab3_height; diff --git a/htdocs/core/modules/printsheet/doc/pdf_tcpdflabel.class.php b/htdocs/core/modules/printsheet/doc/pdf_tcpdflabel.class.php index 7670a623c49..b17403e93e7 100644 --- a/htdocs/core/modules/printsheet/doc/pdf_tcpdflabel.class.php +++ b/htdocs/core/modules/printsheet/doc/pdf_tcpdflabel.class.php @@ -154,7 +154,7 @@ class pdf_tcpdflabel extends CommonStickerGenerator $widthtouse = $maxwidthtouse; $heighttouse = $maxheighttouse; $logoHeight = $heighttouse; - $logoWidth = $heighttouse; + $logoWidth = $widthtouse; //var_dump($this->_Width.'x'.$this->_Height.' with border and scale '.$imgscale.' => max '.$maxwidthtouse.'x'.$maxheighttouse.' => We use '.$widthtouse.'x'.$heighttouse);exit; @@ -175,9 +175,11 @@ class pdf_tcpdflabel extends CommonStickerGenerator } elseif ($textleft!='' && $textright!='') // left and right part { + $logoHeight = $heighttouse/2; + $logoWidth = $widthtouse/2; if (($textleft == '%LOGO%' || $textleft == '%PHOTO%' || $textleft == '%BARCODE%') && !strstr($textright, '%') ) // left part logo/barcode right part text { - if ($textleft == '%LOGO%' && $logo) $pdf->Image($logo, $_PosX+$xleft, $_PosY+$ytop, $widthtouse/2, 0); + if ($textleft == '%LOGO%' && $logo) $pdf->Image($logo, $_PosX+$xleft, $_PosY+$ytop, $logoWidth, $logoHeight); elseif ($code && !empty($encoding)) { $this->writeBarcode($pdf, $code, $encoding, $is2d, $_PosX+$xleft, $_PosY+$ytop, $widthtouse/2, $heighttouse); @@ -187,7 +189,7 @@ class pdf_tcpdflabel extends CommonStickerGenerator } elseif (($textright == '%LOGO%' || $textright == '%PHOTO%' || $textright == '%BARCODE%') && !strstr($textleft, '%')) // right part logo/barcode left part text { - if ($textright == '%LOGO%' && $logo) $pdf->Image($logo, $_PosX+($widthtouse/2), $_PosY+$ytop, $widthtouse/2, 0); + if ($textright == '%LOGO%' && $logo) $pdf->Image($logo, $_PosX+($widthtouse/2), $_PosY+$ytop, $logoWidth, $logoHeight); elseif ($code && !empty($encoding)) { $this->writeBarcode($pdf, $code, $encoding, $is2d, $_PosX+($widthtouse/2), $_PosY+$ytop, $widthtouse/2, $heighttouse); @@ -197,21 +199,21 @@ class pdf_tcpdflabel extends CommonStickerGenerator } elseif ($textleft == '%LOGO%') // left part logo right part text/barcode { - if ($logo) $pdf->Image($logo, $_PosX+$xleft, $_PosY+$ytop, 0, $logoHeight); + if ($logo) $pdf->Image($logo, $_PosX+$xleft, $_PosY+$ytop, $logoWidth, $logoHeight); if ($code && !empty($encoding)) { $this->writeBarcode($pdf, $code, $encoding, $is2d, $_PosX+$xleft+$logoWidth+1, $_PosY+$ytop, $widthtouse-$logoWidth-1, $heighttouse); } else { $pdf->SetXY($_PosX+$xleft+$logoWidth+1, $_PosY+$ytop); - $pdf->MultiCell($widthtouse-$logoWidth1-1, $this->_Line_Height, $outputlangs->convToOutputCharset($textright), 0, 'R'); + $pdf->MultiCell($widthtouse-$logoWidth-1, $this->_Line_Height, $outputlangs->convToOutputCharset($textright), 0, 'R'); } } elseif ($textright == '%LOGO%') // right part logo left part text/barcode { - if ($logo) $pdf->Image($logo, $_PosX+$xleft+$widthtouse-$logoWidth+1, $_PosY+$ytop, 0, $logoHeight); + if ($logo) $pdf->Image($logo, $_PosX+$xleft+$widthtouse-$logoWidth+1, $_PosY+$ytop, $logoWidth, $logoHeight); if ($code && !empty($encoding)) { - $this->writeBarcode($pdf, $code, $encoding, $is2d, $_PosX+$xleft, $_PosY+$ytop, $widthtouse-$logoWidth-1, $heighttouse); + $this->writeBarcode($pdf, $code, $encoding, $is2d, $_Pos%X+$xleft, $_PosY+$ytop, $widthtouse-$logoWidth-1, $heighttouse); } else { $pdf->SetXY($_PosX+$xleft, $_PosY+$ytop); $pdf->MultiCell($widthtouse-$logoWidth-1, $this->_Line_Height, $outputlangs->convToOutputCharset($textleft), 0, 'L'); diff --git a/htdocs/expedition/class/expedition.class.php b/htdocs/expedition/class/expedition.class.php index a270af13217..1ff48a67107 100644 --- a/htdocs/expedition/class/expedition.class.php +++ b/htdocs/expedition/class/expedition.class.php @@ -1398,6 +1398,8 @@ class Expedition extends CommonObject $this->total_localtax1 = 0; $this->total_localtax2 = 0; + $line = new ExpeditionLigne($this->db); + while ($i < $num) { $obj = $this->db->fetch_object($resql); @@ -2562,8 +2564,6 @@ class ExpeditionLigne extends CommonObjectLine $this->error = 'ErrorMandatoryParametersNotProvided'; return -1; } - // Clean parameters - if (empty($this->entrepot_id)) $this->entrepot_id='null'; $this->db->begin(); @@ -2574,7 +2574,7 @@ class ExpeditionLigne extends CommonObjectLine $sql.= ", qty"; $sql.= ") VALUES ("; $sql.= $this->fk_expedition; - $sql.= ", ".$this->entrepot_id; + $sql.= ", ".(empty($this->entrepot_id) ? 'NULL' : $this->entrepot_id); $sql.= ", ".$this->fk_origin_line; $sql.= ", ".$this->qty; $sql.= ")"; diff --git a/htdocs/fourn/class/fournisseur.product.class.php b/htdocs/fourn/class/fournisseur.product.class.php index 45595471701..f2384b13cf2 100644 --- a/htdocs/fourn/class/fournisseur.product.class.php +++ b/htdocs/fourn/class/fournisseur.product.class.php @@ -247,10 +247,10 @@ class ProductFournisseur extends Product if (empty($supplier_reputation) || $supplier_reputation == -1) $supplier_reputation=''; if ($delivery_time_days != '' && ! is_numeric($delivery_time_days)) $delivery_time_days = ''; if ($price_base_type == 'TTC') - { - $ttx = $tva_tx; - $buyprice = $buyprice/(1+($ttx/100)); - } + { + $ttx = $tva_tx; + $buyprice = $buyprice/(1+($ttx/100)); + } // Multicurrency if ($conf->multicurrency->enabled) { @@ -259,10 +259,10 @@ class ProductFournisseur extends Product if (empty($multicurrency_buyprice)) $multicurrency_buyprice=0; if ($multicurrency_price_base_type == 'TTC') - { - $ttx = $tva_tx; - $multicurrency_buyprice = $multicurrency_buyprice/(1+($ttx/100)); - } + { + $ttx = $tva_tx; + $multicurrency_buyprice = $multicurrency_buyprice/(1+($ttx/100)); + } $multicurrency_buyprice=price2num($multicurrency_buyprice, 'MU'); $multicurrency_unitBuyPrice=price2num($multicurrency_buyprice/$qty, 'MU'); @@ -369,7 +369,7 @@ class ProductFournisseur extends Product // End call triggers if (! $error && empty($conf->global->PRODUCT_PRICE_SUPPLIER_NO_LOG)) { - $result = $this->logPrice($user, $now, $buyprice, $qty, $multicurrency_buyprice, $multicurrency_unitBuyPrice, $multicurrency_tx, $fk_multicurrenc, $multicurrency_code); + $result = $this->logPrice($user, $now, $buyprice, $qty, $multicurrency_buyprice, $multicurrency_unitBuyPrice, $multicurrency_tx, $fk_multicurrency, $multicurrency_code); if ($result < 0) { $error++; } @@ -911,21 +911,21 @@ class ProductFournisseur extends Product return $out; } - /** - * Function used to replace a thirdparty id with another one. - * - * @param DoliDB $db Database handler - * @param int $origin_id Old thirdparty id - * @param int $dest_id New thirdparty id - * @return bool - */ - public static function replaceThirdparty(DoliDB $db, $origin_id, $dest_id) - { - $tables = array( - 'product_fournisseur_price' - ); + /** + * Function used to replace a thirdparty id with another one. + * + * @param DoliDB $db Database handler + * @param int $origin_id Old thirdparty id + * @param int $dest_id New thirdparty id + * @return bool + */ + public static function replaceThirdparty(DoliDB $db, $origin_id, $dest_id) + { + $tables = array( + 'product_fournisseur_price' + ); - return CommonObject::commonReplaceThirdparty($db, $origin_id, $dest_id, $tables); + return CommonObject::commonReplaceThirdparty($db, $origin_id, $dest_id, $tables); } /** @@ -1089,7 +1089,7 @@ class ProductFournisseur extends Product * * @return int < 0 NOK > 0 OK */ - private function logPrice($user, $datec, $buyprice, $qty, $multicurrency_buyprice, $multicurrency_unitBuyPrice, $multicurrency_tx, $fk_multicurrency, $multicurrency_code) + private function logPrice($user, $datec, $buyprice, $qty, $multicurrency_buyprice = null, $multicurrency_unitBuyPrice = null, $multicurrency_tx = null, $fk_multicurrency = null, $multicurrency_code = null) { // Add record into log table $sql = "INSERT INTO " . MAIN_DB_PREFIX . "product_fournisseur_price_log("; diff --git a/htdocs/product/class/html.formproduct.class.php b/htdocs/product/class/html.formproduct.class.php index b4347f82941..a0ebda88cd9 100644 --- a/htdocs/product/class/html.formproduct.class.php +++ b/htdocs/product/class/html.formproduct.class.php @@ -59,12 +59,12 @@ class FormProduct * Load in cache array list of warehouses * If fk_product is not 0, we do not use cache * - * @param int $fk_product Add quantity of stock in label for product with id fk_product. Nothing if 0. - * @param string $batch Add quantity of batch stock in label for product with batch name batch, batch name precedes batch_id. Nothing if ''. - * @param string $status warehouse status filter, following comma separated filter options can be used - * 'warehouseopen' = select products from open warehouses, - * 'warehouseclosed' = select products from closed warehouses, - * 'warehouseinternal' = select products from warehouses for internal correct/transfer only + * @param int $fk_product Add quantity of stock in label for product with id fk_product. Nothing if 0. + * @param string $batch Add quantity of batch stock in label for product with batch name batch, batch name precedes batch_id. Nothing if ''. + * @param string $status warehouse status filter, following comma separated filter options can be used + * 'warehouseopen' = select products from open warehouses, + * 'warehouseclosed' = select products from closed warehouses, + * 'warehouseinternal' = select products from warehouses for internal correct/transfer only * @param boolean $sumStock sum total stock of a warehouse, default true * @param array $exclude warehouses ids to exclude * @return int Nb of loaded lines, 0 if already loaded, <0 if KO @@ -114,9 +114,9 @@ class FormProduct { $sql.= " AND ps.fk_product = '".$fk_product."'"; if (!empty($batch)) - { - $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."product_batch as pb on pb.fk_product_stock = ps.rowid AND pb.batch = '".$batch."'"; - } + { + $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."product_batch as pb on pb.fk_product_stock = ps.rowid AND pb.batch = '".$batch."'"; + } } $sql.= " WHERE e.entity IN (".getEntity('stock').")"; if (count($warehouseStatus)) @@ -173,9 +173,9 @@ class FormProduct * @param String $final_label full label with all parents, separated by ' >> ' (completed on each call) * @return String full label with all parents, separated by ' >> ' */ - private function get_parent_path($tab, $final_label = '') - { - //phpcs:enable + private function get_parent_path($tab, $final_label = '') + { + //phpcs:enable if(empty($final_label)) $final_label = $tab['label']; if(empty($tab['parent_id'])) return $final_label; @@ -195,9 +195,9 @@ class FormProduct * @param int $selected Id of preselected warehouse ('' for no value, 'ifone'=select value if one value otherwise no value) * @param string $htmlname Name of html select html * @param string $filterstatus warehouse status filter, following comma separated filter options can be used - * 'warehouseopen' = select products from open warehouses, - * 'warehouseclosed' = select products from closed warehouses, - * 'warehouseinternal' = select products from warehouses for internal correct/transfer only + * 'warehouseopen' = select products from open warehouses, + * 'warehouseclosed' = select products from closed warehouses, + * 'warehouseinternal' = select products from warehouses for internal correct/transfer only * @param int $empty 1=Can be empty, 0 if not * @param int $disabled 1=Select is disabled * @param int $fk_product Add quantity of stock in label for product with id fk_product. Nothing if 0. @@ -379,9 +379,9 @@ class FormProduct */ public function selectLotStock($selected = '', $htmlname = 'batch_id', $filterstatus = '', $empty = 0, $disabled = 0, $fk_product = 0, $fk_entrepot = 0, $objectLines = array(), $empty_label = '', $forcecombo = 0, $events = array(), $morecss = 'minwidth200') { - global $langs; + global $conf, $langs; - dol_syslog(get_class($this)."::selectLot $selected, $htmlname, $filterstatus, $empty, $disabled, $fk_product, $fk_entrepot, $empty_label, $showstock, $forcecombo, $morecss", LOG_DEBUG); + dol_syslog(get_class($this)."::selectLot $selected, $htmlname, $filterstatus, $empty, $disabled, $fk_product, $fk_entrepot, $empty_label, $forcecombo, $morecss", LOG_DEBUG); $out=''; $productIdArray = array(); From 3f63be60457e0440c777f54769bd527dd369eb94 Mon Sep 17 00:00:00 2001 From: Francis Appels Date: Wed, 12 Jun 2019 22:10:40 +0200 Subject: [PATCH 299/365] fix typo --- htdocs/core/modules/printsheet/doc/pdf_tcpdflabel.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/core/modules/printsheet/doc/pdf_tcpdflabel.class.php b/htdocs/core/modules/printsheet/doc/pdf_tcpdflabel.class.php index b17403e93e7..a6d8aa19161 100644 --- a/htdocs/core/modules/printsheet/doc/pdf_tcpdflabel.class.php +++ b/htdocs/core/modules/printsheet/doc/pdf_tcpdflabel.class.php @@ -213,7 +213,7 @@ class pdf_tcpdflabel extends CommonStickerGenerator if ($logo) $pdf->Image($logo, $_PosX+$xleft+$widthtouse-$logoWidth+1, $_PosY+$ytop, $logoWidth, $logoHeight); if ($code && !empty($encoding)) { - $this->writeBarcode($pdf, $code, $encoding, $is2d, $_Pos%X+$xleft, $_PosY+$ytop, $widthtouse-$logoWidth-1, $heighttouse); + $this->writeBarcode($pdf, $code, $encoding, $is2d, $_PosX+$xleft, $_PosY+$ytop, $widthtouse-$logoWidth-1, $heighttouse); } else { $pdf->SetXY($_PosX+$xleft, $_PosY+$ytop); $pdf->MultiCell($widthtouse-$logoWidth-1, $this->_Line_Height, $outputlangs->convToOutputCharset($textleft), 0, 'L'); From 989cf823dd6858936e8fa33660c8c092fecd85f5 Mon Sep 17 00:00:00 2001 From: Francis Appels Date: Wed, 12 Jun 2019 22:55:08 +0200 Subject: [PATCH 300/365] Fix scrutinizer --- htdocs/expedition/class/expedition.class.php | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/htdocs/expedition/class/expedition.class.php b/htdocs/expedition/class/expedition.class.php index e1cabb72e31..e4f2ce31acd 100644 --- a/htdocs/expedition/class/expedition.class.php +++ b/htdocs/expedition/class/expedition.class.php @@ -446,7 +446,9 @@ class Expedition extends CommonObject */ public function create_line($entrepot_id, $origin_line_id, $qty, $array_options = 0) { - //phpcs:enable + //phpcs:enable + global $user; + $expeditionline = new ExpeditionLigne($this->db); $expeditionline->fk_expedition = $this->id; $expeditionline->entrepot_id = $entrepot_id; @@ -454,7 +456,7 @@ class Expedition extends CommonObject $expeditionline->qty = $qty; $expeditionline->array_options = $array_options; - if (($lineId = $expeditionline->insert()) < 0) + if (($lineId = $expeditionline->insert($user)) < 0) { $this->errors[]=$expeditionline->error; } @@ -2552,7 +2554,7 @@ class ExpeditionLigne extends CommonObjectLine * @param int $notrigger 1 = disable triggers * @return int <0 if KO, line id >0 if OK */ - public function insert($user = null, $notrigger = 0) + public function insert($user, $notrigger = 0) { global $langs, $conf; From 4cbfb67d63b10f6ac189c809ba6c95c1fbff62ae Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 13 Jun 2019 09:59:10 +0200 Subject: [PATCH 301/365] Update html.formother.class.php --- htdocs/core/class/html.formother.class.php | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/htdocs/core/class/html.formother.class.php b/htdocs/core/class/html.formother.class.php index b3d41d80ffb..6cf3c816a24 100644 --- a/htdocs/core/class/html.formother.class.php +++ b/htdocs/core/class/html.formother.class.php @@ -374,7 +374,6 @@ class FormOther */ function select_salesrepresentatives($selected, $htmlname, $user, $showstatus=0, $showempty=1, $morecss='') { - // phpcs:enable global $conf, $langs; $langs->load('users'); @@ -395,7 +394,7 @@ class FormOther if ($showempty) $out.=''; // Get list of users allowed to be viewed - $sql_usr = "SELECT DISTINCT u.rowid, u.lastname, u.firstname, u.statut, u.login"; + $sql_usr = "SELECT u.rowid, u.lastname, u.firstname, u.statut, u.login"; $sql_usr.= " FROM ".MAIN_DB_PREFIX."user as u"; if (! empty($conf->global->MULTICOMPANY_TRANSVERSE_MODE)) @@ -403,10 +402,9 @@ class FormOther if (! empty($user->admin) && empty($user->entity) && $conf->entity == 1) { $sql_usr.= " WHERE u.entity IS NOT NULL"; // Show all users } else { - $sql_usr.= ",".MAIN_DB_PREFIX."usergroup_user as ug"; - $sql_usr.= " WHERE ((ug.fk_user = u.rowid"; - $sql_usr.= " AND ug.entity IN (".getEntity('user')."))"; - $sql_usr.= " OR u.entity = 0)"; // Show always superadmin + $sql_usr.= ", + $sql_usr.= " WHERE EXISTS (SELECT ug.fk_user FROM ".MAIN_DB_PREFIX."usergroup_user as ug WHERE u.rowid = ug.fk_user AND ug.entity IN (".getEntity('user')."))"; + $sql_usr.= " OR u.entity = 0"; // Show always superadmin } } else @@ -428,7 +426,7 @@ class FormOther if (! empty($user->admin) && empty($user->entity) && $conf->entity == 1) { $sql_usr.= " WHERE u2.entity IS NOT NULL"; // Show all users } else { - $sql_usr.= " WHERE EXISTS (SELECT ug2.fk_user FROM ".MAIN_DB_PREFIX."usergroup_user as ug2 WHERE u2.rowid = ug2.fk_user AND ug2.entity IN (".getEntity('user').") )"; + $sql_usr.= " WHERE EXISTS (SELECT ug2.fk_user FROM ".MAIN_DB_PREFIX."usergroup_user as ug2 WHERE u2.rowid = ug2.fk_user AND ug2.entity IN (".getEntity('user')."))"; } } else From 2bc821d9003d80ed7309375d910c55917be9fd1c Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 13 Jun 2019 10:08:35 +0200 Subject: [PATCH 302/365] Try to keep proportions of logo --- htdocs/core/modules/printsheet/doc/pdf_tcpdflabel.class.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/core/modules/printsheet/doc/pdf_tcpdflabel.class.php b/htdocs/core/modules/printsheet/doc/pdf_tcpdflabel.class.php index a6d8aa19161..4384bd49cf6 100644 --- a/htdocs/core/modules/printsheet/doc/pdf_tcpdflabel.class.php +++ b/htdocs/core/modules/printsheet/doc/pdf_tcpdflabel.class.php @@ -179,7 +179,7 @@ class pdf_tcpdflabel extends CommonStickerGenerator $logoWidth = $widthtouse/2; if (($textleft == '%LOGO%' || $textleft == '%PHOTO%' || $textleft == '%BARCODE%') && !strstr($textright, '%') ) // left part logo/barcode right part text { - if ($textleft == '%LOGO%' && $logo) $pdf->Image($logo, $_PosX+$xleft, $_PosY+$ytop, $logoWidth, $logoHeight); + if ($textleft == '%LOGO%' && $logo) $pdf->Image($logo, $_PosX+$xleft, $_PosY+$ytop, $logoWidth, 0); elseif ($code && !empty($encoding)) { $this->writeBarcode($pdf, $code, $encoding, $is2d, $_PosX+$xleft, $_PosY+$ytop, $widthtouse/2, $heighttouse); @@ -189,7 +189,7 @@ class pdf_tcpdflabel extends CommonStickerGenerator } elseif (($textright == '%LOGO%' || $textright == '%PHOTO%' || $textright == '%BARCODE%') && !strstr($textleft, '%')) // right part logo/barcode left part text { - if ($textright == '%LOGO%' && $logo) $pdf->Image($logo, $_PosX+($widthtouse/2), $_PosY+$ytop, $logoWidth, $logoHeight); + if ($textright == '%LOGO%' && $logo) $pdf->Image($logo, $_PosX+($widthtouse/2), $_PosY+$ytop, $logoWidth, 0); elseif ($code && !empty($encoding)) { $this->writeBarcode($pdf, $code, $encoding, $is2d, $_PosX+($widthtouse/2), $_PosY+$ytop, $widthtouse/2, $heighttouse); From ab9742f4df2ced56a1513289bd1d99829cc3114d Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 13 Jun 2019 10:09:20 +0200 Subject: [PATCH 303/365] Try to keep proportion of logo --- htdocs/core/modules/printsheet/doc/pdf_tcpdflabel.class.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/core/modules/printsheet/doc/pdf_tcpdflabel.class.php b/htdocs/core/modules/printsheet/doc/pdf_tcpdflabel.class.php index 4384bd49cf6..f6bb3bc46a7 100644 --- a/htdocs/core/modules/printsheet/doc/pdf_tcpdflabel.class.php +++ b/htdocs/core/modules/printsheet/doc/pdf_tcpdflabel.class.php @@ -199,7 +199,7 @@ class pdf_tcpdflabel extends CommonStickerGenerator } elseif ($textleft == '%LOGO%') // left part logo right part text/barcode { - if ($logo) $pdf->Image($logo, $_PosX+$xleft, $_PosY+$ytop, $logoWidth, $logoHeight); + if ($logo) $pdf->Image($logo, $_PosX+$xleft, $_PosY+$ytop, 0, $logoHeight); if ($code && !empty($encoding)) { $this->writeBarcode($pdf, $code, $encoding, $is2d, $_PosX+$xleft+$logoWidth+1, $_PosY+$ytop, $widthtouse-$logoWidth-1, $heighttouse); @@ -210,7 +210,7 @@ class pdf_tcpdflabel extends CommonStickerGenerator } elseif ($textright == '%LOGO%') // right part logo left part text/barcode { - if ($logo) $pdf->Image($logo, $_PosX+$xleft+$widthtouse-$logoWidth+1, $_PosY+$ytop, $logoWidth, $logoHeight); + if ($logo) $pdf->Image($logo, $_PosX+$xleft+$widthtouse-$logoWidth+1, $_PosY+$ytop, 0, $logoHeight); if ($code && !empty($encoding)) { $this->writeBarcode($pdf, $code, $encoding, $is2d, $_PosX+$xleft, $_PosY+$ytop, $widthtouse-$logoWidth-1, $heighttouse); From 28218a00b384a3c3071c067500cdc4e877d7e2f9 Mon Sep 17 00:00:00 2001 From: gauthier Date: Thu, 13 Jun 2019 11:01:12 +0200 Subject: [PATCH 304/365] FIX : syntax error --- htdocs/core/class/html.formother.class.php | 1 - 1 file changed, 1 deletion(-) diff --git a/htdocs/core/class/html.formother.class.php b/htdocs/core/class/html.formother.class.php index 6cf3c816a24..79aa4cc8c77 100644 --- a/htdocs/core/class/html.formother.class.php +++ b/htdocs/core/class/html.formother.class.php @@ -402,7 +402,6 @@ class FormOther if (! empty($user->admin) && empty($user->entity) && $conf->entity == 1) { $sql_usr.= " WHERE u.entity IS NOT NULL"; // Show all users } else { - $sql_usr.= ", $sql_usr.= " WHERE EXISTS (SELECT ug.fk_user FROM ".MAIN_DB_PREFIX."usergroup_user as ug WHERE u.rowid = ug.fk_user AND ug.entity IN (".getEntity('user')."))"; $sql_usr.= " OR u.entity = 0"; // Show always superadmin } From 04a085e4f7795a11440d13a3ab95f62296f8ebfb Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 13 Jun 2019 11:07:08 +0200 Subject: [PATCH 305/365] Update doc --- COPYRIGHT | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/COPYRIGHT b/COPYRIGHT index 4ce5efff40b..ea0c6453486 100644 --- a/COPYRIGHT +++ b/COPYRIGHT @@ -14,15 +14,14 @@ Component Version License GPL Compatible PHP libraries: AdoDb-Date 0.36 Modified BSD License Yes Date convertion (not into rpm package) CKEditor 4.11.4 LGPL-2.1+ Yes Editor WYSIWYG -PHPDebugBar 1.15.0 MIT License Yes Used only by the module "debugbar" for developers EvalMath 1.0 BSD Yes Safe math expressions evaluation Escpos-php ? MIT License Yes Thermal receipt printer library, for use with ESC/POS compatible printers GeoIP 1.4 LGPL-2.1+ Yes Sample code to make geoip convert (not into deb package) Mobiledetect 2.8.83 MIT License Yes Detect mobile devices browsers NuSoap 0.9.5 LGPL 2.1+ Yes Library to develop SOAP Web services (not into rpm and deb package) PEAR Mail_MIME 1.8.9 BSD Yes NuSoap dependency -odtPHP 1.0.1 GPL-2+ Yes Library to build/edit ODT files ParseDown 1.6 MIT License Yes Markdown parser +PHPDebugBar 1.15.0 MIT License Yes Used only by the module "debugbar" for developers PHPExcel 1.8.1 LGPL-2.1+ Yes Read/Write XLS files, read ODS files PHPSpreadSheet ? LGPL-2.1+ Yes Read/Write XLS files, read ODS files php-iban 1.4.7 LGPL-3+ Yes Parse and validate IBAN (and IIBAN) bank account information in PHP From 4b26702516bec66953ae9187c48ad51e515473a1 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 13 Jun 2019 11:07:38 +0200 Subject: [PATCH 306/365] code comment --- htdocs/core/class/html.formfile.class.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/core/class/html.formfile.class.php b/htdocs/core/class/html.formfile.class.php index b729ad51fc5..419862229e1 100644 --- a/htdocs/core/class/html.formfile.class.php +++ b/htdocs/core/class/html.formfile.class.php @@ -1040,9 +1040,9 @@ class FormFile * @param string $relativepath Relative path of docs (autodefined if not provided), relative to module dir, not to MAIN_DATA_ROOT. * @param int $permonobject Permission on object (so permission to delete or crop document) * @param int $useinecm Change output for use in ecm module: - * 0 or 6: Add a preview column. Show also a rename and crop button. + * 0 or 6: Add a preview column. Show also a rename button. Show also a crop button (if modulepart into a specific list) * 1: Add link to edit ECM entry - * 2: Add rename and crop file + * 2: Add rename and crop link * 4: Add a preview column * 5: Add link to edit ECM entry and Add a preview column * @param string $textifempty Text to show if filearray is empty ('NoFileFound' if not defined) From 319bc7ec8a1f23908063a80e50de989f6d392a72 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 13 Jun 2019 12:12:20 +0200 Subject: [PATCH 307/365] Fix syntax error --- htdocs/core/class/html.formother.class.php | 1 - 1 file changed, 1 deletion(-) diff --git a/htdocs/core/class/html.formother.class.php b/htdocs/core/class/html.formother.class.php index 6cf3c816a24..79aa4cc8c77 100644 --- a/htdocs/core/class/html.formother.class.php +++ b/htdocs/core/class/html.formother.class.php @@ -402,7 +402,6 @@ class FormOther if (! empty($user->admin) && empty($user->entity) && $conf->entity == 1) { $sql_usr.= " WHERE u.entity IS NOT NULL"; // Show all users } else { - $sql_usr.= ", $sql_usr.= " WHERE EXISTS (SELECT ug.fk_user FROM ".MAIN_DB_PREFIX."usergroup_user as ug WHERE u.rowid = ug.fk_user AND ug.entity IN (".getEntity('user')."))"; $sql_usr.= " OR u.entity = 0"; // Show always superadmin } From 357c5244f7daa8a3a7662676364221b604798280 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 13 Jun 2019 13:26:35 +0200 Subject: [PATCH 308/365] Fix phpcs --- 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 8192f85f44f..9017ece676e 100644 --- a/htdocs/core/actions_massactions.inc.php +++ b/htdocs/core/actions_massactions.inc.php @@ -281,7 +281,7 @@ if (! $error && $massaction == 'confirm_presend') // For supplier invoices, we use the file provided by supplier, not the one we generate if ($objectobj->element == 'invoice_supplier') { - $fileparams = dol_most_recent_file($uploaddir . '/' . get_exdir($objectobj->id,2,0,0,$objectobj,$objectobj->element).$objectobj->ref, preg_quote($objectobj->ref,'/').'([^\-])+'); + $fileparams = dol_most_recent_file($uploaddir.'/'.get_exdir($objectobj->id, 2, 0, 0, $objectobj, $objectobj->element).$objectobj->ref, preg_quote($objectobj->ref, '/').'([^\-])+'); $file = $fileparams['fullname']; } From 53be6492b84043f49ea39fc5e0cb5a2624f76728 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 13 Jun 2019 14:20:13 +0200 Subject: [PATCH 309/365] Finish module BOM --- htdocs/bom/bom_card.php | 29 +++ htdocs/bom/class/bom.class.php | 10 +- htdocs/bom/tpl/objectline_create.tpl.php | 17 +- htdocs/bom/tpl/objectline_edit.tpl.php | 244 +++-------------------- 4 files changed, 70 insertions(+), 230 deletions(-) diff --git a/htdocs/bom/bom_card.php b/htdocs/bom/bom_card.php index 15a7385f891..c2ed2ca6705 100644 --- a/htdocs/bom/bom_card.php +++ b/htdocs/bom/bom_card.php @@ -145,6 +145,35 @@ if (empty($reshook)) $action = ''; } } + + // Add line + if ($action == 'updateline' && $user->rights->bom->write) + { + $langs->load('errors'); + $error = 0; + + // Set if we used free entry or predefined product + $qty=GETPOST('qty', 'int'); + $efficiency=GETPOST('efficiency', 'int'); + + if ($qty == '') { + setEventMessages($langs->trans('ErrorFieldRequired', $langs->transnoentitiesnoconv('Qty')), null, 'errors'); + $error++; + } + + $bomline = new BOMLine($db); + $bomline->fetch($lineid); + $bomline->qty = $qty; + $bomline->efficiency = $efficiency; + + $result = $bomline->update($user); + if ($result <= 0) + { + setEventMessages($bomline->error, $bomline->errors, 'errors'); + $action = ''; + } + } + } diff --git a/htdocs/bom/class/bom.class.php b/htdocs/bom/class/bom.class.php index e7083e767a2..731136fb7f4 100644 --- a/htdocs/bom/class/bom.class.php +++ b/htdocs/bom/class/bom.class.php @@ -203,6 +203,8 @@ class BOM extends CommonObject */ public function create(User $user, $notrigger = false) { + if ($this->efficiency < 0 || $this->efficiency > 1) $this->efficiency = 1; + return $this->createCommon($user, $notrigger); } @@ -411,6 +413,8 @@ class BOM extends CommonObject */ public function update(User $user, $notrigger = false) { + if ($this->efficiency < 0 || $this->efficiency > 1) $this->efficiency = 1; + return $this->updateCommon($user, $notrigger); } @@ -1100,6 +1104,8 @@ class BOMLine extends CommonObject */ public function create(User $user, $notrigger = false) { + if ($this->efficiency < 0 || $this->efficiency > 1) $this->efficiency = 1; + return $this->createCommon($user, $notrigger); } @@ -1201,6 +1207,8 @@ class BOMLine extends CommonObject */ public function update(User $user, $notrigger = false) { + if ($this->efficiency < 0 || $this->efficiency > 1) $this->efficiency = 1; + return $this->updateCommon($user, $notrigger); } @@ -1230,8 +1238,6 @@ class BOMLine extends CommonObject public function getNomUrl($withpicto = 0, $option = '', $notooltip = 0, $morecss = '', $save_lastsearch_value = -1) { global $db, $conf, $langs, $hookmanager; - global $dolibarr_main_authentication, $dolibarr_main_demo; - global $menumanager; if (! empty($conf->dol_no_mouse_hover)) $notooltip=1; // Force disable tooltips diff --git a/htdocs/bom/tpl/objectline_create.tpl.php b/htdocs/bom/tpl/objectline_create.tpl.php index 0101024df40..e266c142480 100644 --- a/htdocs/bom/tpl/objectline_create.tpl.php +++ b/htdocs/bom/tpl/objectline_create.tpl.php @@ -26,10 +26,7 @@ * $object (invoice, order, ...) * $conf * $langs - * $dateSelector * $forceall (0 by default, 1 for supplier invoices/orders) - * $senderissupplier (0 by default, 1 or 2 for supplier invoices/orders) - * $inputalsopricewithtax (0 by default, 1 to also show column with unit price including tax) */ // Protection to avoid direct call of template @@ -39,20 +36,13 @@ if (empty($object) || ! is_object($object)) { } -if (! isset($dateSelector)) global $dateSelector; // Take global var only if not already defined into function calling (for example formAddObjectLine) -global $forceall, $forcetoshowtitlelines, $senderissupplier, $inputalsopricewithtax; +global $forceall, $forcetoshowtitlelines; -if (! isset($dateSelector)) $dateSelector=1; // For backward compatibility -elseif (empty($dateSelector)) $dateSelector=0; if (empty($forceall)) $forceall=0; -if (empty($senderissupplier)) $senderissupplier=0; -if (empty($inputalsopricewithtax)) $inputalsopricewithtax=0; // Define colspan for the button 'Add' $colspan = 3; // Columns: total ht + col edit + col delete -if (!empty($conf->multicurrency->enabled) && $this->multicurrency_code != $conf->currency) $colspan++;//Add column for Total (currency) if required -if (in_array($object->element, array('propal','commande','order','facture','facturerec','invoice','supplier_proposal','order_supplier','invoice_supplier'))) $colspan++; // With this, there is a column move button //print $object->element; // Lines for extrafield @@ -135,11 +125,6 @@ if ($nolinesbefore) { print $form->selectUnits($line->fk_unit, "units"); print ''; } - $remise_percent = $buyer->remise_percent; - if($object->element == 'supplier_proposal' || $object->element == 'order_supplier' || $object->element == 'invoice_supplier') - { - $remise_percent = $seller->remise_supplier_percent; - } $coldisplay++; ?> diff --git a/htdocs/bom/tpl/objectline_edit.tpl.php b/htdocs/bom/tpl/objectline_edit.tpl.php index 3763b771854..2c099ab89f8 100644 --- a/htdocs/bom/tpl/objectline_edit.tpl.php +++ b/htdocs/bom/tpl/objectline_edit.tpl.php @@ -39,18 +39,16 @@ if (empty($object) || ! is_object($object)) } -global $forceall, $senderissupplier, $inputalsopricewithtax; -if (empty($dateSelector)) $dateSelector=0; +global $forceall; + if (empty($forceall)) $forceall=0; -if (empty($senderissupplier)) $senderissupplier=0; -if (empty($inputalsopricewithtax)) $inputalsopricewithtax=0; // Define colspan for the button 'Add' -$colspan = 3; // Col total ht + col edit + col delete -if (! empty($inputalsopricewithtax)) $colspan++; // We add 1 if col total ttc -if (in_array($object->element, array('propal','supplier_proposal','facture','facturerec','invoice','commande','order','order_supplier','invoice_supplier'))) $colspan++; // With this, there is a column move button -if (!empty($conf->multicurrency->enabled) && $this->multicurrency_code != $conf->currency) $colspan+=2; +$colspan = 3; // Columns: total ht + col edit + col delete + +// Lines for extrafield +$objectline = new BOMLine($this->db); ?> @@ -59,7 +57,9 @@ if (!empty($conf->multicurrency->enabled) && $this->multicurrency_code != $conf- $coldisplay=0; ?> - global->MAIN_VIEW_LINE_NUMBER)) { ?> + global->MAIN_VIEW_LINE_NUMBER)) { ?> special_code; ?>"> - fk_product > 0) { ?> - - fk_parent_line > 0) echo img_picto('', 'rightarrow'); - ?> - - product_type==1) echo img_object($langs->trans('ShowService'), 'service'); - else print img_object($langs->trans('ShowProduct'), 'product'); - echo ' '.$line->ref; - ?> - - product_label); - ?> - -

- - - fk_product > 0) { + $tmpproduct = new Product($object->db); + $tmpproduct->fetch($line->fk_product); + print $tmpproduct->getNomUrl(1); + } + if (is_object($hookmanager)) { $fk_parent_line = (GETPOST('fk_parent_line') ? GETPOST('fk_parent_line') : $line->fk_parent_line); @@ -106,220 +93,53 @@ $coldisplay=0; element == 'supplier_proposal' || $object->element == 'order_supplier' || $object->element == 'invoice_supplier') // We must have same test in printObjectLines + /*if ($object->element == 'supplier_proposal' || $object->element == 'order_supplier' || $object->element == 'invoice_supplier') // We must have same test in printObjectLines { $coldisplay++; ?> fk_prev_id == null) { - print ''; - } else { - print ''; - } - - $coldisplay++; - print ''; - - if (!empty($conf->multicurrency->enabled) && $this->multicurrency_code != $conf->currency) { - $coldisplay++; - print ''; - } - - if ($inputalsopricewithtax) - { - $coldisplay++; - print ''; - } ?> - global->PRODUCT_USE_UNITS) { $coldisplay++; - print ''; } + + $coldisplay++; ?> + + - info_bits & 2) != 2) { - print 'fk_prev_id != null ) print ' readonly'; - print '>%'; - } else { ?> -   - - - - - showOptionals($extrafieldsline, 'edit', array('style'=>$bc[$var],'colspan'=>$coldisplay), '', '', empty($conf->global->MAIN_EXTRAFIELDS_IN_ONE_TD)?0:1); +if (is_object($objectline)) { + print $objectline->showOptionals($extrafieldsline, 'edit', array('style'=>$bcnd[$var], 'colspan'=>$coldisplay), '', '', empty($conf->global->MAIN_EXTRAFIELDS_IN_ONE_TD)?0:1); } ?> -service->enabled) && $line->product_type == 1 && $dateSelector) { ?> - - global->MAIN_VIEW_LINE_NUMBER)) { ?> - - - - - - - - From 787e1319b9744ea9d5f8950827e3a7e699fe2ca3 Mon Sep 17 00:00:00 2001 From: "atm-florian.m" Date: Thu, 13 Jun 2019 16:21:07 +0200 Subject: [PATCH 310/365] FIX: in edit mode, dictionary inputs do not escape the string inside the 'value' attribute, causing errors if there are any double quotes --- htdocs/admin/dict.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/admin/dict.php b/htdocs/admin/dict.php index e1e0c0d419e..07b8a9d7119 100644 --- a/htdocs/admin/dict.php +++ b/htdocs/admin/dict.php @@ -1976,7 +1976,7 @@ function fieldList($fieldlist, $obj='', $tabname='', $context='') } if (! $transfound) { - print ''; + print ''; } print ''; } From b13b089c58b562a407ef93fec3b0e2192e675ac0 Mon Sep 17 00:00:00 2001 From: ptibogxiv Date: Thu, 13 Jun 2019 20:52:52 +0200 Subject: [PATCH 311/365] Fix measuring_units_string display function --- htdocs/core/lib/product.lib.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/core/lib/product.lib.php b/htdocs/core/lib/product.lib.php index c8640f9928f..2bb75967727 100644 --- a/htdocs/core/lib/product.lib.php +++ b/htdocs/core/lib/product.lib.php @@ -494,7 +494,7 @@ function measuring_units_string($unit, $measuring_style = '') require_once DOL_DOCUMENT_ROOT.'/core/class/cunits.class.php'; $measuringUnits= new CUnits($db); $result = $measuringUnits->fetchAll('', '', 0, 0, array( - 't.code' => $unit, + 't.rowid => $unit, 't.unit_type' => $measuring_style, 't.active' => 1 )); From a30f029bbfef5c2c054e2c7513c35d860ec53cba Mon Sep 17 00:00:00 2001 From: ptibogxiv Date: Thu, 13 Jun 2019 20:53:24 +0200 Subject: [PATCH 312/365] Update product.lib.php --- htdocs/core/lib/product.lib.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/core/lib/product.lib.php b/htdocs/core/lib/product.lib.php index 2bb75967727..b6f8983f284 100644 --- a/htdocs/core/lib/product.lib.php +++ b/htdocs/core/lib/product.lib.php @@ -494,7 +494,7 @@ function measuring_units_string($unit, $measuring_style = '') require_once DOL_DOCUMENT_ROOT.'/core/class/cunits.class.php'; $measuringUnits= new CUnits($db); $result = $measuringUnits->fetchAll('', '', 0, 0, array( - 't.rowid => $unit, + 't.rowid' => $unit, 't.unit_type' => $measuring_style, 't.active' => 1 )); From 0ef9a8843a83ff8e4a8f2ed0d07208d9b0db6ddd Mon Sep 17 00:00:00 2001 From: ATM john Date: Thu, 13 Jun 2019 21:57:30 +0200 Subject: [PATCH 313/365] Fix empty test --- htdocs/core/lib/functions.lib.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index 19b39fd776d..d726c84e2ae 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -8123,7 +8123,7 @@ function dolGetButtonAction($label, $html = '', $actionType = 'default', $url = $attr['href'] = ''; } - if(empty($id)){ + if(!empty($id)){ $attr['id'] = $id; } From ff1adb39349c505ee5e692294d1eda2c0b21b0b5 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 13 Jun 2019 22:11:25 +0200 Subject: [PATCH 314/365] Fix dead code --- htdocs/fourn/class/fournisseur.facture.class.php | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/htdocs/fourn/class/fournisseur.facture.class.php b/htdocs/fourn/class/fournisseur.facture.class.php index 883fe383de7..f8e9dbcdbd1 100644 --- a/htdocs/fourn/class/fournisseur.facture.class.php +++ b/htdocs/fourn/class/fournisseur.facture.class.php @@ -205,7 +205,7 @@ class FactureFournisseur extends CommonInvoice public $multicurrency_total_ht; public $multicurrency_total_tva; public $multicurrency_total_ttc; - //! id of source invoice if replacement invoice or credit note + //! id of source var_dump($$this);invoice if replacement invoice or credit note /** * @var int ID */ @@ -312,7 +312,6 @@ class FactureFournisseur extends CommonInvoice $this->db->begin(); if (! $remise) $remise = 0 ; - $totalht = ($amount - $remise); $sql = "INSERT INTO ".MAIN_DB_PREFIX."facture_fourn ("; $sql.= "ref"; @@ -424,7 +423,7 @@ class FactureFournisseur extends CommonInvoice if (count($this->lines) && is_object($this->lines[0])) // If this->lines is array of InvoiceLines (preferred mode) { - dol_syslog("There is ".count($this->lines)." lines that are invoice lines objects"); + dol_syslog("There is ".count($this->lines)." lines that are invoice lines objects"); foreach ($this->lines as $i => $val) { $sql = 'INSERT INTO '.MAIN_DB_PREFIX.'facture_fourn_det (fk_facture_fourn, special_code)'; From e7d81a68f063b15df8e9f4e4104a6a9e566c3329 Mon Sep 17 00:00:00 2001 From: ATM john Date: Thu, 13 Jun 2019 22:11:47 +0200 Subject: [PATCH 315/365] Fix Override Attribute --- htdocs/core/lib/functions.lib.php | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index d726c84e2ae..31442cd7364 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -8130,7 +8130,15 @@ function dolGetButtonAction($label, $html = '', $actionType = 'default', $url = // Override attr if(!empty($params['attr']) && is_array($params['attr'])){ foreach($params['attr'] as $key => $value){ - $attr[$key] = $value; + if($key == 'class'){ + $attr['class'].= ' '.$value; + } + elseif($key == 'classOverride'){ + $attr['class'] = $value; + } + else{ + $attr[$key] = $value; + } } } @@ -8202,10 +8210,10 @@ function dolGetButtonTitle($label, $helpText = '', $iconClass = 'fa fa-file', $u $attr['href'] = ''; - if($status == -1){ // Not enough permissions + if($status == -1){ // disable $attr['title'] = dol_escape_htmltag($langs->transnoentitiesnoconv("FeatureDisabled")); } - elseif($status == 0){ // disable + elseif($status == 0){ // Not enough permissions $attr['title'] = dol_escape_htmltag($langs->transnoentitiesnoconv("NotEnoughPermissions")); } } From e8b139d1c64a647434f7dd6c7a6e39e820224b41 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 13 Jun 2019 22:48:31 +0200 Subject: [PATCH 316/365] Fix repeated logs and fetch --- htdocs/comm/action/class/actioncomm.class.php | 13 ++++--- htdocs/core/class/discount.class.php | 4 +- htdocs/core/class/html.formactions.class.php | 39 +++++++++++-------- .../modules/facture/mod_facture_terre.php | 4 +- 4 files changed, 34 insertions(+), 26 deletions(-) diff --git a/htdocs/comm/action/class/actioncomm.class.php b/htdocs/comm/action/class/actioncomm.class.php index 905b562ab5d..6e4e3fb941b 100644 --- a/htdocs/comm/action/class/actioncomm.class.php +++ b/htdocs/comm/action/class/actioncomm.class.php @@ -120,7 +120,7 @@ class ActionComm extends CommonObject * Object user that create action * @var User * @deprecated - * @see authorid + * @see $authorid */ public $author; @@ -128,7 +128,7 @@ class ActionComm extends CommonObject * Object user that modified action * @var User * @deprecated - * @see usermodid + * @see $usermodid */ public $usermod; @@ -1010,7 +1010,7 @@ class ActionComm extends CommonObject /** * Load all objects with filters. - * WARNING: This make a fetch on all records instead of making one request with a join. + * @TODO WARNING: This make a fetch on all records instead of making one request with a join. * * @param DoliDb $db Database handler * @param int $socid Filter by thirdparty @@ -1020,7 +1020,7 @@ class ActionComm extends CommonObject * @param string $sortfield Sort on this field * @param string $sortorder ASC or DESC * @param string $limit Limit number of answers - * @return array or string Error string if KO, array with actions if OK + * @return array|string Error string if KO, array with actions if OK */ public static function getActions($db, $socid = 0, $fk_element = 0, $elementtype = '', $filter = '', $sortfield = 'a.datep', $sortorder = 'DESC', $limit = 0) { @@ -1028,6 +1028,8 @@ class ActionComm extends CommonObject $resarray=array(); + dol_syslog(get_class()."::getActions", LOG_DEBUG); + $sql = "SELECT a.id"; $sql.= " FROM ".MAIN_DB_PREFIX."actioncomm as a"; $sql.= " WHERE a.entity IN (".getEntity('agenda').")"; @@ -1041,7 +1043,6 @@ class ActionComm extends CommonObject if ($sortorder && $sortfield) $sql.=$db->order($sortfield, $sortorder); $sql.=$db->plimit($limit, 0); - dol_syslog(get_class()."::getActions", LOG_DEBUG); $resql=$db->query($sql); if ($resql) { @@ -1285,7 +1286,7 @@ class ActionComm extends CommonObject if (! empty($conf->dol_no_mouse_hover)) $notooltip=1; // Force disable tooltips - if ((!$user->rights->agenda->allactions->read && $this->author->id != $user->id) || (!$user->rights->agenda->myactions->read && $this->author->id == $user->id)) + if ((!$user->rights->agenda->allactions->read && $this->authorid != $user->id) || (!$user->rights->agenda->myactions->read && $this->authorid == $user->id)) $option = 'nolink'; $label = $this->label; diff --git a/htdocs/core/class/discount.class.php b/htdocs/core/class/discount.class.php index 93b51d0ddf8..8e66b29a3f8 100644 --- a/htdocs/core/class/discount.class.php +++ b/htdocs/core/class/discount.class.php @@ -497,8 +497,9 @@ class DiscountAbsolute { global $conf; + dol_syslog(get_class($this)."::getAvailableDiscounts discount_type=".$discount_type, LOG_DEBUG); + $sql = "SELECT SUM(rc.amount_ttc) as amount"; - //$sql = "SELECT rc.amount_ttc as amount"; $sql.= " FROM ".MAIN_DB_PREFIX."societe_remise_except as rc"; $sql.= " WHERE rc.entity = " . $conf->entity; $sql.= " AND rc.discount_type=".intval($discount_type); @@ -512,7 +513,6 @@ class DiscountAbsolute if ($filter) $sql.=' AND ('.$filter.')'; if ($maxvalue) $sql.=' AND rc.amount_ttc <= '.price2num($maxvalue); - dol_syslog(get_class($this)."::getAvailableDiscounts", LOG_DEBUG); $resql=$this->db->query($sql); if ($resql) { diff --git a/htdocs/core/class/html.formactions.class.php b/htdocs/core/class/html.formactions.class.php index 31353ea3d10..bb1cf5fbfe7 100644 --- a/htdocs/core/class/html.formactions.class.php +++ b/htdocs/core/class/html.formactions.class.php @@ -213,24 +213,22 @@ class FormActions $page=0; $param=''; - $total = 0; - print '
'; print '
' . $form->load_tva('tva_tx', $line->tva_tx.($line->vat_src_code?(' ('.$line->vat_src_code.')'):''), $seller, $buyer, 0, $line->info_bits, $line->product_type, false, 1) . '%fk_prev_id != null) print ' readonly'; - print '>fk_prev_id != null) print ' readonly'; - print '> + info_bits & 2) != 2) { // I comment this because it shows info even when not required // for example always visible on invoice but must be visible only if stock module on and stock decrease option is on invoice validation and status is not validated // must also not be output for most entities (proposal, intervention, ...) //if($line->qty > $line->stock) print img_picto($langs->trans("StockTooLow"),"warning", 'style="vertical-align: bottom;"')." "; - print 'fk_prev_id != null ) print ' readonly'; - print '>'; - } else { ?> -   - + print ''; + } + ?> '; + print ''; print $form->selectUnits($line->fk_unit, "units"); print ' + $coldisplay+=$colspan; + ?> + ">
">
trans('ServiceLimitedDuration').' '.$langs->trans('From').' '; ?> - global->MAIN_USE_HOURMIN_IN_DATE_RANGE)?$conf->global->MAIN_USE_HOURMIN_IN_DATE_RANGE:''); - print $form->selectDate($line->date_start, 'date_start', $hourmin, $hourmin, $line->date_start?0:1, "updateline", 1, 0); - print ' '.$langs->trans('to').' '; - print $form->selectDate($line->date_end, 'date_end', $hourmin, $hourmin, $line->date_end?0:1, "updateline", 1, 0); - print '' - ?> -
'; print ''; - print getTitleFieldOfList('Ref', 0, $_SERVER["PHP_SELF"], '', $page, $param, '', $sortfield, $sortorder, '', 1); - print getTitleFieldOfList('By', 0, $_SERVER["PHP_SELF"], '', $page, $param, '', $sortfield, $sortorder, '', 1); - print getTitleFieldOfList('Type', 0, $_SERVER["PHP_SELF"], '', $page, $param, '', $sortfield, $sortorder, '', 1); + print getTitleFieldOfList('Ref', 0, $_SERVER["PHP_SELF"], '', $page, $param, '', $sortfield, $sortorder, '', 1); + print getTitleFieldOfList('By', 0, $_SERVER["PHP_SELF"], '', $page, $param, '', $sortfield, $sortorder, '', 1); + print getTitleFieldOfList('Type', 0, $_SERVER["PHP_SELF"], '', $page, $param, '', $sortfield, $sortorder, '', 1); print getTitleFieldOfList('Title', 0, $_SERVER["PHP_SELF"], '', $page, $param, '', $sortfield, $sortorder, '', 1); - print getTitleFieldOfList('Date', 0, $_SERVER["PHP_SELF"], 'a.datep', $page, $param, '', $sortfield, $sortorder, 'center ', 1); - print getTitleFieldOfList('', 0, $_SERVER["PHP_SELF"], '', $page, $param, '', $sortfield, $sortorder, 'right ', 1); + print getTitleFieldOfList('Date', 0, $_SERVER["PHP_SELF"], 'a.datep', $page, $param, '', $sortfield, $sortorder, 'center ', 1); + print getTitleFieldOfList('', 0, $_SERVER["PHP_SELF"], '', $page, $param, '', $sortfield, $sortorder, 'right ', 1); print ''; print "\n"; - $userstatic = new User($this->db); - - if (count($listofactions)) + if (is_array($listofactions) && count($listofactions)) { + $cacheusers=array(); + $cursorevent = 0; foreach($listofactions as $action) { @@ -246,8 +244,20 @@ class FormActions print ''; // Type @@ -284,10 +294,7 @@ class FormActions } print ''; print ''; print ''; diff --git a/htdocs/core/modules/facture/mod_facture_terre.php b/htdocs/core/modules/facture/mod_facture_terre.php index c01fa9d2e09..a4cc1762766 100644 --- a/htdocs/core/modules/facture/mod_facture_terre.php +++ b/htdocs/core/modules/facture/mod_facture_terre.php @@ -184,6 +184,8 @@ class mod_facture_terre extends ModeleNumRefFactures { global $db; + dol_syslog(get_class($this)."::getNextValue mode=".$mode, LOG_DEBUG); + if ($invoice->type == 2) $prefix=$this->prefixcreditnote; elseif ($invoice->type == 3) $prefix=$this->prefixdeposit; else $prefix=$this->prefixinvoice; @@ -195,7 +197,6 @@ class mod_facture_terre extends ModeleNumRefFactures $sql.= " AND entity IN (".getEntity('invoicenumber', 1, $invoice).")"; $resql=$db->query($sql); - dol_syslog(get_class($this)."::getNextValue", LOG_DEBUG); if ($resql) { $obj = $db->fetch_object($resql); @@ -219,7 +220,6 @@ class mod_facture_terre extends ModeleNumRefFactures $sql.= " AND entity IN (".getEntity('invoicenumber', 1, $invoice).")"; $sql.= " ORDER BY ref DESC"; - dol_syslog(get_class($this)."::getNextValue", LOG_DEBUG); $resql=$db->query($sql); if ($resql) { From e6c28188db335b61a58efb454f1c5ec8f7349236 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 14 Jun 2019 13:38:52 +0200 Subject: [PATCH 317/365] Update product.lib.php --- htdocs/core/lib/product.lib.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/core/lib/product.lib.php b/htdocs/core/lib/product.lib.php index b6f8983f284..61f2fd05b00 100644 --- a/htdocs/core/lib/product.lib.php +++ b/htdocs/core/lib/product.lib.php @@ -494,7 +494,7 @@ function measuring_units_string($unit, $measuring_style = '') require_once DOL_DOCUMENT_ROOT.'/core/class/cunits.class.php'; $measuringUnits= new CUnits($db); $result = $measuringUnits->fetchAll('', '', 0, 0, array( - 't.rowid' => $unit, + 't.scale' => $unit, 't.unit_type' => $measuring_style, 't.active' => 1 )); From 1fa1b91916a1adeb06102f763e1ca5f0aac25a95 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 14 Jun 2019 13:46:59 +0200 Subject: [PATCH 318/365] Update product.lib.php --- htdocs/core/lib/product.lib.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/core/lib/product.lib.php b/htdocs/core/lib/product.lib.php index 61f2fd05b00..4d79d0d4db3 100644 --- a/htdocs/core/lib/product.lib.php +++ b/htdocs/core/lib/product.lib.php @@ -483,7 +483,7 @@ function show_stats_for_company($product, $socid) /** * Return translation label of a unit key * - * @param int $unit Unit key (-3,0,3,98,99...) + * @param int $unit ID of unit (rowid in llx_c_units table) * @param string $measuring_style Style of unit: weight, volume,... * @return string Unit string * @see formproduct->selectMeasuringUnits @@ -494,7 +494,7 @@ function measuring_units_string($unit, $measuring_style = '') require_once DOL_DOCUMENT_ROOT.'/core/class/cunits.class.php'; $measuringUnits= new CUnits($db); $result = $measuringUnits->fetchAll('', '', 0, 0, array( - 't.scale' => $unit, + 't.rowid' => $unit, 't.unit_type' => $measuring_style, 't.active' => 1 )); From bc8c7e0d4f68817095de0a1404f6b8f94ebdbfe7 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 14 Jun 2019 15:03:37 +0200 Subject: [PATCH 319/365] Code comment --- htdocs/societe/paymentmodes.php | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/htdocs/societe/paymentmodes.php b/htdocs/societe/paymentmodes.php index e37d7caf91f..3b1a2dd0459 100644 --- a/htdocs/societe/paymentmodes.php +++ b/htdocs/societe/paymentmodes.php @@ -48,7 +48,7 @@ if ($user->societe_id) $socid=$user->societe_id; $result = restrictedArea($user, 'societe', '', ''); $id=GETPOST("id", "int"); -$source=GETPOST("source", "alpha"); +$source=GETPOST("source", "alpha"); // source can be a source or a paymentmode $ribid=GETPOST("ribid", "int"); $action=GETPOST("action", 'alpha', 3); $cancel=GETPOST('cancel', 'alpha'); @@ -419,6 +419,15 @@ if (empty($reshook)) $companypaymentmode = new CompanyPaymentMode($db); if ($companypaymentmode->fetch($ribid?$ribid:$id)) { + /*if ($companypaymentmode->stripe_card_ref && preg_match('/pm_/', $companypaymentmode->stripe_card_ref)) + { + $payment_method = \Stripe\PaymentMethod::retrieve($companypaymentmode->stripe_card_ref); + if ($payment_method) + { + $payment_method->detach(); + } + }*/ + $result = $companypaymentmode->delete($user); if ($result > 0) { @@ -586,7 +595,7 @@ if (empty($reshook)) $db->rollback(); } } - if ($action == 'setlocalassourcedefault') + if ($action == 'setlocalassourcedefault') // Set as default when payment mode defined locally (and may be also remotely) { try { $companypaymentmode->setAsDefault($id); @@ -601,11 +610,12 @@ if (empty($reshook)) setEventMessages($e->getMessage(), null, 'errors'); } } - elseif ($action == 'setassourcedefault') + elseif ($action == 'setassourcedefault') // Set as default when payment mode defined remotely only { try { $cu=$stripe->customerStripe($object, $stripeacc, $servicestatus); - $cu->default_source = (string) $source; + $cu->default_source = (string) $source; // Old + $cu->invoice_settings->default_payment_method = (string) $source; // New $result = $cu->save(); $url=DOL_URL_ROOT.'/societe/paymentmodes.php?socid='.$object->id; From baf95c3c86a9fa6f3c24a5253794c48c14f673d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20FRANCE?= Date: Fri, 14 Jun 2019 16:47:53 +0200 Subject: [PATCH 320/365] Update agenda.lang --- htdocs/langs/en_US/agenda.lang | 1 + 1 file changed, 1 insertion(+) diff --git a/htdocs/langs/en_US/agenda.lang b/htdocs/langs/en_US/agenda.lang index 88f41d2c3c9..30c2a3d4038 100644 --- a/htdocs/langs/en_US/agenda.lang +++ b/htdocs/langs/en_US/agenda.lang @@ -38,6 +38,7 @@ ActionsEvents=Events for which Dolibarr will create an action in agenda automati EventRemindersByEmailNotEnabled=Event reminders by email was not enabled into %s module setup. ##### Agenda event labels ##### NewCompanyToDolibarr=Third party %s created +COMPANY_DELETEInDolibarr=Third party %s deleted ContractValidatedInDolibarr=Contract %s validated CONTRACT_DELETEInDolibarr=Contract %s deleted PropalClosedSignedInDolibarr=Proposal %s signed From 8afffc87627f1236d1355080c835a1dfc840dd76 Mon Sep 17 00:00:00 2001 From: Juanjo Menent Date: Fri, 14 Jun 2019 18:28:01 +0200 Subject: [PATCH 321/365] FIX: #11335 --- htdocs/fourn/facture/card.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/htdocs/fourn/facture/card.php b/htdocs/fourn/facture/card.php index 3956684d9b2..bca9cb8ad4e 100644 --- a/htdocs/fourn/facture/card.php +++ b/htdocs/fourn/facture/card.php @@ -4,7 +4,7 @@ * Copyright (C) 2004 Christophe Combelles * Copyright (C) 2005 Marc Barilley * Copyright (C) 2005-2013 Regis Houssin - * Copyright (C) 2010-2014 Juanjo Menent + * Copyright (C) 2010-2019 Juanjo Menent * Copyright (C) 2013-2015 Philippe Grand * Copyright (C) 2013 Florian Henry * Copyright (C) 2014-2016 Marcos García @@ -831,6 +831,8 @@ if (empty($reshook)) // Auto calculation of date due if not filled by user if(empty($object->date_echeance)) $object->date_echeance = $object->calculate_date_lim_reglement(); + $object->fetch_thirdparty(); + // If creation from another object of another module if (! $error && $_POST['origin'] && $_POST['originid']) { From cd5c2c324959eb12569c077788cfe8d5b2363733 Mon Sep 17 00:00:00 2001 From: ptibogxiv Date: Fri, 14 Jun 2019 18:39:05 +0200 Subject: [PATCH 322/365] Update llx_bom_bom.sql --- htdocs/install/mysql/tables/llx_bom_bom.sql | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/htdocs/install/mysql/tables/llx_bom_bom.sql b/htdocs/install/mysql/tables/llx_bom_bom.sql index 4e559566817..9c6e014586d 100644 --- a/htdocs/install/mysql/tables/llx_bom_bom.sql +++ b/htdocs/install/mysql/tables/llx_bom_bom.sql @@ -26,7 +26,8 @@ CREATE TABLE llx_bom_bom( fk_product integer, qty double(24,8), efficiency double(8,4) DEFAULT 1, - date_creation datetime NOT NULL, + date_creation datetime NOT NULL, + date_valid datetime NOT NULL, tms timestamp, date_valid datetime, fk_user_creat integer NOT NULL, @@ -35,4 +36,4 @@ CREATE TABLE llx_bom_bom( import_key varchar(14), status integer NOT NULL -- END MODULEBUILDER FIELDS -) ENGINE=innodb; \ No newline at end of file +) ENGINE=innodb; From d838ced12e568acb58c23fc4b5b48d736832578b Mon Sep 17 00:00:00 2001 From: ptibogxiv Date: Fri, 14 Jun 2019 18:41:38 +0200 Subject: [PATCH 323/365] Update 9.0.0-10.0.0.sql --- htdocs/install/mysql/migration/9.0.0-10.0.0.sql | 1 + 1 file changed, 1 insertion(+) diff --git a/htdocs/install/mysql/migration/9.0.0-10.0.0.sql b/htdocs/install/mysql/migration/9.0.0-10.0.0.sql index e353f317b45..385b740a685 100644 --- a/htdocs/install/mysql/migration/9.0.0-10.0.0.sql +++ b/htdocs/install/mysql/migration/9.0.0-10.0.0.sql @@ -228,6 +228,7 @@ CREATE TABLE llx_bom_bom( ALTER TABLE llx_bom_bom ADD COLUMN efficiency double(8,4) DEFAULT 1; ALTER TABLE llx_bom_bom ADD COLUMN entity integer DEFAULT 1 NOT NULL; +ALTER TABLE llx_bom_bom ADD COLUMN date_valid datetime NOT NULL; create table llx_bom_bom_extrafields ( From a73ae49c4d623b3e9aabb31230187c4b5d264b04 Mon Sep 17 00:00:00 2001 From: Juanjo Menent Date: Fri, 14 Jun 2019 18:56:30 +0200 Subject: [PATCH 324/365] FIX: #11296 --- htdocs/projet/class/project.class.php | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/htdocs/projet/class/project.class.php b/htdocs/projet/class/project.class.php index 549865c63cd..5abf7e76d33 100644 --- a/htdocs/projet/class/project.class.php +++ b/htdocs/projet/class/project.class.php @@ -5,6 +5,7 @@ * Copyright (C) 2013 Florian Henry * Copyright (C) 2014-2017 Marcos García * Copyright (C) 2017 Ferran Marcet + * Copyright (C) 2019 Juanjo Menent * * 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 @@ -695,6 +696,27 @@ class Project extends CommonObject $ret = $this->deleteTasks($user); if ($ret < 0) $error++; + + // Delete all child tables + if (! $error) { + $elements = array('categorie_project'); // elements to delete. TODO Make goodway to delete + foreach($elements as $table) + { + if (! $error) { + $sql = "DELETE FROM ".MAIN_DB_PREFIX.$table; + $sql.= " WHERE fk_project = ".$this->id; + + $result = $this->db->query($sql); + if (! $result) { + $error++; + $this->errors[] = $this->db->lasterror(); + } + } + } + } + + + // Delete project if (! $error) { From 651f4158ac6c4b122d544adb50df49fb90a00f97 Mon Sep 17 00:00:00 2001 From: ptibogxiv Date: Sun, 16 Jun 2019 14:18:26 +0200 Subject: [PATCH 325/365] Fix add / delete contact access --- htdocs/commande/class/api_orders.class.php | 34 +++++++++------------- 1 file changed, 14 insertions(+), 20 deletions(-) diff --git a/htdocs/commande/class/api_orders.class.php b/htdocs/commande/class/api_orders.class.php index 27b55f9e57f..36df0c0eacb 100644 --- a/htdocs/commande/class/api_orders.class.php +++ b/htdocs/commande/class/api_orders.class.php @@ -415,21 +415,16 @@ class Orders extends DolibarrApi */ public function postContact($id, $contactid, $type) { - if(!DolibarrApiAccess::$user->rights->commande->creer) { - throw new RestException(401); - } - - $result = $this->commande->fetch($id); - - if(!$result) { - throw new RestException(404, 'Order not found'); + if (! DolibarrApiAccess::$user->rights->commande->creer) { + throw new RestException(401); } - if (!in_array($type, array('BILLING', 'SHIPPING', 'CUSTOMER'), true)) { - throw new RestException(500, 'Availables types: BILLING, SHIPPING OR CUSTOMER'); + $result = $this->commande->fetch($id); + if (! $result) { + throw new RestException(404, 'Order not found'); } - if(!DolibarrApi::_checkAccessToResource('order', $this->commande->id)) { + if (! DolibarrApi::_checkAccessToResource('commande', $this->commande->id)) { throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login); } @@ -457,17 +452,16 @@ class Orders extends DolibarrApi */ public function deleteContact($id, $rowid) { - if(!DolibarrApiAccess::$user->rights->commande->creer) { - throw new RestException(401); - } - - $result = $this->commande->fetch($id); - - if(!$result) { - throw new RestException(404, 'Order not found'); + if (! DolibarrApiAccess::$user->rights->commande->creer) { + throw new RestException(401); } - if(!DolibarrApi::_checkAccessToResource('order', $this->commande->id)) { + $result = $this->commande->fetch($id); + if (! $result) { + throw new RestException(404, 'Order not found'); + } + + if (! DolibarrApi::_checkAccessToResource('commande', $this->commande->id)) { throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login); } From 48b2cb83af29a9d54b333d224e6847faa3e6a969 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sun, 16 Jun 2019 17:08:23 +0200 Subject: [PATCH 326/365] Close #11152 by a manual merge to keep only required things --- .../interface_80_modStripe_Stripe.class.php | 30 +++++-- htdocs/public/stripe/ipn.php | 89 ++++++++++++++++++- .../class/companypaymentmode.class.php | 20 ++--- htdocs/societe/class/societeaccount.class.php | 36 +++++++- htdocs/societe/paymentmodes.php | 3 +- htdocs/stripe/class/stripe.class.php | 64 +++++++++---- 6 files changed, 205 insertions(+), 37 deletions(-) diff --git a/htdocs/core/triggers/interface_80_modStripe_Stripe.class.php b/htdocs/core/triggers/interface_80_modStripe_Stripe.class.php index 8282a09a43d..f9d28a0b984 100644 --- a/htdocs/core/triggers/interface_80_modStripe_Stripe.class.php +++ b/htdocs/core/triggers/interface_80_modStripe_Stripe.class.php @@ -148,32 +148,50 @@ class InterfaceStripe { $namecleaned = $object->name ? $object->name : null; $vatcleaned = $object->tva_intra ? $object->tva_intra : null; - - $taxinfo = array('type'=>'vat'); + $desccleaned = $object->name_alias ? $object->name_alias : null; + $taxexemptcleaned = $object->tva_assuj ? 'none' : 'exempt'; + $langcleaned = $object->default_lang ? array(substr($object->default_lang, 0, 2)) : null; + /*$taxinfo = array('type'=>'vat'); if ($vatcleaned) { $taxinfo["tax_id"] = $vatcleaned; } // We force data to "null" if not defined as expected by Stripe - if (empty($vatcleaned)) $taxinfo=null; + if (empty($vatcleaned)) $taxinfo=null;*/ // Detect if we change a Stripe info (email, description, vat id) $changerequested = 0; if (! empty($object->email) && $object->email != $customer->email) $changerequested++; - if ($namecleaned != $customer->description) $changerequested++; + /* if ($namecleaned != $customer->description) $changerequested++; if (! isset($customer->tax_info['tax_id']) && ! is_null($vatcleaned)) $changerequested++; elseif (isset($customer->tax_info['tax_id']) && is_null($vatcleaned)) $changerequested++; elseif (isset($customer->tax_info['tax_id']) && ! is_null($vatcleaned)) { if ($vatcleaned != $customer->tax_info['tax_id']) $changerequested++; + } */ + if ($namecleaned != $customer->name) $changerequested++; + if ($desccleaned != $customer->description) $changerequested++; + if (($customer->tax_exempt == 'exempt' && ! $object->tva_assuj) || (! $customer->tax_exempt == 'exempt' && empty($object->tva_assuj))) $changerequested++; + if (! isset($customer->tax_ids['data']) && ! is_null($vatcleaned)) $changerequested++; + elseif (isset($customer->tax_ids['data']) && is_null($vatcleaned)) $changerequested++; + elseif (isset($customer->tax_ids['data']) && ! is_null($vatcleaned)) + { + $taxinfo = reset($customer->tax_ids['data']); + if (isset($taxinfo->value) && $vatcleaned != $taxinfo->value) $changerequested++; } if ($changerequested) { - if (! empty($object->email)) $customer->email = $object->email; + /*if (! empty($object->email)) $customer->email = $object->email; $customer->description = $namecleaned; if (empty($taxinfo)) $customer->tax_info = array('type'=>'vat', 'tax_id'=>null); - else $customer->tax_info = $taxinfo; + else $customer->tax_info = $taxinfo; */ + $customer->name = $namecleaned; + $customer->description = $desccleaned; + $customer->preferred_locales = $langcleaned; + $customer->tax_exempt = $taxexemptcleaned; + if (! empty($vatcleaned)) $customer->tax_ids = array('object'=>'list', 'data'=>array('value'=>$vatcleaned)); + else $customer->tax_ids = null; $customer->save(); } diff --git a/htdocs/public/stripe/ipn.php b/htdocs/public/stripe/ipn.php index 8795031592a..bfd1788e12f 100644 --- a/htdocs/public/stripe/ipn.php +++ b/htdocs/public/stripe/ipn.php @@ -293,7 +293,6 @@ elseif ($event->type == 'customer.source.delete') { elseif ($event->type == 'customer.deleted') { $db->begin(); $sql = "DELETE FROM ".MAIN_DB_PREFIX."societe_account WHERE key_account = '".$db->escape($event->data->object->id)."' and site='stripe'"; - dol_syslog(get_class($this) . "::delete sql=" . $sql, LOG_DEBUG); $db->query($sql); $db->commit(); } @@ -309,6 +308,94 @@ elseif ($event->type == 'checkout.session.completed') // Called when making pay // TODO: create fees // TODO: Redirect to paymentok.php } +elseif ($event->type == 'payment_method.attached') { + require_once DOL_DOCUMENT_ROOT.'/societe/class/companypaymentmode.class.php'; + require_once DOL_DOCUMENT_ROOT.'/societe/class/societeaccount.class.php'; + $societeaccount = new SocieteAccount($db); + + $companypaymentmode = new CompanyPaymentMode($db); + + $idthirdparty = $societeaccount->getThirdPartyID($db->escape($event->data->object->customer), 'stripe', $servicestatus); + if ($idthirdparty > 0) // If the payment mode is on an external customer that is known in societeaccount, we can create the payment mode + { + $companypaymentmode->stripe_card_ref = $db->escape($event->data->object->id); + $companypaymentmode->fk_soc = $idthirdparty; + $companypaymentmode->bank = null; + $companypaymentmode->label = null; + $companypaymentmode->number = $db->escape($event->data->object->id); + $companypaymentmode->last_four = $db->escape($event->data->object->card->last4); + $companypaymentmode->card_type = $db->escape($event->data->object->card->branding); + $companypaymentmode->proprio = $db->escape($event->data->object->billing_details->name); + $companypaymentmode->exp_date_month = $db->escape($event->data->object->card->exp_month); + $companypaymentmode->exp_date_year = $db->escape($event->data->object->card->exp_year); + $companypaymentmode->cvn = null; + $companypaymentmode->datec = $db->escape($event->data->object->created); + $companypaymentmode->default_rib = 0; + $companypaymentmode->type = $db->escape($event->data->object->type); + $companypaymentmode->country_code = $db->escape($event->data->object->card->country); + $companypaymentmode->status = $servicestatus; + + $db->begin(); + if (! $error) + { + $result = $companypaymentmode->create($user); + if ($result < 0) + { + $error++; + } + } + if (! $error) + { + $db->commit(); + } + else + { + $db->rollback(); + } + } +} +elseif ($event->type == 'payment_method.updated') { + require_once DOL_DOCUMENT_ROOT.'/societe/class/companypaymentmode.class.php'; + $companypaymentmode = new CompanyPaymentMode($db); + $companypaymentmode->fetch(0, '', 0, '', " AND stripe_card_ref = '".$db->escape($event->data->object->id)."'"); + $companypaymentmode->bank = null; + $companypaymentmode->label = null; + $companypaymentmode->number = $db->escape($event->data->object->id); + $companypaymentmode->last_four = $db->escape($event->data->object->card->last4); + $companypaymentmode->proprio = $db->escape($event->data->object->billing_details->name); + $companypaymentmode->exp_date_month = $db->escape($event->data->object->card->exp_month); + $companypaymentmode->exp_date_year = $db->escape($event->data->object->card->exp_year); + $companypaymentmode->cvn = null; + $companypaymentmode->datec = $db->escape($event->data->object->created); + $companypaymentmode->default_rib = 0; + $companypaymentmode->type = $db->escape($event->data->object->type); + $companypaymentmode->country_code = $db->escape($event->data->object->card->country); + $companypaymentmode->status = $servicestatus; + + $db->begin(); + if (! $error) + { + $result = $companypaymentmode->update($user); + if ($result < 0) + { + $error++; + } + } + if (! $error) + { + $db->commit(); + } + else + { + $db->rollback(); + } +} +elseif ($event->type == 'payment_method.detached') { + $db->begin(); + $sql = "DELETE FROM ".MAIN_DB_PREFIX."societe_rib WHERE ref = '".$db->escape($event->data->object->id)."' and status = ".$servicestatus; + $db->query($sql); + $db->commit(); +} elseif ($event->type == 'charge.succeeded') { // TODO: create fees // TODO: Redirect to paymentok.php diff --git a/htdocs/societe/class/companypaymentmode.class.php b/htdocs/societe/class/companypaymentmode.class.php index ae9f0a44b32..e3e86e2cf4a 100644 --- a/htdocs/societe/class/companypaymentmode.class.php +++ b/htdocs/societe/class/companypaymentmode.class.php @@ -169,21 +169,21 @@ class CompanyPaymentMode extends CommonObject public $starting_date; public $ending_date; - + /** * Date creation record (datec) * * @var integer */ public $datec; - + /** * Date modification record (tms) * * @var integer */ public $tms; - + public $import_key; // END MODULEBUILDER PROPERTIES @@ -297,15 +297,15 @@ class CompanyPaymentMode extends CommonObject /** * Load object in memory from the database * - * @param int $id Id object - * @param string $ref Ref - * @param int $socid Id of company to get first default payment mode - * @param string $type Filter on type ('ban', 'card', ...) - * @return int <0 if KO, 0 if not found, >0 if OK + * @param int $id Id object + * @param string $ref Ref + * @param int $socid Id of company to get first default payment mode + * @param string $type Filter on type ('ban', 'card', ...) + * @param string $morewhere More SQL filters (' AND ...') + * @return int <0 if KO, 0 if not found, >0 if OK */ - public function fetch($id, $ref = null, $socid = 0, $type = '') + public function fetch($id, $ref = null, $socid = 0, $type = '', $morewhere = '') { - $morewhere = ''; if ($socid) $morewhere.= " AND fk_soc = ".$this->db->escape($socid)." AND default_rib = 1"; if ($type) $morewhere.= " AND type = '".$this->db->escape($type)."'"; diff --git a/htdocs/societe/class/societeaccount.class.php b/htdocs/societe/class/societeaccount.class.php index 6f24471a295..3fc7b225c77 100644 --- a/htdocs/societe/class/societeaccount.class.php +++ b/htdocs/societe/class/societeaccount.class.php @@ -3,7 +3,6 @@ * Copyright (C) 2014-2016 Juanjo Menent * Copyright (C) 2015 Florian Henry * Copyright (C) 2015 Raphaël Doursenaud - * Copyright (C) ---Put here your own copyright and developer email--- * * 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 @@ -281,12 +280,13 @@ class SocieteAccount extends CommonObject } /** - * Try to find the external customer id of a thirdparty for an another site/system. + * Try to find the external customer id of a thirdparty for another site/system. * * @param int $id Id of third party * @param string $site Site (example: 'stripe', '...') * @param int $status Status (0=test, 1=live) * @return string Stripe customer ref 'cu_xxxxxxxxxxxxx' or '' + * @see getThirdPartyID() */ public function getCustomerAccount($id, $site, $status = 0) { @@ -314,6 +314,38 @@ class SocieteAccount extends CommonObject return $key; } + /** + * Try to find the thirdparty id for an another site/system external id. + * + * @param string $id Id of customer in external system (example: 'cu_xxxxxxxxxxxxx', ...) + * @param string $site Site (example: 'stripe', '...') + * @param int $status Status (0=test, 1=live) + * @return string Id of third party + * @see getCustomerAccount() + */ + public function getThirdPartyID($id, $site, $status = 0) + { + $socid = 0; + + $sql = "SELECT sa.fk_soc as fk_soc, sa.key_account, sa.entity"; + $sql.= " FROM " . MAIN_DB_PREFIX . "societe_account as sa"; + $sql.= " WHERE sa.key_account = '".$this->db->escape($id)."'"; + $sql.= " AND sa.entity IN (".getEntity('societe').")"; + $sql.= " AND sa.site = '".$this->db->escape($site)."' AND sa.status = ".((int) $status); + $sql.= " AND sa.fk_soc > 0"; + + dol_syslog(get_class($this) . "::getCustomerAccount Try to find the first thirdparty id for ".$site." for external id=".$id, LOG_DEBUG); + $result = $this->db->query($sql); + if ($result) { + if ($this->db->num_rows($result)) { + $obj = $this->db->fetch_object($result); + $socid = $obj->fk_soc; + } + } + + return $socid; + } + /** * Update object into database * diff --git a/htdocs/societe/paymentmodes.php b/htdocs/societe/paymentmodes.php index 3b1a2dd0459..24329a48a33 100644 --- a/htdocs/societe/paymentmodes.php +++ b/htdocs/societe/paymentmodes.php @@ -1123,7 +1123,8 @@ if ($socid && $action != 'edit' && $action != 'create' && $action != 'editcard' print ''; // Default print ''; // Progress declared From c0a30d1ff5484471a9bb9aa8ab4f6c1dad0472c4 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sun, 16 Jun 2019 22:17:04 +0200 Subject: [PATCH 330/365] FIX #11325 FIX #5249 Conflicts: htdocs/projet/tasks/time.php --- htdocs/projet/tasks/time.php | 61 +++++++++++++++++++----------------- 1 file changed, 32 insertions(+), 29 deletions(-) diff --git a/htdocs/projet/tasks/time.php b/htdocs/projet/tasks/time.php index 48167edcc1d..e69f4fcd899 100644 --- a/htdocs/projet/tasks/time.php +++ b/htdocs/projet/tasks/time.php @@ -317,7 +317,8 @@ if (($id > 0 || ! empty($ref)) || $projectidforalltimes > 0) $object->project = clone $projectstatic; } - $userWrite = $projectstatic->restrictedProjectArea($user,'write'); + $userRead = $projectstatic->restrictedProjectArea($user, 'read'); + $linktocreatetime = ''; if ($projectstatic->id > 0) { @@ -427,33 +428,30 @@ if (($id > 0 || ! empty($ref)) || $projectidforalltimes > 0) print '
'; // Link to create time - //if ((empty($id) && empty($ref)) || ! empty($projectidforalltimes)) - //{ - if ($user->rights->projet->all->creer || $user->rights->projet->creer) - { - if ($projectstatic->public || $userWrite > 0) - { - if (! empty($projectidforalltimes)) // We are on tab 'Time Spent' of project - { - $backtourl = $_SERVER['PHP_SELF'].'?projectid='.$projectstatic->id.($withproject?'&withproject=1':''); - $linktocreatetime = ''.$langs->trans('AddTimeSpent').''; - } - else // We are on tab 'Time Spent' of task - { - $backtourl = $_SERVER['PHP_SELF'].'?id='.$object->id.($withproject?'&withproject=1':''); - $linktocreatetime = ''.$langs->trans('AddTimeSpent').''; - } - } - else - { - $linktocreatetime = ''.$langs->trans('AddTime').''; - } - } - else - { - $linktocreatetime = ''.$langs->trans('AddTime').''; - } - //} + if ($user->rights->projet->all->lire || $user->rights->projet->lire)) // To enter time, read permission is enough + { + if ($projectstatic->public || $userRead > 0) + { + if (! empty($projectidforalltimes)) // We are on tab 'Time Spent' of project + { + $backtourl = $_SERVER['PHP_SELF'].'?projectid='.$projectstatic->id.($withproject?'&withproject=1':''); + $linktocreatetime = ''.$langs->trans('AddTimeSpent').''; + } + else // We are on tab 'Time Spent' of task + { + $backtourl = $_SERVER['PHP_SELF'].'?id='.$object->id.($withproject?'&withproject=1':''); + $linktocreatetime = ''.$langs->trans('AddTimeSpent').''; + } + } + else + { + $linktocreatetime = ''.$langs->trans('AddTime').''; + } + } + else + { + $linktocreatetime = ''.$langs->trans('AddTime').''; + } } } @@ -803,7 +801,12 @@ if (($id > 0 || ! empty($ref)) || $projectidforalltimes > 0) // Duration - Time spent print '
'; // Progress declared From 157526205d267c0d73aaefb525e97f45b4e0a9aa Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sun, 16 Jun 2019 23:00:40 +0200 Subject: [PATCH 331/365] Fix css --- htdocs/projet/tasks.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/projet/tasks.php b/htdocs/projet/tasks.php index ccc8a0548c8..b05b27b5e90 100644 --- a/htdocs/projet/tasks.php +++ b/htdocs/projet/tasks.php @@ -667,7 +667,7 @@ elseif ($id > 0 || ! empty($ref)) print ''; $title=$langs->trans("ListOfTasks"); - $linktotasks = dolGetButtonTitle($langs->trans('GoToGanttView'), '', 'fa fa-calendar-minus-o', DOL_URL_ROOT.'/projet/ganttview.php?id='.$object->id.'&withproject=1'); + $linktotasks = dolGetButtonTitle($langs->trans('GoToGanttView'), '', 'fa fa-calendar-minus-o paddingleft', DOL_URL_ROOT.'/projet/ganttview.php?id='.$object->id.'&withproject=1'); //print_barre_liste($title, 0, $_SERVER["PHP_SELF"], '', $sortfield, $sortorder, $linktotasks, $num, $totalnboflines, 'title_generic.png', 0, '', '', 0, 1); print load_fiche_titre($title, $linktotasks.'   '.$linktocreatetask, 'title_generic.png'); From 8330078de18ddd00c322398e94c5bf560161f5b5 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 17 Jun 2019 12:33:09 +0200 Subject: [PATCH 332/365] Fix default value --- htdocs/core/class/html.formcompany.class.php | 4 ++-- htdocs/societe/card.php | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/htdocs/core/class/html.formcompany.class.php b/htdocs/core/class/html.formcompany.class.php index d2fb93000a9..d1366cb8511 100644 --- a/htdocs/core/class/html.formcompany.class.php +++ b/htdocs/core/class/html.formcompany.class.php @@ -908,7 +908,7 @@ class FormCompany $out = ''; print ''; From cf825875040fbe5235d59ba32c9727e9471b6d6d Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 17 Jun 2019 15:02:44 +0200 Subject: [PATCH 333/365] Fix menu entry --- htdocs/core/menus/standard/eldy.lib.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/core/menus/standard/eldy.lib.php b/htdocs/core/menus/standard/eldy.lib.php index 3073ffe6032..3576f35642e 100644 --- a/htdocs/core/menus/standard/eldy.lib.php +++ b/htdocs/core/menus/standard/eldy.lib.php @@ -1285,7 +1285,7 @@ function print_left_eldy_menu($db, $menu_array_before, $menu_array_after, &$tabM $newmenu->add("/accountancy/bookkeeping/balance.php?mainmenu=accountancy&leftmenu=accountancy_accountancy", $langs->trans("AccountBalance"), 1, $user->rights->accounting->mouvements->lire); // Files - if (! empty($conf->global->MAIN_FEATURES_LEVEL) && $conf->global->MAIN_FEATURES_LEVEL >= 2) + if (! empty($conf->global->MAIN_FEATURES_LEVEL) && $conf->global->MAIN_FEATURES_LEVEL >= 1) { $newmenu->add("/compta/compta-files.php?mainmenu=accountancy&leftmenu=accountancy_files", $langs->trans("AccountantFiles"), 1, $user->rights->accounting->mouvements->lire); } From a74eaaff4d1c9f84af74de2a4872fde45136c177 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 17 Jun 2019 15:54:54 +0200 Subject: [PATCH 334/365] Fix sort of linked elements --- htdocs/comm/propal/tpl/linkedobjectblock.tpl.php | 2 ++ htdocs/commande/tpl/linkedobjectblock.tpl.php | 2 ++ htdocs/compta/facture/tpl/linkedobjectblock.tpl.php | 2 ++ htdocs/core/class/html.form.class.php | 7 +++---- 4 files changed, 9 insertions(+), 4 deletions(-) diff --git a/htdocs/comm/propal/tpl/linkedobjectblock.tpl.php b/htdocs/comm/propal/tpl/linkedobjectblock.tpl.php index 1b78370048a..61d79e4abbb 100644 --- a/htdocs/comm/propal/tpl/linkedobjectblock.tpl.php +++ b/htdocs/comm/propal/tpl/linkedobjectblock.tpl.php @@ -43,6 +43,8 @@ $linkedObjectBlock = $GLOBALS['linkedObjectBlock']; // Load translation files required by the page $langs->load("propal"); +$linkedObjectBlock = dol_sort_array($linkedObjectBlock, 'date', 'desc'); + $total=0; $ilink=0; foreach($linkedObjectBlock as $key => $objectlink) { diff --git a/htdocs/commande/tpl/linkedobjectblock.tpl.php b/htdocs/commande/tpl/linkedobjectblock.tpl.php index cce17b32695..1f8b440749f 100644 --- a/htdocs/commande/tpl/linkedobjectblock.tpl.php +++ b/htdocs/commande/tpl/linkedobjectblock.tpl.php @@ -39,6 +39,8 @@ $linkedObjectBlock = $GLOBALS['linkedObjectBlock']; // Load translation files required by the page $langs->load("orders"); +$linkedObjectBlock = dol_sort_array($linkedObjectBlock, 'date', 'desc'); + $total=0; $ilink=0; foreach($linkedObjectBlock as $key => $objectlink) { diff --git a/htdocs/compta/facture/tpl/linkedobjectblock.tpl.php b/htdocs/compta/facture/tpl/linkedobjectblock.tpl.php index 97f0b876abc..a9fbb5da2eb 100644 --- a/htdocs/compta/facture/tpl/linkedobjectblock.tpl.php +++ b/htdocs/compta/facture/tpl/linkedobjectblock.tpl.php @@ -38,6 +38,8 @@ $linkedObjectBlock = $GLOBALS['linkedObjectBlock']; $langs->load("bills"); +$linkedObjectBlock = dol_sort_array($linkedObjectBlock, 'date', 'desc'); + $total=0; $ilink=0; foreach($linkedObjectBlock as $key => $objectlink) { diff --git a/htdocs/core/class/html.form.class.php b/htdocs/core/class/html.form.class.php index 63246fb0287..c4aaab27a84 100644 --- a/htdocs/core/class/html.form.class.php +++ b/htdocs/core/class/html.form.class.php @@ -6480,7 +6480,7 @@ class Form public function showLinkedObjectBlock($object, $morehtmlright = '', $compatibleImportElementsList = false) { global $conf,$langs,$hookmanager; - global $bc; + global $bc, $action; $object->fetchObjectLinked(); @@ -6525,6 +6525,7 @@ class Form $showImportButton=true; } + $regs = array(); if ($objecttype != 'supplier_proposal' && preg_match('/^([^_]+)_([^_]+)/i', $objecttype, $regs)) { $element = $regs[1]; @@ -6628,7 +6629,7 @@ class Form public function showLinkToObjectBlock($object, $restrictlinksto = array(), $excludelinksto = array()) { global $conf, $langs, $hookmanager; - global $bc; + global $bc, $action; $linktoelem=''; $linktoelemlist=''; @@ -6663,8 +6664,6 @@ class Form ); } - global $action; - // Can complete the possiblelink array $hookmanager->initHooks(array('commonobject')); $parameters=array('listofidcompanytoscan' => $listofidcompanytoscan); From 2fab35c28715a96d2a41efda693fc428bc54a81a Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 17 Jun 2019 17:20:22 +0200 Subject: [PATCH 335/365] Debug page to export file --- htdocs/compta/compta-files.php | 87 ++++++++++--------------- htdocs/core/menus/init_menu_auguria.sql | 2 + 2 files changed, 37 insertions(+), 52 deletions(-) diff --git a/htdocs/compta/compta-files.php b/htdocs/compta/compta-files.php index 87efafd3405..656824298fe 100644 --- a/htdocs/compta/compta-files.php +++ b/htdocs/compta/compta-files.php @@ -106,7 +106,7 @@ if(($action=="searchfiles" || $action=="dl" ) && $date_start && $date_stop) { $sql.=" AND entity IN (".($entity==1?'0,1':$entity).')'; $sql.=" AND fk_statut <> ".ExpenseReport::STATUS_DRAFT; $sql.=" UNION ALL"; - $sql.=" SELECT rowid as id, ref,paid,amount as total_ttc, '0' as fk_soc, datedon as date, 'Donation' as item FROM ".MAIN_DB_PREFIX."don"; + $sql.=" SELECT rowid as id, ref, paid, amount as total_ttc, '0' as fk_soc, datedon as date, 'Donation' as item FROM ".MAIN_DB_PREFIX."don"; $sql.=" WHERE datedon between ".$wheretail; $sql.=" AND entity IN (".($entity==1?'0,1':$entity).')'; $sql.=" AND fk_statut <> ".Don::STATUS_DRAFT; @@ -143,56 +143,63 @@ if(($action=="searchfiles" || $action=="dl" ) && $date_start && $date_stop) { switch($objd->item) { case "Invoice": - $subdir=dol_sanitizeFileName($objd->ref); + $subdir = ''; + $subdir.=($subdir ? '/' : '').dol_sanitizeFileName($objd->ref); $upload_dir = $conf->facture->dir_output.'/'.$subdir; $link="document.php?modulepart=facture&file=".str_replace('/', '%2F', $subdir).'%2F'; break; case "SupplierInvoice": - $tmpinvoicesupplier->fetch($objd->id); - $subdir=get_exdir($tmpinvoicesupplier->id, 2, 0, 0, $tmpinvoicesupplier, 'invoice_supplier').'/'.dol_sanitizeFileName($objd->ref); + $tmpinvoicesupplier->fetch($objd->id); + $subdir = get_exdir($tmpinvoicesupplier->id, 2, 0, 1, $tmpinvoicesupplier, 'invoice_supplier'); // TODO Use first file + $subdir.=($subdir ? '/' : '').dol_sanitizeFileName($objd->ref); $upload_dir = $conf->fournisseur->facture->dir_output.'/'.$subdir; $link="document.php?modulepart=facture_fournisseur&file=".str_replace('/', '%2F', $subdir).'%2F'; break; case "ExpenseReport": - $subdir=dol_sanitizeFileName($objd->ref); + $subdir = ''; + $subdir.=($subdir ? '/' : '').dol_sanitizeFileName($objd->ref); $upload_dir = $conf->expensereport->dir_output.'/'.$subdir; $link="document.php?modulepart=expensereport&file=".str_replace('/', '%2F', $subdir).'%2F'; break; case "SalaryPayment": - $subdir=dol_sanitizeFileName($objd->id); + $subdir = ''; + $subdir.=($subdir ? '/' : '').dol_sanitizeFileName($objd->id); $upload_dir = $conf->salaries->dir_output.'/'.$subdir; $link="document.php?modulepart=salaries&file=".str_replace('/', '%2F', $subdir).'%2F'; break; case "Donation": $tmpdonation->fetch($objp->id); - $subdir=get_exdir(0, 0, 0, 1, $tmpdonation, 'donation'). '/'. dol_sanitizeFileName($objd->id); + $subdir=get_exdir(0, 0, 0, 0, $tmpdonation, 'donation'); + $subdir.=($subdir ? '/' : '').dol_sanitizeFileName($objd->id); $upload_dir = $conf->don->dir_output . '/' . $subdir; $link="document.php?modulepart=don&file=".str_replace('/', '%2F', $subdir).'%2F'; break; case "SocialContributions": - $subdir=dol_sanitizeFileName($objd->id); + $subdir = ''; + $subdir.=($subdir ? '/' : '').dol_sanitizeFileName($objd->id); $upload_dir = $conf->tax->dir_output . '/' . $subdir; $link="document.php?modulepart=tax&file=".str_replace('/', '%2F', $subdir).'%2F'; break; default: - $subdir=''; - $upload_dir=''; - $link=''; + $subdir = ''; + $upload_dir = ''; + $link = ''; break; } if (!empty($upload_dir)) { $result=true; + $files=dol_dir_list($upload_dir, "files", 0, '', '(\.meta|_preview\.png)$', '', SORT_ASC, 1); - //var_dump($upload_dir); + if (count($files) < 1) { $nofile['id']=$objd->id; $nofile['date']=$db->idate($objd->date); $nofile['paid']=$objd->paid; $nofile['amount']=$objd->total_ttc; - $nofile['ref']=$objd->ref; + $nofile['ref']=($objd->ref ? $objd->ref : $objd->id); $nofile['fk']=$objd->fk_soc; $nofile['item']=$objd->item; @@ -206,7 +213,7 @@ if(($action=="searchfiles" || $action=="dl" ) && $date_start && $date_stop) { $file['date']=$db->idate($objd->date); $file['paid']=$objd->paid; $file['amount']=$objd->total_ttc; - $file['ref']=$objd->ref; + $file['ref']=($objd->ref ? $objd->ref : $objd->id); $file['fk']=$objd->fk_soc; $file['item']=$objd->item; $file['link']=$link.$file['name']; @@ -300,42 +307,15 @@ print ''; print $langs->trans("ReportPeriod").': '.$form->selectDate($date_start, 'date_start', 0, 0, 0, "", 1, 1, 0); print ' - '.$form->selectDate($date_stop, 'date_stop', 0, 0, 0, "", 1, 1, 0)."\n"; -// Multicompany -/*if (! empty($conf->multicompany->enabled) && is_object($mc)) - { - print '
'; - // This is now done with hook formObjectOptions. Keep this code for backward compatibility with old multicompany module - if (method_exists($mc, 'formObjectOptions')) - { - if (empty($conf->global->MULTICOMPANY_TRANSVERSE_MODE) && $conf->entity == 1 && $user->admin && ! $user->entity) // condition must be same for create and edit mode - { - print "
".''; - print "\n"; - } - else - { - print ''; - } - } - $object = new stdClass(); - // Other attributes - $parameters=array('objectsrc' => null, 'colspan' => ' colspan="3"'); - $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, 'edit'); - } - }*/ +// Export is for current company only ! if (! empty($conf->multicompany->enabled) && is_object($mc)) { - print '   -   '.$langs->trans("Entity").' : '; + print '('.$langs->trans("Entity").' : '; $mc->dao->getEntities(); $mc->dao->fetch($conf->entity); print $mc->dao->label; - print "
\n"; + print ")
\n"; } print ''."\n"; @@ -376,10 +356,10 @@ if (!empty($date_start) && !empty($date_stop)) print '
'; // You can use div-table-responsive-no-min if you dont need reserved height for your table print '
'; if (! empty($action->userownerid)) { - $userstatic->fetch($action->userownerid); // TODO Introduce a cache on users fetched - print $userstatic->getNomUrl(-1, '', 0, 0, 16, 0, 'firstelselast', ''); + if (is_object($cacheusers[$action->userownerid])) + { + $tmpuser = $cacheusers[$action->userownerid]; + } + else + { + $tmpuser = new User($this->db); + $tmpuser->fetch($action->userownerid); + $cacheusers[$action->userownerid] = $tmpuser; + } + if ($tmpuser->id > 0) + { + print $tmpuser->getNomUrl(-1, '', 0, 0, 16, 0, 'firstelselast', ''); + } } print ''; - if (! empty($action->author->id)) - { - print $action->getLibStatut(3); - } + print $action->getLibStatut(3); print '
'; - if (($customerstripe->default_source != $src->id)) + if ((empty($customerstripe->invoice_settings) && $customerstripe->default_source != $src->id) || + (! empty($customerstripe->invoice_settings) && $customerstripe->invoice_settings->default_payment_method != $src->id)) { print ''; print img_picto($langs->trans("Default"), 'off'); diff --git a/htdocs/stripe/class/stripe.class.php b/htdocs/stripe/class/stripe.class.php index de43c063922..dd66c7607e5 100644 --- a/htdocs/stripe/class/stripe.class.php +++ b/htdocs/stripe/class/stripe.class.php @@ -237,6 +237,33 @@ class Stripe extends CommonObject return $customer; } + /** + * Get the Stripe payment method Object from its ID + * + * @param string $paymentmethod Payment Method ID + * @param string $key ''=Use common API. If not '', it is the Stripe connect account 'acc_....' to use Stripe connect + * @param int $status Status (0=test, 1=live) + * @return \Stripe\PaymentMethod|null Stripe PaymentMethod or null if not found + */ + public function getPaymentMethodStripe($paymentmethod, $key = '', $status = 0) + { + try { + // Force to use the correct API key + global $stripearrayofkeysbyenv; + \Stripe\Stripe::setApiKey($stripearrayofkeysbyenv[$status]['secret_key']); + if (empty($key)) { // If the Stripe connect account not set, we use common API usage + $stripepaymentmethod = \Stripe\PaymentMethod::retrieve(''.$paymentmethod->id.''); + } else { + $stripepaymentmethod = \Stripe\PaymentMethod::retrieve(''.$paymentmethod->id.'', array("stripe_account" => $key)); + } + } + catch(Exception $e) + { + $this->error = $e->getMessage(); + } + return $stripepaymentmethod; + } + /** * Get the Stripe payment intent. Create it with confirm=false * Warning. If a payment was tried and failed, a payment intent was created. @@ -259,7 +286,7 @@ class Stripe extends CommonObject */ public function getPaymentIntent($amount, $currency_code, $tag, $description = '', $object = null, $customer = null, $key = null, $status = 0, $usethirdpartyemailforreceiptemail = 0, $mode = 'automatic', $confirmnow = false) { - global $conf, $user, $mysoc; + global $conf; dol_syslog("getPaymentIntent"); @@ -272,12 +299,14 @@ class Stripe extends CommonObject if (! in_array($currency_code, $arrayzerounitcurrency)) $stripeamount = $amount * 100; else $stripeamount = $amount; - $fee = round(($$stripeamount * ($conf->global->STRIPE_APPLICATION_FEE_PERCENT / 100) + $conf->global->STRIPE_APPLICATION_FEE) * 100); - if ($fee >= ($conf->global->STRIPE_APPLICATION_FEE_MAXIMAL * 100) && $conf->global->STRIPE_APPLICATION_FEE_MAXIMAL>$conf->global->STRIPE_APPLICATION_FEE_MINIMAL) { - $fee = round($conf->global->STRIPE_APPLICATION_FEE_MAXIMAL * 100); - } elseif ($fee < ($conf->global->STRIPE_APPLICATION_FEE_MINIMAL * 100)) { - $fee = round($conf->global->STRIPE_APPLICATION_FEE_MINIMAL * 100); + $fee = round($amount * ($conf->global->STRIPE_APPLICATION_FEE_PERCENT / 100) + $conf->global->STRIPE_APPLICATION_FEE); + if ($fee >= $conf->global->STRIPE_APPLICATION_FEE_MAXIMAL && $conf->global->STRIPE_APPLICATION_FEE_MAXIMAL > $conf->global->STRIPE_APPLICATION_FEE_MINIMAL) { + $fee = round($conf->global->STRIPE_APPLICATION_FEE_MAXIMAL); + } elseif ($fee < $conf->global->STRIPE_APPLICATION_FEE_MINIMAL) { + $fee = round($conf->global->STRIPE_APPLICATION_FEE_MINIMAL); } + if (! in_array($currency_code, $arrayzerounitcurrency)) $stripefee = $fee * 100; + else $stripefee = $fee; $paymentintent = null; @@ -352,9 +381,9 @@ class Stripe extends CommonObject // payment_method_types = array('card') //var_dump($dataforintent); - if ($conf->entity!=$conf->global->STRIPECONNECT_PRINCIPAL && $fee>0) + if ($conf->entity!=$conf->global->STRIPECONNECT_PRINCIPAL && $stripefee > 0) { - $dataforintent["application_fee"] = $fee; + $dataforintent["application_fee"] = $stripefee; } if ($usethirdpartyemailforreceiptemail && is_object($object) && $object->thirdparty->email) { @@ -461,8 +490,7 @@ class Stripe extends CommonObject $sql = "SELECT sa.stripe_card_ref, sa.proprio, sa.exp_date_month, sa.exp_date_year, sa.number, sa.cvn"; // stripe_card_ref is card_.... $sql.= " FROM " . MAIN_DB_PREFIX . "societe_rib as sa"; - $sql.= " WHERE sa.rowid = " . $object->id; - //$sql.= " AND sa.entity IN (".getEntity('societe').")"; + $sql.= " WHERE sa.rowid = " . $object->id; // We get record from ID, no need for filter on entity $sql.= " AND sa.type = 'card'"; dol_syslog(get_class($this) . "::fetch search stripe card id for paymentmode id=".$object->id.", stripeacc=".$stripeacc.", status=".$status.", createifnotlinkedtostripe=".$createifnotlinkedtostripe, LOG_DEBUG); @@ -660,13 +688,15 @@ class Stripe extends CommonObject $charge = \Stripe\Charge::create($paymentarray, array("idempotency_key" => "$description")); } } else { - $fee = round(($object->total_ttc * ($conf->global->STRIPE_APPLICATION_FEE_PERCENT / 100) + $conf->global->STRIPE_APPLICATION_FEE) * 100); - if ($fee >= ($conf->global->STRIPE_APPLICATION_FEE_MAXIMAL * 100) && $conf->global->STRIPE_APPLICATION_FEE_MAXIMAL>$conf->global->STRIPE_APPLICATION_FEE_MINIMAL) { - $fee = round($conf->global->STRIPE_APPLICATION_FEE_MAXIMAL * 100); + $fee = round($amount * ($conf->global->STRIPE_APPLICATION_FEE_PERCENT / 100) + $conf->global->STRIPE_APPLICATION_FEE); + if ($fee >= $conf->global->STRIPE_APPLICATION_FEE_MAXIMAL && $conf->global->STRIPE_APPLICATION_FEE_MAXIMAL > $conf->global->STRIPE_APPLICATION_FEE_MINIMAL) { + $fee = round($conf->global->STRIPE_APPLICATION_FEE_MAXIMAL); } - elseif ($fee < ($conf->global->STRIPE_APPLICATION_FEE_MINIMAL * 100)) { - $fee = round($conf->global->STRIPE_APPLICATION_FEE_MINIMAL * 100); + elseif ($fee < $conf->global->STRIPE_APPLICATION_FEE_MINIMAL) { + $fee = round($conf->global->STRIPE_APPLICATION_FEE_MINIMAL); } + if (! in_array($currency, $arrayzerounitcurrency)) $stripefee = $fee * 100; + else $stripefee = $fee; $paymentarray = array( "amount" => "$stripeamount", @@ -678,9 +708,9 @@ class Stripe extends CommonObject "source" => "$source", "customer" => "$customer" ); - if ($conf->entity!=$conf->global->STRIPECONNECT_PRINCIPAL && $fee>0) + if ($conf->entity!=$conf->global->STRIPECONNECT_PRINCIPAL && $stripefee > 0) { - $paymentarray["application_fee"] = $fee; + $paymentarray["application_fee"] = $stripefee; } if ($societe->email && $usethirdpartyemailforreceiptemail) { From efb9a30ec16c800c527df927e97a1248710aeaae Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sun, 16 Jun 2019 17:17:07 +0200 Subject: [PATCH 327/365] Fix compatibility with payment modes --- htdocs/societe/paymentmodes.php | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/htdocs/societe/paymentmodes.php b/htdocs/societe/paymentmodes.php index 24329a48a33..6a3596f6e24 100644 --- a/htdocs/societe/paymentmodes.php +++ b/htdocs/societe/paymentmodes.php @@ -614,8 +614,14 @@ if (empty($reshook)) { try { $cu=$stripe->customerStripe($object, $stripeacc, $servicestatus); - $cu->default_source = (string) $source; // Old - $cu->invoice_settings->default_payment_method = (string) $source; // New + if (preg_match('/pm_/', $source)) + { + $cu->invoice_settings->default_payment_method = (string) $source; // New + } + else + { + $cu->default_source = (string) $source; // Old + } $result = $cu->save(); $url=DOL_URL_ROOT.'/societe/paymentmodes.php?socid='.$object->id; From badfd47ee79122c46e6f5a3e4ef2f3570156051f Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sun, 16 Jun 2019 17:25:42 +0200 Subject: [PATCH 328/365] Fix migration --- htdocs/install/mysql/migration/9.0.0-10.0.0.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/install/mysql/migration/9.0.0-10.0.0.sql b/htdocs/install/mysql/migration/9.0.0-10.0.0.sql index e353f317b45..40f7da3fa95 100644 --- a/htdocs/install/mysql/migration/9.0.0-10.0.0.sql +++ b/htdocs/install/mysql/migration/9.0.0-10.0.0.sql @@ -228,6 +228,7 @@ CREATE TABLE llx_bom_bom( ALTER TABLE llx_bom_bom ADD COLUMN efficiency double(8,4) DEFAULT 1; ALTER TABLE llx_bom_bom ADD COLUMN entity integer DEFAULT 1 NOT NULL; +ALTER TABLE llx_bom_bom ADD COLUMN date_valid datetime; create table llx_bom_bom_extrafields ( @@ -254,7 +255,6 @@ CREATE TABLE llx_bom_bomline( ALTER TABLE llx_bom_bomline ADD COLUMN efficiency double(8,4) DEFAULT 1; ALTER TABLE llx_bom_bomline ADD COLUMN fk_bom_child integer NULL; - create table llx_bom_bomline_extrafields ( rowid integer AUTO_INCREMENT PRIMARY KEY, From dd5e42e3253b22d69a0c465e101a97e6f0871dc7 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sun, 16 Jun 2019 22:17:04 +0200 Subject: [PATCH 329/365] FIX #11325 FIX #5249 --- htdocs/projet/tasks/time.php | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/htdocs/projet/tasks/time.php b/htdocs/projet/tasks/time.php index f3da816fabd..766c2b38e2d 100644 --- a/htdocs/projet/tasks/time.php +++ b/htdocs/projet/tasks/time.php @@ -467,7 +467,7 @@ if (($id > 0 || ! empty($ref)) || $projectidforalltimes > 0) $object->project = clone $projectstatic; } - $userWrite = $projectstatic->restrictedProjectArea($user, 'write'); + $userRead = $projectstatic->restrictedProjectArea($user, 'read'); $linktocreatetime = ''; if ($projectstatic->id > 0) @@ -582,9 +582,9 @@ if (($id > 0 || ! empty($ref)) || $projectidforalltimes > 0) $linktocreatetimeBtnStatus = 0; $linktocreatetimeUrl = ''; $linktocreatetimeHelpText = ''; - if ($user->rights->projet->all->creer || $user->rights->projet->creer) + if ($user->rights->projet->all->lire || $user->rights->projet->lire) // To enter time, read permission is enough { - if ($projectstatic->public || $userWrite > 0) + if ($projectstatic->public || $userRead > 0) { $linktocreatetimeBtnStatus = 1; @@ -1017,7 +1017,12 @@ if (($id > 0 || ! empty($ref)) || $projectidforalltimes > 0) // Duration - Time spent print ''; - print $form->select_duration('timespent_duration', ($_POST['timespent_duration']?$_POST['timespent_duration']:''), 0, 'text'); + $durationtouse = ($_POST['timespent_duration']?$_POST['timespent_duration']:''); + if (GETPOSTISSET('timespent_durationhour') || GETPOSTISSET('timespent_durationmin')) + { + $durationtouse = (GETPOST('timespent_durationhour') * 3600 + GETPOST('timespent_durationmin') * 60); + } + print $form->select_duration('timespent_duration', $durationtouse, 0, 'text'); print ''; - print $form->select_duration('timespent_duration', ($_POST['timespent_duration']?$_POST['timespent_duration']:''), 0, 'text'); + $durationtouse = ($_POST['timespent_duration']?$_POST['timespent_duration']:''); + if (GETPOSTISSET('timespent_durationhour') || GETPOSTISSET('timespent_durationmin')) + { + $durationtouse = (GETPOST('timespent_durationhour') * 3600 + GETPOST('timespent_durationmin') * 60); + } + print $form->select_duration('timespent_duration', $durationtouse, 0, 'text'); print '
'.$form->editfieldkey('ProspectCustomer', 'customerprospect', '', $object, 0, 'string', '', 1).''; - $selected=GETPOST('client', 'int')!=''?GETPOST('client', 'int'):$object->client; + $selected=(GETPOSTISSET('client', 'int')?GETPOST('client', 'int'):$object->client); print $formcompany->selectProspectCustomerType($selected); print '
'.$langs->trans("Entity").'".$mc->select_entities($entity); - print "
'; print ''; - print_liste_field_titre($arrayfields['date']['label'], $_SERVER["PHP_SELF"], "date", "", $param, 'align="center" class="nowrap"', $sortfield, $sortorder); + print_liste_field_titre($arrayfields['date']['label'], $_SERVER["PHP_SELF"], "date", "", $param, 'class="nowrap"', $sortfield, $sortorder); print ''; print ''; - print ''; + print ''; print ''; print ''; print ''; @@ -402,12 +382,10 @@ if (!empty($date_start) && !empty($date_stop)) // Balance calculation $balance = 0; foreach($TData as &$data1) { - if ($data1['item']!='Invoice'&& $data1['item']!='Donation' ){ + if ($data1['item']!='Invoice' && $data1['item']!='Donation') + { $data1['amount']=-$data1['amount']; } - if ($data1['amount']>0){ - }else{ - } $balance += $data1['amount']; $data1['balance'] = $balance; } @@ -419,14 +397,19 @@ if (!empty($date_start) && !empty($date_stop)) //if (!empty($data['fk_facture'])) $html_class = 'facid-'.$data['fk_facture']; //elseif (!empty($data['fk_paiement'])) $html_class = 'payid-'.$data['fk_paiement']; print ''; - print "\n"; print ''; print ''; // File link - print '\n"; + print '\n"; print ''; print '\n"; diff --git a/htdocs/core/menus/init_menu_auguria.sql b/htdocs/core/menus/init_menu_auguria.sql index 3a4ec85ec58..c7b2c8a69a7 100644 --- a/htdocs/core/menus/init_menu_auguria.sql +++ b/htdocs/core/menus/init_menu_auguria.sql @@ -281,6 +281,8 @@ insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, left insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->accounting->enabled', __HANDLER__, 'left', 2430__+MAX_llx_menu__, 'accountancy', 'bookkeeping', 2400__+MAX_llx_menu__, '/accountancy/bookkeeping/list.php?mainmenu=accountancy&leftmenu=accountancy_bookeeping', 'Bookkeeping', 1, 'accountancy', '$user->rights->accounting->mouvements->lire', '', 0, 15, __ENTITY__); -- Balance insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->accounting->enabled', __HANDLER__, 'left', 2435__+MAX_llx_menu__, 'accountancy', 'balance', 2400__+MAX_llx_menu__, '/accountancy/bookkeeping/balance.php?mainmenu=accountancy&leftmenu=accountancy_balance', 'AccountBalance', 1, 'accountancy', '$user->rights->accounting->mouvements->lire', '', 0, 16, __ENTITY__); + -- Export accounting documents + insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->accounting->enabled', __HANDLER__, 'left', 2436__+MAX_llx_menu__, 'accountancy', 'accountancy_files', 2400__+MAX_llx_menu__, '/compta/compta-files.php?mainmenu=accountancy&leftmenu=accountancy_files', 'AccountantFiles', 1, 'accountancy', '$user->rights->accounting->mouvements->lire', '', 0, 17, __ENTITY__); -- Reports insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->accounting->enabled', __HANDLER__, 'left', 2440__+MAX_llx_menu__, 'accountancy', 'accountancy_report', 2400__+MAX_llx_menu__, '/compta/resultat/index.php?mainmenu=accountancy&leftmenu=accountancy_report', 'Reportings', 1, 'main', '$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire', '', 0, 17, __ENTITY__); insert into llx_menu (module, enabled, menu_handler, type, rowid, mainmenu, leftmenu, fk_menu, url, titre, level, langs, perms, target, usertype, position, entity) values ('', '$conf->accounting->enabled && $leftmenu=="accountancy_report"', __HANDLER__, 'left', 2441__+MAX_llx_menu__, 'accountancy', 'accountancy_report', 2440__+MAX_llx_menu__, '/compta/resultat/index.php?mainmenu=accountancy&leftmenu=accountancy_report', 'MenuReportInOut', 2, 'main', '$user->rights->compta->resultat->lire || $user->rights->accounting->comptarapport->lire', '', 0, 18, __ENTITY__); From 08d5ca4ddbc47fcbcddf94a471657dda1e81cb9e Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 17 Jun 2019 17:53:43 +0200 Subject: [PATCH 336/365] Debug page to export accounting documents --- htdocs/admin/delais.php | 1 - htdocs/admin/mails_emailing.php | 3 +- htdocs/admin/menus/edit.php | 1 - htdocs/admin/sms.php | 2 +- htdocs/cashdesk/css/style.css | 2 +- ...{compta-files.php => accounting-files.php} | 292 ++++++++++-------- htdocs/core/menus/standard/eldy.lib.php | 8 +- htdocs/expensereport/list.php | 2 +- htdocs/fourn/facture/card.php | 2 +- htdocs/holiday/card.php | 5 +- htdocs/holiday/list.php | 3 +- .../modulebuilder/template/myobject_card.php | 1 + htdocs/opensurvey/results.php | 2 +- htdocs/opensurvey/wizard/choix_date.php | 10 +- htdocs/opensurvey/wizard/create_survey.php | 2 +- htdocs/product/admin/product_tools.php | 3 +- htdocs/theme/eldy/btn.inc.php | 2 +- htdocs/theme/eldy/global.inc.php | 2 +- htdocs/theme/md/style.css.php | 4 +- 19 files changed, 188 insertions(+), 159 deletions(-) rename htdocs/compta/{compta-files.php => accounting-files.php} (60%) diff --git a/htdocs/admin/delais.php b/htdocs/admin/delais.php index 1d05d5e0afe..6b46468b916 100644 --- a/htdocs/admin/delais.php +++ b/htdocs/admin/delais.php @@ -418,7 +418,6 @@ if($action == 'edit') { print '
'; } else { - // Boutons d'action print '
'; } diff --git a/htdocs/admin/mails_emailing.php b/htdocs/admin/mails_emailing.php index 1e54fdea3dd..12076a00579 100644 --- a/htdocs/admin/mails_emailing.php +++ b/htdocs/admin/mails_emailing.php @@ -493,7 +493,8 @@ else } - // Boutons actions + // Buttons for actions + print '
'; print ''.$langs->trans("Modify").''; diff --git a/htdocs/admin/menus/edit.php b/htdocs/admin/menus/edit.php index b4f5fbd3355..cf42f294d03 100644 --- a/htdocs/admin/menus/edit.php +++ b/htdocs/admin/menus/edit.php @@ -415,7 +415,6 @@ if ($action == 'create') dol_fiche_end(); - // Boutons print '
'; print ''; print '     '; diff --git a/htdocs/admin/sms.php b/htdocs/admin/sms.php index 2fb1e5a8a29..d6f2ee170d8 100644 --- a/htdocs/admin/sms.php +++ b/htdocs/admin/sms.php @@ -243,7 +243,7 @@ else print '
'.$langs->trans("Type").''.$langs->trans("Ref").''.$langs->trans("Link").''.$langs->trans("Document").''.$langs->trans("Paid").''.$langs->trans("Debit").''.$langs->trans("Credit").'
"; + print ""; print dol_print_date($data['date'], 'day'); print "'.$langs->trans($data['item']).''.$data['ref'].'".$data['name']."'; + if ($data['link']) + { + print ''.($data['name'] ? $data['name'] : $data['ref']).''; + } + print "'.$data['paid'].''.(($data['amount'] > 0) ? price(abs($data['amount'])) : '')."
'; - // Boutons actions + // Buttons for actions print '
'; diff --git a/htdocs/cashdesk/css/style.css b/htdocs/cashdesk/css/style.css index dc579711aa3..9d9be27f3ce 100644 --- a/htdocs/cashdesk/css/style.css +++ b/htdocs/cashdesk/css/style.css @@ -320,7 +320,7 @@ p.titre { padding: 2px 2px; } -/* -------------- Boutons --------------------- */ +/* -------------- Buttons for SimplePOS --------------------- */ .bouton_ajout_article { margin-top: 10px; width: 60%; diff --git a/htdocs/compta/compta-files.php b/htdocs/compta/accounting-files.php similarity index 60% rename from htdocs/compta/compta-files.php rename to htdocs/compta/accounting-files.php index 656824298fe..5a3097f6aa8 100644 --- a/htdocs/compta/compta-files.php +++ b/htdocs/compta/accounting-files.php @@ -1,6 +1,6 @@ - * Copyright (C) 2004-2018 Laurent Destailleur + * Copyright (C) 2004-2019 Laurent Destailleur * Copyright (C) 2017 Pierre-Henry Favre * * This program is free software; you can redistribute it and/or modify @@ -16,11 +16,13 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -/** - * \file htdocs/compta/compta-files.php + + /** + * \file htdocs/compta/accounting-files.php * \ingroup compta * \brief Page to show portoflio and files of a thirdparty and download it */ + require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; @@ -89,149 +91,165 @@ $entity = GETPOST('entity', 'int')?GETPOST('entity', 'int'):$conf->entity; $filesarray=array(); $result=false; -if(($action=="searchfiles" || $action=="dl" ) && $date_start && $date_stop) { - $wheretail=" '".$db->idate($date_start)."' AND '".$db->idate($date_stop)."'"; - $sql="SELECT rowid as id, ref as ref, paye as paid, total_ttc, fk_soc, datef as date, 'Invoice' as item FROM ".MAIN_DB_PREFIX."facture"; - $sql.=" WHERE datef between ".$wheretail; - $sql.=" AND entity IN (".($entity==1?'0,1':$entity).')'; - $sql.=" AND fk_statut <> ".Facture::STATUS_DRAFT; - $sql.=" UNION ALL"; - $sql.=" SELECT rowid as id, ref, paye as paid, total_ttc, fk_soc, datef as date, 'SupplierInvoice' as item FROM ".MAIN_DB_PREFIX."facture_fourn"; - $sql.=" WHERE datef between ".$wheretail; - $sql.=" AND entity IN (".($entity==1?'0,1':$entity).')'; - $sql.=" AND fk_statut <> ".FactureFournisseur::STATUS_DRAFT; - $sql.=" UNION ALL"; - $sql.=" SELECT rowid as id, ref, paid, total_ttc, fk_user_author as fk_soc, date_fin as date, 'ExpenseReport' as item FROM ".MAIN_DB_PREFIX."expensereport"; - $sql.=" WHERE date_fin between ".$wheretail; - $sql.=" AND entity IN (".($entity==1?'0,1':$entity).')'; - $sql.=" AND fk_statut <> ".ExpenseReport::STATUS_DRAFT; - $sql.=" UNION ALL"; - $sql.=" SELECT rowid as id, ref, paid, amount as total_ttc, '0' as fk_soc, datedon as date, 'Donation' as item FROM ".MAIN_DB_PREFIX."don"; - $sql.=" WHERE datedon between ".$wheretail; - $sql.=" AND entity IN (".($entity==1?'0,1':$entity).')'; - $sql.=" AND fk_statut <> ".Don::STATUS_DRAFT; - $sql.=" UNION ALL"; - $sql.=" SELECT rowid as id, label as ref, 1 as paid, amount as total_ttc, fk_user as fk_soc,datep as date, 'SalaryPayment' as item FROM ".MAIN_DB_PREFIX."payment_salary"; - $sql.=" WHERE datep between ".$wheretail; - $sql.=" AND entity IN (".($entity==1?'0,1':$entity).')'; - //$sql.=" AND fk_statut <> ".PaymentSalary::STATUS_DRAFT; - $sql.=" UNION ALL"; - $sql.=" SELECT rowid as id, libelle as ref, paye as paid, amount as total_ttc, 0 as fk_soc, date_creation as date, 'SocialContributions' as item FROM ".MAIN_DB_PREFIX."chargesociales"; - $sql.=" WHERE date_creation between ".$wheretail; - $sql.=" AND entity IN (".($entity==1?'0,1':$entity).')'; - //$sql.=" AND fk_statut <> ".ChargeSociales::STATUS_DRAFT; - $sql.= $db->order($sortfield, $sortorder); +if (($action=="searchfiles" || $action=="dl" )) { - $resd = $db->query($sql); - $files=array(); - $link=''; + if (empty($date_start)) + { + setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("DateStart")), null, 'errors'); + $error++; + } + if (empty($date_stop)) + { + setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("DateEnd")), null, 'errors'); + $error++; + } - if ($resd) - { - $numd = $db->num_rows($resd); + if (! $error) + { + $wheretail=" '".$db->idate($date_start)."' AND '".$db->idate($date_stop)."'"; - $tmpinvoice=new Facture($db); - $tmpinvoicesupplier=new FactureFournisseur($db); - $tmpdonation=new Don($db); + $sql="SELECT rowid as id, ref as ref, paye as paid, total_ttc, fk_soc, datef as date, 'Invoice' as item FROM ".MAIN_DB_PREFIX."facture"; + $sql.=" WHERE datef between ".$wheretail; + $sql.=" AND entity IN (".($entity==1?'0,1':$entity).')'; + $sql.=" AND fk_statut <> ".Facture::STATUS_DRAFT; + $sql.=" UNION ALL"; + $sql.=" SELECT rowid as id, ref, paye as paid, total_ttc, fk_soc, datef as date, 'SupplierInvoice' as item FROM ".MAIN_DB_PREFIX."facture_fourn"; + $sql.=" WHERE datef between ".$wheretail; + $sql.=" AND entity IN (".($entity==1?'0,1':$entity).')'; + $sql.=" AND fk_statut <> ".FactureFournisseur::STATUS_DRAFT; + $sql.=" UNION ALL"; + $sql.=" SELECT rowid as id, ref, paid, total_ttc, fk_user_author as fk_soc, date_fin as date, 'ExpenseReport' as item FROM ".MAIN_DB_PREFIX."expensereport"; + $sql.=" WHERE date_fin between ".$wheretail; + $sql.=" AND entity IN (".($entity==1?'0,1':$entity).')'; + $sql.=" AND fk_statut <> ".ExpenseReport::STATUS_DRAFT; + $sql.=" UNION ALL"; + $sql.=" SELECT rowid as id, ref, paid, amount as total_ttc, '0' as fk_soc, datedon as date, 'Donation' as item FROM ".MAIN_DB_PREFIX."don"; + $sql.=" WHERE datedon between ".$wheretail; + $sql.=" AND entity IN (".($entity==1?'0,1':$entity).')'; + $sql.=" AND fk_statut <> ".Don::STATUS_DRAFT; + $sql.=" UNION ALL"; + $sql.=" SELECT rowid as id, label as ref, 1 as paid, amount as total_ttc, fk_user as fk_soc,datep as date, 'SalaryPayment' as item FROM ".MAIN_DB_PREFIX."payment_salary"; + $sql.=" WHERE datep between ".$wheretail; + $sql.=" AND entity IN (".($entity==1?'0,1':$entity).')'; + //$sql.=" AND fk_statut <> ".PaymentSalary::STATUS_DRAFT; + $sql.=" UNION ALL"; + $sql.=" SELECT rowid as id, libelle as ref, paye as paid, amount as total_ttc, 0 as fk_soc, date_creation as date, 'SocialContributions' as item FROM ".MAIN_DB_PREFIX."chargesociales"; + $sql.=" WHERE date_creation between ".$wheretail; + $sql.=" AND entity IN (".($entity==1?'0,1':$entity).')'; + //$sql.=" AND fk_statut <> ".ChargeSociales::STATUS_DRAFT; + $sql.= $db->order($sortfield, $sortorder); - $upload_dir =''; - $i=0; - while ($i < $numd) - { - $objd = $db->fetch_object($resd); + $resd = $db->query($sql); + $files=array(); + $link=''; - switch($objd->item) - { - case "Invoice": - $subdir = ''; - $subdir.=($subdir ? '/' : '').dol_sanitizeFileName($objd->ref); - $upload_dir = $conf->facture->dir_output.'/'.$subdir; - $link="document.php?modulepart=facture&file=".str_replace('/', '%2F', $subdir).'%2F'; - break; - case "SupplierInvoice": - $tmpinvoicesupplier->fetch($objd->id); - $subdir = get_exdir($tmpinvoicesupplier->id, 2, 0, 1, $tmpinvoicesupplier, 'invoice_supplier'); // TODO Use first file - $subdir.=($subdir ? '/' : '').dol_sanitizeFileName($objd->ref); - $upload_dir = $conf->fournisseur->facture->dir_output.'/'.$subdir; - $link="document.php?modulepart=facture_fournisseur&file=".str_replace('/', '%2F', $subdir).'%2F'; - break; - case "ExpenseReport": - $subdir = ''; - $subdir.=($subdir ? '/' : '').dol_sanitizeFileName($objd->ref); - $upload_dir = $conf->expensereport->dir_output.'/'.$subdir; - $link="document.php?modulepart=expensereport&file=".str_replace('/', '%2F', $subdir).'%2F'; - break; - case "SalaryPayment": - $subdir = ''; - $subdir.=($subdir ? '/' : '').dol_sanitizeFileName($objd->id); - $upload_dir = $conf->salaries->dir_output.'/'.$subdir; - $link="document.php?modulepart=salaries&file=".str_replace('/', '%2F', $subdir).'%2F'; - break; - case "Donation": - $tmpdonation->fetch($objp->id); - $subdir=get_exdir(0, 0, 0, 0, $tmpdonation, 'donation'); - $subdir.=($subdir ? '/' : '').dol_sanitizeFileName($objd->id); - $upload_dir = $conf->don->dir_output . '/' . $subdir; - $link="document.php?modulepart=don&file=".str_replace('/', '%2F', $subdir).'%2F'; - break; - case "SocialContributions": - $subdir = ''; - $subdir.=($subdir ? '/' : '').dol_sanitizeFileName($objd->id); - $upload_dir = $conf->tax->dir_output . '/' . $subdir; - $link="document.php?modulepart=tax&file=".str_replace('/', '%2F', $subdir).'%2F'; - break; - default: - $subdir = ''; - $upload_dir = ''; - $link = ''; - break; - } + if ($resd) + { + $numd = $db->num_rows($resd); - if (!empty($upload_dir)) - { - $result=true; + $tmpinvoice=new Facture($db); + $tmpinvoicesupplier=new FactureFournisseur($db); + $tmpdonation=new Don($db); - $files=dol_dir_list($upload_dir, "files", 0, '', '(\.meta|_preview\.png)$', '', SORT_ASC, 1); + $upload_dir =''; + $i=0; + while ($i < $numd) + { + $objd = $db->fetch_object($resd); - if (count($files) < 1) - { - $nofile['id']=$objd->id; - $nofile['date']=$db->idate($objd->date); - $nofile['paid']=$objd->paid; - $nofile['amount']=$objd->total_ttc; - $nofile['ref']=($objd->ref ? $objd->ref : $objd->id); - $nofile['fk']=$objd->fk_soc; - $nofile['item']=$objd->item; + switch($objd->item) + { + case "Invoice": + $subdir = ''; + $subdir.=($subdir ? '/' : '').dol_sanitizeFileName($objd->ref); + $upload_dir = $conf->facture->dir_output.'/'.$subdir; + $link="document.php?modulepart=facture&file=".str_replace('/', '%2F', $subdir).'%2F'; + break; + case "SupplierInvoice": + $tmpinvoicesupplier->fetch($objd->id); + $subdir = get_exdir($tmpinvoicesupplier->id, 2, 0, 1, $tmpinvoicesupplier, 'invoice_supplier'); // TODO Use first file + $subdir.=($subdir ? '/' : '').dol_sanitizeFileName($objd->ref); + $upload_dir = $conf->fournisseur->facture->dir_output.'/'.$subdir; + $link="document.php?modulepart=facture_fournisseur&file=".str_replace('/', '%2F', $subdir).'%2F'; + break; + case "ExpenseReport": + $subdir = ''; + $subdir.=($subdir ? '/' : '').dol_sanitizeFileName($objd->ref); + $upload_dir = $conf->expensereport->dir_output.'/'.$subdir; + $link="document.php?modulepart=expensereport&file=".str_replace('/', '%2F', $subdir).'%2F'; + break; + case "SalaryPayment": + $subdir = ''; + $subdir.=($subdir ? '/' : '').dol_sanitizeFileName($objd->id); + $upload_dir = $conf->salaries->dir_output.'/'.$subdir; + $link="document.php?modulepart=salaries&file=".str_replace('/', '%2F', $subdir).'%2F'; + break; + case "Donation": + $tmpdonation->fetch($objp->id); + $subdir=get_exdir(0, 0, 0, 0, $tmpdonation, 'donation'); + $subdir.=($subdir ? '/' : '').dol_sanitizeFileName($objd->id); + $upload_dir = $conf->don->dir_output . '/' . $subdir; + $link="document.php?modulepart=don&file=".str_replace('/', '%2F', $subdir).'%2F'; + break; + case "SocialContributions": + $subdir = ''; + $subdir.=($subdir ? '/' : '').dol_sanitizeFileName($objd->id); + $upload_dir = $conf->tax->dir_output . '/' . $subdir; + $link="document.php?modulepart=tax&file=".str_replace('/', '%2F', $subdir).'%2F'; + break; + default: + $subdir = ''; + $upload_dir = ''; + $link = ''; + break; + } - $filesarray[]=$nofile; - } - else - { - foreach ($files as $key => $file) - { - $file['id']=$objd->id; - $file['date']=$db->idate($objd->date); - $file['paid']=$objd->paid; - $file['amount']=$objd->total_ttc; - $file['ref']=($objd->ref ? $objd->ref : $objd->id); - $file['fk']=$objd->fk_soc; - $file['item']=$objd->item; - $file['link']=$link.$file['name']; - $file['relpathnamelang'] = $langs->trans($file['item']).'/'.$file['name']; + if (!empty($upload_dir)) + { + $result=true; - $filesarray[]=$file; - } - } - } - $i++; - } - } - else - { - dol_print_error($db); - } + $files=dol_dir_list($upload_dir, "files", 0, '', '(\.meta|_preview\.png)$', '', SORT_ASC, 1); - $db->free($resd); + if (count($files) < 1) + { + $nofile['id']=$objd->id; + $nofile['date']=$db->idate($objd->date); + $nofile['paid']=$objd->paid; + $nofile['amount']=$objd->total_ttc; + $nofile['ref']=($objd->ref ? $objd->ref : $objd->id); + $nofile['fk']=$objd->fk_soc; + $nofile['item']=$objd->item; + + $filesarray[]=$nofile; + } + else + { + foreach ($files as $key => $file) + { + $file['id']=$objd->id; + $file['date']=$db->idate($objd->date); + $file['paid']=$objd->paid; + $file['amount']=$objd->total_ttc; + $file['ref']=($objd->ref ? $objd->ref : $objd->id); + $file['fk']=$objd->fk_soc; + $file['item']=$objd->item; + $file['link']=$link.$file['name']; + $file['relpathnamelang'] = $langs->trans($file['item']).'/'.$file['name']; + + $filesarray[]=$file; + } + } + } + $i++; + } + } + else + { + dol_print_error($db); + } + + $db->free($resd); + } } /* @@ -318,7 +336,9 @@ if (! empty($conf->multicompany->enabled) && is_object($mc)) print ")\n"; } -print ''."\n"; +print ''; + +print ''."\n"; dol_fiche_end(); diff --git a/htdocs/core/menus/standard/eldy.lib.php b/htdocs/core/menus/standard/eldy.lib.php index 3576f35642e..7518093bf77 100644 --- a/htdocs/core/menus/standard/eldy.lib.php +++ b/htdocs/core/menus/standard/eldy.lib.php @@ -1287,7 +1287,7 @@ function print_left_eldy_menu($db, $menu_array_before, $menu_array_after, &$tabM // Files if (! empty($conf->global->MAIN_FEATURES_LEVEL) && $conf->global->MAIN_FEATURES_LEVEL >= 1) { - $newmenu->add("/compta/compta-files.php?mainmenu=accountancy&leftmenu=accountancy_files", $langs->trans("AccountantFiles"), 1, $user->rights->accounting->mouvements->lire); + $newmenu->add("/compta/accounting-files.php?mainmenu=accountancy&leftmenu=accountancy_files", $langs->trans("AccountantFiles"), 1, $user->rights->accounting->mouvements->lire); } // Reports @@ -1329,6 +1329,12 @@ function print_left_eldy_menu($db, $menu_array_before, $menu_array_after, &$tabM // Accountancy (simple) if (! empty($conf->comptabilite->enabled)) { + // Files + if (! empty($conf->global->MAIN_FEATURES_LEVEL) && $conf->global->MAIN_FEATURES_LEVEL >= 1) + { + $newmenu->add("/compta/accounting-files.php?mainmenu=accountancy&leftmenu=accountancy_files", $langs->trans("AccountantFiles"), 0, $user->rights->compta->resultat->lire, '', $mainmenu, 'files'); + } + // Bilan, resultats $newmenu->add("/compta/resultat/index.php?leftmenu=report&mainmenu=accountancy", $langs->trans("Reportings"), 0, $user->rights->compta->resultat->lire, '', $mainmenu, 'ca'); diff --git a/htdocs/expensereport/list.php b/htdocs/expensereport/list.php index 94033912a69..34cbdfe89bd 100644 --- a/htdocs/expensereport/list.php +++ b/htdocs/expensereport/list.php @@ -434,7 +434,7 @@ if ($resql) $canedit=((in_array($user_id, $childids) && $user->rights->expensereport->creer) || ($conf->global->MAIN_USE_ADVANCED_PERMS && $user->rights->expensereport->writeall_advance)); - // Boutons d'actions + // Buttons for actions if ($canedit) { print ''.$langs->trans("AddTrip").''; diff --git a/htdocs/fourn/facture/card.php b/htdocs/fourn/facture/card.php index 2cd27d6d688..1eb38cec66c 100644 --- a/htdocs/fourn/facture/card.php +++ b/htdocs/fourn/facture/card.php @@ -3021,7 +3021,7 @@ else if ($action != 'presend') { /* - * Boutons actions + * Buttons actions */ print '
'; diff --git a/htdocs/holiday/card.php b/htdocs/holiday/card.php index 6c4cb05a17e..c67daf8f92b 100644 --- a/htdocs/holiday/card.php +++ b/htdocs/holiday/card.php @@ -1391,9 +1391,10 @@ else if (! $edit) { - print '
'; + // Buttons for actions + + print '
'; - // Boutons d'actions if ($cancreate && $object->statut == Holiday::STATUS_DRAFT) { print ''.$langs->trans("EditCP").''; diff --git a/htdocs/holiday/list.php b/htdocs/holiday/list.php index 84e7b36c239..ce038709fcf 100644 --- a/htdocs/holiday/list.php +++ b/htdocs/holiday/list.php @@ -319,11 +319,12 @@ if ($id > 0) // For user tab dol_fiche_end(); + // Buttons for actions + print '
'; $canedit=(($user->id == $user_id && $user->rights->holiday->write) || ($user->id != $user_id && $user->rights->holiday->write_all)); - // Boutons d'actions if ($canedit) { print ''.$langs->trans("AddCP").''; diff --git a/htdocs/modulebuilder/template/myobject_card.php b/htdocs/modulebuilder/template/myobject_card.php index da6f3c5a466..cc2eb5062cb 100644 --- a/htdocs/modulebuilder/template/myobject_card.php +++ b/htdocs/modulebuilder/template/myobject_card.php @@ -421,6 +421,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea // Buttons for actions + if ($action != 'presend' && $action != 'editline') { print '
'."\n"; $parameters=array(); diff --git a/htdocs/opensurvey/results.php b/htdocs/opensurvey/results.php index 076461043b8..c648b15664e 100644 --- a/htdocs/opensurvey/results.php +++ b/htdocs/opensurvey/results.php @@ -619,7 +619,7 @@ print ''."\n"; print ''."\n"; print ''."\n"; -//boucle pour l'affichage des boutons de suppression de colonne +// loop to show the delete link if ($user->rights->opensurvey->write) { for ($i = 0; isset($toutsujet[$i]); $i++) { diff --git a/htdocs/opensurvey/wizard/choix_date.php b/htdocs/opensurvey/wizard/choix_date.php index 8840da3f3e7..76f390c470b 100644 --- a/htdocs/opensurvey/wizard/choix_date.php +++ b/htdocs/opensurvey/wizard/choix_date.php @@ -471,7 +471,7 @@ for ($i = 0; $i < $nbrejourmois + $premierjourmois; $i++) { { $nbofchoice=count($_SESSION["totalchoixjour"]); for ($j = 0; $j < $nbofchoice; $j++) { - //affichage des boutons ROUGES + // show red buttons if (date("j", $_SESSION["totalchoixjour"][$j]) == $numerojour && date("n", $_SESSION["totalchoixjour"][$j]) == $_SESSION["mois"] && date("Y", $_SESSION["totalchoixjour"][$j]) == $_SESSION["annee"]) { print ''."\n"; $dejafait = $numerojour; @@ -479,13 +479,13 @@ for ($i = 0; $i < $nbrejourmois + $premierjourmois; $i++) { } } - //Si pas de bouton ROUGE alors on affiche un bouton VERT ou GRIS avec le numéro du jour dessus + // If no red button, we show green or grey button with number of day if (isset($dejafait) === false || $dejafait != $numerojour){ - //bouton vert + // green button if (($numerojour >= $jourAJ && $_SESSION["mois"] == $moisAJ && $_SESSION["annee"] == $anneeAJ) || ($_SESSION["mois"] > $moisAJ && $_SESSION["annee"] == $anneeAJ) || $_SESSION["annee"] > $anneeAJ) { print ''."\n"; } else { - //bouton gris + // grey button print ''.$numerojour.''."\n"; } } @@ -547,7 +547,7 @@ if (issetAndNoEmpty('totalchoixjour', $_SESSION) || $erreur) print ''."\n"; - //affichage des boutons de formulaire pour annuler, effacer les jours ou créer le sondage + // show buttons to cancel, delete days or create survey print ''."\n"; print ''."\n"; print ''."\n"; diff --git a/htdocs/opensurvey/wizard/create_survey.php b/htdocs/opensurvey/wizard/create_survey.php index 0c746fcf8b2..c2e6db1a709 100644 --- a/htdocs/opensurvey/wizard/create_survey.php +++ b/htdocs/opensurvey/wizard/create_survey.php @@ -194,7 +194,7 @@ if (GETPOST('choix_sondage')) } else { - // affichage des boutons pour choisir sondage date ou autre + // Show image to selecte between date survey or other survey print '
'."\n"; print ' '."\n"; print ''."\n"; diff --git a/htdocs/product/admin/product_tools.php b/htdocs/product/admin/product_tools.php index e76c6884b7f..cfbedbcb7f1 100644 --- a/htdocs/product/admin/product_tools.php +++ b/htdocs/product/admin/product_tools.php @@ -333,7 +333,8 @@ else print '
'; - // Boutons actions + // Buttons for actions + print '
'; print ''; print '
'; diff --git a/htdocs/theme/eldy/btn.inc.php b/htdocs/theme/eldy/btn.inc.php index c0cd029126d..1d00718401b 100644 --- a/htdocs/theme/eldy/btn.inc.php +++ b/htdocs/theme/eldy/btn.inc.php @@ -5,7 +5,7 @@ if (! defined('ISLOADEDBYSTEELSHEET')) die('Must be call by steelsheet'); ?> /* ============================================================================== */ -/* Boutons actions */ +/* Buttons for actions */ /* ============================================================================== */ div.divButAction { diff --git a/htdocs/theme/eldy/global.inc.php b/htdocs/theme/eldy/global.inc.php index e5e68e59c48..9061595dd1d 100644 --- a/htdocs/theme/eldy/global.inc.php +++ b/htdocs/theme/eldy/global.inc.php @@ -2362,7 +2362,7 @@ span.tabspan { } /* ============================================================================== */ -/* Boutons actions */ +/* Buttons for actions */ /* ============================================================================== */ diff --git a/htdocs/theme/md/style.css.php b/htdocs/theme/md/style.css.php index 752f60541d1..8020a490181 100644 --- a/htdocs/theme/md/style.css.php +++ b/htdocs/theme/md/style.css.php @@ -2400,7 +2400,7 @@ div.tabBar table.tableforservicepart2:last-child { } /* ============================================================================== */ -/* Boutons actions */ +/* Buttons for actions */ /* ============================================================================== */ div.divButAction { @@ -2503,7 +2503,7 @@ span.tabspan { } /* ============================================================================== */ -/* Boutons actions */ +/* Buttons for actions */ /* ============================================================================== */ div.divButAction { From f6f66f2a77ed56e5dc2798fc92792d29d59c11b8 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 17 Jun 2019 18:11:38 +0200 Subject: [PATCH 337/365] Fix syntax error --- htdocs/projet/tasks/time.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/projet/tasks/time.php b/htdocs/projet/tasks/time.php index e69f4fcd899..f98c9c4ace5 100644 --- a/htdocs/projet/tasks/time.php +++ b/htdocs/projet/tasks/time.php @@ -428,7 +428,7 @@ if (($id > 0 || ! empty($ref)) || $projectidforalltimes > 0) print '
'; // Link to create time - if ($user->rights->projet->all->lire || $user->rights->projet->lire)) // To enter time, read permission is enough + if ($user->rights->projet->all->lire || $user->rights->projet->lire) // To enter time, read permission is enough { if ($projectstatic->public || $userRead > 0) { From f6f86927113f99e52343b10db1438a4f666cd3db Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 17 Jun 2019 18:12:28 +0200 Subject: [PATCH 338/365] Fix phpcs --- htdocs/bom/bom_card.php | 1 - 1 file changed, 1 deletion(-) diff --git a/htdocs/bom/bom_card.php b/htdocs/bom/bom_card.php index c2ed2ca6705..d788be5354a 100644 --- a/htdocs/bom/bom_card.php +++ b/htdocs/bom/bom_card.php @@ -173,7 +173,6 @@ if (empty($reshook)) $action = ''; } } - } From bde49e05e7aca32b0da06eff0ed0b0235720134e Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 17 Jun 2019 18:23:38 +0200 Subject: [PATCH 339/365] Fix doc --- htdocs/societe/class/societeaccount.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/societe/class/societeaccount.class.php b/htdocs/societe/class/societeaccount.class.php index 3fc7b225c77..a82ad69091b 100644 --- a/htdocs/societe/class/societeaccount.class.php +++ b/htdocs/societe/class/societeaccount.class.php @@ -320,7 +320,7 @@ class SocieteAccount extends CommonObject * @param string $id Id of customer in external system (example: 'cu_xxxxxxxxxxxxx', ...) * @param string $site Site (example: 'stripe', '...') * @param int $status Status (0=test, 1=live) - * @return string Id of third party + * @return int Id of third party * @see getCustomerAccount() */ public function getThirdPartyID($id, $site, $status = 0) From a6d4475afff68f0ce1c0e808aec631a553d97f6a Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 17 Jun 2019 18:24:45 +0200 Subject: [PATCH 340/365] Fix scrutinizer --- htdocs/stripe/class/stripe.class.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/htdocs/stripe/class/stripe.class.php b/htdocs/stripe/class/stripe.class.php index dd66c7607e5..d754b8d3962 100644 --- a/htdocs/stripe/class/stripe.class.php +++ b/htdocs/stripe/class/stripe.class.php @@ -247,6 +247,8 @@ class Stripe extends CommonObject */ public function getPaymentMethodStripe($paymentmethod, $key = '', $status = 0) { + $stripepaymentmethod = null; + try { // Force to use the correct API key global $stripearrayofkeysbyenv; @@ -261,6 +263,7 @@ class Stripe extends CommonObject { $this->error = $e->getMessage(); } + return $stripepaymentmethod; } From 42e58d9ea59f6231dc08836f0e719fb7a83253bb Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 17 Jun 2019 18:38:14 +0200 Subject: [PATCH 341/365] Fix preview of interventions --- htdocs/core/lib/functions.lib.php | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index 4bbd030b1eb..7341bc0c2cb 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -1330,10 +1330,10 @@ function dol_banner_tab($object, $paramid, $morehtml = '', $shownav = 1, $fieldi $nophoto=''; $morehtmlleft.='
'; } - //elseif ($conf->browser->layout != 'phone') { // Show no photo link + else { // Show no photo link $nophoto='/public/theme/common/nophoto.png'; $morehtmlleft.='
No photo
'; - //} + } } } elseif ($object->element == 'ticket') @@ -1349,10 +1349,10 @@ function dol_banner_tab($object, $paramid, $morehtml = '', $shownav = 1, $fieldi $nophoto=''; $morehtmlleft.='
'; } - //elseif ($conf->browser->layout != 'phone') { // Show no photo link - $nophoto='/public/theme/common/nophoto.png'; - $morehtmlleft.='
No photo
'; - //} + else { // Show no photo link + $nophoto='/public/theme/common/nophoto.png'; + $morehtmlleft.='
No photo
'; + } } } else @@ -5260,7 +5260,7 @@ function get_exdir($num, $level, $alpha, $withoutslash, $object, $modulepart) // Here, object->id, object->ref and modulepart are required. //var_dump($modulepart); if (in_array($modulepart, array('thirdparty','contact','member','propal','proposal','commande','order','facture','invoice', - 'supplier_order','supplier_proposal','shipment','contract','expensereport'))) + 'supplier_order','supplier_proposal','shipment','contract','expensereport','ficheinter'))) { $path=($object->ref?$object->ref:$object->id); } From 0123a18ff86c89272404e57ae6cb65ccfd3c4566 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 17 Jun 2019 18:44:08 +0200 Subject: [PATCH 342/365] Look and feel v10 --- htdocs/core/tpl/resource_view.tpl.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/htdocs/core/tpl/resource_view.tpl.php b/htdocs/core/tpl/resource_view.tpl.php index d2e0441b60b..014560e0299 100644 --- a/htdocs/core/tpl/resource_view.tpl.php +++ b/htdocs/core/tpl/resource_view.tpl.php @@ -53,11 +53,11 @@ if( (array) $linked_resources && count($linked_resources) > 0) } else { - $style=''; + $class=''; if ($linked_resource['rowid'] == GETPOST('lineid')) - $style='style="background: orange;"'; + $class='highlight'; - print '
'; + print '
'; print '
'; print $object_resource->getNomUrl(1); @@ -81,7 +81,7 @@ if( (array) $linked_resources && count($linked_resources) > 0) print ''; print ' '; print ''; - print img_delete(); + print img_picto($langs->trans("Unlink"), 'unlink'); print ''; print '
'; From 8835b49f3fccc90cbe52d2a83c61d61323017f2e Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 18 Jun 2019 14:30:13 +0200 Subject: [PATCH 343/365] Debug the accounting-file tool --- htdocs/compta/accounting-files.php | 278 +++++++++++------- .../install/mysql/migration/9.0.0-10.0.0.sql | 2 + htdocs/install/mysql/migration/repair.sql | 1 + htdocs/user/param_ihm.php | 2 +- 4 files changed, 177 insertions(+), 106 deletions(-) diff --git a/htdocs/compta/accounting-files.php b/htdocs/compta/accounting-files.php index 5a3097f6aa8..c663a179d6d 100644 --- a/htdocs/compta/accounting-files.php +++ b/htdocs/compta/accounting-files.php @@ -16,13 +16,11 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ - - /** +/** * \file htdocs/compta/accounting-files.php * \ingroup compta * \brief Page to show portoflio and files of a thirdparty and download it */ - require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; @@ -34,7 +32,7 @@ require_once DOL_DOCUMENT_ROOT.'/don/class/don.class.php'; require_once DOL_DOCUMENT_ROOT.'/expensereport/class/expensereport.class.php'; require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.facture.class.php'; -$langs->loadLangs(array("accountancy", "bills", "companies")); +$langs->loadLangs(array("accountancy", "bills", "companies", "salaries")); $date_start =GETPOST('date_start', 'alpha'); $date_startDay= GETPOST('date_startday', 'int'); @@ -46,11 +44,11 @@ $date_stopDay= GETPOST('date_stopday', 'int'); $date_stopMonth= GETPOST('date_stopmonth', 'int'); $date_stopYear= GETPOST('date_stopyear', 'int'); //FIXME doldate -$date_stop=($date_stopDay)?dol_mktime(0, 0, 0, $date_stopMonth, $date_stopDay, $date_stopYear):strtotime($date_stop); +$date_stop=($date_stopDay)?dol_mktime(23, 59, 59, $date_stopMonth, $date_stopDay, $date_stopYear):strtotime($date_stop); $action =GETPOST('action', 'alpha'); // Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context -$hookmanager->initHooks(array('comptafileslist', 'globallist')); +$hookmanager->initHooks(array('comptafileslist','globallist')); // Load variable for pagination $limit = GETPOST('limit', 'int')?GETPOST('limit', 'int'):$conf->liste_limit; @@ -66,6 +64,7 @@ if (! $sortorder) $sortorder="DESC"; $arrayfields=array( + 'type'=>array('label'=>"Type", 'checked'=>1), 'date'=>array('label'=>"Date", 'checked'=>1), //... ); @@ -83,7 +82,7 @@ if ($user->societe_id > 0) * Actions */ -$entity = GETPOST('entity', 'int')?GETPOST('entity', 'int'):$conf->entity; +$entity = GETPOST('entity','int')?GETPOST('entity','int'):$conf->entity; //$parameters = array('socid' => $id); //$reshook = $hookmanager->executeHooks('doActions', $parameters, $object); // Note that $object may have been modified by some hooks @@ -106,38 +105,45 @@ if (($action=="searchfiles" || $action=="dl" )) { if (! $error) { - $wheretail=" '".$db->idate($date_start)."' AND '".$db->idate($date_stop)."'"; + $wheretail=" '".$db->idate($date_start)."' AND '".$db->idate($date_stop)."'"; - $sql="SELECT rowid as id, ref as ref, paye as paid, total_ttc, fk_soc, datef as date, 'Invoice' as item FROM ".MAIN_DB_PREFIX."facture"; + $sql="SELECT t.rowid as id, t.ref, t.paye as paid, total as total_ht, total_ttc, tva as total_vat, fk_soc, t.datef as date, 'Invoice' as item, s.nom as thirdparty_name, s.code_client as thirdparty_code, c.code as country_code, s.tva_intra as vatnum"; + $sql.=" FROM ".MAIN_DB_PREFIX."facture as t LEFT JOIN ".MAIN_DB_PREFIX."societe as s ON s.rowid = t.fk_soc LEFT JOIN ".MAIN_DB_PREFIX."c_country as c ON c.rowid = s.fk_pays"; $sql.=" WHERE datef between ".$wheretail; - $sql.=" AND entity IN (".($entity==1?'0,1':$entity).')'; - $sql.=" AND fk_statut <> ".Facture::STATUS_DRAFT; + $sql.=" AND t.entity IN (".($entity==1?'0,1':$entity).')'; + $sql.=" AND t.fk_statut <> ".Facture::STATUS_DRAFT; $sql.=" UNION ALL"; - $sql.=" SELECT rowid as id, ref, paye as paid, total_ttc, fk_soc, datef as date, 'SupplierInvoice' as item FROM ".MAIN_DB_PREFIX."facture_fourn"; + $sql.=" SELECT t.rowid as id, t.ref, paye as paid, total_ht, total_ttc, total_tva as total_vat, fk_soc, datef as date, 'SupplierInvoice' as item, s.nom as thirdparty_name, s.code_fournisseur as thirdparty_code, c.code as country_code, s.tva_intra as vatnum"; + $sql.=" FROM ".MAIN_DB_PREFIX."facture_fourn as t LEFT JOIN ".MAIN_DB_PREFIX."societe as s ON s.rowid = t.fk_soc LEFT JOIN ".MAIN_DB_PREFIX."c_country as c ON c.rowid = s.fk_pays"; $sql.=" WHERE datef between ".$wheretail; - $sql.=" AND entity IN (".($entity==1?'0,1':$entity).')'; - $sql.=" AND fk_statut <> ".FactureFournisseur::STATUS_DRAFT; + $sql.=" AND t.entity IN (".($entity==1?'0,1':$entity).')'; + $sql.=" AND t.fk_statut <> ".FactureFournisseur::STATUS_DRAFT; $sql.=" UNION ALL"; - $sql.=" SELECT rowid as id, ref, paid, total_ttc, fk_user_author as fk_soc, date_fin as date, 'ExpenseReport' as item FROM ".MAIN_DB_PREFIX."expensereport"; + $sql.=" SELECT t.rowid as id, t.ref, paid, total_ht, total_ttc, total_tva as total_vat, fk_user_author as fk_soc, date_fin as date, 'ExpenseReport' as item, CONCAT(CONCAT(u.lastname, ' '), u.firstname) as thirdparty_name, '' as thirdparty_code, c.code as country_code, '' as vatnum"; + $sql.=" FROM ".MAIN_DB_PREFIX."expensereport as t LEFT JOIN ".MAIN_DB_PREFIX."user as u ON u.rowid = t.fk_user_author LEFT JOIN ".MAIN_DB_PREFIX."c_country as c ON c.rowid = u.fk_country"; $sql.=" WHERE date_fin between ".$wheretail; - $sql.=" AND entity IN (".($entity==1?'0,1':$entity).')'; - $sql.=" AND fk_statut <> ".ExpenseReport::STATUS_DRAFT; + $sql.=" AND t.entity IN (".($entity==1?'0,1':$entity).')'; + $sql.=" AND t.fk_statut <> ".ExpenseReport::STATUS_DRAFT; $sql.=" UNION ALL"; - $sql.=" SELECT rowid as id, ref, paid, amount as total_ttc, '0' as fk_soc, datedon as date, 'Donation' as item FROM ".MAIN_DB_PREFIX."don"; + $sql.=" SELECT t.rowid as id, t.ref, paid, amount as total_ht, amount as total_ttc, 0 as total_vat, 0 as fk_soc, datedon as date, 'Donation' as item, t.societe as thirdparty_name, '' as thirdparty_code, c.code as country_code, '' as vatnum"; + $sql.=" FROM ".MAIN_DB_PREFIX."don as t LEFT JOIN ".MAIN_DB_PREFIX."c_country as c ON c.rowid = t.fk_country"; $sql.=" WHERE datedon between ".$wheretail; - $sql.=" AND entity IN (".($entity==1?'0,1':$entity).')'; - $sql.=" AND fk_statut <> ".Don::STATUS_DRAFT; + $sql.=" AND t.entity IN (".($entity==1?'0,1':$entity).')'; + $sql.=" AND t.fk_statut <> ".Don::STATUS_DRAFT; $sql.=" UNION ALL"; - $sql.=" SELECT rowid as id, label as ref, 1 as paid, amount as total_ttc, fk_user as fk_soc,datep as date, 'SalaryPayment' as item FROM ".MAIN_DB_PREFIX."payment_salary"; + $sql.=" SELECT t.rowid as id, t.label as ref, 1 as paid, amount as total_ht, amount as total_ttc, 0 as total_vat, t.fk_user as fk_soc, datep as date, 'SalaryPayment' as item, CONCAT(CONCAT(u.lastname, ' '), u.firstname) as thirdparty_name, '' as thirdparty_code, c.code as country_code, '' as vatnum"; + $sql.=" FROM ".MAIN_DB_PREFIX."payment_salary as t LEFT JOIN ".MAIN_DB_PREFIX."user as u ON u.rowid = t.fk_user LEFT JOIN ".MAIN_DB_PREFIX."c_country as c ON c.rowid = u.fk_country"; $sql.=" WHERE datep between ".$wheretail; - $sql.=" AND entity IN (".($entity==1?'0,1':$entity).')'; + $sql.=" AND t.entity IN (".($entity==1?'0,1':$entity).')'; //$sql.=" AND fk_statut <> ".PaymentSalary::STATUS_DRAFT; $sql.=" UNION ALL"; - $sql.=" SELECT rowid as id, libelle as ref, paye as paid, amount as total_ttc, 0 as fk_soc, date_creation as date, 'SocialContributions' as item FROM ".MAIN_DB_PREFIX."chargesociales"; + $sql.=" SELECT t.rowid as id, t.libelle as ref, paye as paid, amount as total_ht, amount as total_ttc, 0 as total_tva, 0 as fk_soc, date_creation as date, 'SocialContributions' as item, '' as thirdparty_name, '' as thirdparty_code, '' as country_code, '' as vatnum"; + $sql.=" FROM ".MAIN_DB_PREFIX."chargesociales as t"; $sql.=" WHERE date_creation between ".$wheretail; - $sql.=" AND entity IN (".($entity==1?'0,1':$entity).')'; + $sql.=" AND t.entity IN (".($entity==1?'0,1':$entity).')'; //$sql.=" AND fk_statut <> ".ChargeSociales::STATUS_DRAFT; $sql.= $db->order($sortfield, $sortorder); + //print $sql; $resd = $db->query($sql); $files=array(); @@ -162,63 +168,68 @@ if (($action=="searchfiles" || $action=="dl" )) { case "Invoice": $subdir = ''; $subdir.=($subdir ? '/' : '').dol_sanitizeFileName($objd->ref); - $upload_dir = $conf->facture->dir_output.'/'.$subdir; - $link="document.php?modulepart=facture&file=".str_replace('/', '%2F', $subdir).'%2F'; - break; + $upload_dir = $conf->facture->dir_output.'/'.$subdir; + $link="document.php?modulepart=facture&file=".str_replace('/', '%2F', $subdir).'%2F'; + break; case "SupplierInvoice": $tmpinvoicesupplier->fetch($objd->id); $subdir = get_exdir($tmpinvoicesupplier->id, 2, 0, 1, $tmpinvoicesupplier, 'invoice_supplier'); // TODO Use first file - $subdir.=($subdir ? '/' : '').dol_sanitizeFileName($objd->ref); - $upload_dir = $conf->fournisseur->facture->dir_output.'/'.$subdir; - $link="document.php?modulepart=facture_fournisseur&file=".str_replace('/', '%2F', $subdir).'%2F'; - break; + $subdir.=($subdir ? '/' : '').dol_sanitizeFileName($objd->ref); + $upload_dir = $conf->fournisseur->facture->dir_output.'/'.$subdir; + $link="document.php?modulepart=facture_fournisseur&file=".str_replace('/', '%2F', $subdir).'%2F'; + break; case "ExpenseReport": $subdir = ''; $subdir.=($subdir ? '/' : '').dol_sanitizeFileName($objd->ref); - $upload_dir = $conf->expensereport->dir_output.'/'.$subdir; - $link="document.php?modulepart=expensereport&file=".str_replace('/', '%2F', $subdir).'%2F'; - break; + $upload_dir = $conf->expensereport->dir_output.'/'.$subdir; + $link="document.php?modulepart=expensereport&file=".str_replace('/', '%2F', $subdir).'%2F'; + break; case "SalaryPayment": $subdir = ''; $subdir.=($subdir ? '/' : '').dol_sanitizeFileName($objd->id); - $upload_dir = $conf->salaries->dir_output.'/'.$subdir; - $link="document.php?modulepart=salaries&file=".str_replace('/', '%2F', $subdir).'%2F'; - break; + $upload_dir = $conf->salaries->dir_output.'/'.$subdir; + $link="document.php?modulepart=salaries&file=".str_replace('/', '%2F', $subdir).'%2F'; + break; case "Donation": - $tmpdonation->fetch($objp->id); - $subdir=get_exdir(0, 0, 0, 0, $tmpdonation, 'donation'); - $subdir.=($subdir ? '/' : '').dol_sanitizeFileName($objd->id); - $upload_dir = $conf->don->dir_output . '/' . $subdir; - $link="document.php?modulepart=don&file=".str_replace('/', '%2F', $subdir).'%2F'; - break; + $tmpdonation->fetch($objp->id); + $subdir=get_exdir(0, 0, 0, 0, $tmpdonation, 'donation'); + $subdir.=($subdir ? '/' : '').dol_sanitizeFileName($objd->id); + $upload_dir = $conf->don->dir_output . '/' . $subdir; + $link="document.php?modulepart=don&file=".str_replace('/', '%2F', $subdir).'%2F'; + break; case "SocialContributions": $subdir = ''; $subdir.=($subdir ? '/' : '').dol_sanitizeFileName($objd->id); - $upload_dir = $conf->tax->dir_output . '/' . $subdir; - $link="document.php?modulepart=tax&file=".str_replace('/', '%2F', $subdir).'%2F'; - break; + $upload_dir = $conf->tax->dir_output . '/' . $subdir; + $link="document.php?modulepart=tax&file=".str_replace('/', '%2F', $subdir).'%2F'; + break; default: - $subdir = ''; - $upload_dir = ''; - $link = ''; + $subdir=''; + $upload_dir=''; + $link=''; break; } if (!empty($upload_dir)) { $result=true; - $files=dol_dir_list($upload_dir, "files", 0, '', '(\.meta|_preview\.png)$', '', SORT_ASC, 1); - + //var_dump($upload_dir); if (count($files) < 1) { - $nofile['id']=$objd->id; - $nofile['date']=$db->idate($objd->date); + $nofile['id']=$objd->id; + $nofile['date']=$db->idate($objd->date); $nofile['paid']=$objd->paid; - $nofile['amount']=$objd->total_ttc; + $nofile['amount_ht']=$objd->total_ht; + $nofile['amount_ttc']=$objd->total_ttc; + $nofile['amount_vat']=$objd->total_vat; $nofile['ref']=($objd->ref ? $objd->ref : $objd->id); $nofile['fk']=$objd->fk_soc; $nofile['item']=$objd->item; + $nofile['thirdparty_name']=$objd->thirdparty_name; + $nofile['thirdparty_code']=$objd->thirdparty_code; + $nofile['country_code']=$objd->country_code; + $nofile['vatnum']=$objd->vatnum; $filesarray[]=$nofile; } @@ -226,13 +237,21 @@ if (($action=="searchfiles" || $action=="dl" )) { { foreach ($files as $key => $file) { - $file['id']=$objd->id; - $file['date']=$db->idate($objd->date); + $file['id']=$objd->id; + $file['date']=$db->idate($objd->date); $file['paid']=$objd->paid; - $file['amount']=$objd->total_ttc; + $file['amount_ht']=$objd->total_ht; + $file['amount_ttc']=$objd->total_ttc; + $file['amount_vat']=$objd->total_vat; $file['ref']=($objd->ref ? $objd->ref : $objd->id); $file['fk']=$objd->fk_soc; $file['item']=$objd->item; + + $file['thirdparty_name']=$objd->thirdparty_name; + $file['thirdparty_code']=$objd->thirdparty_code; + $file['country_code']=$objd->country_code; + $file['vatnum']=$objd->vatnum; + $file['link']=$link.$file['name']; $file['relpathnamelang'] = $langs->trans($file['item']).'/'.$file['name']; @@ -252,27 +271,30 @@ if (($action=="searchfiles" || $action=="dl" )) { } } -/* - * cleanup of old ZIP - */ -//FIXME + /* *ZIP creation */ -if ($result && $action == "dl") +$dirfortmpfile = ($conf->accounting->dir_temp ? $conf->accounting->dir_temp : $conf->comptabilite->dir_temp); +if (empty($dirfortmpfile)) { - if (! extension_loaded('zip')) - { - setEventMessages('PHPZIPExtentionNotLoaded', null, 'errors'); - exit; - } + setEventMessages($langs->trans("ErrorNoAccountingModuleEnabled"), null, 'errors'); + $error++; +} - $dirfortmpfile = ($conf->accounting->dir_temp ? $conf->accounting->dir_temp : $conf->compta->dir_temp); + +if ($result && $action == "dl" && ! $error) +{ + if (! extension_loaded('zip')) + { + setEventMessages('PHPZIPExtentionNotLoaded', null, 'errors'); + exit; + } dol_mkdir($dirfortmpfile); - $log='date,type,ref,total,paid,filename,item_id'."\n"; + $log=$langs->transnoentitiesnoconv("Type").','.$langs->transnoentitiesnoconv("Date").','.$langs->transnoentitiesnoconv("Ref").','.$langs->transnoentitiesnoconv("TotalHT").','.$langs->transnoentitiesnoconv("TotalTTC").','.$langs->transnoentitiesnoconv("TotalVAT").','.$langs->transnoentitiesnoconv("Paid").',filename,item_id,'.$langs->trans("ThirdParty").','.$langs->trans("Code").','.$langs->trans("Country").','.$langs->trans("VATIntra")."\n"; $zipname = $dirfortmpfile.'/'.dol_print_date($date_start, 'dayrfc')."-".dol_print_date($date_stop, 'dayrfc').'_export.zip'; dol_delete_file($zipname); @@ -281,10 +303,10 @@ if ($result && $action == "dl") $res = $zip->open($zipname, ZipArchive::OVERWRITE|ZipArchive::CREATE); if ($res) { - foreach ($filesarray as $key=> $file) + foreach ($filesarray as $key => $file) { if (file_exists($file["fullname"])) $zip->addFile($file["fullname"], $file["relpathnamelang"]); // - $log.=dol_print_date($file['date'], 'dayrfc').','.$file['item'].','.$file['ref'].','.$file['amount'].','.$file['paid'].','.$file["name"].','.$file['fk']."\n"; + $log.=$file['item'].','.dol_print_date($file['date'], 'dayrfc').','.$file['ref'].','.$file['amount_ht'].','.$file['amount_ttc'].','.$file['amount_vat'].','.$file['paid'].','.$file["name"].','.$file['fk'].','.$file['thirdparty_name'].','.$file['thirdparty_code'].','.$file['country_code'].',"'.$file['vatnum'].'"'."\n"; } $zip->addFromString('transactions.csv', $log); $zip->close(); @@ -299,6 +321,10 @@ if ($result && $action == "dl") exit(); } + else + { + setEventMessages($langs->trans("FailedToOpenFile", $zipname), null, 'errors'); + } } @@ -329,11 +355,11 @@ print ' - '.$form->selectDate($date_stop, 'date_stop', 0, 0, 0, "", 1, 1, 0)."\n // Export is for current company only ! if (! empty($conf->multicompany->enabled) && is_object($mc)) { - print '('.$langs->trans("Entity").' : '; - $mc->dao->getEntities(); - $mc->dao->fetch($conf->entity); - print $mc->dao->label; - print ")\n"; + print '('.$langs->trans("Entity").' : '; + $mc->dao->getEntities(); + $mc->dao->fetch($conf->entity); + print $mc->dao->label; + print ")\n"; } print ''; @@ -376,14 +402,18 @@ if (!empty($date_start) && !empty($date_stop)) print '
'; // You can use div-table-responsive-no-min if you dont need reserved height for your table print '
'. $langs->trans("CreateSurveyDate") .'
'; print ''; - print_liste_field_titre($arrayfields['date']['label'], $_SERVER["PHP_SELF"], "date", "", $param, 'class="nowrap"', $sortfield, $sortorder); - print ''; + print_liste_field_titre($arrayfields['type']['label'], $_SERVER["PHP_SELF"], "type", "", $param, '', $sortfield, $sortorder, 'nowrap '); + print_liste_field_titre($arrayfields['date']['label'], $_SERVER["PHP_SELF"], "date", "", $param, '', $sortfield, $sortorder, 'center nowrap '); print ''; print ''; print ''; - print ''; - print ''; - print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; print ''; if ($result) { @@ -397,18 +427,11 @@ if (!empty($date_start) && !empty($date_stop)) { // Sort array by date ASC to calculate balance + $totalET = 0; + $totalIT = 0; + $totalVAT = 0; $totalDebit = 0; $totalCredit = 0; - // Balance calculation - $balance = 0; - foreach($TData as &$data1) { - if ($data1['item']!='Invoice' && $data1['item']!='Donation') - { - $data1['amount']=-$data1['amount']; - } - $balance += $data1['amount']; - $data1['balance'] = $balance; - } // Display array foreach($TData as $data) @@ -417,11 +440,17 @@ if (!empty($date_start) && !empty($date_stop)) //if (!empty($data['fk_facture'])) $html_class = 'facid-'.$data['fk_facture']; //elseif (!empty($data['fk_paiement'])) $html_class = 'payid-'.$data['fk_paiement']; print ''; - print "'; + + // Date + print '\n"; - print ''; - print ''; + + // Ref + print ''; // File link print '\n"; + print "\n"; + + // Paid + print ''; + + // Total ET + print '\n"; + // Total IT + print '\n"; + // Total VAT + print '\n"; + + print '\n"; + + print '\n"; + + print '\n"; + + print '\n"; + + // Debit + //print '\n"; + // Credit + //print '\n"; + + $totalET += $data['amount_ht']; + $totalIT += $data['amount_ttc']; + $totalVAT += $data['amount_vat']; + + $totalDebit += ($data['amount_ttc'] > 0) ? abs($data['amount_ttc']) : 0; + $totalCredit += ($data['amount_ttc'] > 0) ? 0 : abs($data['amount_ttc']); - print ''; - print '\n"; - $totalDebit += ($data['amount'] > 0) ? abs($data['amount']) : 0; - print '\n"; - $totalCredit += ($data['amount'] > 0) ? 0 : abs($data['amount']); // Balance - print '\n"; + //print '\n"; + print "\n"; } print ''; - print ''; - print ''; - print ''; - print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + /*print ''; + print ''; + print ''; + */ print "\n"; } } @@ -453,5 +520,6 @@ if (!empty($date_start) && !empty($date_stop)) print ''; } + llxFooter(); $db->close(); diff --git a/htdocs/install/mysql/migration/9.0.0-10.0.0.sql b/htdocs/install/mysql/migration/9.0.0-10.0.0.sql index 40f7da3fa95..1270b8b279a 100644 --- a/htdocs/install/mysql/migration/9.0.0-10.0.0.sql +++ b/htdocs/install/mysql/migration/9.0.0-10.0.0.sql @@ -60,6 +60,8 @@ CREATE TABLE llx_pos_cash_fence( -- For 10.0 +UPDATE llx_chargesociales SET date_creation = tms WHERE date_creation IS NULL; + DROP TABLE llx_cotisation; ALTER TABLE llx_accounting_bookkeeping DROP COLUMN validated; ALTER TABLE llx_accounting_bookkeeping_tmp DROP COLUMN validated; diff --git a/htdocs/install/mysql/migration/repair.sql b/htdocs/install/mysql/migration/repair.sql index 387f8e159ec..37d3f984824 100755 --- a/htdocs/install/mysql/migration/repair.sql +++ b/htdocs/install/mysql/migration/repair.sql @@ -400,6 +400,7 @@ ALTER TABLE llx_accounting_account ADD UNIQUE INDEX uk_accounting_account (accou -- p.tva_tx = 0 -- where price = 17.5 +UPDATE llx_chargesociales SET date_creation = tms WHERE date_creation IS NULL; -- VMYSQL4.1 SET sql_mode = 'ALLOW_INVALID_DATES'; -- VMYSQL4.1 update llx_accounting_account set tms = datec where DATE(STR_TO_DATE(tms, '%Y-%m-%d')) IS NULL; diff --git a/htdocs/user/param_ihm.php b/htdocs/user/param_ihm.php index 2ded2013601..90228aa952e 100644 --- a/htdocs/user/param_ihm.php +++ b/htdocs/user/param_ihm.php @@ -173,7 +173,7 @@ if (! empty($conf->projet->enabled)) $tmparray['projet/index.php?mainmenu=projec if (! empty($conf->holiday->enabled) || ! empty($conf->expensereport->enabled)) $tmparray['hrm/index.php?mainmenu=hrm&leftmenu=']='HRMArea'; // TODO Complete list with first level of menus if (! empty($conf->product->enabled) || ! empty($conf->service->enabled)) $tmparray['product/index.php?mainmenu=products&leftmenu=']='ProductsAndServicesArea'; if (! empty($conf->propal->enabled) || ! empty($conf->commande->enabled) || ! empty($conf->ficheinter->enabled) || ! empty($conf->contrat->enabled)) $tmparray['comm/index.php?mainmenu=commercial&leftmenu=']='CommercialArea'; -if (! empty($conf->compta->enabled) || ! empty($conf->accounting->enabled)) $tmparray['compta/index.php?mainmenu=compta&leftmenu=']='AccountancyTreasuryArea'; +if (! empty($conf->comptabilite->enabled) || ! empty($conf->accounting->enabled)) $tmparray['compta/index.php?mainmenu=compta&leftmenu=']='AccountancyTreasuryArea'; if (! empty($conf->adherent->enabled)) $tmparray['adherents/index.php?mainmenu=members&leftmenu=']='MembersArea'; if (! empty($conf->agenda->enabled)) $tmparray['comm/action/index.php?mainmenu=agenda&leftmenu=']='Agenda'; From ad20a5158c2abe0a04efa3b4fa74a265b5071ead Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 18 Jun 2019 14:32:28 +0200 Subject: [PATCH 344/365] Fix columns in csv --- htdocs/compta/accounting-files.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/compta/accounting-files.php b/htdocs/compta/accounting-files.php index c663a179d6d..0954a194b73 100644 --- a/htdocs/compta/accounting-files.php +++ b/htdocs/compta/accounting-files.php @@ -294,7 +294,7 @@ if ($result && $action == "dl" && ! $error) dol_mkdir($dirfortmpfile); - $log=$langs->transnoentitiesnoconv("Type").','.$langs->transnoentitiesnoconv("Date").','.$langs->transnoentitiesnoconv("Ref").','.$langs->transnoentitiesnoconv("TotalHT").','.$langs->transnoentitiesnoconv("TotalTTC").','.$langs->transnoentitiesnoconv("TotalVAT").','.$langs->transnoentitiesnoconv("Paid").',filename,item_id,'.$langs->trans("ThirdParty").','.$langs->trans("Code").','.$langs->trans("Country").','.$langs->trans("VATIntra")."\n"; + $log=$langs->transnoentitiesnoconv("Type").','.$langs->transnoentitiesnoconv("Date").','.$langs->transnoentitiesnoconv("Ref").','.$langs->transnoentitiesnoconv("TotalHT").','.$langs->transnoentitiesnoconv("TotalTTC").','.$langs->transnoentitiesnoconv("TotalVAT").','.$langs->transnoentitiesnoconv("Paid").',filename,item_id,'.$langs->transnoentitiesnoconv("ThirdParty").','.$langs->transnoentitiesnoconv("Code").','.$langs->transnoentitiesnoconv("Country").','.$langs->transnoentitiesnoconv("VATIntra")."\n"; $zipname = $dirfortmpfile.'/'.dol_print_date($date_start, 'dayrfc')."-".dol_print_date($date_stop, 'dayrfc').'_export.zip'; dol_delete_file($zipname); From 27f52dd0bd73fdb2faa9c121ec95fb7fb512839c Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 18 Jun 2019 14:32:35 +0200 Subject: [PATCH 345/365] Fix columns in csv --- htdocs/compta/compta-files.php | 474 +++++++++++++++++++-------------- 1 file changed, 276 insertions(+), 198 deletions(-) diff --git a/htdocs/compta/compta-files.php b/htdocs/compta/compta-files.php index be08e264a02..e28df61e658 100644 --- a/htdocs/compta/compta-files.php +++ b/htdocs/compta/compta-files.php @@ -1,6 +1,6 @@ - * Copyright (C) 2004-2018 Laurent Destailleur + * Copyright (C) 2004-2019 Laurent Destailleur * Copyright (C) 2017 Pierre-Henry Favre * * This program is free software; you can redistribute it and/or modify @@ -17,7 +17,7 @@ * along with this program. If not, see . */ /** - * \file htdocs/compta/compta-files.php + * \file htdocs/compta/accounting-files.php * \ingroup compta * \brief Page to show portoflio and files of a thirdparty and download it */ @@ -25,15 +25,14 @@ require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php'; -require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.facture.class.php'; require_once DOL_DOCUMENT_ROOT.'/compta/paiement/class/paiement.class.php'; -require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php'; -require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.facture.class.php'; +require_once DOL_DOCUMENT_ROOT.'/compta/salaries/class/paymentsalary.class.php'; require_once DOL_DOCUMENT_ROOT.'/compta/sociales/class/chargesociales.class.php'; -require_once DOL_DOCUMENT_ROOT.'/expensereport/class/expensereport.class.php'; require_once DOL_DOCUMENT_ROOT.'/don/class/don.class.php'; +require_once DOL_DOCUMENT_ROOT.'/expensereport/class/expensereport.class.php'; +require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.facture.class.php'; -$langs->loadLangs(array("accountancy","bills")); +$langs->loadLangs(array("accountancy", "bills", "companies", "salaries")); $date_start =GETPOST('date_start', 'alpha'); $date_startDay= GETPOST('date_startday', 'int'); @@ -45,7 +44,7 @@ $date_stopDay= GETPOST('date_stopday', 'int'); $date_stopMonth= GETPOST('date_stopmonth', 'int'); $date_stopYear= GETPOST('date_stopyear', 'int'); //FIXME doldate -$date_stop=($date_stopDay)?dol_mktime(0, 0, 0, $date_stopMonth, $date_stopDay, $date_stopYear):strtotime($date_stop); +$date_stop=($date_stopDay)?dol_mktime(23, 59, 59, $date_stopMonth, $date_stopDay, $date_stopYear):strtotime($date_stop); $action =GETPOST('action', 'alpha'); // Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context @@ -65,6 +64,7 @@ if (! $sortorder) $sortorder="DESC"; $arrayfields=array( + 'type'=>array('label'=>"Type", 'checked'=>1), 'date'=>array('label'=>"Date", 'checked'=>1), //... ); @@ -74,8 +74,9 @@ if (empty($conf->comptabilite->enabled) && empty($conf->accounting->enabled)) { accessforbidden(); } if ($user->societe_id > 0) +{ accessforbidden(); - +} /* @@ -90,157 +91,211 @@ $entity = GETPOST('entity','int')?GETPOST('entity','int'):$conf->entity; $filesarray=array(); $result=false; -if(($action=="searchfiles"||$action=="dl" ) && $date_start && $date_stop){ - $wheretail=" '".$db->idate($date_start)."' AND '".$db->idate($date_stop)."'"; - $sql="SELECT rowid as id, facnumber as ref,paye as paid, total_ttc, fk_soc, datef as date, 'Invoice' as item FROM ".MAIN_DB_PREFIX."facture"; - $sql.=" WHERE datef between ".$wheretail; - $sql.=" AND entity IN (".($entity==1?'0,1':$entity).')'; - $sql.=" AND fk_statut <> ".Facture::STATUS_DRAFT; - $sql.=" UNION ALL"; - $sql.=" SELECT rowid as id, ref, paye as paid, total_ttc, fk_soc, datef as date, 'SupplierInvoice' as item FROM ".MAIN_DB_PREFIX."facture_fourn"; - $sql.=" WHERE datef between ".$wheretail; - $sql.=" AND entity IN (".($entity==1?'0,1':$entity).')'; - $sql.=" AND fk_statut <> ".FactureFournisseur::STATUS_DRAFT; - $sql.=" UNION ALL"; - $sql.=" SELECT rowid as id, ref, paid, total_ttc, fk_user_author as fk_soc, date_fin as date,'ExpenseReport' as item FROM ".MAIN_DB_PREFIX."expensereport"; - $sql.=" WHERE date_fin between ".$wheretail; - $sql.=" AND entity IN (".($entity==1?'0,1':$entity).')'; - $sql.=" AND fk_statut <> ".ExpenseReport::STATUS_DRAFT; - $sql.=" UNION ALL"; - $sql.=" SELECT rowid as id, ref,paid,amount as total_ttc, '0' as fk_soc, datedon as date,'Donation' as item FROM ".MAIN_DB_PREFIX."don"; - $sql.=" WHERE datedon between ".$wheretail; - $sql.=" AND entity IN (".($entity==1?'0,1':$entity).')'; - $sql.=" AND fk_statut <> ".Don::STATUS_DRAFT; - $sql.=" UNION ALL"; - $sql.=" SELECT rowid as id, label as ref, 1 as paid, amount as total_ttc, fk_user as fk_soc,datep as date,'SalaryPayment' as item FROM ".MAIN_DB_PREFIX."payment_salary"; - $sql.=" WHERE datep between ".$wheretail; - $sql.=" AND entity IN (".($entity==1?'0,1':$entity).')'; - //$sql.=" AND fk_statut <> ".PaymentSalary::STATUS_DRAFT; - $sql.=" UNION ALL"; - $sql.=" SELECT rowid as id, libelle as ref, paye as paid, amount as total_ttc, 0 as fk_soc, date_creation as date, 'SocialContributions' as item FROM ".MAIN_DB_PREFIX."chargesociales"; - $sql.=" WHERE date_creation between ".$wheretail; - $sql.=" AND entity IN (".($entity==1?'0,1':$entity).')'; - //$sql.=" AND fk_statut <> ".ChargeSociales::STATUS_DRAFT; - $sql.= $db->order($sortfield, $sortorder); +if (($action=="searchfiles" || $action=="dl" )) { - $resd = $db->query($sql); - $files=array(); - $link=''; - - if ($resd) + if (empty($date_start)) { - $numd = $db->num_rows($resd); + setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("DateStart")), null, 'errors'); + $error++; + } + if (empty($date_stop)) + { + setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("DateEnd")), null, 'errors'); + $error++; + } - $tmpinvoice=new Facture($db); - $tmpinvoicesupplier=new FactureFournisseur($db); - $tmpdonation=new Don($db); + if (! $error) + { + $wheretail=" '".$db->idate($date_start)."' AND '".$db->idate($date_stop)."'"; - $upload_dir =''; - $i=0; - while ($i < $numd) + $sql="SELECT t.rowid as id, t.facnumber as ref, t.paye as paid, total as total_ht, total_ttc, tva as total_vat, fk_soc, t.datef as date, 'Invoice' as item, s.nom as thirdparty_name, s.code_client as thirdparty_code, c.code as country_code, s.tva_intra as vatnum"; + $sql.=" FROM ".MAIN_DB_PREFIX."facture as t LEFT JOIN ".MAIN_DB_PREFIX."societe as s ON s.rowid = t.fk_soc LEFT JOIN ".MAIN_DB_PREFIX."c_country as c ON c.rowid = s.fk_pays"; + $sql.=" WHERE datef between ".$wheretail; + $sql.=" AND t.entity IN (".($entity==1?'0,1':$entity).')'; + $sql.=" AND t.fk_statut <> ".Facture::STATUS_DRAFT; + $sql.=" UNION ALL"; + $sql.=" SELECT t.rowid as id, t.ref, paye as paid, total_ht, total_ttc, total_tva as total_vat, fk_soc, datef as date, 'SupplierInvoice' as item, s.nom as thirdparty_name, s.code_fournisseur as thirdparty_code, c.code as country_code, s.tva_intra as vatnum"; + $sql.=" FROM ".MAIN_DB_PREFIX."facture_fourn as t LEFT JOIN ".MAIN_DB_PREFIX."societe as s ON s.rowid = t.fk_soc LEFT JOIN ".MAIN_DB_PREFIX."c_country as c ON c.rowid = s.fk_pays"; + $sql.=" WHERE datef between ".$wheretail; + $sql.=" AND t.entity IN (".($entity==1?'0,1':$entity).')'; + $sql.=" AND t.fk_statut <> ".FactureFournisseur::STATUS_DRAFT; + $sql.=" UNION ALL"; + $sql.=" SELECT t.rowid as id, t.ref, paid, total_ht, total_ttc, total_tva as total_vat, fk_user_author as fk_soc, date_fin as date, 'ExpenseReport' as item, CONCAT(CONCAT(u.lastname, ' '), u.firstname) as thirdparty_name, '' as thirdparty_code, c.code as country_code, '' as vatnum"; + $sql.=" FROM ".MAIN_DB_PREFIX."expensereport as t LEFT JOIN ".MAIN_DB_PREFIX."user as u ON u.rowid = t.fk_user_author LEFT JOIN ".MAIN_DB_PREFIX."c_country as c ON c.rowid = u.fk_country"; + $sql.=" WHERE date_fin between ".$wheretail; + $sql.=" AND t.entity IN (".($entity==1?'0,1':$entity).')'; + $sql.=" AND t.fk_statut <> ".ExpenseReport::STATUS_DRAFT; + $sql.=" UNION ALL"; + $sql.=" SELECT t.rowid as id, t.ref, paid, amount as total_ht, amount as total_ttc, 0 as total_vat, 0 as fk_soc, datedon as date, 'Donation' as item, t.societe as thirdparty_name, '' as thirdparty_code, c.code as country_code, '' as vatnum"; + $sql.=" FROM ".MAIN_DB_PREFIX."don as t LEFT JOIN ".MAIN_DB_PREFIX."c_country as c ON c.rowid = t.fk_country"; + $sql.=" WHERE datedon between ".$wheretail; + $sql.=" AND t.entity IN (".($entity==1?'0,1':$entity).')'; + $sql.=" AND t.fk_statut <> ".Don::STATUS_DRAFT; + $sql.=" UNION ALL"; + $sql.=" SELECT t.rowid as id, t.label as ref, 1 as paid, amount as total_ht, amount as total_ttc, 0 as total_vat, t.fk_user as fk_soc, datep as date, 'SalaryPayment' as item, CONCAT(CONCAT(u.lastname, ' '), u.firstname) as thirdparty_name, '' as thirdparty_code, c.code as country_code, '' as vatnum"; + $sql.=" FROM ".MAIN_DB_PREFIX."payment_salary as t LEFT JOIN ".MAIN_DB_PREFIX."user as u ON u.rowid = t.fk_user LEFT JOIN ".MAIN_DB_PREFIX."c_country as c ON c.rowid = u.fk_country"; + $sql.=" WHERE datep between ".$wheretail; + $sql.=" AND t.entity IN (".($entity==1?'0,1':$entity).')'; + //$sql.=" AND fk_statut <> ".PaymentSalary::STATUS_DRAFT; + $sql.=" UNION ALL"; + $sql.=" SELECT t.rowid as id, t.libelle as ref, paye as paid, amount as total_ht, amount as total_ttc, 0 as total_tva, 0 as fk_soc, date_creation as date, 'SocialContributions' as item, '' as thirdparty_name, '' as thirdparty_code, '' as country_code, '' as vatnum"; + $sql.=" FROM ".MAIN_DB_PREFIX."chargesociales as t"; + $sql.=" WHERE date_creation between ".$wheretail; + $sql.=" AND t.entity IN (".($entity==1?'0,1':$entity).')'; + //$sql.=" AND fk_statut <> ".ChargeSociales::STATUS_DRAFT; + $sql.= $db->order($sortfield, $sortorder); + //print $sql; + + $resd = $db->query($sql); + $files=array(); + $link=''; + + if ($resd) { - $objd = $db->fetch_object($resd); + $numd = $db->num_rows($resd); - switch($objd->item) - { - case "Invoice": - $subdir=dol_sanitizeFileName($objd->ref); - $upload_dir = $conf->facture->dir_output.'/'.$subdir; - $link="document.php?modulepart=facture&file=".str_replace('/', '%2F', $subdir).'%2F'; - break; - case "SupplierInvoice": - $tmpinvoicesupplier->fetch($objd->id); - $subdir=get_exdir($tmpinvoicesupplier->id, 2, 0, 0, $tmpinvoicesupplier, 'invoice_supplier').'/'.dol_sanitizeFileName($objd->ref); - $upload_dir = $conf->fournisseur->facture->dir_output.'/'.$subdir; - $link="document.php?modulepart=facture_fournisseur&file=".str_replace('/', '%2F', $subdir).'%2F'; - break; - case "ExpenseReport": - $subdir=dol_sanitizeFileName($objd->ref); - $upload_dir = $conf->expensereport->dir_output.'/'.$subdir; - $link="document.php?modulepart=expensereport&file=".str_replace('/', '%2F', $subdir).'%2F'; - break; - case "SalaryPayment": - $subdir=dol_sanitizeFileName($objd->id); - $upload_dir = $conf->salaries->dir_output.'/'.$subdir; - $link="document.php?modulepart=salaries&file=".str_replace('/', '%2F', $subdir).'%2F'; - break; - case "Donation": - $tmpdonation->fetch($objp->id); - $subdir=get_exdir(0, 0, 0, 1, $tmpdonation, 'donation'). '/'. dol_sanitizeFileName($objd->id); - $upload_dir = $conf->don->dir_output . '/' . $subdir; - $link="document.php?modulepart=don&file=".str_replace('/', '%2F', $subdir).'%2F'; - break; - case "SocialContributions": - $subdir=dol_sanitizeFileName($objd->id); - $upload_dir = $conf->tax->dir_output . '/' . $subdir; - $link="document.php?modulepart=tax&file=".str_replace('/', '%2F', $subdir).'%2F'; - break; - default: - $subdir=''; - $upload_dir=''; - $link=''; - break; - } + $tmpinvoice=new Facture($db); + $tmpinvoicesupplier=new FactureFournisseur($db); + $tmpdonation=new Don($db); - if (!empty($upload_dir)) + $upload_dir =''; + $i=0; + while ($i < $numd) { - $result=true; - $files=dol_dir_list($upload_dir, "files", 0, '', '(\.meta|_preview\.png)$', '', SORT_ASC, 1); - //var_dump($upload_dir); - if (count($files) < 1) + $objd = $db->fetch_object($resd); + + switch($objd->item) { - $nofile['date']=$db->idate($objd->date); - $nofile['paid']=$objd->paid; - $nofile['amount']=$objd->total_ttc; - $nofile['ref']=$objd->ref; - $nofile['fk']=$objd->fk_soc; - $nofile['item']=$objd->item; - - $filesarray[]=$nofile; + case "Invoice": + $subdir = ''; + $subdir.=($subdir ? '/' : '').dol_sanitizeFileName($objd->ref); + $upload_dir = $conf->facture->dir_output.'/'.$subdir; + $link="document.php?modulepart=facture&file=".str_replace('/', '%2F', $subdir).'%2F'; + break; + case "SupplierInvoice": + $tmpinvoicesupplier->fetch($objd->id); + $subdir = get_exdir($tmpinvoicesupplier->id, 2, 0, 1, $tmpinvoicesupplier, 'invoice_supplier'); // TODO Use first file + $subdir.=($subdir ? '/' : '').dol_sanitizeFileName($objd->ref); + $upload_dir = $conf->fournisseur->facture->dir_output.'/'.$subdir; + $link="document.php?modulepart=facture_fournisseur&file=".str_replace('/', '%2F', $subdir).'%2F'; + break; + case "ExpenseReport": + $subdir = ''; + $subdir.=($subdir ? '/' : '').dol_sanitizeFileName($objd->ref); + $upload_dir = $conf->expensereport->dir_output.'/'.$subdir; + $link="document.php?modulepart=expensereport&file=".str_replace('/', '%2F', $subdir).'%2F'; + break; + case "SalaryPayment": + $subdir = ''; + $subdir.=($subdir ? '/' : '').dol_sanitizeFileName($objd->id); + $upload_dir = $conf->salaries->dir_output.'/'.$subdir; + $link="document.php?modulepart=salaries&file=".str_replace('/', '%2F', $subdir).'%2F'; + break; + case "Donation": + $tmpdonation->fetch($objp->id); + $subdir=get_exdir(0, 0, 0, 0, $tmpdonation, 'donation'); + $subdir.=($subdir ? '/' : '').dol_sanitizeFileName($objd->id); + $upload_dir = $conf->don->dir_output . '/' . $subdir; + $link="document.php?modulepart=don&file=".str_replace('/', '%2F', $subdir).'%2F'; + break; + case "SocialContributions": + $subdir = ''; + $subdir.=($subdir ? '/' : '').dol_sanitizeFileName($objd->id); + $upload_dir = $conf->tax->dir_output . '/' . $subdir; + $link="document.php?modulepart=tax&file=".str_replace('/', '%2F', $subdir).'%2F'; + break; + default: + $subdir=''; + $upload_dir=''; + $link=''; + break; } - else - { - foreach ($files as $key => $file) - { - $file['date']=$db->idate($objd->date); - $file['paid']=$objd->paid; - $file['amount']=$objd->total_ttc; - $file['ref']=$objd->ref; - $file['fk']=$objd->fk_soc; - $file['item']=$objd->item; - $file['link']=$link.$file['name']; - $file['relpathnamelang'] = $langs->trans($file['item']).'/'.$file['name']; - $filesarray[]=$file; + if (!empty($upload_dir)) + { + $result=true; + $files=dol_dir_list($upload_dir, "files", 0, '', '(\.meta|_preview\.png)$', '', SORT_ASC, 1); + //var_dump($upload_dir); + if (count($files) < 1) + { + $nofile['id']=$objd->id; + $nofile['date']=$db->idate($objd->date); + $nofile['paid']=$objd->paid; + $nofile['amount_ht']=$objd->total_ht; + $nofile['amount_ttc']=$objd->total_ttc; + $nofile['amount_vat']=$objd->total_vat; + $nofile['ref']=($objd->ref ? $objd->ref : $objd->id); + $nofile['fk']=$objd->fk_soc; + $nofile['item']=$objd->item; + $nofile['thirdparty_name']=$objd->thirdparty_name; + $nofile['thirdparty_code']=$objd->thirdparty_code; + $nofile['country_code']=$objd->country_code; + $nofile['vatnum']=$objd->vatnum; + + $filesarray[]=$nofile; + } + else + { + foreach ($files as $key => $file) + { + $file['id']=$objd->id; + $file['date']=$db->idate($objd->date); + $file['paid']=$objd->paid; + $file['amount_ht']=$objd->total_ht; + $file['amount_ttc']=$objd->total_ttc; + $file['amount_vat']=$objd->total_vat; + $file['ref']=($objd->ref ? $objd->ref : $objd->id); + $file['fk']=$objd->fk_soc; + $file['item']=$objd->item; + + $file['thirdparty_name']=$objd->thirdparty_name; + $file['thirdparty_code']=$objd->thirdparty_code; + $file['country_code']=$objd->country_code; + $file['vatnum']=$objd->vatnum; + + $file['link']=$link.$file['name']; + $file['relpathnamelang'] = $langs->trans($file['item']).'/'.$file['name']; + + $filesarray[]=$file; + } } } + $i++; } - $i++; } - } - else - { - dol_print_error($db); - } + else + { + dol_print_error($db); + } - $db->free($resd); + $db->free($resd); + } } -/* - * cleanup of old ZIP - */ -//FIXME + /* *ZIP creation */ -if ($result && $action == "dl") +$dirfortmpfile = ($conf->accounting->dir_temp ? $conf->accounting->dir_temp : $conf->comptabilite->dir_temp); +if (empty($dirfortmpfile)) { - $dirfortmpfile = ($conf->accounting->dir_temp ? $conf->accounting->dir_temp : $conf->compta->dir_temp); + setEventMessages($langs->trans("ErrorNoAccountingModuleEnabled"), null, 'errors'); + $error++; +} + + +if ($result && $action == "dl" && ! $error) +{ + if (! extension_loaded('zip')) + { + setEventMessages('PHPZIPExtentionNotLoaded', null, 'errors'); + exit; + } dol_mkdir($dirfortmpfile); - $log='date,type,ref,total,paid,filename,item_id'."\n"; + $log=$langs->transnoentitiesnoconv("Type").','.$langs->transnoentitiesnoconv("Date").','.$langs->transnoentitiesnoconv("Ref").','.$langs->transnoentitiesnoconv("TotalHT").','.$langs->transnoentitiesnoconv("TotalTTC").','.$langs->transnoentitiesnoconv("TotalVAT").','.$langs->transnoentitiesnoconv("Paid").',filename,item_id,'.$langs->transnoentitiesnoconv("ThirdParty").','.$langs->transnoentitiesnoconv("Code").','.$langs->transnoentitiesnoconv("Country").','.$langs->transnoentitiesnoconv("VATIntra")."\n"; $zipname = $dirfortmpfile.'/'.dol_print_date($date_start, 'dayrfc')."-".dol_print_date($date_stop, 'dayrfc').'_export.zip'; dol_delete_file($zipname); @@ -249,10 +304,10 @@ if ($result && $action == "dl") $res = $zip->open($zipname, ZipArchive::OVERWRITE|ZipArchive::CREATE); if ($res) { - foreach ($filesarray as $key=> $file) + foreach ($filesarray as $key => $file) { if (file_exists($file["fullname"])) $zip->addFile($file["fullname"], $file["relpathnamelang"]); // - $log.=dol_print_date($file['date'], 'dayrfc').','.$file['item'].','.$file['ref'].','.$file['amount'].','.$file['paid'].','.$file["name"].','.$file['fk']."\n"; + $log.=$file['item'].','.dol_print_date($file['date'], 'dayrfc').','.$file['ref'].','.$file['amount_ht'].','.$file['amount_ttc'].','.$file['amount_vat'].','.$file['paid'].','.$file["name"].','.$file['fk'].','.$file['thirdparty_name'].','.$file['thirdparty_code'].','.$file['country_code'].',"'.$file['vatnum'].'"'."\n"; } $zip->addFromString('transactions.csv', $log); $zip->close(); @@ -267,6 +322,10 @@ if ($result && $action == "dl") exit(); } + else + { + setEventMessages($langs->trans("FailedToOpenFile", $zipname), null, 'errors'); + } } @@ -283,7 +342,7 @@ llxHeader('', $title, $help_url); $h=0; $head[$h][0] = $_SERVER["PHP_SELF"].$varlink; -$head[$h][1] = $langs->trans("AccountancyFiles"); +$head[$h][1] = $langs->trans("AccountantFiles"); $head[$h][2] = 'AccountancyFiles'; dol_fiche_head($head, 'AccountancyFiles'); @@ -293,45 +352,20 @@ print '
'; print $langs->trans("ReportPeriod").': '.$form->selectDate($date_start, 'date_start', 0, 0, 0, "", 1, 1, 0); print ' - '.$form->selectDate($date_stop, 'date_stop', 0, 0, 0, "", 1, 1, 0)."\n"; -// Multicompany -/*if (! empty($conf->multicompany->enabled) && is_object($mc)) - { - print '
'; - // This is now done with hook formObjectOptions. Keep this code for backward compatibility with old multicompany module - if (method_exists($mc, 'formObjectOptions')) - { - if (empty($conf->global->MULTICOMPANY_TRANSVERSE_MODE) && $conf->entity == 1 && $user->admin && ! $user->entity) // condition must be same for create and edit mode - { - print "
".''; - print "\n"; - } - else - { - print ''; - } - } - $object = new stdClass(); - // Other attributes - $parameters=array('objectsrc' => null, 'colspan' => ' colspan="3"'); - $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, 'edit'); - } - }*/ +// Export is for current company only ! if (! empty($conf->multicompany->enabled) && is_object($mc)) { - print '   -   '.$langs->trans("Entity").' : '; + print '('.$langs->trans("Entity").' : '; $mc->dao->getEntities(); $mc->dao->fetch($conf->entity); print $mc->dao->label; - print "
\n"; + print ")
\n"; } -print ''."\n"; +print ''; + +print ''."\n"; dol_fiche_end(); @@ -369,14 +403,18 @@ if (!empty($date_start) && !empty($date_stop)) print '
'; // You can use div-table-responsive-no-min if you dont need reserved height for your table print '
'.$langs->trans("Type").''.$langs->trans("Ref").''.$langs->trans("Document").''.$langs->trans("Paid").''.$langs->trans("Debit").''.$langs->trans("Credit").''.$langs->trans("Balance").''.$langs->trans("TotalHT").''.$langs->trans("TotalTTC").''.$langs->trans("TotalVAT").''.$langs->trans("ThirdParty").''.$langs->trans("Code").''.$langs->trans("Country").''.$langs->trans("VATIntra").'
"; + + // Type + print ''.$langs->trans($data['item']).''; print dol_print_date($data['date'], 'day'); print "'.$langs->trans($data['item']).''.$data['ref'].''.$data['ref'].''; @@ -429,23 +458,61 @@ if (!empty($date_start) && !empty($date_stop)) { print ''.($data['name'] ? $data['name'] : $data['ref']).''; } - print "'.$data['paid'].''.price($data['amount_ht'])."'.price($data['amount_ttc'])."'.price($data['amount_vat'])."'.$data['thirdparty_name']."'.$data['thirdparty_code']."'.$data['country_code']."'.$data['vatnum']."'.(($data['amount_ttc'] > 0) ? price(abs($data['amount_ttc'])) : '')."'.(($data['amount_ttc'] > 0) ? '' : price(abs($data['amount_ttc'])))."'.$data['paid'].''.(($data['amount'] > 0) ? price(abs($data['amount'])) : '')."'.(($data['amount'] > 0) ? '' : price(abs($data['amount'])))."'.price($data['balance'])."'.price($data['balance'])."
 '.price($totalDebit).''.price($totalCredit).''.price(price2num($totalDebit - $totalCredit, 'MT')).''.price($totalET).''.price($totalIT).''.price($totalVAT).''.price($totalDebit).''.price($totalCredit).''.price(price2num($totalDebit - $totalCredit, 'MT')).'
'.$langs->trans("Entity").'".$mc->select_entities($entity); - print "
'; print ''; - print_liste_field_titre($arrayfields['date']['label'], $_SERVER["PHP_SELF"], "date", "", $param, 'align="center" class="nowrap"', $sortfield, $sortorder); - print ''; + print_liste_field_titre($arrayfields['type']['label'], $_SERVER["PHP_SELF"], "type", "", $param, '', $sortfield, $sortorder, 'nowrap '); + print_liste_field_titre($arrayfields['date']['label'], $_SERVER["PHP_SELF"], "date", "", $param, '', $sortfield, $sortorder, 'center nowrap '); print ''; - print ''; + print ''; print ''; - print ''; - print ''; - print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; print ''; if ($result) { @@ -390,20 +428,11 @@ if (!empty($date_start) && !empty($date_stop)) { // Sort array by date ASC to calculate balance + $totalET = 0; + $totalIT = 0; + $totalVAT = 0; $totalDebit = 0; $totalCredit = 0; - // Balance calculation - $balance = 0; - foreach($TData as &$data1) { - if ($data1['item']!='Invoice'&& $data1['item']!='Donation' ){ - $data1['amount']=-$data1['amount']; - } - if ($data1['amount']>0){ - }else{ - } - $balance += $data1['amount']; - $data1['balance'] = $balance; - } // Display array foreach($TData as $data) @@ -412,30 +441,79 @@ if (!empty($date_start) && !empty($date_stop)) //if (!empty($data['fk_facture'])) $html_class = 'facid-'.$data['fk_facture']; //elseif (!empty($data['fk_paiement'])) $html_class = 'payid-'.$data['fk_paiement']; print ''; - print "'; + + // Date + print '\n"; - print ''; + + // Ref print ''; // File link - print '\n"; + print '\n"; + // Paid print ''; - print '\n"; - $totalDebit += ($data['amount'] > 0) ? abs($data['amount']) : 0; - print '\n"; - $totalCredit += ($data['amount'] > 0) ? 0 : abs($data['amount']); + + // Total ET + print '\n"; + // Total IT + print '\n"; + // Total VAT + print '\n"; + + print '\n"; + + print '\n"; + + print '\n"; + + print '\n"; + + // Debit + //print '\n"; + // Credit + //print '\n"; + + $totalET += $data['amount_ht']; + $totalIT += $data['amount_ttc']; + $totalVAT += $data['amount_vat']; + + $totalDebit += ($data['amount_ttc'] > 0) ? abs($data['amount_ttc']) : 0; + $totalCredit += ($data['amount_ttc'] > 0) ? 0 : abs($data['amount_ttc']); + // Balance - print '\n"; + //print '\n"; + print "\n"; } print ''; - print ''; - print ''; - print ''; - print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + /*print ''; + print ''; + print ''; + */ print "\n"; } } From 6bda130835a347b075ae79f4132a0969c418e426 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 18 Jun 2019 14:51:57 +0200 Subject: [PATCH 346/365] Protect from dir scan --- htdocs/bom/admin/index.html | 0 htdocs/bom/class/index.html | 0 htdocs/bom/index.html | 0 htdocs/bom/lib/index.html | 0 htdocs/datapolicy/admin/index.html | 0 htdocs/datapolicy/class/index.html | 0 htdocs/datapolicy/index.html | 0 htdocs/datapolicy/lib/index.html | 0 htdocs/debugbar/index.html | 0 htdocs/website/class/index.html | 0 htdocs/website/lib/index.html | 0 11 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 htdocs/bom/admin/index.html create mode 100644 htdocs/bom/class/index.html create mode 100644 htdocs/bom/index.html create mode 100644 htdocs/bom/lib/index.html create mode 100644 htdocs/datapolicy/admin/index.html create mode 100644 htdocs/datapolicy/class/index.html create mode 100644 htdocs/datapolicy/index.html create mode 100644 htdocs/datapolicy/lib/index.html create mode 100644 htdocs/debugbar/index.html create mode 100644 htdocs/website/class/index.html create mode 100644 htdocs/website/lib/index.html diff --git a/htdocs/bom/admin/index.html b/htdocs/bom/admin/index.html new file mode 100644 index 00000000000..e69de29bb2d diff --git a/htdocs/bom/class/index.html b/htdocs/bom/class/index.html new file mode 100644 index 00000000000..e69de29bb2d diff --git a/htdocs/bom/index.html b/htdocs/bom/index.html new file mode 100644 index 00000000000..e69de29bb2d diff --git a/htdocs/bom/lib/index.html b/htdocs/bom/lib/index.html new file mode 100644 index 00000000000..e69de29bb2d diff --git a/htdocs/datapolicy/admin/index.html b/htdocs/datapolicy/admin/index.html new file mode 100644 index 00000000000..e69de29bb2d diff --git a/htdocs/datapolicy/class/index.html b/htdocs/datapolicy/class/index.html new file mode 100644 index 00000000000..e69de29bb2d diff --git a/htdocs/datapolicy/index.html b/htdocs/datapolicy/index.html new file mode 100644 index 00000000000..e69de29bb2d diff --git a/htdocs/datapolicy/lib/index.html b/htdocs/datapolicy/lib/index.html new file mode 100644 index 00000000000..e69de29bb2d diff --git a/htdocs/debugbar/index.html b/htdocs/debugbar/index.html new file mode 100644 index 00000000000..e69de29bb2d diff --git a/htdocs/website/class/index.html b/htdocs/website/class/index.html new file mode 100644 index 00000000000..e69de29bb2d diff --git a/htdocs/website/lib/index.html b/htdocs/website/lib/index.html new file mode 100644 index 00000000000..e69de29bb2d From 6afda6a47a8db60cf16e11d3475862c41c435016 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 18 Jun 2019 15:57:22 +0200 Subject: [PATCH 347/365] FIX invalid link on user.fk_user --- htdocs/install/mysql/migration/repair.sql | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/htdocs/install/mysql/migration/repair.sql b/htdocs/install/mysql/migration/repair.sql index 22409441eac..dc9fcc86df6 100755 --- a/htdocs/install/mysql/migration/repair.sql +++ b/htdocs/install/mysql/migration/repair.sql @@ -199,6 +199,15 @@ delete from llx_element_element where sourcetype='commande' and fk_source not in DELETE FROM llx_actioncomm_resources WHERE fk_actioncomm not in (select id from llx_actioncomm); +-- Fix link on parent that were removed +DROP table tmp_user; +CREATE TABLE tmp_user as (select * from llx_user); +UPDATE llx_user SET fk_user = NULL where fk_user NOT IN (select rowid from tmp_user); + + +update llx_user set fk_user = null where fk_user not in (select rowid from llx_user); + + UPDATE llx_product SET canvas = NULL where canvas = 'default@product'; UPDATE llx_product SET canvas = NULL where canvas = 'service@product'; From 6e9874b95ad50d6011fbd5677442cc9d69944804 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 18 Jun 2019 16:01:24 +0200 Subject: [PATCH 348/365] FIX A user may read holiday and expense report without permissions --- htdocs/expensereport/list.php | 16 +++++++++++++++- htdocs/holiday/list.php | 12 ++++++++++++ 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/htdocs/expensereport/list.php b/htdocs/expensereport/list.php index 3b153bcf843..8b5ef11f128 100644 --- a/htdocs/expensereport/list.php +++ b/htdocs/expensereport/list.php @@ -46,10 +46,25 @@ $confirm=GETPOST('confirm','alpha'); $toselect = GETPOST('toselect', 'array'); $contextpage=GETPOST('contextpage','aZ')?GETPOST('contextpage','aZ'):'expensereportlist'; +$childids = $user->getAllChildIds(1); + // Security check $socid = GETPOST('socid','int'); if ($user->societe_id) $socid=$user->societe_id; $result = restrictedArea($user, 'expensereport','',''); +$id = GETPOST('id', 'int'); +// If we are on the view of a specific user +if ($id > 0) +{ + $canread=0; + if ($id == $user->id) $canread=1; + if (! empty($user->rights->holiday->read_all)) $canread=1; + if (! empty($user->rights->holiday->read) && in_array($id, $childids)) $canread=1; + if (! $canread) + { + accessforbidden(); + } +} $diroutputmassaction=$conf->expensereport->dir_output . '/temp/massgeneration/'.$user->id; @@ -66,7 +81,6 @@ $pagenext = $page + 1; if (!$sortorder) $sortorder="DESC"; if (!$sortfield) $sortfield="d.date_debut"; -$id = GETPOST('id', 'int'); $sall = trim((GETPOST('search_all', 'alphanohtml')!='')?GETPOST('search_all', 'alphanohtml'):GETPOST('sall', 'alphanohtml')); $search_ref = GETPOST('search_ref', 'alpha'); diff --git a/htdocs/holiday/list.php b/htdocs/holiday/list.php index 5df3fdb314b..d07ec98ca4c 100644 --- a/htdocs/holiday/list.php +++ b/htdocs/holiday/list.php @@ -60,6 +60,18 @@ if ($user->societe_id > 0) // Protection if external user } $result = restrictedArea($user, 'holiday', $id, ''); $id = GETPOST('id','int'); +// If we are on the view of a specific user +if ($id > 0) +{ + $canread=0; + if ($id == $user->id) $canread=1; + if (! empty($user->rights->holiday->read_all)) $canread=1; + if (! empty($user->rights->holiday->read) && in_array($id, $childids)) $canread=1; + if (! $canread) + { + accessforbidden(); + } +} // Load variable for pagination $limit = GETPOST('limit','int')?GETPOST('limit','int'):$conf->liste_limit; From 81bca34a08186b79909c41f87ea95c087530c219 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 18 Jun 2019 16:04:25 +0200 Subject: [PATCH 349/365] FIX A user may read holiday and expense report without permissions --- htdocs/expensereport/list.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/expensereport/list.php b/htdocs/expensereport/list.php index 8b5ef11f128..0014cb7999c 100644 --- a/htdocs/expensereport/list.php +++ b/htdocs/expensereport/list.php @@ -58,8 +58,8 @@ if ($id > 0) { $canread=0; if ($id == $user->id) $canread=1; - if (! empty($user->rights->holiday->read_all)) $canread=1; - if (! empty($user->rights->holiday->read) && in_array($id, $childids)) $canread=1; + if (! empty($user->rights->expensereport->readall)) $canread=1; + if (! empty($user->rights->expensereport->lire) && in_array($id, $childids)) $canread=1; if (! $canread) { accessforbidden(); From 13abfc3140298227cbaaa02aef53503efe2b0db3 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 18 Jun 2019 16:46:12 +0200 Subject: [PATCH 350/365] Code comment --- htdocs/install/mysql/tables/llx_societe.sql | 34 ++++++++++----------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/htdocs/install/mysql/tables/llx_societe.sql b/htdocs/install/mysql/tables/llx_societe.sql index ed4919c3fc5..e7a948d67c2 100644 --- a/htdocs/install/mysql/tables/llx_societe.sql +++ b/htdocs/install/mysql/tables/llx_societe.sql @@ -65,34 +65,34 @@ create table llx_societe fk_typent integer DEFAULT 0, -- fk_forme_juridique integer DEFAULT 0, -- juridical status fk_currency varchar(3), -- default currency - siren varchar(128), -- IDProf1: siren or RCS for france, ... - siret varchar(128), -- IDProf2: siret for france, ... - ape varchar(128), -- IDProf3: code ape for france, ... - idprof4 varchar(128), -- IDProf4: nu for france - idprof5 varchar(128), -- IDProf5: nu for france - idprof6 varchar(128), -- IDProf6: nu for france - tva_intra varchar(20), -- tva - capital double(24,8) DEFAULT NULL, -- capital de la societe - fk_stcomm integer DEFAULT 0 NOT NULL, -- commercial statut + siren varchar(128), -- IDProf1: depends on country (example: siren or RCS for france, ...) + siret varchar(128), -- IDProf2: depends on country (example: siret for france, ...) + ape varchar(128), -- IDProf3: depends on country (example: code ape for france, ...) + idprof4 varchar(128), -- IDProf4: depends on country (example: nu for france, ...) + idprof5 varchar(128), -- IDProf5: depends on country (example: nu for france, ...) + idprof6 varchar(128), -- IDProf6: depends on country (example: nu for france, ... + tva_intra varchar(20), -- vat numero + capital double(24,8) DEFAULT NULL, -- capital of company + fk_stcomm integer DEFAULT 0 NOT NULL, -- commercial status note_private text, -- note_public text, -- model_pdf varchar(255), - prefix_comm varchar(5), -- prefix commercial + prefix_comm varchar(5), -- prefix commercial (deprecated) client tinyint DEFAULT 0, -- client 0/1/2 fournisseur tinyint DEFAULT 0, -- fournisseur 0/1 - supplier_account varchar(32), -- compte client chez un fournisseur + supplier_account varchar(32), -- Id of our customer account known by the supplier fk_prospectlevel varchar(12), -- prospect level (in llx_c_prospectlevel) fk_incoterms integer, -- for incoterms location_incoterms varchar(255), -- for incoterms customer_bad tinyint DEFAULT 0, -- mauvais payeur 0/1 customer_rate real DEFAULT 0, -- taux fiabilite client (0 a 1) supplier_rate real DEFAULT 0, -- taux fiabilite fournisseur (0 a 1) - remise_client real DEFAULT 0, -- remise systematique pour le client - remise_supplier real DEFAULT 0, -- remise systematique auprès du fournisseur - mode_reglement tinyint, -- mode de reglement - cond_reglement tinyint, -- condition de reglement - mode_reglement_supplier tinyint, -- mode de reglement fournisseur - cond_reglement_supplier tinyint, -- condition de reglement fournisseur + remise_client real DEFAULT 0, -- discount by default granted to this customer + remise_supplier real DEFAULT 0, -- discount by default granted by this supplier + mode_reglement tinyint, -- payment mode customer + cond_reglement tinyint, -- payment term customer + mode_reglement_supplier tinyint, -- payment mode supplier + cond_reglement_supplier tinyint, -- payment term supplier fk_shipping_method integer, -- preferred shipping method id tva_assuj tinyint DEFAULT 1, -- assujeti ou non a la TVA localtax1_assuj tinyint DEFAULT 0, -- assujeti ou non a local tax 1 From c000d897d7f38096a9980fb1dd009712b8c8b3ec Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 18 Jun 2019 17:42:45 +0200 Subject: [PATCH 351/365] Fix rendering of amount --- htdocs/compta/facture/list.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/compta/facture/list.php b/htdocs/compta/facture/list.php index d12fc90fd77..b6beba5e12e 100644 --- a/htdocs/compta/facture/list.php +++ b/htdocs/compta/facture/list.php @@ -959,11 +959,11 @@ if ($resql) $totalcreditnotes = $facturestatic->getSumCreditNotesUsed(); $totaldeposits = $facturestatic->getSumDepositsUsed(); $totalpay = $paiement + $totalcreditnotes + $totaldeposits; - $remaintopay = $facturestatic->total_ttc - $totalpay; + $remaintopay = price2num($facturestatic->total_ttc - $totalpay); if ($facturestatic->type == Facture::TYPE_CREDIT_NOTE && $obj->paye == 1) { $remaincreditnote = $discount->getAvailableDiscounts($obj->fk_soc, '', 'rc.fk_facture_source='.$facturestatic->id); $remaintopay = -$remaincreditnote; - $totalpay = $facturestatic->total_ttc - $remaintopay; + $totalpay = price2num($facturestatic->total_ttc - $remaintopay); } print ' Date: Tue, 18 Jun 2019 17:42:45 +0200 Subject: [PATCH 352/365] Fix rendering of amount --- htdocs/compta/facture/list.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/compta/facture/list.php b/htdocs/compta/facture/list.php index d12fc90fd77..b6beba5e12e 100644 --- a/htdocs/compta/facture/list.php +++ b/htdocs/compta/facture/list.php @@ -959,11 +959,11 @@ if ($resql) $totalcreditnotes = $facturestatic->getSumCreditNotesUsed(); $totaldeposits = $facturestatic->getSumDepositsUsed(); $totalpay = $paiement + $totalcreditnotes + $totaldeposits; - $remaintopay = $facturestatic->total_ttc - $totalpay; + $remaintopay = price2num($facturestatic->total_ttc - $totalpay); if ($facturestatic->type == Facture::TYPE_CREDIT_NOTE && $obj->paye == 1) { $remaincreditnote = $discount->getAvailableDiscounts($obj->fk_soc, '', 'rc.fk_facture_source='.$facturestatic->id); $remaintopay = -$remaincreditnote; - $totalpay = $facturestatic->total_ttc - $remaintopay; + $totalpay = price2num($facturestatic->total_ttc - $remaintopay); } print ' Date: Tue, 18 Jun 2019 18:07:47 +0200 Subject: [PATCH 353/365] Fix phpcs --- htdocs/compta/accounting-files.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/htdocs/compta/accounting-files.php b/htdocs/compta/accounting-files.php index 0954a194b73..9069045c8b3 100644 --- a/htdocs/compta/accounting-files.php +++ b/htdocs/compta/accounting-files.php @@ -73,16 +73,17 @@ $arrayfields=array( if (empty($conf->comptabilite->enabled) && empty($conf->accounting->enabled)) { accessforbidden(); } -if ($user->societe_id > 0) +if ($user->societe_id > 0) { accessforbidden(); +} +$entity = GETPOST('entity', 'int')?GETPOST('entity', 'int'):$conf->entity; /* * Actions */ -$entity = GETPOST('entity','int')?GETPOST('entity','int'):$conf->entity; //$parameters = array('socid' => $id); //$reshook = $hookmanager->executeHooks('doActions', $parameters, $object); // Note that $object may have been modified by some hooks From 525598f6aa925b0aeb8f7c02ebdd0edaeb065bde Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 18 Jun 2019 20:01:28 +0200 Subject: [PATCH 354/365] Fix scrutinizer warnings --- htdocs/adherents/class/adherent.class.php | 8 ++++---- htdocs/contact/class/contact.class.php | 2 +- htdocs/user/class/user.class.php | 1 - htdocs/user/class/usergroup.class.php | 3 +-- 4 files changed, 6 insertions(+), 8 deletions(-) diff --git a/htdocs/adherents/class/adherent.class.php b/htdocs/adherents/class/adherent.class.php index 3119e044be0..1856de6182f 100644 --- a/htdocs/adherents/class/adherent.class.php +++ b/htdocs/adherents/class/adherent.class.php @@ -183,14 +183,14 @@ class Adherent extends CommonObject * @var integer */ public $datec; - + /** * Date modification record (tms) * * @var integer */ public $datem; - + public $datevalid; public $gender; @@ -1268,7 +1268,7 @@ class Adherent extends CommonObject $this->ref = $obj->rowid; $this->id = $obj->rowid; $this->ref_ext = $obj->ref_ext; - + $this->civility_id = $obj->civility_code; // Bad. Kept for backard compatibility $this->civility_code = $obj->civility_code; $this->civility = $obj->civility_code?($langs->trans("Civility".$obj->civility_code) != ("Civility".$obj->civility_code) ? $langs->trans("Civility".$obj->civility_code) : $obj->civility_code):''; @@ -2465,7 +2465,7 @@ class Adherent extends CommonObject * * @return array Tableau info des attributs */ - private function _load_ldap_info() + public function _load_ldap_info() { // phpcs:enable global $conf,$langs; diff --git a/htdocs/contact/class/contact.class.php b/htdocs/contact/class/contact.class.php index dfefb8060fe..5c4df6ab3f9 100644 --- a/htdocs/contact/class/contact.class.php +++ b/htdocs/contact/class/contact.class.php @@ -525,7 +525,7 @@ class Contact extends CommonObject * * @return array Tableau info des attributs */ - private function _load_ldap_info() + public function _load_ldap_info() { // phpcs:enable global $conf, $langs; diff --git a/htdocs/user/class/user.class.php b/htdocs/user/class/user.class.php index 34651304b95..c5ac20e8cc7 100644 --- a/htdocs/user/class/user.class.php +++ b/htdocs/user/class/user.class.php @@ -2300,7 +2300,6 @@ class User extends CommonObject if (! empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER) && $withpictoimg) $withpictoimg=0; $result=''; $label=''; - $link=''; $linkstart=''; $linkend=''; if (! empty($this->photo)) { diff --git a/htdocs/user/class/usergroup.class.php b/htdocs/user/class/usergroup.class.php index c3fe000292c..9fb6e600a3b 100644 --- a/htdocs/user/class/usergroup.class.php +++ b/htdocs/user/class/usergroup.class.php @@ -867,7 +867,6 @@ class UserGroup extends CommonObject if (! empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER) && $withpicto) $withpicto=0; $result=''; $label=''; - $link=''; $linkstart=''; $linkend=''; $label.= '
'; $label.= '' . $langs->trans("Group") . '
'; @@ -957,7 +956,7 @@ class UserGroup extends CommonObject public function _load_ldap_info() { // phpcs:enable - global $conf,$langs; + global $conf; $info=array(); From 663998bab11a371b4162c89c2f5893a8075b352d Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 18 Jun 2019 20:15:04 +0200 Subject: [PATCH 355/365] Fix scrutinizer errors --- htdocs/includes/odtphp/odf.php | 2 +- htdocs/opensurvey/results.php | 4 ++-- htdocs/product/price.php | 2 +- htdocs/user/class/user.class.php | 12 ++++++------ htdocs/user/class/usergroup.class.php | 6 +++--- 5 files changed, 13 insertions(+), 13 deletions(-) diff --git a/htdocs/includes/odtphp/odf.php b/htdocs/includes/odtphp/odf.php index 6b3a6400bc3..21e9b56b4bb 100644 --- a/htdocs/includes/odtphp/odf.php +++ b/htdocs/includes/odtphp/odf.php @@ -745,7 +745,7 @@ IMG; private function _rrmdir($dir) { if ($handle = opendir($dir)) { - while (false !== ($file = readdir($handle))) { + while (($file = readdir($handle)) !== false) { if ($file != '.' && $file != '..') { if (is_dir($dir . '/' . $file)) { $this->_rrmdir($dir . '/' . $file); diff --git a/htdocs/opensurvey/results.php b/htdocs/opensurvey/results.php index c648b15664e..1b3034bb82c 100644 --- a/htdocs/opensurvey/results.php +++ b/htdocs/opensurvey/results.php @@ -249,8 +249,8 @@ if (isset($_POST["ajoutercolonne"]) && $object->format == "D") $dateinsertion = substr("$dateinsertion", 1); - //mise a jour avec les nouveaux sujets dans la base - if (isset($erreur_ajout_date) && !$erreur_ajout_date) + // update with new topics into database + if (isset($erreur_ajout_date) && empty($erreur_ajout_date)) { $sql = 'UPDATE '.MAIN_DB_PREFIX."opensurvey_sondage"; $sql.= " SET sujet = '".$db->escape($dateinsertion)."'"; diff --git a/htdocs/product/price.php b/htdocs/product/price.php index 5b5b9ad48fa..26970f1dd13 100644 --- a/htdocs/product/price.php +++ b/htdocs/product/price.php @@ -153,7 +153,7 @@ if (empty($reshook)) $db->begin(); $resql = $object->update($object->id, $user); - if (! $resql || $resql < 0) + if ($resql <= 0) { $error++; setEventMessages($object->error, $object->errors, 'errors'); diff --git a/htdocs/user/class/user.class.php b/htdocs/user/class/user.class.php index c5ac20e8cc7..a151fdb5574 100644 --- a/htdocs/user/class/user.class.php +++ b/htdocs/user/class/user.class.php @@ -774,7 +774,7 @@ class User extends CommonObject dol_syslog(get_class($this)."::clearrights reset user->rights"); $this->rights=''; $this->nb_rights=0; - $this->all_permissions_are_loaded=false; + $this->all_permissions_are_loaded=0; $this->_tab_loaded=array(); } @@ -799,16 +799,16 @@ class User extends CommonObject return; } - if ($this->all_permissions_are_loaded) + if (! empty($this->all_permissions_are_loaded)) { // We already loaded all rights for this user, so we leave return; } } - // Recuperation des droits utilisateurs + recuperation des droits groupes + // Get permission of users + Get permissions of groups - // D'abord les droits utilisateurs + // First user permissions $sql = "SELECT DISTINCT r.module, r.perms, r.subperms"; $sql.= " FROM ".MAIN_DB_PREFIX."user_rights as ur"; $sql.= ", ".MAIN_DB_PREFIX."rights_def as r"; @@ -862,7 +862,7 @@ class User extends CommonObject $this->db->free($resql); } - // Maintenant les droits groupes + // Now permissions of groups $sql = "SELECT DISTINCT r.module, r.perms, r.subperms"; $sql.= " FROM ".MAIN_DB_PREFIX."usergroup_rights as gr,"; $sql.= " ".MAIN_DB_PREFIX."usergroup_user as gu,"; @@ -933,7 +933,7 @@ class User extends CommonObject } else { - // Si module defini, on le marque comme charge en cache + // If module defined, we flag it as loaded into cache $this->_tab_loaded[$moduletag]=1; } } diff --git a/htdocs/user/class/usergroup.class.php b/htdocs/user/class/usergroup.class.php index 9fb6e600a3b..d51d82c8d13 100644 --- a/htdocs/user/class/usergroup.class.php +++ b/htdocs/user/class/usergroup.class.php @@ -552,13 +552,13 @@ class UserGroup extends CommonObject if ($moduletag && isset($this->_tab_loaded[$moduletag]) && $this->_tab_loaded[$moduletag]) { - // Le fichier de ce module est deja charge + // Rights for this module are already loaded, so we leave return; } if (! empty($this->all_permissions_are_loaded)) { - // Si les permissions ont deja ete chargees, on quitte + // We already loaded all rights for this group, so we leave return; } @@ -618,7 +618,7 @@ class UserGroup extends CommonObject } else { - // Si module defini, on le marque comme charge en cache + // If module defined, we flag it as loaded into cache $this->_tab_loaded[$moduletag]=1; } From 53923a8581e5a710a46f289b0df61769df1b4f56 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 18 Jun 2019 20:21:22 +0200 Subject: [PATCH 356/365] Fix scrutinizer warnings --- htdocs/core/db/sqlite3.class.php | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/htdocs/core/db/sqlite3.class.php b/htdocs/core/db/sqlite3.class.php index b7d06870ff5..360b72f80d9 100644 --- a/htdocs/core/db/sqlite3.class.php +++ b/htdocs/core/db/sqlite3.class.php @@ -403,9 +403,13 @@ class DoliDBSqlite3 extends DoliDB */ public function query($query, $usesavepoint = 0, $type = 'auto') { + global $conf; + $ret=null; + $query = trim($query); - $this->error = 0; + + $this->error = ''; // Convert MySQL syntax to SQLite syntax if (preg_match('/ALTER\s+TABLE\s*(.*)\s*ADD\s+CONSTRAINT\s+(.*)\s*FOREIGN\s+KEY\s*\(([\w,\s]+)\)\s*REFERENCES\s+(\w+)\s*\(([\w,\s]+)\)/i', $query, $reg)) { @@ -449,7 +453,8 @@ class DoliDBSqlite3 extends DoliDB } //print "After convertSQLFromMysql:\n".$query."
\n"; - dol_syslog('sql='.$query, LOG_DEBUG); + if (! in_array($query, array('BEGIN','COMMIT','ROLLBACK'))) dol_syslog('sql='.$query, LOG_DEBUG); + if (empty($query)) return false; // Return false = error if empty request // Ordre SQL ne necessitant pas de connexion a une base (exemple: CREATE DATABASE) try { @@ -481,7 +486,8 @@ class DoliDBSqlite3 extends DoliDB $errormsg .= ' ('.$this->lasterrno.')'; } - dol_syslog($errormsg, LOG_ERR); + if ($conf->global->SYSLOG_LEVEL < LOG_DEBUG) dol_syslog(get_class($this)."::query SQL Error query: ".$query, LOG_ERR); // Log of request was not yet done previously + dol_syslog(get_class($this)."::query SQL Error message: ".$errormsg, LOG_ERR); } $this->lastquery=$query; $this->_results = $ret; From 7afcdb46eb9fe7e989b1cf884f157c5e6615f930 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 19 Jun 2019 12:10:05 +0200 Subject: [PATCH 357/365] Debug module ticket --- htdocs/admin/ticket.php | 2 +- htdocs/public/ticket/index.php | 34 +++++++++++++++++++--------------- 2 files changed, 20 insertions(+), 16 deletions(-) diff --git a/htdocs/admin/ticket.php b/htdocs/admin/ticket.php index 331d7e992ba..8cb1e85afe4 100644 --- a/htdocs/admin/ticket.php +++ b/htdocs/admin/ticket.php @@ -190,7 +190,7 @@ $head = ticketAdminPrepareHead(); dol_fiche_head($head, 'settings', $langs->trans("Module56000Name"), -1, "ticket"); -print ''.$langs->trans("TicketSetupDictionaries") . ' : ' . dol_buildpath('/admin/dict.php', 2) . '
'; +print ''.$langs->trans("TicketSetupDictionaries") . ' : '.$langs->trans("ClickHereToGoTo", $langs->transnoentitiesnoconv("DictionarySetup")).'
'; dol_fiche_end(); diff --git a/htdocs/public/ticket/index.php b/htdocs/public/ticket/index.php index 05b992b3e40..a3e4d63a4bc 100644 --- a/htdocs/public/ticket/index.php +++ b/htdocs/public/ticket/index.php @@ -1,5 +1,6 @@ +/* Copyright (C) - 2013-2016 Jean-François FERRY + * Copyright (C) - 2019 Laurent Destailleur * * 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 @@ -18,7 +19,7 @@ /** * \file htdocs/public/ticket/index.php * \ingroup ticket - * \brief Public file to add and manage ticket + * \brief Public page to add and manage ticket */ if (!defined('NOCSRFCHECK')) define('NOCSRFCHECK', '1'); @@ -56,21 +57,24 @@ $formticket = new FormTicket($db); $arrayofjs = array(); $arrayofcss = array('/ticket/css/styles.css.php'); + +if (empty($conf->global->TICKET_ENABLE_PUBLIC_INTERFACE)) +{ + print $langs->trans('TicketPublicInterfaceForbidden'); + exit; +} + llxHeaderTicket($langs->trans("Tickets"), "", 0, 0, $arrayofjs, $arrayofcss); -if (!$conf->global->TICKET_ENABLE_PUBLIC_INTERFACE) { - print '
' . $langs->trans('TicketPublicInterfaceForbidden') . '
'; -} else { - print '
'; - print '

' . ($conf->global->TICKET_PUBLIC_TEXT_HOME ? $conf->global->TICKET_PUBLIC_TEXT_HOME : $langs->trans("TicketPublicDesc")) . '

'; - print ''; - print '
'; -} +print '
'; +print '

' . ($conf->global->TICKET_PUBLIC_TEXT_HOME ? $conf->global->TICKET_PUBLIC_TEXT_HOME : $langs->trans("TicketPublicDesc")) . '

'; +print ''; +print '
'; // End of page htmlPrintOnlinePaymentFooter($mysoc, $langs, 1, $suffix, $object); From f9cc120d7569ae08e698d4e536e73eb8180c6b94 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 19 Jun 2019 12:53:28 +0200 Subject: [PATCH 358/365] Debug module ticket --- htdocs/core/class/dolgraph.class.php | 2 +- htdocs/core/modules/modTicket.class.php | 1 + htdocs/langs/en_US/ticket.lang | 1 + htdocs/ticket/index.php | 71 +++++++++++++------------ 4 files changed, 39 insertions(+), 36 deletions(-) diff --git a/htdocs/core/class/dolgraph.class.php b/htdocs/core/class/dolgraph.class.php index d70a63293c5..5cec0232603 100644 --- a/htdocs/core/class/dolgraph.class.php +++ b/htdocs/core/class/dolgraph.class.php @@ -229,7 +229,7 @@ class DolGraph /** * Set width * - * @param int $w Width + * @param int|string $w Width (Example: 320 or '100%') * @return boolean|null True */ public function SetWidth($w) diff --git a/htdocs/core/modules/modTicket.class.php b/htdocs/core/modules/modTicket.class.php index 9436bfa84e8..e16b6e87fd0 100644 --- a/htdocs/core/modules/modTicket.class.php +++ b/htdocs/core/modules/modTicket.class.php @@ -99,6 +99,7 @@ class modTicket extends DolibarrModules $this->conflictwith = array(); // List of module class names as string this module is in conflict with $this->phpmin = array(5,4); // Minimum version of PHP required by module $this->langfiles = array("ticket"); + // Constants // List of particular constants to add when module is enabled // (key, 'chaine', value, desc, visible, 'current' or 'allentities', deleteonunactive) diff --git a/htdocs/langs/en_US/ticket.lang b/htdocs/langs/en_US/ticket.lang index 6a2d7e89cb7..70bd8220af0 100644 --- a/htdocs/langs/en_US/ticket.lang +++ b/htdocs/langs/en_US/ticket.lang @@ -133,6 +133,7 @@ TicketsIndex=Ticket - home TicketList=List of tickets TicketAssignedToMeInfos=This page display ticket list created by or assigned to current user NoTicketsFound=No ticket found +NoUnreadTicketsFound=No unread ticket found TicketViewAllTickets=View all tickets TicketViewNonClosedOnly=View only open tickets TicketStatByStatus=Tickets by status diff --git a/htdocs/ticket/index.php b/htdocs/ticket/index.php index 824b1f1833e..e7f7c6bff2f 100644 --- a/htdocs/ticket/index.php +++ b/htdocs/ticket/index.php @@ -24,6 +24,7 @@ require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT . '/ticket/class/actions_ticket.class.php'; require_once DOL_DOCUMENT_ROOT . '/ticket/class/ticketstats.class.php'; require_once DOL_DOCUMENT_ROOT . '/core/class/dolgraph.class.php'; +require_once DOL_DOCUMENT_ROOT . '/core/lib/date.lib.php'; // Load translation files required by the page $langs->loadLangs(array('companies', 'other', 'ticket')); @@ -102,8 +103,8 @@ if (empty($endyear)) { } $startyear = $endyear - 1; -$WIDTH = (($shownb && $showtot) || !empty($conf->dol_optimize_smallscreen)) ? '256' : '320'; -$HEIGHT = '192'; +$WIDTH = (($shownb && $showtot) || !empty($conf->dol_optimize_smallscreen)) ? '100%' : '80%'; +$HEIGHT = '228'; print '
'; @@ -120,16 +121,14 @@ $tick = array( 'closed' => 0, 'deleted' => 0, ); -$total = 0; + $sql = "SELECT t.fk_statut, COUNT(t.fk_statut) as nb"; $sql .= " FROM " . MAIN_DB_PREFIX . "ticket as t"; if (!$user->rights->societe->client->voir && !$socid) { $sql .= ", " . MAIN_DB_PREFIX . "societe_commerciaux as sc"; } - -$sql .= ' WHERE t.entity IN (' . getEntity('ticket', 1) . ')'; -$sql .= " AND t.fk_statut IS NOT NULL"; -$sql .= " AND date_format(datec,'%Y') = '" . $endyear . "'"; +$sql .= ' WHERE t.entity IN (' . getEntity('ticket') . ')'; +$sql .= dolSqlDateFilter('datec', 0, 0, $endyear); if (!$user->rights->societe->client->voir && !$socid) { $sql .= " AND t.fk_soc = sc.fk_soc AND sc.fk_user = " . $user->id; } @@ -149,44 +148,41 @@ $result = $db->query($sql); if ($result) { while ($objp = $db->fetch_object($result)) { $found = 0; - if ($objp->fk_statut == 0) { + if ($objp->fk_statut == Ticket::STATUS_NOT_READ) { $tick['unread'] = $objp->nb; } - if ($objp->fk_statut == 1) { + if ($objp->fk_statut == Ticket::STATUS_READ) { $tick['read'] = $objp->nb; } - if ($objp->fk_statut == 3) { - $tick['answered'] = $objp->nb; + if ($objp->fk_statut == Ticket::STATUS_NEED_MORE_INFO) { + $tick['needmoreinfo'] = $objp->nb; } - if ($objp->fk_statut == 4) { + if ($objp->fk_statut == Ticket::STATUS_ASSIGNED) { $tick['assigned'] = $objp->nb; } - if ($objp->fk_statut == 5) { + if ($objp->fk_statut == Ticket::STATUS_IN_PROGRESS) { $tick['inprogress'] = $objp->nb; } - if ($objp->fk_statut == 6) { + if ($objp->fk_statut == Ticket::STATUS_WAITING) { $tick['waiting'] = $objp->nb; } - if ($objp->fk_statut == 8) { + if ($objp->fk_statut == Ticket::STATUS_CLOSED) { $tick['closed'] = $objp->nb; } - if ($objp->fk_statut == 9) { - $tick['deleted'] = $objp->nb; + if ($objp->fk_statut == Ticket::STATUS_CANCELED) { + $tick['canceled'] = $objp->nb; } } - if ((round($tick['unread']) ? 1 : 0) +(round($tick['read']) ? 1 : 0) +(round($tick['answered']) ? 1 : 0) +(round($tick['assigned']) ? 1 : 0) +(round($tick['inprogress']) ? 1 : 0) +(round($tick['waiting']) ? 1 : 0) +(round($tick['closed']) ? 1 : 0) +(round($tick['deleted']) ? 1 : 0) >= 2 - ) { - $dataseries = array(); - $dataseries[] = array('label' => $langs->trans("Unread"), 'data' => round($tick['unread'])); - $dataseries[] = array('label' => $langs->trans("Read"), 'data' => round($tick['read'])); - $dataseries[] = array('label' => $langs->trans("Answered"), 'data' => round($tick['answered'])); - $dataseries[] = array('label' => $langs->trans("Assigned"), 'data' => round($tick['assigned'])); - $dataseries[] = array('label' => $langs->trans("InProgress"), 'data' => round($tick['inprogress'])); - $dataseries[] = array('label' => $langs->trans("Waiting"), 'data' => round($tick['waiting'])); - $dataseries[] = array('label' => $langs->trans("Closed"), 'data' => round($tick['closed'])); - $dataseries[] = array('label' => $langs->trans("Deleted"), 'data' => round($tick['deleted'])); - } + $dataseries = array(); + $dataseries[] = array('label' => $langs->trans("Unread"), 'data' => round($tick['unread'])); + $dataseries[] = array('label' => $langs->trans("Read"), 'data' => round($tick['read'])); + $dataseries[] = array('label' => $langs->trans("NeedMoreInformation"), 'data' => round($tick['needmoreinfo'])); + $dataseries[] = array('label' => $langs->trans("Assigned"), 'data' => round($tick['assigned'])); + $dataseries[] = array('label' => $langs->trans("InProgress"), 'data' => round($tick['inprogress'])); + $dataseries[] = array('label' => $langs->trans("Waiting"), 'data' => round($tick['waiting'])); + $dataseries[] = array('label' => $langs->trans("Closed"), 'data' => round($tick['closed'])); + $dataseries[] = array('label' => $langs->trans("Canceled"), 'data' => round($tick['canceled'])); } else { dol_print_error($db); } @@ -210,11 +206,17 @@ $stringtoshow .= '
'; print '
'.$langs->trans("Type").''.$langs->trans("Ref").''.$langs->trans("Link").''.$langs->trans("Document").''.$langs->trans("Paid").''.$langs->trans("Debit").''.$langs->trans("Credit").''.$langs->trans("Balance").''.$langs->trans("TotalHT").''.$langs->trans("TotalTTC").''.$langs->trans("TotalVAT").''.$langs->trans("ThirdParty").''.$langs->trans("Code").''.$langs->trans("Country").''.$langs->trans("VATIntra").'
"; + + // Type + print ''.$langs->trans($data['item']).''; print dol_print_date($data['date'], 'day'); print "'.$langs->trans($data['item']).''.$data['ref'].'".$data['name']."'; + if ($data['link']) + { + print ''.($data['name'] ? $data['name'] : $data['ref']).''; + } + print "'.$data['paid'].''.(($data['amount'] > 0) ? price(abs($data['amount'])) : '')."'.(($data['amount'] > 0) ? '' : price(abs($data['amount'])))."'.price($data['amount_ht'])."'.price($data['amount_ttc'])."'.price($data['amount_vat'])."'.$data['thirdparty_name']."'.$data['thirdparty_code']."'.$data['country_code']."'.$data['vatnum']."'.(($data['amount_ttc'] > 0) ? price(abs($data['amount_ttc'])) : '')."'.(($data['amount_ttc'] > 0) ? '' : price(abs($data['amount_ttc'])))."'.price($data['balance'])."'.price($data['balance'])."
 '.price($totalDebit).''.price($totalCredit).''.price(price2num($totalDebit - $totalCredit, 'MT')).''.price($totalET).''.price($totalIT).''.price($totalVAT).''.price($totalDebit).''.price($totalCredit).''.price(price2num($totalDebit - $totalCredit, 'MT')).'
'; print ''; -print ''; print '
' . $langs->trans("Statistics") . ' ' . img_picto('', 'filter.png', 'id="idsubimgDOLUSERCOOKIE_ticket_by_status" class="linkobject"') . '
'; +print '
'; +print $stringtoshow; // don't display graph if no series if (! empty($dataseries) && count($dataseries) > 1) { - $data = array(); + $totalnb=0; + foreach ($dataseries as $key => $value) { + $totalnb += $value['data']; + } + + $data = array(); foreach ($dataseries as $key => $value) { $data[] = array($value['label'], $value['data']); } @@ -244,10 +246,9 @@ if (! empty($dataseries) && count($dataseries) > 1) { //$px1->SetTitle($langs->trans("TicketStatByStatus")); $px1->draw($filenamenb, $fileurlnb); - print $px1->show(); + print $px1->show($totalnb?0:1); } } -print $stringtoshow; print '
'; @@ -303,7 +304,7 @@ if ($result) { print '
'; print ''; print ''; - print ''; + print ''; print ''; if ($num > 0) { @@ -359,7 +360,7 @@ if ($result) { $db->free(); } else { - print ''; + print ''; } print "
' . $transRecordedType . ''.$langs->trans("FullList").''.$langs->trans("FullList").'
' . $langs->trans('NoTicketsFound') . '
' . $langs->trans('NoUnreadTicketsFound') . '
"; From df8fff843cb7fb6beece1a36b2e47a7eaf1ea045 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 19 Jun 2019 13:16:46 +0200 Subject: [PATCH 359/365] Standardize code --- htdocs/includes/odtphp/odf.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/includes/odtphp/odf.php b/htdocs/includes/odtphp/odf.php index 6b3a6400bc3..a5ce9e3ba68 100644 --- a/htdocs/includes/odtphp/odf.php +++ b/htdocs/includes/odtphp/odf.php @@ -745,7 +745,7 @@ IMG; private function _rrmdir($dir) { if ($handle = opendir($dir)) { - while (false !== ($file = readdir($handle))) { + while (($file = readdir($handle))!==false) { if ($file != '.' && $file != '..') { if (is_dir($dir . '/' . $file)) { $this->_rrmdir($dir . '/' . $file); From 8e8199cc0f963530735ada6a083c1470ec363889 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 19 Jun 2019 13:17:02 +0200 Subject: [PATCH 360/365] Fix scrutinizer --- htdocs/ticket/class/ticket.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/ticket/class/ticket.class.php b/htdocs/ticket/class/ticket.class.php index 132cce1e52b..69708e06516 100644 --- a/htdocs/ticket/class/ticket.class.php +++ b/htdocs/ticket/class/ticket.class.php @@ -2374,7 +2374,7 @@ class Ticket extends CommonObject if (file_exists($dir_osencoded)) { $handle = opendir($dir_osencoded); if (is_resource($handle)) { - while (($file = readdir($handle)) != false) { + while (($file = readdir($handle)) !== false) { if (!utf8_check($file)) { $file = utf8_encode($file); } From a11c816a176da9b0fd930d3767208ad60aff4377 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 19 Jun 2019 14:24:48 +0200 Subject: [PATCH 361/365] Fix tooltip --- htdocs/compta/facture/card.php | 3 ++- htdocs/fourn/facture/card.php | 3 ++- htdocs/langs/en_US/bills.lang | 6 ++++-- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/htdocs/compta/facture/card.php b/htdocs/compta/facture/card.php index 0f2669014a8..10de9581dfe 100644 --- a/htdocs/compta/facture/card.php +++ b/htdocs/compta/facture/card.php @@ -3444,6 +3444,7 @@ elseif ($id > 0 || ! empty($ref)) elseif($object->type == Facture::TYPE_CREDIT_NOTE) $type_fac = 'CreditNote'; elseif($object->type == Facture::TYPE_DEPOSIT) $type_fac = 'Deposit'; $text = $langs->trans('ConfirmConvertToReduc', strtolower($langs->transnoentities($type_fac))); + $text.='
'.$langs->trans('ConfirmConvertToReduc2'); $formconfirm = $form->formconfirm($_SERVER['PHP_SELF'] . '?facid=' . $object->id, $langs->trans('ConvertToReduc'), $text, 'confirm_converttoreduc', '', "yes", 2); } @@ -4746,7 +4747,7 @@ elseif ($id > 0 || ! empty($ref)) } // For credit note if ($object->type == Facture::TYPE_CREDIT_NOTE && $object->statut == 1 && $object->paye == 0 && $usercancreate && $object->getSommePaiement() == 0) { - print ''; + print ''; } // For deposit invoice if ($object->type == Facture::TYPE_DEPOSIT && $usercancreate && $object->statut > 0 && empty($discount->id)) diff --git a/htdocs/fourn/facture/card.php b/htdocs/fourn/facture/card.php index 1eb38cec66c..c25b0afa15b 100644 --- a/htdocs/fourn/facture/card.php +++ b/htdocs/fourn/facture/card.php @@ -2221,6 +2221,7 @@ else elseif($object->type == FactureFournisseur::TYPE_CREDIT_NOTE) $type_fac = 'CreditNote'; elseif($object->type == FactureFournisseur::TYPE_DEPOSIT) $type_fac = 'Deposit'; $text = $langs->trans('ConfirmConvertToReducSupplier', strtolower($langs->transnoentities($type_fac))); + $text .= '
'.$langs->trans('ConfirmConvertToReducSupplier2'); $formconfirm = $form->formconfirm($_SERVER['PHP_SELF'] . '?facid=' . $object->id, $langs->trans('ConvertToReduc'), $text, 'confirm_converttoreduc', '', "yes", 2); } @@ -3107,7 +3108,7 @@ else } // For credit note if ($object->type == FactureFournisseur::TYPE_CREDIT_NOTE && $object->statut == 1 && $object->paye == 0 && $user->rights->fournisseur->facture->creer && $object->getSommePaiement() == 0) { - print ''; + print ''; } // For deposit invoice if ($object->type == FactureFournisseur::TYPE_DEPOSIT && $object->paye == 1 && $resteapayer == 0 && $user->rights->fournisseur->facture->creer && empty($discount->id)) diff --git a/htdocs/langs/en_US/bills.lang b/htdocs/langs/en_US/bills.lang index 17882b3b270..9a86e941035 100644 --- a/htdocs/langs/en_US/bills.lang +++ b/htdocs/langs/en_US/bills.lang @@ -66,8 +66,10 @@ paymentInInvoiceCurrency=in invoices currency PaidBack=Paid back DeletePayment=Delete payment ConfirmDeletePayment=Are you sure you want to delete this payment? -ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount?
The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this customer. -ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount?
The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this vendor. +ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount? +ConfirmConvertToReduc2=The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this customer. +ConfirmConvertToReducSupplier=Do you want to convert this %s into an absolute discount? +ConfirmConvertToReducSupplier2=The amount will be saved among all discounts and could be used as a discount for a current or a future invoice for this vendor. SupplierPayments=Vendor payments ReceivedPayments=Received payments ReceivedCustomersPayments=Payments received from customers From 2034faf280528cdd444502dca25b4743c05d17f1 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 19 Jun 2019 15:48:04 +0200 Subject: [PATCH 362/365] Fix duplicate 'option_' in prefix --- htdocs/core/class/extrafields.class.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/htdocs/core/class/extrafields.class.php b/htdocs/core/class/extrafields.class.php index 8e0cf0946dc..eeb653aec8a 100644 --- a/htdocs/core/class/extrafields.class.php +++ b/htdocs/core/class/extrafields.class.php @@ -972,7 +972,10 @@ class ExtraFields $out=''; - $keyprefix = $keyprefix.'options_'; // Because we work on extrafields + if (! preg_match('/options_$/', $keyprefix)) // Because we work on extrafields, we add 'options_' to prefix if not already added + { + $keyprefix = $keyprefix.'options_'; + } if (! empty($extrafieldsobjectkey)) { From 04f2fb604f680575acfcacd0e0f179cdbfb5b97a Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 19 Jun 2019 15:48:04 +0200 Subject: [PATCH 363/365] Fix duplicate 'option_' in prefix --- htdocs/core/class/extrafields.class.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/htdocs/core/class/extrafields.class.php b/htdocs/core/class/extrafields.class.php index 8e0cf0946dc..eeb653aec8a 100644 --- a/htdocs/core/class/extrafields.class.php +++ b/htdocs/core/class/extrafields.class.php @@ -972,7 +972,10 @@ class ExtraFields $out=''; - $keyprefix = $keyprefix.'options_'; // Because we work on extrafields + if (! preg_match('/options_$/', $keyprefix)) // Because we work on extrafields, we add 'options_' to prefix if not already added + { + $keyprefix = $keyprefix.'options_'; + } if (! empty($extrafieldsobjectkey)) { From daa8b43732d43ec6f391e601855737c691079541 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 19 Jun 2019 15:51:48 +0200 Subject: [PATCH 364/365] css --- htdocs/compta/facture/list.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/compta/facture/list.php b/htdocs/compta/facture/list.php index b6beba5e12e..6c325c865a9 100644 --- a/htdocs/compta/facture/list.php +++ b/htdocs/compta/facture/list.php @@ -1075,7 +1075,7 @@ if ($resql) // Town if (! empty($arrayfields['s.town']['checked'])) { - print ''; + print ''; print $obj->town; print ''; if (! $i) $totalarray['nbfield']++; @@ -1083,7 +1083,7 @@ if ($resql) // Zip if (! empty($arrayfields['s.zip']['checked'])) { - print ''; + print ''; print $obj->zip; print ''; if (! $i) $totalarray['nbfield']++; From c3b8582076b7144cf8d23bb07189a39cb1918263 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 19 Jun 2019 15:55:18 +0200 Subject: [PATCH 365/365] Fix use of deprecated function --- htdocs/stripe/class/stripe.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/stripe/class/stripe.class.php b/htdocs/stripe/class/stripe.class.php index d754b8d3962..27346a15f5e 100644 --- a/htdocs/stripe/class/stripe.class.php +++ b/htdocs/stripe/class/stripe.class.php @@ -536,7 +536,7 @@ class Stripe extends CommonObject //$a = \Stripe\Stripe::getApiKey(); //var_dump($a);var_dump($stripeacc);exit; - dol_syslog("Try to create card dataforcard = ".dol_json_encode($dataforcard)); + dol_syslog("Try to create card dataforcard = ".json_encode($dataforcard)); try { if (empty($stripeacc)) { // If the Stripe connect account not set, we use common API usage $card = $cu->sources->create($dataforcard);